!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,n,r,a){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=99)}([function(e,t,n){"use strict";e.exports=n(100)},function(t,n){t.exports=e},function(e,t,n){e.exports=n(107)()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ReactCSS=t.loop=t.handleActive=t.handleHover=t.hover=void 0;var r=c(n(110)),a=c(n(181)),o=c(n(201)),i=c(n(202)),l=c(n(203)),s=c(n(204));function c(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 p=t.ReactCSS=function(e){for(var t=arguments.length,n=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,n){var r=n(66),a=n(121),o=n(179),i=n(9);e.exports=function(e,t){return(i(e)?r:o)(e,a(t,3))}},function(e,t){e.exports=n},function(e,t,n){var r=n(22),a=n(112),o=n(113),i=r?r.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,n){var r=n(134),a=n(137);e.exports=function(e,t){var n=a(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(49),a=n(45);e.exports=function(e){return null!=e&&a(e.length)&&!r(e)}},function(e,t,n){"use strict";var r=n(0),a=function(){function e(e,t){for(var n=0;n0&&a[a.length-1])||6!==o[0]&&2!==o[0])){i=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function E(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0||!Array.isArray(t)&&t?g({},e,t):{}}function k(e){var t=e.forwardedRef,n=C(e,["forwardedRef"]),r=n.icon,a=n.mask,o=n.symbol,i=n.className,l=n.title,s=w(r),c=P("classes",[].concat(E(function(e){var t,n=e.spin,r=e.pulse,a=e.fixedWidth,o=e.inverse,i=e.border,l=e.listItem,s=e.flip,c=e.size,p=e.rotation,u=e.pull,d=(g(t={"fa-spin":n,"fa-pulse":r,"fa-fw":a,"fa-inverse":o,"fa-border":i,"fa-li":l,"fa-flip-horizontal":"horizontal"===s||"both"===s,"fa-flip-vertical":"vertical"===s||"both"===s},"fa-".concat(c),null!=c),g(t,"fa-rotate-".concat(p),null!=p),g(t,"fa-pull-".concat(u),null!=u),g(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(d).map((function(e){return d[e]?e:null})).filter((function(e){return e}))}(n)),E(i.split(" ")))),p=P("transform","string"==typeof n.transform?h.b.transform(n.transform):n.transform),u=P("mask",w(a)),d=Object(h.a)(s,y({},c,{},p,{},u,{symbol:o,title:l}));if(!d)return function(){var e;!S&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",s),null;var b=d.abstract,f={ref:t};return Object.keys(n).forEach((function(e){k.defaultProps.hasOwnProperty(e)||(f[e]=n[e])})),T(b[0],f)}k.displayName="FontAwesomeIcon",k.propTypes={border:f.a.bool,className:f.a.string,mask:f.a.oneOfType([f.a.object,f.a.array,f.a.string]),fixedWidth:f.a.bool,inverse:f.a.bool,flip:f.a.oneOf(["horizontal","vertical","both"]),icon:f.a.oneOfType([f.a.object,f.a.array,f.a.string]),listItem:f.a.bool,pull:f.a.oneOf(["right","left"]),pulse:f.a.bool,rotation:f.a.oneOf([90,180,270]),size:f.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:f.a.bool,symbol:f.a.oneOfType([f.a.bool,f.a.string]),title:f.a.string,transform:f.a.oneOfType([f.a.string,f.a.object]),swapOpacity:f.a.bool},k.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,swapOpacity:!1};var _,T=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=O(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[x(t)]=r}return e}),{attrs:{}}),i=r.style,l=void 0===i?{}:i,s=C(r,["style"]);return o.attrs.style=y({},o.attrs.style,{},l),t.apply(void 0,[n.tag,y({},o.attrs,{},s)].concat(E(a)))}.bind(null,p.a.createElement),N=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.onSelect=function(e){this.props.onSelectedIndexChange(e)},t.prototype.renderLabel=function(e,t){var n=this,r=this.props.selectedIndex===t?"label active":"label";return c.createElement("div",{className:r,key:t,onClick:function(){return n.onSelect(t)},title:e.props.title},c.createElement("div",null,c.createElement(k,{icon:e.props.icon})))},t.prototype.render=function(){var e=this;return c.createElement("div",{className:"tabs",onContextMenu:function(e){return e.preventDefault()}},c.createElement("div",{className:"labels"},this.props.children.map((function(t,n){return e.renderLabel(t,n)}))),c.createElement("div",{className:"panes"},this.props.children[this.props.selectedIndex]))},t}(c.Component),A={prefix:"fas",iconName:"address-book",icon:[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},M={prefix:"fas",iconName:"arrow-left",icon:[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"]},R={prefix:"fas",iconName:"arrows-alt",icon:[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"]},L={prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},I={prefix:"fas",iconName:"bone",icon:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"]},j={prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},D={prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"]},z={prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"]},F={prefix:"fas",iconName:"camera",icon:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"]},B={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},H={prefix:"fas",iconName:"check",icon:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]},G={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"]},V={prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},U={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},W={prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},K={prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"]},Y={prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]},X={prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},Z={prefix:"fas",iconName:"expand-arrows-alt",icon:[448,512,[],"f31e","M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"]},q={prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},Q={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},$={prefix:"fas",iconName:"file-alt",icon:[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},J={prefix:"fas",iconName:"film",icon:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},ee={prefix:"fas",iconName:"ghost",icon:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},te={prefix:"fas",iconName:"highlighter",icon:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"]},ne={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]},re={prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},ae={prefix:"fas",iconName:"lightbulb",icon:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},oe={prefix:"fas",iconName:"magic",icon:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"]},ie={prefix:"fas",iconName:"minus",icon:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},le={prefix:"fas",iconName:"object-group",icon:[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"]},se={prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},ce={prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},pe={prefix:"fas",iconName:"redo-alt",icon:[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"]},ue={prefix:"fas",iconName:"skull",icon:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"]},de={prefix:"fas",iconName:"sync-alt",icon:[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"]},he={prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},be={prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},fe={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]},me={prefix:"fas",iconName:"vector-square",icon:[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"]},ge={prefix:"fas",iconName:"video",icon:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"]},ve={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]},ye={prefix:"fas",iconName:"wrench",icon:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},Ce=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){return c.createElement("div",{className:"pane"})},t}(c.Component),Ee=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.ignoreValue?null:this.props.onLink||this.props.url?c.createElement("div",{className:"link-value",title:this.props.value,onClick:function(){return e.onLink()}},this.props.url?"doc":this.props.value||"no name"):c.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(){var e;return c.createElement("div",{className:this.props.underline?"textLine underline":"textLine"+(this.props.additionalClass?" "+this.props.additionalClass:"")},c.createElement("div",{className:"label"},null!==(e=this.props.label)&&void 0!==e?e:""),this.renderContent())},t}(c.Component),xe=function(e){function t(t){var n=e.call(this,t)||this,r=d.DataStorage.ReadBoolean(n.props.title,!n.props.closed);return n.state={isExpanded:r,isHighlighted:!1},n}return a(t,e),t.prototype.switchExpandedState=function(){var e=!this.state.isExpanded;d.DataStorage.WriteBoolean(this.props.title,e),this.setState({isExpanded:e})},t.prototype.componentDidMount=function(){var e=this;this.props.globalState&&(0===this.props.globalState.selectedLineContainerTitles.length&&0===this.props.globalState.selectedLineContainerTitlesNoFocus.length||(this.props.globalState.selectedLineContainerTitles.indexOf(this.props.title)>-1?(setTimeout((function(){e.props.globalState.selectedLineContainerTitles=[]})),this.setState({isExpanded:!0,isHighlighted:!0}),window.setTimeout((function(){e.setState({isHighlighted:!1})}),5e3)):this.props.globalState.selectedLineContainerTitlesNoFocus.indexOf(this.props.title)>-1?this.setState({isExpanded:!0,isHighlighted:!1}):this.setState({isExpanded:!1})))},t.prototype.renderHeader=function(){var e=this,t=this.state.isExpanded?"collapse":"collapse closed";return c.createElement("div",{className:"header",onClick:function(){return e.switchExpandedState()}},c.createElement("div",{className:"title"},this.props.title),c.createElement("div",{className:t},c.createElement(k,{icon:G})))},t.prototype.render=function(){return this.state.isExpanded?c.createElement("div",{className:"paneContainer"},c.createElement("div",{className:"paneContainer-content"},this.renderHeader(),c.createElement("div",{className:"paneList"},this.props.children)),c.createElement("div",{className:"paneContainer-highlight-border"+(this.state.isHighlighted?"":" transparent")})):c.createElement("div",{className:"paneContainer"},c.createElement("div",{className:"paneContainer-content"},this.renderHeader()))},t}(c.Component),Oe=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 c.createElement("div",{className:"textLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"value",style:{color:this.props.color?this.props.color:""}},t))},t}(c.Component),Se=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this.props.value?c.createElement(k,{icon:H}):c.createElement(k,{icon:be}),t=this.props.value?"value check":"value uncheck";return c.createElement("div",{className:"textLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:t},e))},t}(c.Component),we=function(e){function t(t){var n=e.call(this,t)||this,r=n.props.scene;return r?(n._sceneInstrumentation=new d.SceneInstrumentation(r),n._sceneInstrumentation.captureActiveMeshesEvaluationTime=!0,n._sceneInstrumentation.captureRenderTargetsRenderTime=!0,n._sceneInstrumentation.captureFrameTime=!0,n._sceneInstrumentation.captureRenderTime=!0,n._sceneInstrumentation.captureInterFrameTime=!0,n._sceneInstrumentation.captureParticlesRenderTime=!0,n._sceneInstrumentation.captureSpritesRenderTime=!0,n._sceneInstrumentation.capturePhysicsTime=!0,n._sceneInstrumentation.captureAnimationsTime=!0,n._engineInstrumentation=new d.EngineInstrumentation(r.getEngine()),n._engineInstrumentation.captureGPUFrameTime=!0,n._timerIntervalId=window.setInterval((function(){return n.forceUpdate()}),500),n):n}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(),n=this._sceneInstrumentation,r=this._engineInstrumentation,a=t.getCaps();return c.createElement("div",{className:"pane"},c.createElement(Ee,{label:"Version",value:d.Engine.Version,color:"rgb(113, 159, 255)"}),c.createElement(Oe,{label:"FPS",value:t.getFps(),fractionDigits:0}),c.createElement(xe,{globalState:this.props.globalState,title:"COUNT"},c.createElement(Ee,{label:"Total meshes",value:e.meshes.length.toString()}),c.createElement(Ee,{label:"Active meshes",value:e.getActiveMeshes().length.toString()}),c.createElement(Ee,{label:"Active indices",value:e.getActiveIndices().toString()}),c.createElement(Ee,{label:"Active faces",value:(e.getActiveIndices()/3).toString()}),c.createElement(Ee,{label:"Active bones",value:e.getActiveBones().toString()}),c.createElement(Ee,{label:"Active particles",value:e.getActiveParticles().toString()}),c.createElement(Ee,{label:"Draw calls",value:n.drawCallsCounter.current.toString()}),c.createElement(Ee,{label:"Total lights",value:e.lights.length.toString()}),c.createElement(Ee,{label:"Total vertices",value:e.getTotalVertices().toString()}),c.createElement(Ee,{label:"Total materials",value:e.materials.length.toString()}),c.createElement(Ee,{label:"Total textures",value:e.textures.length.toString()})),c.createElement(xe,{globalState:this.props.globalState,title:"FRAME STEPS DURATION"},c.createElement(Oe,{label:"Absolute FPS",value:1e3/this._sceneInstrumentation.frameTimeCounter.lastSecAverage,fractionDigits:0}),c.createElement(Oe,{label:"Meshes selection",value:n.activeMeshesEvaluationTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Render targets",value:n.renderTargetsRenderTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Particles",value:n.particlesRenderTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Sprites",value:n.spritesRenderTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Animations",value:n.animationsTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Physics",value:n.physicsTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Render",value:n.renderTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Frame total",value:n.frameTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"Inter-frame",value:n.interFrameTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"GPU Frame time",value:1e-6*r.gpuFrameTimeCounter.lastSecAverage,units:"ms"}),c.createElement(Oe,{label:"GPU Frame time (average)",value:1e-6*r.gpuFrameTimeCounter.average,units:"ms"})),c.createElement(xe,{globalState:this.props.globalState,title:"SYSTEM INFO"},c.createElement(Ee,{label:"Resolution",value:t.getRenderWidth()+"x"+t.getRenderHeight()}),c.createElement(Ee,{label:"Hardware scaling level",value:t.getHardwareScalingLevel().toString()}),c.createElement(Ee,{label:"WebGL version",value:t.webGLVersion.toString()}),c.createElement(Se,{label:"Std derivatives",value:a.standardDerivatives}),c.createElement(Se,{label:"Compressed textures",value:void 0!==a.s3tc}),c.createElement(Se,{label:"Hardware instances",value:a.instancedArrays}),c.createElement(Se,{label:"Texture float",value:a.textureFloat}),c.createElement(Se,{label:"Texture half-float",value:a.textureHalfFloat}),c.createElement(Se,{label:"Render to texture float",value:a.textureFloatRender}),c.createElement(Se,{label:"Render to texture half-float",value:a.textureHalfFloatRender}),c.createElement(Se,{label:"32bits indices",value:a.uintIndices}),c.createElement(Se,{label:"Fragment depth",value:a.fragmentDepthSupported}),c.createElement(Se,{label:"High precision shaders",value:a.highPrecisionShaderSupported}),c.createElement(Se,{label:"Draw buffers",value:a.drawBuffersExtension}),c.createElement(Se,{label:"Vertex array object",value:a.vertexArrayObject}),c.createElement(Se,{label:"Timer query",value:void 0!==a.timerQuery}),c.createElement(Se,{label:"Stencil",value:t.isStencilEnable}),c.createElement(Se,{label:"Parallel shader compilation",value:null!=a.parallelShaderCompile}),c.createElement(Oe,{label:"Max textures units",value:a.maxTexturesImageUnits,fractionDigits:0}),c.createElement(Oe,{label:"Max textures size",value:a.maxTextureSize,fractionDigits:0}),c.createElement(Oe,{label:"Max anisotropy",value:a.maxAnisotropy,fractionDigits:0}),c.createElement(Ee,{label:"Driver",value:t.getGlInfo().renderer})))},t}(Ce),Pe=function(e){function t(n){var r=e.call(this,n)||this;return r._localChange=!1,r._uniqueId=t._UniqueIdSeed++,r.props.isSelected?r.state={isSelected:r.props.isSelected()}:r.state={isSelected:!0===r.props.target[r.props.propertyName]},r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n;return!((n=this.props.isSelected?e.isSelected():1==e.target[e.propertyName])===t.isSelected&&!this._localChange&&this.props.label===e.label)&&(t.isSelected=n,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 c.createElement("div",{className:"checkBoxLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"checkBox"},c.createElement("input",{type:"checkbox",id:"checkbox"+this._uniqueId,className:"cbx hidden",checked:this.state.isSelected,onChange:function(){return e.onChange()}}),c.createElement("label",{htmlFor:"checkbox"+this._uniqueId,className:"lbl"})))},t._UniqueIdSeed=0,t}(c.Component),ke=n(96),_e=function(e){function t(t){var n=e.call(this,t)||this;return n.state={isEnabled:!1},n}return a(t,e),t.prototype.componentDidMount=function(){for(var e=0,t=d.UtilityLayerRenderer.DefaultKeepDepthUtilityLayer.utilityLayerScene.meshes;ewindow.innerHeight&&(n=window.innerHeight-r-10),e.style.top=n+"px",e.style.left=t.getBoundingClientRect().left-e.getBoundingClientRect().width+"px"}},t.prototype.shouldComponentUpdate=function(e,t){var n=e.value.toHexString()!==this.props.value.toHexString();return n&&(t.color={r:255*e.value.r,g:255*e.value.g,b:255*e.value.b,a:e.value instanceof d.Color4?e.value.a:1},t.hex=e.value.toHexString()),n||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 c.createElement("div",{className:"color-picker"},c.createElement("div",{className:"color-rect",ref:this._floatHostRef,style:{background:this.state.hex},onClick:function(){return e.setState({pickerEnabled:!0})}}),this.state.pickerEnabled&&c.createElement(c.Fragment,null,c.createElement("div",{className:"color-picker-cover",onClick:function(t){var n,r;t.target===(null===(r=null===(n=e._floatRef.current)||void 0===n?void 0:n.ownerDocument)||void 0===r?void 0:r.querySelector(".color-picker-cover"))&&e.setState({pickerEnabled:!1})}},c.createElement("div",{className:"color-picker-float",ref:this._floatRef},c.createElement(je.SketchPicker,{color:t,disableAlpha:this.props.disableAlpha,onChange:function(t){var n;e.props.disableAlpha?n=d.Color3.FromInts(t.rgb.r,t.rgb.g,t.rgb.b).toHexString():n=d.Color4.FromInts(t.rgb.r,t.rgb.g,t.rgb.b,255*(t.rgb.a||0)).toHexString();e.setState({hex:n,color:t.rgb}),e.props.onColorChanged(n)}})))))},t}(c.Component),ze=n(93),Fe=function(e){function t(t){var n=e.call(this,t)||this;return n._localChange=!1,n.state={isExpanded:!1,color:n.props.target[n.props.propertyName].clone()},t.isLinear&&n.state.color.toGammaSpaceToRef(n.state.color),t.target._isLinearColor=t.isLinear,n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n=this.props.isLinear?e.target[e.propertyName].toGammaSpace():e.target[e.propertyName];return!(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=d.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?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se});return c.createElement("div",{className:"color3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"color3"},c.createElement(De,{value:this.state.color,disableAlpha:!0,onColorChanged:function(t){e.onChange(t)}})),c.createElement("div",{className:"copy hoverIcon",onClick:function(){return e.copyToClipboard()},title:"Copy to clipboard"},c.createElement("img",{src:ze,alt:""})),c.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"r",value:this.state.color.r,onChange:function(t){return e.updateStateR(t)}}),c.createElement(Ie,{label:"g",value:this.state.color.g,onChange:function(t){return e.updateStateG(t)}}),c.createElement(Ie,{label:"b",value:this.state.color.b,onChange:function(t){return e.updateStateB(t)}})))},t}(c.Component),Be=function(e){function t(t){var n=e.call(this,t)||this;return n._localChange=!1,n.state={isExpanded:!1,value:n.getCurrentValue().clone()},n}return a(t,e),t.prototype.getCurrentValue=function(){return this.props.target[this.props.propertyName]},t.prototype.shouldComponentUpdate=function(e,t){var n=this.getCurrentValue();return!(n.equals(t.value)&&!this._localChange)&&(t.value=n.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?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se});return c.createElement("div",{className:"vector3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.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: "+d.Tools.ToDegrees(this.state.value.x).toFixed(2)+", Y: "+d.Tools.ToDegrees(this.state.value.y).toFixed(2)+", Z: "+d.Tools.ToDegrees(this.state.value.z).toFixed(2)),c.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&!this.props.useEuler&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),c.createElement(Ie,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}}),c.createElement(Ie,{label:"z",step:this.props.step,value:this.state.value.z,onChange:function(t){return e.updateStateZ(t)}})),this.state.isExpanded&&this.props.useEuler&&c.createElement("div",{className:"secondLine"},c.createElement(Me,{label:"x",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(this.state.value.x),onChange:function(t){return e.updateStateX(d.Tools.ToRadians(t))}}),c.createElement(Me,{label:"y",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(this.state.value.y),onChange:function(t){return e.updateStateY(d.Tools.ToRadians(t))}}),c.createElement(Me,{label:"z",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(this.state.value.z),onChange:function(t){return e.updateStateZ(d.Tools.ToRadians(t))}})))},t.defaultProps={step:.001},t}(c.Component),He=function(e){function t(t){var n=e.call(this,t)||this;n._localChange=!1;var r=n.props.target[n.props.propertyName].clone();return n.state={isExpanded:!1,value:r,eulerValue:r.toEulerAngles()},n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n=e.target[e.propertyName];return!(n.equals(t.value)&&!this._localChange)&&(t.value=n.clone(),t.eulerValue=n.toEulerAngles(),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=d.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.updateStateEulerY=function(e){this._localChange=!0,this.state.eulerValue.y=d.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.updateStateEulerZ=function(e){this._localChange=!0,this.state.eulerValue.z=d.Tools.ToRadians(e),this.updateQuaternionFromEuler()},t.prototype.render=function(){var e=this,t=this.state.isExpanded?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se}),n=this.state.value,r=this.state.eulerValue;return c.createElement("div",{className:"vector3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"vector"},!this.props.useEuler&&"X: "+n.x.toFixed(1)+", Y: "+n.y.toFixed(1)+", Z: "+n.z.toFixed(1)+", W: "+n.w.toFixed(1),this.props.useEuler&&"X: "+d.Tools.ToDegrees(r.x).toFixed(2)+", Y: "+d.Tools.ToDegrees(r.y).toFixed(2)+", Z: "+d.Tools.ToDegrees(r.z).toFixed(2)),c.createElement("div",{className:"expand",onClick:function(){return e.switchExpandState()}},t)),this.state.isExpanded&&!this.props.useEuler&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"x",value:n.x,onChange:function(t){return e.updateStateX(t)}}),c.createElement(Ie,{label:"y",value:n.y,onChange:function(t){return e.updateStateY(t)}}),c.createElement(Ie,{label:"z",value:n.z,onChange:function(t){return e.updateStateZ(t)}}),c.createElement(Ie,{label:"w",value:n.w,onChange:function(t){return e.updateStateW(t)}})),this.state.isExpanded&&this.props.useEuler&&c.createElement("div",{className:"secondLine"},c.createElement(Me,{label:"x",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(r.x),onChange:function(t){return e.updateStateEulerX(t)}}),c.createElement(Me,{label:"y",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(r.y),onChange:function(t){return e.updateStateEulerY(t)}}),c.createElement(Me,{label:"z",minimum:0,maximum:360,step:.1,directValue:d.Tools.ToDegrees(r.z),onChange:function(t){return e.updateStateEulerZ(t)}})))},t}(c.Component),Ge=function(e){function t(t){var n=e.call(this,t)||this;return n._localChange=!1,n.state={value:(void 0!==n.props.value?n.props.value:n.props.target[n.props.propertyName])||""},n}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 n=void 0!==e.value?e.value:e.target[e.propertyName];return n!==t.value&&(t.value=n||"",!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 c.createElement("div",{className:"textInputLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"value"},c.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}(c.Component),Ve=function(e){function t(t){var n=e.call(this,t)||this;return n.state={mode:0},n}return a(t,e),t.prototype.renderInspectable=function(e){switch(e.type){case d.InspectableType.Checkbox:return c.createElement(Pe,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.InspectableType.Slider:return c.createElement(Me,{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 d.InspectableType.Vector3:return c.createElement(Be,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.InspectableType.Quaternion:return c.createElement(He,{useEuler:this.props.globalState.onlyUseEulers,key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.InspectableType.Color3:return c.createElement(Fe,{key:e.label,label:e.label,target:this.props.target,propertyName:e.propertyName,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.InspectableType.String:return c.createElement(Ge,{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?c.createElement(xe,{title:"CUSTOM",globalState:this.props.globalState},t.map((function(t){return e.renderInspectable(t)}))):null},t}(c.Component),Ue=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this;return c.createElement("div",{className:"buttonLine"},c.createElement("button",{onClick:function(){return e.props.onClick()}},this.props.label))},t}(c.Component),We=function(e){function t(t){var n=e.call(this,t)||this;n._localChange=!1;var r=n.props.target[n.props.propertyName];return n.state={value:r?n.props.isInteger?r.toFixed(0):r.toFixed(n.props.digits||3):"0"},n._store=r,n}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 n=e.target[e.propertyName],r=n?this.props.isInteger?n.toFixed(0):n.toFixed(this.props.digits||3):"0";return r!==t.value&&(t.value=r,!0)},t.prototype.raiseOnPropertyChanged=function(e,t){var n;this.props.onChange&&this.props.onChange(e),this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:null!==(n=this.props.replaySourceReplacement)&&void 0!==n?n: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||t=a/1.25&&(this.props.setCurrentFrame(Math.sign(r)),this._playheadDrag=this._playheadDrag+r)}else{var o=s(this.props.keyframeSvgPoints).find((function(e){return e.id===t._currentPointId}));o&&("left"===this._isCurrentPointControl?(o.leftControlPoint=n,o.isLeftActive=!0):"right"===this._isCurrentPointControl?(o.rightControlPoint=n,o.isRightActive=!0):(o.keyframePoint=n,o.isRightActive=!1,o.isLeftActive=!1),this.props.updatePosition(o,this._currentPointId))}}},t.prototype.dragEnd=function(e){e.preventDefault(),this._active=!1,this._currentPointId="",this._isCurrentPointControl="",this._panStart.set(0,0),this._panStop.set(0,0),this._playheadDrag=0,this._playheadSelected=!1},t.prototype.getMousePosition=function(e){if(e.touches&&(e=e.touches[0]),this._draggableArea.current){var t=this._draggableArea.current.getScreenCTM();return t?new d.Vector2((e.clientX-t.e)/t.a,(e.clientY-t.f)/t.d):void 0}},t.prototype.panDirection=function(){var e=this._panStart.x-this._panStop.x,t=this._panStart.y-this._panStop.y,n=this.state.panX+e/20,r=this.state.panY+t/20;this.setState({panX:Math.round(n),panY:Math.round(r)}),this.props.panningY(Math.round(r)),this.props.panningX(Math.round(n))},t.prototype.panTo=function(e,t){var n,r;switch(e){case"left":(null===(n=this._draggableArea.current)||void 0===n?void 0:n.parentElement).scrollLeft-=1*t;break;case"right":(null===(r=this._draggableArea.current)||void 0===r?void 0:r.parentElement).scrollLeft+=1*t}},t.prototype.keyDown=function(e){var t;e.preventDefault(),17===e.keyCode&&(null===(t=this._draggableArea.current)||void 0===t||t.style.setProperty("cursor","grab"))},t.prototype.keyUp=function(e){var t;if(e.preventDefault(),17===e.keyCode&&(null===(t=this._draggableArea.current)||void 0===t||t.style.setProperty("cursor","initial")),8===e.keyCode){var n=this.props.keyframeSvgPoints.filter((function(e){return e.selected}));this.props.removeSelectedKeyframes(n)}},t.prototype.focus=function(e){var t;e.preventDefault(),null===(t=this._draggableArea.current)||void 0===t||t.focus(),"linear pannable"==e.target.className.baseVal&&(this.isNotControlPointActive()&&this.props.deselectKeyframes(),this.props.resetActionableKeyframe())},t.prototype.isNotControlPointActive=function(){return 0===this.props.keyframeSvgPoints.filter((function(e){return e.isLeftActive||e.isRightActive})).length},t.prototype.render=function(){var e=this;return c.createElement(c.Fragment,null,c.createElement("svg",{style:{width:30,height:364,position:"absolute",zIndex:1,pointerEvents:"none"}},c.createElement("rect",{x:"0",y:"0",width:"38px",height:"100%",fill:"#ffffff1c"})),c.createElement("svg",{className:"linear pannable",ref:this._draggableArea,tabIndex:0,onMouseMove:function(t){return e.drag(t)},onTouchMove:function(t){return e.drag(t)},onTouchStart:function(t){return e.dragStart(t)},onTouchEnd:function(t){return e.dragEnd(t)},onMouseDown:function(t){return e.dragStart(t)},onMouseUp:function(t){return e.dragEnd(t)},onMouseLeave:function(t){return e.dragEnd(t)},onClick:function(t){return e.focus(t)},viewBox:this.state.panX+" "+this.state.panY+" "+Math.round(200*this.props.scale)+" "+Math.round(100*this.props.scale)},this.props.children,this.props.keyframeSvgPoints.map((function(t,n){return c.createElement(Ze,{key:t.id+"_"+n,id:t.id,keyframePoint:t.keyframePoint,leftControlPoint:t.leftControlPoint,rightControlPoint:t.rightControlPoint,isLeftActive:t.isLeftActive,isRightActive:t.isRightActive,selected:t.selected,selectedControlPoint:function(t,n){return e.props.selectedControlPoint(t,n)},selectKeyframe:function(t,n){return e.props.selectKeyframe(t,n)}})}))))},t}(c.Component),Qe=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e=this;return c.createElement("div",{style:{backgroundColor:this.props.active?"#111111":""},title:this.props.tooltip,className:"icon "+this.props.icon,onClick:function(){return e.props.onClick()}})},t}(c.Component),$e=function(e){function t(t){var n=e.call(this,t)||this;return null!==n.props.selected&&(n.state={selected:n.props.selected,playingType:""}),n}return a(t,e),t.prototype.playBackwards=function(){this.setState({playingType:"reverse"}),this.props.playPause(-1)},t.prototype.play=function(){this.setState({playingType:"forward"}),this.props.playPause(1)},t.prototype.pause=function(){this.props.isPlaying&&(this.setState({playingType:""}),this.props.playPause(0))},t.prototype.nextFrame=function(){this.props.onCurrentFrameChange(this.props.currentFrame+1),this.props.scrollable.current.scrollLeft=5*this.props.currentFrame},t.prototype.previousFrame=function(){0!==this.props.currentFrame&&(this.props.onCurrentFrameChange(this.props.currentFrame-1),this.props.scrollable.current.scrollLeft=-5*this.props.currentFrame)},t.prototype.nextKeyframe=function(){var e=this;if(null!==this.props.keyframes){var t=this.props.keyframes.find((function(t){return t.frame>e.props.currentFrame}));t&&(this.props.onCurrentFrameChange(t.frame),this.setState({selected:t}),this.props.scrollable.current.scrollLeft=5*t.frame)}},t.prototype.previousKeyframe=function(){var e=this;if(null!==this.props.keyframes){var t=s(this.props.keyframes).reverse().find((function(t){return t.framen?n:i}},t.prototype.playBackwards=function(e){this.props.playPause(-1)},t.prototype.play=function(e){this.props.playPause(1)},t.prototype.pause=function(e){this.props.isPlaying&&this.props.playPause(1)},t.prototype.handleInputChange=function(e){this.props.onCurrentFrameChange(parseInt(e.target.value)),e.preventDefault()},t.prototype.setCurrentFrame=function(e){var t;if(e.preventDefault(),this._scrollable.current){var n=null===(t=this._scrollable.current)||void 0===t?void 0:t.clientWidth,r=Math.round(n/this.state.selectionLength.length),a=Math.round((e.clientX-233)/r)+this.state.start;this.props.onCurrentFrameChange(a),this.props.repositionCanvas(a)}},t.prototype.handleLimitChange=function(e){var t=this;e.preventDefault();var n=parseInt(e.target.value);isNaN(n)&&(n=0),this.setState({end:n,selectionLength:this.range(this.state.start,n)},(function(){t.setState({scrollWidth:t.calculateScrollWidth(t.state.start,n)})})),this.props.onAnimationLimitChange(n)},t.prototype.nextFrame=function(e){e.preventDefault(),this.props.onCurrentFrameChange(this.props.currentFrame+1),this._scrollable.current.scrollLeft=5*this.props.currentFrame},t.prototype.previousFrame=function(e){e.preventDefault(),0!==this.props.currentFrame&&(this.props.onCurrentFrameChange(this.props.currentFrame-1),this._scrollable.current.scrollLeft=-5*this.props.currentFrame)},t.prototype.nextKeyframe=function(e){var t=this;if(e.preventDefault(),null!==this.props.keyframes){var n=this.props.keyframes.find((function(e){return e.frame>t.props.currentFrame}));n&&(this.props.onCurrentFrameChange(n.frame),this.setState({selected:n}),this._scrollable.current.scrollLeft=5*n.frame)}},t.prototype.previousKeyframe=function(e){var t=this;if(e.preventDefault(),null!==this.props.keyframes){var n=s(this.props.keyframes).reverse().find((function(e){return e.framee.clientX)(t=this.isFrameBeingUsed(n.frame-1,-1))&&(n.frame=t);else(t=this.isFrameBeingUsed(n.frame+1,1))&&(n.frame=t);this.props.dragKeyframe(n.frame,this.state.activeKeyframe)}},t.prototype.isFrameBeingUsed=function(e,t){var n,r=null===(n=this.props.keyframes)||void 0===n?void 0:n.find((function(t){return t.frame===e}));return r?(this.isFrameBeingUsed(r.frame+t,t),!1):e},t.prototype.dragEnd=function(e){e.preventDefault(),this._direction=0,this.setState({activeKeyframe:null})},t.prototype.scrollDragStart=function(e){e.preventDefault(),"scrollbar"===e.target.className&&(e.target.class="scrollbar")&&this._scrollbarHandle.current&&(this._scrolling=!0,this._shiftX=e.clientX-this._scrollbarHandle.current.getBoundingClientRect().left,this._scrollbarHandle.current.style.left=e.pageX-this._shiftX+"px"),"left-draggable"===e.target.className&&this._scrollbarHandle.current&&(this._active="leftDraggable",this._shiftX=e.clientX-this._scrollbarHandle.current.getBoundingClientRect().left),"right-draggable"===e.target.className&&this._scrollbarHandle.current&&(this._active="rightDraggable",this._shiftX=e.clientX-this._scrollbarHandle.current.getBoundingClientRect().left)},t.prototype.scrollDrag=function(e){e.preventDefault(),"scrollbar"===e.target.className&&this.moveScrollbar(e.pageX),"leftDraggable"===this._active&&this.resizeScrollbarLeft(e.clientX),"rightDraggable"===this._active&&this.resizeScrollbarRight(e.clientX)},t.prototype.scrollDragEnd=function(e){e.preventDefault(),this._scrolling=!1,this._active="",this._shiftX=0},t.prototype.moveScrollbar=function(e){if(this._scrolling&&this._scrollbarHandle.current&&this._scrollContainer.current){var t=e-this._shiftX,n=this._scrollContainer.current.clientWidth,r=t-this._scrollContainer.current.getBoundingClientRect().left,a=n-(this.state.scrollWidth||0)-3;if(t>233&&r=this.state.end-20)){var o=a*n+this._scrollContainer.current.getBoundingClientRect().left+6;this._scrollbarHandle.current&&(this._scrollbarHandle.current.style.left=o+"px"),this.setState({start:a,scrollWidth:this.calculateScrollWidth(a,this.state.end),selectionLength:this.range(a,this.state.end)})}}},t.prototype.range=function(e,t){return Array.from({length:t-e},(function(t,n){return e+1*n}))},t.prototype.getKeyframe=function(e){return!!this.props.keyframes&&this.props.keyframes.find((function(t){return t.frame===e}))},t.prototype.getCurrentFrame=function(e){return this.props.currentFrame===e},t.prototype.render=function(){var e,t=this;return c.createElement(c.Fragment,null,c.createElement("div",{className:"timeline"},c.createElement($e,{keyframes:this.props.keyframes,selected:this.props.selected,currentFrame:this.props.currentFrame,onCurrentFrameChange:this.props.onCurrentFrameChange,playPause:this.props.playPause,isPlaying:this.props.isPlaying,scrollable:this._scrollable}),c.createElement("div",{className:"timeline-wrapper"},c.createElement("div",{ref:this._scrollable,className:"display-line",onClick:function(e){return t.setCurrentFrame(e)}},c.createElement("svg",{style:{width:"100%",height:40,backgroundColor:"#222222"},onMouseMove:function(e){return t.drag(e)},onTouchMove:function(e){return t.drag(e)},onTouchStart:function(e){return t.dragStart(e)},onTouchEnd:function(e){return t.dragEnd(e)},onMouseDown:function(e){return t.dragStart(e)},onMouseUp:function(e){return t.dragEnd(e)},onMouseLeave:function(e){return t.dragEnd(e)},onDragStart:function(){return!1}},this.state.selectionLength.map((function(e,n){return c.createElement("svg",{key:"tl_"+e},c.createElement(c.Fragment,null,c.createElement("text",{x:100*n/t.state.selectionLength.length+"%",y:"18",style:{fontSize:10,fill:"#555555"}},e),c.createElement("line",{x1:100*n/t.state.selectionLength.length+"%",y1:"22",x2:100*n/t.state.selectionLength.length+"%",y2:"40",style:{stroke:"#555555",strokeWidth:.5}}),t.getCurrentFrame(e)?c.createElement("svg",{x:t._scrollable.current?t._scrollable.current.clientWidth/t.state.selectionLength.length/2:1},c.createElement("line",{x1:100*n/t.state.selectionLength.length+"%",y1:"0",x2:100*n/t.state.selectionLength.length+"%",y2:"40",style:{stroke:"rgba(18, 80, 107, 0.26)",strokeWidth:t._scrollable.current?t._scrollable.current.clientWidth/t.state.selectionLength.length:1}})):null,t.getKeyframe(e)?c.createElement("svg",{key:"kf_"+n,tabIndex:n+40},c.createElement("line",{id:"kf_"+n.toString(),x1:100*n/t.state.selectionLength.length+"%",y1:"0",x2:100*n/t.state.selectionLength.length+"%",y2:"40",style:{stroke:"#ffc017",strokeWidth:1}})):null))})))),c.createElement("div",{className:"timeline-scroll-handle",onMouseMove:function(e){return t.scrollDrag(e)},onTouchMove:function(e){return t.scrollDrag(e)},onTouchStart:function(e){return t.scrollDragStart(e)},onTouchEnd:function(e){return t.scrollDragEnd(e)},onMouseDown:function(e){return t.scrollDragStart(e)},onMouseUp:function(e){return t.scrollDragEnd(e)},onMouseLeave:function(e){return t.scrollDragEnd(e)},onDragStart:function(){return!1}},c.createElement("div",{className:"scroll-handle",ref:this._scrollContainer},c.createElement("div",{className:"handle",ref:this._scrollbarHandle,style:{width:this.state.scrollWidth}},c.createElement("div",{className:"left-grabber"},c.createElement("div",{className:"left-draggable"},c.createElement("div",{className:"grabber"}),c.createElement("div",{className:"grabber"}),c.createElement("div",{className:"grabber"})),c.createElement("div",{className:"text"},this.state.start)),c.createElement("div",{className:"scrollbar"}),c.createElement("div",{className:"right-grabber"},c.createElement("div",{className:"text"},this.state.end),c.createElement("div",{className:"right-draggable"},c.createElement("div",{className:"grabber"}),c.createElement("div",{className:"grabber"}),c.createElement("div",{className:"grabber"})))))),c.createElement("div",{className:"input-frame"},c.createElement("input",{type:"number",value:null!==(e=this.props.animationLimit)&&void 0!==e?e:0,onChange:function(e){return t.handleLimitChange(e)}})))))},t}(c.Component),et=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){return c.createElement("div",{className:"notification-area",style:{display:this.props.open?"block":"none"}},c.createElement("div",{className:"alert alert-error"},c.createElement("button",{type:"button",className:"close","data-dismiss":"alert",onClick:this.props.close},"×"),this.props.message))},t}(c.Component),tt=function(e){function t(t){var n=e.call(this,t)||this;return n._frameInput=c.createRef(),n._valueInput=c.createRef(),n}return a(t,e),t.prototype.componentDidMount=function(){var e,t;null===(e=this._frameInput.current)||void 0===e||e.addEventListener("keyup",this.isEnterKeyUp.bind(this)),null===(t=this._valueInput.current)||void 0===t||t.addEventListener("keyup",this.isEnterKeyUp.bind(this))},t.prototype.componentWillUnmount=function(){var e,t;null===(e=this._frameInput.current)||void 0===e||e.removeEventListener("keyup",this.isEnterKeyUp.bind(this)),null===(t=this._valueInput.current)||void 0===t||t.removeEventListener("keyup",this.isEnterKeyUp.bind(this))},t.prototype.isEnterKeyUp=function(e){e.preventDefault(),"Enter"===e.key&&this.props.setKeyframeValue()},t.prototype.onBlur=function(e){e.preventDefault(),""!==e.target.value&&this.props.setKeyframeValue()},t.prototype.render=function(){var e,t=this;return c.createElement("div",{className:"actions-wrapper"},c.createElement("div",{className:"title-container"},c.createElement("div",{className:"icon babylon-logo"}),c.createElement("div",{className:"title"},this.props.title)),c.createElement("div",{className:"buttons-container",style:{pointerEvents:this.props.enabled?"all":"none"}},c.createElement("div",{className:"action-input frame-input"},c.createElement("input",{ref:this._frameInput,type:"number",onChange:this.props.handleFrameChange,value:(null===(e=this.props.actionableKeyframe.frame)||void 0===e?void 0:e.toString())||"",step:"1",disabled:void 0===this.props.actionableKeyframe.frame,onBlur:function(e){return t.onBlur(e)}})),c.createElement("div",{className:"action-input"},c.createElement("input",{ref:this._valueInput,type:"number",value:this.props.actionableKeyframe.value||"",onChange:this.props.handleValueChange,step:"0.01",disabled:void 0===this.props.actionableKeyframe.value,onBlur:function(e){return t.onBlur(e)}})),c.createElement(Qe,{tooltip:"Add Keyframe",icon:"new-key",onClick:this.props.addKeyframe}),c.createElement(Qe,{tooltip:"Frame selected keyframes",icon:"frame",onClick:this.props.removeKeyframe}),c.createElement(Qe,{tooltip:"Flat Tangents",icon:"flat-tangent",onClick:this.props.flatTangent}),c.createElement(Qe,{tooltip:this.props.brokenMode?"Broken Mode On":"Broken Mode Off",icon:this.props.brokenMode?"break-tangent":"unify-tangent",onClick:this.props.brokeTangents}),c.createElement(Qe,{tooltip:this.props.lerpMode?"Lerp On":"lerp Off",icon:"linear-tangent",onClick:this.props.setLerpMode})))},t}(c.Component),nt=function(e){function t(t){var n=e.call(this,t)||this;return n.state=n.setInitialState(n.props.selectedToUpdate),n}return a(t,e),t.prototype.setInitialState=function(e){var t;return{animationName:e?e.name:"",animationTargetPath:"",animationType:e?e.dataType:d.Animation.ANIMATIONTYPE_FLOAT,loopMode:e&&null!==(t=e.loopMode)&&void 0!==t?t:d.Animation.ANIMATIONLOOPMODE_CYCLE,animationTargetProperty:e?e.targetProperty:"",isUpdating:!!e}},t.prototype.componentWillReceiveProps=function(e){void 0!==e.selectedToUpdate&&e.selectedToUpdate!==this.props.selectedToUpdate?this.setState(this.setInitialState(e.selectedToUpdate)):!0===e.isOpen&&e.isOpen!==this.props.isOpen&&this.setState(this.setInitialState())},t.prototype.updateAnimation=function(){if(void 0!==this.props.selectedToUpdate){var e=this.props.selectedToUpdate.name;this.props.selectedToUpdate.name=this.state.animationName,this.raiseOnPropertyUpdated(e,this.state.animationName,"name");var t=this.props.selectedToUpdate.loopMode;this.props.selectedToUpdate.loopMode=this.state.loopMode,this.raiseOnPropertyUpdated(t,this.state.loopMode,"loopMode");var n=this.props.selectedToUpdate.targetProperty;this.props.selectedToUpdate.targetProperty=this.state.animationTargetProperty,this.raiseOnPropertyUpdated(n,this.state.animationTargetProperty,"targetProperty"),this.props.finishedUpdate()}},t.prototype.getTypeAsString=function(e){switch(e){case d.Animation.ANIMATIONTYPE_FLOAT:return"Float";case d.Animation.ANIMATIONTYPE_QUATERNION:return"Quaternion";case d.Animation.ANIMATIONTYPE_VECTOR3:return"Vector3";case d.Animation.ANIMATIONTYPE_VECTOR2:return"Vector2";case d.Animation.ANIMATIONTYPE_SIZE:return"Size";case d.Animation.ANIMATIONTYPE_COLOR3:return"Color3";case d.Animation.ANIMATIONTYPE_COLOR4:return"Color4";default:return"Float"}},t.prototype.addAnimation=function(){var e,t,n=this;if(""!=this.state.animationName&&""!=this.state.animationTargetProperty){var r=this.state.animationTargetProperty.split("."),a=this.state.animationType,o=!1;if(1===r.length)if(i=this.props.entity[r[0]])switch(i.constructor.name){case"Vector2":o=a===d.Animation.ANIMATIONTYPE_VECTOR2;break;case"Vector3":o=a===d.Animation.ANIMATIONTYPE_VECTOR3;break;case"Quaternion":o=a===d.Animation.ANIMATIONTYPE_QUATERNION;break;case"Color3":o=a===d.Animation.ANIMATIONTYPE_COLOR3;break;case"Color4":o=a===d.Animation.ANIMATIONTYPE_COLOR4;break;case"Size":o=a===d.Animation.ANIMATIONTYPE_SIZE}else this.props.setNotificationMessage("The selected entity doesn't have a "+r[0]+" property");else if(r.length>1){var i,l=this.props.entity[r[0]];if(l)"number"==typeof(i=l[r[1]])&&(o=a===d.Animation.ANIMATIONTYPE_FLOAT)}if(o){var c=void 0,p=void 0;switch(a){case d.Animation.ANIMATIONTYPE_FLOAT:c=1,p=0;break;case d.Animation.ANIMATIONTYPE_VECTOR2:c=new d.Vector2(1,1),p=d.Vector2.Zero();break;case d.Animation.ANIMATIONTYPE_VECTOR3:c=new d.Vector3(1,1,1),p=d.Vector3.Zero();break;case d.Animation.ANIMATIONTYPE_QUATERNION:c=new d.Quaternion(1,1,1,1),p=d.Quaternion.Zero();break;case d.Animation.ANIMATIONTYPE_COLOR3:c=new d.Color3(1,1,1),p=new d.Color3(0,0,0);break;case d.Animation.ANIMATIONTYPE_COLOR4:c=new d.Color4(1,1,1,1),p=new d.Color4(0,0,0,0);break;case d.Animation.ANIMATIONTYPE_SIZE:c=new d.Size(1,1),p=d.Size.Zero()}var u=null===(e=this.props.entity.animations)||void 0===e?void 0:e.find((function(e){return e.targetProperty===n.state.animationTargetProperty}),this),h=null===(t=this.props.entity.animations)||void 0===t?void 0:t.find((function(e){return e.name===n.state.animationName}),this);if(u)this.props.setNotificationMessage('The property "'+this.state.animationTargetProperty+'" already has an animation');else if(h)this.props.setNotificationMessage('There is already an animation with the name: "'+this.state.animationName+'"');else{var b=new d.Animation(this.state.animationName,this.state.animationTargetProperty,this.props.fps,a),f=[];if(f.push({frame:0,value:c,outTangent:p}),b.setKeys(f),this.props.entity.animations){var m=this.props.entity.animations,g=s(this.props.entity.animations,[b]);this.raiseOnPropertyChanged(g,m),this.props.entity.animations=g,this.props.addedNewAnimation(),this.setState({animationName:"",animationTargetPath:"",animationType:d.Animation.ANIMATIONTYPE_FLOAT,loopMode:d.Animation.ANIMATIONLOOPMODE_CYCLE,animationTargetProperty:""})}}}else this.props.setNotificationMessage('The property "'+this.state.animationTargetProperty+'" is not a "'+this.getTypeAsString(this.state.animationType)+'" type')}else this.props.setNotificationMessage("You need to provide a name and target property.")},t.prototype.raiseOnPropertyChanged=function(e,t){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.entity,property:"animations",value:e,initialValue:t})},t.prototype.raiseOnPropertyUpdated=function(e,t,n){this.props.onPropertyChangedObservable&&this.props.onPropertyChangedObservable.notifyObservers({object:this.props.selectedToUpdate,property:n,value:e,initialValue:t})},t.prototype.handleNameChange=function(e){e.preventDefault(),this.setState({animationName:e.target.value.trim()})},t.prototype.handlePathChange=function(e){e.preventDefault(),this.setState({animationTargetPath:e.target.value.trim()})},t.prototype.handleTypeChange=function(e){e.preventDefault(),this.setState({animationType:parseInt(e.target.value)})},t.prototype.handlePropertyChange=function(e){e.preventDefault(),this.setState({animationTargetProperty:e.target.value})},t.prototype.handleLoopModeChange=function(e){e.preventDefault(),this.setState({loopMode:parseInt(e.target.value)})},t.prototype.render=function(){var e,t=this;return c.createElement("div",{className:"new-animation",style:{display:this.props.isOpen?"block":"none"}},c.createElement("div",{className:"sub-content"},c.createElement("div",{className:"label-input"},c.createElement("label",null,"Display Name"),c.createElement("input",{type:"text",value:this.state.animationName,onChange:function(e){return t.handleNameChange(e)}})),this.state.isUpdating?null:c.createElement("div",{className:"label-input"},c.createElement("label",null,"Property"),c.createElement("input",{type:"text",value:this.state.animationTargetProperty,onChange:function(e){return t.handlePropertyChange(e)}})),this.state.isUpdating?null:c.createElement("div",{className:"label-input"},c.createElement("label",null,"Type"),c.createElement("select",{onChange:function(e){return t.handleTypeChange(e)},value:this.state.animationType},c.createElement("option",{value:d.Animation.ANIMATIONTYPE_COLOR3},"Color3"),c.createElement("option",{value:d.Animation.ANIMATIONTYPE_COLOR4},"Color4"),c.createElement("option",{value:d.Animation.ANIMATIONTYPE_FLOAT},"Float"),c.createElement("option",{value:d.Animation.ANIMATIONTYPE_VECTOR3},"Vector3"),c.createElement("option",{value:d.Animation.ANIMATIONTYPE_VECTOR2},"Vector2"),c.createElement("option",{value:d.Animation.ANIMATIONTYPE_QUATERNION},"Quaternion"))),c.createElement("div",{className:"label-input"},c.createElement("label",null,"Loop Mode"),c.createElement("select",{onChange:function(e){return t.handleLoopModeChange(e)},value:this.state.loopMode},c.createElement("option",{value:d.Animation.ANIMATIONLOOPMODE_CYCLE},"Cycle"),c.createElement("option",{value:d.Animation.ANIMATIONLOOPMODE_RELATIVE},"Relative"),c.createElement("option",{value:d.Animation.ANIMATIONLOOPMODE_CONSTANT},"Constant"))),c.createElement("div",{className:"confirm-buttons"},c.createElement(Ue,{label:this.state.isUpdating?"Update":"Create",onClick:this.state.isUpdating?function(){return t.updateAnimation()}:function(){return t.addAnimation()}}),0!==(null===(e=this.props.entity.animations)||void 0===e?void 0:e.length)?c.createElement(Ue,{label:"Cancel",onClick:this.props.close}):null)))},t}(c.Component);!function(e){e[e.x=0]="x",e[e.y=1]="y",e[e.z=2]="z",e[e.w=3]="w",e[e.r=0]="r",e[e.g=1]="g",e[e.b=2]="b",e[e.a=3]="a",e[e.width=0]="width",e[e.height=1]="height"}(_||(_={}));var rt,at=function(e){function t(t){var n=e.call(this,t)||this;return n.state={selectedCoordinate:0,selectedAnimation:0,animationList:n.generateList()},n}return a(t,e),t.prototype.deleteAnimation=function(){var e=this.props.selected;if(this.props.entity instanceof d.TargetedAnimation)console.log("no animation remove allowed");else{var t=this.props.entity.animations;if(t){var n=t.filter((function(t){return t!==e}));this.props.entity.animations=n,this.props.deselectAnimation(),this.setState({animationList:this.generateList()})}}},t.prototype.generateList=function(){var e,t=this.props.entity.animations&&(null===(e=this.props.entity.animations)||void 0===e?void 0:e.map((function(e,t){return{index:t,name:e.name,property:e.targetProperty,selected:!1,open:!1}})));return 0===(null==t?void 0:t.length)&&this.props.empty(),null!=t?t:null},t.prototype.toggleProperty=function(e){if(this.state.animationList){var t=this.state.animationList.map((function(t){return t.index===e&&(t.open=!t.open),t}));this.setState({animationList:t})}},t.prototype.setSelectedCoordinate=function(e,t,n){this.setState({selectedCoordinate:t,selectedAnimation:n}),this.props.selectAnimation(e,t)},t.prototype.coordinateItem=function(e,t,n,r,a){var o=this;return c.createElement("li",{key:e+"_"+n,id:e+"_"+n,className:"property",style:{color:r},onClick:function(){return o.setSelectedCoordinate(t,a,e)}},c.createElement("div",{className:"handle-indicator "+(this.state.selectedCoordinate===a&&this.state.selectedAnimation===e?"show":"hide")}),t.targetProperty," ",n.toUpperCase())},t.prototype.typeAnimationItem=function(e,t,n){var r=this;return c.createElement("li",{className:this.props.selected&&this.props.selected.name===e.name?"property sub active":"property sub",key:t},c.createElement("div",{className:"animation-arrow "+(this.state.animationList&&this.state.animationList[t].open?"":"flip"),onClick:function(){return r.toggleProperty(t)}}),c.createElement("p",{onClick:function(){return r.props.selectAnimation(e)}},e.targetProperty),c.createElement(Qe,{tooltip:"Options",icon:"small animation-options",onClick:function(){return r.props.editAnimation(e)}}),this.props.entity instanceof d.TargetedAnimation?null:this.props.selected&&this.props.selected.name===e.name?c.createElement(Qe,{tooltip:"Remove",icon:"small animation-delete",onClick:function(){return r.deleteAnimation()}}):c.createElement("div",{className:"spacer"}),c.createElement("ul",{className:"sub-list "+(this.state.animationList&&this.state.animationList[t].open?"":"hidden")},n.map((function(n){return r.coordinateItem(t,e,n.id,n.color,n.coordinate)}))))},t.prototype.setListItem=function(e,t){var n=this;switch(e.dataType){case d.Animation.ANIMATIONTYPE_FLOAT:return c.createElement("li",{className:this.props.selected&&this.props.selected.name===e.name?"property active":"property",key:t,onClick:function(){return n.props.selectAnimation(e)}},c.createElement("div",{className:"animation-bullet"}),c.createElement("p",null,e.targetProperty),c.createElement(Qe,{tooltip:"Options",icon:"small animation-options",onClick:function(){return n.props.editAnimation(e)}}),this.props.entity instanceof d.TargetedAnimation?null:this.props.selected&&this.props.selected.name===e.name?c.createElement(Qe,{tooltip:"Remove",icon:"small animation-delete",onClick:function(){return n.deleteAnimation()}}):c.createElement("div",{className:"spacer"}));case d.Animation.ANIMATIONTYPE_VECTOR2:return this.typeAnimationItem(e,t,[{id:"x",color:"#db3e3e",coordinate:_.x},{id:"y",color:"#51e22d",coordinate:_.y}]);case d.Animation.ANIMATIONTYPE_VECTOR3:return this.typeAnimationItem(e,t,[{id:"x",color:"#db3e3e",coordinate:_.x},{id:"y",color:"#51e22d",coordinate:_.y},{id:"z",color:"#00a3ff",coordinate:_.z}]);case d.Animation.ANIMATIONTYPE_QUATERNION:return this.typeAnimationItem(e,t,[{id:"x",color:"#db3e3e",coordinate:_.x},{id:"y",color:"#51e22d",coordinate:_.y},{id:"z",color:"#00a3ff",coordinate:_.z},{id:"w",color:"#7a4ece",coordinate:_.w}]);case d.Animation.ANIMATIONTYPE_COLOR3:return this.typeAnimationItem(e,t,[{id:"r",color:"#db3e3e",coordinate:_.r},{id:"g",color:"#51e22d",coordinate:_.g},{id:"b",color:"#00a3ff",coordinate:_.b}]);case d.Animation.ANIMATIONTYPE_COLOR4:return this.typeAnimationItem(e,t,[{id:"r",color:"#db3e3e",coordinate:_.r},{id:"g",color:"#51e22d",coordinate:_.g},{id:"b",color:"#00a3ff",coordinate:_.b},{id:"a",color:"#7a4ece",coordinate:_.a}]);case d.Animation.ANIMATIONTYPE_SIZE:return this.typeAnimationItem(e,t,[{id:"width",color:"#db3e3e",coordinate:_.width},{id:"height",color:"#51e22d",coordinate:_.height}]);default:return null}},t.prototype.render=function(){var e,t=this;return c.createElement("div",{className:"object-tree"},c.createElement("ul",null,this.props.isTargetedAnimation?this.setListItem(this.props.entity.animation,0):this.props.entity.animations&&(null===(e=this.props.entity.animations)||void 0===e?void 0:e.map((function(e,n){return t.setListItem(e,n)})))))},t}(c.Component),ot=function(){},it=function(e){function t(n){var r=e.call(this,n)||this;return r._id=t._IDGenerator++,r.uploadInputRef=c.createRef(),r}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 c.createElement("div",{className:"buttonLine"},c.createElement("label",{htmlFor:"file-upload"+this._id,className:"file-upload"},this.props.label),c.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}(c.Component),lt=function(e){function t(t){var n=e.call(this,t)||this;return n._serverAddress=n.props.snippetServer,n.state={snippetId:""},n}return a(t,e),t.prototype.change=function(e){this.setState({snippetId:e}),this.props.setSnippetId(e)},t.prototype.loadFromFile=function(e){var t=this;d.Tools.ReadFile(e,(function(e){var n=new TextDecoder("utf-8"),r=JSON.parse(n.decode(e)),a=[];for(var o in r)a.push(d.Animation.Parse(r[o]));if(t.props.entity){t.props.entity.animations=a;var i=new ot;i.object=t.props.entity,i.property="animations",i.value=t.props.entity.animations,t.props.globalState.onPropertyChangedObservable.notifyObservers(i),t.props.animationsLoaded(a.length)}}),void 0,!0,(function(e){console.log(e.message)}))},t.prototype.loadFromSnippet=function(){var e=this;""!==this.state.snippetId?d.Animation.CreateFromSnippetAsync(this.state.snippetId).then((function(t){var n;t instanceof Array&&(e.props.entity.animations=t),t instanceof d.Animation&&(null===(n=e.props.entity.animations)||void 0===n||n.push(t))})).catch((function(t){e.props.setNotificationMessage("Unable to load your animations: "+t)})):this.props.setNotificationMessage("You need to add an snippet id")},t.prototype.render=function(){var e,t=this;return c.createElement("div",{className:"load-container"},c.createElement(Ge,{label:"Snippet Id",lockObject:this.props.lockObject,value:this.state.snippetId,onChange:function(e){return t.change(e)}}),c.createElement(Ue,{label:"Load from snippet server",onClick:function(){return t.loadFromSnippet()}}),c.createElement("div",{className:"load-browse"},c.createElement("p",null,"Local File"),c.createElement(it,{label:"Load",onClick:function(e){return t.loadFromFile(e)},accept:".json"})),c.createElement("div",{className:"load-server"},c.createElement("p",null,"Snippet Server: ")," ",c.createElement("p",null," ",null!==(e=this._serverAddress)&&void 0!==e?e:"-")))},t}(c.Component),st=function(e){function t(t){var n,r=e.call(this,t)||this,a=null===(n=r.props.animations)||void 0===n?void 0:n.map((function(e,t){return{id:e.name+"_"+e.targetProperty,name:e.name,index:t,selected:!1}}));return r.state={selectedAnimations:null!=a?a:[]},r}return a(t,e),t.prototype.handleCheckboxChange=function(e){var t;e.preventDefault();var n=parseInt(e.target.id.replace("save_","")),r=null===(t=this.state.selectedAnimations)||void 0===t?void 0:t.map((function(e){return e.index===n&&(e.selected=!e.selected),e}));this.setState({selectedAnimations:r})},t.prototype.stringifySelectedAnimations=function(){var e=this,t=[];return this.state.selectedAnimations.forEach((function(n){if(n.selected){var r=e.props.animations&&e.props.animations[n.index];r&&t.push(r.serialize())}})),JSON.stringify(t)},t.prototype.saveToFile=function(){var e=this.stringifySelectedAnimations();d.Tools.Download(new Blob([e]),"animations.json")},t.prototype.saveToSnippet=function(){var e=this;if(""!==this.props.snippetId){var t=this.props.snippetId,n=this.props.snippetServer,r=this.stringifySelectedAnimations(),a=new XMLHttpRequest;a.onreadystatechange=function(){if(4==a.readyState)if(200==a.status){var n=JSON.parse(a.responseText),r=t;t=n.id,n.version&&"0"!=n.version&&(t+="#"+n.version),e.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(t);var o=window;o.Playground&&r&&o.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp(r,"g"),replace:t}),alert("Animations saved with ID: "+t+" (please note that the id was also saved to your clipboard)")}else alert("Unable to save your animations")},a.open("POST",n+(t?"/"+t:""),!0),a.setRequestHeader("Content-Type","application/json");var o={payload:JSON.stringify({animations:r}),name:"",description:"",tags:""};a.send(JSON.stringify(o))}},t.prototype.render=function(){var e,t,n=this;return c.createElement("div",{className:"save-container"},c.createElement("div",{className:"item-list"},c.createElement("ul",null,null===(e=this.props.animations)||void 0===e?void 0:e.map((function(e,t){return c.createElement("li",{key:t},c.createElement("div",null,c.createElement("label",null,c.createElement("input",{id:"save_"+t,name:"save_"+(null==e?void 0:e.name),type:"checkbox",checked:n.state.selectedAnimations[t].selected,onChange:function(e){return n.handleCheckboxChange(e)}}),null==e?void 0:e.name)))})))),c.createElement("div",{className:"save-buttons"},""!==this.props.snippetId?c.createElement(Ue,{label:"Save to snippet server",onClick:function(){return n.saveToSnippet()}}):null,c.createElement(Ue,{label:"Save",onClick:function(){return n.saveToFile()}})),c.createElement("div",{className:"save-server"},c.createElement("p",null,"Snippet Server: ")," ",c.createElement("p",null," ",null!==(t=this.props.snippetServer)&&void 0!==t?t:"-")))},t}(c.Component),ct=function(e){function t(t){var n,r,a=e.call(this,t)||this,o=a.props.isTargetedAnimation?1:null!==(r=null===(n=a.props.entity.animations)||void 0===n?void 0:n.length)&&void 0!==r?r:0;return a.state={isAnimationTabOpen:0===o,isEditTabOpen:0!==o,isSaveTabOpen:!1,isLoadTabOpen:!1,isLoopActive:!0,animationsCount:o,framesPerSecond:a.props.fps,snippetId:"",selected:void 0},a}return a(t,e),t.prototype.componentWillReceiveProps=function(e){e.fps!==this.props.fps&&this.setState({framesPerSecond:e.fps})},t.prototype.animationAdded=function(){this.setState({animationsCount:this.recountAnimations(),isEditTabOpen:!0,isAnimationTabOpen:!1})},t.prototype.finishedUpdate=function(){this.setState({isEditTabOpen:!0,isAnimationTabOpen:!1,selected:void 0})},t.prototype.recountAnimations=function(){var e,t;return null!==(t=null===(e=this.props.entity.animations)||void 0===e?void 0:e.length)&&void 0!==t?t:0},t.prototype.changeLoopBehavior=function(){this.setState({isLoopActive:!this.state.isLoopActive}),this.props.setIsLooping()},t.prototype.handleTabs=function(e){var t={isAnimationTabOpen:!0,isLoadTabOpen:!1,isSaveTabOpen:!1,isEditTabOpen:!1};switch(e){case 0:t={isAnimationTabOpen:!0,isLoadTabOpen:!1,isSaveTabOpen:!1,isEditTabOpen:!1};break;case 1:t={isAnimationTabOpen:!1,isLoadTabOpen:!0,isSaveTabOpen:!1,isEditTabOpen:!1};break;case 2:t={isAnimationTabOpen:!1,isLoadTabOpen:!1,isSaveTabOpen:!0,isEditTabOpen:!1};break;case 3:t={isAnimationTabOpen:!1,isLoadTabOpen:!1,isSaveTabOpen:!1,isEditTabOpen:!0}}this.setState(t)},t.prototype.handleChangeFps=function(e){this.props.setFps(e),this.setState({framesPerSecond:e}),this.props.selected&&(this.props.selected.framePerSecond=e)},t.prototype.emptiedList=function(){this.setState({animationsCount:this.recountAnimations(),isEditTabOpen:!1,isAnimationTabOpen:!0})},t.prototype.animationsLoaded=function(e){this.setState({animationsCount:e,isEditTabOpen:!0,isAnimationTabOpen:!1,isLoadTabOpen:!1,isSaveTabOpen:!1})},t.prototype.editAnimation=function(e){this.setState({selected:e,isEditTabOpen:!1,isAnimationTabOpen:!0,isLoadTabOpen:!1,isSaveTabOpen:!1})},t.prototype.render=function(){var e=this;return c.createElement("div",{className:"animation-list"},c.createElement("div",{className:"controls-header"},this.props.isTargetedAnimation?null:c.createElement(Qe,{active:this.state.isAnimationTabOpen,tooltip:"Add Animation",icon:"medium add-animation",onClick:function(){return e.handleTabs(0)}}),c.createElement(Qe,{active:this.state.isLoadTabOpen,tooltip:"Load Animation",icon:"medium load",onClick:function(){return e.handleTabs(1)}}),0===this.state.animationsCount?null:c.createElement(Qe,{active:this.state.isSaveTabOpen,tooltip:"Save Animation",icon:"medium save",onClick:function(){return e.handleTabs(2)}}),0===this.state.animationsCount?null:c.createElement(Qe,{active:this.state.isEditTabOpen,tooltip:"Edit Animations",icon:"medium animation-edit",onClick:function(){return e.handleTabs(3)}}),this.state.isEditTabOpen?c.createElement("div",{className:"input-fps"},c.createElement(Ie,{label:"",precision:0,value:this.state.framesPerSecond,onChange:function(t){return e.handleChangeFps(t)}}),c.createElement("p",null,"fps")):null,this.state.isEditTabOpen?c.createElement(Qe,{tooltip:"Loop/Unloop",icon:"medium "+(this.state.isLoopActive?"loop-active last":"loop-inactive last"),onClick:function(){return e.changeLoopBehavior()}}):null),this.props.isTargetedAnimation?null:c.createElement(nt,{isOpen:this.state.isAnimationTabOpen,close:function(){e.setState({isAnimationTabOpen:!1,isEditTabOpen:!0})},entity:this.props.entity,setNotificationMessage:function(t){e.props.setNotificationMessage(t)},addedNewAnimation:function(){return e.animationAdded()},onPropertyChangedObservable:this.props.onPropertyChangedObservable,fps:this.state.framesPerSecond,selectedToUpdate:this.state.selected,finishedUpdate:function(){return e.finishedUpdate()}}),this.state.isLoadTabOpen?c.createElement(lt,{animationsLoaded:function(t){return e.animationsLoaded(t)},lockObject:this.props.lockObject,animations:[],snippetServer:this.props.snippetServer,globalState:this.props.globalState,setSnippetId:function(t){return e.setState({snippetId:t})},entity:this.props.entity,setNotificationMessage:this.props.setNotificationMessage}):null,this.state.isSaveTabOpen?c.createElement(st,{lockObject:this.props.lockObject,animations:this.props.entity.animations,snippetServer:this.props.snippetServer,globalState:this.props.globalState,snippetId:this.state.snippetId}):null,this.state.isEditTabOpen?c.createElement(at,{deselectAnimation:function(){return e.props.deselectAnimation()},isTargetedAnimation:this.props.isTargetedAnimation,entity:this.props.entity,selected:this.props.selected,onPropertyChangedObservable:this.props.onPropertyChangedObservable,empty:function(){return e.emptiedList()},selectAnimation:this.props.selectAnimation,editAnimation:function(t){return e.editAnimation(t)}}):null)},t}(c.Component),pt=function(e){function t(t){var n=e.call(this,t)||this;return n.state={current:n.props.current},n}return a(t,e),t.prototype.renderLabel=function(e){switch(e){case rt.default:return"";case rt.degrees:return"DEG";case rt.float:return"FLT";case rt.integers:return"INT";case rt.radians:return"RAD"}},t.prototype.render=function(){var e=this;return c.createElement("div",{className:"switch-button",onClick:function(){return e.props.action&&e.props.action(e.state.current)}},c.createElement("p",null,this.renderLabel(this.state.current)))},t}(c.Component);n(272),function(e){e[e.float=0]="float",e[e.radians=1]="radians",e[e.degrees=2]="degrees",e[e.integers=3]="integers",e[e.default=4]="default"}(rt||(rt={}));var ut=function(e){function t(t){var n,r,a,o=e.call(this,t)||this;if(o._snippetUrl="https://snippet.babylonjs.com",o._heightScale=100,o._scaleFactor=2,o._currentScale=10,o._canvasLength=20,o._svgKeyframes=[],o._isPlaying=!1,o._entityName=o.props.entity.id,o._graphCanvas=c.createRef(),o._svgCanvas=c.createRef(),o._pixelFrameUnit=10,o.props.entity instanceof d.TargetedAnimation)o._isTargetedAnimation=!0,a=void 0!==(n=o.props.entity.animation)&&o.analizeAnimationForLerp(n),r=void 0!==n?o.getPathData(n):void 0;else{o._isTargetedAnimation=!1;var i=(void 0!==o.props.entity.animations||null!==o.props.entity.animations)&&o.props.entity.animations;a=void 0!==(n=!1!==i?i&&i[0]:null)&&o.analizeAnimationForLerp(o.props.entity.animations&&n),r=null==(r=n&&o.getPathData(n))?void 0:r}o._canvasLength=240,o.stopAnimation();var l=[2,1.8,1.6,1.4,1.2,1,.8,.6,.4,.2,0];return o.state={selected:n,isOpen:!0,svgKeyframes:o._svgKeyframes,currentFrame:0,currentValue:1,isFlatTangentMode:!1,isTangentMode:!1,isBrokenMode:!1,lerpMode:a,playheadOffset:o._graphCanvas.current?o._graphCanvas.current.children[0].clientWidth/(10*o._canvasLength):0,frameAxisLength:o.setFrameAxis(o._canvasLength),valueAxisLength:new Array(10).fill(0).map((function(e,t){return{value:10*t,label:l[t]}})),notification:"",currentPoint:void 0,scale:1,playheadPos:0,isPlaying:!1,selectedPathData:r,selectedCoordinate:0,animationLimit:o._canvasLength/2,fps:60,isLooping:!0,panningY:0,panningX:0,repositionCanvas:!1,actionableKeyframe:{frame:void 0,value:void 0},valueScale:rt.default},o}return a(t,e),t.prototype.componentDidMount=function(){this.state.selected&&this.selectAnimation(this.state.selected)},t.prototype.clearNotification=function(){this.setState({notification:""})},t.prototype.zoom=function(e){e.nativeEvent.stopImmediatePropagation();var t=1;-1===Math.sign(e.deltaY)&&(t=this.state.scale),this.setState({scale:t})},t.prototype.setFrameAxis=function(e){return s(new Array(e/2).fill(0).map((function(e,t){return{value:10*-t,label:-t}})),new Array(e/2).fill(0).map((function(e,t){return{value:10*t,label:t}})))},t.prototype.setValueLines=function(e){var t=this;switch(e){case rt.default:this._heightScale=100,this._scaleFactor=2;break;case rt.float:this._scaleFactor=2.5,this._heightScale=120;break;case rt.degrees:this._scaleFactor=50,this._heightScale=200;break;case rt.integers:this._scaleFactor=320;break;case rt.radians:this._scaleFactor=.8}var n=this._heightScale/10,r=new Array(this._currentScale).fill(0).map((function(e,r){return{value:r*n,label:(t._scaleFactor*((t._currentScale-r)/t._currentScale)).toFixed(2)}}));r.shift();var a=Math.abs(Math.round(this.state.panningY/this._currentScale)),o=Math.sign(this.state.panningY);return s(r,new Array(a).fill(0).map((function(e,r){return-1===o?{value:-r*n,label:(r+t._currentScale)/(t._currentScale/t._scaleFactor)}:{value:(r+n)*t._currentScale,label:-1*r/(t._currentScale/t._scaleFactor)}})))},t.prototype.getValueLabel=function(e){return 0===e&&2,50===e?1:.01*(100-2*e)+1},t.prototype.resetPlayheadOffset=function(){this._graphCanvas&&this._graphCanvas.current&&this.setState({playheadOffset:this._graphCanvas.current.children[0].clientWidth/(10*this._canvasLength*this.state.scale)})},t.prototype.encodeCurveId=function(e,t){return e+"_"+t},t.prototype.decodeCurveId=function(e){return{order:parseInt(e.split("_")[3]),coordinate:parseInt(e.split("_")[2])}},t.prototype.getKeyframeValueFromAnimation=function(e){var t=this.state.selected,n=this.decodeCurveId(e),r=n.order,a=n.coordinate,o=s(t.getKeys()).find((function(e,t){return t===r}));if(o){var i=this.getValueAsArray(t.dataType,o.value);return{frame:null==o?void 0:o.frame,value:i[a]}}},t.prototype.selectKeyframe=function(e,t){var n,r,a,o=this.getKeyframeValueFromAnimation(e),i=null===(r=null===(n=this.state.svgKeyframes)||void 0===n?void 0:n.find((function(t){return t.id===e})))||void 0===r?void 0:r.selected;t||this.deselectKeyframes();var l=null===(a=this.state.svgKeyframes)||void 0===a?void 0:a.map((function(t){return t.id===e&&(t.selected=!i),t}));this.setState({svgKeyframes:l,actionableKeyframe:null!=o?o:this.state.actionableKeyframe})},t.prototype.resetActionableKeyframe=function(){this.setState({actionableKeyframe:{frame:void 0,value:void 0}})},t.prototype.selectedControlPoint=function(e,t){var n,r=this,a=null===(n=this.state.svgKeyframes)||void 0===n?void 0:n.map((function(n){return n.id===t&&(r.setState({isFlatTangentMode:!1}),"left"===e&&(n.isLeftActive=!n.isLeftActive,n.isRightActive=!1),"right"===e&&(n.isRightActive=!n.isRightActive,n.isLeftActive=!1)),n}));this.setState({svgKeyframes:a})},t.prototype.deselectKeyframes=function(){var e,t=null===(e=this.state.svgKeyframes)||void 0===e?void 0:e.map((function(e){return e.isLeftActive=!1,e.isRightActive=!1,e.selected=!1,e}));this.setState({svgKeyframes:t,actionableKeyframe:{frame:void 0,value:void 0}})},t.prototype.updateValuePerCoordinate=function(e,t,n,r){if(e===d.Animation.ANIMATIONTYPE_FLOAT&&(t=n),e===d.Animation.ANIMATIONTYPE_VECTOR2)switch(r){case _.x:t.x=n;break;case _.y:t.y=n}if(e===d.Animation.ANIMATIONTYPE_VECTOR3)switch(r){case _.x:t.x=n;break;case _.y:t.y=n;break;case _.z:t.z=n}if(e===d.Animation.ANIMATIONTYPE_QUATERNION)switch(r){case _.x:t.x=n;break;case _.y:t.y=n;break;case _.z:t.z=n;break;case _.w:t.w=n}if(e===d.Animation.ANIMATIONTYPE_COLOR3)switch(r){case _.r:t.r=n;break;case _.g:t.g=n;break;case _.b:t.b=n}if(e===d.Animation.ANIMATIONTYPE_COLOR4)switch(r){case _.r:t.r=n;break;case _.g:t.g=n;break;case _.b:t.b=n;break;case _.a:t.a=n}if(e===d.Animation.ANIMATIONTYPE_SIZE)switch(r){case _.width:t.width=n;break;case _.g:t.height=n}return t},t.prototype.renderPoints=function(e,t){var n=this.state.selected,r=this.decodeCurveId(t),a=r.order,o=r.coordinate,i=s(n.getKeys()),l=0;if(0!==e.keyframePoint.x&&(l=e.keyframePoint.x>0&&e.keyframePoint.x<1?1:Math.round(e.keyframePoint.x/this._pixelFrameUnit)),l>i[a].frame){var c=i[a+1];c&&(c.frame<=l?i[a].frame=i[a].frame:i[a].frame=l)}if(l=l?i[a].frame=i[a].frame:i[a].frame=l)}var u=(this._heightScale-e.keyframePoint.y)/this._heightScale*this._scaleFactor,d=this.updateValuePerCoordinate(n.dataType,i[a].value,u,o);i[a].value=d,this.updateLeftControlPoint(e,i[a],n.dataType,o),this.updateRightControlPoint(e,i[a],n.dataType,o),n.setKeys(i),this.setState({actionableKeyframe:{frame:l,value:d}}),this.selectAnimation(n,o)},t.prototype.updateLeftControlPoint=function(e,t,n,r){if(e.isLeftActive&&null!==e.leftControlPoint){var a=(this._heightScale-e.leftControlPoint.y)/this._heightScale*2,o=(this._heightScale-e.keyframePoint.y)/this._heightScale*2-a;t.inTangent=this.updateValuePerCoordinate(n,t.inTangent,o,r),this.state.isBrokenMode||null!==e.rightControlPoint&&(t.outTangent=-1*t.inTangent)}},t.prototype.updateRightControlPoint=function(e,t,n,r){if(e.isRightActive&&null!==e.rightControlPoint){var a=(this._heightScale-e.rightControlPoint.y)/this._heightScale*2,o=(this._heightScale-e.keyframePoint.y)/this._heightScale*2-a;t.outTangent=this.updateValuePerCoordinate(n,t.outTangent,o,r),this.state.isBrokenMode||null!==e.leftControlPoint&&(t.inTangent=-1*t.outTangent)}},t.prototype.handleFrameChange=function(e){var t;e.preventDefault(),t=""===e.target.value?"":parseInt(e.target.value),this.setState({actionableKeyframe:{frame:t,value:this.state.actionableKeyframe.value}})},t.prototype.handleValueChange=function(e){var t;e.preventDefault(),void 0!==e.target.value&&(t=""!==e.target.value?parseFloat(e.target.value):"",this.setState({actionableKeyframe:{frame:this.state.actionableKeyframe.frame,value:t}}))},t.prototype.setKeyframeValue=function(){var e,t=this;if(""!==this.state.actionableKeyframe.frame&&void 0!==this.state.actionableKeyframe.frame&&""!==this.state.actionableKeyframe.value&&void 0!==this.state.actionableKeyframe.value&&null!==this.state.selected){var n=null===(e=this.state.svgKeyframes)||void 0===e?void 0:e.find((function(e){return e.selected}));if(n){var r=this.decodeCurveId(n.id),a=r.order,o=r.coordinate,i=this.state.selected,l=i.getKeys();if(l.find((function(e,t){return t===a}))){var s=l.map((function(e,n){if(n===a){e.frame=t.state.actionableKeyframe.frame;var r=t.getValueAsArray(i.dataType,e.value);r[o]=t.state.actionableKeyframe.value,e.value=1===r.length?r[0]:r}return e}));this.state.selected.setKeys(s),this.selectAnimation(i)}}}},t.prototype.setFlatTangent=function(){var e=this;if(null!==this.state.selected){var t=this.state.selected;this.setState({isFlatTangentMode:!0},(function(){return e.selectAnimation(t)}))}},t.prototype.setTangentMode=function(){var e=this;if(null!==this.state.selected){var t=this.state.selected;this.setState({isTangentMode:!this.state.isTangentMode},(function(){return e.selectAnimation(t)}))}},t.prototype.setBrokenMode=function(){var e=this;if(null!==this.state.selected){var t=this.state.selected;this.setState({isBrokenMode:!this.state.isBrokenMode},(function(){return e.selectAnimation(t)}))}},t.prototype.setLerpMode=function(){var e=this;if(null!==this.state.selected){var t=this.state.selected;this.setState({lerpMode:!this.state.lerpMode},(function(){return e.selectAnimation(t)}))}},t.prototype.addKeyframeClick=function(){var e;if(null!==this.state.selected){var t=this.state.selected,n=t.getKeys(),r=this.state.currentFrame,a=null!==(e=this.state.actionableKeyframe.value)&&void 0!==e?e:1,o=[],i=this.returnZero(t.dataType),l=n.find((function(e){return e.frame===r}));void 0!==l?o=this.getValueAsArray(t.dataType,l.value):i&&(o=this.getValueAsArray(t.dataType,i)),o[this.state.selectedCoordinate]=a;var s=this.setValueAsType(t.dataType,o);n.push({frame:r,value:s,inTangent:i,outTangent:i}),n.sort((function(e,t){return e.frame-t.frame})),t.setKeys(n),this.selectAnimation(t,this.state.selectedCoordinate)}},t.prototype.removeKeyframeClick=function(){if(null!==this.state.selected){var e=this.state.selected;if(e.dataType===d.Animation.ANIMATIONTYPE_FLOAT){var t=e.getKeys(),n=this.state.currentFrame,r=t.filter((function(e){return e.frame!==n}));e.setKeys(r),this.selectAnimation(e)}}},t.prototype.removeKeyframes=function(e){if(null!==this.state.selected){var t=this.state.selected,n=e.map((function(e){return{index:parseInt(e.id.split("_")[3]),coordinate:parseInt(e.id.split("_")[2])}}));if(t.dataType===d.Animation.ANIMATIONTYPE_FLOAT){var r=t.getKeys().filter((function(e,t){return!n.find((function(e){return e.index===t}))}));t.setKeys(r),this.deselectKeyframes(),this.selectAnimation(t)}}},t.prototype.addKeyFrame=function(e){var t;if(e.preventDefault(),null!==this.state.selected){var n=e.target,r=n.createSVGPoint();r.x=e.clientX,r.y=e.clientY;var a,o=null===(t=n.getScreenCTM())||void 0===t?void 0:t.inverse(),i=r.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.setKeyframePointLinear=function(e,t){var n={keyframePoint:e,rightControlPoint:null,leftControlPoint:null,id:t.toString(),selected:!1,isLeftActive:!1,isRightActive:!1};this._svgKeyframes.push(n)},t.prototype.flatTangents=function(e,t){var n,r=this;return n=this.state&&this.state.isFlatTangentMode?e.map((function(e){return void 0!==e.inTangent&&(e.inTangent=r.returnZero(t)),void 0!==e.outTangent&&(e.outTangent=r.returnZero(t)),e})):e,this.setState({isFlatTangentMode:!1}),n},t.prototype.returnZero=function(e){switch(e){case d.Animation.ANIMATIONTYPE_FLOAT:return 0;case d.Animation.ANIMATIONTYPE_VECTOR3:return d.Vector3.Zero();case d.Animation.ANIMATIONTYPE_VECTOR2:return d.Vector2.Zero();case d.Animation.ANIMATIONTYPE_QUATERNION:return d.Quaternion.Zero();case d.Animation.ANIMATIONTYPE_COLOR3:return new d.Color3(0,0,0);case d.Animation.ANIMATIONTYPE_COLOR4:return new d.Color4(0,0,0,0);case d.Animation.ANIMATIONTYPE_SIZE:return new d.Size(0,0);default:return 0}},t.prototype.getValueAsArray=function(e,t){switch(e){case d.Animation.ANIMATIONTYPE_FLOAT:return[t];case d.Animation.ANIMATIONTYPE_VECTOR3:case d.Animation.ANIMATIONTYPE_VECTOR2:case d.Animation.ANIMATIONTYPE_QUATERNION:case d.Animation.ANIMATIONTYPE_COLOR3:case d.Animation.ANIMATIONTYPE_COLOR4:return t.asArray();case d.Animation.ANIMATIONTYPE_SIZE:return[t.width,t.height];default:return[]}},t.prototype.setValueAsType=function(e,t){switch(e){case d.Animation.ANIMATIONTYPE_FLOAT:return t[0];case d.Animation.ANIMATIONTYPE_VECTOR3:return new d.Vector3(t[0],t[1],t[2]);case d.Animation.ANIMATIONTYPE_VECTOR2:return new d.Vector2(t[0],t[1]);case d.Animation.ANIMATIONTYPE_QUATERNION:return new d.Quaternion(t[0],t[1],t[2],t[3]);case d.Animation.ANIMATIONTYPE_COLOR3:return new d.Color3(t[0],t[1],t[2]);case d.Animation.ANIMATIONTYPE_COLOR4:return new d.Color4(t[0],t[1],t[2],t[3]);case d.Animation.ANIMATIONTYPE_SIZE:return new d.Size(t[0],t[1]);default:return t[0]}},t.prototype.getPathData=function(e){var t=this;if(null!==e){var n=e.getKeys();if(void 0!==n){for(var r=this.getAnimationData(e),a=r.easingMode,o=r.easingType,i=r.usesTangents,l=r.valueType,s=r.highestFrame,p=r.name,u=r.targetProperty,h=(n=this.flatTangents(n,l))[0],b=this._heightScale/this._scaleFactor,f=[],m=["red","green","blue","white","#7a4ece"],g=this.getValueAsArray(l,h.value),v=0;vc.y?b=(p.y-c.y)*u+c.y:p.yc.y?f=(p.y-c.y)*h+c.y:p.y=1||a<=0||a>=1||n>=a)&&0!=(p=(i=3*(1-n)*(1-n)*n)*(c=3*(1-a)*a*a)-(l=3*(1-n)*n*n)*(s=3*(1-a)*(1-a)*a)))return u.x=t.x-((1-n)*(1-n)*(1-n)*e.x+n*n*n*o.x),u.y=t.y-((1-n)*(1-n)*(1-n)*e.y+n*n*n*o.y),h.x=r.x-((1-a)*(1-a)*(1-a)*e.x+a*a*a*o.x),h.y=r.y-((1-a)*(1-a)*(1-a)*e.y+a*a*a*o.y),f.x=(c*u.x-l*h.x)/p,f.y=(c*u.y-l*h.y)/p,m.x=(-s*u.x+i*h.x)/p,m.y=(-s*u.y+i*h.y)/p,[b,f,m,g]},t.prototype.deselectAnimation=function(){this.setState({selected:null,svgKeyframes:[],selectedPathData:[],selectedCoordinate:0})},t.prototype.selectAnimation=function(e,t){var n,r,a;this._svgKeyframes=[];var o=0;if(void 0===t)this.stopAnimation(),r=this.getPathData(e);else{var i=this.getPathData(e);r=[],a=null===(n=this._svgKeyframes)||void 0===n?void 0:n.filter((function(e){return parseInt(e.id.split("_")[2])===t})),null==i||i.map((function(e){parseInt(e.id.split("_")[2])===t&&r.push(e)})),o=t}this.setState({selected:e,svgKeyframes:void 0!==t?a:this._svgKeyframes,selectedPathData:r,selectedCoordinate:o,fps:e.framePerSecond})},t.prototype.isAnimationPlaying=function(){var e=this.props.entity;return this.props.entity instanceof d.TargetedAnimation&&(e=this.props.entity.target),this.props.scene.getAllAnimatablesByTarget(e).length>0},t.prototype.stopAnimation=function(){var e=this.props.entity;this.props.entity instanceof d.TargetedAnimation&&(e=this.props.entity.target),this._isPlaying=this.props.scene.getAllAnimatablesByTarget(e).length>0,this._isPlaying&&this.props.playOrPause&&this.props.playOrPause()},t.prototype.setIsLooping=function(){var e=this;this.setState({isLooping:!this.state.isLooping,isPlaying:!1},(function(){return e.stopAnimation()}))},t.prototype.setFramesPerSecond=function(e){var t=this;this.setState({fps:e,isPlaying:!1},(function(){return t.stopAnimation()}))},t.prototype.analizeAnimationForLerp=function(e){if(null!==e){var t=this.getAnimationData(e),n=t.easingMode,r=t.easingType,a=t.usesTangents;return void 0===r&&void 0===n&&!a}return!1},t.prototype.changeCurrentFrame=function(e){var t;if(this.stopAnimation(),this.state.selectedPathData){var n=this.state.selectedPathData[this.state.selectedCoordinate].domCurve.current;if(n){var r=e*n.getTotalLength()/100,a=n.getPointAtLength(r),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,isPlaying:!1})}}},t.prototype.setCanvasPosition=function(e){this.setState({panningX:10*(e-10),repositionCanvas:!0})},t.prototype.setCurrentFrame=function(e){this.setState({currentFrame:this.state.currentFrame+e})},t.prototype.changeAnimationLimit=function(e){this.setState({animationLimit:e})},t.prototype.updateFrameInKeyFrame=function(e,t){if(this.state&&this.state.selected){var n=this.state.selected,r=s(n.getKeys());r[t].frame=e,n.setKeys(r),this.selectAnimation(n)}},t.prototype.playPause=function(e){if(this.registerObs(),this.state.selected){var t=this.props.entity;if(this.props.entity instanceof d.TargetedAnimation&&(t=this.props.entity.target),this.state.isPlaying&&0===e)this.props.scene.stopAnimation(t),this.setState({isPlaying:!1}),this._isPlaying=!1,this.forceUpdate();else{this.state.isPlaying&&this.props.scene.stopAnimation(t);var n=this.state.selected.getKeys()[0].frame,r=this.state.selected.getHighestFrame();1===e&&(this._mainAnimatable=this.props.scene.beginAnimation(t,n,r,this.state.isLooping)),-1===e&&(this._mainAnimatable=this.props.scene.beginAnimation(t,r,n,this.state.isLooping)),this._isPlaying=!0,this.setState({isPlaying:!0}),this.forceUpdate()}}},t.prototype.moveFrameTo=function(e){this.stopAnimation();var t,n=e.currentTarget.getScreenCTM();if(n){t=new d.Vector2((e.clientX-n.e)/n.a,(e.clientY-n.f)/n.d);var r=Math.round(t.x/this._pixelFrameUnit);this.setState({currentFrame:r,isPlaying:!1})}},t.prototype.registerObs=function(){var e=this;this._onBeforeRenderObserver=this.props.scene.onBeforeRenderObservable.add((function(){e._isPlaying&&e._mainAnimatable&&e.setState({currentFrame:Math.round(e._mainAnimatable.masterFrame)})}))},t.prototype.componentWillUnmount=function(){this._onBeforeRenderObserver&&(this.props.scene.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=null)},t.prototype.isCurrentFrame=function(e){return this.state.currentFrame===e},t.prototype.render=function(){var e,t=this;return c.createElement("div",{id:"animation-curve-editor"},c.createElement(et,{message:this.state.notification,open:""!==this.state.notification,close:function(){return t.clearNotification()}}),c.createElement(tt,{setKeyframeValue:function(){return t.setKeyframeValue()},enabled:null!==this.state.selected&&void 0!==this.state.selected,title:this._entityName,close:this.props.close,actionableKeyframe:this.state.actionableKeyframe,handleFrameChange:function(e){return t.handleFrameChange(e)},handleValueChange:function(e){return t.handleValueChange(e)},addKeyframe:function(){return t.addKeyframeClick()},removeKeyframe:function(){return t.removeKeyframeClick()},brokenMode:this.state.isBrokenMode,brokeTangents:function(){return t.setBrokenMode()},lerpMode:this.state.lerpMode,setLerpMode:function(){return t.setLerpMode()},flatTangent:function(){return t.setFlatTangent()}}),c.createElement("div",{className:"content"},c.createElement("div",{className:"row"},c.createElement(ct,{deselectAnimation:function(){return t.deselectAnimation()},selectAnimation:function(e,n){return t.selectAnimation(e,n)},isTargetedAnimation:this._isTargetedAnimation,entity:this.props.entity,selected:this.state.selected,lockObject:this.props.lockObject,setNotificationMessage:function(e){t.setState({notification:e})},globalState:this.props.globalState,snippetServer:this._snippetUrl,fps:this.state.fps,setFps:function(e){return t.setFramesPerSecond(e)},setIsLooping:function(){return t.setIsLooping()}}),c.createElement("div",{ref:this._graphCanvas,className:"graph-chart",onWheel:function(e){return t.zoom(e)}},this.state.svgKeyframes&&c.createElement(qe,{ref:this._svgCanvas,selectKeyframe:function(e,n){return t.selectKeyframe(e,n)},viewBoxScale:this.state.frameAxisLength.length,scale:this.state.scale,keyframeSvgPoints:this.state.svgKeyframes,removeSelectedKeyframes:function(e){return t.removeKeyframes(e)},selectedControlPoint:function(e,n){return t.selectedControlPoint(e,n)},deselectKeyframes:function(){return t.deselectKeyframes()},updatePosition:function(e,n){return t.renderPoints(e,n)},panningY:function(e){t.setState({panningY:e})},panningX:function(e){t.setState({panningX:e})},setCurrentFrame:function(e){return t.setCurrentFrame(e)},positionCanvas:this.state.panningX,repositionCanvas:this.state.repositionCanvas,canvasPositionEnded:function(){return t.setState({repositionCanvas:!1})},resetActionableKeyframe:function(){return t.resetActionableKeyframe()}},null===(e=this.state.selectedPathData)||void 0===e?void 0:e.map((function(e,t){return c.createElement("path",{key:t,ref:e.domCurve,pathLength:e.pathLength,id:"curve",d:e.pathData,style:{stroke:e.color,fill:"none",strokeWidth:"0.5"}})})),this.setValueLines(this.state.valueScale).map((function(e,n){return c.createElement("text",{key:"value_inline_"+n,x:t.state.panningX-5,y:e.value,dx:"2",textAnchor:"middle",dy:"-1",style:{fontSize:.18*t.state.scale+"em",fontWeight:"bold",textAlign:"center"}},e.label)})),this.setValueLines(this.state.valueScale).map((function(e,n){return c.createElement("line",{key:n,x1:-10*t.state.frameAxisLength.length/2,y1:e.value,x2:10*t.state.frameAxisLength.length,y2:e.value})})),c.createElement("rect",{onClick:function(e){return t.moveFrameTo(e)},x:-10*this.state.frameAxisLength.length/2,y:91+this.state.panningY+"%",width:10*this.state.frameAxisLength.length,height:"9%",fill:"#222",style:{cursor:"pointer"}}),this.state.frameAxisLength.map((function(e,n){return c.createElement("svg",{key:n,x:"0",y:96+t.state.panningY+"%",className:"frame-contain"},c.createElement("text",{x:e.value,y:"0",dx:"2px",style:{fontSize:.17*t.state.scale+"em"}},e.label),c.createElement("line",{x1:e.value,y1:"0",x2:e.value,y2:"5%"}),e.value%t.state.fps==0&&0!==e.value?c.createElement("line",{x1:e.value,y1:"-100%",x2:e.value,y2:"5%"}):null,t.isCurrentFrame(e.label)?c.createElement("svg",null,c.createElement("line",{x1:e.value,y1:"0",x2:e.value,y2:"-100%",style:{stroke:"white",strokeWidth:.4}}),c.createElement("svg",{x:e.value,y:"-1"},c.createElement("circle",{className:"svg-playhead",cx:"0",cy:"0",r:"2%",fill:"white"}),c.createElement("text",{x:"0",y:"1%",textAnchor:"middle",style:{fontSize:.17*t.state.scale+"em",pointerEvents:"none",fontWeight:600}},e.label))):null)}))),c.createElement(pt,{current:this.state.valueScale}))),c.createElement("div",{className:"row-bottom"},c.createElement(Je,{currentFrame:this.state.currentFrame,playPause:function(e){return t.playPause(e)},isPlaying:this.state.isPlaying,dragKeyframe:function(e,n){return t.updateFrameInKeyFrame(e,n)},onCurrentFrameChange:function(e){return t.changeCurrentFrame(e)},onAnimationLimitChange:function(e){return t.changeAnimationLimit(e)},animationLimit:this.state.animationLimit,keyframes:this.state.selected&&this.state.selected.getKeys(),selected:this.state.selected&&this.state.selected.getKeys()[0],fps:this.state.fps,repositionCanvas:function(e){return t.setCanvasPosition(e)}}))))},t}(c.Component),dt=function(e){function t(t){var n=e.call(this,t)||this;return n._container=document.createElement("div"),n._container.id=n.props.id,n._window,n.state={isComponentMounted:!1,blockedByBrowser:!1},n}return a(t,e),t.prototype.componentDidMount=function(){this.openPopup(),this.setState({isComponentMounted:!0})},t.prototype.openPopup=function(){var e=this,t=this.props,n=t.title,r=t.size,a=t.onClose,o=t.onOpen,i="window_"+n;this._container=qa._CreatePopup(n,i,r.width,r.height,!0),this._container&&(this._curveEditorHost=this._container.ownerDocument.createElement("div"),this._curveEditorHost.id="curve-editor-host",this._curveEditorHost.style.width="auto",this._container.appendChild(this._curveEditorHost)),this._window=qa[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&&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?u.createPortal(this.props.children,this._curveEditorHost):null},t}(c.Component),ht=function(e){function t(t){var n,r=e.call(this,t)||this;r._animations=null,r._isPlaying=!1,r._isCurveEditorOpen=!1,r._animationControl={from:0,to:0,loop:!1},r.state={currentFrame:0};var a=r.props.animatable;if(r._ranges=a.getAnimationRanges?a.getAnimationRanges():[],a.getAnimatables){var o=a.getAnimatables();r._animations=new Array,o.forEach((function(e){var t;e.animations&&(t=r._animations).push.apply(t,e.animations)})),a.animations&&(n=r._animations).push.apply(n,a.animations),r._animations&&r._animations.length&&r._animations.forEach((function(e){var t=e.getKeys();if(t&&t.length>0){t[0].framer._animationControl.to&&(r._animationControl.to=t[n].frame)}}))}return r.timelineRef=c.createRef(),r}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&&e.close()},t.prototype.render=function(){var e=this,t=this.props.animatable,n=this.props.animatable,r=this.props.scene.getAllAnimatablesByTarget(t);this._isPlaying=r.length>0,this._isPlaying&&!this._mainAnimatable&&(this._mainAnimatable=r[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 c.createElement("div",null,this._ranges.length>0&&c.createElement(xe,{globalState:this.props.globalState,title:"ANIMATION RANGES"},this._ranges.map((function(n,r){return c.createElement(Ue,{key:n.name+r,label:n.name,onClick:function(){e._mainAnimatable=null,e.props.scene.beginAnimation(t,n.from,n.to,!0)}})}))),a&&c.createElement(c.Fragment,null,c.createElement(xe,{globalState:this.props.globalState,title:"ANIMATIONS"},c.createElement(Ee,{label:"Count",value:a.length.toString()}),c.createElement(Ue,{label:"Edit",onClick:function(){return e.onOpenAnimationCurveEditor()}}),a.map((function(e,t){return c.createElement(Ee,{key:e.targetProperty+t,label:"#"+t+" >",value:e.targetProperty})})),this._isCurveEditorOpen&&c.createElement(dt,{id:"curve-editor",title:"Curve Animation Editor",size:{width:1024,height:490},onOpen:function(e){},onClose:function(t){return e.onCloseAnimationCurveEditor(t)}},c.createElement(ut,{scene:this.props.scene,entity:n,close:function(t){return e.onCloseAnimationCurveEditor(t.view)},lockObject:this.props.lockObject,playOrPause:function(){return e.playOrPause()},globalState:this.props.globalState}))),a.length>0&&c.createElement(xe,{globalState:this.props.globalState,title:"ANIMATION GENERAL CONTROL"},c.createElement(We,{lockObject:this.props.lockObject,isInteger:!0,label:"From",target:this._animationControl,propertyName:"from",onChange:function(){return e.onChangeFromOrTo()}}),c.createElement(We,{lockObject:this.props.lockObject,isInteger:!0,label:"To",target:this._animationControl,propertyName:"to",onChange:function(){return e.onChangeFromOrTo()}}),c.createElement(Pe,{label:"Loop",onSelect:function(t){return e._animationControl.loop=t},isSelected:function(){return e._animationControl.loop}}),this._isPlaying&&c.createElement(Me,{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)}}),c.createElement(Ue,{label:this._isPlaying?"Stop":"Play",onClick:function(){return e.playOrPause()}}),(this._ranges.length>0||this._animations&&this._animations.length>0)&&c.createElement(c.Fragment,null,c.createElement(Pe,{label:"Enable override",onSelect:function(t){t?(n.animationPropertiesOverride=new d.AnimationPropertiesOverride,n.animationPropertiesOverride.blendingSpeed=.05):n.animationPropertiesOverride=null,e.forceUpdate()},isSelected:function(){return null!=n.animationPropertiesOverride},onValueChanged:function(){return e.forceUpdate()}}),null!=n.animationPropertiesOverride&&c.createElement("div",null,c.createElement(Pe,{label:"Enable blending",target:n.animationPropertiesOverride,propertyName:"enableBlending",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Blending speed",target:n.animationPropertiesOverride,propertyName:"blendingSpeed",minimum:0,maximum:.1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))))))},t}(c.Component),bt=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){var e,t=this,n=this.props.material;n.depthFunction=null!==(e=n.depthFunction)&&void 0!==e?e:0;var r=[{label:"Clockwise",value:d.Material.ClockWiseSideOrientation},{label:"Counterclockwise",value:d.Material.CounterClockWiseSideOrientation}],a=[{label:"",value:Re},{label:"Opaque",value:d.PBRMaterial.PBRMATERIAL_OPAQUE},{label:"Alpha test",value:d.PBRMaterial.PBRMATERIAL_ALPHATEST},{label:"Alpha blend",value:d.PBRMaterial.PBRMATERIAL_ALPHABLEND},{label:"Alpha blend and test",value:d.PBRMaterial.PBRMATERIAL_ALPHATESTANDBLEND}],o=[{label:"Combine",value:d.Constants.ALPHA_COMBINE},{label:"One one",value:d.Constants.ALPHA_ONEONE},{label:"Add",value:d.Constants.ALPHA_ADD},{label:"Subtract",value:d.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:d.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:d.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:d.Constants.ALPHA_PREMULTIPLIED}],i=[{label:"",value:0},{label:"Never",value:d.Engine.NEVER},{label:"Always",value:d.Engine.ALWAYS},{label:"Equal",value:d.Engine.EQUAL},{label:"Less",value:d.Engine.LESS},{label:"Less or equal",value:d.Engine.LEQUAL},{label:"Greater",value:d.Engine.GREATER},{label:"Greater or equal",value:d.Engine.GEQUAL},{label:"Not equal",value:d.Engine.NOTEQUAL}];return c.createElement("div",null,c.createElement(Ve,{globalState:this.props.globalState,target:n,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"ID",value:n.id}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:n,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ee,{label:"Unique ID",value:n.uniqueId.toString()}),c.createElement(Ee,{label:"Class",value:n.getClassName()}),c.createElement(Pe,{label:"Backface culling",target:n,propertyName:"backFaceCulling",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Orientation",options:r,target:n,propertyName:"sideOrientation",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({mode:e})}}),c.createElement(Pe,{label:"Disable lighting",target:n,propertyName:"disableLighting",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Disable color write",target:n,propertyName:"disableColorWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Disable depth write",target:n,propertyName:"disableDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Depth function",options:i,target:n,propertyName:"depthFunction",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({depthFunction:e})}}),c.createElement(Pe,{label:"Need depth pre-pass",target:n,propertyName:"needDepthPrePass",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Wireframe",target:n,propertyName:"wireframe",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Point cloud",target:n,propertyName:"pointsCloud",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Point size",target:n,propertyName:"pointSize",minimum:0,maximum:100,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Z-offset",target:n,propertyName:"zOffset",minimum:-10,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ue,{label:"Dispose",onClick:function(){n.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),c.createElement(xe,{globalState:this.props.globalState,title:"TRANSPARENCY"},c.createElement(Me,{label:"Alpha",target:n,propertyName:"alpha",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==n.transparencyMode&&c.createElement(Le,{allowNullValue:!0,label:"Transparency mode",options:a,target:n,propertyName:"transparencyMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({transparencyMode:e})}}),c.createElement(Le,{label:"Alpha mode",options:o,target:n,propertyName:"alphaMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.setState({alphaMode:e})}}),n.diffuseTexture&&c.createElement(Pe,{label:"Diffuse texture has alpha",target:n.diffuseTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==n.useAlphaFromDiffuseTexture&&c.createElement(Pe,{label:"Use alpha from diffuse texture",target:n,propertyName:"useAlphaFromDiffuseTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),n.albedoTexture&&c.createElement(Pe,{label:"Albedo texture has alpha",target:n.albedoTexture,propertyName:"hasAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),void 0!==n.useAlphaFromAlbedoTexture&&c.createElement(Pe,{label:"Use alpha from albedo texture",target:n,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Separate culling pass",target:n,propertyName:"separateCullingPass",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(ht,{globalState:this.props.globalState,animatable:n,scene:n.getScene(),lockObject:this.props.lockObject}))},t}(c.Component),ft=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 c.createElement("div",{className:"pane"},c.createElement(bt,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),mt=function(e){function t(t){var n=e.call(this,t)||this,r=n.props.material,a=n.props.texture;return n.state={isDebugSelected:r&&r.reservedDataStore&&r.reservedDataStore.debugTexture===a},n}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,n=this.props.material;if(n&&t){var r=n.getScene();if(n.reservedDataStore&&n.reservedDataStore.debugTexture===t){var a=n.reservedDataStore.debugMaterial;t.level=n.reservedDataStore.level;for(var o=0,i=r.meshes;o0?a=".dds":e.name.toLowerCase().indexOf(".env")>0&&(a=".env"),n.updateURL(r,a,(function(){return t.forceRefresh()}))}else n.updateURL(r,null,(function(){return t.forceRefresh()}))}}),void 0,!0)},t.prototype.onOpenTextureEditor=function(){var e=this;this.state.isTextureEditorOpen&&this.state.textureEditing!==this.props.texture?this.onCloseTextureEditor(null,(function(){return e.onOpenTextureEditor()})):this.setState({isTextureEditorOpen:!0,textureEditing:this.props.texture})},t.prototype.onCloseTextureEditor=function(e,t){this.setState({isTextureEditorOpen:!1,textureEditing:null},t),null!==e&&e.close()},t.prototype.forceRefresh=function(){this.forceUpdate(),this.textureLineRef.current.updatePreview()},t.prototype.render=function(){var e=this,t=this.props.texture,n=[{label:"Nearest",value:d.Texture.NEAREST_NEAREST},{label:"Nearest & linear mip",value:d.Texture.NEAREST_LINEAR},{label:"Linear",value:d.Texture.LINEAR_LINEAR_MIPLINEAR}],r=[{label:"Explicit",value:d.Texture.EXPLICIT_MODE},{label:"Cubic",value:d.Texture.CUBIC_MODE},{label:"Inverse cubic",value:d.Texture.INVCUBIC_MODE},{label:"Equirectangular",value:d.Texture.EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular",value:d.Texture.FIXED_EQUIRECTANGULAR_MODE},{label:"Fixed equirectangular mirrored",value:d.Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE},{label:"Planar",value:d.Texture.PLANAR_MODE},{label:"Projection",value:d.Texture.PROJECTION_MODE},{label:"Skybox",value:d.Texture.SKYBOX_MODE},{label:"Spherical",value:d.Texture.SPHERICAL_MODE}],a="",o=t.url,i=o&&"data"!==o.substring(0,4)&&"blob"!==o.substring(0,4)?o:"";if(i)for(var l=i.length-1;l>=0&&"."!==i[l];l--)a=i[l]+a;return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"PREVIEW"},c.createElement(yt,{ref:this.textureLineRef,texture:t,width:256,height:256,globalState:this.props.globalState}),c.createElement(it,{label:"Load texture from file",onClick:function(t){return e.updateTexture(t)},accept:".jpg, .png, .tga, .dds, .env"}),c.createElement(Ue,{label:"Edit",onClick:function(){return e.onOpenTextureEditor()}}),c.createElement(Ge,{label:"URL",value:i,lockObject:this.props.lockObject,onChange:function(n){t.updateURL(n),e.forceRefresh()}})),this.state.isTextureEditorOpen&&c.createElement(dt,{id:"texture-editor",title:"Texture Inspector",size:{width:1024,height:490},onOpen:function(e){},onClose:function(t){return e.onCloseTextureEditor(t)}},c.createElement(Wt,{globalState:this.props.globalState,texture:this.props.texture,url:i})),c.createElement(Ve,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"Width",value:t.getSize().width.toString()}),c.createElement(Ee,{label:"Height",value:t.getSize().height.toString()}),t.isRenderTarget&&c.createElement(Ue,{label:"Scale up",onClick:function(){var n=t.getScene();t.scale(2),setTimeout((function(){e.props.globalState.onSelectionChangedObservable.notifyObservers(n.getTextureByUniqueID(t.uniqueId))}))}}),t.isRenderTarget&&c.createElement(Ue,{label:"Scale down",onClick:function(){var n=t.getScene();t.scale(.5),setTimeout((function(){e.props.globalState.onSelectionChangedObservable.notifyObservers(n.getTextureByUniqueID(t.uniqueId))}))}}),a&&c.createElement(Ee,{label:"File format",value:a}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()}),c.createElement(Ee,{label:"Class",value:t.getClassName()}),c.createElement(Ee,{label:"Has alpha",value:t.hasAlpha?"Yes":"No"}),c.createElement(Ee,{label:"Is 3D",value:t.is3D?"Yes":"No"}),c.createElement(Ee,{label:"Is 2D array",value:t.is2DArray?"Yes":"No"}),c.createElement(Ee,{label:"Is cube",value:t.isCube?"Yes":"No"}),c.createElement(Ee,{label:"Is render target",value:t.isRenderTarget?"Yes":"No"}),t instanceof d.Texture&&c.createElement(Ee,{label:"Stored as inverted on Y",value:t.invertY?"Yes":"No"}),c.createElement(Ee,{label:"Has mipmaps",value:t.noMipmap?"No":"Yes"}),c.createElement(Me,{label:"UV set",target:t,propertyName:"coordinatesIndex",minimum:0,maximum:3,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable,decimalCount:0}),c.createElement(Le,{label:"Mode",options:r,target:t,propertyName:"coordinatesMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.updateSamplingMode(e)}}),c.createElement(Me,{label:"Level",target:t,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.updateSamplingMode&&c.createElement(Le,{label:"Sampling",options:n,target:t,noDirectUpdate:!0,propertyName:"samplingMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(e){return t.updateSamplingMode(e)}})),t.getScene()&&c.createElement(ht,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}),t.rootContainer&&this._adtInstrumentation&&c.createElement(xe,{globalState:this.props.globalState,title:"ADVANCED TEXTURE PROPERTIES"},c.createElement(Oe,{label:"Last layout time",value:this._adtInstrumentation.renderTimeCounter.current,units:"ms"}),c.createElement(Oe,{label:"Last render time",value:this._adtInstrumentation.layoutTimeCounter.current,units:"ms"}),c.createElement(Me,{label:"Render scale",minimum:.1,maximum:5,step:.1,target:t,propertyName:"renderScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Premultiply alpha",target:t,propertyName:"premulAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Ideal width",target:t,propertyName:"idealWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Ideal height",target:t,propertyName:"idealHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Use smallest ideal",target:t,propertyName:"useSmallestIdeal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Render at ideal size",target:t,propertyName:"renderAtIdealSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Invalidate Rect optimization",target:t,propertyName:"useInvalidateRectOptimization",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"TRANSFORM"},!t.isCube&&c.createElement("div",null,c.createElement(We,{lockObject:this.props.lockObject,label:"U offset",target:t,propertyName:"uOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"V offset",target:t,propertyName:"vOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"U scale",target:t,propertyName:"uScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"V scale",target:t,propertyName:"vScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"U angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"uAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"V angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"vAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"W angle",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"wAng",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Clamp U",isSelected:function(){return t.wrapU===d.Texture.CLAMP_ADDRESSMODE},onSelect:function(e){return t.wrapU=e?d.Texture.CLAMP_ADDRESSMODE:d.Texture.WRAP_ADDRESSMODE}}),c.createElement(Pe,{label:"Clamp V",isSelected:function(){return t.wrapV===d.Texture.CLAMP_ADDRESSMODE},onSelect:function(e){return t.wrapV=e?d.Texture.CLAMP_ADDRESSMODE:d.Texture.WRAP_ADDRESSMODE}})),t.isCube&&c.createElement("div",null,c.createElement(Me,{label:"Rotation Y",useEuler:this.props.globalState.onlyUseEulers,minimum:0,maximum:2*Math.PI,step:.1,target:t,propertyName:"rotationY"}))))},t}(c.Component),Yt=function(e){function t(t){var n=e.call(this,t)||this;return n._localChange=!1,n.state={isExpanded:!1,value:n.props.target[n.props.propertyName].clone()},n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n=e.target[e.propertyName];return!(n.equals(t.value)&&!this._localChange)&&(t.value=n.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?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se});return c.createElement("div",{className:"vector3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"vector"},"X: "+this.state.value.x.toFixed(2)+", Y: "+this.state.value.y.toFixed(2)),c.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),c.createElement(Ie,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}})))},t.defaultProps={step:.001},t}(c.Component),Xt=function(e){function t(t){var n=e.call(this,t)||this;return n._onDebugSelectionChangeObservable=new d.Observable,n}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,n=this.props.material;return c.createElement(xe,{globalState:this.props.globalState,title:"CHANNELS"},c.createElement(mt,{label:"Albedo",texture:n.albedoTexture,propertyName:"albedoTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{customDebugAction:function(e){return t.switchMetallicMode(e)},label:"Metallic",texture:n.metallicTexture,propertyName:"metallicTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{customDebugAction:function(e){return t.switchRoughnessMode(e)},label:"Roughness",texture:n.metallicTexture,propertyName:"metallicTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Reflection",texture:n.reflectionTexture,propertyName:"reflectionTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Refraction",texture:n.refractionTexture,propertyName:"refractionTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Reflectivity",texture:n.reflectivityTexture,propertyName:"reflectivityTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Micro-surface",texture:n.microSurfaceTexture,propertyName:"microSurfaceTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Bump",texture:n.bumpTexture,propertyName:"bumpTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Emissive",texture:n.emissiveTexture,propertyName:"emissiveTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Opacity",texture:n.opacityTexture,propertyName:"opacityTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{customDebugAction:function(e){return t.switchAmbientMode(e)},label:"Ambient",texture:n.ambientTexture,propertyName:"ambientTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Lightmap",texture:n.lightmapTexture,propertyName:"lightmapTexture",material:n,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(mt,{label:"Detailmap",texture:n.detailMap.texture,material:n,onTextureCreated:function(e){return n.detailMap.texture=e},onTextureRemoved:function(){return n.detailMap.texture=null},onSelectionChangedObservable:this.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:e}),c.createElement(Pe,{label:"Use lightmap as shadowmap",target:n,propertyName:"useLightmapAsShadowmap",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Use detailmap",target:n.detailMap,propertyName:"isEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t.prototype.render=function(){var e,t,n,r=this,a=this.props.material,o=[{label:"Low",value:d.Constants.TEXTURE_FILTERING_QUALITY_LOW},{label:"Medium",value:d.Constants.TEXTURE_FILTERING_QUALITY_MEDIUM},{label:"High",value:d.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!==(n=null!==(t=a.sheen.roughness)&&void 0!==t?t:a.sheen._saveRoughness)&&void 0!==n?n:0,a.sheen._useRoughness||(a.sheen._saveRoughness=a.sheen.roughness,a.sheen.roughness=null),c.createElement("div",{className:"pane"},c.createElement(bt,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:a,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderTextures(this._onDebugSelectionChangeObservable),c.createElement(xe,{globalState:this.props.globalState,title:"LIGHTING & COLORS"},c.createElement(Fe,{label:"Albedo",target:a,propertyName:"albedoColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(Fe,{label:"Reflectivity",target:a,propertyName:"reflectivityColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(Me,{label:"Micro-surface",target:a,propertyName:"microSurface",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Emissive",target:a,propertyName:"emissiveColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(Fe,{label:"Ambient",target:a,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(Pe,{label:"Use physical light falloff",target:a,propertyName:"usePhysicalLightFalloff",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"METALLIC WORKFLOW"},c.createElement(Me,{label:"Metallic",target:a,propertyName:"metallic",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Roughness",target:a,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Index of Refraction",target:a,propertyName:"indexOfRefraction",minimum:1,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"F0 Factor",target:a,propertyName:"metallicF0Factor",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Reflectance Color",target:a,propertyName:"metallicReflectanceColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(mt,{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})),c.createElement(xe,{globalState:this.props.globalState,title:"CLEAR COAT"},c.createElement(Pe,{label:"Enabled",target:a.clearCoat,propertyName:"isEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&c.createElement("div",{className:"fragment"},c.createElement(Me,{label:"Intensity",target:a.clearCoat,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Roughness",target:a.clearCoat,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"IOR",target:a.clearCoat,propertyName:"indexOfRefraction",minimum:1,maximum:3,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(mt,{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}),c.createElement(mt,{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&&c.createElement(Me,{label:"Bump strength",target:a.clearCoat.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Tint",target:a.clearCoat,propertyName:"isTintEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&c.createElement(Fe,{label:"Tint Color",target:a.clearCoat,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&c.createElement(Me,{label:"At Distance",target:a.clearCoat,propertyName:"tintColorAtDistance",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&c.createElement(Me,{label:"Tint Thickness",target:a.clearCoat,propertyName:"tintThickness",minimum:0,maximum:20,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.isEnabled&&a.clearCoat.isTintEnabled&&c.createElement(mt,{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}))),c.createElement(xe,{globalState:this.props.globalState,title:"ANISOTROPIC"},c.createElement(Pe,{label:"Enabled",target:a.anisotropy,propertyName:"isEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.anisotropy.isEnabled&&c.createElement("div",{className:"fragment"},c.createElement(Me,{label:"Intensity",target:a.anisotropy,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Yt,{label:"Direction",target:a.anisotropy,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(mt,{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}))),c.createElement(xe,{globalState:this.props.globalState,title:"SHEEN"},c.createElement(Pe,{label:"Enabled",target:a.sheen,propertyName:"isEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.sheen.isEnabled&&c.createElement("div",{className:"fragment"},c.createElement(Pe,{label:"Link to Albedo",target:a.sheen,propertyName:"linkSheenWithAlbedo",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Intensity",target:a.sheen,propertyName:"intensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Color",target:a.sheen,propertyName:"color",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(mt,{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}),c.createElement(Pe,{label:"Use roughness",target:a.sheen,propertyName:"_useRoughness"}),a.sheen._useRoughness&&c.createElement(Me,{label:"Roughness",target:a.sheen,propertyName:"roughness",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Albedo scaling",target:a.sheen,propertyName:"albedoScaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))),c.createElement(xe,{globalState:this.props.globalState,title:"SUBSURFACE"},c.createElement(mt,{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}),c.createElement(Me,{label:"Min Thickness",target:a.subSurface,propertyName:"minimumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Max Thickness",target:a.subSurface,propertyName:"maximumThickness",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Mask From Thickness",target:a.subSurface,propertyName:"useMaskFromThicknessTexture",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Tint Color",target:a.subSurface,propertyName:"tintColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}),c.createElement(Pe,{label:"Scattering Enabled",target:a.subSurface,propertyName:"isScatteringEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.isScatteringEnabled&&a.getScene().prePassRenderer&&c.createElement(Me,{label:"Meters per unit",target:a.getScene().prePassRenderer.subSurfaceConfiguration,propertyName:"metersPerUnit",minimum:.01,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Refraction Enabled",target:a.subSurface,propertyName:"isRefractionEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.isRefractionEnabled&&c.createElement("div",{className:"fragment"},c.createElement(Me,{label:"Intensity",target:a.subSurface,propertyName:"refractionIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(mt,{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}),c.createElement(Me,{label:"Index of Refraction",target:a.subSurface,propertyName:"indexOfRefraction",minimum:1,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Tint at Distance",target:a.subSurface,propertyName:"tintColorAtDistance",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Link refraction with transparency",target:a.subSurface,propertyName:"linkRefractionWithTransparency",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Use albedo to tint surface transparency",target:a.subSurface,propertyName:"useAlbedoToTintRefraction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(Pe,{label:"Translucency Enabled",target:a.subSurface,propertyName:"isTranslucencyEnabled",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.isTranslucencyEnabled&&c.createElement("div",{className:"fragment"},c.createElement(Me,{label:"Intensity",target:a.subSurface,propertyName:"translucencyIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Diffusion Distance",target:a.subSurface,propertyName:"diffusionDistance",onPropertyChangedObservable:this.props.onPropertyChangedObservable,isLinear:!0}))),c.createElement(xe,{globalState:this.props.globalState,title:"LEVELS",closed:!0},c.createElement(Me,{label:"Environment",target:a,propertyName:"environmentIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Specular",target:a,propertyName:"specularIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Emissive",target:a,propertyName:"emissiveIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Direct",target:a,propertyName:"directIntensity",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.bumpTexture&&c.createElement(Me,{label:"Bump strength",target:a.bumpTexture,propertyName:"level",minimum:0,maximum:2,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.ambientTexture&&c.createElement(Me,{label:"Ambient strength",target:a,propertyName:"ambientTextureStrength",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.reflectionTexture&&c.createElement(Me,{label:"Reflection strength",target:a.reflectionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.texture&&c.createElement(Me,{label:"Clear coat",target:a.clearCoat.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.clearCoat.bumpTexture&&c.createElement(Me,{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&&c.createElement(Me,{label:"Anisotropic",target:a.anisotropy.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.sheen.texture&&c.createElement(Me,{label:"Sheen",target:a.sheen.texture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.thicknessTexture&&c.createElement(Me,{label:"Thickness",target:a.subSurface.thicknessTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.subSurface.refractionTexture&&c.createElement(Me,{label:"Refraction",target:a.subSurface.refractionTexture,propertyName:"level",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a.detailMap.isEnabled&&c.createElement(c.Fragment,null,c.createElement(Me,{label:"Detailmap diffuse",target:a.detailMap,propertyName:"diffuseBlendLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Detailmap bump",target:a.detailMap,propertyName:"bumpLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Detailmap roughness",target:a.detailMap,propertyName:"roughnessBlendLevel",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))),c.createElement(xe,{globalState:this.props.globalState,title:"RENDERING",closed:!0},c.createElement(Pe,{label:"Alpha from albedo",target:a,propertyName:"useAlphaFromAlbedoTexture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Ambient in grayscale",target:a,propertyName:"useAmbientInGrayScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Radiance over alpha",target:a,propertyName:"useRadianceOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Micro-surface from ref. map alpha",target:a,propertyName:"useMicroSurfaceFromReflectivityMapAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Specular over alpha",target:a,propertyName:"useSpecularOverAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Specular anti-aliasing",target:a,propertyName:"enableSpecularAntiAliasing",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Realtime Filtering",target:a,propertyName:"realTimeFiltering",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{allowNullValue:!0,label:"Realtime Filtering quality",options:o,target:a,propertyName:"realTimeFilteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"NORMAL MAP",closed:!0},c.createElement(Pe,{label:"Invert X axis",target:a,propertyName:"invertNormalMapX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Invert Y axis",target:a,propertyName:"invertNormalMapY",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"ADVANCED",closed:!0},c.createElement(Pe,{label:"Energy Conservation",target:a.brdf,propertyName:"useEnergyConservation",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Spherical Harmonics",target:a.brdf,propertyName:"useSphericalHarmonics",onValueChanged:function(){return r.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Radiance occlusion",target:a,propertyName:"useRadianceOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Horizon occlusion ",target:a,propertyName:"useHorizonOcclusion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Unlit",target:a,propertyName:"unlit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"DEBUG",closed:!0},c.createElement(Le,{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"}),c.createElement(Me,{label:"Split position",target:a,propertyName:"debugLimit",minimum:-1,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Output factor",target:a,propertyName:"debugFactor",minimum:0,maximum:5,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Zt=function(e){function t(t){var n=e.call(this,t)||this;return n.state={isSelected:n.props.isSelected()},n}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 c.createElement("div",{className:"radioLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"radioContainer"},c.createElement("input",{id:this.props.label,className:"radio",type:"radio",checked:this.state.isSelected,onChange:function(){return e.onChange()}}),c.createElement("label",{htmlFor:this.props.label,className:"labelForRadio"})))},t}(c.Component),qt=function(e){function t(t){var n=e.call(this,t)||this;return n.state={mode:n.props.scene.fogMode},n}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.scene,n=[{label:"None",value:d.Scene.FOGMODE_NONE},{label:"Linear",value:d.Scene.FOGMODE_LINEAR},{label:"Exp",value:d.Scene.FOGMODE_EXP},{label:"Exp2",value:d.Scene.FOGMODE_EXP2}];return c.createElement("div",null,c.createElement(Le,{label:"Fog mode",options:n,target:t,propertyName:"fogMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),this.state.mode!==d.Scene.FOGMODE_NONE&&c.createElement(Fe,{label:"Fog color",target:t,propertyName:"fogColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(this.state.mode===d.Scene.FOGMODE_EXP||this.state.mode===d.Scene.FOGMODE_EXP2)&&c.createElement(We,{lockObject:this.props.lockObject,label:"Fog density",target:t,propertyName:"fogDensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===d.Scene.FOGMODE_LINEAR&&c.createElement(We,{lockObject:this.props.lockObject,label:"Fog start",target:t,propertyName:"fogStart",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.state.mode===d.Scene.FOGMODE_LINEAR&&c.createElement(We,{lockObject:this.props.lockObject,label:"Fog end",target:t,propertyName:"fogEnd",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),Qt=function(e){function t(t){var n=e.call(this,t)||this;return n._renderingModeGroupObservable=new d.Observable,n}return a(t,e),t.prototype.setRenderingModes=function(e,t){var n=this.props.scene;n.forcePointsCloud=e,n.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,n=e.name.toLowerCase().indexOf(".env")>0;if(t||n){var r=this.props.scene;d.Tools.ReadFile(e,(function(e){var n=new Blob([e],{type:"octet/stream"}),a=URL.createObjectURL(n);r.environmentTexture=t?d.CubeTexture.CreateFromPrefilteredData(a,r,".dds"):new d.CubeTexture(a,r,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,n=t.getPhysicsEngine(),r=null;n&&(r={gravity:n.gravity,timeStep:n.getTimeStep()});var a=t.imageProcessingConfiguration,o=[{label:"Standard",value:d.ImageProcessingConfiguration.TONEMAPPING_STANDARD},{label:"ACES",value:d.ImageProcessingConfiguration.TONEMAPPING_ACES}],i=[{label:"Multiply",value:d.ImageProcessingConfiguration.VIGNETTEMODE_MULTIPLY},{label:"Opaque",value:d.ImageProcessingConfiguration.VIGNETTEMODE_OPAQUE}];return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"RENDERING MODE"},c.createElement(Zt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Point",isSelected:function(){return t.forcePointsCloud},onSelect:function(){return e.setRenderingModes(!0,!1)}}),c.createElement(Zt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Wireframe",isSelected:function(){return t.forceWireframe},onSelect:function(){return e.setRenderingModes(!1,!0)}}),c.createElement(Zt,{onSelectionChangedObservable:this._renderingModeGroupObservable,label:"Solid",isSelected:function(){return!t.forcePointsCloud&&!t.forceWireframe},onSelect:function(){return e.setRenderingModes(!1,!1)}})),c.createElement(xe,{globalState:this.props.globalState,title:"ENVIRONMENT"},c.createElement(Fe,{label:"Clear color",target:t,propertyName:"clearColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Clear color enabled",target:t,propertyName:"autoClear",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Ambient color",target:t,propertyName:"ambientColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Environment texture (IBL)",isSelected:function(){return null!=t.environmentTexture},onSelect:function(){return e.switchIBL()}}),t.environmentTexture&&c.createElement(mt,{label:"Env. texture",texture:t.environmentTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),c.createElement(it,{label:"Update environment texture",onClick:function(t){return e.updateEnvironmentTexture(t)},accept:".dds, .env"}),c.createElement(Me,{minimum:0,maximum:2,step:.01,label:"IBL Intensity",target:t,propertyName:"environmentIntensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(qt,{globalState:this.props.globalState,lockObject:this.props.lockObject,scene:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(ht,{globalState:this.props.globalState,animatable:t,scene:t,lockObject:this.props.lockObject}),c.createElement(xe,{globalState:this.props.globalState,title:"MATERIAL IMAGE PROCESSING"},c.createElement(Me,{minimum:0,maximum:4,step:.1,label:"Contrast",target:a,propertyName:"contrast",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:4,step:.1,label:"Exposure",target:a,propertyName:"exposure",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Tone mapping",target:a,propertyName:"toneMappingEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Tone mapping type",options:o,target:a,propertyName:"toneMappingType",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),c.createElement(Pe,{label:"Vignette",target:a,propertyName:"vignetteEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:4,step:.1,label:"Vignette weight",target:a,propertyName:"vignetteWeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:1,step:.1,label:"Vignette stretch",target:a,propertyName:"vignetteStretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:Math.PI,step:.1,label:"Vignette FOV",target:a,propertyName:"vignetteCameraFov",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:1,step:.1,label:"Vignette center X",target:a,propertyName:"vignetteCentreX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{minimum:0,maximum:1,step:.1,label:"Vignette center Y",target:a,propertyName:"vignetteCentreY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Vignette color",target:a,propertyName:"vignetteColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Vignette blend mode",options:i,target:a,propertyName:"vignetteBlendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}})),null!==r&&c.createElement(xe,{globalState:this.props.globalState,title:"PHYSICS",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Time step",target:r,propertyName:"timeStep",onChange:function(t){return e.updateTimeStep(t)},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Gravity",target:r,propertyName:"gravity",onChange:function(t){return e.updateGravity(t)},onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},c.createElement(Be,{label:"Gravity",target:t,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"SHADOWS",closed:!0},c.createElement(Ue,{label:"Normalize scene",onClick:function(){return e.normalizeScene()}})))},t}(c.Component),$t=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 c.createElement("div",null,c.createElement(Ve,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"ID",value:t.id}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()}),c.createElement(Ee,{label:"Class",value:t.getClassName()}),c.createElement(We,{lockObject:this.props.lockObject,label:"Intensity",target:t,propertyName:"intensity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ue,{label:"Dispose",onClick:function(){t.dispose(),e.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),c.createElement(ht,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(c.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.light;return c.createElement("div",{className:"pane"},c.createElement($t,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"SETUP"},c.createElement(Fe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Ground",target:e,propertyName:"groundColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),en=function(e){function t(t){var n=e.call(this,t)||this;return n._internals={generatorType:0,mapSize:1024},n}return a(t,e),t.prototype.createShadowGenerator=function(){var e=this.props.light,t=e.getScene(),n=this._internals,r=0===n.generatorType?new d.ShadowGenerator(n.mapSize,e):new d.CascadedShadowGenerator(n.mapSize,e);t.meshes.forEach((function(e){r.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,n=this._internals,r=t.getShadowGenerator()||null,a=r instanceof d.CascadedShadowGenerator,o=t.getScene().activeCamera,i=[{label:"Shadow Generator",value:0}];t instanceof d.DirectionalLight&&i.push({label:"Cascaded Shadow Generator",value:1});var l;l=r instanceof d.CascadedShadowGenerator?[{label:"None",value:d.ShadowGenerator.FILTER_NONE},{label:"PCF",value:d.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:d.ShadowGenerator.FILTER_PCSS}]:[{label:"None",value:d.ShadowGenerator.FILTER_NONE},{label:"PCF",value:d.ShadowGenerator.FILTER_PCF},{label:"PCSS",value:d.ShadowGenerator.FILTER_PCSS},{label:"Poisson",value:d.ShadowGenerator.FILTER_POISSONSAMPLING},{label:"Exponential",value:d.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP},{label:"Blurred exponential",value:d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP},{label:"Close exponential",value:d.ShadowGenerator.FILTER_CLOSEEXPONENTIALSHADOWMAP},{label:"Blurred close exponential",value:d.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP}];var s=[{label:"Low",value:d.ShadowGenerator.QUALITY_LOW},{label:"Medium",value:d.ShadowGenerator.QUALITY_MEDIUM},{label:"High",value:d.ShadowGenerator.QUALITY_HIGH}],p=o?o.minZ:0,u=o?o.maxZ:0,h=r?r.filter:0;return c.createElement("div",null,c.createElement(xe,{globalState:this.props.globalState,title:"SHADOWS"},c.createElement(Pe,{label:"Shadows enabled",target:t,propertyName:"shadowEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!a&&c.createElement(c.Fragment,null,c.createElement(We,{lockObject:this.props.lockObject,label:"Shadows near plane",target:t,propertyName:"shadowMinZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Shadows far plane",target:t,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))),null==r&&c.createElement(xe,{globalState:this.props.globalState,title:"SHADOW GENERATOR"},c.createElement(Le,{label:"Type",options:i,target:n,propertyName:"generatorType"}),c.createElement(Le,{label:"Map size",options:[{label:"2048x2048",value:2048},{label:"1024x1024",value:1024},{label:"512x512",value:512},{label:"256x256",value:256}],target:n,propertyName:"mapSize"}),c.createElement(Ue,{label:"Create generator",onClick:function(){return e.createShadowGenerator()}})),null!==r&&c.createElement(xe,{globalState:this.props.globalState,title:"SHADOW GENERATOR"},c.createElement(Ue,{label:"Dispose generator",onClick:function(){return e.disposeShadowGenerator()}}),a&&c.createElement(c.Fragment,null,c.createElement(Le,{label:"Num cascades",options:[{label:"2",value:2},{label:"3",value:3},{label:"4",value:4}],target:r,propertyName:"numCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Debug mode",target:r,propertyName:"debug",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Stabilize cascades",target:r,propertyName:"stabilizeCascades",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Lambda",minimum:0,maximum:1,step:.01,target:r,propertyName:"lambda",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Cascade blend",minimum:0,maximum:1,step:.01,target:r,propertyName:"cascadeBlendPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Depth clamp",target:r,propertyName:"depthClamp",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Auto-Calc depth bounds",target:r,propertyName:"autoCalcDepthBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Shadow MaxZ",minimum:p,maximum:u,step:.5,target:r,propertyName:"shadowMaxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(We,{lockObject:this.props.lockObject,digits:4,step:"0.0001",label:"Bias",target:r,propertyName:"bias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Normal bias",target:r,propertyName:"normalBias",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Darkness",target:r,minimum:0,maximum:1,step:.01,propertyName:"darkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Allow transparent shadows",target:r,propertyName:"transparencyShadow",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Filter",options:l,onSelect:function(){e.forceUpdate()},target:r,propertyName:"filter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),(h===d.ShadowGenerator.FILTER_PCF||h===d.ShadowGenerator.FILTER_PCSS)&&c.createElement(Le,{label:"Filtering quality",options:s,onSelect:function(){e.forceUpdate()},target:r,propertyName:"filteringQuality",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),h===d.ShadowGenerator.FILTER_PCSS&&c.createElement(Me,{label:"Penumbra ratio",minimum:0,maximum:.5,step:.001,target:r,propertyName:"contactHardeningLightSizeUVRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!a&&(h===d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===d.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&c.createElement(Pe,{label:"Use kernel blur",target:r,propertyName:"useKernelBlur",onValueChanged:function(){return e.forceUpdate()},onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ShadowGenerator&&(h===d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===d.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&!r.useKernelBlur&&c.createElement(Me,{label:"Blur box offset",target:r,propertyName:"blurBoxOffset",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ShadowGenerator&&(h===d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===d.ShadowGenerator.FILTER_BLURCLOSEEXPONENTIALSHADOWMAP)&&r.useKernelBlur&&c.createElement(Me,{label:"Blur kernel",target:r,propertyName:"blurKernel",minimum:1,maximum:64,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ShadowGenerator&&(h===d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===d.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&c.createElement(We,{lockObject:this.props.lockObject,label:"Depth scale",target:r,propertyName:"depthScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ShadowGenerator&&(h===d.ShadowGenerator.FILTER_BLUREXPONENTIALSHADOWMAP||h===d.ShadowGenerator.FILTER_EXPONENTIALSHADOWMAP)&&c.createElement(Me,{label:"Blur scale",target:r,propertyName:"blurScale",minimum:1,maximum:4,step:1,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),a&&h===d.ShadowGenerator.FILTER_PCSS&&c.createElement(Me,{label:"Penumbra darkness",minimum:0,maximum:1,step:.01,target:r,propertyName:"penumbraDarkness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),tn=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 c.createElement("div",{className:"pane"},c.createElement($t,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"SETUP"},c.createElement(Fe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(en,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),nn=function(e){function t(t){var n=e.call(this,t)||this;return n.state={mode:n.props.camera.mode},n}return a(t,e),t.prototype.render=function(){var e=this,t=this.props.camera,n=[{label:"Perspective",value:d.Camera.PERSPECTIVE_CAMERA},{label:"Orthographic",value:d.Camera.ORTHOGRAPHIC_CAMERA}];return c.createElement("div",null,c.createElement(Ve,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"ID",value:t.id}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()}),c.createElement(Ee,{label:"Class",value:t.getClassName()}),c.createElement(We,{lockObject:this.props.lockObject,label:"Near plane",target:t,propertyName:"minZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Far plane",target:t,propertyName:"maxZ",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Inertia",target:t,propertyName:"inertia",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{isInteger:!0,lockObject:this.props.lockObject,label:"Layer mask",target:t,propertyName:"layerMask",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Mode",options:n,target:t,propertyName:"mode",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}}),t.mode===d.Camera.PERSPECTIVE_CAMERA&&c.createElement(Me,{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===d.Camera.ORTHOGRAPHIC_CAMERA&&c.createElement(We,{lockObject:this.props.lockObject,label:"Left",target:t,propertyName:"orthoLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===d.Camera.ORTHOGRAPHIC_CAMERA&&c.createElement(We,{lockObject:this.props.lockObject,label:"Top",target:t,propertyName:"orthoTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===d.Camera.ORTHOGRAPHIC_CAMERA&&c.createElement(We,{lockObject:this.props.lockObject,label:"Right",target:t,propertyName:"orthoRight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.mode===d.Camera.ORTHOGRAPHIC_CAMERA&&c.createElement(We,{lockObject:this.props.lockObject,label:"Bottom",target:t,propertyName:"orthoBottom",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ue,{label:"Dispose",onClick:function(){t.dispose(),e.props.globalState.onSelectionChangedObservable.notifyObservers(null)}})),c.createElement(ht,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(c.Component),rn=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 c.createElement("div",{className:"pane"},c.createElement(nn,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"TRANSFORMS"},c.createElement(Be,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"CONTROLS",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Angular sensitivity",target:e,propertyName:"angularSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Speed",target:e,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},c.createElement(Pe,{label:"Check collisions",target:e,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Apply gravity",target:e,propertyName:"applyGravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Ellipsoid",target:e,propertyName:"ellipsoid",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Ellipsoid offset",target:e,propertyName:"ellipsoidOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),an=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 c.createElement("div",{className:"pane"},c.createElement(nn,{globalState:this.props.globalState,lockObject:this.props.lockObject,camera:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"TRANSFORMS"},c.createElement(Be,{label:"Target",target:e,propertyName:"target",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{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}),c.createElement(Me,{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}),c.createElement(We,{lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"CONTROLS",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Angular sensitivity X",target:e,propertyName:"angularSensibilityX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Angular sensitivity Y",target:e,propertyName:"angularSensibilityY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Panning sensitivity",target:e,propertyName:"panningSensibility",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Pinch delta percentage",target:e,propertyName:"pinchDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Wheel delta percentage",target:e,propertyName:"wheelDeltaPercentage",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Speed",target:e,propertyName:"speed",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"COLLISIONS",closed:!0},c.createElement(Pe,{label:"Check collisions",target:e,propertyName:"checkCollisions",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Collision radius",target:e,propertyName:"collisionRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"LIMITS",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Lower alpha limit",target:e,propertyName:"lowerAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Upper alpha limit",target:e,propertyName:"upperAlphaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Lower beta limit",target:e,propertyName:"lowerBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Upper beta limit",target:e,propertyName:"upperBetaLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Lower radius limit",target:e,propertyName:"lowerRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Upper radius limit",target:e,propertyName:"upperRadiusLimit",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"BEHAVIORS",closed:!0},c.createElement(Pe,{label:"Auto rotation",target:e,propertyName:"useAutoRotationBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Bouncing",target:e,propertyName:"useBouncingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Framing",target:e,propertyName:"useFramingBehavior",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),on=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?c.createElement("div",{className:"link-value",title:this.props.value,onClick:function(){return e.onLink()}},this.props.url?"doc":this.props.value||"no name"):c.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 c.createElement("div",{className:"indented "+(this.props.underline?"textLine underline":"textLine"+(this.props.additionalClass?" "+this.props.additionalClass:""))},this.renderContent())},t}(c.Component),ln=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.renderLevel=function(e){var t=[];for(var n in e){var r=e[n];switch(Object.prototype.toString.call(r)){case"[object String]":t.push(c.createElement(Ee,{key:n,label:n,ignoreValue:!0})),t.push(c.createElement(on,{key:n+r,value:r}));break;case"[object Array]":t.push(c.createElement(Ee,{key:n,label:n,ignoreValue:!0}));for(var a=0,o=r;a-1:r===t,o=r&&r.indexOf?r.indexOf(n)>-1:r===n;return!a&&e._selectedTags.indexOf(t)>-1&&(a=!0),!o&&e._selectedTags.indexOf(n)>-1&&(o=!0),a&&o||!a&&!o?t.localeCompare(n):a?-1:1})),c.createElement("div",null,c.createElement(xe,{globalState:this.props.globalState,title:"VARIANTS"},n.map((function(n,a){return c.createElement(Pe,{key:a,label:n,isSelected:function(){if(r)if("[object String]"===Object.prototype.toString.call(r)){if(r===n)return-1===e._selectedTags.indexOf(n)&&e._selectedTags.push(n),!0}else if(r.indexOf(n)>-1)return!0;return e._selectedTags.indexOf(n)>-1},onSelect:function(r){if(r)e._selectedTags.push(n),t.selectVariant(e.props.host,n);else{var a=e._selectedTags.indexOf(n);a>-1&&e._selectedTags.splice(a,1)}}})})),c.createElement(Ue,{label:"Reset",onClick:function(){t.reset(e.props.host),e._selectedTags=[],e.forceUpdate()}})))},t}(c.Component),cn=function(e){function t(t){var n=e.call(this,t)||this;return n.state={displayNormals:!1,displayVertexColors:!1},n}return a(t,e),t.prototype.renderWireframeOver=function(){var e=this.props.mesh,t=e.getScene();if(e.reservedDataStore&&e.reservedDataStore.wireframeOver)return e.reservedDataStore.wireframeOver.dispose(!1,!0),e.reservedDataStore.wireframeOver=null,void this.forceUpdate();var n=e.clone();n.reservedDataStore={hidden:!0},n.parent=e,n.position=d.Vector3.Zero(),n.scaling=new d.Vector3(1,1,1),n.rotation=d.Vector3.Zero(),n.rotationQuaternion=null;var r=new d.StandardMaterial("wireframeOver",t);r.reservedDataStore={hidden:!0},n.material=r,r.zOffset=1,r.disableLighting=!0,r.backFaceCulling=!1,r.emissiveColor=d.Color3.White(),r.wireframe=!0,e.reservedDataStore||(e.reservedDataStore={}),e.reservedDataStore.wireframeOver=n,this.forceUpdate()},t.prototype.renderNormalVectors=function(){var e=this.props.mesh,t=e.getScene();if(e.reservedDataStore&&e.reservedDataStore.normalLines)return e.reservedDataStore.normalLines.dispose(),e.reservedDataStore.normalLines=null,void this.forceUpdate();for(var n=e.getVerticesData(d.VertexBuffer.NormalKind),r=e.getVerticesData(d.VertexBuffer.PositionKind),a=d.Color3.White(),o=e.getBoundingInfo(),i=.05*o.maximum.subtractToRef(o.minimum,d.TmpVectors.Vector3[0]).length(),l=[],s=0;s0){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,n=t.isPlaying?"Pause":"Play";return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"Class",value:t.getClassName()}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"CONTROLS"},c.createElement(Ue,{label:n,onClick:function(){return e.playOrPause()}}),c.createElement(Me,{label:"Speed ratio",minimum:0,maximum:10,step:.1,target:t,propertyName:"speedRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{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)}})),c.createElement(xe,{globalState:this.props.globalState,title:"INFOS"},c.createElement(Ee,{label:"Animation count",value:t.targetedAnimations.length.toString()}),c.createElement(Ee,{label:"From",value:t.from.toFixed(2)}),c.createElement(Ee,{label:"To",value:t.to.toFixed(2)}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()})))},t}(c.Component),vn=function(){this.lock=!1},yn=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,n=[{label:"None",value:Ct.Image.STRETCH_NONE},{label:"Fill",value:Ct.Image.STRETCH_FILL},{label:"Uniform",value:Ct.Image.STRETCH_UNIFORM},{label:"Extend",value:Ct.Image.STRETCH_EXTEND},{label:"NinePatch",value:Ct.Image.STRETCH_NINE_PATCH}];return c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"IMAGE"},c.createElement(We,{lockObject:this.props.lockObject,label:"Source left",target:t,propertyName:"sourceLeft",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Source top",target:t,propertyName:"sourceTop",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Source width",target:t,propertyName:"sourceWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Source height",target:t,propertyName:"sourceHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Autoscale",target:t,propertyName:"autoScale",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{label:"Stretch",options:n,target:t,propertyName:"stretch",onPropertyChangedObservable:this.props.onPropertyChangedObservable,onSelect:function(t){return e.setState({mode:t})}})),c.createElement(xe,{globalState:this.props.globalState,title:"ANIMATION SHEET"},c.createElement(We,{lockObject:this.props.lockObject,label:"Cell Id",isInteger:!0,target:t,propertyName:"cellId",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Cell width",target:t,propertyName:"cellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Cell height",target:t,propertyName:"cellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Cn=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"SLIDER"},c.createElement(Ge,{lockObject:this.props.lockObject,label:"Border color",target:e,propertyName:"borderColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Display thumb",target:e,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Thumb circle",target:e,propertyName:"isThumbCircle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Vertical",target:e,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Thumb clamped",target:e,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Bar offset",target:e,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Thumb width",target:e,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Minimum",target:e,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Maximum",target:e,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Value",target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),En=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"IMAGE BASED SLIDER"},c.createElement(Pe,{label:"Display thumb",target:e,propertyName:"displayThumb",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Vertical",target:e,propertyName:"isVertical",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Thumb clamped",target:e,propertyName:"isThumbClamped",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Bar offset",target:e,propertyName:"barOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Thumb width",target:e,propertyName:"thumbWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Minimum",target:e,propertyName:"minimum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Maximum",target:e,propertyName:"maximum",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Value",target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),xn=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"RECTANGLE"},c.createElement(Pe,{label:"Clip children",target:e,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Corner radius",target:e,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),On=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"ELLIPSE"},c.createElement(Pe,{label:"Clip children",target:e,propertyName:"clipChildren",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Sn=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"CHECKBOX"},c.createElement(We,{lockObject:this.props.lockObject,label:"Check size ratio",target:e,propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Checked",target:e,propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),wn=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"RADIO BUTTON"},c.createElement(We,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Check size ratio",target:e,propertyName:"checkSizeRatio",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Group",target:e,propertyName:"group",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Checked",target:e,propertyName:"isChecked",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Pn=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,n=e.split(",");t.dash=[],n.forEach((function(e){var n=parseInt(e);isNaN(n)||t.dash.push(n)}))},t.prototype.render=function(){var e=this,t=this.props.line;return c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"LINE"},c.createElement(We,{lockObject:this.props.lockObject,label:"Line width",target:t,propertyName:"lineWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"X1",target:t,propertyName:"x1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Y1",target:t,propertyName:"y1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"X2",target:t,propertyName:"x2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Y2",target:t,propertyName:"y2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Dash pattern",target:t,value:t.dash.join(","),onChange:function(t){return e.onDashChange(t)}})))},t}(c.Component),kn=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 c.createElement("div",{className:"pane"},c.createElement(dn,{globalState:this.props.globalState,lockObject:this.props.lockObject,control:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"RECTANGLE"},c.createElement(We,{lockObject:this.props.lockObject,label:"Thickness",target:e,propertyName:"thickness",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Corner radius",target:e,propertyName:"cornerRadius",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"SCROLLVIEWER"},c.createElement(We,{lockObject:this.props.lockObject,label:"Bar size",target:e,propertyName:"barSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Bar color",target:e,propertyName:"barColor",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Bar background",target:e,propertyName:"barBackground",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Wheel precision",target:e,propertyName:"wheelPrecision",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),_n=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=[],n=0;n0}},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 c.createElement("div",{className:"pane"},c.createElement(Ve,{globalState:this.props.globalState,target:t,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"ID",value:t.id}),c.createElement(Ee,{label:"Bone count",value:t.bones.length.toString()}),t.overrideMesh&&c.createElement(Ee,{label:"Override mesh",value:t.overrideMesh.name,onLink:function(){return e.onOverrideMeshLink()}}),c.createElement(Pe,{label:"Use texture to store matrices",target:t,propertyName:"useTextureToStoreBoneMatrices",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Debug mode",isSelected:function(){return e._skeletonViewersEnabled},onSelect:function(){return e.switchSkeletonViewers()}})),c.createElement(ht,{globalState:this.props.globalState,animatable:t,scene:t.getScene(),lockObject:this.props.lockObject}))},t}(c.Component),Bn=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 c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"Name",value:t.name}),c.createElement(Ee,{label:"Index",value:t.getIndex().toString()}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()}),t.getParent()&&c.createElement(Ee,{label:"Parent",value:t.getParent().name,onLink:function(){return e.props.globalState.onSelectionChangedObservable.notifyObservers(t.getParent())}}),t.getTransformNode()&&c.createElement(Ee,{label:"Linked node",value:t.getTransformNode().name,onLink:function(){return e.onTransformNodeLink()}})),c.createElement(xe,{globalState:this.props.globalState,title:"TRANSFORMATIONS"},c.createElement(Be,{label:"Position",target:t,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!t.rotationQuaternion&&c.createElement(Be,{label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"rotation",step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.rotationQuaternion&&c.createElement(He,{label:"Rotation",useEuler:this.props.globalState.onlyUseEulers,target:t,propertyName:"rotationQuaternion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Scaling",target:t,propertyName:"scaling",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Hn=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 d.CascadedShadowGenerator;return c.createElement("div",{className:"pane"},c.createElement($t,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"SETUP"},c.createElement(Fe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!t&&c.createElement(Pe,{label:"Auto Calc Shadow ZBounds",target:e,propertyName:"autoCalcShadowZBounds",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(en,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),Gn=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 c.createElement("div",{className:"pane"},c.createElement($t,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"SETUP"},c.createElement(Fe,{label:"Diffuse",target:e,propertyName:"diffuse",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Fe,{label:"Specular",target:e,propertyName:"specular",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Position",target:e,propertyName:"position",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Direction",target:e,propertyName:"direction",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Angle",target:e,propertyName:"angle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,useEuler:this.props.globalState.onlyUseEulers,label:"Inner angle",target:e,propertyName:"innerAngle",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Exponent",target:e,propertyName:"exponent",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(en,{globalState:this.props.globalState,lockObject:this.props.lockObject,light:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),Vn=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 c.createElement("div",{className:"pane"},c.createElement(Ln,{globalState:this.props.globalState,lockObject:this.props.lockObject,renderPipeline:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"OPTIONS"},c.createElement(Me,{label:"Edge blur",minimum:0,maximum:5,step:.1,target:e,propertyName:"edgeBlur",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Edge distortion",minimum:0,maximum:5,step:.1,target:e,propertyName:"edgeDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Grain amount",minimum:0,maximum:1,step:.1,target:e,propertyName:"grainAmount",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Chromatic aberration",minimum:0,maximum:5,step:.1,target:e,propertyName:"chromaticAberration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Darken out of focus",minimum:0,maximum:5,step:.1,target:e,propertyName:"darkenOutOfFocus",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Blur noise",target:e,propertyName:"blurNoise",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"DEPTH OF FIELD"},c.createElement(Me,{label:"Aperture",minimum:0,maximum:10,step:.1,target:e,propertyName:"dofAperture",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Distortion",minimum:0,maximum:10,step:.1,target:e,propertyName:"dofDistortion",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Pentagon bokeh",target:e,propertyName:"pentagonBokeh",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Highlight gain",minimum:0,maximum:5,step:.1,target:e,propertyName:"highlightsGain",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Highlight threshold",minimum:0,maximum:5,step:.1,target:e,propertyName:"highlightsThreshold",onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),Un=function(e){function t(t){var n=e.call(this,t)||this;return n._localChange=!1,n.state={isExpanded:!1,value:n.getCurrentValue().clone()},n}return a(t,e),t.prototype.getCurrentValue=function(){return this.props.target[this.props.propertyName]},t.prototype.shouldComponentUpdate=function(e,t){var n=this.getCurrentValue();return!(n.equals(t.value)&&!this._localChange)&&(t.value=n.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?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se});return c.createElement("div",{className:"vector3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.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)),c.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"x",step:this.props.step,value:this.state.value.x,onChange:function(t){return e.updateStateX(t)}}),c.createElement(Ie,{label:"y",step:this.props.step,value:this.state.value.y,onChange:function(t){return e.updateStateY(t)}}),c.createElement(Ie,{label:"z",step:this.props.step,value:this.state.value.z,onChange:function(t){return e.updateStateZ(t)}}),c.createElement(Ie,{label:"w",step:this.props.step,value:this.state.value.w,onChange:function(t){return e.updateStateW(t)}})))},t.defaultProps={step:.001},t}(c.Component),Wn=n(93),Kn=function(e){function t(t){var n=e.call(this,t)||this;n._localChange=!1;var r=n.props.target[n.props.propertyName],a="Color4"===r.getClassName()?r.clone():new d.Color4(r.r,r.g,r.b,1);return n.state={isExpanded:!1,color:a},t.isLinear&&n.state.color.toGammaSpaceToRef(n.state.color),t.target._isLinearColor=t.isLinear,n}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n=this.props.target[this.props.propertyName],r="Color4"===n.getClassName()?n:new d.Color4(n.r,n.g,n.b,1);return this.props.isLinear&&r.toGammaSpaceRef(r),!(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=d.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?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se});return c.createElement("div",{className:"color3Line"},c.createElement("div",{className:"firstLine"},c.createElement("div",{className:"label"},this.props.label),c.createElement("div",{className:"color3"},c.createElement(De,{value:this.state.color,onColorChanged:function(t){e.onChange(t)}})),c.createElement("div",{className:"copy hoverIcon",onClick:function(){return e.copyToClipboard()},title:"Copy to clipboard"},c.createElement("img",{src:Wn,alt:""})),c.createElement("div",{className:"expand hoverIcon",onClick:function(){return e.switchExpandState()},title:"Expand"},t)),this.state.isExpanded&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"r",value:this.state.color.r,onChange:function(t){return e.updateStateR(t)}}),c.createElement(Ie,{label:"g",value:this.state.color.g,onChange:function(t){return e.updateStateG(t)}}),c.createElement(Ie,{label:"b",value:this.state.color.b,onChange:function(t){return e.updateStateB(t)}}),c.createElement(Ie,{label:"a",value:this.state.color.a,onChange:function(t){return e.updateStateA(t)}})))},t}(c.Component),Yn=function(e){function t(t){var n=e.call(this,t)||this;return n._onDebugSelectionChangeObservable=new d.Observable,n}return a(t,e),t.prototype.edit=function(){this.props.material.edit()},t.prototype.renderTextures=function(){var e=this,t=this.props.material,n=this._onDebugSelectionChangeObservable,r=t.getTextureBlocks();return r&&0!==r.length?c.createElement(xe,{globalState:this.props.globalState,title:"TEXTURES"},r.map((function(r,a){return c.createElement(mt,{label:r.name,key:"nodematText"+a,texture:r.texture,material:t,onTextureCreated:function(e){return r.texture=e},onSelectionChangedObservable:e.props.onSelectionChangedObservable,onDebugSelectionChangeObservable:n})}))):null},t.prototype.renderInputBlock=function(e){switch(e.type){case d.NodeMaterialBlockConnectionPointTypes.Float:var t=isNaN(e.min)||isNaN(e.max)||e.min===e.max;return c.createElement("div",{key:e.name},e.isBoolean&&c.createElement(Pe,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.isBoolean&&t&&c.createElement(We,{key:e.name,lockObject:this.props.lockObject,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.isBoolean&&!t&&c.createElement(Me,{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 d.NodeMaterialBlockConnectionPointTypes.Color3:return c.createElement(Fe,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.NodeMaterialBlockConnectionPointTypes.Color4:return c.createElement(Kn,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.NodeMaterialBlockConnectionPointTypes.Vector2:return c.createElement(Yt,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.NodeMaterialBlockConnectionPointTypes.Vector3:return c.createElement(Be,{key:e.name,label:e.name,target:e,propertyName:"value",onPropertyChangedObservable:this.props.onPropertyChangedObservable});case d.NodeMaterialBlockConnectionPointTypes.Vector4:return c.createElement(Un,{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 n=[];return t.forEach((function(e){e.groupInInspector&&-1===n.indexOf(e.groupInInspector)&&n.push(e.groupInInspector)})),n.sort(),c.createElement(c.Fragment,null,c.createElement(xe,{globalState:this.props.globalState,title:"INPUTS"},t.filter((function(e){return!e.groupInInspector})).map((function(t){return e.renderInputBlock(t)}))),n.map((function(n,r){return c.createElement(xe,{key:"inputValue"+r,globalState:e.props.globalState,title:n.toUpperCase()},t.filter((function(e){return e.groupInInspector===n})).map((function(t){return e.renderInputBlock(t)})))})))},t.prototype.render=function(){var e=this,t=this.props.material;return c.createElement("div",{className:"pane"},c.createElement(bt,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:t,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"CONFIGURATION"},c.createElement(Pe,{label:"Ignore alpha",target:t,propertyName:"ignoreAlpha",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ue,{label:"Node Material Editor",onClick:function(){return e.edit()}})),this.renderInputValues(),this.renderTextures())},t}(c.Component),Xn=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 c.createElement(xe,{globalState:this.props.globalState,title:"CHILDREN"},t.subMaterials.map((function(t,n){return t?c.createElement(Ee,{key:"Material #"+n,label:"Material #"+n,value:t.name,onLink:function(){return e.onMaterialLink(t)}}):null})))},t.prototype.render=function(){var e=this.props.material;return c.createElement("div",{className:"pane"},c.createElement(bt,{globalState:this.props.globalState,lockObject:this.props.lockObject,material:e,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),this.renderChildMaterial())},t}(c.Component),Zn=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 c.createElement(c.Fragment,null,c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Min emit box",target:e,propertyName:"minEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Max emit box",target:e,propertyName:"maxEmitBox",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),qn=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 c.createElement(c.Fragment,null,c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Height range",target:e,propertyName:"heightRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Emit from spawn point only",target:e,propertyName:"emitFromSpawnPointOnly",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),Qn=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 c.createElement(c.Fragment,null,c.createElement(We,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Height",target:e,propertyName:"height",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),$n=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 c.createElement(c.Fragment,null,c.createElement(We,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),Jn=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 c.createElement(c.Fragment,null,c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.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 c.createElement(c.Fragment,null,c.createElement(We,{replaySourceReplacement:this.props.replaySourceReplacement,lockObject:this.props.lockObject,label:"Radius",target:e,propertyName:"radius",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Radius range",target:e,propertyName:"radiusRange",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction randomizer",target:e,propertyName:"directionRandomizer",minimum:0,maximum:1,step:.01,onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),tr=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 n=[{label:"None",value:-1}];return t.sort((function(e,t){return e.name.localeCompare(t.name)})),n.push.apply(n,t.map((function(e,t){return{label:e.name,value:t}}))),c.createElement(c.Fragment,null,c.createElement(Le,{label:this.props.label,options:n,target:this.props.target,propertyName:this.props.property,noDirectUpdate:!0,onSelect:function(n){var r,a=e.props.target[e.props.property];switch(n){case-1:e.props.target[e.props.property]=null;break;default:e.props.target[e.props.property]=t[n]}e.props.onPropertyChangedObservable&&e.props.onPropertyChangedObservable.notifyObservers({object:null!==(r=e.props.replaySourceReplacement)&&void 0!==r?r: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 n=t.indexOf(e.props.target[e.props.property]);return n>-1?n:-1}}))},t}(c.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 c.createElement(c.Fragment,null,c.createElement(tr,{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&&c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 1",target:e,propertyName:"direction1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),!e.useMeshNormalsForDirection&&c.createElement(Be,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Direction 2",target:e,propertyName:"direction2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{replaySourceReplacement:this.props.replaySourceReplacement,label:"Use normals for direction",target:e,propertyName:"useMeshNormalsForDirection",onPropertyChangedObservable:this.props.onPropertyChangedObservable}))},t}(c.Component),rr=function(e){function t(t){var n,r=e.call(this,t)||this;return r.state={gradient:t.gradient.gradient,factor1:r.props.gradient.factor1.toString(),factor2:null===(n=r.props.gradient.factor2)||void 0===n?void 0:n.toString()},r}return a(t,e),t.prototype.shouldComponentUpdate=function(e,t){var n;return e.gradient!==this.props.gradient&&(t.gradient=e.gradient.gradient,t.factor1=e.gradient.factor1.toString(),t.factor2=null===(n=e.gradient.factor2)||void 0===n?void 0:n.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 c.createElement("div",{className:"gradient-step"},c.createElement("div",{className:"step"},"#"+this.props.lineIndex),c.createElement("div",{className:"factor1"},c.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 d.ParticleSystem&&c.createElement("div",{className:"factor2"},c.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)}})),c.createElement("div",{className:"step-value"},t.gradient.toFixed(2)),c.createElement("div",{className:"step-slider"},c.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))}})),c.createElement("div",{className:"gradient-delete hoverIcon",onClick:function(){return e.props.onDelete()}},c.createElement(k,{icon:fe})))},t}(c.Component),ar=function(e){function t(t){var n=e.call(this,t)||this;return n.state={gradient:t.gradient.gradient},n}return a(t,e),t.prototype.updateColor1=function(e){this.props.gradient instanceof d.ColorGradient?(this.props.gradient.color1=d.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=d.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 d.ColorGradient&&(this.props.gradient.color2=d.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 c.createElement("div",{className:"gradient-step"},c.createElement("div",{className:"step"},"#"+this.props.lineIndex),c.createElement("div",{className:"color1"},c.createElement(De,{value:t instanceof d.Color3Gradient?t.color:t.color1,onColorChanged:function(t){e.updateColor1(t)},disableAlpha:t instanceof d.Color3Gradient})),this.props.host instanceof d.ParticleSystem&&t instanceof d.ColorGradient&&c.createElement("div",{className:"color2"},c.createElement(De,{value:t.color2?t.color2:new d.Color4,onColorChanged:function(t){e.updateColor2(t)}})),c.createElement("div",{className:"step-value"},t.gradient.toFixed(2)),c.createElement("div",{className:"step-slider"},c.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))}})),c.createElement("div",{className:"gradient-delete hoverIcon",onClick:function(){return e.props.onDelete()}},c.createElement(k,{icon:fe})))},t}(c.Component),or=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 c.createElement("div",{className:"linkButtonLine"},c.createElement("div",{className:"link",title:this.props.label,onClick:function(){return e.onLink()}},this.props.label),c.createElement("div",{className:"link-button"},c.createElement("button",{onClick:function(){return e.props.onClick()}},this.props.buttonLabel)),this.props.icon&&c.createElement("div",{className:"link-icon hoverIcon",onClick:function(){e.props.onIconClick&&e.props.onIconClick()}},c.createElement(k,{icon:this.props.icon})))},t}(c.Component);!function(e){e[e.Factor=0]="Factor",e[e.Color3=1]="Color3",e[e.Color4=2]="Color4"}(Ut||(Ut={}));var ir=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,n=t.indexOf(e);n>-1&&(t.splice(n,1),this.updateAndSync(),this.props.globalState.onCodeChangedObservable.notifyObservers({object:this.props.host,code:"TARGET."+this.props.codeRecorderPropertyName+".splice("+n+", 1);"}))},t.prototype.addNewStep=function(){var e=this.props.gradients;switch(this.props.mode){case Ut.Factor:var t=new d.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 Ut.Color4:var n=new d.ColorGradient(1,new d.Color4(1,1,1,1),new d.Color4(1,1,1,1));e.push(n),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 Ut.Color3:var r=new d.Color3Gradient(1,d.Color3.White());e.push(r),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 c.createElement("div",null,t&&t.length>0&&c.createElement("div",{className:"gradient-container"},c.createElement(or,{label:this.props.label,url:this.props.docLink,icon:fe,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,n){var r=e.props.codeRecorderPropertyName+"["+n+"]";switch(e.props.mode){case Ut.Factor:return c.createElement(rr,{globalState:e.props.globalState,lockObject:e.props.lockObject,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},host:e.props.host,codeRecorderPropertyName:r,key:"step-"+n,lineIndex:n,gradient:t,onDelete:function(){return e.deleteStep(t)}});case Ut.Color4:return c.createElement(ar,{globalState:e.props.globalState,host:e.props.host,codeRecorderPropertyName:r,lockObject:e.props.lockObject,isColor3:!1,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},key:"step-"+n,lineIndex:n,gradient:t,onDelete:function(){return e.deleteStep(t)}});case Ut.Color3:return c.createElement(ar,{globalState:e.props.globalState,host:e.props.host,codeRecorderPropertyName:r,lockObject:e.props.lockObject,isColor3:!0,onCheckForReOrder:function(){return e.checkForReOrder()},onUpdateGradient:function(){return e.updateAndSync()},key:"step-"+n,lineIndex:n,gradient:t,onDelete:function(){return e.deleteStep(t)}})}}))),(!t||0===t.length)&&c.createElement(Ue,{label:"Use "+this.props.label,onClick:function(){e.props.onCreateRequired(),e.forceUpdate()}}))},t}(c.Component),lr=function(e){function t(t){var n=e.call(this,t)||this;return n._snippetUrl="https://snippet.babylonjs.com",n}return a(t,e),t.prototype.renderEmitter=function(){var e,t=this.props.system,n="particlesystem.particleEmitterType";switch(null===(e=t.particleEmitterType)||void 0===e?void 0:e.getClassName()){case"BoxParticleEmitter":return c.createElement(Zn,{replaySourceReplacement:n,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"ConeParticleEmitter":return c.createElement(qn,{replaySourceReplacement:n,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"CylinderParticleEmitter":return c.createElement(Qn,{replaySourceReplacement:n,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"HemisphericParticleEmitter":return c.createElement($n,{replaySourceReplacement:n,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"MeshParticleEmitter":return c.createElement(nr,{replaySourceReplacement:n,lockObject:this.props.lockObject,scene:t.getScene(),globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"PointParticleEmitter":return c.createElement(Jn,{replaySourceReplacement:n,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable});case"SphereParticleEmitter":return c.createElement(er,{replaySourceReplacement:n,lockObject:this.props.lockObject,globalState:this.props.globalState,emitter:t.particleEmitterType,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}return null},t.prototype.raiseOnPropertyChanged=function(e,t,n){if(this.props.onPropertyChangedObservable){var r=this.props.system;this.props.onPropertyChangedObservable.notifyObservers({object:r,property:e,value:t,initialValue:n})}},t.prototype.renderControls=function(){var e=this,t=this.props.system;if(t instanceof d.GPUParticleSystem){var n=t.isStarted()&&!t.isStopped();return c.createElement(Ue,{label:n?"Stop":"Start",onClick:function(){n?(t.stop(),t.reset()):t.start(),e.forceUpdate()}})}var r=t.isStarted();return c.createElement(c.Fragment,null,!t.isStopping()&&c.createElement(Ue,{label:r?"Stop":"Start",onClick:function(){r?t.stop():t.start(),e.forceUpdate()}}),t.isStopping()&&c.createElement(Ee,{label:"System is stoppping...",ignoreValue:!0}))},t.prototype.saveToFile=function(){var e=this.props.system,t=JSON.stringify(e.serialize(!0));d.Tools.Download(new Blob([t]),"particleSystem.json")},t.prototype.loadFromFile=function(e){var t=this,n=this.props.system,r=n.getScene();d.Tools.ReadFile(e,(function(e){var a=new TextDecoder("utf-8"),o=JSON.parse(a.decode(e)),i=n instanceof d.GPUParticleSystem;n.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null);var l=i?d.GPUParticleSystem.Parse(o,r,""):d.ParticleSystem.Parse(o,r,"");t.props.globalState.onSelectionChangedObservable.notifyObservers(l)}),void 0,!0)},t.prototype.loadFromSnippet=function(){var e=this,t=this.props.system,n=t.getScene(),r=t instanceof d.GPUParticleSystem,a=window.prompt("Please enter the snippet ID to use");a&&(t.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),d.ParticleHelper.CreateFromSnippetAsync(a,n,r).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,n=JSON.stringify(t.serialize(!0)),r=new XMLHttpRequest;r.onreadystatechange=function(){if(4==r.readyState)if(200==r.status){var n=JSON.parse(r.responseText),a=t.snippetId||"_BLANK";t.snippetId=n.id,n.version&&"0"!=n.version&&(t.snippetId+="#"+n.version),e.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(t.snippetId);var o=window;o.Playground&&a&&o.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp('ParticleHelper.CreateFromSnippetAsync\\("'+a,"g"),replace:'ParticleHelper.CreateFromSnippetAsync("'+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")},r.open("POST",this._snippetUrl+(t.snippetId?"/"+t.snippetId:""),!0),r.setRequestHeader("Content-Type","application/json");var a={payload:JSON.stringify({particleSystem:n}),name:"",description:"",tags:""};r.send(JSON.stringify(a))},t.prototype.render=function(){var e,t,n=this,r=this.props.system,a=[{label:"Add",value:d.ParticleSystem.BLENDMODE_ADD},{label:"Multiply",value:d.ParticleSystem.BLENDMODE_MULTIPLY},{label:"Multiply Add",value:d.ParticleSystem.BLENDMODE_MULTIPLYADD},{label:"OneOne",value:d.ParticleSystem.BLENDMODE_ONEONE},{label:"Standard",value:d.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}}))),c.createElement("div",{className:"pane"},c.createElement(Ve,{globalState:this.props.globalState,target:r,lockObject:this.props.lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"ID",value:r.id}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:r,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ee,{label:"Class",value:r.getClassName()}),c.createElement(Ee,{label:"Capacity",value:r.getCapacity().toString()}),c.createElement(Ee,{label:"Active count",value:r.getActiveCount().toString()}),c.createElement(mt,{label:"Texture",texture:r.particleTexture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),c.createElement(Le,{label:"Blend mode",options:a,target:r,propertyName:"blendMode",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"World offset",target:r,propertyName:"worldOffset",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Be,{label:"Gravity",target:r,propertyName:"gravity",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Is billboard",target:r,propertyName:"isBillboardBased",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Is local",target:r,propertyName:"isLocal",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Force depth write",target:r,propertyName:"forceDepthWrite",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Update speed",target:r,propertyName:"updateSpeed",minimum:0,maximum:.1,decimalCount:3,step:.001,onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(xe,{globalState:this.props.globalState,title:"COMMANDS"},this.renderControls(),c.createElement(Ue,{label:"Dispose",onClick:function(){n.props.globalState.onSelectionChangedObservable.notifyObservers(null),r.dispose()}})),c.createElement(xe,{globalState:this.props.globalState,title:"FILE"},c.createElement(it,{label:"Load",onClick:function(e){return n.loadFromFile(e)},accept:".json"}),c.createElement(Ue,{label:"Save",onClick:function(){return n.saveToFile()}})),c.createElement(xe,{globalState:this.props.globalState,title:"SNIPPET"},r.snippetId&&c.createElement(Ee,{label:"Snippet ID",value:r.snippetId}),c.createElement(Ue,{label:"Load from snippet server",onClick:function(){return n.loadFromSnippet()}}),c.createElement(Ue,{label:"Save to snippet server",onClick:function(){return n.saveToSnippet()}})),c.createElement(xe,{globalState:this.props.globalState,title:"EMITTER",closed:!0},c.createElement(Le,{label:"Emitter",options:i,target:r,propertyName:"emitter",noDirectUpdate:!0,onSelect:function(e){switch(e){case-1:n.raiseOnPropertyChanged("emitter",null,r.emitter),r.emitter=null;break;case 0:n.raiseOnPropertyChanged("emitter",d.Vector3.Zero(),r.emitter),r.emitter=d.Vector3.Zero();break;default:n.raiseOnPropertyChanged("emitter",o[e-1],r.emitter),r.emitter=o[e-1]}n.forceUpdate()},extractValue:function(){if(!r.emitter)return-1;if(void 0!==r.emitter.x)return 0;var e=o.indexOf(r.emitter);return e>-1?e+1:-1}}),r.emitter&&void 0===r.emitter.x&&c.createElement(Ee,{label:"Link to emitter",value:r.emitter.name,onLink:function(){return n.props.globalState.onSelectionChangedObservable.notifyObservers(r.emitter)}}),r.emitter&&void 0!==r.emitter.x&&c.createElement(Be,{label:"Position",target:r,propertyName:"emitter",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Le,{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:r,propertyName:"particleEmitterType",noDirectUpdate:!0,onSelect:function(e){var t=r.particleEmitterType;switch(e){case 0:r.particleEmitterType=new d.BoxParticleEmitter;break;case 1:r.particleEmitterType=new d.ConeParticleEmitter;break;case 2:r.particleEmitterType=new d.CylinderParticleEmitter;break;case 3:r.particleEmitterType=new d.HemisphericParticleEmitter;break;case 4:r.particleEmitterType=new d.MeshParticleEmitter;break;case 5:r.particleEmitterType=new d.PointParticleEmitter;break;case 6:r.particleEmitterType=new d.SphereParticleEmitter}n.raiseOnPropertyChanged("particleEmitterType",r.particleEmitterType,t),n.forceUpdate()},extractValue:function(){var e;switch(null===(e=r.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()),c.createElement(xe,{globalState:this.props.globalState,title:"EMISSION",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Rate",target:r,propertyName:"emitRate",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ParticleSystem&&c.createElement(ir,{globalState:this.props.globalState,gradients:r.getEmitRateGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#emit-rate-over-time",onCreateRequired:function(){r.addEmitRateGradient(0,50,50),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addEmitRateGradient(0, 50, 50);"})},mode:Ut.Factor,host:r,codeRecorderPropertyName:"getEmitRateGradients()",lockObject:this.props.lockObject}),c.createElement(We,{lockObject:this.props.lockObject,label:"Min emit power",target:r,propertyName:"minEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max emit power",target:r,propertyName:"maxEmitPower",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getVelocityGradients(),label:"Velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#velocity-over-time",onCreateRequired:function(){r.addVelocityGradient(0,.1,.1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addVelocityGradient(0, 0.1, 0.1);"})},mode:Ut.Factor,host:r,codeRecorderPropertyName:"getVelocityGradients()",lockObject:this.props.lockObject}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getLimitVelocityGradients(),label:"Limit velocity gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#limit-velocity-over-time",onCreateRequired:function(){r.addLimitVelocityGradient(0,.1,.1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addLimitVelocityGradient(0, 0.1, 0.1);"})},mode:Ut.Factor,host:r,codeRecorderPropertyName:"getLimitVelocityGradients()",lockObject:this.props.lockObject}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getDragGradients(),label:"Drag gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#drag-factor",onCreateRequired:function(){r.addDragGradient(0,.1,.1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addDragGradient(0, 0.1, 0.1);"})},host:r,codeRecorderPropertyName:"getDragGradients()",mode:Ut.Factor,lockObject:this.props.lockObject})),c.createElement(xe,{globalState:this.props.globalState,title:"SIZE",closed:!0},(!r.getSizeGradients()||0===(null===(e=r.getSizeGradients())||void 0===e?void 0:e.length))&&c.createElement(c.Fragment,null,c.createElement(We,{lockObject:this.props.lockObject,label:"Min size",target:r,propertyName:"minSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max size",target:r,propertyName:"maxSize",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(We,{lockObject:this.props.lockObject,label:"Min scale X",target:r,propertyName:"minScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max scale X",target:r,propertyName:"maxScaleX",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Min scale Y",target:r,propertyName:"minScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max scale Y",target:r,propertyName:"maxScaleY",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ParticleSystem&&c.createElement(ir,{globalState:this.props.globalState,gradients:r.getStartSizeGradients(),label:"Start size gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#start-size-over-time",onCreateRequired:function(){r.addStartSizeGradient(0,1,1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addStartSizeGradient(0, 1, 1);"})},host:r,codeRecorderPropertyName:"getStartSizeGradients()",mode:Ut.Factor,lockObject:this.props.lockObject}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getSizeGradients(),label:"Size gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#size",onCreateRequired:function(){r.addSizeGradient(0,1,1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addSizeGradient(0, 1, 1);"})},host:r,codeRecorderPropertyName:"getSizeGradients()",mode:Ut.Factor,lockObject:this.props.lockObject})),c.createElement(xe,{globalState:this.props.globalState,title:"LIFETIME",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Min lifetime",target:r,propertyName:"minLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max lifetime",target:r,propertyName:"maxLifeTime",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Target stop duration",target:r,propertyName:"targetStopDuration",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),r instanceof d.ParticleSystem&&c.createElement(ir,{globalState:this.props.globalState,gradients:r.getLifeTimeGradients(),label:"Lifetime gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#lifetime",onCreateRequired:function(){r.addLifeTimeGradient(0,1,1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addLifeTimeGradient(0, 1, 1);"})},host:r,codeRecorderPropertyName:"getLifeTimeGradients()",mode:Ut.Factor,lockObject:this.props.lockObject})),c.createElement(xe,{globalState:this.props.globalState,title:"COLORS",closed:!0},(!r.getColorGradients()||0===(null===(t=r.getColorGradients())||void 0===t?void 0:t.length))&&c.createElement(c.Fragment,null,c.createElement(Kn,{label:"Color 1",target:r,propertyName:"color1",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Kn,{label:"Color 2",target:r,propertyName:"color2",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Kn,{label:"Color dead",target:r,propertyName:"colorDead",onPropertyChangedObservable:this.props.onPropertyChangedObservable})),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getColorGradients(),label:"Color gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#particle-colors",onCreateRequired:function(){r.addColorGradient(0,new d.Color4(0,0,0,1),new d.Color4(0,0,0,1)),r.addColorGradient(1,new d.Color4(1,1,1,1),new d.Color4(1,1,1,1)),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addColorGradient(0, new BABYLON.Color4(0, 0, 0, 1), new BABYLON.Color4(0, 0, 0, 1));"}),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addColorGradient(1, new BABYLON.Color4(1, 1, 1, 1), new BABYLON.Color4(1, 1, 1, 1));"})},host:r,codeRecorderPropertyName:"getColorGradients()",mode:Ut.Color4,lockObject:this.props.lockObject}),r instanceof d.ParticleSystem&&c.createElement(c.Fragment,null,c.createElement(Pe,{label:"Enable ramp grandients",target:r,propertyName:"useRampGradients"}),r.useRampGradients&&c.createElement(c.Fragment,null,c.createElement(ir,{globalState:this.props.globalState,gradients:r.getRampGradients(),label:"Ramp gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){r.addRampGradient(0,d.Color3.White()),r.addRampGradient(1,d.Color3.Black()),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addRampGradient(0, BABYLON.Color3.White());"}),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addRampGradient(1, BABYLON.Color3.Black());"})},mode:Ut.Color3,host:r,codeRecorderPropertyName:"getRampGradients()",lockObject:this.props.lockObject}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getColorRemapGradients(),label:"Color remap gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){r.addColorRemapGradient(0,1,1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addColorRemapGradient(0, 1, 1);"})},host:r,codeRecorderPropertyName:"getColorRemapGradients()",mode:Ut.Factor,lockObject:this.props.lockObject}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getAlphaRemapGradients(),label:"Alpha remap gradients",docLink:"https://doc.babylonjs.com/babylon101/particles#ramp-gradients",onCreateRequired:function(){r.addAlphaRemapGradient(0,1,1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addAlphaRemapGradient(0, 1, 1);"})},host:r,codeRecorderPropertyName:"getAlphaRemapGradients()",mode:Ut.Factor,lockObject:this.props.lockObject})))),c.createElement(xe,{globalState:this.props.globalState,title:"ROTATION",closed:!0},c.createElement(We,{lockObject:this.props.lockObject,label:"Min angular speed",target:r,propertyName:"minAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max angular speed",target:r,propertyName:"maxAngularSpeed",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Min initial rotation",target:r,propertyName:"minInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{lockObject:this.props.lockObject,label:"Max initial rotation",target:r,propertyName:"maxInitialRotation",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(ir,{globalState:this.props.globalState,gradients:r.getAngularSpeedGradients(),label:"Angular speed gradients",docLink:"hhttps://doc.babylonjs.com/babylon101/particles#rotation",onCreateRequired:function(){r.addAngularSpeedGradient(0,.1,.1),n.props.globalState.onCodeChangedObservable.notifyObservers({object:r,code:"TARGET.addAngularSpeedGradient(0, 0.1, 0.1);"})},host:r,codeRecorderPropertyName:"getAngularSpeedGradients()",mode:Ut.Factor,lockObject:this.props.lockObject})),c.createElement(xe,{globalState:this.props.globalState,title:"SPRITESHEET",closed:!0},c.createElement(Pe,{label:"Animation sheet enabled",target:r,propertyName:"isAnimationSheetEnabled",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{label:"First sprite index",isInteger:!0,target:r,propertyName:"startSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{label:"Last sprite index",isInteger:!0,target:r,propertyName:"endSpriteCellID",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Random start cell index",target:r,propertyName:"spriteRandomStartCell",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{label:"Cell width",isInteger:!0,target:r,propertyName:"spriteCellWidth",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(We,{label:"Cell height",isInteger:!0,target:r,propertyName:"spriteCellHeight",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Me,{label:"Cell change speed",target:r,propertyName:"spriteCellChangeSpeed",minimum:0,maximum:10,step:.1,onPropertyChangedObservable:this.props.onPropertyChangedObservable})))},t}(c.Component),sr=function(e){function t(t){var n=e.call(this,t)||this;return n._snippetUrl="https://snippet.babylonjs.com",n}return a(t,e),t.prototype.addNewSprite=function(){var e,t=this.props.spriteManager,n=new d.Sprite("new sprite",t);null===(e=this.props.onSelectionChangedObservable)||void 0===e||e.notifyObservers(n),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));d.Tools.Download(new Blob([t]),"spriteManager.json")},t.prototype.loadFromFile=function(e){var t=this,n=this.props.spriteManager,r=n.scene;d.Tools.ReadFile(e,(function(e){var a=new TextDecoder("utf-8"),o=JSON.parse(a.decode(e));n.dispose(),t.props.globalState.onSelectionChangedObservable.notifyObservers(null);var i=d.SpriteManager.Parse(o,r,"");t.props.globalState.onSelectionChangedObservable.notifyObservers(i)}),void 0,!0)},t.prototype.loadFromSnippet=function(){var e=this,t=this.props.spriteManager,n=t.scene,r=window.prompt("Please enter the snippet ID to use");r&&(t.dispose(),this.props.globalState.onSelectionChangedObservable.notifyObservers(null),d.SpriteManager.CreateFromSnippetAsync(r,n).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,n=JSON.stringify(t.serialize(!0)),r=new XMLHttpRequest;r.onreadystatechange=function(){if(4==r.readyState)if(200==r.status){var n=JSON.parse(r.responseText),a=t.snippetId||"_BLANK";t.snippetId=n.id,n.version&&"0"!=n.version&&(t.snippetId+="#"+n.version),e.forceUpdate(),navigator.clipboard&&navigator.clipboard.writeText(t.snippetId);var o=window;o.Playground&&a&&o.Playground.onRequestCodeChangeObservable.notifyObservers({regex:new RegExp('SpriteManager.CreateFromSnippetAsync\\("'+a,"g"),replace:'SpriteManager.CreateFromSnippetAsync("'+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")},r.open("POST",this._snippetUrl+(t.snippetId?"/"+t.snippetId:""),!0),r.setRequestHeader("Content-Type","application/json");var a={payload:JSON.stringify({spriteManager:n}),name:"",description:"",tags:""};r.send(JSON.stringify(a))},t.prototype.render=function(){var e=this,t=this.props.spriteManager,n=[{label:"Combine",value:d.Constants.ALPHA_COMBINE},{label:"One one",value:d.Constants.ALPHA_ONEONE},{label:"Add",value:d.Constants.ALPHA_ADD},{label:"Subtract",value:d.Constants.ALPHA_SUBTRACT},{label:"Multiply",value:d.Constants.ALPHA_MULTIPLY},{label:"Maximized",value:d.Constants.ALPHA_MAXIMIZED},{label:"Pre-multiplied",value:d.Constants.ALPHA_PREMULTIPLIED}];return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:t,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Ee,{label:"Unique ID",value:t.uniqueId.toString()}),c.createElement(Ee,{label:"Capacity",value:t.capacity.toString()}),c.createElement(mt,{label:"Texture",texture:t.texture,onSelectionChangedObservable:this.props.onSelectionChangedObservable}),t.sprites.length-1&&(this._animationGroup.targetedAnimations.splice(t,1),null===(e=this.props.onSelectionChangedObservable)||void 0===e||e.notifyObservers(null),this._animationGroup.isPlaying&&(this._animationGroup.stop(),this._animationGroup.start()))}},t.prototype.render=function(){var e=this,t=this.props.targetedAnimation;return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"GENERAL"},c.createElement(Ee,{label:"Class",value:t.getClassName()}),c.createElement(Ge,{lockObject:this.props.lockObject,label:"Name",target:t.animation,propertyName:"name",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),t.target.name&&c.createElement(Ee,{label:"Target",value:t.target.name,onLink:function(){return e.props.globalState.onSelectionChangedObservable.notifyObservers(t)}}),c.createElement(Ue,{label:"Edit animation",onClick:function(){return e.onOpenAnimationCurveEditor()}}),this._isCurveEditorOpen&&c.createElement(dt,{id:"curve-editor",title:"Curve Animation Editor",size:{width:1024,height:512},onOpen:function(e){},onClose:function(t){return e.onCloseAnimationCurveEditor(t)}},c.createElement(ut,{scene:this.props.scene,entity:t,playOrPause:function(){return e.playOrPause()},lockObject:this.props.lockObject,globalState:this.props.globalState,close:function(t){return e.onCloseAnimationCurveEditor(t.view)}})),c.createElement(Ue,{label:"Dispose",onClick:function(){return e.deleteAnimation()}})))},t}(c.Component),ur=function(e){function t(t){var n=e.call(this,t)||this;return n._lockObject=new vn,n}return a(t,e),t.prototype.timerRefresh=function(){this._lockObject.lock||this.forceUpdate()},t.prototype.componentDidMount=function(){var e=this;this._timerIntervalId=window.setInterval((function(){return e.timerRefresh()}),500)},t.prototype.componentWillUnmount=function(){window.clearInterval(this._timerIntervalId)},t.prototype.render=function(){var e=this.props.selectedEntity;if(!e)return c.createElement("div",{className:"infoMessage"},"Please select an entity in the scene explorer.");if(e.getClassName){var t=e.getClassName();if("Scene"===t){var n=e;return c.createElement(Qt,{scene:n,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Sprite"===t){var r=e;return c.createElement(cr,{sprite:r,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("SpriteManager"===t){var a=e;return c.createElement(sr,{spriteManager:a,globalState:this.props.globalState,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Mesh")){var o=e;if(o.getTotalVertices()>0)return c.createElement("div",null,c.createElement(cn,{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 c.createElement(lr,{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 l=e;return c.createElement(rn,{globalState:this.props.globalState,camera:l,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("ArcRotateCamera")){var s=e;return c.createElement(an,{globalState:this.props.globalState,camera:s,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("HemisphericLight"===t){var p=e;return c.createElement(Jt,{globalState:this.props.globalState,light:p,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PointLight"===t){var u=e;return c.createElement(tn,{globalState:this.props.globalState,light:u,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("DirectionalLight"===t){u=e;return c.createElement(Hn,{globalState:this.props.globalState,light:u,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("SpotLight"===t){u=e;return c.createElement(Gn,{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 c.createElement(pn,{transformNode:d,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("MultiMaterial"===t){var h=e;return c.createElement(Xn,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("StandardMaterial"===t){h=e;return c.createElement(gt,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("NodeMaterial"===t){h=e;return c.createElement(Yn,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRMaterial"===t){h=e;return c.createElement(Xt,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRMetallicRoughnessMaterial"===t){h=e;return c.createElement(Tn,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("PBRSpecularGlossinessMaterial"===t){h=e;return c.createElement(Nn,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("BackgroundMaterial"===t){h=e;return c.createElement(un,{globalState:this.props.globalState,material:h,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("AnimationGroup"===t){var b=e;return c.createElement(gn,{globalState:this.props.globalState,animationGroup:b,scene:this.props.scene,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("TargetedAnimation"===t){var f=e;return c.createElement(pr,{globalState:this.props.globalState,targetedAnimation:f,scene:this.props.scene,lockObject:this._lockObject,onSelectionChangedObservable:this.props.onSelectionChangedObservable,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Material")){h=e;return c.createElement(ft,{material:h,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("DefaultRenderingPipeline")){var m=e;return c.createElement(jn,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("LensRenderingPipeline")){m=e;return c.createElement(Vn,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("SSAORenderingPipeline")){m=e;return c.createElement(Dn,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("SSAO2RenderingPipeline")){m=e;return c.createElement(zn,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("RenderingPipeline")){m=e;return c.createElement(In,{renderPipeline:m,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("PostProcess")){var g=e;return c.createElement(Rn,{postProcess:g,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Texture")){var v=e;return c.createElement(Kt,{texture:v,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Skeleton")){var y=e;return c.createElement(Fn,{skeleton:y,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(-1!==t.indexOf("Bone")){var C=e;return c.createElement(Bn,{bone:C,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("TextBlock"===t){var E=e;return c.createElement(bn,{textBlock:E,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("InputText"===t){var x=e;return c.createElement(fn,{inputText:x,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ColorPicker"===t){var O=e;return c.createElement(mn,{colorPicker:O,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Image"===t){var S=e;return c.createElement(yn,{image:S,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Slider"===t){var w=e;return c.createElement(Cn,{slider:w,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ImageBasedSlider"===t){var P=e;return c.createElement(En,{imageBasedSlider:P,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Rectangle"===t){var k=e;return c.createElement(xn,{rectangle:k,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("StackPanel"===t){var _=e;return c.createElement(An,{stackPanel:_,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Grid"===t){var T=e;return c.createElement(_n,{grid:T,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("ScrollViewer"===t){var N=e;return c.createElement(kn,{scrollViewer:N,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Ellipse"===t){var A=e;return c.createElement(On,{ellipse:A,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Checkbox"===t){var M=e;return c.createElement(Sn,{checkbox:M,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("RadioButton"===t){var R=e;return c.createElement(wn,{radioButton:R,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if("Line"===t){var L=e;return c.createElement(Pn,{line:L,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}if(e._host){var I=e;return c.createElement(hn,{control:I,globalState:this.props.globalState,lockObject:this._lockObject,onPropertyChangedObservable:this.props.onPropertyChangedObservable})}}return null},t}(Ce),dr=function(e){function t(t){var n=e.call(this,t)||this;return n._backStack=new Array,n.state={isBackVisible:!1},n}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?c.createElement("div",{id:"back",onClick:function(){return e.goBack()}},c.createElement(k,{icon:M})):null:c.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 c.createElement("div",{id:"header"},this.renderLogo(),c.createElement("div",{id:"title"},this.props.title),c.createElement("div",{id:"commands"},!this.props.noCommands&&!this.props.noExpand&&c.createElement("div",{className:"expand",onClick:function(){return e.props.onPopup()}},c.createElement(k,{icon:ve})),!this.props.noCommands&&!this.props.noClose&&c.createElement("div",{className:"close",onClick:function(){return e.props.onClose()}},c.createElement(k,{icon:he}))))},t}(c.Component),hr=function(e){function t(t){return e.call(this,t)||this}return a(t,e),t.prototype.render=function(){return this.props.icon?c.createElement("div",{className:"iconMessageLine"},c.createElement("div",{className:"icon",style:{color:this.props.color?this.props.color:""}},c.createElement(k,{icon:this.props.icon})),c.createElement("div",{className:"value",title:this.props.text},this.props.text)):c.createElement("div",{className:"messageLine"},c.createElement("div",{className:"value",title:this.props.text,style:{color:this.props.color?this.props.color:""}},this.props.text))},t}(c.Component),br=n(16),fr=function(e){function t(t){var n=e.call(this,t)||this;n._onValidationResultsUpdatedObserver=null;var r=n.props.globalState.glTFLoaderExtensionDefaults;r.MSFT_lod=r.MSFT_lod||{enabled:!0,maxLODsToLoad:10},r.MSFT_minecraftMesh=r.MSFT_minecraftMesh||{enabled:!0},r.MSFT_sRGBFactors=r.MSFT_sRGBFactors||{enabled:!0},r.MSFT_audio_emitter=r.MSFT_audio_emitter||{enabled:!0},r.KHR_xmp=r.KHR_xmp||{enabled:!0},r.KHR_draco_mesh_compression=r.KHR_draco_mesh_compression||{enabled:!0},r.KHR_mesh_quantization=r.KHR_mesh_quantization||{enabled:!0},r.KHR_materials_pbrSpecularGlossiness=r.KHR_materials_pbrSpecularGlossiness||{enabled:!0},r.KHR_materials_clearcoat=r.KHR_materials_clearcoat||{enabled:!0},r.KHR_materials_ior=r.KHR_materials_ior||{enabled:!0},r.KHR_materials_sheen=r.KHR_materials_sheen||{enabled:!0},r.KHR_materials_specular=r.KHR_materials_specular||{enabled:!0},r.KHR_materials_unlit=r.KHR_materials_unlit||{enabled:!0},r.KHR_materials_variants=r.KHR_materials_variants||{enabled:!0},r.KHR_materials_transmission=r.KHR_materials_transmission||{enabled:!0},r.KHR_lights_punctual=r.KHR_lights_punctual||{enabled:!0},r.KHR_texture_basisu=r.KHR_texture_basisu||{enabled:!0},r.KHR_texture_transform=r.KHR_texture_transform||{enabled:!0},r.EXT_lights_image_based=r.EXT_lights_image_based||{enabled:!0},r.EXT_mesh_gpu_instancing=r.EXT_mesh_gpu_instancing||{enabled:!0};var a=n.props.globalState.glTFLoaderDefaults;return void 0===a.animationStartMode&&(a.animationStartMode=br.GLTFLoaderAnimationStartMode.FIRST),a.capturePerformanceCounters=a.capturePerformanceCounters||!1,a.compileMaterials=a.compileMaterials||!1,a.compileShadowGenerators=a.compileShadowGenerators||!1,a.coordinateSystemMode=a.coordinateSystemMode||br.GLTFLoaderCoordinateSystemMode.AUTO,a.loggingEnabled=a.loggingEnabled||!1,a.transparencyAsCoverage=a.transparencyAsCoverage||!1,a.useClipPlane=a.useClipPlane||!1,a.validate=a.validate||!0,n}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 n=t.issues;return c.createElement(xe,{globalState:this.props.globalState,title:"GLTF VALIDATION",closed:!n.numErrors&&!n.numWarnings},0!==n.numErrors&&c.createElement(hr,{text:"Your file has some validation issues",icon:be,color:"Red"}),0===n.numErrors&&c.createElement(hr,{text:"Your file is a valid glTF file",icon:H,color:"Green"}),c.createElement(Ee,{label:"Errors",value:n.numErrors.toString()}),c.createElement(Ee,{label:"Warnings",value:n.numWarnings.toString()}),c.createElement(Ee,{label:"Infos",value:n.numInfos.toString()}),c.createElement(Ee,{label:"Hints",value:n.numHints.toString()}),c.createElement(Ee,{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,n=[{label:"None",value:br.GLTFLoaderAnimationStartMode.NONE},{label:"First",value:br.GLTFLoaderAnimationStartMode.FIRST},{label:"ALL",value:br.GLTFLoaderAnimationStartMode.ALL}],r=[{label:"Auto",value:br.GLTFLoaderCoordinateSystemMode.AUTO},{label:"Right handed",value:br.GLTFLoaderCoordinateSystemMode.FORCE_RIGHT_HANDED}];return c.createElement("div",null,c.createElement(xe,{globalState:this.props.globalState,title:"GLTF LOADER",closed:!0},c.createElement(Le,{label:"Animation start mode",options:n,target:t,propertyName:"animationStartMode"}),c.createElement(Pe,{label:"Capture performance counters",target:t,propertyName:"capturePerformanceCounters"}),c.createElement(Pe,{label:"Compile materials",target:t,propertyName:"compileMaterials"}),c.createElement(Pe,{label:"Compile shadow generators",target:t,propertyName:"compileShadowGenerators"}),c.createElement(Le,{label:"Coordinate system",options:r,target:t,propertyName:"coordinateSystemMode"}),c.createElement(Pe,{label:"Enable logging",target:t,propertyName:"loggingEnabled"}),c.createElement(Pe,{label:"Transparency as coverage",target:t,propertyName:"transparencyAsCoverage"}),c.createElement(Pe,{label:"Use clip plane",target:t,propertyName:"useClipPlane"}),c.createElement(Pe,{label:"Validate",target:t,propertyName:"validate"}),c.createElement(hr,{text:"You need to reload your file to see these changes"})),c.createElement(xe,{globalState:this.props.globalState,title:"GLTF EXTENSIONS",closed:!0},c.createElement(Pe,{label:"MSFT_lod",isSelected:function(){return e.MSFT_lod.enabled},onSelect:function(t){return e.MSFT_lod.enabled=t}}),c.createElement(We,{label:"Maximum LODs",target:e.MSFT_lod,propertyName:"maxLODsToLoad",additionalClass:"gltf-extension-property",isInteger:!0}),c.createElement(Pe,{label:"MSFT_minecraftMesh",isSelected:function(){return e.MSFT_minecraftMesh.enabled},onSelect:function(t){return e.MSFT_minecraftMesh.enabled=t}}),c.createElement(Pe,{label:"MSFT_sRGBFactors",isSelected:function(){return e.MSFT_sRGBFactors.enabled},onSelect:function(t){return e.MSFT_sRGBFactors.enabled=t}}),c.createElement(Pe,{label:"MSFT_audio_emitter",isSelected:function(){return e.MSFT_audio_emitter.enabled},onSelect:function(t){return e.MSFT_audio_emitter.enabled=t}}),c.createElement(Pe,{label:"KHR_xmp",isSelected:function(){return e.KHR_xmp.enabled},onSelect:function(t){return e.KHR_xmp.enabled=t}}),c.createElement(Pe,{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}}),c.createElement(Pe,{label:"KHR_mesh_quantization",isSelected:function(){return e.KHR_mesh_quantization.enabled},onSelect:function(t){return e.KHR_mesh_quantization.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_pbrSpecularGloss...",isSelected:function(){return e.KHR_materials_pbrSpecularGlossiness.enabled},onSelect:function(t){return e.KHR_materials_pbrSpecularGlossiness.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_clearcoat",isSelected:function(){return e.KHR_materials_clearcoat.enabled},onSelect:function(t){return e.KHR_materials_clearcoat.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_ior",isSelected:function(){return e.KHR_materials_ior.enabled},onSelect:function(t){return e.KHR_materials_ior.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_sheen",isSelected:function(){return e.KHR_materials_sheen.enabled},onSelect:function(t){return e.KHR_materials_sheen.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_specular",isSelected:function(){return e.KHR_materials_specular.enabled},onSelect:function(t){return e.KHR_materials_specular.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_unlit",isSelected:function(){return e.KHR_materials_unlit.enabled},onSelect:function(t){return e.KHR_materials_unlit.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_variants",isSelected:function(){return e.KHR_materials_variants.enabled},onSelect:function(t){return e.KHR_materials_variants.enabled=t}}),c.createElement(Pe,{label:"KHR_materials_transmission",isSelected:function(){return e.KHR_materials_transmission.enabled},onSelect:function(t){return e.KHR_materials_transmission.enabled=t}}),c.createElement(Pe,{label:"KHR_lights_punctual",isSelected:function(){return e.KHR_lights_punctual.enabled},onSelect:function(t){return e.KHR_lights_punctual.enabled=t}}),c.createElement(Pe,{label:"KHR_texture_basisu",isSelected:function(){return e.KHR_texture_basisu.enabled},onSelect:function(t){return e.KHR_texture_basisu.enabled=t}}),c.createElement(Pe,{label:"KHR_texture_transform",isSelected:function(){return e.KHR_texture_transform.enabled},onSelect:function(t){return e.KHR_texture_transform.enabled=t}}),c.createElement(Pe,{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}}),c.createElement(Pe,{label:"EXT_mesh_gpu_instancing",isSelected:function(){return e.EXT_mesh_gpu_instancing.enabled},onSelect:function(t){return e.EXT_mesh_gpu_instancing.enabled=t}}),c.createElement(hr,{text:"You need to reload your file to see these changes"})),t.validate&&this.props.globalState.validationResults&&this.renderValidation())},t}(c.Component),mr=n(98),gr=function(e){function t(n){var r=e.call(this,n)||this;return r._id=t._IDGenerator++,r.uploadInputRef=c.createRef(),r}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 c.createElement("div",{className:"buttonLine"},c.createElement("label",{htmlFor:"file-upload"+this._id,className:"file-upload"},this.props.label),c.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}(c.Component),vr=n(333),yr=function(e){function t(t){var n=e.call(this,t)||this;n._screenShotSize={precision:1},n._gifOptions={width:512,frequency:200},n._useWidthHeight=!1,n._isExporting=!1,n._crunchingGIF=!1,n.state={tag:"Record video"};var r=n.props.globalState.sceneImportDefaults;return void 0===r.overwriteAnimations&&(r.overwriteAnimations=!0),void 0===r.animationGroupLoadingMode&&(r.animationGroupLoadingMode=d.SceneLoaderAnimationGroupLoadingMode.Clean),n}return a(t,e),t.prototype.componentDidMount=function(){BABYLON.GLTF2Export||d.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&&d.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&&d.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 d.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 vr({workers:2,quality:10,workerScript:t});var n=this.props.scene.getEngine();this._previousRenderingScale=n.getHardwareScalingLevel(),n.setHardwareScalingLevel(n.getRenderWidth()/this._gifOptions.width|0);var r=setInterval((function(){e._gifRecorder?e._gifRecorder.addFrame(n.getRenderingCanvas(),{delay:e._gifOptions.frequency}):clearInterval(r)}),this._gifOptions.frequency);this._gifRecorder.on("finished",(function(r){e._crunchingGIF=!1,d.Tools.Download(r,"record.gif"),e.forceUpdate(),URL.revokeObjectURL(t),n.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():d.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,n=this.props.globalState.sceneImportDefaults.overwriteAnimations,r=this.props.globalState.sceneImportDefaults.animationGroupLoadingMode;new d.FilesInput(t.getEngine(),t,(function(){}),(function(){}),(function(){}),(function(e){}),(function(){}),(function(e){if(e){BABYLON.SceneLoader.ImportAnimationsAsync("file:",e,t,n,r,null,(function(e){e.animationGroups.length>0&&e.animationGroups[0].play(!0)}))}}),(function(){})).loadFiles(e)},t.prototype.shouldExport=function(e){if(e instanceof d.Mesh&&e.material){var t=e.material.reflectionTexture;if(t&&t.coordinatesMode===d.Texture.SKYBOX_MODE)return!1}return!0},t.prototype.exportGLTF=function(){var e=this,t=this.props.scene;this._isExporting=!0,this.forceUpdate(),mr.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(d.SceneSerializer.Serialize(e)),n=new Blob([t],{type:"octet/stream"});d.Tools.Download(n,"scene.babylon")},t.prototype.createEnvTexture=function(){var e=this.props.scene;d.EnvironmentTextureTools.CreateEnvTextureAsync(e.environmentTexture).then((function(e){var t=new Blob([e],{type:"octet/stream"});d.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 n=this.props.globalState.sceneImportDefaults,r=[{label:"Clean",value:d.SceneLoaderAnimationGroupLoadingMode.Clean},{label:"Stop",value:d.SceneLoaderAnimationGroupLoadingMode.Stop},{label:"Sync",value:d.SceneLoaderAnimationGroupLoadingMode.Sync},{label:"NoSync",value:d.SceneLoaderAnimationGroupLoadingMode.NoSync}];return c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"CAPTURE"},c.createElement(Ue,{label:"Screenshot",onClick:function(){return e.captureScreenshot()}}),c.createElement(Ue,{label:this.state.tag,onClick:function(){return e.recordVideo()}})),c.createElement(xe,{globalState:this.props.globalState,title:"CAPTURE WITH RTT"},c.createElement(Ue,{label:"Capture",onClick:function(){return e.captureRender()}}),c.createElement("div",{className:"vector3Line"},c.createElement(We,{label:"Precision",target:this._screenShotSize,propertyName:"precision",onPropertyChangedObservable:this.props.onPropertyChangedObservable}),c.createElement(Pe,{label:"Use Width/Height",onSelect:function(t){e._useWidthHeight=t,e.forceUpdate()},isSelected:function(){return e._useWidthHeight}}),this._useWidthHeight&&c.createElement("div",{className:"secondLine"},c.createElement(Ie,{label:"Width",precision:0,step:1,value:this._screenShotSize.width?this._screenShotSize.width:512,onChange:function(t){return e._screenShotSize.width=t}}),c.createElement(Ie,{label:"Height",precision:0,step:1,value:this._screenShotSize.height?this._screenShotSize.height:512,onChange:function(t){return e._screenShotSize.height=t}})))),c.createElement(xe,{globalState:this.props.globalState,title:"GIF"},this._crunchingGIF&&c.createElement(hr,{text:"Creating the GIF file..."}),!this._crunchingGIF&&c.createElement(Ue,{label:this._gifRecorder?"Stop":"Record",onClick:function(){return e.recordGIF()}}),!this._crunchingGIF&&!this._gifRecorder&&c.createElement(c.Fragment,null,c.createElement(We,{label:"Resolution",isInteger:!0,target:this._gifOptions,propertyName:"width"}),c.createElement(We,{label:"Frequency (ms)",isInteger:!0,target:this._gifOptions,propertyName:"frequency"}))),c.createElement(xe,{globalState:this.props.globalState,title:"REPLAY"},c.createElement(Ue,{label:"Generate replay code",onClick:function(){return e.exportReplay()}}),c.createElement(Ue,{label:"Reset",onClick:function(){return e.resetReplay()}})),c.createElement(xe,{globalState:this.props.globalState,title:"SCENE IMPORT"},c.createElement(gr,{label:"Import animations",accept:"gltf",onClick:function(t){return e.importAnimations(t)}}),c.createElement(Pe,{label:"Overwrite animations",target:n,propertyName:"overwriteAnimations",onSelect:function(t){n.overwriteAnimations=t,e.forceUpdate()}}),!1===n.overwriteAnimations&&c.createElement(Le,{label:"Animation merge mode",options:r,target:n,propertyName:"animationGroupLoadingMode"})),c.createElement(xe,{globalState:this.props.globalState,title:"SCENE EXPORT"},this._isExporting&&c.createElement(Ee,{label:"Please wait..exporting",ignoreValue:!0}),!this._isExporting&&c.createElement(c.Fragment,null,c.createElement(Ue,{label:"Export to GLB",onClick:function(){return e.exportGLTF()}}),c.createElement(Ue,{label:"Export to Babylon",onClick:function(){return e.exportBabylon()}}),!t.getEngine().premultipliedAlpha&&t.environmentTexture&&t.environmentTexture._prefiltered&&t.activeCamera&&c.createElement(Ue,{label:"Generate .env texture",onClick:function(){return e.createEnvTexture()}}))),BABYLON.GLTFFileLoader&&c.createElement(fr,{scene:t,globalState:this.props.globalState}))},t}(Ce),Cr=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 c.createElement("div",{className:"pane"},c.createElement(xe,{globalState:this.props.globalState,title:"UI"},c.createElement(Pe,{label:"Only display Euler values",target:e,propertyName:"onlyUseEulers"}),c.createElement(Pe,{label:"Ignore backfaces when picking",target:e,propertyName:"ignoreBackfacesForPicking"})))},t}(Ce);n(334);var Er=function(e){function t(t){var n=e.call(this,t)||this;n._once=!0;var r=void 0===t.initialTab?d.DebugLayerTab.Properties:t.initialTab;if(n.props.globalState){var a=n.props.globalState.validationResults;a&&(a.issues.numErrors||a.issues.numWarnings)&&(r=d.DebugLayerTab.Tools)}return n.state={selectedEntity:null,selectedIndex:r},n}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:d.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?c.createElement(N,{selectedIndex:this.state.selectedIndex,onSelectedIndexChange:function(t){return e.changeSelectedTab(t)}},c.createElement(ur,{title:"Properties",icon:$,scene:this.props.scene,selectedEntity:this.state.selectedEntity,globalState:this.props.globalState,onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,onPropertyChangedObservable:this.props.globalState.onPropertyChangedObservable}),c.createElement(Te,{title:"Debug",icon:z,scene:this.props.scene,globalState:this.props.globalState}),c.createElement(we,{title:"Statistics",icon:B,scene:this.props.scene,globalState:this.props.globalState}),c.createElement(yr,{title:"Tools",icon:ye,scene:this.props.scene,globalState:this.props.globalState}),c.createElement(Cr,{title:"Settings",icon:U,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?c.createElement("div",{id:"actionTabs"},!this.props.noHeader&&c.createElement(dr,{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)),c.createElement(Ae.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&&c.createElement(dr,{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}(c.Component),xr={prefix:"far",iconName:"eye",icon:[576,512,[],"f06e","M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z"]},Or={prefix:"far",iconName:"eye-slash",icon:[640,512,[],"f070","M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z"]},Sr={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"]},wr={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"]},Pr=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 c.createElement("div",{className:"title",onClick:function(){return e.onClick()}},c.createElement("div",{className:"titleIcon"},c.createElement(k,{icon:this.props.icon,color:this.props.color})),c.createElement("div",{className:"titleText"},this.props.label||"no name"))},t}(c.Component),kr=function(e){function t(t){var n=e.call(this,t)||this;return n.state={popupVisible:!1},n.extensionRef=c.createRef(),n}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=[],n=0,r=this.props.extensibilityGroups;n0?c.createElement(_r,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,mesh:r,onClick:function(){return e.onClick()}}):c.createElement(Rr,{extensibilityGroups:this.props.extensibilityGroups,transformNode:t,onClick:function(){return e.onClick()}})}if(-1!==n.indexOf("SpriteManager"))return c.createElement(Gr,{extensibilityGroups:this.props.extensibilityGroups,spriteManager:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Sprite"))return c.createElement(Vr,{extensibilityGroups:this.props.extensibilityGroups,sprite:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Skeleton"))return c.createElement(Fr,{extensibilityGroups:this.props.extensibilityGroups,skeleton:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Bone"))return c.createElement(Br,{extensibilityGroups:this.props.extensibilityGroups,bone:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("TransformNode"))return c.createElement(Rr,{extensibilityGroups:this.props.extensibilityGroups,transformNode:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Camera"))return c.createElement(Tr,{extensibilityGroups:this.props.extensibilityGroups,camera:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Light",n.length-5))return c.createElement(Nr,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,light:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Material"))return c.createElement(Ar,{extensibilityGroups:this.props.extensibilityGroups,material:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("ParticleSystem"))return c.createElement(Hr,{extensibilityGroups:this.props.extensibilityGroups,system:t,onClick:function(){return e.onClick()}});if("AdvancedDynamicTexture"===n)return c.createElement(Ir,{onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable,extensibilityGroups:this.props.extensibilityGroups,texture:t,onClick:function(){return e.onClick()}});if("AnimationGroup"===n)return c.createElement(jr,{extensibilityGroups:this.props.extensibilityGroups,animationGroup:t,onClick:function(){return e.onClick()}});if("TargetedAnimation"===n)return c.createElement(Ur,{extensibilityGroups:this.props.extensibilityGroups,targetedAnimation:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("Texture"))return c.createElement(Mr,{extensibilityGroups:this.props.extensibilityGroups,texture:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("RenderingPipeline"))return c.createElement(zr,{extensibilityGroups:this.props.extensibilityGroups,renderPipeline:t,onClick:function(){return e.onClick()}});if(-1!==n.indexOf("PostProcess"))return c.createElement(Dr,{extensibilityGroups:this.props.extensibilityGroups,postProcess:t,onClick:function(){return e.onClick()}});if(t._host)return c.createElement(Lr,{extensibilityGroups:this.props.extensibilityGroups,control:t,onClick:function(){return e.onClick()}})}return c.createElement("div",{className:"meshTools"},c.createElement(Pr,{label:t.name,onClick:function(){return e.onClick()},icon:ce,color:"cornflowerblue"}))},t}(c.Component),Kr=function(){function e(){}return e.LookForItem=function(t,n){if(t===n)return!0;var r=t.getChildren?t.getChildren():t.children;if(r&&"MultiMaterial"!==t.getClassName())for(var a=0,o=r;ar?1:-1}))},e}(),Yr=function(e){function t(t){var n=e.call(this,t)||this;return n._wasSelected=!1,n.state={isSelected:n.props.entity===n.props.selectedEntity,isExpanded:n.props.mustExpand||Kr.LookForItem(n.props.entity,n.props.selectedEntity)},n}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,Kr.LookForItem(e.entity,e.selectedEntity))return t.isExpanded=!0,!0}return!0},t.prototype.scrollIntoView=function(){var e=u.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,n=this.props.entity;return(n.getChildren||n.children)&&this.state.isExpanded?Kr.SortAndFilter(n,n.getChildren?n.getChildren():n.children).map((function(n,r){return c.createElement(t,{globalState:e.props.globalState,mustExpand:e.props.mustExpand,extensibilityGroups:e.props.extensibilityGroups,selectedEntity:e.props.selectedEntity,key:r,offset:e.props.offset+2,entity:n,filter:e.props.filter})})):null},t.prototype.render=function(){var e=this,t={paddingLeft:10*(this.props.offset+.5)+"px"},n=this.props.entity,r=this.state.isExpanded?c.createElement(k,{icon:ie}):c.createElement(k,{icon:se}),a=("MultiMaterial"===n.getClassName()?[]:Kr.SortAndFilter(n,n.getChildren?n.getChildren():n.children)).length>0;if(n.reservedDataStore||(n.reservedDataStore={}),n.reservedDataStore.setExpandedState=function(t){e.setState({isExpanded:t})},n.reservedDataStore.isExpanded=this.state.isExpanded,this.props.filter){var o=this.props.filter.toLowerCase();if(!n.name||-1===n.name.toLowerCase().indexOf(o)){if(!a)return null;if(n.getDescendants&&0===n.getDescendants(!1,(function(e){return e.name&&-1!==e.name.toLowerCase().indexOf(o)})).length)return null}}return c.createElement("div",null,c.createElement("div",{className:this.state.isSelected?"itemContainer selected":"itemContainer",style:t},a&&c.createElement("div",{className:"arrow icon",onClick:function(){return e.switchExpandedState()}},r),c.createElement(Wr,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,label:n.name,entity:n,onClick:function(){return e.onSelect()}})),this.renderChildren())},t}(c.Component),Xr=n(8),Zr=n.n(Xr),qr=n(6),Qr=n.n(qr);function $r(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:window,r=void 0;"function"==typeof window.CustomEvent?r=new window.CustomEvent(e,{detail:t}):(r=document.createEvent("CustomEvent")).initCustomEvent(e,!1,!0,t),n&&(n.dispatchEvent(r),Qr()(ca,t))}function ba(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];ha(ua,Qr()({},e,{type:ua}),t)}function fa(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];ha(da,Qr()({},e,{type:da}),t)}var ma=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 n in t.callbacks)Jr(t.callbacks,n)&&t.callbacks[n].show(e)},this.handleHideEvent=function(e){for(var n in t.callbacks)Jr(t.callbacks,n)&&t.callbacks[n].hide(e)},this.register=function(e,n){var r=Math.random().toString(36).substring(7);return t.callbacks[r]={show:e,hide:n},r},this.unregister=function(e){e&&t.callbacks[e]&&delete t.callbacks[e]},this.callbacks={},pa&&(window.addEventListener(ua,this.handleShowEvent),window.addEventListener(da,this.handleHideEvent))},ga=Object.assign||function(e){for(var t=1;t=r.length&&(n=0)}while(n!==e&&o[n]);return n===e?null:n}(r.indexOf(n));null!==i&&e.setState({selectedItem:r[i],forceSubMenuOpen:!1})}},this.onChildMouseMove=function(t){e.state.selectedItem!==t&&e.setState({selectedItem:t,forceSubMenuOpen:!1})},this.onChildMouseLeave=function(){e.setState({selectedItem:null,forceSubMenuOpen:!1})},this.renderChildren=function(t){return p.a.Children.map(t,(function(t){var n={};return p.a.isValidElement(t)?[Oa,e.getSubMenuType()].indexOf(t.type)<0?(n.children=e.renderChildren(t.props.children),p.a.cloneElement(t,n)):(n.onMouseLeave=e.onChildMouseLeave.bind(e),t.type===e.getSubMenuType()&&(n.forceOpen=e.state.forceSubMenuOpen&&e.state.selectedItem===t,n.forceClose=e.handleForceClose,n.parentKeyNavigationHandler=e.handleKeyNavigation),t.props.divider||e.state.selectedItem!==t?(n.onMouseMove=function(){return e.onChildMouseMove(t)},p.a.cloneElement(t,n)):(n.selected=!0,n.ref=function(t){e.seletedItemRef=t},p.a.cloneElement(t,n))):t}))}},Pa=Sa,ka=Object.assign||function(e){for(var t=1;tr?o.bottom=0:o.top=0,a.righte?r.bottom=0:r.top=0,t.left<0?r.left="100%":r.right="100%",r},n.hideSubMenu=function(e){e.detail&&e.detail.id&&n.menu&&e.detail.id!==n.menu.id||(n.props.forceOpen&&n.props.forceClose(),n.setState({visible:!1,selectedItem:null}),n.unregisterHandlers())},n.handleClick=function(e){e.preventDefault(),n.props.disabled||($r(n.props.onClick,e,Qr()({},n.props.data,ca.data),ca.target),n.props.onClick&&!n.props.preventCloseOnClick&&fa())},n.handleMouseEnter=function(){n.closetimer&&clearTimeout(n.closetimer),n.props.disabled||n.state.visible||(n.opentimer=setTimeout((function(){return n.setState({visible:!0,selectedItem:null})}),n.props.hoverDelay))},n.handleMouseLeave=function(){n.opentimer&&clearTimeout(n.opentimer),n.state.visible&&(n.closetimer=setTimeout((function(){return n.setState({visible:!1,selectedItem:null})}),n.props.hoverDelay))},n.menuRef=function(e){n.menu=e},n.subMenuRef=function(e){n.subMenu=e},n.registerHandlers=function(){document.removeEventListener("keydown",n.props.parentKeyNavigationHandler),document.addEventListener("keydown",n.handleKeyNavigation)},n.unregisterHandlers=function(e){document.removeEventListener("keydown",n.handleKeyNavigation),e||document.addEventListener("keydown",n.props.parentKeyNavigationHandler)},n.state=Qr()({},n.state,{visible:!1}),n}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),_a(t,[{key:"componentDidMount",value:function(){this.listenId=ma.register((function(){}),this.hideSubMenu)}},{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"),Jr(t,"top")&&(e.subMenu.style.top=t.top),Jr(t,"left")&&(e.subMenu.style.left=t.left),Jr(t,"bottom")&&(e.subMenu.style.bottom=t.bottom),Jr(t,"right")&&(e.subMenu.style.right=t.right),e.subMenu.classList.add(ta),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(ta)}}},{key:"componentWillUnmount",value:function(){this.listenId&&ma.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,n=t.children,r=t.attributes,a=t.disabled,o=t.title,i=t.selected,l=this.state.visible,s={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:Zr()(ra,sa,r.listClassName),style:{position:"relative"}},c={className:Zr()(ra,r.className,(e={},Ta(e,Zr()(oa,r.disabledClassName),a),Ta(e,Zr()(aa,r.visibleClassName),l),Ta(e,Zr()(la,r.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:Zr()(ea,this.props.className)};return p.a.createElement("nav",ka({},s,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),p.a.createElement("div",ka({},r,c),o),p.a.createElement("nav",ka({},u,{role:"menu",tabIndex:"-1"}),this.renderChildren(n)))}}]),t}(Pa);Na.propTypes={children:f.a.node.isRequired,attributes:f.a.object,title:f.a.node.isRequired,className:f.a.string,disabled:f.a.bool,hoverDelay:f.a.number,rtl:f.a.bool,selected:f.a.bool,onMouseMove:f.a.func,onMouseOut:f.a.func,forceOpen:f.a.bool,forceClose:f.a.func,parentKeyNavigationHandler:f.a.func},Na.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 Aa=Na,Ma=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:t,left:e};if(!n.menu)return r;var a=window,o=a.innerWidth,i=a.innerHeight,l=n.menu.getBoundingClientRect();return t+l.height>i&&(r.top-=l.height),e+l.width>o&&(r.left-=l.width),r.top<0&&(r.top=l.height0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:t,left:e};if(!n.menu)return r;var a=window,o=a.innerWidth,i=a.innerHeight,l=n.menu.getBoundingClientRect();return r.left=e-l.width,t+l.height>i&&(r.top-=l.height),r.left<0&&(r.left+=l.width),r.top<0&&(r.top=l.heighto&&(r.left=l.width=0&&0===e.button&&(e.persist(),e.stopPropagation(),r.mouseDownTimeoutId=setTimeout((function(){return r.handleContextClick(e)}),r.props.holdToDisplay)),$r(r.props.attributes.onMouseDown,e)},r.handleMouseUp=function(e){0===e.button&&clearTimeout(r.mouseDownTimeoutId),$r(r.props.attributes.onMouseUp,e)},r.handleMouseOut=function(e){0===e.button&&clearTimeout(r.mouseDownTimeoutId),$r(r.props.attributes.onMouseOut,e)},r.handleTouchstart=function(e){r.touchHandled=!1,r.props.holdToDisplay>=0&&(e.persist(),e.stopPropagation(),r.touchstartTimeoutId=setTimeout((function(){r.handleContextClick(e),r.touchHandled=!0}),r.props.holdToDisplay)),$r(r.props.attributes.onTouchStart,e)},r.handleTouchEnd=function(e){r.touchHandled&&e.preventDefault(),clearTimeout(r.touchstartTimeoutId),$r(r.props.attributes.onTouchEnd,e)},r.handleContextMenu=function(e){e.button===r.props.mouseButton&&r.handleContextClick(e),$r(r.props.attributes.onContextMenu,e)},r.handleMouseClick=function(e){e.button===r.props.mouseButton&&r.handleContextClick(e),$r(r.props.attributes.onClick,e)},r.handleContextClick=function(e){if(!(r.props.disable||r.props.disableIfShiftIsPressed&&e.shiftKey)){e.preventDefault(),e.stopPropagation();var t=e.clientX||e.touches&&e.touches[0].pageX,n=e.clientY||e.touches&&e.touches[0].pageY;r.props.posX&&(t-=r.props.posX),r.props.posY&&(n-=r.props.posY),fa();var a=$r(r.props.collect,r.props),o={position:{x:t,y:n},target:r.elem,id:r.props.id};a&&"function"==typeof a.then?a.then((function(t){o.data=Qr()({},t,{target:e.target}),ba(o)})):(o.data=Qr()({},a,{target:e.target}),ba(o))}},r.elemRef=function(e){r.elem=e},Da(r,n)}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),Ia(t,[{key:"render",value:function(){var e=this.props,t=e.renderTag,n=e.attributes,r=e.children,a=Qr()({},n,{className:Zr()(na,n.className),onContextMenu:this.handleContextMenu,onClick:this.handleMouseClick,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef});return p.a.createElement(t,a,r)}}]),t}(c.Component);za.propTypes={id:f.a.string.isRequired,children:f.a.node.isRequired,attributes:f.a.object,collect:f.a.func,disable:f.a.bool,holdToDisplay:f.a.number,posX:f.a.number,posY:f.a.number,renderTag:f.a.elementType,mouseButton:f.a.number,disableIfShiftIsPressed:f.a.bool},za.defaultProps={attributes:{},collect:function(){return null},disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,mouseButton:2,disableIfShiftIsPressed:!1};var Fa=za;Object.assign,function(){function e(e,t){for(var n=0;n0}),!1,void 0,(function(t,n,r,a){if(!e.props.globalState.ignoreBackfacesForPicking)return!0;var o=d.TmpVectors.Vector3[0],i=d.TmpVectors.Vector3[1],l=d.TmpVectors.Vector3[2];return n.subtractToRef(t,o),r.subtractToRef(n,i),l=d.Vector3.Cross(o,i),d.Vector3.Dot(l,a.direction)<0}));if(e.props.globalState.lightGizmos.length>0){var a=e.props.globalState.lightGizmos[0].gizmoLayer.utilityLayerScene.pick(n.x,n.y,(function(t){for(var n=0,r=e.props.globalState.lightGizmos;n1&&!o.some((function(e){return"SSAORenderingPipeline"===e.getClassName()}))&&i.push({label:"Add new SSAO2 Rendering Pipeline",action:function(){var n=new d.SSAO2RenderingPipeline("SSAO2 rendering pipeline",t,1,[t.activeCamera]);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}));var l=[];l.push({label:"Add new point light",action:function(){var n=new d.PointLight("point light",d.Vector3.Zero(),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),l.push({label:"Add new directional light",action:function(){var n=new d.DirectionalLight("directional light",new d.Vector3(-1,-1,-.5),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),l.push({label:"Add new free camera",action:function(){var n=new d.FreeCamera("free camera",t.activeCamera?t.activeCamera.globalPosition:new d.Vector3(0,0,-5),t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}});var s=[];s.push({label:"Add new standard material",action:function(){var n=new d.StandardMaterial("Standard material",t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),s.push({label:"Add new PBR material",action:function(){var n=new d.PBRMaterial("PBR material",t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),s.push({label:"Add new node material",action:function(){var n=new d.NodeMaterial("node material",t);n.setToDefault(),n.build(),e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}});var p=[];p.push.apply(p,t.materials),t.multiMaterials&&t.multiMaterials.length&&p.push.apply(p,t.multiMaterials);var u=[];u.push({label:"Add new sprite manager",action:function(){var n=new d.SpriteManager("Default sprite manager","//playground.babylonjs.com/textures/player.png",500,64,t);e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}});var h=[];return h.push({label:"Add new CPU particle system",action:function(){var n=d.ParticleHelper.CreateDefault(d.Vector3.Zero(),1e4,t);n.name="CPU particle system",n.start(),e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),d.GPUParticleSystem.IsSupported&&h.push({label:"Add new GPU particle system",action:function(){var n=d.ParticleHelper.CreateDefault(d.Vector3.Zero(),1e4,t,!0);n.name="GPU particle system",n.start(),e.props.globalState.onSelectionChangedObservable.notifyObservers(n)}}),c.createElement("div",{id:"tree",onContextMenu:function(e){return e.preventDefault()}},c.createElement(Ua,{onFilter:function(t){return e.filterContent(t)}}),c.createElement(Va,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,scene:t,onRefresh:function(){return e.forceUpdate()},onSelectionChangedObservable:this.props.globalState.onSelectionChangedObservable}),c.createElement(Ga,{globalState:this.props.globalState,contextMenuItems:l,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.rootNodes,label:"Nodes",offset:1,filter:this.state.filter}),t.skeletons.length>0&&c.createElement(Ga,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.skeletons,label:"Skeletons",offset:1,filter:this.state.filter}),c.createElement(Ga,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:p,contextMenuItems:s,label:"Materials",offset:1,filter:this.state.filter}),c.createElement(Ga,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:r,label:"Textures",offset:1,filter:this.state.filter}),a.length>0&&c.createElement(Ga,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:a,label:"Post-processes",offset:1,filter:this.state.filter}),c.createElement(Ga,{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}),c.createElement(Ga,{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}),c.createElement(Ga,{globalState:this.props.globalState,contextMenuItems:u,forceSubitems:!0,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:t.spriteManagers,label:"Sprite managers",offset:1,filter:this.state.filter}),n&&n.length>0&&c.createElement(Ga,{globalState:this.props.globalState,extensibilityGroups:this.props.extensibilityGroups,selectedEntity:this.state.selectedEntity,items:n,label:"GUI",offset:1,filter:this.state.filter}),t.animationGroups.length>0&&c.createElement(Ga,{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?c.createElement("div",{id:"sceneExplorer"},!this.props.noHeader&&c.createElement(dr,{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)),c.createElement(Ae.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&&c.createElement(dr,{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}(c.Component),Ka=n(338).default;n(339);var Ya=function(e){function t(t){var n=e.call(this,t)||this;return n._once=!0,n.splitRef=c.createRef(),n.topPartRef=c.createRef(),n.bottomPartRef=c.createRef(),n}return a(t,e),t.prototype.componentDidMount=function(){this.splitRef.current&&Ka([this.topPartRef.current,this.bottomPartRef.current],{direction:"vertical",minSize:[200,200],gutterSize:4})},t.prototype.renderContent=function(){return this.props.popupMode?c.createElement("div",{id:"split",className:"splitPopup"},c.createElement("div",{id:"topPart"},c.createElement(Wa,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,popupMode:!0,globalState:this.props.globalState,noHeader:!0})),c.createElement("div",{id:"separator"}),c.createElement("div",{id:"bottomPart",style:{marginTop:"4px",overflow:"hidden"}},c.createElement(Er,{scene:this.props.scene,popupMode:!0,globalState:this.props.globalState,noHeader:!0,initialTab:this.props.initialTab}))):c.createElement("div",{ref:this.splitRef,id:"split",className:"noPopup"},c.createElement("div",{id:"topPart",ref:this.topPartRef},c.createElement(Wa,{scene:this.props.scene,extensibilityGroups:this.props.extensibilityGroups,globalState:this.props.globalState,popupMode:!0,noHeader:!0})),c.createElement("div",{id:"bottomPart",ref:this.bottomPartRef,style:{marginTop:"4px",overflow:"hidden"}},c.createElement(Er,{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?c.createElement("div",{id:"embed"},c.createElement(dr,{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)),c.createElement(Ae.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}},c.createElement(dr,{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}(c.Component),Xa=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 n=this._getIndirectData(e.object);this._recordedCodeLines.push(n+"."+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")),d.Tools.Download(new Blob([e]),"pseudo-code.txt")},e}(),Za=function(){function e(){this.onCodeChangedObservable=new d.Observable,this.onInspectorClosedObservable=new d.Observable,this.onTabChangedObservable=new d.Observable,this.onSelectionRenamedObservable=new d.Observable,this.onNewSceneObservable=new d.Observable,this.sceneImportDefaults={},this.validationResults=null,this.onValidationResultsUpdatedObservable=new d.Observable,this.glTFLoaderExtensionDefaults={},this.glTFLoaderDefaults={validate:!0},this.glTFLoaderExtenstions={},this.blockMutationUpdates=!1,this.selectedLineContainerTitles=[],this.selectedLineContainerTitlesNoFocus=[],this.recorder=new Xa,this._onlyUseEulers=null,this._ignoreBackfacesForPicking=null,this.lightGizmos=[]}return Object.defineProperty(e.prototype,"onlyUseEulers",{get:function(){return null===this._onlyUseEulers&&(this._onlyUseEulers=d.DataStorage.ReadBoolean("settings_onlyUseEulers",!0)),this._onlyUseEulers},set:function(e){this._onlyUseEulers=e,d.DataStorage.WriteBoolean("settings_onlyUseEulers",e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"ignoreBackfacesForPicking",{get:function(){return null===this._ignoreBackfacesForPicking&&(this._ignoreBackfacesForPicking=d.DataStorage.ReadBoolean("settings_ignoreBackfacesForPicking",!1)),this._ignoreBackfacesForPicking},set:function(e){this._ignoreBackfacesForPicking=e,d.DataStorage.WriteBoolean("settings_ignoreBackfacesForPicking",e)},enumerable:!1,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;this.glTFLoaderExtenstions={};var n=this.glTFLoaderDefaults;if(void 0!==n)for(var r in n)e[r]=n[r];e.onExtensionLoadedObservable.add((function(e){var n=t.glTFLoaderExtensionDefaults[e.name];if(void 0!==n)for(var r in n)e[r]=n[r];t.glTFLoaderExtenstions[e.name]=e})),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.selectedLineContainerTitlesNoFocus.push("GLTF VALIDATION"),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 d.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}(),qa=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 n=0;n0},enumerable:!1,configurable:!0}),e.EarlyAttachToLoader=function(){var e=this;this._GlobalState.onPluginActivatedObserver||(this._GlobalState.onPluginActivatedObserver=d.SceneLoader.OnPluginActivatedObservable.add((function(t){var n=t;"gltf"===n.name&&e._GlobalState.prepareGLTFPlugin(n)})))},e.Show=function(t,n){var r=o({original:!0,popup:!1,overlay:!1,showExplorer:!0,showInspector:!0,embedMode:!1,enableClose:!0,handleResize:!0,enablePopup:!0},n);this._GlobalState.onPropertyChangedObservable||this._GlobalState.init(this.OnPropertyChangedObservable),this._GlobalState.onSelectionChangedObservable||(this._GlobalState.onSelectionChangedObservable=this.OnSelectionChangeObservable),this.IsVisible&&r.original&&this.Hide(),t||(t=d.EngineStore.LastCreatedScene),this._Scene=t;var a=t?t.getEngine().getInputElement():d.EngineStore.LastCreatedEngine.getInputElement();if(r.embedMode&&r.showExplorer&&r.showInspector)if(r.popup)this._CreateEmbedHost(t,r,this._CreatePopup("INSPECTOR","_EmbedHostWindow"),e.OnSelectionChangeObservable);else{var i=r.globalRoot?r.globalRoot:a.parentElement;r.overlay||this._NewCanvasContainer?!r.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(i=this._NewCanvasContainer.parentElement):this._CreateCanvasContainer(i),this._NewCanvasContainer&&r.handleResize&&t&&(this._OnBeforeRenderObserver=t.onBeforeRenderObservable.add((function(){t.getEngine().resize()}))),this._CreateEmbedHost(t,r,i,e.OnSelectionChangeObservable)}else if(r.popup)r.showExplorer&&(this._SceneExplorerHost&&(this._SceneExplorerHost.style.width="0"),this._CreateSceneExplorer(t,r,this._CreatePopup("SCENE EXPLORER","_SceneExplorerWindow"))),r.showInspector&&(this._ActionTabsHost&&(this._ActionTabsHost.style.width="0"),this._CreateActionTabs(t,r,this._CreatePopup("INSPECTOR","_ActionTabsWindow")));else{i=r.globalRoot?r.globalRoot:a.parentElement;r.overlay||this._NewCanvasContainer?!r.overlay&&this._NewCanvasContainer&&this._NewCanvasContainer.parentElement&&(i=this._NewCanvasContainer.parentElement):this._CreateCanvasContainer(i),this._NewCanvasContainer&&r.handleResize&&t&&(this._OnBeforeRenderObserver=t.onBeforeRenderObservable.add((function(){t.getEngine().resize()}))),r.showExplorer&&this._CreateSceneExplorer(t,r,i),r.showInspector&&this._CreateActionTabs(t,r,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&&(u.unmountComponentAtNode(this._ActionTabsHost),this._RemoveElementFromDOM(this._ActionTabsHost),this._ActionTabsHost=null),this._SceneExplorerHost&&(u.unmountComponentAtNode(this._SceneExplorerHost),this._SceneExplorerHost.parentElement&&this._SceneExplorerHost.parentElement.removeChild(this._SceneExplorerHost),this._SceneExplorerHost=null),this._EmbedHost&&(u.unmountComponentAtNode(this._EmbedHost),this._EmbedHost.parentElement&&this._EmbedHost.parentElement.removeChild(this._EmbedHost),this._EmbedHost=null),e._OpenedPane=0,this._Cleanup(),this._GlobalState.onPluginActivatedObserver||(d.SceneLoader.OnPluginActivatedObservable.remove(this._GlobalState.onPluginActivatedObserver),this._GlobalState.onPluginActivatedObserver=null)},e._OpenedPane=0,e.OnSelectionChangeObservable=new d.Observable,e.OnPropertyChangedObservable=new d.Observable,e._GlobalState=new Za,e}();qa.EarlyAttachToLoader()},function(e,t,n){var r=n(60),a=n(64);e.exports=function(e,t){return e&&r(e,a(t))}},function(e,t,n){var r=n(116),a=n(13),o=Object.prototype,i=o.hasOwnProperty,l=o.propertyIsEnumerable,s=r(function(){return arguments}())?r: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 n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.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,n){(function(e){var r=n(59),a=t&&!t.nodeType&&t,o=a&&"object"==typeof e&&e&&!e.nodeType&&e,i=o&&o.exports===a&&r.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,n(42)(e))},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(17),a=n(11);e.exports=function(e){if(!a(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var r=n(63)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(18)(n(12),"Map");e.exports=r},function(e,t,n){var r=n(138),a=n(145),o=n(147),i=n(148),l=n(149);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1;a--){var o=n[a],i=(o.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=o)}return m.head.insertBefore(t,r),e}}function Y(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function X(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Z(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n],";")}),"")}function q(e){return e.size!==W.size||e.x!==W.x||e.y!==W.y||e.rotate!==W.rotate||e.flipX||e.flipY}function Q(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/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(r/2*-1," -256)")}}}var $={x:0,y:0,width:"100%",height:"100%"};function J(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function ee(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,o=e.iconName,i=e.transform,s=e.symbol,c=e.title,p=e.maskId,u=e.titleId,d=e.extra,h=e.watchable,b=void 0!==h&&h,f=r.found?r:n,m=f.width,g=f.height,v="fa-w-".concat(Math.ceil(m/g*16)),y=[S.replacementClass,o?"".concat(S.familyPrefix,"-").concat(o):"",v].filter((function(e){return-1===d.classes.indexOf(e)})).concat(d.classes).join(" "),C={children:[],attributes:l({},d.attributes,{"data-prefix":a,"data-icon":o,class:y,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(g)})};b&&(C.attributes["data-fa-i2svg"]=""),c&&C.children.push({tag:"title",attributes:{id:C.attributes["aria-labelledby"]||"title-".concat(u||Y())},children:[c]});var E=l({},C,{prefix:a,iconName:o,main:n,mask:r,maskId:p,transform:i,symbol:s,styles:d.styles}),x=r.found&&n.found?function(e){var t,n=e.children,r=e.attributes,a=e.main,o=e.mask,i=e.maskId,s=e.transform,c=a.width,p=a.icon,u=o.width,d=o.icon,h=Q({transform:s,containerWidth:u,iconWidth:c}),b={tag:"rect",attributes:l({},$,{fill:"white"})},f=p.children?{children:p.children.map(J)}:{},m={tag:"g",attributes:l({},h.inner),children:[J(l({tag:p.tag,attributes:l({},p.attributes,h.path)},f))]},g={tag:"g",attributes:l({},h.outer),children:[m]},v="mask-".concat(i||Y()),y="clip-".concat(i||Y()),C={tag:"mask",attributes:l({},$,{id:v,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[b,g]},E={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},C]};return n.push(E,{tag:"rect",attributes:l({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(v,")")},$)}),{children:n,attributes:r}}(E):function(e){var t=e.children,n=e.attributes,r=e.main,a=e.transform,o=Z(e.styles);if(o.length>0&&(n.style=o),q(a)){var i=Q({transform:a,containerWidth:r.width,iconWidth:r.width});t.push({tag:"g",attributes:l({},i.outer),children:[{tag:"g",attributes:l({},i.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:l({},r.icon.attributes,i.path)}]}]})}else t.push(r.icon);return{children:t,attributes:n}}(E),O=x.children,w=x.attributes;return E.children=O,E.attributes=w,s?function(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,o=e.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:l({},a,{id:!0===o?"".concat(t,"-").concat(S.familyPrefix,"-").concat(n):o}),children:r}]}]}(E):function(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,o=e.styles,i=e.transform;if(q(i)&&n.found&&!r.found){var s={x:n.width/n.height/2,y:.5};a.style=Z(l({},o,{"transform-origin":"".concat(s.x+i.x/16,"em ").concat(s.y+i.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(E)}var te=function(){},ne=(S.measurePerformance&&g&&g.mark&&g.measure,function(e,t,n,r){var a,o,i,l=Object.keys(e),s=l.length,c=void 0!==r?function(e,t){return function(n,r,a,o){return e.call(t,n,r,a,o)}}(t,r):t;for(void 0===n?(a=1,i=e[l[0]]):(a=0,i=n);a2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,o=Object.keys(t).reduce((function(e,n){var r=t[n];return!!r.icon?e[r.iconName]=r.icon:e[n]=r,e}),{});"function"!=typeof P.hooks.addPack||a?P.styles[e]=l({},P.styles[e]||{},o):P.hooks.addPack(e,o),"fas"===e&&re("fa",t)}var ae=P.styles,oe=P.shims,ie=function(){var e=function(e){return ne(ae,(function(t,n,r){return t[r]=ne(n,e,{}),t}),{})};e((function(e,t,n){return t[3]&&(e[t[3]]=n),e})),e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in ae;ne(oe,(function(e,n){var r=n[0],a=n[1],o=n[2];return"far"!==a||t||(a="fas"),e[r]={prefix:a,iconName:o},e}),{})};ie();P.styles;function le(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function se(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,o=void 0===a?[]:a;return"string"==typeof e?X(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(X(e[n]),'" ')}),"").trim()}(r),">").concat(o.map(se).join(""),"")}var ce=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 n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){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 pe(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}pe.prototype=Object.create(Error.prototype),pe.prototype.constructor=pe;var ue={fill:"currentColor"},de={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},he={tag:"path",attributes:l({},ue,{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"})},be=l({},de,{attributeName:"opacity"});l({},ue,{cx:"256",cy:"364",r:"28"}),l({},de,{attributeName:"r",values:"28;14;28;28;14;28;"}),l({},be,{values:"1;0;1;1;0;1;"}),l({},ue,{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"}),l({},be,{values:"1;0;0;0;0;1;"}),l({},ue,{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"}),l({},be,{values:"0;0;1;1;0;0;"}),P.styles;function fe(e){var t=e[0],n=e[1],r=s(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(S.familyPrefix,"-").concat(E.GROUP)},children:[{tag:"path",attributes:{class:"".concat(S.familyPrefix,"-").concat(E.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(S.familyPrefix,"-").concat(E.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}P.styles;function me(){var e="svg-inline--fa",t=S.familyPrefix,n=S.replacementClass,r='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-both, .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:root .fa-flip-both {\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}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if("fa"!==t||n!==e){var a=new RegExp("\\.".concat("fa","\\-"),"g"),o=new RegExp("\\--".concat("fa","\\-"),"g"),i=new RegExp("\\.".concat(e),"g");r=r.replace(a,".".concat(t,"-")).replace(o,"--".concat(t,"-")).replace(i,".".concat(n))}return r}function ge(){S.autoAddCss&&!xe&&(K(me()),xe=!0)}function ve(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return se(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(v){var t=m.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function ye(e){var t=e.prefix,n=void 0===t?"fa":t,r=e.iconName;if(r)return le(Ee.definitions,n,r)||le(P.styles,n,r)}var Ce,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,n,r;return t=e,(n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?W:n,a=t.symbol,o=void 0!==a&&a,i=t.mask,s=void 0===i?null:i,c=t.maskId,p=void 0===c?null:c,u=t.title,d=void 0===u?null:u,h=t.titleId,b=void 0===h?null:h,f=t.classes,m=void 0===f?[]:f,g=t.attributes,v=void 0===g?{}:g,y=t.styles,C=void 0===y?{}:y;if(e){var E=e.prefix,x=e.iconName,O=e.icon;return ve(l({type:"icon"},e),(function(){return ge(),S.autoA11y&&(d?v["aria-labelledby"]="".concat(S.replacementClass,"-title-").concat(b||Y()):(v["aria-hidden"]="true",v.focusable="false")),ee({icons:{main:fe(O),mask:s?fe(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:E,iconName:x,transform:l({},W,r),symbol:o,title:d,maskId:p,titleId:b,extra:{attributes:v,styles:C,classes:m}})}))}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(e||{}).icon?e:ye(e||{}),r=t.mask;return r&&(r=(r||{}).icon?r:ye(r||{})),Ce(n,l({},t,{mask:r}))})}).call(this,n(21),n(104).setImmediate)},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(21))},function(e,t,n){var r=n(61),a=n(23);e.exports=function(e,t){return e&&r(e,t,a)}},function(e,t,n){var r=n(114)();e.exports=r},function(e,t,n){var r=n(115),a=n(41),o=n(9),i=n(28),l=n(43),s=n(44),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=o(e),p=!n&&a(e),u=!n&&!p&&i(e),d=!n&&!p&&!u&&s(e),h=n||p||u||d,b=h?r(e.length,String):[],f=b.length;for(var m in e)!t&&!c.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(n){return e(t(n))}}},function(e,t,n){var r=n(29);e.exports=function(e){return"function"==typeof e?e:r}},function(e,t,n){var r=n(17),a=n(50),o=n(13),i=Function.prototype,l=Object.prototype,s=i.toString,c=l.hasOwnProperty,p=s.call(Object);e.exports=function(e){if(!o(e)||"[object Object]"!=r(e))return!1;var t=a(e);if(null===t)return!0;var n=c.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==p}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,a=Array(r);++np))return!1;var d=s.get(e);if(d&&s.get(t))return d==t;var h=-1,b=!0,f=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h=t||n<0||m&&e-b>=p}function E(){var e=a();if(C(e))return x(e);d=setTimeout(E,function(e){var n=t-(e-h);return m?l(n,p-(e-b)):n}(e))}function x(e){return d=void 0,g&&s?v(e):(s=c=void 0,u)}function O(){var e=a(),n=C(e);if(s=arguments,c=this,h=e,n){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,r(n)&&(f=!!n.leading,p=(m="maxWait"in n)?i(o(n.maxWait)||0,t):p,g="trailing"in n?!!n.trailing:g),O.cancel=function(){void 0!==d&&clearTimeout(d),b=0,s=h=c=d=void 0},O.flush=function(){return void 0===d?u:x(a())},O}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ColorWrap=void 0;var r=Object.assign||function(e){for(var t=1;tN.length&&N.push(e)}function R(e,t,n){return null==e?0:function e(t,n,r,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 r(a,t,""===n?"."+L(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c