!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("babylonjs"),require("babylonjs-gui"),require("babylonjs-loaders"),require("babylonjs-materials"),require("babylonjs-serializers")):"function"==typeof define&&define.amd?define("babylonjs-inspector",["babylonjs","babylonjs-gui","babylonjs-loaders","babylonjs-materials","babylonjs-serializers"],t):"object"==typeof exports?exports["babylonjs-inspector"]=t(require("babylonjs"),require("babylonjs-gui"),require("babylonjs-loaders"),require("babylonjs-materials"),require("babylonjs-serializers")):e.INSPECTOR=t(e.BABYLON,e.BABYLON.GUI,e.BABYLON,e.BABYLON,e.BABYLON)}("undefined"!=typeof self?self:"undefined"!=typeof global?global:this,(function(e,t,r,n,a){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=98)}([function(e,t,r){"use strict";e.exports=r(99)},function(t,r){t.exports=e},function(e,t,r){e.exports=r(103)()},function(e,t,r){"use strict";(function(e){r.d(t,"a",(function(){return y}));var n=r(59),a=r(2),o=r.n(a),i=r(0),l=r.n(i),s="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{};var p=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){!function(t){var r=function(e,t,n){if(!s(t)||c(t)||u(t)||d(t)||l(t))return t;var a,o=0,i=0;if(p(t))for(a=[],i=t.length;o=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r},b=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t0||!Array.isArray(t)&&t?u({},e,t):{}}function v(e){return null===e?null:"object"===(void 0===e?"undefined":c(e))&&e.prefix&&e.iconName?e:Array.isArray(e)&&2===e.length?{prefix:e[0],iconName:e[1]}:"string"==typeof e?{prefix:"fas",iconName:e}:void 0}function y(e){var t=e.icon,r=e.mask,a=e.symbol,o=e.className,i=e.title,l=v(t),s=g("classes",[].concat(b(function(e){var t,r=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-inverse":e.inverse,"fa-border":e.border,"fa-li":e.listItem,"fa-flip-horizontal":"horizontal"===e.flip||"both"===e.flip,"fa-flip-vertical":"vertical"===e.flip||"both"===e.flip},u(t,"fa-"+e.size,null!==e.size),u(t,"fa-rotate-"+e.rotation,null!==e.rotation),u(t,"fa-pull-"+e.pull,null!==e.pull),t);return Object.keys(r).map((function(e){return r[e]?e:null})).filter((function(e){return e}))}(e)),b(o.split(" ")))),p=g("transform","string"==typeof e.transform?n.b.transform(e.transform):e.transform),c=g("mask",v(r)),h=Object(n.a)(l,d({},s,p,c,{symbol:a,title:i}));if(!h)return function(){var e;!m&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",l),null;var f=h.abstract,E={};return Object.keys(e).forEach((function(t){y.defaultProps.hasOwnProperty(t)||(E[t]=e[t])})),C(f[0],E)}y.displayName="FontAwesomeIcon",y.propTypes={border:o.a.bool,className:o.a.string,mask:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),fixedWidth:o.a.bool,inverse:o.a.bool,flip:o.a.oneOf(["horizontal","vertical","both"]),icon:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),listItem:o.a.bool,pull:o.a.oneOf(["right","left"]),pulse:o.a.bool,rotation:o.a.oneOf([90,180,270]),size:o.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:o.a.bool,symbol:o.a.oneOfType([o.a.bool,o.a.string]),title:o.a.string,transform:o.a.oneOfType([o.a.string,o.a.object])},y.defaultProps={border:!1,className:"",mask:null,fixedWidth:!1,inverse:!1,flip:null,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,symbol:!1,title:"",transform:null};var C=function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof r)return r;var a=(r.children||[]).map(e.bind(null,t)),o=Object.keys(r.attributes||{}).reduce((function(e,t){var n=r.attributes[t];switch(t){case"class":e.attrs.className=n,delete r.attributes.class;break;case"style":e.attrs.style=f(n);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=n:e.attrs[p.camelize(t)]=n}return e}),{attrs:{}}),i=n.style,l=void 0===i?{}:i,s=h(n,["style"]);return o.attrs.style=d({},o.attrs.style,l),t.apply(void 0,[r.tag,d({},o.attrs,s)].concat(b(a)))}.bind(null,l.a.createElement)}).call(this,r(40))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReactCSS=t.loop=t.handleActive=t.handleHover=t.hover=void 0;var n=p(r(106)),a=p(r(177)),o=p(r(197)),i=p(r(198)),l=p(r(199)),s=p(r(200));function p(e){return e&&e.__esModule?e:{default:e}}t.hover=i.default,t.handleHover=i.default,t.handleActive=l.default,t.loop=s.default;var c=t.ReactCSS=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i=128?"#000":"#fff"},t.red={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}};t.default=t},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,r){var n=r(67),a=r(117),o=r(175),i=r(10);e.exports=function(e,t){return(i(e)?n:o)(e,a(t,3))}},function(e,t){e.exports=r},function(e,t,r){var n=r(22),a=r(108),o=r(109),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?a(e):o(e)}},function(e,t,r){var n=r(130),a=r(133);e.exports=function(e,t){var r=a(e,t);return n(r)?r:void 0}},function(e,t,r){var n=r(50),a=r(46);e.exports=function(e){return null!=e&&a(e.length)&&!n(e)}},function(e,t,r){"use strict";var n=r(0),a=function(){function e(e,t){for(var r=0;r=0&&u.splice(t,1)}function g(e){var t=document.createElement("style");return void 0===e.attrs.type&&(e.attrs.type="text/css"),v(t,e.attrs),f(e,t),t}function v(e,t){Object.keys(t).forEach((function(r){e.setAttribute(r,t[r])}))}function y(e,t){var r,n,a,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var i=c++;r=p||(p=g(t)),n=x.bind(null,r,i,!1),a=x.bind(null,r,i,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(r=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",v(t,e.attrs),f(e,t),t}(t),n=S.bind(null,r,t),a=function(){m(r),r.href&&URL.revokeObjectURL(r.href)}):(r=g(t),n=O.bind(null,r),a=function(){m(r)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else a()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=i()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var r=b(e,t);return h(r,t),function(e){for(var n=[],a=0;a-1?(setTimeout((function(){e.props.globalState.selectedLineContainerTitles=[]})),this.setState({isExpanded:!0,isHighlighted:!0}),window.setTimeout((function(){e.setState({isHighlighted:!1})}),5e3)):this.setState({isExpanded:!1}))},t.prototype.renderHeader=function(){var e=this,t=this.state.isExpanded?"collapse":"collapse closed";return l.createElement("div",{className:"header",onClick:function(){return e.switchExpandedState()}},l.createElement("div",{className:"title"},this.props.title),l.createElement("div",{className:t},l.createElement(u.a,{icon:w})))},t.prototype.render=function(){return this.state.isExpanded?l.createElement("div",{className:"paneContainer"},l.createElement("div",{className:"paneContainer-content"},this.renderHeader(),l.createElement("div",{className:"paneList"},this.props.children)),l.createElement("div",{className:"paneContainer-highlight-border"+(this.state.isHighlighted?"":" transparent")})):l.createElement("div",{className:"paneContainer"},l.createElement("div",{className:"paneContainer-content"},this.renderHeader()))},t}(l.Component),pe=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=void 0!==this.props.fractionDigits?this.props.fractionDigits:2,t=this.props.value.toFixed(e)+(this.props.units?" "+this.props.units:"");return l.createElement("div",{className:"textLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"value",style:{color:this.props.color?this.props.color:""}},t))},t}(l.Component),ce=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.value?l.createElement(u.a,{icon:P}):l.createElement(u.a,{icon:ee}),t=this.props.value?"value check":"value uncheck";return l.createElement("div",{className:"textLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:t},e))},t}(l.Component),ue=function(e){function t(t){var r=e.call(this,t)||this,n=r.props.scene;return n?(r._sceneInstrumentation=new c.SceneInstrumentation(n),r._sceneInstrumentation.captureActiveMeshesEvaluationTime=!0,r._sceneInstrumentation.captureRenderTargetsRenderTime=!0,r._sceneInstrumentation.captureFrameTime=!0,r._sceneInstrumentation.captureRenderTime=!0,r._sceneInstrumentation.captureInterFrameTime=!0,r._sceneInstrumentation.captureParticlesRenderTime=!0,r._sceneInstrumentation.captureSpritesRenderTime=!0,r._sceneInstrumentation.capturePhysicsTime=!0,r._sceneInstrumentation.captureAnimationsTime=!0,r._engineInstrumentation=new c.EngineInstrumentation(n.getEngine()),r._engineInstrumentation.captureGPUFrameTime=!0,r._timerIntervalId=window.setInterval((function(){return r.forceUpdate()}),500),r):r}return a(t,e),t.prototype.componentWillUnmount=function(){this._sceneInstrumentation&&(this._sceneInstrumentation.dispose(),this._sceneInstrumentation=null),this._engineInstrumentation&&(this._engineInstrumentation.dispose(),this._engineInstrumentation=null),window.clearInterval(this._timerIntervalId)},t.prototype.render=function(){var e=this.props.scene;if(!e||!this._sceneInstrumentation||!this._engineInstrumentation)return null;var t=e.getEngine(),r=this._sceneInstrumentation,n=this._engineInstrumentation,a=t.getCaps();return l.createElement("div",{className:"pane"},l.createElement(le,{label:"Version",value:c.Engine.Version,color:"rgb(113, 159, 255)"}),l.createElement(pe,{label:"FPS",value:t.getFps(),fractionDigits:0}),l.createElement(se,{globalState:this.props.globalState,title:"COUNT"},l.createElement(le,{label:"Total meshes",value:e.meshes.length.toString()}),l.createElement(le,{label:"Active meshes",value:e.getActiveMeshes().length.toString()}),l.createElement(le,{label:"Active indices",value:e.getActiveIndices().toString()}),l.createElement(le,{label:"Active faces",value:(e.getActiveIndices()/3).toString()}),l.createElement(le,{label:"Active bones",value:e.getActiveBones().toString()}),l.createElement(le,{label:"Active particles",value:e.getActiveParticles().toString()}),l.createElement(le,{label:"Draw calls",value:r.drawCallsCounter.current.toString()}),l.createElement(le,{label:"Total lights",value:e.lights.length.toString()}),l.createElement(le,{label:"Total vertices",value:e.getTotalVertices().toString()}),l.createElement(le,{label:"Total materials",value:e.materials.length.toString()}),l.createElement(le,{label:"Total textures",value:e.textures.length.toString()})),l.createElement(se,{globalState:this.props.globalState,title:"FRAME STEPS DURATION"},l.createElement(pe,{label:"Absolute FPS",value:1e3/this._sceneInstrumentation.frameTimeCounter.lastSecAverage,fractionDigits:0}),l.createElement(pe,{label:"Meshes selection",value:r.activeMeshesEvaluationTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Render targets",value:r.renderTargetsRenderTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Particles",value:r.particlesRenderTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Sprites",value:r.spritesRenderTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Animations",value:r.animationsTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Physics",value:r.physicsTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Render",value:r.renderTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Frame total",value:r.frameTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"Inter-frame",value:r.interFrameTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"GPU Frame time",value:1e-6*n.gpuFrameTimeCounter.lastSecAverage,units:"ms"}),l.createElement(pe,{label:"GPU Frame time (average)",value:1e-6*n.gpuFrameTimeCounter.average,units:"ms"})),l.createElement(se,{globalState:this.props.globalState,title:"SYSTEM INFO"},l.createElement(le,{label:"Resolution",value:t.getRenderWidth()+"x"+t.getRenderHeight()}),l.createElement(le,{label:"Hardawre scaling level",value:t.getHardwareScalingLevel().toString()}),l.createElement(le,{label:"WebGL version",value:t.webGLVersion.toString()}),l.createElement(ce,{label:"Std derivatives",value:a.standardDerivatives}),l.createElement(ce,{label:"Compressed textures",value:void 0!==a.s3tc}),l.createElement(ce,{label:"Hardware instances",value:a.instancedArrays}),l.createElement(ce,{label:"Texture float",value:a.textureFloat}),l.createElement(ce,{label:"Texture half-float",value:a.textureHalfFloat}),l.createElement(ce,{label:"Render to texture float",value:a.textureFloatRender}),l.createElement(ce,{label:"Render to texture half-float",value:a.textureHalfFloatRender}),l.createElement(ce,{label:"32bits indices",value:a.uintIndices}),l.createElement(ce,{label:"Fragment depth",value:a.fragmentDepthSupported}),l.createElement(ce,{label:"High precision shaders",value:a.highPrecisionShaderSupported}),l.createElement(ce,{label:"Draw buffers",value:a.drawBuffersExtension}),l.createElement(ce,{label:"Vertex array object",value:a.vertexArrayObject}),l.createElement(ce,{label:"Timer query",value:void 0!==a.timerQuery}),l.createElement(ce,{label:"Stencil",value:t.isStencilEnable}),l.createElement(ce,{label:"Parallel shader compilation",value:null!=a.parallelShaderCompile}),l.createElement(pe,{label:"Max textures units",value:a.maxTexturesImageUnits,fractionDigits:0}),l.createElement(pe,{label:"Max textures size",value:a.maxTextureSize,fractionDigits:0}),l.createElement(pe,{label:"Max anisotropy",value:a.maxAnisotropy,fractionDigits:0}),l.createElement(le,{label:"Driver",value:t.getGlInfo().renderer})))},t}(ie),de=function(e){function t(r){var n=e.call(this,r)||this;return n._localChange=!1,n._uniqueId=t._UniqueIdSeed++,n.props.isSelected?n.state={isSelected:n.props.isSelected()}:n.state={isSelected:!0===n.props.target[n.props.propertyName]},n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r;return!((r=this.props.isSelected?e.isSelected():1==e.target[e.propertyName])===t.isSelected&&!this._localChange)&&(t.isSelected=r,this._localChange=!1,!0)},t.prototype.onChange=function(){var e;this._localChange=!0,this.props.onSelect?this.props.onSelect(!this.state.isSelected):(this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:null!==(e=this.props.replaySourceReplacement)&&void 0!==e?e:this.props.target,property:this.props.propertyName,value:!this.state.isSelected,initialValue:this.state.isSelected}),this.props.target[this.props.propertyName]=!this.state.isSelected),this.props.onValueChanged&&this.props.onValueChanged(),this.setState({isSelected:!this.state.isSelected})},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"checkBoxLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"checkBox"},l.createElement("input",{type:"checkbox",id:"checkbox"+this._uniqueId,className:"cbx hidden",checked:this.state.isSelected,onChange:function(){return e.onChange()}}),l.createElement("label",{htmlFor:"checkbox"+this._uniqueId,className:"lbl"})))},t._UniqueIdSeed=0,t}(l.Component),he=r(95),be=function(e){function t(t){var r=e.call(this,t)||this;return r.state={isEnabled:!1},r}return a(t,e),t.prototype.componentDidMount=function(){for(var e=0,t=c.UtilityLayerRenderer.DefaultKeepDepthUtilityLayer.utilityLayerScene.meshes;ewindow.innerHeight&&(r=window.innerHeight-n-10),e.style.top=r+"px",e.style.left=t.getBoundingClientRect().left-e.getBoundingClientRect().width+"px"}},t.prototype.shouldComponentUpdate=function(e,t){var r=e.value.toHexString()!==this.props.value.toHexString();return r&&(t.color={r:255*e.value.r,g:255*e.value.g,b:255*e.value.b,a:e.value instanceof c.Color4?e.value.a:1},t.hex=e.value.toHexString()),r||e.disableAlpha!==this.props.disableAlpha||t.hex!==this.state.hex||t.pickerEnabled!==this.state.pickerEnabled},t.prototype.componentDidUpdate=function(){this.syncPositions()},t.prototype.componentDidMount=function(){this.syncPositions()},t.prototype.render=function(){var e=this,t=this.state.color;return l.createElement("div",{className:"color-picker"},l.createElement("div",{className:"color-rect",ref:this._floatHostRef,style:{background:this.state.hex},onClick:function(){return e.setState({pickerEnabled:!0})}}),this.state.pickerEnabled&&l.createElement(l.Fragment,null,l.createElement("div",{className:"color-picker-cover",onClick:function(t){var r,n;t.target===(null===(n=null===(r=e._floatRef.current)||void 0===r?void 0:r.ownerDocument)||void 0===n?void 0:n.querySelector(".color-picker-cover"))&&e.setState({pickerEnabled:!1})}},l.createElement("div",{className:"color-picker-float",ref:this._floatRef},l.createElement(xe.SketchPicker,{color:t,disableAlpha:this.props.disableAlpha,onChange:function(t){var r;e.props.disableAlpha?r=c.Color3.FromInts(t.rgb.r,t.rgb.g,t.rgb.b).toHexString():r=c.Color4.FromInts(t.rgb.r,t.rgb.g,t.rgb.b,255*(t.rgb.a||0)).toHexString();e.setState({hex:r,color:t.rgb}),e.props.onColorChanged(r)}})))))},t}(l.Component),Se=r(94),Pe=function(e){function t(t){var r=e.call(this,t)||this;return r._localChange=!1,r.state={isExpanded:!1,color:r.props.target[r.props.propertyName].clone()},t.isLinear&&r.state.color.toGammaSpaceToRef(r.state.color),t.target._isLinearColor=t.isLinear,r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r=this.props.isLinear?e.target[e.propertyName].toGammaSpace():e.target[e.propertyName];return!(r.equals(t.color)&&!this._localChange)&&(t.color=r.clone(),this._localChange=!1,!0)},t.prototype.setPropertyValue=function(e){this.props.target[this.props.propertyName]=e,this.props.isLinear&&(this.props.target[this.props.propertyName]=e.toLinearSpace())},t.prototype.onChange=function(e){this._localChange=!0;var t=c.Color3.FromHexString(e);this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:t,initialValue:this.state.color}),this.setPropertyValue(t),this.setState({color:t})},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.color,initialValue:e})},t.prototype.updateStateR=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.r=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateG=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.g=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateB=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.b=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.copyToClipboard=function(){var e=document.createElement("div");if(e.textContent=this.state.color.toHexString(),document.body.appendChild(e),window.getSelection){var t=document.createRange();t.selectNode(e),window.getSelection().removeAllRanges(),window.getSelection().addRange(t)}document.execCommand("copy"),e.remove()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y});return l.createElement("div",{className:"color3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"color3"},l.createElement(Oe,{value:this.state.color,disableAlpha:!0,onColorChanged:function(t){e.onChange(t)}})),l.createElement("div",{className:"copy hoverIcon",onClick:function(){return e.copyToClipboard()},title:"Copy to clipboard"},l.createElement("img",{src:Se,alt:""})),l.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"r",value:this.state.color.r,onChange:function(t){return e.updateStateR(t)}}),l.createElement(Ee,{label:"g",value:this.state.color.g,onChange:function(t){return e.updateStateG(t)}}),l.createElement(Ee,{label:"b",value:this.state.color.b,onChange:function(t){return e.updateStateB(t)}})))},t}(l.Component),we=function(e){function t(t){var r=e.call(this,t)||this;return r._localChange=!1,r.state={isExpanded:!1,value:r.getCurrentValue().clone()},r}return a(t,e),t.prototype.getCurrentValue=function(){return this.props.target[this.props.propertyName]},t.prototype.shouldComponentUpdate=function(e,t){var r=this.getCurrentValue();return!(r.equals(t.value)&&!this._localChange)&&(t.value=r.clone(),this._localChange=!1,!0)},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e){var t;this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:null!==(t=this.props.replaySourceReplacement)&&void 0!==t?t:this.props.target,property:this.props.propertyName,value:this.state.value,initialValue:e})},t.prototype.updateVector3=function(){var e=this.props.target[this.props.propertyName].clone();this.props.target[this.props.propertyName]=this.state.value,this.setState({value:e}),this.raiseOnPropertyChanged(e)},t.prototype.updateStateX=function(e){this._localChange=!0,this.state.value.x=e,this.updateVector3()},t.prototype.updateStateY=function(e){this._localChange=!0,this.state.value.y=e,this.updateVector3()},t.prototype.updateStateZ=function(e){this._localChange=!0,this.state.value.z=e,this.updateVector3()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y});return l.createElement("div",{className:"vector3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"vector"},!this.props.useEuler&&"X: "+this.state.value.x.toFixed(2)+", Y: "+this.state.value.y.toFixed(2)+", Z: "+this.state.value.z.toFixed(2),this.props.useEuler&&"X: "+c.Tools.ToDegrees(this.state.value.x).toFixed(2)+", Y: "+c.Tools.ToDegrees(this.state.value.y).toFixed(2)+", Z: "+c.Tools.ToDegrees(this.state.value.z).toFixed(2)),l.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&!this.props.useEuler&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),l.createElement(Ee,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}}),l.createElement(Ee,{label:"z",step:this.props.step,value:this.state.value.z,onChange:function(t){return e.updateStateZ(t)}})),this.state.isExpanded&&this.props.useEuler&&l.createElement("div",{className:"secondLine"},l.createElement(ve,{label:"x",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(this.state.value.x),onChange:function(t){return e.updateStateX(c.Tools.ToRadians(t))}}),l.createElement(ve,{label:"y",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(this.state.value.y),onChange:function(t){return e.updateStateY(c.Tools.ToRadians(t))}}),l.createElement(ve,{label:"z",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(this.state.value.z),onChange:function(t){return e.updateStateZ(c.Tools.ToRadians(t))}})))},t.defaultProps={step:.001},t}(l.Component),ke=function(e){function t(t){var r=e.call(this,t)||this;r._localChange=!1;var n=r.props.target[r.props.propertyName].clone();return r.state={isExpanded:!1,value:n,eulerValue:n.toEulerAngles()},r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r=e.target[e.propertyName];return!(r.equals(t.value)&&!this._localChange)&&(t.value=r.clone(),this._localChange=!1,!0)},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e,t){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:e,initialValue:t})},t.prototype.updateQuaternion=function(){var e=this.props.target[this.props.propertyName].clone();this.props.target[this.props.propertyName]=this.state.value,this.setState({value:e}),this.raiseOnPropertyChanged(this.state.value,e)},t.prototype.updateStateX=function(e){this._localChange=!0,this.state.value.x=e,this.updateQuaternion()},t.prototype.updateStateY=function(e){this._localChange=!0,this.state.value.y=e,this.updateQuaternion()},t.prototype.updateStateZ=function(e){this._localChange=!0,this.state.value.z=e,this.updateQuaternion()},t.prototype.updateStateW=function(e){this._localChange=!0,this.state.value.w=e,this.updateQuaternion()},t.prototype.updateQuaternionFromEuler=function(){var e=this.state.eulerValue.toQuaternion();this.state.value.x=e.x,this.state.value.y=e.y,this.state.value.z=e.z,this.state.value.w=e.w,this.updateQuaternion()},t.prototype.updateStateEulerX=function(e){this._localChange=!0,this.state.eulerValue.x=c.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.updateStateEulerY=function(e){this._localChange=!0,this.state.eulerValue.y=c.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.updateStateEulerZ=function(e){this._localChange=!0,this.state.eulerValue.z=c.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y}),r=this.state.value,n=this.state.eulerValue;return l.createElement("div",{className:"vector3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"vector"},!this.props.useEuler&&"X: "+r.x.toFixed(1)+", Y: "+r.y.toFixed(1)+", Z: "+r.z.toFixed(1)+", W: "+r.w.toFixed(1),this.props.useEuler&&"X: "+c.Tools.ToDegrees(n.x).toFixed(2)+", Y: "+c.Tools.ToDegrees(n.y).toFixed(2)+", Z: "+c.Tools.ToDegrees(n.z).toFixed(2)),l.createElement("div",{className:"expand",onClick:function(){return e.switchExpandState()}},t)),this.state.isExpanded&&!this.props.useEuler&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"x",value:r.x,onChange:function(t){return e.updateStateX(t)}}),l.createElement(Ee,{label:"y",value:r.y,onChange:function(t){return e.updateStateY(t)}}),l.createElement(Ee,{label:"z",value:r.z,onChange:function(t){return e.updateStateZ(t)}}),l.createElement(Ee,{label:"w",value:r.w,onChange:function(t){return e.updateStateW(t)}})),this.state.isExpanded&&this.props.useEuler&&l.createElement("div",{className:"secondLine"},l.createElement(ve,{label:"x",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(n.x),onChange:function(t){return e.updateStateEulerX(t)}}),l.createElement(ve,{label:"y",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(n.y),onChange:function(t){return e.updateStateEulerY(t)}}),l.createElement(ve,{label:"z",minimum:0,maximum:360,step:.1,directValue:c.Tools.ToDegrees(n.z),onChange:function(t){return e.updateStateEulerZ(t)}})))},t}(l.Component),_e=function(e){function t(t){var r=e.call(this,t)||this;return r._localChange=!1,r.state={value:(void 0!==r.props.value?r.props.value:r.props.target[r.props.propertyName])||""},r}return a(t,e),t.prototype.componentWillUnmount=function(){this.props.lockObject.lock=!1},t.prototype.shouldComponentUpdate=function(e,t){if(this._localChange)return this._localChange=!1,!0;var r=void 0!==e.value?e.value:e.target[e.propertyName];return r!==t.value&&(t.value=r||"",!0)},t.prototype.raiseOnPropertyChanged=function(e,t){this.props.onChange?this.props.onChange(e):this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:e,initialValue:t})},t.prototype.updateValue=function(e){this._localChange=!0;var t=void 0!==this.props.value?this.props.value:this.props.target[this.props.propertyName];this.setState({value:e}),this.raiseOnPropertyChanged(e,t),this.props.propertyName&&(this.props.target[this.props.propertyName]=e)},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"textInputLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"value"},l.createElement("input",{value:this.state.value,onBlur:function(){return e.props.lockObject.lock=!1},onFocus:function(){return e.props.lockObject.lock=!0},onChange:function(t){return e.updateValue(t.target.value)}})))},t}(l.Component),Ne=function(e){function t(t){var r=e.call(this,t)||this;return r.state={mode:0},r}return a(t,e),t.prototype.renderInspectable=function(e){switch(e.type){case c.InspectableType.Checkbox:return l.createElement(de,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.InspectableType.Slider:return l.createElement(ve,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,step:void 0!==e.step?e.step:.1,minimum:void 0!==e.min?e.min:0,maximum:void 0!==e.max?e.max:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.InspectableType.Vector3:return l.createElement(we,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.InspectableType.Quaternion:return l.createElement(ke,{useEuler:this.props.globalState.onlyUseEulers,key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.InspectableType.Color3:return l.createElement(Pe,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.InspectableType.String:return l.createElement(_e,{key:e.label,label:e.label,lockObject:this.props.lockObject,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return null},t.prototype.render=function(){var e=this,t=this.props.target.inspectableCustomProperties;return t&&0!==t.length?l.createElement(se,{title:"CUSTOM",globalState:this.props.globalState},t.map((function(t){return e.renderInspectable(t)}))):null},t}(l.Component),Te=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this;return l.createElement("div",{className:"buttonLine"},l.createElement("button",{onClick:function(){return e.props.onClick()}},this.props.label))},t}(l.Component),Me=function(e){function t(t){var r=e.call(this,t)||this;r._localChange=!1;var n=r.props.target[r.props.propertyName];return r.state={value:n?r.props.isInteger?n.toFixed(0):n.toFixed(r.props.digits||3):"0"},r._store=n,r}return a(t,e),t.prototype.componentWillUnmount=function(){this.unlock()},t.prototype.shouldComponentUpdate=function(e,t){if(this._localChange)return this._localChange=!1,!0;var r=e.target[e.propertyName],n=r?this.props.isInteger?r.toFixed(0):r.toFixed(this.props.digits||3):"0";return n!==t.value&&(t.value=n,!0)},t.prototype.raiseOnPropertyChanged=function(e,t){var r;this.props.onChange&&this.props.onChange(e),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:null!==(r=this.props.replaySourceReplacement)&&void 0!==r?r:this.props.target,property:this.props.propertyName,value:e,initialValue:t})},t.prototype.updateValue=function(e){var t;/[^0-9\.\-]/g.test(e)||(t=this.props.isInteger?parseInt(e):parseFloat(e),isNaN(t)||void 0===this.props.min||tthis._panStop.x&&(console.log("right to left"),this.panTo("right",Math.abs(this._panStart.x-this._panStop.x))),this._panStart.xthis._panStop.y&&console.log("down up"),this._panStart.yt.props.currentFrame}));r&&(this.props.onCurrentFrameChange(r.frame),this.setState({selected:r}),this._scrollable.current.scrollLeft=5*r.frame)},t.prototype.previousKeyframe=function(e){var t=this;e.preventDefault();var r=this.props.keyframes.find((function(e){return e.frame1){var a;"number"==typeof(a=this.props.entity[t[0]][t[1]])&&(n=r===c.Animation.ANIMATIONTYPE_FLOAT)}if(n){var o=void 0,i=void 0;switch(r){case c.Animation.ANIMATIONTYPE_FLOAT:o=1,i=1;break;case c.Animation.ANIMATIONTYPE_VECTOR2:o=new c.Vector2(1,1),i=new c.Vector2(1,1);break;case c.Animation.ANIMATIONTYPE_VECTOR3:o=new c.Vector3(1,1,1),i=new c.Vector3(1,1,1);break;case c.Animation.ANIMATIONTYPE_QUATERNION:o=new c.Quaternion(1,1,1,1),i=new c.Quaternion(1,1,1,1);break;case c.Animation.ANIMATIONTYPE_COLOR3:o=new c.Color3(1,1,1),i=new c.Color3(1,1,1);break;case c.Animation.ANIMATIONTYPE_COLOR4:o=new c.Color4(1,1,1,1),i=new c.Color4(1,1,1,1);break;case c.Animation.ANIMATIONTYPE_SIZE:o=new c.Size(1,1),i=new c.Size(1,1);break;default:console.log("not recognized")}var l=new c.Animation(this.state.animationName,this.state.animationTargetProperty,30,r),s=[];s.push({frame:0,value:o}),s.push({frame:100,value:i}),l.setKeys(s),null===(e=this.props.entity.animations)||void 0===e||e.push(l)}else this.setState({notification:'The property "'+this.state.animationTargetProperty+'" is not a "'+this.state.animationType+'" type'})}else this.setState({notification:"You need to provide a name and target property."})},t.prototype.clearNotification=function(){this.setState({notification:""})},t.prototype.addKeyframeClick=function(){var e=this.state.selected;if(e.dataType===c.Animation.ANIMATIONTYPE_FLOAT){var t=e.getKeys(),r=this.state.currentFrame,n=this.state.currentValue;t.push({frame:r,value:n}),t.sort((function(e,t){return e.frame-t.frame})),e.setKeys(t),this.selectAnimation(e)}},t.prototype.removeKeyframeClick=function(){var e=this.state.selected;if(e.dataType===c.Animation.ANIMATIONTYPE_FLOAT){var t=e.getKeys(),r=this.state.currentFrame,n=t.filter((function(e){return e.frame!==r}));e.setKeys(n),this.selectAnimation(e)}},t.prototype.addKeyFrame=function(e){var t;e.preventDefault();var r=e.target,n=r.createSVGPoint();n.x=e.clientX,n.y=e.clientY;var a,o=null===(t=r.getScreenCTM())||void 0===t?void 0:t.inverse(),i=n.matrixTransform(o),l=this.state.selected,s=l.getKeys();i.y<50&&(a=1+100/i.y*.1),i.y>50&&(a=1-100/i.y*.1),s.push({frame:i.x,value:a}),l.setKeys(s),this.selectAnimation(l)},t.prototype.updateKeyframe=function(e,t){var r,n=this.state.selected,a=[],o=null===(r=this.state.svgKeyframes)||void 0===r?void 0:r.map((function(r,n){n===t&&(r.keyframePoint.x=e.x,r.keyframePoint.y=e.y);var o;return r.keyframePoint.y<50&&(o=1+100/r.keyframePoint.y*.1),r.keyframePoint.y>50&&(o=1-100/r.keyframePoint.y*.1),a.push({frame:r.keyframePoint.x,value:o}),r}));n.setKeys(a),this.setState({svgKeyframes:o})},t.prototype.getAnimationProperties=function(e){var t,r,n=e.getEasingFunction();return void 0===n?(t=void 0,r=void 0):(t=n.constructor.name,r=n.getEasingMode()),{easingType:t,easingMode:r}},t.prototype.getPathData=function(e){var t=this.getAnimationProperties(e),r=t.easingMode,n=t.easingType,a=e.getKeys();if(void 0===a)return"";var o=a[0],i=this._heightScale/2,l="M"+o.frame+", "+(this._heightScale-o.value*i);if(this.state&&this.state.flatTangent)l=this.curvePathFlat(a,l,i,e.dataType);else if(this.getAnimationData(e).usesTangents)l=this.curvePathWithTangents(a,l,i,e.dataType);else if(console.log("no tangents in this animation"),void 0===n&&void 0===r)l=this.linearInterpolation(a,l,i);else{var s=e.getEasingFunction();l=this.curvePath(a,l,i,s)}return l},t.prototype.drawAllFrames=function(e,t,r){for(var n=e.frame;np.y?b=(u.y-p.y)*d+p.y:u.yp.y?f=(u.y-p.y)*h+p.y:u.y0&&e.keyframePoint.x<1?1:Math.round(e.keyframePoint.x)),n[t].frame=a,n[t].value=(this._heightScale-e.keyframePoint.y)/this._heightScale*2,r.setKeys(n),this.selectAnimation(r)},t.prototype.linearInterpolation=function(e,t,r){var n=this;return e.forEach((function(e,a){var o=new c.Vector2(0,0);o.x=e.frame,o.y=n._heightScale-e.value*r,n.setKeyframePointLinear(o,a),0!==a&&(t+=" L"+o.x+" "+o.y)})),t},t.prototype.setKeyframePointLinear=function(e,t){var r={keyframePoint:e,rightControlPoint:null,leftControlPoint:null,id:t.toString()};this._svgKeyframes.push(r)},t.prototype.setKeyframePoint=function(e,t,r){var n;0===t?n={keyframePoint:e[0],rightControlPoint:null,leftControlPoint:null,id:t.toString()}:(this._svgKeyframes[t-1].rightControlPoint=e[1],n={keyframePoint:e[3],rightControlPoint:null,leftControlPoint:e[2],id:t.toString()}),this._svgKeyframes.push(n)},t.prototype.isAnimationPlaying=function(){this._isPlaying=this.props.scene.getAllAnimatablesByTarget(this.props.entity).length>0,this._isPlaying?this.props.playOrPause():this._isPlaying=!1},t.prototype.selectAnimation=function(e){this.isAnimationPlaying(),this._svgKeyframes=[];var t=this.getPathData(e),r=e.getHighestFrame();""===t&&console.log("no keyframes in this animation"),this.setState({selected:e,currentPathData:t,svgKeyframes:this._svgKeyframes,lastFrame:r})},t.prototype.getAnimationData=function(e){var t=e.loopMode,r=e.name,n=e.blendingSpeed,a=e.targetProperty;return{loopMode:t,name:r,blendingSpeed:n,targetPropertyPath:e.targetPropertyPath,targetProperty:a,framesPerSecond:e.framePerSecond,highestFrame:e.getHighestFrame(),serialized:e.serialize(),usesTangents:e.getKeys().find((function(e){return e.inTangent}))}},t.prototype.getAnimationTypeofChange=function(e){var t=0;switch(e){case"Float":t=c.Animation.ANIMATIONTYPE_FLOAT;break;case"Quaternion":t=c.Animation.ANIMATIONTYPE_QUATERNION;break;case"Vector3":t=c.Animation.ANIMATIONTYPE_VECTOR3;break;case"Vector2":t=c.Animation.ANIMATIONTYPE_VECTOR2;break;case"Size":t=c.Animation.ANIMATIONTYPE_SIZE;break;case"Color3":t=c.Animation.ANIMATIONTYPE_COLOR3;break;case"Color4":t=c.Animation.ANIMATIONTYPE_COLOR4}return t},t.prototype.interpolateControlPoints=function(e,t,r,n,a,o){var i,l,s,p,u,d=new c.Vector2,h=new c.Vector2,b=e,f=new c.Vector2,m=new c.Vector2,g=o;if(!(r<=0||r>=1||a<=0||a>=1||r>=a)&&0!=(u=(i=3*(1-r)*(1-r)*r)*(p=3*(1-a)*a*a)-(l=3*(1-r)*r*r)*(s=3*(1-a)*(1-a)*a)))return d.x=t.x-((1-r)*(1-r)*(1-r)*e.x+r*r*r*o.x),d.y=t.y-((1-r)*(1-r)*(1-r)*e.y+r*r*r*o.y),h.x=n.x-((1-a)*(1-a)*(1-a)*e.x+a*a*a*o.x),h.y=n.y-((1-a)*(1-a)*(1-a)*e.y+a*a*a*o.y),f.x=(p*d.x-l*h.x)/u,f.y=(p*d.y-l*h.y)/u,m.x=(-s*d.x+i*h.x)/u,m.y=(-s*d.y+i*h.y)/u,[b,f,m,g]},t.prototype.changeCurrentFrame=function(e){var t,r=this._selectedCurve.current;if(r){var n=e*r.getTotalLength()/100,a=r.getPointAtLength(n),o=this._heightScale/2,i=((null==a?void 0:a.y)*this._heightScale-Math.pow(this._heightScale,2)/2)/o/this._heightScale,l=Math.sign(i);t=-1===l?Math.abs(i+l):l-i,this.setState({currentFrame:e,currentValue:t,currentPoint:a})}},t.prototype.setFlatTangent=function(){var e=this;this.setState({flatTangent:!this.state.flatTangent},(function(){return e.selectAnimation(e.state.selected)}))},t.prototype.zoom=function(e){e.nativeEvent.stopImmediatePropagation(),console.log(e.deltaY);var t=1;t=-1===Math.sign(e.deltaY)?this.state.scale-.01:this.state.scale+.01,this.setState({scale:t},this.setAxesLength)},t.prototype.render=function(){var e=this;return l.createElement("div",{id:"animation-curve-editor"},l.createElement(De,{message:this.state.notification,open:""!==this.state.notification,close:function(){return e.clearNotification()}}),l.createElement("div",{className:"header"},l.createElement("div",{className:"title"},this.props.title),l.createElement("div",{className:"close",onClick:function(t){return e.props.close(t)}},l.createElement(u.a,{icon:J}))),l.createElement(ze,{currentValue:this.state.currentValue,currentFrame:this.state.currentFrame,handleFrameChange:function(t){return e.handleFrameChange(t)},handleValueChange:function(t){return e.handleValueChange(t)},addKeyframe:function(){return e.addKeyframeClick()},removeKeyframe:function(){return e.removeKeyframeClick()},flatTangent:function(){return e.setFlatTangent()}}),l.createElement("div",{className:"content"},l.createElement("div",{className:"row"},l.createElement("div",{className:"animation-list"},l.createElement("div",null,l.createElement("div",{className:"label-input"},l.createElement("label",null,"Animation Name"),l.createElement("input",{type:"text",value:this.state.animationName,onChange:function(t){return e.handleNameChange(t)}})),l.createElement("div",{className:"label-input"},l.createElement("label",null,"Type"),l.createElement("select",{onChange:function(t){return e.handleTypeChange(t)},value:this.state.animationType},l.createElement("option",{value:"Float"},"Float"),l.createElement("option",{value:"Vector3"},"Vector3"),l.createElement("option",{value:"Vector2"},"Vector2"),l.createElement("option",{value:"Quaternion"},"Quaternion"),l.createElement("option",{value:"Color3"},"Color3"),l.createElement("option",{value:"Color4"},"Color4"),l.createElement("option",{value:"Size"},"Size"))),l.createElement("div",{className:"label-input"},l.createElement("label",null,"Target Property"),l.createElement("input",{type:"text",value:this.state.animationTargetProperty,onChange:function(t){return e.handlePropertyChange(t)}})),l.createElement(Te,{label:"Add Animation",onClick:function(){return e.addAnimation()}})),l.createElement("div",{className:"object-tree"},l.createElement("h2",null,this.props.entityName),l.createElement("ul",null,this.props.animations&&this.props.animations.map((function(t,r){var n;switch(t.dataType){case c.Animation.ANIMATIONTYPE_FLOAT:n=l.createElement("li",{className:e.state.selected.name===t.name?"active":"",key:r,onClick:function(){return e.selectAnimation(t)}},t.name,l.createElement("strong",null,t.targetProperty));break;case c.Animation.ANIMATIONTYPE_VECTOR2:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_x"},"Property ",l.createElement("strong",null,"X")),l.createElement("li",{key:r+"_y"},"Property ",l.createElement("strong",null,"Y"))));break;case c.Animation.ANIMATIONTYPE_VECTOR3:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_x"},"Property ",l.createElement("strong",null,"X")),l.createElement("li",{key:r+"_y"},"Property ",l.createElement("strong",null,"Y")),l.createElement("li",{key:r+"_z"},"Property ",l.createElement("strong",null,"Z"))));break;case c.Animation.ANIMATIONTYPE_QUATERNION:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_x"},"Property ",l.createElement("strong",null,"X")),l.createElement("li",{key:r+"_y"},"Property ",l.createElement("strong",null,"Y")),l.createElement("li",{key:r+"_z"},"Property ",l.createElement("strong",null,"Z")),l.createElement("li",{key:r+"_w"},"Property ",l.createElement("strong",null,"W"))));break;case c.Animation.ANIMATIONTYPE_COLOR3:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_r"},"Property ",l.createElement("strong",null,"R")),l.createElement("li",{key:r+"_g"},"Property ",l.createElement("strong",null,"G")),l.createElement("li",{key:r+"_b"},"Property ",l.createElement("strong",null,"B"))));break;case c.Animation.ANIMATIONTYPE_COLOR4:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_r"},"Property ",l.createElement("strong",null,"R")),l.createElement("li",{key:r+"_g"},"Property ",l.createElement("strong",null,"G")),l.createElement("li",{key:r+"_b"},"Property ",l.createElement("strong",null,"B")),l.createElement("li",{key:r+"_a"},"Property ",l.createElement("strong",null,"A"))));break;case c.Animation.ANIMATIONTYPE_SIZE:n=l.createElement("li",{className:"property",key:r},l.createElement("p",null,t.targetProperty),l.createElement("ul",null,l.createElement("li",{key:r+"_width"},"Property ",l.createElement("strong",null,"Width")),l.createElement("li",{key:r+"_height"},"Property ",l.createElement("strong",null,"Height"))));break;default:console.log("not recognized"),n=null}return n}))))),l.createElement("div",{ref:this._graphCanvas,className:"graph-chart",onWheel:function(t){return e.zoom(t)}},l.createElement(Ie,{frame:this.state.currentFrame,offset:this.state.playheadOffset}),this.state.svgKeyframes&&l.createElement(Le,{ref:this._svgCanvas,viewBoxScale:this.state.frameAxisLength.length,scale:this.state.scale,keyframeSvgPoints:this.state.svgKeyframes,updatePosition:function(t,r){return e.renderPoints(t,r)}},this.state.frameAxisLength.map((function(t,r){return l.createElement("svg",{key:r},l.createElement("text",{x:t.value,y:"-2",dx:"-1em",style:{font:"italic 0.2em sans-serif",fontSize:.2*e.state.scale+"em"}},t.value),l.createElement("line",{x1:t.value,y1:"0",x2:t.value,y2:"100%"}))})),this.state.valueAxisLength.map((function(t,r){return l.createElement("svg",{key:r},l.createElement("text",{x:"-3",y:t.value,dx:"-1em",style:{font:"italic 0.2em sans-serif",fontSize:.2*e.state.scale+"em"}},t.label.toFixed(1)),l.createElement("line",{x1:"0",y1:t.value,x2:"100%",y2:t.value}))})),l.createElement("path",{ref:this._selectedCurve,pathLength:this.state.lastFrame,id:"curve",d:this.state.currentPathData,style:{stroke:"red",fill:"none",strokeWidth:"0.5"}}),this._frames&&this._frames.map((function(e){return l.createElement("svg",{x:e.x,y:e.y,style:{overflow:"visible"}},l.createElement("circle",{cx:"0",cy:"0",r:"2",stroke:"black",strokeWidth:"1",fill:"white"}))}))))),l.createElement("div",{className:"row"},l.createElement(je,{currentFrame:this.state.currentFrame,onCurrentFrameChange:function(t){return e.changeCurrentFrame(t)},keyframes:this.state.selected.getKeys(),selected:this.state.selected.getKeys()[0]}))))},t}(l.Component),Be=function(e){function t(t){var r=e.call(this,t)||this;return r._container=document.createElement("div"),r._container.id=r.props.id,r._window,r.state={isComponentMounted:!1,blockedByBrowser:!1},r}return a(t,e),t.prototype.componentDidMount=function(){this.openPopup(),this.setState({isComponentMounted:!0})},t.prototype.openPopup=function(){var e=this,t=this.props,r=t.title,n=t.size,a=t.onClose,o=t.onOpen,i="window_"+r;this._container=aa._CreatePopup(r,i,n.width,n.height),this._window=aa[i],this._window?(o(this._window),this._window.addEventListener("beforeunload",(function(){return e._window&&a(e._window)}))):this._window||this.setState({blockedByBrowser:!0},(function(){e.state.blockedByBrowser&&(alert("You might have blocked popups in your browser"),console.warn("Popup window couldn't be created"))}))},t.prototype.componentWillUnmount=function(){this._window&&this._window.close()},t.prototype.render=function(){return this.state.isComponentMounted&&null!==this._container?p.createPortal(this.props.children,this._container):null},t}(l.Component),He=function(e){function t(t){var r,n=e.call(this,t)||this;n._animations=null,n._isPlaying=!1,n._isCurveEditorOpen=!1,n._animationControl={from:0,to:0,loop:!1},n.state={currentFrame:0};var a=n.props.animatable;if(n._ranges=a.getAnimationRanges?a.getAnimationRanges():[],a.getAnimatables){var o=a.getAnimatables();n._animations=new Array,o.forEach((function(e){var t;e.animations&&(t=n._animations).push.apply(t,e.animations)})),a.animations&&(r=n._animations).push.apply(r,a.animations),n._animations&&n._animations.length&&n._animations.forEach((function(e){var t=e.getKeys();if(t&&t.length>0){t[0].framen._animationControl.to&&(n._animationControl.to=t[r].frame)}}))}return n.timelineRef=l.createRef(),n}return a(t,e),t.prototype.playOrPause=function(){var e=this.props.animatable;this._isPlaying=this.props.scene.getAllAnimatablesByTarget(e).length>0,this._isPlaying?(this.props.scene.stopAnimation(this.props.animatable),this._mainAnimatable=null):this._mainAnimatable=this.props.scene.beginAnimation(this.props.animatable,this._animationControl.from,this._animationControl.to,this._animationControl.loop),this.forceUpdate()},t.prototype.componentDidMount=function(){var e=this;this._onBeforeRenderObserver=this.props.scene.onBeforeRenderObservable.add((function(){e._isPlaying&&e._mainAnimatable&&e.setState({currentFrame:e._mainAnimatable.masterFrame})}))},t.prototype.componentWillUnmount=function(){this._onBeforeRenderObserver&&(this.props.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)},t.prototype.onCurrentFrameChange=function(e){this._mainAnimatable&&(this._mainAnimatable.goToFrame(e),this.setState({currentFrame:e}))},t.prototype.onChangeFromOrTo=function(){this.playOrPause(),this._isPlaying&&this.playOrPause()},t.prototype.onOpenAnimationCurveEditor=function(){this._isCurveEditorOpen=!0},t.prototype.onCloseAnimationCurveEditor=function(e){this._isCurveEditorOpen=!1,null===e?console.log("Window already closed"):e.close()},t.prototype.render=function(){var e=this,t=this.props.animatable,r=this.props.animatable,n=this.props.scene.getAllAnimatablesByTarget(t);this._isPlaying=n.length>0,this._isPlaying&&!this._mainAnimatable&&(this._mainAnimatable=n[0],this._mainAnimatable&&(this._animationControl.from=this._mainAnimatable.fromFrame,this._animationControl.to=this._mainAnimatable.toFrame,this._animationControl.loop=this._mainAnimatable.loopAnimation));var a=t.animations;return l.createElement("div",null,this._ranges.length>0&&l.createElement(se,{globalState:this.props.globalState,title:"ANIMATION RANGES"},this._ranges.map((function(r,n){return l.createElement(Te,{key:r.name+n,label:r.name,onClick:function(){e._mainAnimatable=null,e.props.scene.beginAnimation(t,r.from,r.to,!0)}})}))),a&&a.length>0&&l.createElement(l.Fragment,null,l.createElement(se,{globalState:this.props.globalState,title:"ANIMATIONS"},l.createElement(le,{label:"Count",value:a.length.toString()}),l.createElement(Te,{label:"Edit",onClick:function(){return e.onOpenAnimationCurveEditor()}}),a.map((function(e,t){return l.createElement(le,{key:e.targetProperty+t,label:"#"+t+" >",value:e.targetProperty})})),this._isCurveEditorOpen&&l.createElement(Be,{id:"curve-editor",title:"Curve Animation Editor",size:{width:950,height:540},onOpen:function(e){e.console.log("Window opened!!")},onClose:function(t){return e.onCloseAnimationCurveEditor(t)}},l.createElement(Ge,{title:"Animations Curve Editor",scene:this.props.scene,entity:r,entityName:r.id,close:function(t){return e.onCloseAnimationCurveEditor(t.view)},playOrPause:function(){return e.playOrPause()},animations:a}))),l.createElement(se,{globalState:this.props.globalState,title:"ANIMATION GENERAL CONTROL"},l.createElement(Me,{lockObject:this.props.lockObject,isInteger:!0,label:"From",target:this._animationControl,propertyName:"from",onChange:function(){return e.onChangeFromOrTo()}}),l.createElement(Me,{lockObject:this.props.lockObject,isInteger:!0,label:"To",target:this._animationControl,propertyName:"to",onChange:function(){return e.onChangeFromOrTo()}}),l.createElement(de,{label:"Loop",onSelect:function(t){return e._animationControl.loop=t},isSelected:function(){return e._animationControl.loop}}),this._isPlaying&&l.createElement(ve,{ref:this.timelineRef,label:"Current frame",minimum:this._animationControl.from,maximum:this._animationControl.to,step:(this._animationControl.to-this._animationControl.from)/1e3,directValue:this.state.currentFrame,onInput:function(t){return e.onCurrentFrameChange(t)}}),l.createElement(Te,{label:this._isPlaying?"Stop":"Play",onClick:function(){return e.playOrPause()}}),(this._ranges.length>0||this._animations&&this._animations.length>0)&&l.createElement(l.Fragment,null,l.createElement(de,{label:"Enable override",onSelect:function(t){t?(r.animationPropertiesOverride=new c.AnimationPropertiesOverride,r.animationPropertiesOverride.blendingSpeed=.05):r.animationPropertiesOverride=null,e.forceUpdate()},isSelected:function(){return null!=r.animationPropertiesOverride},onValueChanged:function(){return e.forceUpdate()}}),null!=r.animationPropertiesOverride&&l.createElement("div",null,l.createElement(de,{label:"Enable blending",target:r.animationPropertiesOverride,propertyName:"enableBlending",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Blending speed",target:r.animationPropertiesOverride,propertyName:"blendingSpeed",minimum:0,maximum:.1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))))))},t}(l.Component),Ue=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e,t=this,r=this.props.material;r.depthFunction=null!==(e=r.depthFunction)&&void 0!==e?e:0;var n=[{label:"Clockwise",value:c.Material.ClockWiseSideOrientation},{label:"Counterclockwise",value:c.Material.CounterClockWiseSideOrientation}],a=[{label:"",value:ye},{label:"Opaque",value:c.PBRMaterial.PBRMATERIAL_OPAQUE},{label:"Alpha test",value:c.PBRMaterial.PBRMATERIAL_ALPHATEST},{label:"Alpha blend",value:c.PBRMaterial.PBRMATERIAL_ALPHABLEND},{label:"Alpha blend and test",value:c.PBRMaterial.PBRMATERIAL_ALPHATESTANDBLEND}],o=[{label:"Combine",value:c.Constants.ALPHA_COMBINE},{label:"One one",value:c.Constants.ALPHA_ONEONE},{label:"Add",value:c.Constants.ALPHA_ADD},{label:"Subtract",value:c.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:c.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:c.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:c.Constants.ALPHA_PREMULTIPLIED}],i=[{label:"",value:0},{label:"Never",value:c.Engine.NEVER},{label:"Always",value:c.Engine.ALWAYS},{label:"Equal",value:c.Engine.EQUAL},{label:"Less",value:c.Engine.LESS},{label:"Less or equal",value:c.Engine.LEQUAL},{label:"Greater",value:c.Engine.GREATER},{label:"Greater or equal",value:c.Engine.GEQUAL},{label:"Not equal",value:c.Engine.NOTEQUAL}];return l.createElement("div",null,l.createElement(Ne,{globalState:this.props.globalState,target:r,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"ID",value:r.id}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:r,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(le,{label:"Unique ID",value:r.uniqueId.toString()}),l.createElement(le,{label:"Class",value:r.getClassName()}),l.createElement(de,{label:"Backface culling",target:r,propertyName:"backFaceCulling",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Orientation",options:n,target:r,propertyName:"sideOrientation",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({mode:e})}}),l.createElement(de,{label:"Disable lighting",target:r,propertyName:"disableLighting",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Disable color write",target:r,propertyName:"disableColorWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Disable depth write",target:r,propertyName:"disableDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Depth function",options:i,target:r,propertyName:"depthFunction",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({depthFunction:e})}}),l.createElement(de,{label:"Need depth pre-pass",target:r,propertyName:"needDepthPrePass",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Wireframe",target:r,propertyName:"wireframe",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Point cloud",target:r,propertyName:"pointsCloud",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Point size",target:r,propertyName:"pointSize",minimum:0,maximum:100,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Z-offset",target:r,propertyName:"zOffset",minimum:-10,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Te,{label:"Dispose",onClick:function(){r.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),l.createElement(se,{globalState:this.props.globalState,title:"TRANSPARENCY"},l.createElement(ve,{label:"Alpha",target:r,propertyName:"alpha",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==r.transparencyMode&&l.createElement(Ce,{allowNullValue:!0,label:"Transparency mode",options:a,target:r,propertyName:"transparencyMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({transparencyMode:e})}}),l.createElement(Ce,{label:"Alpha mode",options:o,target:r,propertyName:"alphaMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({alphaMode:e})}}),r.diffuseTexture&&l.createElement(de,{label:"Diffuse texture has alpha",target:r.diffuseTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==r.useAlphaFromDiffuseTexture&&l.createElement(de,{label:"Use alpha from diffuse texture",target:r,propertyName:"useAlphaFromDiffuseTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r.albedoTexture&&l.createElement(de,{label:"Albedo texture has alpha",target:r.albedoTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==r.useAlphaFromAlbedoTexture&&l.createElement(de,{label:"Use alpha from albedo texture",target:r,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Separate culling pass",target:r,propertyName:"separateCullingPass",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(He,{globalState:this.props.globalState,animatable:r,scene:r.getScene(),lockObject:this.props.lockObject}))},t}(l.Component),Ve=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.material;return l.createElement("div",{className:"pane"},l.createElement(Ue,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),We=function(e){function t(r){var n=e.call(this,r)||this;return n._id=t._IDGenerator++,n.uploadInputRef=l.createRef(),n}return a(t,e),t.prototype.onChange=function(e){var t=e.target.files;t&&t.length&&this.props.onClick(t[0]),e.target.value=""},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"buttonLine"},l.createElement("label",{htmlFor:"file-upload"+this._id,className:"file-upload"},this.props.label),l.createElement("input",{ref:this.uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:function(t){return e.onChange(t)}}))},t._IDGenerator=0,t}(l.Component),Ye=function(e){function t(t){var r=e.call(this,t)||this,n=r.props.material,a=r.props.texture;return r.state={isDebugSelected:n&&n.reservedDataStore&&n.reservedDataStore.debugTexture===a},r}return a(t,e),t.prototype.componentDidMount=function(){var e=this;this.props.onDebugSelectionChangeObservable&&(this._onDebugSelectionChangeObserver=this.props.onDebugSelectionChangeObservable.add((function(t){t!==e&&e.setState({isDebugSelected:!1})})))},t.prototype.componentWillUnmount=function(){this.props.onDebugSelectionChangeObservable&&this._onDebugSelectionChangeObserver&&this.props.onDebugSelectionChangeObservable.remove(this._onDebugSelectionChangeObserver)},t.prototype.debugTexture=function(){if(this.props.customDebugAction){var e=!this.state.isDebugSelected;return this.props.customDebugAction(e),this.setState({isDebugSelected:e}),void(this.props.onDebugSelectionChangeObservable&&this.props.onDebugSelectionChangeObservable.notifyObservers(this))}var t=this.props.texture,r=this.props.material;if(r&&t){var n=r.getScene();if(r.reservedDataStore&&r.reservedDataStore.debugTexture===t){var a=r.reservedDataStore.debugMaterial;t.level=r.reservedDataStore.level;for(var o=0,i=n.meshes;o0?a=".dds":e.name.toLowerCase().indexOf(".env")>0&&(a=".env"),r.updateURL(n,a,(function(){return t.foreceRefresh()}))}else r.updateURL(n,null,(function(){return t.foreceRefresh()}))}}),void 0,!0)},t.prototype.foreceRefresh=function(){this.forceUpdate(),this.textureLineRef.current.updatePreview()},t.prototype.render=function(){var e=this,t=this.props.texture,r=[{label:"Nearest",value:c.Texture.NEAREST_NEAREST},{label:"Nearest & linear mip",value:c.Texture.NEAREST_LINEAR},{label:"Linear",value:c.Texture.LINEAR_LINEAR_MIPLINEAR}],n=[{label:"Explicit",value:c.Texture.EXPLICIT_MODE},{label:"Cubic",value:c.Texture.CUBIC_MODE},{label:"Inverse cubic",value:c.Texture.INVCUBIC_MODE},{label:"Equirectangular",value:c.Texture.EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular",value:c.Texture.FIXED_EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular mirrored",value:c.Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE},{label:"Planar",value:c.Texture.PLANAR_MODE},{label:"Projection",value:c.Texture.PROJECTION_MODE},{label:"Skybox",value:c.Texture.SKYBOX_MODE},{label:"Spherical",value:c.Texture.SPHERICAL_MODE}],a="",o=t.url,i=o&&"data"!==o.substring(0,4)&&"blob"!==o.substring(0,4)?o:"";if(i)for(var s=i.length-1;s>=0&&"."!==i[s];s--)a=i[s]+a;return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"PREVIEW"},l.createElement(Qe,{ref:this.textureLineRef,texture:t,width:256,height:256,globalState:this.props.globalState}),l.createElement(We,{label:"Load texture from file",onClick:function(t){return e.updateTexture(t)},accept:".jpg, .png, .tga, .dds, .env"}),l.createElement(_e,{label:"URL",value:i,lockObject:this.props.lockObject,onChange:function(r){t.updateURL(r),e.foreceRefresh()}})),l.createElement(Ne,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"Width",value:t.getSize().width.toString()}),l.createElement(le,{label:"Height",value:t.getSize().height.toString()}),t.isRenderTarget&&l.createElement(Te,{label:"Scale up",onClick:function(){var r=t.getScene();t.scale(2),setTimeout((function(){e.props.globalState.onSelectionChangedObservable.notifyObservers(r.getTextureByUniqueID(t.uniqueId))}))}}),t.isRenderTarget&&l.createElement(Te,{label:"Scale down",onClick:function(){var r=t.getScene();t.scale(.5),setTimeout((function(){e.props.globalState.onSelectionChangedObservable.notifyObservers(r.getTextureByUniqueID(t.uniqueId))}))}}),a&&l.createElement(le,{label:"File format",value:a}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()}),l.createElement(le,{label:"Class",value:t.getClassName()}),l.createElement(le,{label:"Has alpha",value:t.hasAlpha?"Yes":"No"}),l.createElement(le,{label:"Is 3D",value:t.is3D?"Yes":"No"}),l.createElement(le,{label:"Is 2D array",value:t.is2DArray?"Yes":"No"}),l.createElement(le,{label:"Is cube",value:t.isCube?"Yes":"No"}),l.createElement(le,{label:"Is render target",value:t.isRenderTarget?"Yes":"No"}),t instanceof c.Texture&&l.createElement(le,{label:"Stored as inverted on Y",value:t.invertY?"Yes":"No"}),l.createElement(le,{label:"Has mipmaps",value:t.noMipmap?"No":"Yes"}),l.createElement(ve,{label:"UV set",target:t,propertyName:"coordinatesIndex",minimum:0,maximum:3,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:0}),l.createElement(Ce,{label:"Mode",options:n,target:t,propertyName:"coordinatesMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.updateSamplingMode(e)}}),l.createElement(ve,{label:"Level",target:t,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.updateSamplingMode&&l.createElement(Ce,{label:"Sampling",options:r,target:t,noDirectUpdate:!0,propertyName:"samplingMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.updateSamplingMode(e)}})),t.getScene()&&l.createElement(He,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}),t.rootContainer&&l.createElement(se,{globalState:this.props.globalState,title:"ADVANCED TEXTURE PROPERTIES"},l.createElement(pe,{label:"Last layout time",value:this._adtInstrumentation.renderTimeCounter.current,units:"ms"}),l.createElement(pe,{label:"Last render time",value:this._adtInstrumentation.layoutTimeCounter.current,units:"ms"}),l.createElement(ve,{label:"Render scale",minimum:.1,maximum:5,step:.1,target:t,propertyName:"renderScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Premultiply alpha",target:t,propertyName:"premulAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Ideal width",target:t,propertyName:"idealWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Ideal height",target:t,propertyName:"idealHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Use smallest ideal",target:t,propertyName:"useSmallestIdeal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Render at ideal size",target:t,propertyName:"renderAtIdealSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Invalidate Rect optimization",target:t,propertyName:"useInvalidateRectOptimization",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"TRANSFORM"},!t.isCube&&l.createElement("div",null,l.createElement(Me,{lockObject:this.props.lockObject,label:"U offset",target:t,propertyName:"uOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"V offset",target:t,propertyName:"vOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"U scale",target:t,propertyName:"uScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"V scale",target:t,propertyName:"vScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"U angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"uAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"V angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"vAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"W angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"wAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Clamp U",isSelected:function(){return t.wrapU===c.Texture.CLAMP_ADDRESSMODE},onSelect:function(e){return t.wrapU=e?c.Texture.CLAMP_ADDRESSMODE:c.Texture.WRAP_ADDRESSMODE}}),l.createElement(de,{label:"Clamp V",isSelected:function(){return t.wrapV===c.Texture.CLAMP_ADDRESSMODE},onSelect:function(e){return t.wrapV=e?c.Texture.CLAMP_ADDRESSMODE:c.Texture.WRAP_ADDRESSMODE}})),t.isCube&&l.createElement("div",null,l.createElement(ve,{label:"Rotation Y",useEuler:this.props.globalState.onlyUseEulers,minimum:0,maximum:2*Math.PI,step:.1,target:t,propertyName:"rotationY"}))))},t}(l.Component),Je=function(e){function t(t){var r=e.call(this,t)||this;return r._localChange=!1,r.state={isExpanded:!1,value:r.props.target[r.props.propertyName].clone()},r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r=e.target[e.propertyName];return!(r.equals(t.value)&&!this._localChange)&&(t.value=r.clone(),this._localChange=!1,!0)},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e){this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.value,initialValue:e})},t.prototype.updateStateX=function(e){this._localChange=!0;var t=this.state.value.clone();this.props.target[this.props.propertyName].x=e,this.state.value.x=e,this.setState({value:this.state.value}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateY=function(e){this._localChange=!0;var t=this.state.value.clone();this.props.target[this.props.propertyName].y=e,this.state.value.y=e,this.setState({value:this.state.value}),this.raiseOnPropertyChanged(t)},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y});return l.createElement("div",{className:"vector3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"vector"},"X: "+this.state.value.x.toFixed(2)+", Y: "+this.state.value.y.toFixed(2)),l.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),l.createElement(Ee,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}})))},t.defaultProps={step:.001},t}(l.Component),et=function(e){function t(t){var r=e.call(this,t)||this;return r._onDebugSelectionChangeObservable=new c.Observable,r}return a(t,e),t.prototype.switchAmbientMode=function(e){this.props.material.debugMode=e?21:0},t.prototype.switchMetallicMode=function(e){this.props.material.debugMode=e?62:0},t.prototype.switchRoughnessMode=function(e){this.props.material.debugMode=e?63:0},t.prototype.renderTextures=function(e){var t=this,r=this.props.material;return l.createElement(se,{globalState:this.props.globalState,title:"CHANNELS"},l.createElement(Ye,{label:"Albedo",texture:r.albedoTexture,propertyName:"albedoTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{customDebugAction:function(e){return t.switchMetallicMode(e)},label:"Metallic",texture:r.metallicTexture,propertyName:"metallicTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{customDebugAction:function(e){return t.switchRoughnessMode(e)},label:"Roughness",texture:r.metallicTexture,propertyName:"metallicTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Reflection",texture:r.reflectionTexture,propertyName:"reflectionTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Refraction",texture:r.refractionTexture,propertyName:"refractionTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Reflectivity",texture:r.reflectivityTexture,propertyName:"reflectivityTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Micro-surface",texture:r.microSurfaceTexture,propertyName:"microSurfaceTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Bump",texture:r.bumpTexture,propertyName:"bumpTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Emissive",texture:r.emissiveTexture,propertyName:"emissiveTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Opacity",texture:r.opacityTexture,propertyName:"opacityTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{customDebugAction:function(e){return t.switchAmbientMode(e)},label:"Ambient",texture:r.ambientTexture,propertyName:"ambientTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(Ye,{label:"Lightmap",texture:r.lightmapTexture,propertyName:"lightmapTexture",material:r,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),l.createElement(de,{label:"Use lightmap as shadowmap",target:r,propertyName:"useLightmapAsShadowmap ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t.prototype.render=function(){var e,t,r,n=this,a=this.props.material,o=[{label:"Low",value:c.Constants.TEXTURE_FILTERING_QUALITY_LOW},{label:"Medium",value:c.Constants.TEXTURE_FILTERING_QUALITY_MEDIUM},{label:"High",value:c.Constants.TEXTURE_FILTERING_QUALITY_HIGH}];return a.sheen._useRoughness=null!==(e=a.sheen._useRoughness)&&void 0!==e?e:null!==a.sheen.roughness,a.sheen.roughness=null!==(r=null!==(t=a.sheen.roughness)&&void 0!==t?t:a.sheen._saveRoughness)&&void 0!==r?r:0,a.sheen._useRoughness||(a.sheen._saveRoughness=a.sheen.roughness,a.sheen.roughness=null),l.createElement("div",{className:"pane"},l.createElement(Ue,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:a,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(this._onDebugSelectionChangeObservable),l.createElement(se,{globalState:this.props.globalState,title:"LIGHTING & COLORS"},l.createElement(Pe,{label:"Albedo",target:a,propertyName:"albedoColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(Pe,{label:"Reflectivity",target:a,propertyName:"reflectivityColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(ve,{label:"Micro-surface",target:a,propertyName:"microSurface",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Emissive",target:a,propertyName:"emissiveColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(Pe,{label:"Ambient",target:a,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(de,{label:"Use physical light falloff",target:a,propertyName:"usePhysicalLightFalloff",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"METALLIC WORKFLOW"},l.createElement(ve,{label:"Metallic",target:a,propertyName:"metallic",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Roughness",target:a,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Index of Refraction",target:a,propertyName:"indexOfRefraction",minimum:1,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"F0 Factor",target:a,propertyName:"metallicF0Factor",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Reflectance Color",target:a,propertyName:"metallicReflectanceColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(Ye,{label:"Reflectance Texture",texture:a.metallicReflectanceTexture,onTextureCreated:function(e){return a.metallicReflectanceTexture=e},onTextureRemoved:function(){return a.metallicReflectanceTexture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable})),l.createElement(se,{globalState:this.props.globalState,title:"CLEAR COAT"},l.createElement(de,{label:"Enabled",target:a.clearCoat,propertyName:"isEnabled",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&l.createElement("div",{className:"fragment"},l.createElement(ve,{label:"Intensity",target:a.clearCoat,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Roughness",target:a.clearCoat,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"IOR",target:a.clearCoat,propertyName:"indexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ye,{label:"Clear coat",texture:a.clearCoat.texture,onTextureCreated:function(e){return a.clearCoat.texture=e},onTextureRemoved:function(){return a.clearCoat.texture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),l.createElement(Ye,{label:"Bump",texture:a.clearCoat.bumpTexture,onTextureCreated:function(e){return a.clearCoat.bumpTexture=e},onTextureRemoved:function(){return a.clearCoat.bumpTexture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),a.clearCoat.bumpTexture&&l.createElement(ve,{label:"Bump strength",target:a.clearCoat.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Tint",target:a.clearCoat,propertyName:"isTintEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&l.createElement(Pe,{label:"Tint Color",target:a.clearCoat,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&l.createElement(ve,{label:"At Distance",target:a.clearCoat,propertyName:"tintColorAtDistance",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&l.createElement(ve,{label:"Tint Thickness",target:a.clearCoat,propertyName:"tintThickness",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&l.createElement(Ye,{label:"Tint",texture:a.clearCoat.tintTexture,onTextureCreated:function(e){return a.clearCoat.tintTexture=e},onTextureRemoved:function(){return a.clearCoat.tintTexture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}))),l.createElement(se,{globalState:this.props.globalState,title:"ANISOTROPIC"},l.createElement(de,{label:"Enabled",target:a.anisotropy,propertyName:"isEnabled",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.anisotropy.isEnabled&&l.createElement("div",{className:"fragment"},l.createElement(ve,{label:"Intensity",target:a.anisotropy,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Je,{label:"Direction",target:a.anisotropy,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ye,{label:"Anisotropic",texture:a.anisotropy.texture,onTextureCreated:function(e){return a.anisotropy.texture=e},onTextureRemoved:function(){return a.anisotropy.texture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}))),l.createElement(se,{globalState:this.props.globalState,title:"SHEEN"},l.createElement(de,{label:"Enabled",target:a.sheen,propertyName:"isEnabled",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.sheen.isEnabled&&l.createElement("div",{className:"fragment"},l.createElement(de,{label:"Link to Albedo",target:a.sheen,propertyName:"linkSheenWithAlbedo",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Intensity",target:a.sheen,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Color",target:a.sheen,propertyName:"color",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(Ye,{label:"Sheen",texture:a.sheen.texture,onTextureCreated:function(e){return a.sheen.texture=e},onTextureRemoved:function(){return a.sheen.texture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),l.createElement(de,{label:"Use roughness",target:a.sheen,propertyName:"_useRoughness"}),a.sheen._useRoughness&&l.createElement(ve,{label:"Roughness",target:a.sheen,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Albedo scaling",target:a.sheen,propertyName:"albedoScaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))),l.createElement(se,{globalState:this.props.globalState,title:"SUBSURFACE"},l.createElement(Ye,{label:"Thickness",texture:a.subSurface.thicknessTexture,onTextureCreated:function(e){return a.subSurface.thicknessTexture=e},onTextureRemoved:function(){return a.subSurface.thicknessTexture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),l.createElement(ve,{label:"Min Thickness",target:a.subSurface,propertyName:"minimumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Max Thickness",target:a.subSurface,propertyName:"maximumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Mask From Thickness",target:a.subSurface,propertyName:"useMaskFromThicknessTexture",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Tint Color",target:a.subSurface,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),l.createElement(de,{label:"Refraction Enabled",target:a.subSurface,propertyName:"isRefractionEnabled",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.isRefractionEnabled&&l.createElement("div",{className:"fragment"},l.createElement(ve,{label:"Intensity",target:a.subSurface,propertyName:"refractionIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ye,{label:"Refraction",texture:a.subSurface.refractionTexture,onTextureCreated:function(e){return a.subSurface.refractionTexture=e},onTextureRemoved:function(){return a.subSurface.refractionTexture=null},material:a,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:this._onDebugSelectionChangeObservable}),l.createElement(ve,{label:"Index of Refraction",target:a.subSurface,propertyName:"indexOfRefraction",minimum:1,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Tint at Distance",target:a.subSurface,propertyName:"tintColorAtDistance",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Link refraction with transparency",target:a.subSurface,propertyName:"linkRefractionWithTransparency",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(de,{label:"Translucency Enabled",target:a.subSurface,propertyName:"isTranslucencyEnabled",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.isTranslucencyEnabled&&l.createElement("div",{className:"fragment"},l.createElement(ve,{label:"Intensity",target:a.subSurface,propertyName:"translucencyIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Diffusion Distance",target:a.subSurface,propertyName:"diffusionDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}))),l.createElement(se,{globalState:this.props.globalState,title:"LEVELS",closed:!0},l.createElement(ve,{label:"Environment",target:a,propertyName:"environmentIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Specular",target:a,propertyName:"specularIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Emissive",target:a,propertyName:"emissiveIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Direct",target:a,propertyName:"directIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.bumpTexture&&l.createElement(ve,{label:"Bump strength",target:a.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.ambientTexture&&l.createElement(ve,{label:"Ambient strength",target:a,propertyName:"ambientTextureStrength",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.reflectionTexture&&l.createElement(ve,{label:"Reflection strength",target:a.reflectionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.texture&&l.createElement(ve,{label:"Clear coat",target:a.clearCoat.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.bumpTexture&&l.createElement(ve,{label:"Clear coat bump",target:a.clearCoat.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.tintTexture&&!1,a.anisotropy.texture&&l.createElement(ve,{label:"Anisotropic",target:a.anisotropy.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.sheen.texture&&l.createElement(ve,{label:"Sheen",target:a.sheen.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.thicknessTexture&&l.createElement(ve,{label:"Thickness",target:a.subSurface.thicknessTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.refractionTexture&&l.createElement(ve,{label:"Refraction",target:a.subSurface.refractionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"RENDERING",closed:!0},l.createElement(de,{label:"Alpha from albedo",target:a,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Ambient in grayscale",target:a,propertyName:"useAmbientInGrayScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Radiance over alpha",target:a,propertyName:"useRadianceOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Micro-surface from ref. map alpha",target:a,propertyName:"useMicroSurfaceFromReflectivityMapAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Specular over alpha",target:a,propertyName:"useSpecularOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Specular anti-aliasing",target:a,propertyName:"enableSpecularAntiAliasing",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Realtime Filtering",target:a,propertyName:"realTimeFiltering",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{allowNullValue:!0,label:"Realtime Filtering quality",options:o,target:a,propertyName:"realTimeFilteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"NORMAL MAP",closed:!0},l.createElement(de,{label:"Invert X axis",target:a,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Invert Y axis",target:a,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"ADVANCED",closed:!0},l.createElement(de,{label:"Energy Conservation",target:a.brdf,propertyName:"useEnergyConservation",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Spherical Harmonics",target:a.brdf,propertyName:"useSphericalHarmonics",onValueChanged:function(){return n.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Radiance occlusion",target:a,propertyName:"useRadianceOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Horizon occlusion ",target:a,propertyName:"useHorizonOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Unlit",target:a,propertyName:"unlit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"DEBUG",closed:!0},l.createElement(Ce,{label:"Debug mode",options:[{label:"None",value:0},{label:"Normalized position",value:1},{label:"Normals",value:2},{label:"Tangents",value:3},{label:"Bitangents",value:4},{label:"Bump Normals",value:5},{label:"UV1",value:6},{label:"UV2",value:7},{label:"ClearCoat Normals",value:8},{label:"ClearCoat Tangents",value:9},{label:"ClearCoat Bitangents",value:10},{label:"Anisotropic Normals",value:11},{label:"Anisotropic Tangents",value:12},{label:"Anisotropic Bitangents",value:13},{label:"Albdeo Map",value:20},{label:"Ambient Map",value:21},{label:"Opacity Map",value:22},{label:"Emissive Map",value:23},{label:"Light Map",value:24},{label:"Metallic Map",value:25},{label:"Reflectivity Map",value:26},{label:"ClearCoat Map",value:27},{label:"ClearCoat Tint Map",value:28},{label:"Sheen Map",value:29},{label:"Anisotropic Map",value:30},{label:"Thickness Map",value:31},{label:"Env Refraction",value:40},{label:"Env Reflection",value:41},{label:"Env Clear Coat",value:42},{label:"Direct Diffuse",value:50},{label:"Direct Specular",value:51},{label:"Direct Clear Coat",value:52},{label:"Direct Sheen",value:53},{label:"Env Irradiance",value:54},{label:"Surface Albedo",value:60},{label:"Reflectance 0",value:61},{label:"Metallic",value:62},{label:"Metallic F0",value:71},{label:"Roughness",value:63},{label:"AlphaG",value:64},{label:"NdotV",value:65},{label:"ClearCoat Color",value:66},{label:"ClearCoat Roughness",value:67},{label:"ClearCoat NdotV",value:68},{label:"Transmittance",value:69},{label:"Refraction Transmittance",value:70},{label:"SEO",value:80},{label:"EHO",value:81},{label:"Energy Factor",value:82},{label:"Specular Reflectance",value:83},{label:"Clear Coat Reflectance",value:84},{label:"Sheen Reflectance",value:85},{label:"Luminance Over Alpha",value:86},{label:"Alpha",value:87}],target:a,propertyName:"debugMode"}),l.createElement(ve,{label:"Split position",target:a,propertyName:"debugLimit",minimum:-1,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Output factor",target:a,propertyName:"debugFactor",minimum:0,maximum:5,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),tt=function(e){function t(t){var r=e.call(this,t)||this;return r.state={isSelected:r.props.isSelected()},r}return a(t,e),t.prototype.componentDidMount=function(){var e=this;this._onSelectionChangedObserver=this.props.onSelectionChangedObservable.add((function(t){e.setState({isSelected:t===e})}))},t.prototype.componentWillUnmount=function(){this._onSelectionChangedObserver&&(this.props.onSelectionChangedObservable.remove(this._onSelectionChangedObserver),this._onSelectionChangedObserver=null)},t.prototype.onChange=function(){this.props.onSelect(),this.props.onSelectionChangedObservable.notifyObservers(this)},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"radioLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"radioContainer"},l.createElement("input",{id:this.props.label,className:"radio",type:"radio",checked:this.state.isSelected,onChange:function(){return e.onChange()}}),l.createElement("label",{htmlFor:this.props.label,className:"labelForRadio"})))},t}(l.Component),rt=function(e){function t(t){var r=e.call(this,t)||this;return r.state={mode:r.props.scene.fogMode},r}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.scene,r=[{label:"None",value:c.Scene.FOGMODE_NONE},{label:"Linear",value:c.Scene.FOGMODE_LINEAR},{label:"Exp",value:c.Scene.FOGMODE_EXP},{label:"Exp2",value:c.Scene.FOGMODE_EXP2}];return l.createElement("div",null,l.createElement(Ce,{label:"Fog mode",options:r,target:t,propertyName:"fogMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),this.state.mode!==c.Scene.FOGMODE_NONE&&l.createElement(Pe,{label:"Fog color",target:t,propertyName:"fogColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(this.state.mode===c.Scene.FOGMODE_EXP||this.state.mode===c.Scene.FOGMODE_EXP2)&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Fog density",target:t,propertyName:"fogDensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===c.Scene.FOGMODE_LINEAR&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Fog start",target:t,propertyName:"fogStart",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===c.Scene.FOGMODE_LINEAR&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Fog end",target:t,propertyName:"fogEnd",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),nt=function(e){function t(t){var r=e.call(this,t)||this;return r._renderingModeGroupObservable=new c.Observable,r}return a(t,e),t.prototype.setRenderingModes=function(e,t){var r=this.props.scene;r.forcePointsCloud=e,r.forceWireframe=t},t.prototype.switchIBL=function(){var e=this.props.scene;e.environmentTexture?(this._storedEnvironmentTexture=e.environmentTexture,e.environmentTexture=null):(e.environmentTexture=this._storedEnvironmentTexture,this._storedEnvironmentTexture=null)},t.prototype.updateEnvironmentTexture=function(e){var t=e.name.toLowerCase().indexOf(".dds")>0,r=e.name.toLowerCase().indexOf(".env")>0;if(t||r){var n=this.props.scene;c.Tools.ReadFile(e,(function(e){var r=new Blob([e],{type:"octet/stream"}),a=URL.createObjectURL(r);n.environmentTexture=t?c.CubeTexture.CreateFromPrefilteredData(a,n,".dds"):new c.CubeTexture(a,n,void 0,void 0,void 0,(function(){}),(function(e){e&&console.error(e)}),void 0,void 0,".env")}),void 0,!0)}else console.error("Unable to update environment texture. Please select a dds or env file.")},t.prototype.updateGravity=function(e){this.props.scene.getPhysicsEngine().setGravity(e)},t.prototype.updateTimeStep=function(e){this.props.scene.getPhysicsEngine().setTimeStep(e)},t.prototype.normalizeScene=function(){this.props.scene.meshes.forEach((function(e){e.normalizeToUnitCube(!0),e.computeWorldMatrix(!0)}))},t.prototype.render=function(){var e=this,t=this.props.scene,r=t.getPhysicsEngine(),n=null;r&&(n={gravity:r.gravity,timeStep:r.getTimeStep()});var a=t.imageProcessingConfiguration,o=[{label:"Standard",value:c.ImageProcessingConfiguration.TONEMAPPING_STANDARD},{label:"ACES",value:c.ImageProcessingConfiguration.TONEMAPPING_ACES}],i=[{label:"Multiply",value:c.ImageProcessingConfiguration.VIGNETTEMODE_MULTIPLY},{label:"Opaque",value:c.ImageProcessingConfiguration.VIGNETTEMODE_OPAQUE}];return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"RENDERING MODE"},l.createElement(tt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Point",isSelected:function(){return t.forcePointsCloud},onSelect:function(){return e.setRenderingModes(!0,!1)}}),l.createElement(tt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Wireframe",isSelected:function(){return t.forceWireframe},onSelect:function(){return e.setRenderingModes(!1,!0)}}),l.createElement(tt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Solid",isSelected:function(){return!t.forcePointsCloud&&!t.forceWireframe},onSelect:function(){return e.setRenderingModes(!1,!1)}})),l.createElement(se,{globalState:this.props.globalState,title:"ENVIRONMENT"},l.createElement(Pe,{label:"Clear color",target:t,propertyName:"clearColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Clear color enabled",target:t,propertyName:"autoClear",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Ambient color",target:t,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Environment texture (IBL)",isSelected:function(){return null!=t.environmentTexture},onSelect:function(){return e.switchIBL()}}),t.environmentTexture&&l.createElement(Ye,{label:"Env. texture",texture:t.environmentTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),l.createElement(We,{label:"Update environment texture",onClick:function(t){return e.updateEnvironmentTexture(t)},accept:".dds, .env"}),l.createElement(ve,{minimum:0,maximum:2,step:.01,label:"IBL Intensity",target:t,propertyName:"environmentIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(rt,{globalState:this.props.globalState,lockObject:this.props.lockObject,scene:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"MATERIAL IMAGE PROCESSING"},l.createElement(ve,{minimum:0,maximum:4,step:.1,label:"Contrast",target:a,propertyName:"contrast",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:4,step:.1,label:"Exposure",target:a,propertyName:"exposure",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Tone mapping",target:a,propertyName:"toneMappingEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Tone mapping type",options:o,target:a,propertyName:"toneMappingType",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),l.createElement(de,{label:"Vignette",target:a,propertyName:"vignetteEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:4,step:.1,label:"Vignette weight",target:a,propertyName:"vignetteWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:1,step:.1,label:"Vignette stretch",target:a,propertyName:"vignetteStretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:Math.PI,step:.1,label:"Vignette FOV",target:a,propertyName:"vignetteCameraFov",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:1,step:.1,label:"Vignette center X",target:a,propertyName:"vignetteCentreX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{minimum:0,maximum:1,step:.1,label:"Vignette center Y",target:a,propertyName:"vignetteCentreY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Vignette color",target:a,propertyName:"vignetteColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Vignette blend mode",options:i,target:a,propertyName:"vignetteBlendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}})),null!==n&&l.createElement(se,{globalState:this.props.globalState,title:"PHYSICS",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Time step",target:n,propertyName:"timeStep",onChange:function(t){return e.updateTimeStep(t)},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Gravity",target:n,propertyName:"gravity",onChange:function(t){return e.updateGravity(t)},onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},l.createElement(we,{label:"Gravity",target:t,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"SHADOWS",closed:!0},l.createElement(Te,{label:"Normalize scene",onClick:function(){return e.normalizeScene()}})))},t}(l.Component),at=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.light;return l.createElement("div",null,l.createElement(Ne,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"ID",value:t.id}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()}),l.createElement(le,{label:"Class",value:t.getClassName()}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Intensity",target:t,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Te,{label:"Dispose",onClick:function(){t.dispose(),e.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),l.createElement(He,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(l.Component),ot=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.light;return l.createElement("div",{className:"pane"},l.createElement(at,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"SETUP"},l.createElement(Pe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Ground",target:e,propertyName:"groundColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),it=function(e){function t(t){var r=e.call(this,t)||this;return r._internals={generatorType:0,mapSize:1024},r}return a(t,e),t.prototype.createShadowGenerator=function(){var e=this.props.light,t=e.getScene(),r=this._internals,n=0===r.generatorType?new c.ShadowGenerator(r.mapSize,e):new c.CascadedShadowGenerator(r.mapSize,e);t.meshes.forEach((function(e){n.addShadowCaster(e),e.isAnInstance||(e.receiveShadows=!0)})),this.forceUpdate()},t.prototype.disposeShadowGenerator=function(){var e;null===(e=this.props.light.getShadowGenerator())||void 0===e||e.dispose(),this.forceUpdate()},t.prototype.render=function(){var e=this,t=this.props.light,r=this._internals,n=t.getShadowGenerator()||null,a=n instanceof c.CascadedShadowGenerator,o=t.getScene().activeCamera,i=[{label:"Shadow Generator",value:0}];t instanceof c.DirectionalLight&&i.push({label:"Cascaded Shadow Generator",value:1});var s;s=n instanceof c.CascadedShadowGenerator?[{label:"None",value:c.ShadowGenerator.FILTER_NONE},{label:"PCF",value:c.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:c.ShadowGenerator.FILTER_PCSS}]:[{label:"None",value:c.ShadowGenerator.FILTER_NONE},{label:"PCF",value:c.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:c.ShadowGenerator.FILTER_PCSS},{label:"Poisson",value:c.ShadowGenerator.FILTER_POISSONSAMPLING},{label:"Exponential",value:c.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP},{label:"Blurred exponential",value:c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP},{label:"Close exponential",value:c.ShadowGenerator.FILTER_CLOSEEXPONENTIALSHADOWMAP},{label:"Blurred close exponential",value:c.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP}];var p=[{label:"Low",value:c.ShadowGenerator.QUALITY_LOW},{label:"Medium",value:c.ShadowGenerator.QUALITY_MEDIUM},{label:"High",value:c.ShadowGenerator.QUALITY_HIGH}],u=o?o.minZ:0,d=o?o.maxZ:0,h=n?n.filter:0;return l.createElement("div",null,l.createElement(se,{globalState:this.props.globalState,title:"SHADOWS"},l.createElement(de,{label:"Shadows enabled",target:t,propertyName:"shadowEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!a&&l.createElement(l.Fragment,null,l.createElement(Me,{lockObject:this.props.lockObject,label:"Shadows near plane",target:t,propertyName:"shadowMinZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Shadows far plane",target:t,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))),null==n&&l.createElement(se,{globalState:this.props.globalState,title:"SHADOW GENERATOR"},l.createElement(Ce,{label:"Type",options:i,target:r,propertyName:"generatorType"}),l.createElement(Ce,{label:"Map size",options:[{label:"2048x2048",value:2048},{label:"1024x1024",value:1024},{label:"512x512",value:512},{label:"256x256",value:256}],target:r,propertyName:"mapSize"}),l.createElement(Te,{label:"Create generator",onClick:function(){return e.createShadowGenerator()}})),null!==n&&l.createElement(se,{globalState:this.props.globalState,title:"SHADOW GENERATOR"},l.createElement(Te,{label:"Dispose generator",onClick:function(){return e.disposeShadowGenerator()}}),a&&l.createElement(l.Fragment,null,l.createElement(Ce,{label:"Num cascades",options:[{label:"2",value:2},{label:"3",value:3},{label:"4",value:4}],target:n,propertyName:"numCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Debug mode",target:n,propertyName:"debug",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Stabilize cascades",target:n,propertyName:"stabilizeCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Lambda",minimum:0,maximum:1,step:.01,target:n,propertyName:"lambda",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Cascade blend",minimum:0,maximum:1,step:.01,target:n,propertyName:"cascadeBlendPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Depth clamp",target:n,propertyName:"depthClamp",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Auto-Calc depth bounds",target:n,propertyName:"autoCalcDepthBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Shadow MaxZ",minimum:u,maximum:d,step:.5,target:n,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(Me,{lockObject:this.props.lockObject,digits:4,step:"0.0001",label:"Bias",target:n,propertyName:"bias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Normal bias",target:n,propertyName:"normalBias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Darkness",target:n,minimum:0,maximum:1,step:.01,propertyName:"darkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Allow transparent shadows",target:n,propertyName:"transparencyShadow",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Filter",options:s,onSelect:function(){e.forceUpdate()},target:n,propertyName:"filter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(h===c.ShadowGenerator.FILTER_PCF||h===c.ShadowGenerator.FILTER_PCSS)&&l.createElement(Ce,{label:"Filtering quality",options:p,onSelect:function(){e.forceUpdate()},target:n,propertyName:"filteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),h===c.ShadowGenerator.FILTER_PCSS&&l.createElement(ve,{label:"Penumbra ratio",minimum:0,maximum:.5,step:.001,target:n,propertyName:"contactHardeningLightSizeUVRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!a&&(h===c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===c.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&l.createElement(de,{label:"Use kernel blur",target:n,propertyName:"useKernelBlur",onValueChanged:function(){return e.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ShadowGenerator&&(h===c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===c.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&!n.useKernelBlur&&l.createElement(ve,{label:"Blur box offset",target:n,propertyName:"blurBoxOffset",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ShadowGenerator&&(h===c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===c.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&n.useKernelBlur&&l.createElement(ve,{label:"Blur kernel",target:n,propertyName:"blurKernel",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ShadowGenerator&&(h===c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===c.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Depth scale",target:n,propertyName:"depthScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ShadowGenerator&&(h===c.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===c.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&l.createElement(ve,{label:"Blur scale",target:n,propertyName:"blurScale",minimum:1,maximum:4,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a&&h===c.ShadowGenerator.FILTER_PCSS&&l.createElement(ve,{label:"Penumbra darkness",minimum:0,maximum:1,step:.01,target:n,propertyName:"penumbraDarkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),lt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.light;return l.createElement("div",{className:"pane"},l.createElement(at,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"SETUP"},l.createElement(Pe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(it,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),st=function(e){function t(t){var r=e.call(this,t)||this;return r.state={mode:r.props.camera.mode},r}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.camera,r=[{label:"Perspective",value:c.Camera.PERSPECTIVE_CAMERA},{label:"Orthographic",value:c.Camera.ORTHOGRAPHIC_CAMERA}];return l.createElement("div",null,l.createElement(Ne,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"ID",value:t.id}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()}),l.createElement(le,{label:"Class",value:t.getClassName()}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Near plane",target:t,propertyName:"minZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Far plane",target:t,propertyName:"maxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Inertia",target:t,propertyName:"inertia",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Mode",options:r,target:t,propertyName:"mode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),t.mode===c.Camera.PERSPECTIVE_CAMERA&&l.createElement(ve,{label:"Field of view",target:t,useEuler:this.props.globalState.onlyUseEulers,propertyName:"fov",minimum:.1,maximum:Math.PI,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===c.Camera.ORTHOGRAPHIC_CAMERA&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Left",target:t,propertyName:"orthoLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===c.Camera.ORTHOGRAPHIC_CAMERA&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Top",target:t,propertyName:"orthoTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===c.Camera.ORTHOGRAPHIC_CAMERA&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Right",target:t,propertyName:"orthoRight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===c.Camera.ORTHOGRAPHIC_CAMERA&&l.createElement(Me,{lockObject:this.props.lockObject,label:"Bottom",target:t,propertyName:"orthoBottom",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Te,{label:"Dispose",onClick:function(){t.dispose(),e.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),l.createElement(He,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(l.Component),pt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.camera;return l.createElement("div",{className:"pane"},l.createElement(st,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"TRANSFORMS"},l.createElement(we,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"CONTROLS",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Angular sensitivity",target:e,propertyName:"angularSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Speed",target:e,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},l.createElement(de,{label:"Check collisions",target:e,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Apply gravity",target:e,propertyName:"applyGravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Ellipsoid",target:e,propertyName:"ellipsoid",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Ellipsoid offset",target:e,propertyName:"ellipsoidOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),ct=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.camera;return l.createElement("div",{className:"pane"},l.createElement(st,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"TRANSFORMS"},l.createElement(we,{label:"Target",target:e,propertyName:"target",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Alpha",useEuler:this.props.globalState.onlyUseEulers,target:e,propertyName:"alpha",minimum:e.lowerAlphaLimit||0,maximum:e.upperAlphaLimit||2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Beta",useEuler:this.props.globalState.onlyUseEulers,target:e,propertyName:"beta",minimum:e.lowerAlphaLimit||0,maximum:e.upperBetaLimit||2*Math.PI,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"CONTROLS",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Angular sensitivity X",target:e,propertyName:"angularSensibilityX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Angular sensitivity Y",target:e,propertyName:"angularSensibilityY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Panning sensitivity",target:e,propertyName:"panningSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Pinch delta percentage",target:e,propertyName:"pinchDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Wheel delta percentage",target:e,propertyName:"wheelDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Speed",target:e,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},l.createElement(de,{label:"Check collisions",target:e,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Collision radius",target:e,propertyName:"collisionRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"LIMITS",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Lower alpha limit",target:e,propertyName:"lowerAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Upper alpha limit",target:e,propertyName:"upperAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Lower beta limit",target:e,propertyName:"lowerBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Upper beta limit",target:e,propertyName:"upperBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Lower radius limit",target:e,propertyName:"lowerRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Upper radius limit",target:e,propertyName:"upperRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"BEHAVIORS",closed:!0},l.createElement(de,{label:"Auto rotation",target:e,propertyName:"useAutoRotationBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Bouncing",target:e,propertyName:"useBouncingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Framing",target:e,propertyName:"useFramingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),ut=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onLink=function(){this.props.url?window.open(this.props.url,"_blank"):this.props.onLink&&this.props.onLink()},t.prototype.renderContent=function(){var e=this;return this.props.onLink||this.props.url?l.createElement("div",{className:"link-value",title:this.props.value,onClick:function(){return e.onLink()}},this.props.url?"doc":this.props.value||"no name"):l.createElement("div",{className:"value",title:this.props.value,style:{color:this.props.color?this.props.color:""}},this.props.value||"no name")},t.prototype.render=function(){return l.createElement("div",{className:"indented "+(this.props.underline?"textLine underline":"textLine"+(this.props.additionalClass?" "+this.props.additionalClass:""))},this.renderContent())},t}(l.Component),dt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.renderLevel=function(e){var t=[];for(var r in e){var n=e[r];switch(Object.prototype.toString.call(n)){case"[object String]":t.push(l.createElement(le,{key:r,label:r,ignoreValue:!0})),t.push(l.createElement(ut,{key:r+n,value:n}));break;case"[object Array]":t.push(l.createElement(le,{key:r,label:r,ignoreValue:!0}));for(var a=0,o=n;a0){var t=e.targetedAnimations[0].animation.runtimeAnimations;t.length>0?this.setState({currentFrame:t[0].currentFrame}):this.setState({currentFrame:0})}},t.prototype.shouldComponentUpdate=function(e){return this.props.animationGroup!==e.animationGroup&&(this.disconnect(this.props.animationGroup),this.connect(e.animationGroup)),!0},t.prototype.componentWillUnmount=function(){this.disconnect(this.props.animationGroup),this._onBeforeRenderObserver&&(this.props.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)},t.prototype.playOrPause=function(){var e=this.props.animationGroup;e.isPlaying?(this.setState({playButtonText:"Play"}),e.pause()):(this.setState({playButtonText:"Pause"}),this.props.scene.animationGroups.forEach((function(e){return e.pause()})),e.play(!0))},t.prototype.onCurrentFrameChange=function(e){var t=this.props.animationGroup;t.isPlaying?t.goToFrame(e):(t.play(!0),t.goToFrame(e),t.pause()),this.setState({currentFrame:e})},t.prototype.render=function(){var e=this,t=this.props.animationGroup,r=t.isPlaying?"Pause":"Play";return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"Class",value:t.getClassName()}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"CONTROLS"},l.createElement(Te,{label:r,onClick:function(){return e.playOrPause()}}),l.createElement(ve,{label:"Speed ratio",minimum:0,maximum:10,step:.1,target:t,propertyName:"speedRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{ref:this.timelineRef,label:"Current frame",minimum:t.from,maximum:t.to,step:(t.to-t.from)/1e3,directValue:this.state.currentFrame,onInput:function(t){return e.onCurrentFrameChange(t)}})),l.createElement(se,{globalState:this.props.globalState,title:"INFOS"},l.createElement(le,{label:"Animation count",value:t.targetedAnimations.length.toString()}),l.createElement(le,{label:"From",value:t.from.toFixed(2)}),l.createElement(le,{label:"To",value:t.to.toFixed(2)}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()})))},t}(l.Component),xt=function(){this.lock=!1},Ot=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.image,r=[{label:"None",value:$e.Image.STRETCH_NONE},{label:"Fill",value:$e.Image.STRETCH_FILL},{label:"Uniform",value:$e.Image.STRETCH_UNIFORM},{label:"Extend",value:$e.Image.STRETCH_EXTEND},{label:"NinePatch",value:$e.Image.STRETCH_NINE_PATCH}];return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"IMAGE"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Source left",target:t,propertyName:"sourceLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Source top",target:t,propertyName:"sourceTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Source width",target:t,propertyName:"sourceWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Source height",target:t,propertyName:"sourceHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Autoscale",target:t,propertyName:"autoScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Stretch",options:r,target:t,propertyName:"stretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}})),l.createElement(se,{globalState:this.props.globalState,title:"ANIMATION SHEET"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Cell Id",isInteger:!0,target:t,propertyName:"cellId",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Cell width",target:t,propertyName:"cellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Cell height",target:t,propertyName:"cellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),St=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.slider;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"SLIDER"},l.createElement(_e,{lockObject:this.props.lockObject,label:"Border color",target:e,propertyName:"borderColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Display thumb",target:e,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Thumb circle",target:e,propertyName:"isThumbCircle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Vertical",target:e,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Thumb clamped",target:e,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Bar offset",target:e,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Thumb width",target:e,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Minimum",target:e,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Maximum",target:e,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Value",target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Pt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.imageBasedSlider;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"IMAGE BASED SLIDER"},l.createElement(de,{label:"Display thumb",target:e,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Vertical",target:e,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Thumb clamped",target:e,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Bar offset",target:e,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Thumb width",target:e,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Minimum",target:e,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Maximum",target:e,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Value",target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),wt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.rectangle;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"RECTANGLE"},l.createElement(de,{label:"Clip children",target:e,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Corner radius",target:e,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),kt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.ellipse;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"ELLIPSE"},l.createElement(de,{label:"Clip children",target:e,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),_t=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.checkbox;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"CHECKBOX"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Check size ratio",target:e,propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Checked",target:e,propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Nt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.radioButton;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"RADIO BUTTON"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Check size ratio",target:e,propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Group",target:e,propertyName:"group",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Checked",target:e,propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Tt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onDashChange=function(e){var t=this.props.line,r=e.split(",");t.dash=[],r.forEach((function(e){var r=parseInt(e);isNaN(r)||t.dash.push(r)}))},t.prototype.render=function(){var e=this,t=this.props.line;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"LINE"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Line width",target:t,propertyName:"lineWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"X1",target:t,propertyName:"x1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Y1",target:t,propertyName:"y1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"X2",target:t,propertyName:"x2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Y2",target:t,propertyName:"y2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Dash pattern",target:t,value:t.dash.join(","),onChange:function(t){return e.onDashChange(t)}})))},t}(l.Component),Mt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.scrollViewer;return l.createElement("div",{className:"pane"},l.createElement(mt,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"RECTANGLE"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Corner radius",target:e,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"SCROLLVIEWER"},l.createElement(Me,{lockObject:this.props.lockObject,label:"Bar size",target:e,propertyName:"barSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Bar color",target:e,propertyName:"barColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Bar background",target:e,propertyName:"barBackground",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Wheel precision",target:e,propertyName:"wheelPrecision",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Rt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.renderRows=function(){for(var e=this.props.grid,t=[],r=0;r0}},t.prototype.shouldComponentUpdate=function(e){return e.skeleton!==this.props.skeleton&&this.checkSkeletonViewerState(e),!0},t.prototype.onOverrideMeshLink=function(){if(this.props.globalState.onSelectionChangedObservable){var e=this.props.skeleton;this.props.globalState.onSelectionChangedObservable.notifyObservers(e.overrideMesh)}},t.prototype.render=function(){var e=this,t=this.props.skeleton;return l.createElement("div",{className:"pane"},l.createElement(Ne,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"ID",value:t.id}),l.createElement(le,{label:"Bone count",value:t.bones.length.toString()}),t.overrideMesh&&l.createElement(le,{label:"Override mesh",value:t.overrideMesh.name,onLink:function(){return e.onOverrideMeshLink()}}),l.createElement(de,{label:"Use texture to store matrices",target:t,propertyName:"useTextureToStoreBoneMatrices",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Debug mode",isSelected:function(){return e._skeletonViewersEnabled},onSelect:function(){return e.switchSkeletonViewers()}})),l.createElement(He,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(l.Component),Vt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onTransformNodeLink=function(){if(this.props.globalState.onSelectionChangedObservable){var e=this.props.bone.getTransformNode();this.props.globalState.onSelectionChangedObservable.notifyObservers(e)}},t.prototype.render=function(){var e=this,t=this.props.bone;return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"Name",value:t.name}),l.createElement(le,{label:"Index",value:t.getIndex().toString()}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()}),t.getParent()&&l.createElement(le,{label:"Parent",value:t.getParent().name,onLink:function(){return e.props.globalState.onSelectionChangedObservable.notifyObservers(t.getParent())}}),t.getTransformNode()&&l.createElement(le,{label:"Linked node",value:t.getTransformNode().name,onLink:function(){return e.onTransformNodeLink()}})),l.createElement(se,{globalState:this.props.globalState,title:"TRANSFORMATIONS"},l.createElement(we,{label:"Position",target:t,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!t.rotationQuaternion&&l.createElement(we,{label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"rotation",step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.rotationQuaternion&&l.createElement(ke,{label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"rotationQuaternion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Scaling",target:t,propertyName:"scaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Wt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.light,t=(e.getShadowGenerator()||null)instanceof c.CascadedShadowGenerator;return l.createElement("div",{className:"pane"},l.createElement(at,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"SETUP"},l.createElement(Pe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!t&&l.createElement(de,{label:"Auto Calc Shadow ZBounds",target:e,propertyName:"autoCalcShadowZBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(it,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),Yt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.light;return l.createElement("div",{className:"pane"},l.createElement(at,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"SETUP"},l.createElement(Pe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Pe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Angle",target:e,propertyName:"angle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Inner angle",target:e,propertyName:"innerAngle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Exponent",target:e,propertyName:"exponent",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(it,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),Xt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.renderPipeline;return l.createElement("div",{className:"pane"},l.createElement(zt,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"OPTIONS"},l.createElement(ve,{label:"Edge blur",minimum:0,maximum:5,step:.1,target:e,propertyName:"edgeBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Edge distortion",minimum:0,maximum:5,step:.1,target:e,propertyName:"edgeDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Grain amount",minimum:0,maximum:1,step:.1,target:e,propertyName:"grainAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Chromatic aberration",minimum:0,maximum:5,step:.1,target:e,propertyName:"chromaticAberration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Darken out of focus",minimum:0,maximum:5,step:.1,target:e,propertyName:"darkenOutOfFocus",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Blur noise",target:e,propertyName:"blurNoise",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"DEPTH OF FIELD"},l.createElement(ve,{label:"Aperture",minimum:0,maximum:10,step:.1,target:e,propertyName:"dofAperture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Distortion",minimum:0,maximum:10,step:.1,target:e,propertyName:"dofDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Pentagon bokeh",target:e,propertyName:"pentagonBokeh",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Highlight gain",minimum:0,maximum:5,step:.1,target:e,propertyName:"highlightsGain",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Highlight threshold",minimum:0,maximum:5,step:.1,target:e,propertyName:"highlightsThreshold",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),Kt=function(e){function t(t){var r=e.call(this,t)||this;return r._localChange=!1,r.state={isExpanded:!1,value:r.getCurrentValue().clone()},r}return a(t,e),t.prototype.getCurrentValue=function(){return this.props.target[this.props.propertyName]},t.prototype.shouldComponentUpdate=function(e,t){var r=this.getCurrentValue();return!(r.equals(t.value)&&!this._localChange)&&(t.value=r.clone(),this._localChange=!1,!0)},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e){this.props.onChange&&this.props.onChange(this.state.value),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.value,initialValue:e})},t.prototype.updateVector4=function(){var e=this.props.target[this.props.propertyName].clone();this.props.target[this.props.propertyName]=this.state.value,this.setState({value:e}),this.raiseOnPropertyChanged(e)},t.prototype.updateStateX=function(e){this._localChange=!0,this.state.value.x=e,this.updateVector4()},t.prototype.updateStateY=function(e){this._localChange=!0,this.state.value.y=e,this.updateVector4()},t.prototype.updateStateZ=function(e){this._localChange=!0,this.state.value.z=e,this.updateVector4()},t.prototype.updateStateW=function(e){this._localChange=!0,this.state.value.w=e,this.updateVector4()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y});return l.createElement("div",{className:"vector3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"vector"},"X: "+this.state.value.x.toFixed(2)+", Y: "+this.state.value.y.toFixed(2)+", Z: "+this.state.value.z.toFixed(2)+", W: "+this.state.value.w.toFixed(2)),l.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),l.createElement(Ee,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}}),l.createElement(Ee,{label:"z",step:this.props.step,value:this.state.value.z,onChange:function(t){return e.updateStateZ(t)}}),l.createElement(Ee,{label:"w",step:this.props.step,value:this.state.value.w,onChange:function(t){return e.updateStateW(t)}})))},t.defaultProps={step:.001},t}(l.Component),qt=r(94),Qt=function(e){function t(t){var r=e.call(this,t)||this;r._localChange=!1;var n=r.props.target[r.props.propertyName],a="Color4"===n.getClassName()?n.clone():new c.Color4(n.r,n.g,n.b,1);return r.state={isExpanded:!1,color:a},t.isLinear&&r.state.color.toGammaSpaceToRef(r.state.color),t.target._isLinearColor=t.isLinear,r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r=this.props.target[this.props.propertyName],n="Color4"===r.getClassName()?r:new c.Color4(r.r,r.g,r.b,1);return this.props.isLinear&&n.toGammaSpaceRef(n),!(n.equals(t.color)&&!this._localChange)&&(t.color=n.clone(),this._localChange=!1,!0)},t.prototype.setPropertyValue=function(e){this.props.target[this.props.propertyName]=e,this.props.isLinear&&(this.props.target[this.props.propertyName]=e.toLinearSpace())},t.prototype.onChange=function(e){this._localChange=!0;var t=c.Color4.FromHexString(e);this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:t,initialValue:this.state.color}),this.setPropertyValue(t),this.setState({color:t}),this.props.onChange&&this.props.onChange()},t.prototype.switchExpandState=function(){this._localChange=!0,this.setState({isExpanded:!this.state.isExpanded})},t.prototype.raiseOnPropertyChanged=function(e){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.target,property:this.props.propertyName,value:this.state.color,initialValue:e})},t.prototype.updateStateR=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.r=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateG=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.g=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateB=function(e){this._localChange=!0;var t=this.state.color.clone();this.state.color.b=e,this.setPropertyValue(this.state.color),this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.updateStateA=function(e){this._localChange=!0;var t=this.state.color.clone();this.props.target[this.props.propertyName].a=e,this.state.color.a=e,this.props.target[this.props.propertyName]=this.state.color,this.setState({color:this.state.color}),this.raiseOnPropertyChanged(t)},t.prototype.copyToClipboard=function(){var e=document.createElement("div");if(e.textContent=this.state.color.toHexString(),document.body.appendChild(e),window.getSelection){var t=document.createRange();t.selectNode(e),window.getSelection().removeAllRanges(),window.getSelection().addRange(t)}document.execCommand("copy"),e.remove()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y});return l.createElement("div",{className:"color3Line"},l.createElement("div",{className:"firstLine"},l.createElement("div",{className:"label"},this.props.label),l.createElement("div",{className:"color3"},l.createElement(Oe,{value:this.state.color,onColorChanged:function(t){e.onChange(t)}})),l.createElement("div",{className:"copy hoverIcon",onClick:function(){return e.copyToClipboard()},title:"Copy to clipboard"},l.createElement("img",{src:qt,alt:""})),l.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"r",value:this.state.color.r,onChange:function(t){return e.updateStateR(t)}}),l.createElement(Ee,{label:"g",value:this.state.color.g,onChange:function(t){return e.updateStateG(t)}}),l.createElement(Ee,{label:"b",value:this.state.color.b,onChange:function(t){return e.updateStateB(t)}}),l.createElement(Ee,{label:"a",value:this.state.color.a,onChange:function(t){return e.updateStateA(t)}})))},t}(l.Component),$t=function(e){function t(t){var r=e.call(this,t)||this;return r._onDebugSelectionChangeObservable=new c.Observable,r}return a(t,e),t.prototype.edit=function(){this.props.material.edit()},t.prototype.renderTextures=function(){var e=this,t=this.props.material,r=this._onDebugSelectionChangeObservable,n=t.getTextureBlocks();return n&&0!==n.length?l.createElement(se,{globalState:this.props.globalState,title:"TEXTURES"},n.map((function(n,a){return l.createElement(Ye,{label:n.name,key:"nodematText"+a,texture:n.texture,material:t,onTextureCreated:function(e){return n.texture=e},onSelectionChangedObservable:e.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:r})}))):null},t.prototype.renderInputBlock=function(e){switch(e.type){case c.NodeMaterialBlockConnectionPointTypes.Float:var t=isNaN(e.min)||isNaN(e.max)||e.min===e.max;return l.createElement("div",{key:e.name},e.isBoolean&&l.createElement(de,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.isBoolean&&t&&l.createElement(Me,{key:e.name,lockObject:this.props.lockObject,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.isBoolean&&!t&&l.createElement(ve,{key:e.name,label:e.name,target:e,propertyName:"value",step:(e.max-e.min)/100,minimum:e.min,maximum:e.max,onPropertyChangedObservable:this.props.onPropertyChangedObservable}));case c.NodeMaterialBlockConnectionPointTypes.Color3:return l.createElement(Pe,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.NodeMaterialBlockConnectionPointTypes.Color4:return l.createElement(Qt,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.NodeMaterialBlockConnectionPointTypes.Vector2:return l.createElement(Je,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.NodeMaterialBlockConnectionPointTypes.Vector3:return l.createElement(we,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case c.NodeMaterialBlockConnectionPointTypes.Vector4:return l.createElement(Kt,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return null},t.prototype.renderInputValues=function(){var e=this,t=this.props.material.getInputBlocks().filter((function(e){return e.visibleInInspector&&e.isUniform&&!e.isSystemValue})).sort((function(e,t){return e.name.localeCompare(t.name)}));if(0===t.length)return null;var r=[];return t.forEach((function(e){e.groupInInspector&&-1===r.indexOf(e.groupInInspector)&&r.push(e.groupInInspector)})),r.sort(),l.createElement(l.Fragment,null,l.createElement(se,{globalState:this.props.globalState,title:"INPUTS"},t.filter((function(e){return!e.groupInInspector})).map((function(t){return e.renderInputBlock(t)}))),r.map((function(r,n){return l.createElement(se,{key:"inputValue"+n,globalState:e.props.globalState,title:r.toUpperCase()},t.filter((function(e){return e.groupInInspector===r})).map((function(t){return e.renderInputBlock(t)})))})))},t.prototype.render=function(){var e=this,t=this.props.material;return l.createElement("div",{className:"pane"},l.createElement(Ue,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"CONFIGURATION"},l.createElement(de,{label:"Ignore alpha",target:t,propertyName:"ignoreAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Te,{label:"Node Material Editor",onClick:function(){return e.edit()}})),this.renderInputValues(),this.renderTextures())},t}(l.Component),Zt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onMaterialLink=function(e){this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.notifyObservers(e)},t.prototype.renderChildMaterial=function(){var e=this,t=this.props.material;return l.createElement(se,{globalState:this.props.globalState,title:"CHILDREN"},t.subMaterials.map((function(t,r){return t?l.createElement(le,{key:"Material #"+r,label:"Material #"+r,value:t.name,onLink:function(){return e.onMaterialLink(t)}}):null})))},t.prototype.render=function(){var e=this.props.material;return l.createElement("div",{className:"pane"},l.createElement(Ue,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderChildMaterial())},t}(l.Component),Jt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Min emit box",target:e,propertyName:"minEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Max emit box",target:e,propertyName:"maxEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),er=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Height range",target:e,propertyName:"heightRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Emit from spawn point only",target:e,propertyName:"emitFromSpawnPointOnly",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),tr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Height",target:e,propertyName:"height",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),rr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),nr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),ar=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),or=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.scene.meshes.filter((function(e){return!!e.name}));t.sort((function(e,t){return e.name.localeCompare(t.name)}));var r=[{label:"None",value:-1}];return t.sort((function(e,t){return e.name.localeCompare(t.name)})),r.push.apply(r,t.map((function(e,t){return{label:e.name,value:t}}))),l.createElement(l.Fragment,null,l.createElement(Ce,{label:this.props.label,options:r,target:this.props.target,propertyName:this.props.property,noDirectUpdate:!0,onSelect:function(r){var n,a=e.props.target[e.props.property];switch(r){case-1:e.props.target[e.props.property]=null;break;default:e.props.target[e.props.property]=t[r]}e.props.onPropertyChangedObservable&&e.props.onPropertyChangedObservable.notifyObservers({object:null!==(n=e.props.replaySourceReplacement)&&void 0!==n?n:e.props.target,property:e.props.property,value:e.props.target[e.props.property],initialValue:a}),e.forceUpdate()},extractValue:function(){if(!e.props.target[e.props.property])return-1;var r=t.indexOf(e.props.target[e.props.property]);return r>-1?r:-1}}))},t}(l.Component),ir=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.emitter;return l.createElement(l.Fragment,null,l.createElement(or,{replaySourceReplacement:this.props.replaySourceReplacement,globalState:this.props.globalState,label:"Source",scene:this.props.scene,onPropertyChangedObservable:this.props.onPropertyChangedObservable,target:this.props.emitter,property:"mesh"}),!e.useMeshNormalsForDirection&&l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.useMeshNormalsForDirection&&l.createElement(we,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Use normals for direction",target:e,propertyName:"useMeshNormalsForDirection",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(l.Component),lr=function(e){function t(t){var r,n=e.call(this,t)||this;return n.state={gradient:t.gradient.gradient,factor1:n.props.gradient.factor1.toString(),factor2:null===(r=n.props.gradient.factor2)||void 0===r?void 0:r.toString()},n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var r;return e.gradient!==this.props.gradient&&(t.gradient=e.gradient.gradient,t.factor1=e.gradient.factor1.toString(),t.factor2=null===(r=e.gradient.factor2)||void 0===r?void 0:r.toString()),!0},t.prototype.updateFactor1=function(e){if(!/[^0-9\.\-]/g.test(e)){var t=parseFloat(e);this.setState({factor1:e}),isNaN(t)||(this.props.gradient.factor1=t,this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".factor1 = "+t+";"}),this.props.onUpdateGradient(),this.forceUpdate())}},t.prototype.updateFactor2=function(e){if(!/[^0-9\.\-]/g.test(e)){var t=parseFloat(e);this.setState({factor2:e}),isNaN(t)||(this.props.gradient.factor2=t,this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".factor2 = "+t+";"}),this.props.onUpdateGradient(),this.forceUpdate())}},t.prototype.updateGradient=function(e){this.props.gradient.gradient=e,this.setState({gradient:e}),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".gradient = "+e+";"}),this.props.onUpdateGradient()},t.prototype.onPointerUp=function(){this.props.onCheckForReOrder()},t.prototype.lock=function(){this.props.lockObject&&(this.props.lockObject.lock=!0)},t.prototype.unlock=function(){this.props.lockObject&&(this.props.lockObject.lock=!1)},t.prototype.render=function(){var e=this,t=this.props.gradient;return l.createElement("div",{className:"gradient-step"},l.createElement("div",{className:"step"},"#"+this.props.lineIndex),l.createElement("div",{className:"factor1"},l.createElement("input",{type:"number",step:"0.01",className:"numeric-input",value:this.state.factor1,onBlur:function(){return e.unlock()},onFocus:function(){return e.lock()},onChange:function(t){return e.updateFactor1(t.target.value)}})),this.props.host instanceof c.ParticleSystem&&l.createElement("div",{className:"factor2"},l.createElement("input",{type:"number",step:"0.01",className:"numeric-input"+(this.state.factor1===this.state.factor2||void 0===t.factor2?" grayed":""),value:this.state.factor2,onBlur:function(){return e.unlock()},onFocus:function(){return e.lock()},onChange:function(t){return e.updateFactor2(t.target.value)}})),l.createElement("div",{className:"step-value"},t.gradient.toFixed(2)),l.createElement("div",{className:"step-slider"},l.createElement("input",{className:"range",type:"range",step:.01,min:0,max:1,value:t.gradient,onPointerUp:function(t){return e.onPointerUp()},onChange:function(t){return e.updateGradient(parseFloat(t.target.value))}})),l.createElement("div",{className:"gradient-delete hoverIcon",onClick:function(){return e.props.onDelete()}},l.createElement(u.a,{icon:te})))},t}(l.Component),sr=function(e){function t(t){var r=e.call(this,t)||this;return r.state={gradient:t.gradient.gradient},r}return a(t,e),t.prototype.updateColor1=function(e){this.props.gradient instanceof c.ColorGradient?(this.props.gradient.color1=c.Color4.FromHexString(e),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".color1 = BABYLON.Color4.FromHexString("+e+");"})):(this.props.gradient.color=c.Color3.FromHexString(e),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".color = BABYLON.Color3.FromHexString("+e+");"})),this.props.onUpdateGradient(),this.forceUpdate()},t.prototype.updateColor2=function(e){this.props.gradient instanceof c.ColorGradient&&(this.props.gradient.color2=c.Color4.FromHexString(e),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".color2 = BABYLON.Color4.FromHexString("+e+");"})),this.props.onUpdateGradient(),this.forceUpdate()},t.prototype.updateGradient=function(e){this.props.gradient.gradient=e,this.setState({gradient:e}),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".gradient = "+e+";"}),this.props.onUpdateGradient()},t.prototype.onPointerUp=function(){this.props.onCheckForReOrder()},t.prototype.lock=function(){this.props.lockObject&&(this.props.lockObject.lock=!0)},t.prototype.unlock=function(){this.props.lockObject&&(this.props.lockObject.lock=!1)},t.prototype.render=function(){var e=this,t=this.props.gradient;return l.createElement("div",{className:"gradient-step"},l.createElement("div",{className:"step"},"#"+this.props.lineIndex),l.createElement("div",{className:"color1"},l.createElement(Oe,{value:t instanceof c.Color3Gradient?t.color:t.color1,onColorChanged:function(t){e.updateColor1(t)},disableAlpha:t instanceof c.Color3Gradient})),this.props.host instanceof c.ParticleSystem&&t instanceof c.ColorGradient&&l.createElement("div",{className:"color2"},l.createElement(Oe,{value:t.color2?t.color2:new c.Color4,onColorChanged:function(t){e.updateColor2(t)}})),l.createElement("div",{className:"step-value"},t.gradient.toFixed(2)),l.createElement("div",{className:"step-slider"},l.createElement("input",{className:"range",type:"range",step:.01,min:0,max:1,value:t.gradient,onPointerUp:function(t){return e.onPointerUp()},onChange:function(t){return e.updateGradient(parseFloat(t.target.value))}})),l.createElement("div",{className:"gradient-delete hoverIcon",onClick:function(){return e.props.onDelete()}},l.createElement(u.a,{icon:te})))},t}(l.Component),pr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onLink=function(){this.props.url&&window.open(this.props.url,"_blank")},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"linkButtonLine"},l.createElement("div",{className:"link",title:this.props.label,onClick:function(){return e.onLink()}},this.props.label),l.createElement("div",{className:"link-button"},l.createElement("button",{onClick:function(){return e.props.onClick()}},this.props.buttonLabel)),this.props.icon&&l.createElement("div",{className:"link-icon hoverIcon",onClick:function(){e.props.onIconClick&&e.props.onIconClick()}},l.createElement(u.a,{icon:this.props.icon})))},t}(l.Component);!function(e){e[e.Factor=0]="Factor",e[e.Color3=1]="Color3",e[e.Color4=2]="Color4"}(Ke||(Ke={}));var cr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.deleteStep=function(e){var t=this.props.gradients,r=t.indexOf(e);r>-1&&(t.splice(r,1),this.updateAndSync(),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".splice("+r+", 1);"}))},t.prototype.addNewStep=function(){var e=this.props.gradients;switch(this.props.mode){case Ke.Factor:var t=new c.FactorGradient(1,1,1);e.push(t),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".push(new BABYLON.FactorGradient(1, 1, 1));"});break;case Ke.Color4:var r=new c.ColorGradient(1,new c.Color4(1,1,1,1),new c.Color4(1,1,1,1));e.push(r),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".push(new BABYLON.ColorGradient(1, new BABYLON.Color4(1, 1, 1, 1), new BABYLON.Color4(1, 1, 1, 1)));"});break;case Ke.Color3:var n=new c.Color3Gradient(1,c.Color3.White());e.push(n),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".push(new BABYLON.Color3Gradient(1, BABYLON.Color3.White()));"})}this.props.host.forceRefreshGradients(),this.forceUpdate()},t.prototype.checkForReOrder=function(){this.props.gradients.sort((function(e,t){return e.gradient===t.gradient?0:e.gradient>t.gradient?1:-1})),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".sort((a, b) => {\n if (a.gradient === b.gradient) {\n return 0;\n }\n \n if (a.gradient > b.gradient) {\n return 1;\n }\n \n return -1;\n });"}),this.forceUpdate()},t.prototype.updateAndSync=function(){this.props.host.forceRefreshGradients(),this.forceUpdate()},t.prototype.render=function(){var e=this,t=this.props.gradients;return l.createElement("div",null,t&&t.length>0&&l.createElement("div",{className:"gradient-container"},l.createElement(pr,{label:this.props.label,url:this.props.docLink,icon:te,onIconClick:function(){t.length=0,e.updateAndSync(),e.props.globalState.onCodeChangedObservable.notifyObservers({object:e.props.host,code:"TARGET."+e.props.codeRecorderPropertyName+".length = 0;"})},buttonLabel:"Add new step",onClick:function(){return e.addNewStep()}}),t.map((function(t,r){var n=e.props.codeRecorderPropertyName+"["+r+"]";switch(e.props.mode){case Ke.Factor:return l.createElement(lr,{globalState:e.props.globalState,lockObject:e.props.lockObject,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},host:e.props.host,codeRecorderPropertyName:n,key:"step-"+r,lineIndex:r,gradient:t,onDelete:function(){return e.deleteStep(t)}});case Ke.Color4:return l.createElement(sr,{globalState:e.props.globalState,host:e.props.host,codeRecorderPropertyName:n,lockObject:e.props.lockObject,isColor3:!1,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},key:"step-"+r,lineIndex:r,gradient:t,onDelete:function(){return e.deleteStep(t)}});case Ke.Color3:return l.createElement(sr,{globalState:e.props.globalState,host:e.props.host,codeRecorderPropertyName:n,lockObject:e.props.lockObject,isColor3:!0,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},key:"step-"+r,lineIndex:r,gradient:t,onDelete:function(){return e.deleteStep(t)}})}}))),(!t||0===t.length)&&l.createElement(Te,{label:"Use "+this.props.label,onClick:function(){e.props.onCreateRequired(),e.forceUpdate()}}))},t}(l.Component),ur=function(e){function t(t){var r=e.call(this,t)||this;return r._snippetUrl="https://snippet.babylonjs.com",r}return a(t,e),t.prototype.renderEmitter=function(){var e,t=this.props.system,r="particlesystem.particleEmitterType";switch(null===(e=t.particleEmitterType)||void 0===e?void 0:e.getClassName()){case"BoxParticleEmitter":return l.createElement(Jt,{replaySourceReplacement:r,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"ConeParticleEmitter":return l.createElement(er,{replaySourceReplacement:r,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"CylinderParticleEmitter":return l.createElement(tr,{replaySourceReplacement:r,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"HemisphericParticleEmitter":return l.createElement(rr,{replaySourceReplacement:r,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"MeshParticleEmitter":return l.createElement(ir,{replaySourceReplacement:r,lockObject:this.props.lockObject,scene:t.getScene(),globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"PointParticleEmitter":return l.createElement(nr,{replaySourceReplacement:r,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"SphereParticleEmitter":return l.createElement(ar,{replaySourceReplacement:r,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return null},t.prototype.raiseOnPropertyChanged=function(e,t,r){if(this.props.onPropertyChangedObservable){var n=this.props.system;this.props.onPropertyChangedObservable.notifyObservers({object:n,property:e,value:t,initialValue:r})}},t.prototype.renderControls=function(){var e=this,t=this.props.system;if(t instanceof c.GPUParticleSystem){var r=t.isStarted()&&!t.isStopped();return l.createElement(Te,{label:r?"Stop":"Start",onClick:function(){r?(t.stop(),t.reset()):t.start(),e.forceUpdate()}})}var n=t.isStarted();return l.createElement(l.Fragment,null,!t.isStopping()&&l.createElement(Te,{label:n?"Stop":"Start",onClick:function(){n?t.stop():t.start(),e.forceUpdate()}}),t.isStopping()&&l.createElement(le,{label:"System is stoppping...",ignoreValue:!0}))},t.prototype.saveToFile=function(){var e=this.props.system,t=JSON.stringify(e.serialize(!0));c.Tools.Download(new Blob([t]),"particleSystem.json")},t.prototype.loadFromFile=function(e){var t=this,r=this.props.system,n=r.getScene();c.Tools.ReadFile(e,(function(e){var a=new TextDecoder("utf-8"),o=JSON.parse(a.decode(e)),i=r instanceof c.GPUParticleSystem;r.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null);var l=i?c.GPUParticleSystem.Parse(o,n,""):c.ParticleSystem.Parse(o,n,"");t.props.globalState.onSelectionChangedObservable.notifyObservers(l)}),void 0,!0)},t.prototype.loadFromSnippet=function(){var e=this,t=this.props.system,r=t.getScene(),n=t instanceof c.GPUParticleSystem,a=window.prompt("Please enter the snippet ID to use");a&&(t.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),c.ParticleHelper.CreateFromSnippetAsync(a,r,n).then((function(t){e.props.globalState.onSelectionChangedObservable.notifyObservers(t)})).catch((function(e){alert("Unable to load your particle system: "+e)})))},t.prototype.saveToSnippet=function(){var e=this,t=this.props.system,r=JSON.stringify(t.serialize(!0)),n=new XMLHttpRequest;n.onreadystatechange=function(){if(4==n.readyState)if(200==n.status){var r=JSON.parse(n.responseText),a=t.snippetId;t.snippetId=r.id,r.version&&"0"!=r.version&&(t.snippetId+="#"+r.version),e.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(t.snippetId);var o=window;o.Playground&&a&&o.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(a,"g"),replace:t.snippetId}),alert("Particle system saved with ID: "+t.snippetId+" (please note that the id was also saved to your clipboard)")}else alert("Unable to save your particle system")},n.open("POST",this._snippetUrl+(t.snippetId?"/"+t.snippetId:""),!0),n.setRequestHeader("Content-Type","application/json");var a={payload:JSON.stringify({particleSystem:r}),name:"",description:"",tags:""};n.send(JSON.stringify(a))},t.prototype.render=function(){var e,t,r=this,n=this.props.system,a=[{label:"Add",value:c.ParticleSystem.BLENDMODE_ADD},{label:"Multiply",value:c.ParticleSystem.BLENDMODE_MULTIPLY},{label:"Multiply Add",value:c.ParticleSystem.BLENDMODE_MULTIPLYADD},{label:"OneOne",value:c.ParticleSystem.BLENDMODE_ONEONE},{label:"Standard",value:c.ParticleSystem.BLENDMODE_STANDARD}],o=this.props.system.getScene().meshes.filter((function(e){return!!e.name})),i=[{label:"None",value:-1},{label:"Vector3",value:0}];return o.sort((function(e,t){return e.name.localeCompare(t.name)})),i.push.apply(i,o.map((function(e,t){return{label:e.name,value:t+1}}))),l.createElement("div",{className:"pane"},l.createElement(Ne,{globalState:this.props.globalState,target:n,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(le,{label:"ID",value:n.id}),l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:n,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(le,{label:"Class",value:n.getClassName()}),l.createElement(le,{label:"Capacity",value:n.getCapacity().toString()}),l.createElement(le,{label:"Active count",value:n.getActiveCount().toString()}),l.createElement(Ye,{label:"Texture",texture:n.particleTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),l.createElement(Ce,{label:"Blend mode",options:a,target:n,propertyName:"blendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"World offset",target:n,propertyName:"worldOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(we,{label:"Gravity",target:n,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Is billboard",target:n,propertyName:"isBillboardBased",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Is local",target:n,propertyName:"isLocal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Force depth write",target:n,propertyName:"forceDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Update speed",target:n,propertyName:"updateSpeed",minimum:0,maximum:.1,decimalCount:3,step:.001,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(se,{globalState:this.props.globalState,title:"COMMANDS"},this.renderControls(),l.createElement(Te,{label:"Dispose",onClick:function(){r.props.globalState.onSelectionChangedObservable.notifyObservers(null),n.dispose()}})),l.createElement(se,{globalState:this.props.globalState,title:"FILE"},l.createElement(We,{label:"Load",onClick:function(e){return r.loadFromFile(e)},accept:".json"}),l.createElement(Te,{label:"Save",onClick:function(){return r.saveToFile()}})),l.createElement(se,{globalState:this.props.globalState,title:"SNIPPET"},n.snippetId&&l.createElement(le,{label:"Snippet ID",value:n.snippetId}),l.createElement(Te,{label:"Load from snippet server",onClick:function(){return r.loadFromSnippet()}}),l.createElement(Te,{label:"Save to snippet server",onClick:function(){return r.saveToSnippet()}})),l.createElement(se,{globalState:this.props.globalState,title:"EMITTER",closed:!0},l.createElement(Ce,{label:"Emitter",options:i,target:n,propertyName:"emitter",noDirectUpdate:!0,onSelect:function(e){switch(e){case-1:r.raiseOnPropertyChanged("emitter",null,n.emitter),n.emitter=null;break;case 0:r.raiseOnPropertyChanged("emitter",c.Vector3.Zero(),n.emitter),n.emitter=c.Vector3.Zero();break;default:r.raiseOnPropertyChanged("emitter",o[e-1],n.emitter),n.emitter=o[e-1]}r.forceUpdate()},extractValue:function(){if(!n.emitter)return-1;if(void 0!==n.emitter.x)return 0;var e=o.indexOf(n.emitter);return e>-1?e+1:-1}}),n.emitter&&void 0===n.emitter.x&&l.createElement(le,{label:"Link to emitter",value:n.emitter.name,onLink:function(){return r.props.globalState.onSelectionChangedObservable.notifyObservers(n.emitter)}}),n.emitter&&void 0!==n.emitter.x&&l.createElement(we,{label:"Position",target:n,propertyName:"emitter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Ce,{label:"Type",options:[{label:"Box",value:0},{label:"Cone",value:1},{label:"Cylinder",value:2},{label:"Hemispheric",value:3},{label:"Mesh",value:4},{label:"Point",value:5},{label:"Sphere",value:6}],target:n,propertyName:"particleEmitterType",noDirectUpdate:!0,onSelect:function(e){var t=n.particleEmitterType;switch(e){case 0:n.particleEmitterType=new c.BoxParticleEmitter;break;case 1:n.particleEmitterType=new c.ConeParticleEmitter;break;case 2:n.particleEmitterType=new c.CylinderParticleEmitter;break;case 3:n.particleEmitterType=new c.HemisphericParticleEmitter;break;case 4:n.particleEmitterType=new c.MeshParticleEmitter;break;case 5:n.particleEmitterType=new c.PointParticleEmitter;break;case 6:n.particleEmitterType=new c.SphereParticleEmitter}r.raiseOnPropertyChanged("particleEmitterType",n.particleEmitterType,t),r.forceUpdate()},extractValue:function(){var e;switch(null===(e=n.particleEmitterType)||void 0===e?void 0:e.getClassName()){case"BoxParticleEmitter":return 0;case"ConeParticleEmitter":return 1;case"CylinderParticleEmitter":return 2;case"HemisphericParticleEmitter":return 3;case"MeshParticleEmitter":return 4;case"PointParticleEmitter":return 5;case"SphereParticleEmitter":return 6}return 0}}),this.renderEmitter()),l.createElement(se,{globalState:this.props.globalState,title:"EMISSION",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Rate",target:n,propertyName:"emitRate",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ParticleSystem&&l.createElement(cr,{globalState:this.props.globalState,gradients:n.getEmitRateGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#emit-rate-over-time",onCreateRequired:function(){n.addEmitRateGradient(0,50,50),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addEmitRateGradient(0, 50, 50);"})},mode:Ke.Factor,host:n,codeRecorderPropertyName:"getEmitRateGradients()",lockObject:this.props.lockObject}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Min emit power",target:n,propertyName:"minEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max emit power",target:n,propertyName:"maxEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getVelocityGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#velocity-over-time",onCreateRequired:function(){n.addVelocityGradient(0,.1,.1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addVelocityGradient(0, 0.1, 0.1);"})},mode:Ke.Factor,host:n,codeRecorderPropertyName:"getVelocityGradients()",lockObject:this.props.lockObject}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getLimitVelocityGradients(),label:"Limit velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#limit-velocity-over-time",onCreateRequired:function(){n.addLimitVelocityGradient(0,.1,.1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addLimitVelocityGradient(0, 0.1, 0.1);"})},mode:Ke.Factor,host:n,codeRecorderPropertyName:"getLimitVelocityGradients()",lockObject:this.props.lockObject}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getDragGradients(),label:"Drag gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#drag-factor",onCreateRequired:function(){n.addDragGradient(0,.1,.1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addDragGradient(0, 0.1, 0.1);"})},host:n,codeRecorderPropertyName:"getDragGradients()",mode:Ke.Factor,lockObject:this.props.lockObject})),l.createElement(se,{globalState:this.props.globalState,title:"SIZE",closed:!0},(!n.getSizeGradients()||0===(null===(e=n.getSizeGradients())||void 0===e?void 0:e.length))&&l.createElement(l.Fragment,null,l.createElement(Me,{lockObject:this.props.lockObject,label:"Min size",target:n,propertyName:"minSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max size",target:n,propertyName:"maxSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(Me,{lockObject:this.props.lockObject,label:"Min scale X",target:n,propertyName:"minScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max scale X",target:n,propertyName:"maxScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Min scale Y",target:n,propertyName:"minScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max scale Y",target:n,propertyName:"maxScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ParticleSystem&&l.createElement(cr,{globalState:this.props.globalState,gradients:n.getStartSizeGradients(),label:"Start size gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#start-size-over-time",onCreateRequired:function(){n.addStartSizeGradient(0,1,1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addStartSizeGradient(0, 1, 1);"})},host:n,codeRecorderPropertyName:"getStartSizeGradients()",mode:Ke.Factor,lockObject:this.props.lockObject}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getSizeGradients(),label:"Size gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#size",onCreateRequired:function(){n.addSizeGradient(0,1,1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addSizeGradient(0, 1, 1);"})},host:n,codeRecorderPropertyName:"getSizeGradients()",mode:Ke.Factor,lockObject:this.props.lockObject})),l.createElement(se,{globalState:this.props.globalState,title:"LIFETIME",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Min lifetime",target:n,propertyName:"minLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max lifetime",target:n,propertyName:"maxLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Target stop duration",target:n,propertyName:"targetStopDuration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n instanceof c.ParticleSystem&&l.createElement(cr,{globalState:this.props.globalState,gradients:n.getLifeTimeGradients(),label:"Lifetime gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#lifetime",onCreateRequired:function(){n.addLifeTimeGradient(0,1,1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addLifeTimeGradient(0, 1, 1);"})},host:n,codeRecorderPropertyName:"getLifeTimeGradients()",mode:Ke.Factor,lockObject:this.props.lockObject})),l.createElement(se,{globalState:this.props.globalState,title:"COLORS",closed:!0},(!n.getColorGradients()||0===(null===(t=n.getColorGradients())||void 0===t?void 0:t.length))&&l.createElement(l.Fragment,null,l.createElement(Qt,{label:"Color 1",target:n,propertyName:"color1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Qt,{label:"Color 2",target:n,propertyName:"color2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Qt,{label:"Color dead",target:n,propertyName:"colorDead",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getColorGradients(),label:"Color gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#particle-colors",onCreateRequired:function(){n.addColorGradient(0,new c.Color4(0,0,0,1),new c.Color4(0,0,0,1)),n.addColorGradient(1,new c.Color4(1,1,1,1),new c.Color4(1,1,1,1)),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addColorGradient(0, new BABYLON.Color4(0, 0, 0, 1), new BABYLON.Color4(0, 0, 0, 1));"}),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addColorGradient(1, new BABYLON.Color4(1, 1, 1, 1), new BABYLON.Color4(1, 1, 1, 1));"})},host:n,codeRecorderPropertyName:"getColorGradients()",mode:Ke.Color4,lockObject:this.props.lockObject}),n instanceof c.ParticleSystem&&l.createElement(l.Fragment,null,l.createElement(de,{label:"Enable ramp grandients",target:n,propertyName:"useRampGradients"}),n.useRampGradients&&l.createElement(l.Fragment,null,l.createElement(cr,{globalState:this.props.globalState,gradients:n.getRampGradients(),label:"Ramp gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){n.addRampGradient(0,c.Color3.White()),n.addRampGradient(1,c.Color3.Black()),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addRampGradient(0, BABYLON.Color3.White());"}),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addRampGradient(1, BABYLON.Color3.Black());"})},mode:Ke.Color3,host:n,codeRecorderPropertyName:"getRampGradients()",lockObject:this.props.lockObject}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getColorRemapGradients(),label:"Color remap gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){n.addColorRemapGradient(0,1,1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addColorRemapGradient(0, 1, 1);"})},host:n,codeRecorderPropertyName:"getColorRemapGradients()",mode:Ke.Factor,lockObject:this.props.lockObject}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getAlphaRemapGradients(),label:"Alpha remap gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){n.addAlphaRemapGradient(0,1,1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addAlphaRemapGradient(0, 1, 1);"})},host:n,codeRecorderPropertyName:"getAlphaRemapGradients()",mode:Ke.Factor,lockObject:this.props.lockObject})))),l.createElement(se,{globalState:this.props.globalState,title:"ROTATION",closed:!0},l.createElement(Me,{lockObject:this.props.lockObject,label:"Min angular speed",target:n,propertyName:"minAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max angular speed",target:n,propertyName:"maxAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Min initial rotation",target:n,propertyName:"minInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{lockObject:this.props.lockObject,label:"Max initial rotation",target:n,propertyName:"maxInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(cr,{globalState:this.props.globalState,gradients:n.getAngularSpeedGradients(),label:"Angular speed gradients",docLink:"hhttps://doc.babylonjs.com/babylon101/particles#rotation",onCreateRequired:function(){n.addAngularSpeedGradient(0,.1,.1),r.props.globalState.onCodeChangedObservable.notifyObservers({object:n,code:"TARGET.addAngularSpeedGradient(0, 0.1, 0.1);"})},host:n,codeRecorderPropertyName:"getAngularSpeedGradients()",mode:Ke.Factor,lockObject:this.props.lockObject})),l.createElement(se,{globalState:this.props.globalState,title:"SPRITESHEET",closed:!0},l.createElement(de,{label:"Animation sheet enabled",target:n,propertyName:"isAnimationSheetEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{label:"First sprite index",isInteger:!0,target:n,propertyName:"startSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{label:"Last sprite index",isInteger:!0,target:n,propertyName:"endSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Random start cell index",target:n,propertyName:"spriteRandomStartCell",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{label:"Cell width",isInteger:!0,target:n,propertyName:"spriteCellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(Me,{label:"Cell height",isInteger:!0,target:n,propertyName:"spriteCellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(ve,{label:"Cell change speed",target:n,propertyName:"spriteCellChangeSpeed",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(l.Component),dr=function(e){function t(t){var r=e.call(this,t)||this;return r._snippetUrl="https://snippet.babylonjs.com",r}return a(t,e),t.prototype.addNewSprite=function(){var e,t=this.props.spriteManager,r=new c.Sprite("new sprite",t);null===(e=this.props.onSelectionChangedObservable)||void 0===e||e.notifyObservers(r),this.props.globalState.onCodeChangedObservable.notifyObservers({object:t,code:'new BABYLON.Sprite("new sprite", TARGET);'})},t.prototype.disposeManager=function(){var e,t=this.props.spriteManager;t.dispose(),this.props.globalState.onCodeChangedObservable.notifyObservers({object:t,code:"TARGET.dispose();"}),null===(e=this.props.onSelectionChangedObservable)||void 0===e||e.notifyObservers(null)},t.prototype.saveToFile=function(){var e=this.props.spriteManager,t=JSON.stringify(e.serialize(!0));c.Tools.Download(new Blob([t]),"spriteManager.json")},t.prototype.loadFromFile=function(e){var t=this,r=this.props.spriteManager,n=r.scene;c.Tools.ReadFile(e,(function(e){var a=new TextDecoder("utf-8"),o=JSON.parse(a.decode(e));r.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null);var i=c.SpriteManager.Parse(o,n,"");t.props.globalState.onSelectionChangedObservable.notifyObservers(i)}),void 0,!0)},t.prototype.loadFromSnippet=function(){var e=this,t=this.props.spriteManager,r=t.scene,n=window.prompt("Please enter the snippet ID to use");n&&(t.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),c.SpriteManager.CreateFromSnippetAsync(n,r).then((function(t){e.props.globalState.onSelectionChangedObservable.notifyObservers(t)})).catch((function(e){alert("Unable to load your sprite manager: "+e)})))},t.prototype.saveToSnippet=function(){var e=this,t=this.props.spriteManager,r=JSON.stringify(t.serialize(!0)),n=new XMLHttpRequest;n.onreadystatechange=function(){if(4==n.readyState)if(200==n.status){var r=JSON.parse(n.responseText),a=t.snippetId;t.snippetId=r.id,r.version&&"0"!=r.version&&(t.snippetId+="#"+r.version),e.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(t.snippetId);var o=window;o.Playground&&a&&o.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(a,"g"),replace:t.snippetId}),alert("Sprite manager saved with ID: "+t.snippetId+" (please note that the id was also saved to your clipboard)")}else alert("Unable to save your sprite manager")},n.open("POST",this._snippetUrl+(t.snippetId?"/"+t.snippetId:""),!0),n.setRequestHeader("Content-Type","application/json");var a={payload:JSON.stringify({spriteManager:r}),name:"",description:"",tags:""};n.send(JSON.stringify(a))},t.prototype.render=function(){var e=this,t=this.props.spriteManager,r=[{label:"Combine",value:c.Constants.ALPHA_COMBINE},{label:"One one",value:c.Constants.ALPHA_ONEONE},{label:"Add",value:c.Constants.ALPHA_ADD},{label:"Subtract",value:c.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:c.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:c.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:c.Constants.ALPHA_PREMULTIPLIED}];return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"GENERAL"},l.createElement(_e,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(le,{label:"Unique ID",value:t.uniqueId.toString()}),l.createElement(le,{label:"Capacity",value:t.capacity.toString()}),l.createElement(Ye,{label:"Texture",texture:t.texture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),t.sprites.length0)return l.createElement("div",null,l.createElement(ht,{globalState:this.props.globalState,mesh:o,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))}if(-1!==t.indexOf("ParticleSystem")){var i=e;return l.createElement(ur,{globalState:this.props.globalState,system:i,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("FreeCamera")||-1!==t.indexOf("UniversalCamera")||-1!==t.indexOf("WebXRCamera")||-1!==t.indexOf("DeviceOrientationCamera")){var s=e;return l.createElement(pt,{globalState:this.props.globalState,camera:s,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("ArcRotateCamera")){var p=e;return l.createElement(ct,{globalState:this.props.globalState,camera:p,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("HemisphericLight"===t){var c=e;return l.createElement(ot,{globalState:this.props.globalState,light:c,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PointLight"===t){var u=e;return l.createElement(lt,{globalState:this.props.globalState,light:u,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("DirectionalLight"===t){u=e;return l.createElement(Wt,{globalState:this.props.globalState,light:u,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("SpotLight"===t){u=e;return l.createElement(Yt,{globalState:this.props.globalState,light:u,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("TransformNode")||-1!==t.indexOf("Mesh")){var d=e;return l.createElement(bt,{transformNode:d,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("MultiMaterial"===t){var h=e;return l.createElement(Zt,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("StandardMaterial"===t){h=e;return l.createElement(Xe,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("NodeMaterial"===t){h=e;return l.createElement($t,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRMaterial"===t){h=e;return l.createElement(et,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRMetallicRoughnessMaterial"===t){h=e;return l.createElement(At,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRSpecularGlossinessMaterial"===t){h=e;return l.createElement(Lt,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("BackgroundMaterial"===t){h=e;return l.createElement(ft,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("AnimationGroup"===t){var b=e;return l.createElement(Et,{globalState:this.props.globalState,animationGroup:b,scene:this.props.scene,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("TargetedAnimation"===t){var f=e;return l.createElement(br,{globalState:this.props.globalState,targetedAnimation:f,scene:this.props.scene,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Material")){h=e;return l.createElement(Ve,{material:h,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("DefaultRenderingPipeline")){var m=e;return l.createElement(Gt,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("LensRenderingPipeline")){m=e;return l.createElement(Xt,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("SSAORenderingPipeline")){m=e;return l.createElement(Bt,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("SSAO2RenderingPipeline")){m=e;return l.createElement(Ht,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("RenderingPipeline")){m=e;return l.createElement(Ft,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("PostProcess")){var g=e;return l.createElement(Dt,{postProcess:g,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Texture")){var v=e;return l.createElement(Ze,{texture:v,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Skeleton")){var y=e;return l.createElement(Ut,{skeleton:y,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Bone")){var C=e;return l.createElement(Vt,{bone:C,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("TextBlock"===t){var E=e;return l.createElement(vt,{textBlock:E,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("InputText"===t){var x=e;return l.createElement(yt,{inputText:x,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ColorPicker"===t){var O=e;return l.createElement(Ct,{colorPicker:O,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Image"===t){var S=e;return l.createElement(Ot,{image:S,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Slider"===t){var P=e;return l.createElement(St,{slider:P,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ImageBasedSlider"===t){var w=e;return l.createElement(Pt,{imageBasedSlider:w,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Rectangle"===t){var k=e;return l.createElement(wt,{rectangle:k,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("StackPanel"===t){var _=e;return l.createElement(jt,{stackPanel:_,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Grid"===t){var N=e;return l.createElement(Rt,{grid:N,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ScrollViewer"===t){var T=e;return l.createElement(Mt,{scrollViewer:T,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Ellipse"===t){var M=e;return l.createElement(kt,{ellipse:M,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Checkbox"===t){var R=e;return l.createElement(_t,{checkbox:R,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("RadioButton"===t){var A=e;return l.createElement(Nt,{radioButton:A,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Line"===t){var L=e;return l.createElement(Tt,{line:L,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(e._host){var j=e;return l.createElement(gt,{control:j,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}return null},t}(ie),mr=function(e){function t(t){var r=e.call(this,t)||this;return r._backStack=new Array,r.state={isBackVisible:!1},r}return a(t,e),t.prototype.componentDidMount=function(){var e=this;this.props.onSelectionChangedObservable&&(this._onSelectionChangeObserver=this.props.onSelectionChangedObservable.add((function(t){0!==e._backStack.length&&t===e._backStack[e._backStack.length-1]||(e._backStack.push(t),e.setState({isBackVisible:e._backStack.length>1}))})))},t.prototype.componentWillUnmount=function(){this._onSelectionChangeObserver&&this.props.onSelectionChangedObservable.remove(this._onSelectionChangeObserver)},t.prototype.goBack=function(){this._backStack.pop();var e=this._backStack[this._backStack.length-1];this.props.onSelectionChangedObservable&&this.props.onSelectionChangedObservable.notifyObservers(e),this.setState({isBackVisible:this._backStack.length>1})},t.prototype.renderLogo=function(){var e=this;return this.props.noCommands?null:this.props.handleBack?this.state.isBackVisible?l.createElement("div",{id:"back",onClick:function(){return e.goBack()}},l.createElement(u.a,{icon:b})):null:l.createElement("img",{id:"logo",style:{top:"0%"},src:"https://www.babylonjs.com/Assets/logo-babylonjs-social-twitter.png"})},t.prototype.render=function(){var e=this;return l.createElement("div",{id:"header"},this.renderLogo(),l.createElement("div",{id:"title"},this.props.title),l.createElement("div",{id:"commands"},!this.props.noCommands&&!this.props.noExpand&&l.createElement("div",{className:"expand",onClick:function(){return e.props.onPopup()}},l.createElement(u.a,{icon:ae})),!this.props.noCommands&&!this.props.noClose&&l.createElement("div",{className:"close",onClick:function(){return e.props.onClose()}},l.createElement(u.a,{icon:J}))))},t}(l.Component),gr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){return this.props.icon?l.createElement("div",{className:"iconMessageLine"},l.createElement("div",{className:"icon",style:{color:this.props.color?this.props.color:""}},l.createElement(u.a,{icon:this.props.icon})),l.createElement("div",{className:"value",title:this.props.text},this.props.text)):l.createElement("div",{className:"messageLine"},l.createElement("div",{className:"value",title:this.props.text,style:{color:this.props.color?this.props.color:""}},this.props.text))},t}(l.Component),vr=r(17),yr=function(e){function t(t){var r=e.call(this,t)||this;r._onValidationResultsUpdatedObserver=null;var n=r.props.globalState.glTFLoaderExtensionDefaults;n.MSFT_lod=n.MSFT_lod||{enabled:!0,maxLODsToLoad:10},n.MSFT_minecraftMesh=n.MSFT_minecraftMesh||{enabled:!0},n.MSFT_sRGBFactors=n.MSFT_sRGBFactors||{enabled:!0},n.MSFT_audio_emitter=n.MSFT_audio_emitter||{enabled:!0},n.KHR_draco_mesh_compression=n.KHR_draco_mesh_compression||{enabled:!0},n.KHR_materials_pbrSpecularGlossiness=n.KHR_materials_pbrSpecularGlossiness||{enabled:!0},n.KHR_materials_clearcoat=n.KHR_materials_clearcoat||{enabled:!0},n.KHR_materials_sheen=n.KHR_materials_sheen||{enabled:!0},n.KHR_materials_specular=n.KHR_materials_specular||{enabled:!0},n.KHR_materials_unlit=n.KHR_materials_unlit||{enabled:!0},n.KHR_lights_punctual=n.KHR_lights_punctual||{enabled:!0},n.KHR_texture_transform=n.KHR_texture_transform||{enabled:!0},n.EXT_lights_image_based=n.EXT_lights_image_based||{enabled:!0};var a=r.props.globalState.glTFLoaderDefaults;return void 0===a.animationStartMode&&(a.animationStartMode=vr.GLTFLoaderAnimationStartMode.FIRST),a.capturePerformanceCounters=a.capturePerformanceCounters||!1,a.compileMaterials=a.compileMaterials||!1,a.compileShadowGenerators=a.compileShadowGenerators||!1,a.coordinateSystemMode=a.coordinateSystemMode||vr.GLTFLoaderCoordinateSystemMode.AUTO,a.loggingEnabled=a.loggingEnabled||!1,a.transparencyAsCoverage=a.transparencyAsCoverage||!1,a.useClipPlane=a.useClipPlane||!1,a.validate=a.validate||!0,r}return a(t,e),t.prototype.openValidationDetails=function(){var e=this.props.globalState.validationResults,t=window.open("","_blank");t&&(t.document.title="glTF Validation Results",t.document.body.innerText=JSON.stringify(e,null,2),t.document.body.style.whiteSpace="pre",t.document.body.style.fontFamily="monospace",t.document.body.style.fontSize="14px",t.focus())},t.prototype.prepareText=function(e,t){return t?t+" "+e+"s":""+e},t.prototype.componentDidMount=function(){var e=this;this.props.globalState&&(this._onValidationResultsUpdatedObserver=this.props.globalState.onValidationResultsUpdatedObservable.add((function(){e.forceUpdate()})))},t.prototype.componentWillUnmount=function(){this.props.globalState&&this._onValidationResultsUpdatedObserver&&this.props.globalState.onValidationResultsUpdatedObservable.remove(this._onValidationResultsUpdatedObserver)},t.prototype.renderValidation=function(){var e=this,t=this.props.globalState.validationResults;if(!t)return null;var r=t.issues;return l.createElement(se,{globalState:this.props.globalState,title:"GLTF VALIDATION",closed:!r.numErrors&&!r.numWarnings},0!==r.numErrors&&l.createElement(gr,{text:"Your file has some validation issues",icon:ee,color:"Red"}),0===r.numErrors&&l.createElement(gr,{text:"Your file is a valid glTF file",icon:P,color:"Green"}),l.createElement(le,{label:"Errors",value:r.numErrors.toString()}),l.createElement(le,{label:"Warnings",value:r.numWarnings.toString()}),l.createElement(le,{label:"Infos",value:r.numInfos.toString()}),l.createElement(le,{label:"Hints",value:r.numHints.toString()}),l.createElement(le,{label:"More details",value:"Click here",onLink:function(){return e.openValidationDetails()}}))},t.prototype.render=function(){var e=this.props.globalState.glTFLoaderExtensionDefaults,t=this.props.globalState.glTFLoaderDefaults,r=[{label:"None",value:vr.GLTFLoaderAnimationStartMode.NONE},{label:"First",value:vr.GLTFLoaderAnimationStartMode.FIRST},{label:"ALL",value:vr.GLTFLoaderAnimationStartMode.ALL}],n=[{label:"Auto",value:vr.GLTFLoaderCoordinateSystemMode.AUTO},{label:"Right handed",value:vr.GLTFLoaderCoordinateSystemMode.FORCE_RIGHT_HANDED}];return l.createElement("div",null,l.createElement(se,{globalState:this.props.globalState,title:"GLTF LOADER",closed:!0},l.createElement(Ce,{label:"Animation start mode",options:r,target:t,propertyName:"animationStartMode"}),l.createElement(de,{label:"Capture performance counters",target:t,propertyName:"capturePerformanceCounters"}),l.createElement(de,{label:"Compile materials",target:t,propertyName:"compileMaterials"}),l.createElement(de,{label:"Compile shadow generators",target:t,propertyName:"compileShadowGenerators"}),l.createElement(Ce,{label:"Coordinate system",options:n,target:t,propertyName:"coordinateSystemMode"}),l.createElement(de,{label:"Enable logging",target:t,propertyName:"loggingEnabled"}),l.createElement(de,{label:"Transparency as coverage",target:t,propertyName:"transparencyAsCoverage"}),l.createElement(de,{label:"Use clip plane",target:t,propertyName:"useClipPlane"}),l.createElement(de,{label:"Validate",target:t,propertyName:"validate"}),l.createElement(gr,{text:"You need to reload your file to see these changes"})),l.createElement(se,{globalState:this.props.globalState,title:"GLTF EXTENSIONS",closed:!0},l.createElement(de,{label:"MSFT_lod",isSelected:function(){return e.MSFT_lod.enabled},onSelect:function(t){return e.MSFT_lod.enabled=t}}),l.createElement(Me,{label:"Maximum LODs",target:e.MSFT_lod,propertyName:"maxLODsToLoad",additionalClass:"gltf-extension-property",isInteger:!0}),l.createElement(de,{label:"MSFT_minecraftMesh",isSelected:function(){return e.MSFT_minecraftMesh.enabled},onSelect:function(t){return e.MSFT_minecraftMesh.enabled=t}}),l.createElement(de,{label:"MSFT_sRGBFactors",isSelected:function(){return e.MSFT_sRGBFactors.enabled},onSelect:function(t){return e.MSFT_sRGBFactors.enabled=t}}),l.createElement(de,{label:"MSFT_audio_emitter",isSelected:function(){return e.MSFT_audio_emitter.enabled},onSelect:function(t){return e.MSFT_audio_emitter.enabled=t}}),l.createElement(de,{label:"KHR_draco_mesh_compression",isSelected:function(){return e.KHR_draco_mesh_compression.enabled},onSelect:function(t){return e.KHR_draco_mesh_compression.enabled=t}}),l.createElement(de,{label:"KHR_materials_pbrSpecularGlossiness",isSelected:function(){return e.KHR_materials_pbrSpecularGlossiness.enabled},onSelect:function(t){return e.KHR_materials_pbrSpecularGlossiness.enabled=t}}),l.createElement(de,{label:"KHR_materials_clearcoat",isSelected:function(){return e.KHR_materials_clearcoat.enabled},onSelect:function(t){return e.KHR_materials_clearcoat.enabled=t}}),l.createElement(de,{label:"KHR_materials_sheen",isSelected:function(){return e.KHR_materials_sheen.enabled},onSelect:function(t){return e.KHR_materials_sheen.enabled=t}}),l.createElement(de,{label:"KHR_materials_specular",isSelected:function(){return e.KHR_materials_specular.enabled},onSelect:function(t){return e.KHR_materials_specular.enabled=t}}),l.createElement(de,{label:"KHR_materials_unlit",isSelected:function(){return e.KHR_materials_unlit.enabled},onSelect:function(t){return e.KHR_materials_unlit.enabled=t}}),l.createElement(de,{label:"KHR_lights_punctual",isSelected:function(){return e.KHR_lights_punctual.enabled},onSelect:function(t){return e.KHR_lights_punctual.enabled=t}}),l.createElement(de,{label:"KHR_texture_transform",isSelected:function(){return e.KHR_texture_transform.enabled},onSelect:function(t){return e.KHR_texture_transform.enabled=t}}),l.createElement(de,{label:"EXT_lights_image_based",isSelected:function(){return e.EXT_lights_image_based.enabled},onSelect:function(t){return e.EXT_lights_image_based.enabled=t}}),l.createElement(gr,{text:"You need to reload your file to see these changes"})),t.validate&&this.props.globalState.validationResults&&this.renderValidation())},t}(l.Component),Cr=r(97),Er=function(e){function t(r){var n=e.call(this,r)||this;return n._id=t._IDGenerator++,n.uploadInputRef=l.createRef(),n}return a(t,e),t.prototype.onChange=function(e){var t=e.target.files;t&&t.length&&this.props.onClick(e),e.target.value=""},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"buttonLine"},l.createElement("label",{htmlFor:"file-upload"+this._id,className:"file-upload"},this.props.label),l.createElement("input",{ref:this.uploadInputRef,id:"file-upload"+this._id,type:"file",accept:this.props.accept,onChange:function(t){return e.onChange(t)},multiple:!0}))},t._IDGenerator=0,t}(l.Component),xr=r(270),Or=function(e){function t(t){var r=e.call(this,t)||this;r._screenShotSize={precision:1},r._gifOptions={width:512,frequency:200},r._useWidthHeight=!1,r._isExporting=!1,r._crunchingGIF=!1,r.state={tag:"Record video"};var n=r.props.globalState.sceneImportDefaults;return void 0===n.overwriteAnimations&&(n.overwriteAnimations=!0),void 0===n.animationGroupLoadingMode&&(n.animationGroupLoadingMode=c.SceneLoaderAnimationGroupLoadingMode.Clean),r}return a(t,e),t.prototype.componentDidMount=function(){BABYLON.GLTF2Export||c.Tools.LoadScript("https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js",(function(){}))},t.prototype.componentWillUnmount=function(){if(this._videoRecorder&&(this._videoRecorder.stopRecording(),this._videoRecorder.dispose(),this._videoRecorder=null),this._gifRecorder)return this._gifRecorder.render(),void(this._gifRecorder=null)},t.prototype.captureScreenshot=function(){var e=this.props.scene;e.activeCamera&&c.Tools.CreateScreenshot(e.getEngine(),e.activeCamera,this._screenShotSize)},t.prototype.captureRender=function(){var e=this.props.scene,t={height:this._screenShotSize.height,width:this._screenShotSize.width,precision:this._screenShotSize.precision};this._useWidthHeight||(this._screenShotSize.width=void 0,this._screenShotSize.height=void 0),e.activeCamera&&c.Tools.CreateScreenshotUsingRenderTarget(e.getEngine(),e.activeCamera,this._screenShotSize),this._screenShotSize=t},t.prototype.recordVideo=function(){var e=this;if(this._videoRecorder&&this._videoRecorder.isRecording)this._videoRecorder.stopRecording();else{var t=this.props.scene;this._videoRecorder||(this._videoRecorder=new c.VideoRecorder(t.getEngine())),this._videoRecorder.startRecording().then((function(){e.setState({tag:"Record video"})})),this.setState({tag:"Stop recording"})}},t.prototype.recordGIFInternal=function(){var e=this,t=URL.createObjectURL(this._gifWorkerBlob);this._gifRecorder=new xr({workers:2,quality:10,workerScript:t});var r=this.props.scene.getEngine();this._previousRenderingScale=r.getHardwareScalingLevel(),r.setHardwareScalingLevel(r.getRenderWidth()/this._gifOptions.width|0);var n=setInterval((function(){e._gifRecorder?e._gifRecorder.addFrame(r.getRenderingCanvas(),{delay:e._gifOptions.frequency}):clearInterval(n)}),this._gifOptions.frequency);this._gifRecorder.on("finished",(function(n){e._crunchingGIF=!1,c.Tools.Download(n,"record.gif"),e.forceUpdate(),URL.revokeObjectURL(t),r.setHardwareScalingLevel(e._previousRenderingScale)})),this.forceUpdate()},t.prototype.recordGIF=function(){var e=this;if(this._gifRecorder)return this._crunchingGIF=!0,this.forceUpdate(),this._gifRecorder.render(),void(this._gifRecorder=null);this._gifWorkerBlob?this.recordGIFInternal():c.Tools.LoadFileAsync("https://cdn.jsdelivr.net/gh//terikon/gif.js.optimized@0.1.6/dist/gif.worker.js").then((function(t){e._gifWorkerBlob=new Blob([t],{type:"application/javascript"}),e.recordGIFInternal()}))},t.prototype.importAnimations=function(e){var t=this.props.scene,r=this.props.globalState.sceneImportDefaults.overwriteAnimations,n=this.props.globalState.sceneImportDefaults.animationGroupLoadingMode;new c.FilesInput(t.getEngine(),t,(function(){}),(function(){}),(function(){}),(function(e){}),(function(){}),(function(e){if(e){BABYLON.SceneLoader.ImportAnimationsAsync("file:",e,t,r,n,null,(function(e){e.animationGroups.length>0&&e.animationGroups[0].play(!0)}))}}),(function(){})).loadFiles(e)},t.prototype.shouldExport=function(e){if(e instanceof c.Mesh&&e.material){var t=e.material.reflectionTexture;if(t&&t.coordinatesMode===c.Texture.SKYBOX_MODE)return!1}return!0},t.prototype.exportGLTF=function(){var e=this,t=this.props.scene;this._isExporting=!0,this.forceUpdate(),Cr.GLTF2Export.GLBAsync(t,"scene",{shouldExportNode:function(t){return e.shouldExport(t)}}).then((function(t){t.downloadFiles(),e._isExporting=!1,e.forceUpdate()})).catch((function(t){e._isExporting=!1,e.forceUpdate()}))},t.prototype.exportBabylon=function(){var e=this.props.scene,t=JSON.stringify(c.SceneSerializer.Serialize(e)),r=new Blob([t],{type:"octet/stream"});c.Tools.Download(r,"scene.babylon")},t.prototype.createEnvTexture=function(){var e=this.props.scene;c.EnvironmentTextureTools.CreateEnvTextureAsync(e.environmentTexture).then((function(e){var t=new Blob([e],{type:"octet/stream"});c.Tools.Download(t,"environment.env")})).catch((function(e){console.error(e),alert(e)}))},t.prototype.resetReplay=function(){this.props.globalState.recorder.reset()},t.prototype.exportReplay=function(){this.props.globalState.recorder.export()},t.prototype.render=function(){var e=this,t=this.props.scene;if(!t)return null;var r=this.props.globalState.sceneImportDefaults,n=[{label:"Clean",value:c.SceneLoaderAnimationGroupLoadingMode.Clean},{label:"Stop",value:c.SceneLoaderAnimationGroupLoadingMode.Stop},{label:"Sync",value:c.SceneLoaderAnimationGroupLoadingMode.Sync},{label:"NoSync",value:c.SceneLoaderAnimationGroupLoadingMode.NoSync}];return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"CAPTURE"},l.createElement(Te,{label:"Screenshot",onClick:function(){return e.captureScreenshot()}}),l.createElement(Te,{label:this.state.tag,onClick:function(){return e.recordVideo()}})),l.createElement(se,{globalState:this.props.globalState,title:"CAPTURE WITH RTT"},l.createElement(Te,{label:"Capture",onClick:function(){return e.captureRender()}}),l.createElement("div",{className:"vector3Line"},l.createElement(Me,{label:"Precision",target:this._screenShotSize,propertyName:"precision",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),l.createElement(de,{label:"Use Width/Height",onSelect:function(t){e._useWidthHeight=t,e.forceUpdate()},isSelected:function(){return e._useWidthHeight}}),this._useWidthHeight&&l.createElement("div",{className:"secondLine"},l.createElement(Ee,{label:"Width",precision:0,step:1,value:this._screenShotSize.width?this._screenShotSize.width:512,onChange:function(t){return e._screenShotSize.width=t}}),l.createElement(Ee,{label:"Height",precision:0,step:1,value:this._screenShotSize.height?this._screenShotSize.height:512,onChange:function(t){return e._screenShotSize.height=t}})))),l.createElement(se,{globalState:this.props.globalState,title:"GIF"},this._crunchingGIF&&l.createElement(gr,{text:"Creating the GIF file..."}),!this._crunchingGIF&&l.createElement(Te,{label:this._gifRecorder?"Stop":"Record",onClick:function(){return e.recordGIF()}}),!this._crunchingGIF&&!this._gifRecorder&&l.createElement(l.Fragment,null,l.createElement(Me,{label:"Resolution",isInteger:!0,target:this._gifOptions,propertyName:"width"}),l.createElement(Me,{label:"Frequency (ms)",isInteger:!0,target:this._gifOptions,propertyName:"frequency"}))),l.createElement(se,{globalState:this.props.globalState,title:"REPLAY"},l.createElement(Te,{label:"Generate replay code",onClick:function(){return e.exportReplay()}}),l.createElement(Te,{label:"Reset",onClick:function(){return e.resetReplay()}})),l.createElement(se,{globalState:this.props.globalState,title:"SCENE IMPORT"},l.createElement(Er,{label:"Import animations",accept:"gltf",onClick:function(t){return e.importAnimations(t)}}),l.createElement(de,{label:"Overwrite animations",target:r,propertyName:"overwriteAnimations",onSelect:function(t){r.overwriteAnimations=t,e.forceUpdate()}}),!1===r.overwriteAnimations&&l.createElement(Ce,{label:"Animation merge mode",options:n,target:r,propertyName:"animationGroupLoadingMode"})),l.createElement(se,{globalState:this.props.globalState,title:"SCENE EXPORT"},this._isExporting&&l.createElement(le,{label:"Please wait..exporting",ignoreValue:!0}),!this._isExporting&&l.createElement(l.Fragment,null,l.createElement(Te,{label:"Export to GLB",onClick:function(){return e.exportGLTF()}}),l.createElement(Te,{label:"Export to Babylon",onClick:function(){return e.exportBabylon()}}),!t.getEngine().premultipliedAlpha&&t.environmentTexture&&t.environmentTexture._prefiltered&&t.activeCamera&&l.createElement(Te,{label:"Generate .env texture",onClick:function(){return e.createEnvTexture()}}))),BABYLON.GLTFFileLoader&&l.createElement(yr,{scene:t,globalState:this.props.globalState}))},t}(ie),Sr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.globalState;return l.createElement("div",{className:"pane"},l.createElement(se,{globalState:this.props.globalState,title:"UI"},l.createElement(de,{label:"Only display Euler values",target:e,propertyName:"onlyUseEulers"}),l.createElement(de,{label:"Ignore backfaces when picking",target:e,propertyName:"ignoreBackfacesForPicking"})))},t}(ie);r(271);var Pr=function(e){function t(t){var r=e.call(this,t)||this;r._once=!0;var n=void 0===t.initialTab?c.DebugLayerTab.Properties:t.initialTab;if(r.props.globalState){var a=r.props.globalState.validationResults;a&&(a.issues.numErrors||a.issues.numWarnings)&&(n=c.DebugLayerTab.Tools)}return r.state={selectedEntity:null,selectedIndex:n},r}return a(t,e),t.prototype.componentDidMount=function(){var e=this;this.props.globalState&&(this._onSelectionChangeObserver=this.props.globalState.onSelectionChangedObservable.add((function(t){e.setState({selectedEntity:t,selectedIndex:c.DebugLayerTab.Properties})})),this._onTabChangedObserver=this.props.globalState.onTabChangedObservable.add((function(t){e.setState({selectedIndex:t})})))},t.prototype.componentWillUnmount=function(){this.props.globalState&&(this._onSelectionChangeObserver&&this.props.globalState.onSelectionChangedObservable.remove(this._onSelectionChangeObserver),this._onTabChangedObserver&&this.props.globalState.onTabChangedObservable.remove(this._onTabChangedObserver))},t.prototype.changeSelectedTab=function(e){this.props.globalState&&this.props.globalState.onTabChangedObservable.notifyObservers(e)},t.prototype.renderContent=function(){var e=this;return this.props.globalState&&this.props.scene?l.createElement(d,{selectedIndex:this.state.selectedIndex,onSelectedIndexChange:function(t){return e.changeSelectedTab(t)}},l.createElement(fr,{title:"Properties",icon:I,scene:this.props.scene,selectedEntity:this.state.selectedEntity,globalState:this.props.globalState,onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable}),l.createElement(fe,{title:"Debug",icon:C,scene:this.props.scene,globalState:this.props.globalState}),l.createElement(ue,{title:"Statistics",icon:S,scene:this.props.scene,globalState:this.props.globalState}),l.createElement(Or,{title:"Tools",icon:oe,scene:this.props.scene,globalState:this.props.globalState}),l.createElement(Sr,{title:"Settings",icon:_,scene:this.props.scene,globalState:this.props.globalState})):null},t.prototype.onClose=function(){this.props.onClose&&this.props.onClose()},t.prototype.onPopup=function(){this.props.onPopup&&this.props.onPopup()},t.prototype.render=function(){var e=this;return this.props.popupMode?l.createElement("div",{id:"actionTabs"},!this.props.noHeader&&l.createElement(mr,{title:"INSPECTOR",handleBack:!0,noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:function(){return e.onClose()},onPopup:function(){return e.onPopup()},onSelectionChangedObservable:this.props.globalState?this.props.globalState.onSelectionChangedObservable:void 0}),this.renderContent()):(this._once&&(this._once=!1,setTimeout((function(){var e=document.getElementById("actionTabs");e&&(e.style.width="300px")}),150)),l.createElement(ge.a,{id:"actionTabs",minWidth:300,maxWidth:600,size:{height:"100%"},minHeight:"100%",enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1}},!this.props.noHeader&&l.createElement(mr,{title:"INSPECTOR",handleBack:!0,noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:function(){return e.onClose()},onPopup:function(){return e.onPopup()},onSelectionChangedObservable:this.props.globalState?this.props.globalState.onSelectionChangedObservable:void 0}),this.renderContent()))},t}(l.Component),wr={prefix:"far",iconName:"eye",icon:[576,512,[],"f06e","M569.354 231.631C512.97 135.949 407.81 72 288 72 168.14 72 63.004 135.994 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.031 376.051 168.19 440 288 440c119.86 0 224.996-63.994 281.354-159.631a47.997 47.997 0 0 0 0-48.738zM288 392c-102.556 0-192.091-54.701-240-136 44.157-74.933 123.677-127.27 216.162-135.007C273.958 131.078 280 144.83 280 160c0 30.928-25.072 56-56 56s-56-25.072-56-56l.001-.042C157.794 179.043 152 200.844 152 224c0 75.111 60.889 136 136 136s136-60.889 136-136c0-31.031-10.4-59.629-27.895-82.515C451.704 164.638 498.009 205.106 528 256c-47.908 81.299-137.444 136-240 136z"]},kr={prefix:"far",iconName:"eye-slash",icon:[576,512,[],"f070","M272.702 359.139c-80.483-9.011-136.212-86.886-116.93-167.042l116.93 167.042zM288 392c-102.556 0-192.092-54.701-240-136 21.755-36.917 52.1-68.342 88.344-91.658l-27.541-39.343C67.001 152.234 31.921 188.741 6.646 231.631a47.999 47.999 0 0 0 0 48.739C63.004 376.006 168.14 440 288 440a332.89 332.89 0 0 0 39.648-2.367l-32.021-45.744A284.16 284.16 0 0 1 288 392zm281.354-111.631c-33.232 56.394-83.421 101.742-143.554 129.492l48.116 68.74c3.801 5.429 2.48 12.912-2.949 16.712L450.23 509.83c-5.429 3.801-12.912 2.48-16.712-2.949L102.084 33.399c-3.801-5.429-2.48-12.912 2.949-16.712L125.77 2.17c5.429-3.801 12.912-2.48 16.712 2.949l55.526 79.325C226.612 76.343 256.808 72 288 72c119.86 0 224.996 63.994 281.354 159.631a48.002 48.002 0 0 1 0 48.738zM528 256c-44.157-74.933-123.677-127.27-216.162-135.007C302.042 131.078 296 144.83 296 160c0 30.928 25.072 56 56 56s56-25.072 56-56l-.001-.042c30.632 57.277 16.739 130.26-36.928 171.719l26.695 38.135C452.626 346.551 498.308 306.386 528 256z"]},_r={prefix:"far",iconName:"lightbulb",icon:[352,512,[],"f0eb","M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"]},Nr={prefix:"far",iconName:"square",icon:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"]},Tr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onClick=function(){this.props.onClick&&this.props.onClick()},t.prototype.render=function(){var e=this;return l.createElement("div",{className:"title",onClick:function(){return e.onClick()}},l.createElement("div",{className:"titleIcon"},l.createElement(u.a,{icon:this.props.icon,color:this.props.color})),l.createElement("div",{className:"titleText"},this.props.label||"no name"))},t}(l.Component),Mr=function(e){function t(t){var r=e.call(this,t)||this;return r.state={popupVisible:!1},r.extensionRef=l.createRef(),r}return a(t,e),t.prototype.showPopup=function(){this.setState({popupVisible:!0})},t.prototype.componentDidMount=function(){this._popup&&this._popup.focus()},t.prototype.componentDidUpdate=function(){this._popup&&this._popup.focus()},t.prototype.render=function(){var e=this;if(!this.props.extensibilityGroups)return null;for(var t=[],r=0,n=this.props.extensibilityGroups;r0?l.createElement(Rr,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,mesh:n,onClick:function(){return e.onClick()}}):l.createElement(Dr,{extensibilityGroups:this.props.extensibilityGroups,transformNode:t,onClick:function(){return e.onClick()}})}if(-1!==r.indexOf("SpriteManager"))return l.createElement(Yr,{extensibilityGroups:this.props.extensibilityGroups,spriteManager:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Sprite"))return l.createElement(Xr,{extensibilityGroups:this.props.extensibilityGroups,sprite:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Skeleton"))return l.createElement(Ur,{extensibilityGroups:this.props.extensibilityGroups,skeleton:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Bone"))return l.createElement(Vr,{extensibilityGroups:this.props.extensibilityGroups,bone:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("TransformNode"))return l.createElement(Dr,{extensibilityGroups:this.props.extensibilityGroups,transformNode:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Camera"))return l.createElement(Ar,{extensibilityGroups:this.props.extensibilityGroups,camera:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Light",r.length-5))return l.createElement(Lr,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,light:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Material"))return l.createElement(jr,{extensibilityGroups:this.props.extensibilityGroups,material:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("ParticleSystem"))return l.createElement(Wr,{extensibilityGroups:this.props.extensibilityGroups,system:t,onClick:function(){return e.onClick()}});if("AdvancedDynamicTexture"===r)return l.createElement(Fr,{onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,extensibilityGroups:this.props.extensibilityGroups,texture:t,onClick:function(){return e.onClick()}});if("AnimationGroup"===r)return l.createElement(Gr,{extensibilityGroups:this.props.extensibilityGroups,animationGroup:t,onClick:function(){return e.onClick()}});if("TargetedAnimation"===r)return l.createElement(Kr,{extensibilityGroups:this.props.extensibilityGroups,targetedAnimation:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("Texture"))return l.createElement(Ir,{extensibilityGroups:this.props.extensibilityGroups,texture:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("RenderingPipeline"))return l.createElement(Hr,{extensibilityGroups:this.props.extensibilityGroups,renderPipeline:t,onClick:function(){return e.onClick()}});if(-1!==r.indexOf("PostProcess"))return l.createElement(Br,{extensibilityGroups:this.props.extensibilityGroups,postProcess:t,onClick:function(){return e.onClick()}});if(t._host)return l.createElement(zr,{extensibilityGroups:this.props.extensibilityGroups,control:t,onClick:function(){return e.onClick()}})}return l.createElement("div",{className:"meshTools"},l.createElement(Tr,{label:t.name,onClick:function(){return e.onClick()},icon:X,color:"cornflowerblue"}))},t}(l.Component),Qr=function(){function e(){}return e.LookForItem=function(t,r){if(t===r)return!0;var n=t.getChildren?t.getChildren():t.children;if(n&&"MultiMaterial"!==t.getClassName())for(var a=0,o=n;an?1:-1}))},e}(),$r=function(e){function t(t){var r=e.call(this,t)||this;return r._wasSelected=!1,r.state={isSelected:r.props.entity===r.props.selectedEntity,isExpanded:r.props.mustExpand||Qr.LookForItem(r.props.entity,r.props.selectedEntity)},r}return a(t,e),t.prototype.switchExpandedState=function(){this.setState({isExpanded:!this.state.isExpanded})},t.prototype.shouldComponentUpdate=function(e,t){if(!t.isExpanded&&this.state.isExpanded)return!0;if(e.selectedEntity){if(e.entity===e.selectedEntity)return t.isSelected=!0,!0;if(t.isSelected=!1,Qr.LookForItem(e.entity,e.selectedEntity))return t.isExpanded=!0,!0}return!0},t.prototype.scrollIntoView=function(){var e=p.findDOMNode(this);e&&e.scrollIntoView(!1)},t.prototype.componentDidMount=function(){this.state.isSelected&&this.scrollIntoView()},t.prototype.componentDidUpdate=function(){this.state.isSelected&&!this._wasSelected&&this.scrollIntoView(),this._wasSelected=!1},t.prototype.onSelect=function(){if(this.props.globalState.onSelectionChangedObservable){this._wasSelected=!0;var e=this.props.entity;this.props.globalState.onSelectionChangedObservable.notifyObservers(e)}},t.prototype.renderChildren=function(){var e=this,r=this.props.entity;return(r.getChildren||r.children)&&this.state.isExpanded?Qr.SortAndFilter(r,r.getChildren?r.getChildren():r.children).map((function(r,n){return l.createElement(t,{globalState:e.props.globalState,mustExpand:e.props.mustExpand,extensibilityGroups:e.props.extensibilityGroups,selectedEntity:e.props.selectedEntity,key:n,offset:e.props.offset+2,entity:r,filter:e.props.filter})})):null},t.prototype.render=function(){var e=this,t={paddingLeft:10*(this.props.offset+.5)+"px"},r=this.props.entity,n=this.state.isExpanded?l.createElement(u.a,{icon:V}):l.createElement(u.a,{icon:Y}),a=("MultiMaterial"===r.getClassName()?[]:Qr.SortAndFilter(r,r.getChildren?r.getChildren():r.children)).length>0;if(r.reservedDataStore||(r.reservedDataStore={}),r.reservedDataStore.setExpandedState=function(t){e.setState({isExpanded:t})},r.reservedDataStore.isExpanded=this.state.isExpanded,this.props.filter){var o=this.props.filter.toLowerCase();if(!r.name||-1===r.name.toLowerCase().indexOf(o)){if(!a)return null;if(r.getDescendants&&0===r.getDescendants(!1,(function(e){return e.name&&-1!==e.name.toLowerCase().indexOf(o)})).length)return null}}return l.createElement("div",null,l.createElement("div",{className:this.state.isSelected?"itemContainer selected":"itemContainer",style:t},a&&l.createElement("div",{className:"arrow icon",onClick:function(){return e.switchExpandedState()}},n),l.createElement(qr,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,label:r.name,entity:r,onClick:function(){return e.onSelect()}})),this.renderChildren())},t}(l.Component),Zr=r(2),Jr=r.n(Zr),en=r(9),tn=r.n(en),rn=r(7),nn=r.n(rn); /*! * Font Awesome Free 5.4.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */function an(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n2&&void 0!==arguments[2]?arguments[2]:window,n=void 0;"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{detail:t}):(n=document.createEvent("CustomEvent")).initCustomEvent(e,!1,!0,t),r&&(r.dispatchEvent(n),nn()(mn,t))}function En(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];Cn(vn,nn()({},e,{type:vn}),t)}function xn(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];Cn(yn,nn()({},e,{type:yn}),t)}var On=new function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.handleShowEvent=function(e){for(var r in t.callbacks)on(t.callbacks,r)&&t.callbacks[r].show(e)},this.handleHideEvent=function(e){for(var r in t.callbacks)on(t.callbacks,r)&&t.callbacks[r].hide(e)},this.register=function(e,r){var n=Math.random().toString(36).substring(7);return t.callbacks[n]={show:e,hide:r},n},this.unregister=function(e){e&&t.callbacks[e]&&delete t.callbacks[e]},this.callbacks={},gn&&(window.addEventListener(vn,this.handleShowEvent),window.addEventListener(yn,this.handleHideEvent))},Sn=Object.assign||function(e){for(var t=1;tn?o.bottom=0:o.top=0,a.righte?n.bottom=0:n.top=0,t.left<0?n.left="100%":n.right="100%",n},r.hideMenu=function(e){e.detail&&e.detail.id&&r.menu&&e.detail.id!==r.menu.id||(r.props.forceOpen&&r.props.forceClose(),r.setState({visible:!1,selectedItem:null}),r.unregisterHandlers())},r.handleClick=function(e){e.preventDefault(),r.props.disabled||an(r.props.onClick,e,nn()({},r.props.data,mn.data),mn.target)},r.handleMouseEnter=function(){r.closetimer&&clearTimeout(r.closetimer),r.props.disabled||r.state.visible||(r.opentimer=setTimeout((function(){return r.setState({visible:!0,selectedItem:null})}),r.props.hoverDelay))},r.handleMouseLeave=function(){r.opentimer&&clearTimeout(r.opentimer),r.state.visible&&(r.closetimer=setTimeout((function(){return r.setState({visible:!1,selectedItem:null})}),r.props.hoverDelay))},r.menuRef=function(e){r.menu=e},r.subMenuRef=function(e){r.subMenu=e},r.registerHandlers=function(){document.removeEventListener("keydown",r.props.parentKeyNavigationHandler),document.addEventListener("keydown",r.handleKeyNavigation)},r.unregisterHandlers=function(e){document.removeEventListener("keydown",r.handleKeyNavigation),e||document.addEventListener("keydown",r.props.parentKeyNavigationHandler)},r.state=nn()({},r.state,{visible:!1}),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),jn(t,[{key:"componentDidMount",value:function(){this.listenId=On.register((function(){}),this.hideMenu)}},{key:"getSubMenuType",value:function(){return t}},{key:"shouldComponentUpdate",value:function(e,t){return this.isVisibilityChange=!(this.state.visible===t.visible&&this.props.forceOpen===e.forceOpen||this.state.visible&&e.forceOpen||this.props.forceOpen&&t.visible),!0}},{key:"componentDidUpdate",value:function(){var e=this;if(this.isVisibilityChange)if(this.props.forceOpen||this.state.visible){(window.requestAnimationFrame||setTimeout)((function(){var t=e.props.rtl?e.getRTLMenuPosition():e.getMenuPosition();e.subMenu.style.removeProperty("top"),e.subMenu.style.removeProperty("bottom"),e.subMenu.style.removeProperty("left"),e.subMenu.style.removeProperty("right"),on(t,"top")&&(e.subMenu.style.top=t.top),on(t,"left")&&(e.subMenu.style.left=t.left),on(t,"bottom")&&(e.subMenu.style.bottom=t.bottom),on(t,"right")&&(e.subMenu.style.right=t.right),e.subMenu.classList.add(sn),e.registerHandlers(),e.setState({selectedItem:null})}))}else{this.subMenu.addEventListener("transitionend",(function t(){e.subMenu.removeEventListener("transitionend",t),e.subMenu.style.removeProperty("bottom"),e.subMenu.style.removeProperty("right"),e.subMenu.style.top=0,e.subMenu.style.left="100%",e.unregisterHandlers()})),this.subMenu.classList.remove(sn)}}},{key:"componentWillUnmount",value:function(){this.listenId&&On.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}},{key:"render",value:function(){var e,t=this.props,r=t.children,n=t.attributes,a=t.disabled,o=t.title,i=t.selected,l=this.state.visible,p={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:tn()(cn,fn,n.listClassName),style:{position:"relative"}},c={className:tn()(cn,n.className,(e={},In(e,tn()(dn,n.disabledClassName),a),In(e,tn()(un,n.visibleClassName),l),In(e,tn()(bn,n.selectedClassName),i),e)),onMouseMove:this.props.onMouseMove,onMouseOut:this.props.onMouseOut,onClick:this.handleClick},u={ref:this.subMenuRef,style:{position:"absolute",transition:"opacity 1ms",top:0,left:"100%"},className:tn()(ln,this.props.className)};return s.a.createElement("nav",Ln({},p,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),s.a.createElement("div",Ln({},n,c),o),s.a.createElement("nav",Ln({},u,{role:"menu",tabIndex:"-1"}),this.renderChildren(r)))}}]),t}(An);Dn.propTypes={children:Jr.a.node.isRequired,attributes:Jr.a.object,title:Jr.a.node.isRequired,className:Jr.a.string,disabled:Jr.a.bool,hoverDelay:Jr.a.number,rtl:Jr.a.bool,selected:Jr.a.bool,onMouseMove:Jr.a.func,onMouseOut:Jr.a.func,forceOpen:Jr.a.bool,forceClose:Jr.a.func,parentKeyNavigationHandler:Jr.a.func},Dn.defaultProps={disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:function(){return null},onMouseOut:function(){return null},forceOpen:!1,forceClose:function(){return null},parentKeyNavigationHandler:function(){return null}};var zn=Dn,Fn=function(){function e(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n={top:t,left:e};if(!r.menu)return n;var a=window,o=a.innerWidth,i=a.innerHeight,l=r.menu.getBoundingClientRect();return t+l.height>i&&(n.top-=l.height),e+l.width>o&&(n.left-=l.width),n.top<0&&(n.top=l.height0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n={top:t,left:e};if(!r.menu)return n;var a=window,o=a.innerWidth,i=a.innerHeight,l=r.menu.getBoundingClientRect();return n.left=e-l.width,t+l.height>i&&(n.top-=l.height),n.left<0&&(n.left+=l.width),n.top<0&&(n.top=l.heighto&&(n.left=l.width=0&&0===e.button&&(e.persist(),e.stopPropagation(),n.mouseDownTimeoutId=setTimeout((function(){return n.handleContextClick(e)}),n.props.holdToDisplay)),an(n.props.attributes.onMouseDown,e)},n.handleMouseUp=function(e){0===e.button&&clearTimeout(n.mouseDownTimeoutId),an(n.props.attributes.onMouseUp,e)},n.handleMouseOut=function(e){0===e.button&&clearTimeout(n.mouseDownTimeoutId),an(n.props.attributes.onMouseOut,e)},n.handleTouchstart=function(e){n.touchHandled=!1,n.props.holdToDisplay>=0&&(e.persist(),e.stopPropagation(),n.touchstartTimeoutId=setTimeout((function(){n.handleContextClick(e),n.touchHandled=!0}),n.props.holdToDisplay)),an(n.props.attributes.onTouchStart,e)},n.handleTouchEnd=function(e){n.touchHandled&&e.preventDefault(),clearTimeout(n.touchstartTimeoutId),an(n.props.attributes.onTouchEnd,e)},n.handleContextMenu=function(e){n.handleContextClick(e),an(n.props.attributes.onContextMenu,e)},n.handleContextClick=function(e){if(!n.props.disable){e.preventDefault(),e.stopPropagation();var t=e.clientX||e.touches&&e.touches[0].pageX,r=e.clientY||e.touches&&e.touches[0].pageY;n.props.posX&&(t-=n.props.posX),n.props.posY&&(r-=n.props.posY),xn();var a=an(n.props.collect,n.props),o={position:{x:t,y:r},target:n.elem,id:n.props.id,data:a};a&&"function"==typeof a.then?a.then((function(e){o.data=e,En(o)})):En(o)}},n.elemRef=function(e){n.elem=e},Vn(n,r)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),Hn(t,[{key:"render",value:function(){var e=this.props,t=e.renderTag,r=e.attributes,n=e.children,a=nn()({},r,{className:tn()(pn,r.className),onContextMenu:this.handleContextMenu,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef});return s.a.createElement(t,a,n)}}]),t}(l.Component);Wn.propTypes={id:Jr.a.string.isRequired,children:Jr.a.node.isRequired,attributes:Jr.a.object,collect:Jr.a.func,disable:Jr.a.bool,holdToDisplay:Jr.a.number,posX:Jr.a.number,posY:Jr.a.number,renderTag:Jr.a.oneOfType([Jr.a.node,Jr.a.func])},Wn.defaultProps={attributes:{},collect:function(){return null},disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0};var Yn=Wn;Object.assign,function(){function e(e,t){for(var r=0;r0}),!1,void 0,(function(t,r,n,a){if(!e.props.globalState.ignoreBackfacesForPicking)return!0;var o=c.TmpVectors.Vector3[0],i=c.TmpVectors.Vector3[1],l=c.TmpVectors.Vector3[2];return r.subtractToRef(t,o),n.subtractToRef(r,i),l=c.Vector3.Cross(o,i),c.Vector3.Dot(l,a.direction)<0}));if(e.props.globalState.lightGizmos.length>0){var a=e.props.globalState.lightGizmos[0].gizmoLayer.utilityLayerScene.pick(r.x,r.y,(function(t){for(var r=0,n=e.props.globalState.lightGizmos;r1&&!o.some((function(e){return"SSAORenderingPipeline"===e.getClassName()}))&&i.push({label:"Add new SSAO2 Rendering Pipeline",action:function(){var r=new c.SSAO2RenderingPipeline("SSAO2 rendering pipeline",t,1,[t.activeCamera]);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}));var s=[];s.push({label:"Add new point light",action:function(){var r=new c.PointLight("point light",c.Vector3.Zero(),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),s.push({label:"Add new directional light",action:function(){var r=new c.DirectionalLight("directional light",new c.Vector3(-1,-1,-.5),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),s.push({label:"Add new free camera",action:function(){var r=new c.FreeCamera("free camera",t.activeCamera?t.activeCamera.globalPosition:new c.Vector3(0,0,-5),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}});var p=[];p.push({label:"Add new standard material",action:function(){var r=new c.StandardMaterial("Standard material",t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),p.push({label:"Add new PBR material",action:function(){var r=new c.PBRMaterial("PBR material",t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),p.push({label:"Add new node material",action:function(){var r=new c.NodeMaterial("node material",t);r.setToDefault(),r.build(),e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}});var u=[];u.push.apply(u,t.materials),t.multiMaterials&&t.multiMaterials.length&&u.push.apply(u,t.multiMaterials);var d=[];d.push({label:"Add new sprite manager",action:function(){var r=new c.SpriteManager("Default sprite manager","//playground.babylonjs.com/textures/player.png",500,64,t);e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}});var h=[];return h.push({label:"Add new CPU particle system",action:function(){var r=c.ParticleHelper.CreateDefault(c.Vector3.Zero(),1e4,t);r.name="CPU particle system",r.start(),e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),c.GPUParticleSystem.IsSupported&&h.push({label:"Add new GPU particle system",action:function(){var r=c.ParticleHelper.CreateDefault(c.Vector3.Zero(),1e4,t,!0);r.name="GPU particle system",r.start(),e.props.globalState.onSelectionChangedObservable.notifyObservers(r)}}),l.createElement("div",{id:"tree",onContextMenu:function(e){return e.preventDefault()}},l.createElement(Zn,{onFilter:function(t){return e.filterContent(t)}}),l.createElement($n,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,scene:t,onRefresh:function(){return e.forceUpdate()},onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),l.createElement(qn,{globalState:this.props.globalState,contextMenuItems:s,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.rootNodes,label:"Nodes",offset:1,filter:this.state.filter}),t.skeletons.length>0&&l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.skeletons,label:"Skeletons",offset:1,filter:this.state.filter}),l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:u,contextMenuItems:p,label:"Materials",offset:1,filter:this.state.filter}),l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:n,label:"Textures",offset:1,filter:this.state.filter}),a.length>0&&l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:a,label:"Post-processes",offset:1,filter:this.state.filter}),l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,contextMenuItems:i,selectedEntity:this.state.selectedEntity,items:o,label:"Rendering pipelines",offset:1,filter:this.state.filter}),l.createElement(qn,{globalState:this.props.globalState,contextMenuItems:h,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.particleSystems,label:"Particle systems",offset:1,filter:this.state.filter}),l.createElement(qn,{globalState:this.props.globalState,contextMenuItems:d,forceSubitems:!0,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.spriteManagers,label:"Sprite managers",offset:1,filter:this.state.filter}),r&&r.length>0&&l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:r,label:"GUI",offset:1,filter:this.state.filter}),t.animationGroups.length>0&&l.createElement(qn,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.animationGroups,label:"Animation groups",offset:1,filter:this.state.filter}))},t.prototype.onClose=function(){this.props.onClose&&this.props.onClose()},t.prototype.onPopup=function(){this.props.onPopup&&this.props.onPopup()},t.prototype.render=function(){var e=this;return this.props.popupMode?l.createElement("div",{id:"sceneExplorer"},!this.props.noHeader&&l.createElement(mr,{title:"SCENE EXPLORER",noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:function(){return e.onClose()},onPopup:function(){return e.onPopup()}}),this.renderContent()):(this._once&&(this._once=!1,setTimeout((function(){var e=document.getElementById("sceneExplorer");e&&(e.style.width="300px")}),150)),l.createElement(ge.a,{tabIndex:-1,id:"sceneExplorer",ref:this.sceneExplorerRef,size:{height:"100%"},minWidth:300,maxWidth:600,minHeight:"100%",enable:{top:!1,right:!0,bottom:!1,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},onKeyDown:function(t){return e.processKeys(t)}},!this.props.noHeader&&l.createElement(mr,{title:"SCENE EXPLORER",noClose:this.props.noClose,noExpand:this.props.noExpand,noCommands:this.props.noCommands,onClose:function(){return e.onClose()},onPopup:function(){return e.onPopup()}}),this.renderContent()))},t}(l.Component),ea=r(275).default;r(276);var ta=function(e){function t(t){var r=e.call(this,t)||this;return r._once=!0,r.splitRef=l.createRef(),r.topPartRef=l.createRef(),r.bottomPartRef=l.createRef(),r}return a(t,e),t.prototype.componentDidMount=function(){this.splitRef.current&&ea([this.topPartRef.current,this.bottomPartRef.current],{direction:"vertical",minSize:[200,200],gutterSize:4})},t.prototype.renderContent=function(){return this.props.popupMode?l.createElement("div",{id:"split",className:"splitPopup"},l.createElement("div",{id:"topPart"},l.createElement(Jn,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,popupMode:!0,globalState:this.props.globalState,noHeader:!0})),l.createElement("div",{id:"separator"}),l.createElement("div",{id:"bottomPart",style:{marginTop:"4px",overflow:"hidden"}},l.createElement(Pr,{scene:this.props.scene,popupMode:!0,globalState:this.props.globalState,noHeader:!0,initialTab:this.props.initialTab}))):l.createElement("div",{ref:this.splitRef,id:"split",className:"noPopup"},l.createElement("div",{id:"topPart",ref:this.topPartRef},l.createElement(Jn,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,globalState:this.props.globalState,popupMode:!0,noHeader:!0})),l.createElement("div",{id:"bottomPart",ref:this.bottomPartRef,style:{marginTop:"4px",overflow:"hidden"}},l.createElement(Pr,{scene:this.props.scene,globalState:this.props.globalState,popupMode:!0,noHeader:!0,initialTab:this.props.initialTab})))},t.prototype.render=function(){var e=this;return this.props.popupMode?l.createElement("div",{id:"embed"},l.createElement(mr,{title:"INSPECTOR",noClose:this.props.noClose,noExpand:this.props.noExpand,handleBack:!0,onClose:function(){return e.props.onClose()},onPopup:function(){return e.props.onPopup()},onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),this.renderContent()):(this._once&&(this._once=!1,setTimeout((function(){var e=document.getElementById("embed");e&&(e.style.width="300px")}),150)),l.createElement(ge.a,{id:"embed",minWidth:300,maxWidth:600,size:{height:"100%"},minHeight:"100%",enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1}},l.createElement(mr,{title:"INSPECTOR",noClose:this.props.noClose,noExpand:this.props.noExpand,handleBack:!0,onClose:function(){return e.props.onClose()},onPopup:function(){return e.props.onPopup()},onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),this.renderContent()))},t}(l.Component),ra=function(){function e(){}return e.prototype.reset=function(){this._recordedCodeLines=[],this._previousObject=null,this._previousProperty=""},e.prototype._getIndirectData=function(e){if(!e.getClassName)return e;var t=e.getClassName().toLowerCase();return e.id?"Scene"===t?t="scene":t.indexOf("camera")>-1?t='scene.getCameraByID("'+e.id+'")':t.indexOf("mesh")>-1?t='scene.getMeshByID("'+e.id+'")':t.indexOf("light")>-1?t='scene.getLightByID("'+e.id+'")':"transformnode"===t?t='scene.getTransformNodeByID("'+e.id+'")':"skeleton"===t?t='scene.getSkeletonById("'+e.id+'")':t.indexOf("material")>-1?t='scene.getMaterialByID("'+e.id+'")':t.indexOf("particle")>-1&&(t='scene.getParticleSystemById("'+e.id+'")'):t="new BABYLON."+e.getClassName()+"()",t},e.prototype.recordCode=function(e){this._recordedCodeLines||(this._recordedCodeLines=[]);var t=this._getIndirectData(e.object);this._recordedCodeLines.push(e.code.replace(/TARGET/g,t))},e.prototype.record=function(e){this._recordedCodeLines||(this._recordedCodeLines=[]),this._previousObject===e.object&&this._previousProperty===e.property&&this._recordedCodeLines.pop();var t=e.value;(!e.allowNullValue||e.allowNullValue&&null!==t)&&(void 0!==t.w?t="new BABYLON.Quaternion("+t.x+", "+t.y+", "+t.z+", "+t.w+")":void 0!==t.z?t="new BABYLON.Vector3("+t.x+", "+t.y+", "+t.z+")":void 0!==t.y?t="new BABYLON.Vector2("+t.x+", "+t.y+")":void 0!==t.a?(t="new BABYLON.Color4("+t.r+", "+t.g+", "+t.b+", "+t.a+")",e.object._isLinearColor&&(t+=".toLinearSpace()")):void 0!==t.b?(t="new BABYLON.Color3("+t.r+", "+t.g+", "+t.b+")",e.object._isLinearColor&&(t+=".toLinearSpace()")):t.getClassName&&(t=this._getIndirectData(t)));var r=this._getIndirectData(e.object);this._recordedCodeLines.push(r+"."+e.property+" = "+t+";"),this._previousObject=e.object,this._previousProperty=e.property},e.prototype.export=function(){var e="// Code generated by babylon.js Inspector\r\n// Please keep in mind to define the 'scene' variable before using that code\r\n\r\n";this._recordedCodeLines&&(e+=this._recordedCodeLines.join("\r\n")),c.Tools.Download(new Blob([e]),"pseudo-code.txt")},e}(),na=function(){function e(){this.onCodeChangedObservable=new c.Observable,this.onInspectorClosedObservable=new c.Observable,this.onTabChangedObservable=new c.Observable,this.onSelectionRenamedObservable=new c.Observable,this.onNewSceneObservable=new c.Observable,this.sceneImportDefaults={},this.validationResults=null,this.onValidationResultsUpdatedObservable=new c.Observable,this.glTFLoaderExtensionDefaults={},this.glTFLoaderDefaults={validate:!0},this.blockMutationUpdates=!1,this.selectedLineContainerTitles=[],this.recorder=new ra,this._onlyUseEulers=null,this._ignoreBackfacesForPicking=null,this.lightGizmos=[]}return Object.defineProperty(e.prototype,"onlyUseEulers",{get:function(){return null===this._onlyUseEulers&&(this._onlyUseEulers=c.DataStorage.ReadBoolean("settings_onlyUseEulers",!0)),this._onlyUseEulers},set:function(e){this._onlyUseEulers=e,c.DataStorage.WriteBoolean("settings_onlyUseEulers",e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ignoreBackfacesForPicking",{get:function(){return null===this._ignoreBackfacesForPicking&&(this._ignoreBackfacesForPicking=c.DataStorage.ReadBoolean("settings_ignoreBackfacesForPicking",!1)),this._ignoreBackfacesForPicking},set:function(e){this._ignoreBackfacesForPicking=e,c.DataStorage.WriteBoolean("settings_ignoreBackfacesForPicking",e)},enumerable:!0,configurable:!0}),e.prototype.init=function(e){var t=this;this.onPropertyChangedObservable=e,e.add((function(e){t.recorder.record(e),"name"===e.property&&t.onSelectionRenamedObservable.notifyObservers()})),this.onCodeChangedObservable.add((function(e){t.recorder.recordCode(e)}))},e.prototype.prepareGLTFPlugin=function(e){var t=this,r=this.glTFLoaderDefaults;if(void 0!==r)for(var n in r)e[n]=r[n];e.onExtensionLoadedObservable.add((function(e){var r=t.glTFLoaderExtensionDefaults[e.name];if(void 0!==r)for(var n in r)e[n]=r[n]})),this.validationResults&&(this.validationResults=null,this.onValidationResultsUpdatedObservable.notifyObservers(null)),e.onValidatedObservable.add((function(e){t.validationResults=e,t.onValidationResultsUpdatedObservable.notifyObservers(e),(e.issues.numErrors||e.issues.numWarnings)&&t.onTabChangedObservable.notifyObservers(3)}))},e.prototype.enableLightGizmo=function(e,t){void 0===t&&(t=!0),t?(e.reservedDataStore||(e.reservedDataStore={}),e.reservedDataStore.lightGizmo||(e.reservedDataStore.lightGizmo=new c.LightGizmo,this.lightGizmos.push(e.reservedDataStore.lightGizmo),e.reservedDataStore.lightGizmo.light=e,e.reservedDataStore.lightGizmo.material.reservedDataStore={hidden:!0})):e.reservedDataStore&&e.reservedDataStore.lightGizmo&&(this.lightGizmos.splice(this.lightGizmos.indexOf(e.reservedDataStore.lightGizmo),1),e.reservedDataStore.lightGizmo.dispose(),e.reservedDataStore.lightGizmo=null)},e}(),aa=function(){function e(){}return e.MarkLineContainerTitleForHighlighting=function(e){this._GlobalState.selectedLineContainerTitles=[],this._GlobalState.selectedLineContainerTitles.push(e)},e.MarkMultipleLineContainerTitlesForHighlighting=function(e){var t;this._GlobalState.selectedLineContainerTitles=[],(t=this._GlobalState.selectedLineContainerTitles).push.apply(t,e)},e._CopyStyles=function(e,t){for(var r=0;r0},enumerable:!0,configurable:!0}),e.EarlyAttachToLoader=function(){var e=this;this._GlobalState.onPluginActivatedObserver||(this._GlobalState.onPluginActivatedObserver=c.SceneLoader.OnPluginActivatedObservable.add((function(t){var r=t;"gltf"===r.name&&e._GlobalState.prepareGLTFPlugin(r)})))},e.Show=function(t,r){var n=o({original:!0,popup:!1,overlay:!1,showExplorer:!0,showInspector:!0,embedMode:!1,enableClose:!0,handleResize:!0,enablePopup:!0},r);this._GlobalState.onPropertyChangedObservable||this._GlobalState.init(this.OnPropertyChangedObservable),this._GlobalState.onSelectionChangedObservable||(this._GlobalState.onSelectionChangedObservable=this.OnSelectionChangeObservable),this.IsVisible&&n.original&&this.Hide(),t||(t=c.EngineStore.LastCreatedScene),this._Scene=t;var a=t?t.getEngine().getInputElement():c.EngineStore.LastCreatedEngine.getInputElement();if(n.embedMode&&n.showExplorer&&n.showInspector)if(n.popup)this._CreateEmbedHost(t,n,this._CreatePopup("INSPECTOR","_EmbedHostWindow"),e.OnSelectionChangeObservable);else{var i=n.globalRoot?n.globalRoot:a.parentElement;n.overlay||this._NewCanvasContainer?!n.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(i=this._NewCanvasContainer.parentElement):this._CreateCanvasContainer(i),this._NewCanvasContainer&&n.handleResize&&t&&(this._OnBeforeRenderObserver=t.onBeforeRenderObservable.add((function(){t.getEngine().resize()}))),this._CreateEmbedHost(t,n,i,e.OnSelectionChangeObservable)}else if(n.popup)n.showExplorer&&(this._SceneExplorerHost&&(this._SceneExplorerHost.style.width="0"),this._CreateSceneExplorer(t,n,this._CreatePopup("SCENE EXPLORER","_SceneExplorerWindow"))),n.showInspector&&(this._ActionTabsHost&&(this._ActionTabsHost.style.width="0"),this._CreateActionTabs(t,n,this._CreatePopup("INSPECTOR","_ActionTabsWindow")));else{i=n.globalRoot?n.globalRoot:a.parentElement;n.overlay||this._NewCanvasContainer?!n.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(i=this._NewCanvasContainer.parentElement):this._CreateCanvasContainer(i),this._NewCanvasContainer&&n.handleResize&&t&&(this._OnBeforeRenderObserver=t.onBeforeRenderObservable.add((function(){t.getEngine().resize()}))),n.showExplorer&&this._CreateSceneExplorer(t,n,i),n.showInspector&&this._CreateActionTabs(t,n,i)}},e._SetNewScene=function(e){this._Scene=e,this._GlobalState.onNewSceneObservable.notifyObservers(e)},e._CreateCanvasContainer=function(e){for(this._NewCanvasContainer=e.ownerDocument.createElement("div"),this._NewCanvasContainer.style.display=e.style.display,e.style.display="flex";e.childElementCount>0;){var t=e.childNodes[0];e.removeChild(t),this._NewCanvasContainer.appendChild(t)}e.appendChild(this._NewCanvasContainer),this._NewCanvasContainer.style.width="100%",this._NewCanvasContainer.style.height="100%"},e._DestroyCanvasContainer=function(){for(var e=this._NewCanvasContainer.parentElement;this._NewCanvasContainer.childElementCount>0;){var t=this._NewCanvasContainer.childNodes[0];this._NewCanvasContainer.removeChild(t),e.appendChild(t)}e.removeChild(this._NewCanvasContainer),e.style.display=this._NewCanvasContainer.style.display,delete this._NewCanvasContainer},e._Cleanup=function(){var t=this;0===e._OpenedPane&&(this._GlobalState.lightGizmos.forEach((function(e){e.light&&t._GlobalState.enableLightGizmo(e.light,!1)})),this._Scene&&this._Scene.reservedDataStore&&this._Scene.reservedDataStore.gizmoManager&&(this._Scene.reservedDataStore.gizmoManager.dispose(),this._Scene.reservedDataStore.gizmoManager=null),this._NewCanvasContainer&&this._DestroyCanvasContainer(),this._OnBeforeRenderObserver&&this._Scene&&(this._Scene.onBeforeRenderObservable.remove(this._OnBeforeRenderObserver),this._OnBeforeRenderObserver=null,this._Scene.getEngine().resize()),this._GlobalState.onInspectorClosedObservable.notifyObservers(this._Scene))},e._RemoveElementFromDOM=function(e){e&&e.parentElement&&e.parentElement.removeChild(e)},e.Hide=function(){this._ActionTabsHost&&(p.unmountComponentAtNode(this._ActionTabsHost),this._RemoveElementFromDOM(this._ActionTabsHost),this._ActionTabsHost=null),this._SceneExplorerHost&&(p.unmountComponentAtNode(this._SceneExplorerHost),this._SceneExplorerHost.parentElement&&this._SceneExplorerHost.parentElement.removeChild(this._SceneExplorerHost),this._SceneExplorerHost=null),this._EmbedHost&&(p.unmountComponentAtNode(this._EmbedHost),this._EmbedHost.parentElement&&this._EmbedHost.parentElement.removeChild(this._EmbedHost),this._EmbedHost=null),e._OpenedPane=0,this._Cleanup(),this._GlobalState.onPluginActivatedObserver||(c.SceneLoader.OnPluginActivatedObservable.remove(this._GlobalState.onPluginActivatedObserver),this._GlobalState.onPluginActivatedObserver=null)},e._OpenedPane=0,e.OnSelectionChangeObservable=new c.Observable,e.OnPropertyChangedObservable=new c.Observable,e._GlobalState=new na,e}();aa.EarlyAttachToLoader()},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){var n=r(61),a=r(65);e.exports=function(e,t){return e&&n(e,a(t))}},function(e,t,r){var n=r(112),a=r(15),o=Object.prototype,i=o.hasOwnProperty,l=o.propertyIsEnumerable,s=n(function(){return arguments}())?n:function(e){return a(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=s},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,r){(function(e){var n=r(60),a=t&&!t.nodeType&&t,o=a&&"object"==typeof e&&e&&!e.nodeType&&e,i=o&&o.exports===a&&n.process,l=function(){try{var e=o&&o.require&&o.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=l}).call(this,r(43)(e))},function(e,t){var r=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}},function(e,t,r){var n=r(18),a=r(12);e.exports=function(e){if(!a(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,r){var n=r(64)(Object.getPrototypeOf,Object);e.exports=n},function(e,t,r){var n=r(19)(r(13),"Map");e.exports=n},function(e,t,r){var n=r(134),a=r(141),o=r(143),i=r(144),l=r(145);function s(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1;a--){var o=r[a],i=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(n=o)}return b.head.insertBefore(t,n),e}}function k(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function _(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function N(e){return Object.keys(e||{}).reduce((function(t,r){return t+"".concat(r,": ").concat(e[r],";")}),"")}function T(e){return e.size!==P.size||e.x!==P.x||e.y!==P.y||e.rotate!==P.rotate||e.flipX||e.flipY}function M(e){var t=e.transform,r=e.containerWidth,n=e.iconWidth,a={transform:"translate(".concat(r/2," 256)")},o="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),l="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(o," ").concat(i," ").concat(l)},path:{transform:"translate(".concat(n/2*-1," -256)")}}}var R={x:0,y:0,width:"100%",height:"100%"};function A(e){var t=e.icons,r=t.main,n=t.mask,a=e.prefix,i=e.iconName,l=e.transform,s=e.symbol,p=e.title,c=e.extra,u=e.watchable,d=void 0!==u&&u,h=n.found?n:r,b=h.width,f=h.height,m="fa-w-".concat(Math.ceil(b/f*16)),g=[E.replacementClass,i?"".concat(E.familyPrefix,"-").concat(i):"",m].filter((function(e){return-1===c.classes.indexOf(e)})).concat(c.classes).join(" "),v={children:[],attributes:o({},c.attributes,{"data-prefix":a,"data-icon":i,class:g,role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(b," ").concat(f)})};d&&(v.attributes["data-fa-i2svg"]=""),p&&v.children.push({tag:"title",attributes:{id:v.attributes["aria-labelledby"]||"title-".concat(k())},children:[p]});var y=o({},v,{prefix:a,iconName:i,main:r,mask:n,transform:l,symbol:s,styles:c.styles}),C=n.found&&r.found?function(e){var t=e.children,r=e.attributes,n=e.main,a=e.mask,i=e.transform,l=n.width,s=n.icon,p=a.width,c=a.icon,u=M({transform:i,containerWidth:p,iconWidth:l}),d={tag:"rect",attributes:o({},R,{fill:"white"})},h={tag:"g",attributes:o({},u.inner),children:[{tag:"path",attributes:o({},s.attributes,u.path,{fill:"black"})}]},b={tag:"g",attributes:o({},u.outer),children:[h]},f="mask-".concat(k()),m="clip-".concat(k()),g={tag:"defs",children:[{tag:"clipPath",attributes:{id:m},children:[c]},{tag:"mask",attributes:o({},R,{id:f,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[d,b]}]};return t.push(g,{tag:"rect",attributes:o({fill:"currentColor","clip-path":"url(#".concat(m,")"),mask:"url(#".concat(f,")")},R)}),{children:t,attributes:r}}(y):function(e){var t=e.children,r=e.attributes,n=e.main,a=e.transform,i=N(e.styles);if(i.length>0&&(r.style=i),T(a)){var l=M({transform:a,containerWidth:n.width,iconWidth:n.width});t.push({tag:"g",attributes:o({},l.outer),children:[{tag:"g",attributes:o({},l.inner),children:[{tag:n.icon.tag,children:n.icon.children,attributes:o({},n.icon.attributes,l.path)}]}]})}else t.push(n.icon);return{children:t,attributes:r}}(y),x=C.children,O=C.attributes;return y.children=x,y.attributes=O,s?function(e){var t=e.prefix,r=e.iconName,n=e.children,a=e.attributes,i=e.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:o({},a,{id:!0===i?"".concat(t,"-").concat(E.familyPrefix,"-").concat(r):i}),children:n}]}]}(y):function(e){var t=e.children,r=e.main,n=e.mask,a=e.attributes,i=e.styles,l=e.transform;if(T(l)&&r.found&&!n.found){var s={x:r.width/r.height/2,y:.5};a.style=N(o({},i,{"transform-origin":"".concat(s.x+l.x/16,"em ").concat(s.y+l.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(y)}var L=function(){},j=(E.measurePerformance&&f&&f.mark&&f.measure,function(e,t,r,n){var a,o,i,l=Object.keys(e),s=l.length,p=void 0!==n?function(e,t){return function(r,n,a,o){return e.call(t,r,n,a,o)}}(t,n):t;for(void 0===r?(a=1,i=e[l[0]]):(a=0,i=r);a").concat(o.map(G).join(""),"")}var B=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(" ").reduce((function(e,t){var r=t.toLowerCase().split("-"),n=r[0],a=r.slice(1).join("-");if(n&&"h"===a)return e.flipX=!0,e;if(n&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(n){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),t):t};function H(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}H.prototype=Object.create(Error.prototype),H.prototype.constructor=H;var U={fill:"currentColor"},V={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},W={tag:"path",attributes:o({},U,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})},Y=o({},V,{attributeName:"opacity"});o({},U,{cx:"256",cy:"364",r:"28"}),o({},V,{attributeName:"r",values:"28;14;28;28;14;28;"}),o({},Y,{values:"1;0;1;1;0;1;"}),o({},U,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),o({},Y,{values:"1;0;0;0;0;1;"}),o({},U,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),o({},Y,{values:"0;0;1;1;0;0;"}),O.styles;function X(){var e="svg-inline--fa",t=E.familyPrefix,r=E.replacementClass,n='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}';if("fa"!==t||r!==e){var a=new RegExp("\\.".concat("fa","\\-"),"g"),o=new RegExp("\\.".concat(e),"g");n=n.replace(a,".".concat(t,"-")).replace(o,".".concat(r))}return n}function K(e,t){var r=Object.keys(t).reduce((function(e,r){var n=t[r];return!!n.icon?e[n.iconName]=n.icon:e[r]=n,e}),{});"function"==typeof O.hooks.addPack?O.hooks.addPack(e,r):O.styles[e]=o({},O.styles[e]||{},r),"fas"===e&&K("fa",t)}function q(e){return{found:!0,width:e[0],height:e[1],icon:{tag:"path",attributes:{fill:"currentColor",d:e.slice(4)[0]}}}}function Q(){E.autoAddCss&&!te&&(w(X()),te=!0)}function $(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return G(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(m){var t=b.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function Z(e){var t=e.prefix,r=void 0===t?"fa":t,n=e.iconName;if(n)return F(ee.definitions,r,n)||F(O.styles,r,n)}var J,ee=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,r,a;return t=e,(r=[{key:"add",value:function(){for(var e=this,t=arguments.length,r=new Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.transform,n=void 0===r?P:r,a=t.symbol,i=void 0!==a&&a,l=t.mask,s=void 0===l?null:l,p=t.title,c=void 0===p?null:p,u=t.classes,d=void 0===u?[]:u,h=t.attributes,b=void 0===h?{}:h,f=t.styles,m=void 0===f?{}:f;if(e){var g=e.prefix,v=e.iconName,y=e.icon;return $(o({type:"icon"},e),(function(){return Q(),E.autoA11y&&(c?b["aria-labelledby"]="".concat(E.replacementClass,"-title-").concat(k()):b["aria-hidden"]="true"),A({icons:{main:q(y),mask:s?q(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:g,iconName:v,transform:o({},P,n),symbol:i,title:c,extra:{attributes:b,styles:m,classes:d}})}))}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(e||{}).icon?e:Z(e||{}),n=t.mask;return n&&(n=(n||{}).icon?n:Z(n||{})),J(r,o({},t,{mask:n}))})},function(e,t,r){(function(t){var r="object"==typeof t&&t&&t.Object===Object&&t;e.exports=r}).call(this,r(40))},function(e,t,r){var n=r(62),a=r(23);e.exports=function(e,t){return e&&n(e,t,a)}},function(e,t,r){var n=r(110)();e.exports=n},function(e,t,r){var n=r(111),a=r(42),o=r(10),i=r(26),l=r(44),s=r(45),p=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=o(e),c=!r&&a(e),u=!r&&!c&&i(e),d=!r&&!c&&!u&&s(e),h=r||c||u||d,b=h?n(e.length,String):[],f=b.length;for(var m in e)!t&&!p.call(e,m)||h&&("length"==m||u&&("offset"==m||"parent"==m)||d&&("buffer"==m||"byteLength"==m||"byteOffset"==m)||l(m,f))||b.push(m);return b}},function(e,t){e.exports=function(e,t){return function(r){return e(t(r))}}},function(e,t,r){var n=r(27);e.exports=function(e){return"function"==typeof e?e:n}},function(e,t,r){var n=r(18),a=r(51),o=r(15),i=Function.prototype,l=Object.prototype,s=i.toString,p=l.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=n(e))return!1;var t=a(e);if(null===t)return!0;var r=p.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&s.call(r)==c}},function(e,t){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,a=Array(n);++rc))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var h=-1,b=!0,f=2&r?new n:void 0;for(s.set(e,t),s.set(t,e);++h=t||r<0||m&&e-b>=c}function E(){var e=a();if(C(e))return x(e);d=setTimeout(E,function(e){var r=t-(e-h);return m?l(r,c-(e-b)):r}(e))}function x(e){return d=void 0,g&&s?v(e):(s=p=void 0,u)}function O(){var e=a(),r=C(e);if(s=arguments,p=this,h=e,r){if(void 0===d)return y(h);if(m)return clearTimeout(d),d=setTimeout(E,t),v(h)}return void 0===d&&(d=setTimeout(E,t)),u}return t=o(t)||0,n(r)&&(f=!!r.leading,c=(m="maxWait"in r)?i(o(r.maxWait)||0,t):c,g="trailing"in r?!!r.trailing:g),O.cancel=function(){void 0!==d&&clearTimeout(d),b=0,s=h=p=d=void 0},O.flush=function(){return void 0===d?u:x(a())},O}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var n=Object.assign||function(e){for(var t=1;tA.length&&A.push(e)}function I(e,t,r){return null==e?0:function e(t,r,n,a){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var s=!1;if(null===t)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case i:s=!0}}if(s)return n(a,t,""===r?"."+D(t,0):r),1;if(s=0,r=""===r?".":r+":",Array.isArray(t))for(var p=0;pthis.eventPool.length&&this.eventPool.push(e)}function de(e){e.eventPool=[],e.getPooled=ce,e.release=ue}a(pe.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=le)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=le)},persist:function(){this.isPersistent=le},isPersistent:se,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null,this.isPropagationStopped=this.isDefaultPrevented=se,this._dispatchInstances=this._dispatchListeners=null}}),pe.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null},pe.extend=function(e){function t(){}function r(){return n.apply(this,arguments)}var n=this;t.prototype=n.prototype;var o=new t;return a(o,r.prototype),r.prototype=o,r.prototype.constructor=r,r.Interface=a({},n.Interface,e),r.extend=n.extend,de(r),r},de(pe);var he=pe.extend({data:null}),be=pe.extend({data:null}),fe=[9,13,27,32],me=Y&&"CompositionEvent"in window,ge=null;Y&&"documentMode"in document&&(ge=document.documentMode);var ve=Y&&"TextEvent"in window&&!ge,ye=Y&&(!me||ge&&8=ge),Ce=String.fromCharCode(32),Ee={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},xe=!1;function Oe(e,t){switch(e){case"keyup":return-1!==fe.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"blur":return!0;default:return!1}}function Se(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Pe=!1;var we={eventTypes:Ee,extractEvents:function(e,t,r,n){var a=void 0,o=void 0;if(me)e:{switch(e){case"compositionstart":a=Ee.compositionStart;break e;case"compositionend":a=Ee.compositionEnd;break e;case"compositionupdate":a=Ee.compositionUpdate;break e}a=void 0}else Pe?Oe(e,r)&&(a=Ee.compositionEnd):"keydown"===e&&229===r.keyCode&&(a=Ee.compositionStart);return a?(ye&&"ko"!==r.locale&&(Pe||a!==Ee.compositionStart?a===Ee.compositionEnd&&Pe&&(o=ie()):(ae="value"in(ne=n)?ne.value:ne.textContent,Pe=!0)),a=he.getPooled(a,t,r,n),o?a.data=o:null!==(o=Se(r))&&(a.data=o),W(a),o=a):o=null,(e=ve?function(e,t){switch(e){case"compositionend":return Se(t);case"keypress":return 32!==t.which?null:(xe=!0,Ce);case"textInput":return(e=t.data)===Ce&&xe?null:e;default:return null}}(e,r):function(e,t){if(Pe)return"compositionend"===e||!me&&Oe(e,t)?(e=ie(),oe=ae=ne=null,Pe=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1