@babylonjs/inspector 5.0.0-alpha.41 → 5.0.0-alpha.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11232,7 +11232,7 @@ module.exports = exports;
11232
11232
  var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../../../../node_modules/css-loader/dist/runtime/api.js */ "../../../../node_modules/css-loader/dist/runtime/api.js");
11233
11233
  exports = ___CSS_LOADER_API_IMPORT___(false);
11234
11234
  // Module
11235
- exports.push([module.i, "#sideBar {\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: 30px 1fr; }\n #sideBar #menu-bar {\n background: #252525;\n grid-row: 1;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 30px 30px 30px 30px 1fr 52px 3px; }\n #sideBar #menu-bar.small {\n grid-template-columns: 0px 0px 30px 30px 1fr 52px 3px; }\n #sideBar #menu-bar #add-animation {\n grid-row: 1;\n grid-column: 1; }\n #sideBar #menu-bar #load-animation {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #menu-bar #save-animation {\n grid-row: 1;\n grid-column: 3; }\n #sideBar #menu-bar #edit-animation {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #menu-bar #framerate-animation {\n grid-row: 1;\n grid-column: 6; }\n #sideBar .simple-button {\n width: 80px;\n height: 20px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n background: #444444;\n border: 0;\n line-height: 12px;\n cursor: pointer;\n align-self: center;\n justify-self: center;\n border-radius: 0; }\n #sideBar .simple-button:active {\n transform-origin: center;\n transform: scale(0.95); }\n #sideBar #save-animation-pane {\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: 1fr 40px auto; }\n #sideBar #save-animation-pane #save-animation-list {\n grid-row: 1;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n padding-top: 5px; }\n #sideBar #save-animation-pane #save-animation-list .save-animation-list-entry {\n height: 20px;\n margin-left: 10px;\n display: flex;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n line-height: 15px; }\n #sideBar #save-animation-pane #save-animation-buttons {\n grid-row: 2;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 10px 1fr 10px 1fr 10px;\n align-items: center; }\n #sideBar #save-animation-pane #save-animation-buttons #save-snippet {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #save-animation-pane #save-animation-buttons #save-file {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #save-animation-pane #save-animation-snippet {\n grid-row: 3;\n grid-column: 1;\n width: calc(100% - 31px);\n height: 20px;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n padding-left: 31px;\n background: #252525; }\n #sideBar #load-animation-pane {\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 1fr auto;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #load-animation-pane #load-animation-snippet-id-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #load-animation-pane #load-animation-local-file-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #load-animation-pane #load-snippet-id {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px;\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #load-animation-pane #load-snippet {\n grid-row: 4;\n grid-column: 2;\n width: 60px;\n justify-self: left; }\n #sideBar #load-animation-pane input[type=\"file\"] {\n display: none; }\n #sideBar #load-animation-pane #file-snippet-label {\n grid-row: 6;\n grid-column: 2;\n width: 60px;\n justify-self: left;\n text-align: center;\n line-height: 18px; }\n #sideBar #load-animation-pane #load-animation-snippet {\n grid-row: 8;\n grid-column: 1 / 3;\n width: calc(100% - 31px);\n height: 20px;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n padding-left: 31px;\n background: #252525; }\n #sideBar #add-animation-pane {\n grid-column: 1;\n grid-row: 2;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #add-animation-pane .input-text {\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #add-animation-pane .option {\n background: #252525;\n color: white;\n border: 0; }\n #sideBar #add-animation-pane #add-animation-display-name-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-property-label {\n grid-row: 4;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-type-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-loop-mode-label {\n grid-row: 8;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-name {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-property {\n grid-row: 4;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-type {\n grid-row: 6;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-loop-mode {\n grid-row: 8;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation {\n grid-row: 10;\n grid-column: 2;\n justify-self: left; }\n #sideBar #edit-animation-pane {\n grid-column: 1;\n grid-row: 2;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n background: #111111; }\n #sideBar #edit-animation-pane .input-text {\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #edit-animation-pane .option {\n background: #252525;\n color: white;\n border: 0; }\n #sideBar #edit-animation-pane #edit-animation-display-name-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-property-label {\n grid-row: 4;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-loop-mode-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-name {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-property {\n grid-row: 4;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-loop-mode {\n grid-row: 6;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation {\n grid-row: 8;\n grid-column: 1 / 3;\n display: grid;\n grid-template-columns: 50% 50%;\n grid-template-rows: 100%; }\n #sideBar #edit-animation-pane #edit-animation #edit-animation-ok {\n grid-row: 1;\n grid-column: 1; }\n #sideBar #edit-animation-pane #edit-animation #edit-animation-cancel {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #animation-list {\n background: #111111;\n grid-row: 2;\n grid-column: 1;\n width: 100%;\n height: 100%; }\n #sideBar #animation-list .animation-entry {\n height: 20px;\n display: grid;\n grid-template-columns: 20px 10px 1fr 20px 20px;\n grid-template-rows: 100%; }\n #sideBar #animation-list .animation-entry.isActive {\n background: #444444; }\n #sideBar #animation-list .animation-entry .animation-active-indicator {\n grid-row: 1;\n grid-column: 1;\n display: grid;\n margin: 5px;\n padding-top: 2px; }\n #sideBar #animation-list .animation-entry .animation-chevron {\n grid-row: 1;\n grid-column: 2;\n display: grid;\n align-content: center;\n padding-top: 5px;\n cursor: pointer; }\n #sideBar #animation-list .animation-entry .animation-chevron .animation-chevron-image.collapsed {\n transform-origin: 50% 50%;\n transform: rotateZ(-90deg); }\n #sideBar #animation-list .animation-entry .animation-name {\n cursor: pointer;\n grid-row: 1;\n grid-column: 3;\n font-family: 'acumin-pro-condensed';\n font-size: 10.5pt;\n color: white;\n display: grid;\n align-self: center;\n margin-left: 5px;\n user-select: none; }\n #sideBar #animation-list .animation-entry .animation-options {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #animation-list .animation-entry .animation-delete {\n grid-row: 1;\n grid-column: 5; }\n", ""]);
11235
+ exports.push([module.i, "#sideBar {\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: 30px 1fr; }\n #sideBar #menu-bar {\n background: #252525;\n grid-row: 1;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 30px 30px 30px 30px 1fr 52px 3px; }\n #sideBar #menu-bar.small {\n grid-template-columns: 0px 0px 30px 30px 1fr 52px 3px; }\n #sideBar #menu-bar #add-animation {\n grid-row: 1;\n grid-column: 1; }\n #sideBar #menu-bar #load-animation {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #menu-bar #save-animation {\n grid-row: 1;\n grid-column: 3; }\n #sideBar #menu-bar #edit-animation {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #menu-bar #framerate-animation {\n grid-row: 1;\n grid-column: 6; }\n #sideBar .simple-button {\n width: 80px;\n height: 20px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n background: #444444;\n border: 0;\n line-height: 12px;\n cursor: pointer;\n align-self: center;\n justify-self: center;\n border-radius: 0; }\n #sideBar .simple-button:active {\n transform-origin: center;\n transform: scale(0.95); }\n #sideBar #save-animation-pane {\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: 1fr 40px auto; }\n #sideBar #save-animation-pane #save-animation-list {\n grid-row: 1;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n padding-top: 5px; }\n #sideBar #save-animation-pane #save-animation-list .save-animation-list-entry {\n height: 20px;\n margin-left: 10px;\n display: flex;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n line-height: 15px; }\n #sideBar #save-animation-pane #save-animation-buttons {\n grid-row: 2;\n grid-column: 1;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 10px 1fr 10px 1fr 10px;\n align-items: center; }\n #sideBar #save-animation-pane #save-animation-buttons #save-snippet {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #save-animation-pane #save-animation-buttons #save-file {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #save-animation-pane #save-animation-snippet {\n grid-row: 3;\n grid-column: 1;\n width: calc(100% - 31px);\n height: 20px;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n padding-left: 31px;\n background: #252525; }\n #sideBar #load-animation-pane {\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 1fr auto;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #load-animation-pane #load-animation-snippet-id-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #load-animation-pane #load-animation-local-file-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #load-animation-pane #load-snippet-id {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px;\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #load-animation-pane #load-snippet {\n grid-row: 4;\n grid-column: 2;\n width: 60px;\n justify-self: left; }\n #sideBar #load-animation-pane input[type=\"file\"] {\n display: none; }\n #sideBar #load-animation-pane #file-snippet-label {\n grid-row: 6;\n grid-column: 2;\n width: 60px;\n justify-self: left;\n text-align: center;\n line-height: 18px; }\n #sideBar #load-animation-pane #load-animation-snippet {\n grid-row: 8;\n grid-column: 1 / 3;\n width: calc(100% - 31px);\n height: 20px;\n align-content: center;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n padding-left: 31px;\n background: #252525; }\n #sideBar #add-animation-pane {\n grid-column: 1;\n grid-row: 2;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #add-animation-pane .input-text {\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #add-animation-pane .option {\n background: #252525;\n color: white;\n border: 0; }\n #sideBar #add-animation-pane #add-animation-display-name-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-mode-label {\n grid-row: 4;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-property-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-type-label {\n grid-row: 8;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-loop-mode-label {\n grid-row: 10;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-name {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-mode {\n grid-row: 4;\n grid-column: 2;\n margin-right: 10px;\n width: calc(100% - 10px); }\n #sideBar #add-animation-pane #add-animation-property {\n grid-row: 6;\n grid-column: 2;\n margin-right: 10px;\n width: calc(100% - 10px); }\n #sideBar #add-animation-pane #add-animation-type {\n grid-row: 8;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation-loop-mode {\n grid-row: 10;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #add-animation-pane #add-animation {\n grid-row: 12;\n grid-column: 2;\n justify-self: left; }\n #sideBar #edit-animation-pane {\n grid-column: 1;\n grid-row: 2;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-columns: 75px 1fr;\n grid-template-rows: 10px 20px 10px 20px 10px 20px 10px 20px 1fr;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt;\n background: #111111; }\n #sideBar #edit-animation-pane .input-text {\n border: 0;\n background: #252525;\n width: 127px;\n color: white;\n font-family: 'acumin-pro-condensed';\n font-size: 10pt; }\n #sideBar #edit-animation-pane .option {\n background: #252525;\n color: white;\n border: 0; }\n #sideBar #edit-animation-pane #edit-animation-display-name-label {\n grid-row: 2;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-property-label {\n grid-row: 4;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-loop-mode-label {\n grid-row: 6;\n grid-column: 1;\n justify-self: end;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-name {\n grid-row: 2;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-property {\n grid-row: 4;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation-loop-mode {\n grid-row: 6;\n grid-column: 2;\n margin-right: 10px; }\n #sideBar #edit-animation-pane #edit-animation {\n grid-row: 8;\n grid-column: 1 / 3;\n display: grid;\n grid-template-columns: 50% 50%;\n grid-template-rows: 100%; }\n #sideBar #edit-animation-pane #edit-animation #edit-animation-ok {\n grid-row: 1;\n grid-column: 1; }\n #sideBar #edit-animation-pane #edit-animation #edit-animation-cancel {\n grid-row: 1;\n grid-column: 2; }\n #sideBar #animation-list {\n background: #111111;\n grid-row: 2;\n grid-column: 1;\n width: 100%;\n height: 100%; }\n #sideBar #animation-list .animation-entry {\n height: 20px;\n display: grid;\n grid-template-columns: 20px 10px 1fr 20px 20px;\n grid-template-rows: 100%; }\n #sideBar #animation-list .animation-entry.isActive {\n background: #444444; }\n #sideBar #animation-list .animation-entry .animation-active-indicator {\n grid-row: 1;\n grid-column: 1;\n display: grid;\n margin: 5px;\n padding-top: 2px; }\n #sideBar #animation-list .animation-entry .animation-chevron {\n grid-row: 1;\n grid-column: 2;\n display: grid;\n align-content: center;\n padding-top: 5px;\n cursor: pointer; }\n #sideBar #animation-list .animation-entry .animation-chevron .animation-chevron-image.collapsed {\n transform-origin: 50% 50%;\n transform: rotateZ(-90deg); }\n #sideBar #animation-list .animation-entry .animation-name {\n cursor: pointer;\n grid-row: 1;\n grid-column: 3;\n font-family: 'acumin-pro-condensed';\n font-size: 10.5pt;\n color: white;\n display: grid;\n align-self: center;\n margin-left: 5px;\n user-select: none; }\n #sideBar #animation-list .animation-entry .animation-options {\n grid-row: 1;\n grid-column: 4; }\n #sideBar #animation-list .animation-entry .animation-delete {\n grid-row: 1;\n grid-column: 5; }\n", ""]);
11236
11236
  // Exports
11237
11237
  module.exports = exports;
11238
11238
 
@@ -11250,7 +11250,7 @@ module.exports = exports;
11250
11250
  var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../../../../../../../../../node_modules/css-loader/dist/runtime/api.js */ "../../../../node_modules/css-loader/dist/runtime/api.js");
11251
11251
  exports = ___CSS_LOADER_API_IMPORT___(false);
11252
11252
  // Module
11253
- exports.push([module.i, "#top-bar {\n display: grid;\n grid-template-columns: 40px 200px 75px 8px 75px 8px 40px 40px 40px 40px 40px 40px 40px 1fr 40px;\n grid-template-rows: 100%; }\n #top-bar .disabled {\n opacity: 20%;\n pointer-events: none; }\n #top-bar #logo {\n grid-row: 1;\n grid-column: 1; }\n #top-bar #parent-name {\n grid-row: 1;\n grid-column: 2;\n font-family: 'acumin-pro-condensed';\n font-size: 15pt;\n color: white;\n display: grid;\n align-content: center;\n padding-bottom: 5px; }\n #top-bar #key-frame {\n grid-row: 1;\n grid-column: 3;\n height: 24px;\n display: grid;\n align-self: center; }\n #top-bar #key-value {\n grid-row: 1;\n grid-column: 5;\n height: 24px;\n display: grid;\n align-self: center; }\n #top-bar #new-key {\n grid-row: 1;\n grid-column: 7; }\n #top-bar #frame-canvas {\n grid-row: 1;\n grid-column: 8; }\n #top-bar #flatten-tangent {\n grid-row: 1;\n grid-column: 9; }\n #top-bar #linear-tangent {\n grid-row: 1;\n grid-column: 10; }\n #top-bar #break-tangent {\n grid-row: 1;\n grid-column: 11; }\n #top-bar #unify-tangent {\n grid-row: 1;\n grid-column: 12; }\n", ""]);
11253
+ exports.push([module.i, "#top-bar {\n display: grid;\n grid-template-columns: 40px 200px 75px 8px 75px 8px 40px 40px 40px 40px 40px 40px 40px 1fr 40px;\n grid-template-rows: 100%; }\n #top-bar .disabled {\n opacity: 20%;\n pointer-events: none; }\n #top-bar #top-bar-logo {\n grid-row: 1;\n grid-column: 1; }\n #top-bar #top-bar-parent-name {\n grid-row: 1;\n grid-column: 2;\n font-family: 'acumin-pro-condensed';\n font-size: 15pt;\n color: white;\n display: grid;\n align-content: center;\n padding-bottom: 5px; }\n #top-bar #key-frame {\n grid-row: 1;\n grid-column: 3;\n height: 24px;\n display: grid;\n align-self: center; }\n #top-bar #key-value {\n grid-row: 1;\n grid-column: 5;\n height: 24px;\n display: grid;\n align-self: center; }\n #top-bar #new-key {\n grid-row: 1;\n grid-column: 7; }\n #top-bar #frame-canvas {\n grid-row: 1;\n grid-column: 8; }\n #top-bar #flatten-tangent {\n grid-row: 1;\n grid-column: 9; }\n #top-bar #linear-tangent {\n grid-row: 1;\n grid-column: 10; }\n #top-bar #break-tangent {\n grid-row: 1;\n grid-column: 11; }\n #top-bar #unify-tangent {\n grid-row: 1;\n grid-column: 12; }\n", ""]);
11254
11254
  // Exports
11255
11255
  module.exports = exports;
11256
11256
 
@@ -46638,6 +46638,7 @@ var AnimationGroupGridComponent = /** @class */ (function (_super) {
46638
46638
  this._animationCurveEditorContext.animations = animationGroup.targetedAnimations;
46639
46639
  this._animationCurveEditorContext.scene = this.props.scene;
46640
46640
  this._animationCurveEditorContext.useTargetAnimations = true;
46641
+ this._animationCurveEditorContext.rootAnimationGroup = animationGroup;
46641
46642
  }
46642
46643
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "pane" },
46643
46644
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { title: "GENERAL" },
@@ -46890,7 +46891,7 @@ var AnimationCurveEditorComponent = /** @class */ (function (_super) {
46890
46891
  window.close();
46891
46892
  }
46892
46893
  this.setState({ isOpen: false });
46893
- this.props.context.activeAnimation = null;
46894
+ this.props.context.activeAnimations = [];
46894
46895
  this.props.context.onActiveAnimationChanged.notifyObservers();
46895
46896
  };
46896
46897
  AnimationCurveEditorComponent.prototype.shouldComponentUpdate = function (newProps, newState) {
@@ -46900,7 +46901,7 @@ var AnimationCurveEditorComponent = /** @class */ (function (_super) {
46900
46901
  this.props.context.prepare();
46901
46902
  if (this.props.context.animations && this.props.context.animations.length) {
46902
46903
  setTimeout(function () {
46903
- _this.props.context.activeAnimation = _this.props.context.useTargetAnimations ? _this.props.context.animations[0].animation : _this.props.context.animations[0];
46904
+ _this.props.context.activeAnimations.push(_this.props.context.useTargetAnimations ? _this.props.context.animations[0].animation : _this.props.context.animations[0]);
46904
46905
  _this.props.context.onActiveAnimationChanged.notifyObservers();
46905
46906
  });
46906
46907
  }
@@ -47337,7 +47338,7 @@ var BottomBarComponent = /** @class */ (function (_super) {
47337
47338
  return _this;
47338
47339
  }
47339
47340
  BottomBarComponent.prototype._renderMaxFrame = function () {
47340
- var keys = this.props.context.activeAnimation.getKeys();
47341
+ var keys = this.props.context.activeAnimations[0].getKeys();
47341
47342
  return Math.round(keys[keys.length - 1].frame);
47342
47343
  };
47343
47344
  BottomBarComponent.prototype.componentWillUnmount = function () {
@@ -47352,7 +47353,7 @@ var BottomBarComponent = /** @class */ (function (_super) {
47352
47353
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "bottom-bar" },
47353
47354
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_mediaPlayerComponent__WEBPACK_IMPORTED_MODULE_2__["MediaPlayerComponent"], { globalState: this.props.globalState, context: this.props.context }),
47354
47355
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_rangeSelectorComponent__WEBPACK_IMPORTED_MODULE_3__["RangeSelectorComponent"], { globalState: this.props.globalState, context: this.props.context }),
47355
- this.props.context.activeAnimation &&
47356
+ this.props.context.activeAnimations.length > 0 &&
47356
47357
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "bottom-bar-total" }, this._renderMaxFrame())));
47357
47358
  };
47358
47359
  return BottomBarComponent;
@@ -47417,20 +47418,20 @@ var MediaPlayerComponent = /** @class */ (function (_super) {
47417
47418
  this.props.context.onMoveToFrameRequired.notifyObservers(this.props.context.fromKey);
47418
47419
  };
47419
47420
  MediaPlayerComponent.prototype._onPrevKey = function () {
47420
- if (!this.props.context.animations || !this.props.context.animations.length || !this.props.context.activeAnimation) {
47421
+ if (!this.props.context.animations || !this.props.context.animations.length || this.props.context.activeAnimations.length === 0) {
47421
47422
  return;
47422
47423
  }
47423
47424
  var prevKey = -Number.MAX_VALUE;
47424
- //for (var animation of this.props.context.animations) {
47425
- var animation = this.props.context.activeAnimation;
47426
- var keys = animation.getKeys();
47427
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
47428
- var key = keys_1[_i];
47429
- if (key.frame < this.props.context.activeFrame && key.frame > prevKey) {
47430
- prevKey = key.frame;
47425
+ for (var _i = 0, _a = this.props.context.activeAnimations; _i < _a.length; _i++) {
47426
+ var animation = _a[_i];
47427
+ var keys = animation.getKeys();
47428
+ for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {
47429
+ var key = keys_1[_b];
47430
+ if (key.frame < this.props.context.activeFrame && key.frame > prevKey) {
47431
+ prevKey = key.frame;
47432
+ }
47431
47433
  }
47432
47434
  }
47433
- //}
47434
47435
  if (prevKey === -Number.MAX_VALUE) {
47435
47436
  prevKey = this.props.context.fromKey;
47436
47437
  }
@@ -47449,9 +47450,9 @@ var MediaPlayerComponent = /** @class */ (function (_super) {
47449
47450
  return;
47450
47451
  }
47451
47452
  var nextKey = Number.MAX_VALUE;
47452
- for (var _i = 0, _a = this.props.context.animations; _i < _a.length; _i++) {
47453
+ for (var _i = 0, _a = this.props.context.activeAnimations; _i < _a.length; _i++) {
47453
47454
  var animation = _a[_i];
47454
- var keys = this.props.context.useTargetAnimations ? animation.animation.getKeys() : animation.getKeys();
47455
+ var keys = animation.getKeys();
47455
47456
  for (var _b = 0, keys_2 = keys; _b < keys_2.length; _b++) {
47456
47457
  var key = keys_2[_b];
47457
47458
  if (key.frame > this.props.context.activeFrame && key.frame < nextKey) {
@@ -47650,7 +47651,8 @@ __webpack_require__.r(__webpack_exports__);
47650
47651
 
47651
47652
  var Context = /** @class */ (function () {
47652
47653
  function Context() {
47653
- this.activeColor = null;
47654
+ this.activeAnimations = [];
47655
+ this.activeChannels = {};
47654
47656
  this.forwardAnimation = true;
47655
47657
  this.referenceMinFrame = 0;
47656
47658
  this.referenceMaxFrame = 100;
@@ -47681,6 +47683,7 @@ var Context = /** @class */ (function () {
47681
47683
  this.onAnimationsLoaded = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
47682
47684
  this.onEditAnimationRequired = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
47683
47685
  this.onEditAnimationUIClosed = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
47686
+ this.onSelectToActivated = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
47684
47687
  }
47685
47688
  Context.prototype.prepare = function () {
47686
47689
  this.isPlaying = false;
@@ -47704,19 +47707,39 @@ var Context = /** @class */ (function () {
47704
47707
  this.scene.stopAnimation(this.target);
47705
47708
  var animatable;
47706
47709
  if (forward) {
47707
- animatable = this.scene.beginAnimation(this.target, this.fromKey, this.toKey, true);
47710
+ if (this.rootAnimationGroup) {
47711
+ this.rootAnimationGroup.start(true, 1.0, this.fromKey, this.toKey);
47712
+ }
47713
+ else {
47714
+ animatable = this.scene.beginAnimation(this.target, this.fromKey, this.toKey, true);
47715
+ }
47708
47716
  }
47709
47717
  else {
47710
- animatable = this.scene.beginAnimation(this.target, this.toKey, this.fromKey, true);
47718
+ if (this.rootAnimationGroup) {
47719
+ this.rootAnimationGroup.start(true, 1.0, this.toKey, this.fromKey);
47720
+ }
47721
+ else {
47722
+ animatable = this.scene.beginAnimation(this.target, this.toKey, this.fromKey, true);
47723
+ }
47711
47724
  }
47712
47725
  this.forwardAnimation = forward;
47713
47726
  // Move
47714
- animatable.goToFrame(this.activeFrame);
47727
+ if (this.rootAnimationGroup) {
47728
+ this.rootAnimationGroup.goToFrame(this.activeFrame);
47729
+ }
47730
+ else {
47731
+ animatable.goToFrame(this.activeFrame);
47732
+ }
47715
47733
  this.onAnimationStateChanged.notifyObservers();
47716
47734
  };
47717
47735
  Context.prototype.stop = function () {
47718
47736
  this.isPlaying = false;
47719
- this.scene.stopAnimation(this.target);
47737
+ if (this.rootAnimationGroup) {
47738
+ this.rootAnimationGroup.stop();
47739
+ }
47740
+ else {
47741
+ this.scene.stopAnimation(this.target);
47742
+ }
47720
47743
  this.onAnimationStateChanged.notifyObservers();
47721
47744
  };
47722
47745
  Context.prototype.moveToFrame = function (frame) {
@@ -47725,7 +47748,12 @@ var Context = /** @class */ (function () {
47725
47748
  }
47726
47749
  this.activeFrame = frame;
47727
47750
  if (!this.isPlaying) {
47728
- this.scene.beginAnimation(this.target, this.fromKey, this.toKey, false);
47751
+ if (this.rootAnimationGroup) {
47752
+ this.rootAnimationGroup.start(false, 1.0, this.fromKey, this.toKey);
47753
+ }
47754
+ else {
47755
+ this.scene.beginAnimation(this.target, this.fromKey, this.toKey, false);
47756
+ }
47729
47757
  }
47730
47758
  for (var _i = 0, _a = this.animations; _i < _a.length; _i++) {
47731
47759
  var animationEntry = _a[_i];
@@ -47753,6 +47781,33 @@ var Context = /** @class */ (function () {
47753
47781
  this.activeKeyPoints = [];
47754
47782
  this.onActiveKeyPointChanged.notifyObservers();
47755
47783
  };
47784
+ Context.prototype.enableChannel = function (animation, color) {
47785
+ this.activeChannels[animation.uniqueId] = color;
47786
+ };
47787
+ Context.prototype.disableChannel = function (animation) {
47788
+ delete this.activeChannels[animation.uniqueId];
47789
+ };
47790
+ Context.prototype.isChannelEnabled = function (animation, color) {
47791
+ return this.activeChannels[animation.uniqueId] === undefined || this.activeChannels[animation.uniqueId] === color;
47792
+ };
47793
+ Context.prototype.getActiveChannel = function (animation) {
47794
+ return this.activeChannels[animation.uniqueId];
47795
+ };
47796
+ Context.prototype.resetAllActiveChannels = function () {
47797
+ this.activeChannels = {};
47798
+ };
47799
+ Context.prototype.getAnimationSortIndex = function (animation) {
47800
+ var _a;
47801
+ if (!this.animations) {
47802
+ return -1;
47803
+ }
47804
+ for (var index = 0; index < ((_a = this.animations) === null || _a === void 0 ? void 0 : _a.length); index++) {
47805
+ if (animation === (this.useTargetAnimations ? this.animations[0].animation : this.animations[index])) {
47806
+ return index;
47807
+ }
47808
+ }
47809
+ return -1;
47810
+ };
47756
47811
  return Context;
47757
47812
  }());
47758
47813
 
@@ -48178,7 +48233,7 @@ var CurveComponent = /** @class */ (function (_super) {
48178
48233
  return true;
48179
48234
  };
48180
48235
  CurveComponent.prototype.render = function () {
48181
- if (this.props.context.activeColor && this.props.context.activeColor !== this.props.curve.color) {
48236
+ if (!this.props.context.isChannelEnabled(this.props.curve.animation, this.props.curve.color)) {
48182
48237
  return null;
48183
48238
  }
48184
48239
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("svg", { style: { cursor: "pointer", overflow: "auto" } },
@@ -48224,10 +48279,6 @@ var FrameBarComponent = /** @class */ (function (_super) {
48224
48279
  _this._computeSizes();
48225
48280
  });
48226
48281
  _this._onActiveAnimationChangedObserver = _this.props.context.onActiveAnimationChanged.add(function () {
48227
- if (_this._currentAnimation === _this.props.context.activeAnimation) {
48228
- return;
48229
- }
48230
- _this._currentAnimation = _this.props.context.activeAnimation;
48231
48282
  _this._computeSizes();
48232
48283
  _this.forceUpdate();
48233
48284
  });
@@ -48255,7 +48306,7 @@ var FrameBarComponent = /** @class */ (function (_super) {
48255
48306
  };
48256
48307
  FrameBarComponent.prototype._buildFrames = function () {
48257
48308
  var _this = this;
48258
- if (!this._currentAnimation) {
48309
+ if (this.props.context.activeAnimations.length === 0) {
48259
48310
  return null;
48260
48311
  }
48261
48312
  var minFrame = this.props.context.referenceMinFrame;
@@ -48354,10 +48405,6 @@ var GraphComponent = /** @class */ (function (_super) {
48354
48405
  _this._computeSizes();
48355
48406
  });
48356
48407
  _this._onActiveAnimationChangedObserver = _this.props.context.onActiveAnimationChanged.add(function () {
48357
- if (_this._currentAnimation === _this.props.context.activeAnimation) {
48358
- return;
48359
- }
48360
- _this._currentAnimation = _this.props.context.activeAnimation;
48361
48408
  _this._evaluateKeys();
48362
48409
  _this._computeSizes();
48363
48410
  _this.forceUpdate();
@@ -48371,108 +48418,113 @@ var GraphComponent = /** @class */ (function (_super) {
48371
48418
  });
48372
48419
  // Delete keypoint
48373
48420
  _this.props.context.onDeleteKeyActiveKeyPoints.add(function () {
48374
- if (!_this._currentAnimation || !_this.props.context.activeKeyPoints) {
48421
+ if (_this.props.context.activeAnimations.length === 0 || !_this.props.context.activeKeyPoints) {
48375
48422
  return;
48376
48423
  }
48377
- var keys = _this._currentAnimation.getKeys();
48378
- var newKeys = keys.slice(0);
48379
- var deletedFrame = null;
48380
- for (var _i = 0, _a = _this.props.context.activeKeyPoints; _i < _a.length; _i++) {
48381
- var keyPoint = _a[_i];
48382
- // Cannot delete 0 and last
48383
- if (keyPoint.props.keyId === 0 || keyPoint.props.keyId === keys.length - 1) {
48384
- continue;
48385
- }
48386
- var key = keys[keyPoint.props.keyId];
48387
- var keyIndex = newKeys.indexOf(key);
48388
- if (keyIndex > -1) {
48389
- newKeys.splice(keyIndex, 1);
48390
- if (deletedFrame === null) {
48391
- deletedFrame = key.frame;
48424
+ for (var _i = 0, _a = _this.props.context.activeAnimations; _i < _a.length; _i++) {
48425
+ var currentAnimation = _a[_i];
48426
+ var keys = currentAnimation.getKeys();
48427
+ var newKeys = keys.slice(0);
48428
+ var deletedFrame = null;
48429
+ for (var _b = 0, _c = _this.props.context.activeKeyPoints; _b < _c.length; _b++) {
48430
+ var keyPoint = _c[_b];
48431
+ // Cannot delete 0 and last
48432
+ if (keyPoint.props.keyId === 0 || keyPoint.props.keyId === keys.length - 1) {
48433
+ continue;
48434
+ }
48435
+ var key = keys[keyPoint.props.keyId];
48436
+ var keyIndex = newKeys.indexOf(key);
48437
+ if (keyIndex > -1) {
48438
+ newKeys.splice(keyIndex, 1);
48439
+ if (deletedFrame === null) {
48440
+ deletedFrame = key.frame;
48441
+ }
48392
48442
  }
48393
48443
  }
48444
+ _this.props.context.stop();
48445
+ currentAnimation.setKeys(newKeys);
48446
+ if (deletedFrame !== null) {
48447
+ _this.props.context.moveToFrame(deletedFrame);
48448
+ }
48449
+ _this.props.context.activeKeyPoints = [];
48394
48450
  }
48395
- _this.props.context.stop();
48396
- _this._currentAnimation.setKeys(newKeys);
48397
- if (deletedFrame !== null) {
48398
- _this.props.context.moveToFrame(deletedFrame);
48399
- }
48400
- _this.props.context.activeKeyPoints = [];
48401
- _this._currentAnimation = null;
48402
48451
  _this.props.context.onActiveAnimationChanged.notifyObservers();
48403
48452
  });
48404
48453
  // New keypoint
48405
48454
  _this.props.context.onNewKeyPointRequired.add(function () {
48406
- if (!_this._currentAnimation) {
48455
+ if (_this.props.context.activeAnimations.length === 0) {
48407
48456
  return;
48408
48457
  }
48409
- var keys = _this._currentAnimation.getKeys();
48410
- var currentFrame = _this.props.context.activeFrame;
48411
- var indexToAdd = -1;
48412
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
48413
- var key = keys_1[_i];
48414
- if (key.frame < currentFrame) {
48415
- indexToAdd++;
48416
- }
48417
- else {
48418
- break;
48419
- }
48420
- }
48421
- var value;
48422
- if (_this.props.context.target) {
48423
- value = _this.props.context.target;
48424
- for (var _a = 0, _b = _this._currentAnimation.targetPropertyPath; _a < _b.length; _a++) {
48425
- var path = _b[_a];
48426
- value = value[path];
48427
- }
48428
- if (value.clone) {
48429
- value = value.clone();
48430
- }
48431
- }
48432
- else {
48433
- value = _this._currentAnimation.evaluate(currentFrame);
48434
- }
48435
- var leftKey = keys[indexToAdd];
48436
- var rightKey = keys[indexToAdd + 1];
48437
- var newKey = {
48438
- frame: currentFrame,
48439
- value: value
48440
- };
48441
- if (leftKey.outTangent !== undefined && rightKey.inTangent !== undefined) {
48442
- var derivative = null;
48443
- var invFrameDelta = 1.0 / (rightKey.frame - leftKey.frame);
48444
- var cutTime = (currentFrame - leftKey.frame) * invFrameDelta;
48445
- switch (_this._currentAnimation.dataType) {
48446
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT: {
48447
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Scalar"].Hermite1stDerivative(leftKey.value * invFrameDelta, leftKey.outTangent, rightKey.value * invFrameDelta, rightKey.inTangent, cutTime);
48448
- break;
48458
+ for (var _i = 0, _a = _this.props.context.activeAnimations; _i < _a.length; _i++) {
48459
+ var currentAnimation = _a[_i];
48460
+ var keys = currentAnimation.getKeys();
48461
+ var currentFrame = _this.props.context.activeFrame;
48462
+ var indexToAdd = -1;
48463
+ for (var _b = 0, keys_1 = keys; _b < keys_1.length; _b++) {
48464
+ var key = keys_1[_b];
48465
+ if (key.frame < currentFrame) {
48466
+ indexToAdd++;
48449
48467
  }
48450
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR2: {
48451
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48468
+ else {
48452
48469
  break;
48453
48470
  }
48454
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR3: {
48455
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48456
- break;
48471
+ }
48472
+ var value = void 0;
48473
+ if (_this.props.context.target) {
48474
+ value = _this.props.context.target;
48475
+ for (var _c = 0, _d = currentAnimation.targetPropertyPath; _c < _d.length; _c++) {
48476
+ var path = _d[_c];
48477
+ value = value[path];
48457
48478
  }
48458
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION: {
48459
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48460
- break;
48479
+ if (value.clone) {
48480
+ value = value.clone();
48461
48481
  }
48462
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3:
48463
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48464
- break;
48465
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR4:
48466
- derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48467
- break;
48468
48482
  }
48469
- if (derivative !== null) {
48470
- newKey.inTangent = derivative;
48471
- newKey.outTangent = derivative.clone ? derivative.clone() : derivative;
48483
+ else {
48484
+ value = currentAnimation.evaluate(currentFrame);
48485
+ }
48486
+ var leftKey = keys[indexToAdd];
48487
+ var rightKey = keys[indexToAdd + 1];
48488
+ var newKey = {
48489
+ frame: currentFrame,
48490
+ value: value
48491
+ };
48492
+ if (leftKey.outTangent !== undefined && rightKey.inTangent !== undefined) {
48493
+ var derivative = null;
48494
+ var invFrameDelta = 1.0 / (rightKey.frame - leftKey.frame);
48495
+ var cutTime = (currentFrame - leftKey.frame) * invFrameDelta;
48496
+ switch (currentAnimation.dataType) {
48497
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT: {
48498
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Scalar"].Hermite1stDerivative(leftKey.value * invFrameDelta, leftKey.outTangent, rightKey.value * invFrameDelta, rightKey.inTangent, cutTime);
48499
+ break;
48500
+ }
48501
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR2: {
48502
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48503
+ break;
48504
+ }
48505
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR3: {
48506
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48507
+ break;
48508
+ }
48509
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION: {
48510
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48511
+ break;
48512
+ }
48513
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3:
48514
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48515
+ break;
48516
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR4:
48517
+ derivative = _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"].Hermite1stDerivative(leftKey.value.scale(invFrameDelta), leftKey.outTangent, rightKey.value.scale(invFrameDelta), rightKey.inTangent, cutTime);
48518
+ break;
48519
+ }
48520
+ if (derivative !== null) {
48521
+ newKey.inTangent = derivative;
48522
+ newKey.outTangent = derivative.clone ? derivative.clone() : derivative;
48523
+ }
48472
48524
  }
48525
+ keys.splice(indexToAdd + 1, 0, newKey);
48526
+ currentAnimation.setKeys(keys);
48473
48527
  }
48474
- keys.splice(indexToAdd + 1, 0, newKey);
48475
- _this._currentAnimation.setKeys(keys);
48476
48528
  _this._evaluateKeys(false, false);
48477
48529
  _this.props.context.activeKeyPoints = [];
48478
48530
  _this.props.context.onActiveKeyPointChanged.notifyObservers();
@@ -48508,59 +48560,68 @@ var GraphComponent = /** @class */ (function (_super) {
48508
48560
  }
48509
48561
  };
48510
48562
  GraphComponent.prototype._evaluateKeys = function (frame, range) {
48563
+ var _a;
48511
48564
  var _this = this;
48512
48565
  if (frame === void 0) { frame = true; }
48513
48566
  if (range === void 0) { range = true; }
48514
- if (!this.props.context.activeAnimation) {
48567
+ if (this.props.context.activeAnimations.length === 0) {
48515
48568
  this._curves = [];
48516
48569
  return;
48517
48570
  }
48518
- var animation = this.props.context.activeAnimation;
48519
- var keys = animation.getKeys();
48520
48571
  this._curves = [];
48521
- switch (animation.dataType) {
48522
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT:
48523
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation));
48524
- break;
48525
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR2:
48526
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48527
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48528
- break;
48529
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR3:
48530
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48531
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48532
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "z", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48533
- break;
48534
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3:
48535
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "r", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48536
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "g", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48537
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "b", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48538
- break;
48539
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION:
48540
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48541
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48542
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "z", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48543
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#8700FF", animation, "w", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48544
- break;
48545
- case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR4:
48546
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "r", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48547
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "g", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48548
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "b", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48549
- this._curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#8700FF", animation, "a", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48550
- break;
48551
- }
48552
- var values = this._extractValuesFromKeys(keys, animation.dataType, true);
48553
- if (range) {
48554
- this._minValue = values.min;
48555
- this._maxValue = values.max;
48556
- this._minFrame = keys[0].frame;
48557
- this._maxFrame = keys[keys.length - 1].frame;
48572
+ this._minValue = Number.MAX_VALUE;
48573
+ this._maxValue = -Number.MAX_VALUE;
48574
+ this._minFrame = Number.MAX_VALUE;
48575
+ this._maxFrame = -Number.MAX_VALUE;
48576
+ for (var _i = 0, _b = this.props.context.activeAnimations; _i < _b.length; _i++) {
48577
+ var animation = _b[_i];
48578
+ var keys = animation.getKeys();
48579
+ var curves = [];
48580
+ switch (animation.dataType) {
48581
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT:
48582
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation));
48583
+ break;
48584
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR2:
48585
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48586
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector2"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48587
+ break;
48588
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_VECTOR3:
48589
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48590
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48591
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "z", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Vector3"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48592
+ break;
48593
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3:
48594
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "r", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48595
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "g", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48596
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "b", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color3"].Black(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48597
+ break;
48598
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_QUATERNION:
48599
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "x", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48600
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "y", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48601
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "z", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48602
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#8700FF", animation, "w", function () { return _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Quaternion"].Zero(); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48603
+ break;
48604
+ case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR4:
48605
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#DB3E3E", animation, "r", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48606
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#51E22D", animation, "g", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48607
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#00A3FF", animation, "b", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48608
+ curves.push(new _curve__WEBPACK_IMPORTED_MODULE_3__["Curve"]("#8700FF", animation, "a", function () { return new _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Color4"](); }, function (keyId) { return _this._setDefaultInTangent(keyId); }, function (keyId) { return _this._setDefaultOutTangent(keyId); }));
48609
+ break;
48610
+ }
48611
+ var values = this._extractValuesFromKeys(keys, animation.dataType, curves);
48612
+ (_a = this._curves).push.apply(_a, curves);
48613
+ if (range) {
48614
+ this._minValue = Math.min(this._minValue, values.min);
48615
+ this._maxValue = Math.max(this._maxValue, values.max);
48616
+ this._minFrame = Math.min(this._minFrame, keys[0].frame);
48617
+ this._maxFrame = Math.max(this._maxFrame, keys[keys.length - 1].frame);
48618
+ }
48558
48619
  }
48559
48620
  if (frame) {
48560
48621
  this._frame();
48561
48622
  }
48562
48623
  };
48563
- GraphComponent.prototype._extractValuesFromKeys = function (keys, dataType, pushToCurves, propertyFilter) {
48624
+ GraphComponent.prototype._extractValuesFromKeys = function (keys, dataType, curvesToPushTo, propertyFilter) {
48564
48625
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
48565
48626
  var minValue = Number.MAX_VALUE;
48566
48627
  var maxValue = -Number.MAX_VALUE;
@@ -48574,8 +48635,8 @@ var GraphComponent = /** @class */ (function (_super) {
48574
48635
  case _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT:
48575
48636
  minValue = Math.min(minValue, key.value);
48576
48637
  maxValue = Math.max(maxValue, key.value);
48577
- if (pushToCurves) {
48578
- this._curves[0].keys.push({
48638
+ if (curvesToPushTo) {
48639
+ curvesToPushTo[0].keys.push({
48579
48640
  frame: key.frame,
48580
48641
  value: key.value,
48581
48642
  inTangent: key.inTangent,
@@ -48593,15 +48654,15 @@ var GraphComponent = /** @class */ (function (_super) {
48593
48654
  minValue = Math.min(minValue, key.value.y);
48594
48655
  maxValue = Math.max(maxValue, key.value.y);
48595
48656
  }
48596
- if (pushToCurves) {
48597
- this._curves[0].keys.push({
48657
+ if (curvesToPushTo) {
48658
+ curvesToPushTo[0].keys.push({
48598
48659
  frame: key.frame,
48599
48660
  value: key.value.x,
48600
48661
  inTangent: (_a = key.inTangent) === null || _a === void 0 ? void 0 : _a.x,
48601
48662
  outTangent: (_b = key.outTangent) === null || _b === void 0 ? void 0 : _b.x,
48602
48663
  lockedTangent: lockedTangent
48603
48664
  });
48604
- this._curves[1].keys.push({
48665
+ curvesToPushTo[1].keys.push({
48605
48666
  frame: key.frame,
48606
48667
  value: key.value.y,
48607
48668
  inTangent: (_c = key.inTangent) === null || _c === void 0 ? void 0 : _c.y,
@@ -48623,22 +48684,22 @@ var GraphComponent = /** @class */ (function (_super) {
48623
48684
  minValue = Math.min(minValue, key.value.z);
48624
48685
  maxValue = Math.max(maxValue, key.value.z);
48625
48686
  }
48626
- if (pushToCurves) {
48627
- this._curves[0].keys.push({
48687
+ if (curvesToPushTo) {
48688
+ curvesToPushTo[0].keys.push({
48628
48689
  frame: key.frame,
48629
48690
  value: key.value.x,
48630
48691
  inTangent: (_e = key.inTangent) === null || _e === void 0 ? void 0 : _e.x,
48631
48692
  outTangent: (_f = key.outTangent) === null || _f === void 0 ? void 0 : _f.x,
48632
48693
  lockedTangent: lockedTangent
48633
48694
  });
48634
- this._curves[1].keys.push({
48695
+ curvesToPushTo[1].keys.push({
48635
48696
  frame: key.frame,
48636
48697
  value: key.value.y,
48637
48698
  inTangent: (_g = key.inTangent) === null || _g === void 0 ? void 0 : _g.y,
48638
48699
  outTangent: (_h = key.outTangent) === null || _h === void 0 ? void 0 : _h.y,
48639
48700
  lockedTangent: lockedTangent
48640
48701
  });
48641
- this._curves[2].keys.push({
48702
+ curvesToPushTo[2].keys.push({
48642
48703
  frame: key.frame,
48643
48704
  value: key.value.z,
48644
48705
  inTangent: (_j = key.inTangent) === null || _j === void 0 ? void 0 : _j.z,
@@ -48660,22 +48721,22 @@ var GraphComponent = /** @class */ (function (_super) {
48660
48721
  minValue = Math.min(minValue, key.value.b);
48661
48722
  maxValue = Math.max(maxValue, key.value.b);
48662
48723
  }
48663
- if (pushToCurves) {
48664
- this._curves[0].keys.push({
48724
+ if (curvesToPushTo) {
48725
+ curvesToPushTo[0].keys.push({
48665
48726
  frame: key.frame,
48666
48727
  value: key.value.r,
48667
48728
  inTangent: (_l = key.inTangent) === null || _l === void 0 ? void 0 : _l.r,
48668
48729
  outTangent: (_m = key.outTangent) === null || _m === void 0 ? void 0 : _m.r,
48669
48730
  lockedTangent: lockedTangent
48670
48731
  });
48671
- this._curves[1].keys.push({
48732
+ curvesToPushTo[1].keys.push({
48672
48733
  frame: key.frame,
48673
48734
  value: key.value.g,
48674
48735
  inTangent: (_o = key.inTangent) === null || _o === void 0 ? void 0 : _o.g,
48675
48736
  outTangent: (_p = key.outTangent) === null || _p === void 0 ? void 0 : _p.g,
48676
48737
  lockedTangent: lockedTangent
48677
48738
  });
48678
- this._curves[2].keys.push({
48739
+ curvesToPushTo[2].keys.push({
48679
48740
  frame: key.frame,
48680
48741
  value: key.value.b,
48681
48742
  inTangent: (_q = key.inTangent) === null || _q === void 0 ? void 0 : _q.b,
@@ -48701,29 +48762,29 @@ var GraphComponent = /** @class */ (function (_super) {
48701
48762
  minValue = Math.min(minValue, key.value.w);
48702
48763
  maxValue = Math.max(maxValue, key.value.w);
48703
48764
  }
48704
- if (pushToCurves) {
48705
- this._curves[0].keys.push({
48765
+ if (curvesToPushTo) {
48766
+ curvesToPushTo[0].keys.push({
48706
48767
  frame: key.frame,
48707
48768
  value: key.value.x,
48708
48769
  inTangent: (_s = key.inTangent) === null || _s === void 0 ? void 0 : _s.x,
48709
48770
  outTangent: (_t = key.outTangent) === null || _t === void 0 ? void 0 : _t.x,
48710
48771
  lockedTangent: lockedTangent
48711
48772
  });
48712
- this._curves[1].keys.push({
48773
+ curvesToPushTo[1].keys.push({
48713
48774
  frame: key.frame,
48714
48775
  value: key.value.y,
48715
48776
  inTangent: (_u = key.inTangent) === null || _u === void 0 ? void 0 : _u.y,
48716
48777
  outTangent: (_v = key.outTangent) === null || _v === void 0 ? void 0 : _v.y,
48717
48778
  lockedTangent: lockedTangent
48718
48779
  });
48719
- this._curves[2].keys.push({
48780
+ curvesToPushTo[2].keys.push({
48720
48781
  frame: key.frame,
48721
48782
  value: key.value.z,
48722
48783
  inTangent: (_w = key.inTangent) === null || _w === void 0 ? void 0 : _w.z,
48723
48784
  outTangent: (_x = key.outTangent) === null || _x === void 0 ? void 0 : _x.z,
48724
48785
  lockedTangent: lockedTangent
48725
48786
  });
48726
- this._curves[3].keys.push({
48787
+ curvesToPushTo[3].keys.push({
48727
48788
  frame: key.frame,
48728
48789
  value: key.value.w,
48729
48790
  inTangent: (_y = key.inTangent) === null || _y === void 0 ? void 0 : _y.w,
@@ -48749,29 +48810,29 @@ var GraphComponent = /** @class */ (function (_super) {
48749
48810
  minValue = Math.min(minValue, key.value.a);
48750
48811
  maxValue = Math.max(maxValue, key.value.a);
48751
48812
  }
48752
- if (pushToCurves) {
48753
- this._curves[0].keys.push({
48813
+ if (curvesToPushTo) {
48814
+ curvesToPushTo[0].keys.push({
48754
48815
  frame: key.frame,
48755
48816
  value: key.value.r,
48756
48817
  inTangent: (_0 = key.inTangent) === null || _0 === void 0 ? void 0 : _0.r,
48757
48818
  outTangent: (_1 = key.outTangent) === null || _1 === void 0 ? void 0 : _1.r,
48758
48819
  lockedTangent: lockedTangent
48759
48820
  });
48760
- this._curves[1].keys.push({
48821
+ curvesToPushTo[1].keys.push({
48761
48822
  frame: key.frame,
48762
48823
  value: key.value.g,
48763
48824
  inTangent: (_2 = key.inTangent) === null || _2 === void 0 ? void 0 : _2.g,
48764
48825
  outTangent: (_3 = key.outTangent) === null || _3 === void 0 ? void 0 : _3.g,
48765
48826
  lockedTangent: lockedTangent
48766
48827
  });
48767
- this._curves[2].keys.push({
48828
+ curvesToPushTo[2].keys.push({
48768
48829
  frame: key.frame,
48769
48830
  value: key.value.b,
48770
48831
  inTangent: (_4 = key.inTangent) === null || _4 === void 0 ? void 0 : _4.b,
48771
48832
  outTangent: (_5 = key.outTangent) === null || _5 === void 0 ? void 0 : _5.b,
48772
48833
  lockedTangent: lockedTangent
48773
48834
  });
48774
- this._curves[3].keys.push({
48835
+ curvesToPushTo[3].keys.push({
48775
48836
  frame: key.frame,
48776
48837
  value: key.value.a,
48777
48838
  inTangent: (_6 = key.inTangent) === null || _6 === void 0 ? void 0 : _6.a,
@@ -48813,12 +48874,12 @@ var GraphComponent = /** @class */ (function (_super) {
48813
48874
  };
48814
48875
  GraphComponent.prototype._buildFrameIntervalAxis = function () {
48815
48876
  var _this = this;
48816
- if (!this.props.context.activeAnimation) {
48877
+ if (this.props.context.activeAnimations.length === 0) {
48817
48878
  return null;
48818
48879
  }
48819
48880
  var maxFrame = this.props.context.referenceMaxFrame;
48820
48881
  var range = maxFrame;
48821
- var offset = this.props.context.activeAnimation.framePerSecond;
48882
+ var offset = this.props.context.activeAnimations[0].framePerSecond;
48822
48883
  var convertRatio = range / this._GraphAbsoluteWidth;
48823
48884
  var steps = [];
48824
48885
  if (offset === 0) {
@@ -48841,7 +48902,7 @@ var GraphComponent = /** @class */ (function (_super) {
48841
48902
  };
48842
48903
  GraphComponent.prototype._buildYAxis = function () {
48843
48904
  var _this = this;
48844
- if (!this.props.context.activeAnimation) {
48905
+ if (this.props.context.activeAnimations.length === 0) {
48845
48906
  return null;
48846
48907
  }
48847
48908
  var stepCounts = 10;
@@ -48890,37 +48951,50 @@ var GraphComponent = /** @class */ (function (_super) {
48890
48951
  }));
48891
48952
  };
48892
48953
  GraphComponent.prototype._frame = function () {
48893
- var _this = this;
48894
- if (!this._currentAnimation) {
48954
+ if (this.props.context.activeAnimations.length === 0) {
48895
48955
  return;
48896
48956
  }
48897
48957
  this._offsetX = 20;
48898
48958
  this._offsetY = 20;
48899
- var keys = this._currentAnimation.getKeys();
48900
- // Only keep selected keys
48901
- if (this.props.context.activeKeyPoints && this.props.context.activeKeyPoints.length > 1) {
48902
- var newKeys = [];
48903
- for (var _i = 0, _a = this.props.context.activeKeyPoints; _i < _a.length; _i++) {
48904
- var keyPoint = _a[_i];
48905
- newKeys.push(keys[keyPoint.props.keyId]);
48959
+ this._minValue = Number.MAX_VALUE;
48960
+ this._maxValue = -Number.MAX_VALUE;
48961
+ this._minFrame = Number.MAX_VALUE;
48962
+ this._maxFrame = -Number.MAX_VALUE;
48963
+ var _loop_1 = function (animation) {
48964
+ var propertyFilter = undefined;
48965
+ var activeChannel = this_1.props.context.getActiveChannel(animation);
48966
+ if (activeChannel) {
48967
+ var activeCurve = this_1._curves.filter(function (c) { return c.color === activeChannel; })[0];
48968
+ if (activeCurve) {
48969
+ propertyFilter = activeCurve.property;
48970
+ }
48906
48971
  }
48907
- keys = newKeys;
48908
- }
48909
- this._minFrame = keys[0].frame;
48910
- this._maxFrame = keys[keys.length - 1].frame;
48911
- var propertyFilter = undefined;
48912
- if (this.props.context.activeColor) {
48913
- var activeCurve = this._curves.filter(function (c) { return c.color === _this.props.context.activeColor; })[0];
48914
- if (activeCurve) {
48915
- propertyFilter = activeCurve.property;
48972
+ var keys = animation.getKeys();
48973
+ // Only keep selected keys
48974
+ if (this_1.props.context.activeKeyPoints && this_1.props.context.activeKeyPoints.length > 1) {
48975
+ var newKeys = [];
48976
+ for (var _b = 0, _c = this_1.props.context.activeKeyPoints; _b < _c.length; _b++) {
48977
+ var keyPoint = _c[_b];
48978
+ if (keyPoint.props.curve.animation === animation) {
48979
+ newKeys.push(keys[keyPoint.props.keyId]);
48980
+ }
48981
+ }
48982
+ keys = newKeys;
48916
48983
  }
48917
- else {
48918
- this.props.context.activeColor = null;
48984
+ if (keys.length === 0) {
48985
+ return "continue";
48919
48986
  }
48987
+ var values = this_1._extractValuesFromKeys(keys, animation.dataType, undefined, propertyFilter);
48988
+ this_1._minValue = Math.min(this_1._minValue, values.min);
48989
+ this_1._maxValue = Math.max(this_1._maxValue, values.max);
48990
+ this_1._minFrame = Math.min(this_1._minFrame, keys[0].frame);
48991
+ this_1._maxFrame = Math.max(this_1._maxFrame, keys[keys.length - 1].frame);
48992
+ };
48993
+ var this_1 = this;
48994
+ for (var _i = 0, _a = this.props.context.activeAnimations; _i < _a.length; _i++) {
48995
+ var animation = _a[_i];
48996
+ _loop_1(animation);
48920
48997
  }
48921
- var values = this._extractValuesFromKeys(keys, this._currentAnimation.dataType, false, propertyFilter);
48922
- this._minValue = values.min;
48923
- this._maxValue = values.max;
48924
48998
  this.props.context.referenceMinFrame = this._minFrame;
48925
48999
  this.props.context.referenceMaxFrame = this._maxFrame;
48926
49000
  var frameConvert = Math.abs(this._convertX(this._maxFrame) - this._convertX(this._minFrame)) + this._offsetX * 2;
@@ -48931,19 +49005,12 @@ var GraphComponent = /** @class */ (function (_super) {
48931
49005
  this.props.context.onGraphMoved.notifyObservers(this._offsetX);
48932
49006
  this.props.context.onGraphScaled.notifyObservers(this._viewScale);
48933
49007
  };
48934
- GraphComponent.prototype._dropKeyFrames = function (curveId) {
49008
+ GraphComponent.prototype._dropKeyFrames = function (curve) {
48935
49009
  var _this = this;
48936
- if (!this.props.context.activeAnimation || !this._curves || !this._curves.length) {
48937
- return null;
48938
- }
48939
- if (curveId >= this._curves.length) {
48940
- return null;
48941
- }
48942
- var curve = this._curves[curveId];
48943
49010
  return curve.keys.map(function (key, i) {
48944
49011
  var x = _this._convertX(key.frame);
48945
49012
  var y = _this._convertY(key.value);
48946
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_keyPoint__WEBPACK_IMPORTED_MODULE_4__["KeyPointComponent"], { x: x, y: y, context: _this.props.context, scale: _this._viewScale, getPreviousX: function () { return i > 0 ? _this._convertX(curve.keys[i - 1].frame) : null; }, getNextX: function () { return i < curve.keys.length - 1 ? _this._convertX(curve.keys[i + 1].frame) : null; }, channel: curve.color, keyId: i, curve: curve, key: curveId + "-" + i, invertX: function (x) { return _this._invertX(x); }, invertY: function (y) { return _this._invertY(y); }, convertX: function (x) { return _this._convertX(x); }, convertY: function (y) { return _this._convertY(y); }, onFrameValueChanged: function (value) {
49013
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_keyPoint__WEBPACK_IMPORTED_MODULE_4__["KeyPointComponent"], { x: x, y: y, context: _this.props.context, scale: _this._viewScale, getPreviousX: function () { return i > 0 ? _this._convertX(curve.keys[i - 1].frame) : null; }, getNextX: function () { return i < curve.keys.length - 1 ? _this._convertX(curve.keys[i + 1].frame) : null; }, channel: curve.color, keyId: i, curve: curve, key: "curve-" + i, invertX: function (x) { return _this._invertX(x); }, invertY: function (y) { return _this._invertY(y); }, convertX: function (x) { return _this._convertX(x); }, convertY: function (y) { return _this._convertY(y); }, onFrameValueChanged: function (value) {
48947
49014
  curve.updateKeyFrame(i, value);
48948
49015
  _this.props.context.refreshTarget();
48949
49016
  }, onKeyValueChanged: function (value) {
@@ -49032,14 +49099,14 @@ var GraphComponent = /** @class */ (function (_super) {
49032
49099
  var viewBoxHorizontal = -this._offsetX + " 0 " + Math.round((this._viewWidth - 40) * this._viewScale) + " " + Math.round(scale * this._viewHeight);
49033
49100
  var activeBoxLeft = 0;
49034
49101
  var activeBoxRight = 0;
49035
- if (this.props.context.activeAnimation) {
49102
+ if (this.props.context.activeAnimations.length !== 0) {
49036
49103
  var minFrame = this.props.context.referenceMinFrame;
49037
49104
  var maxFrame = this.props.context.referenceMaxFrame;
49038
49105
  activeBoxLeft = (((this.props.context.fromKey - minFrame) / (maxFrame - minFrame)) * this._GraphAbsoluteWidth + this._offsetX) / this._viewScale;
49039
49106
  activeBoxRight = (((this.props.context.toKey - minFrame) / (maxFrame - minFrame)) * this._GraphAbsoluteWidth + this._offsetX) / this._viewScale;
49040
49107
  }
49041
49108
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "graph", onWheel: function (evt) { return _this._onWheel(evt); }, onPointerDown: function (evt) { return _this._onPointerDown(evt); }, onPointerMove: function (evt) { return _this._onPointerMove(evt); }, onPointerUp: function (evt) { return _this._onPointerUp(evt); } },
49042
- this.props.context.activeAnimation &&
49109
+ this.props.context.activeAnimations.length !== 0 &&
49043
49110
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "dark-rectangle", style: {
49044
49111
  left: activeBoxLeft + "px",
49045
49112
  width: (activeBoxRight - activeBoxLeft) + "px"
@@ -49051,10 +49118,9 @@ var GraphComponent = /** @class */ (function (_super) {
49051
49118
  this._curves.map(function (c, i) {
49052
49119
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_curveComponent__WEBPACK_IMPORTED_MODULE_5__["CurveComponent"], { key: i, context: _this.props.context, curve: c, convertX: function (x) { return _this._convertX(x); }, convertY: function (y) { return _this._convertY(y); } }));
49053
49120
  }),
49054
- this._dropKeyFrames(0),
49055
- this._dropKeyFrames(1),
49056
- this._dropKeyFrames(2),
49057
- this._dropKeyFrames(3)),
49121
+ this._curves.map(function (c) {
49122
+ return _this._dropKeyFrames(c);
49123
+ })),
49058
49124
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { ref: this._selectionRectangle, id: "selection-rectangle" })));
49059
49125
  };
49060
49126
  return GraphComponent;
@@ -49104,6 +49170,10 @@ var KeyPointComponent = /** @class */ (function (_super) {
49104
49170
  function KeyPointComponent(props) {
49105
49171
  var _this = _super.call(this, props) || this;
49106
49172
  _this._controlMode = ControlMode.None;
49173
+ _this._lockX = false;
49174
+ _this._lockY = false;
49175
+ _this._accumulatedX = 0;
49176
+ _this._accumulatedY = 0;
49107
49177
  _this.state = { selectedState: SelectionState.None, x: _this.props.x, y: _this.props.y, tangentSelectedIndex: -1 };
49108
49178
  _this._svgHost = react__WEBPACK_IMPORTED_MODULE_2__["createRef"]();
49109
49179
  _this._keyPointSVG = react__WEBPACK_IMPORTED_MODULE_2__["createRef"]();
@@ -49197,7 +49267,7 @@ var KeyPointComponent = /** @class */ (function (_super) {
49197
49267
  var state = SelectionState.None;
49198
49268
  for (var _i = 0, _b = _this.props.context.activeKeyPoints; _i < _b.length; _i++) {
49199
49269
  var activeKeyPoint = _b[_i];
49200
- if (activeKeyPoint.props.keyId === _this.props.keyId && curve !== activeKeyPoint.props.curve) {
49270
+ if (activeKeyPoint.props.keyId === _this.props.keyId && curve !== activeKeyPoint.props.curve && curve.animation === activeKeyPoint.props.curve.animation) {
49201
49271
  state = SelectionState.Siblings;
49202
49272
  break;
49203
49273
  }
@@ -49382,6 +49452,10 @@ var KeyPointComponent = /** @class */ (function (_super) {
49382
49452
  this._controlMode = ControlMode.TangentRight;
49383
49453
  this.setState({ tangentSelectedIndex: 1 });
49384
49454
  }
49455
+ this._lockX = false;
49456
+ this._lockY = false;
49457
+ this._accumulatedX = 0;
49458
+ this._accumulatedY = 0;
49385
49459
  evt.stopPropagation();
49386
49460
  };
49387
49461
  KeyPointComponent.prototype._extractSlope = function (vec, storedLength, isIn) {
@@ -49410,8 +49484,28 @@ var KeyPointComponent = /** @class */ (function (_super) {
49410
49484
  return;
49411
49485
  }
49412
49486
  if (this._controlMode === ControlMode.Key) {
49413
- var newX = this.state.x + (evt.nativeEvent.offsetX - this._sourcePointerX) * this.props.scale;
49414
- var newY = this.state.y + (evt.nativeEvent.offsetY - this._sourcePointerY) * this.props.scale;
49487
+ var diffX = evt.nativeEvent.offsetX - this._sourcePointerX;
49488
+ var diffY = evt.nativeEvent.offsetY - this._sourcePointerY;
49489
+ if (evt.shiftKey) {
49490
+ if (!this._lockX && !this._lockY) {
49491
+ this._accumulatedX += Math.abs(diffX);
49492
+ this._accumulatedY += Math.abs(diffY);
49493
+ if (this._accumulatedX > 5 || this._accumulatedY > 5) {
49494
+ if (this._accumulatedX > this._accumulatedY) {
49495
+ this._lockY = true;
49496
+ }
49497
+ else {
49498
+ this._lockX = true;
49499
+ }
49500
+ }
49501
+ }
49502
+ }
49503
+ else {
49504
+ this._lockX = false;
49505
+ this._lockY = false;
49506
+ }
49507
+ var newX = this.state.x + (this._lockX ? 0 : diffX * this.props.scale);
49508
+ var newY = this.state.y + (this._lockY ? 0 : diffY * this.props.scale);
49415
49509
  var previousX = this.props.getPreviousX();
49416
49510
  var nextX = this.props.getNextX();
49417
49511
  var epsilon = 0.01;
@@ -49493,7 +49587,7 @@ var KeyPointComponent = /** @class */ (function (_super) {
49493
49587
  KeyPointComponent.prototype.render = function () {
49494
49588
  var _this = this;
49495
49589
  var _a;
49496
- if (this.props.context.activeColor && this.props.context.activeColor !== this.props.curve.color) {
49590
+ if (!this.props.context.isChannelEnabled(this.props.curve.animation, this.props.curve.color)) {
49497
49591
  return null;
49498
49592
  }
49499
49593
  var svgImageIcon = this.state.selectedState === SelectionState.Selected ? keySelected : (this.state.selectedState === SelectionState.Siblings ? keyActive : keyInactive);
@@ -49574,10 +49668,10 @@ var PlayHeadComponent = /** @class */ (function (_super) {
49574
49668
  });
49575
49669
  _this._onBeforeRenderObserver = _this.props.context.scene.onBeforeRenderObservable.add(function () {
49576
49670
  var _a;
49577
- if (!_this.props.context.activeAnimation) {
49671
+ if (_this.props.context.activeAnimations.length === 0) {
49578
49672
  return;
49579
49673
  }
49580
- var animation = _this.props.context.activeAnimation;
49674
+ var animation = _this.props.context.activeAnimations[0];
49581
49675
  if (!animation) {
49582
49676
  return;
49583
49677
  }
@@ -49619,7 +49713,7 @@ var PlayHeadComponent = /** @class */ (function (_super) {
49619
49713
  return (((frame - minFrame) / (maxFrame - minFrame)) * this._GraphAbsoluteWidth + this._offsetX) * this._viewScale;
49620
49714
  };
49621
49715
  PlayHeadComponent.prototype._pixelToFrame = function (pixel) {
49622
- var animation = this.props.context.activeAnimation;
49716
+ var animation = this.props.context.activeAnimations[0];
49623
49717
  var keys = animation.getKeys();
49624
49718
  var minFrame = this.props.context.referenceMinFrame;
49625
49719
  var maxFrame = this.props.context.referenceMaxFrame;
@@ -49655,7 +49749,7 @@ var PlayHeadComponent = /** @class */ (function (_super) {
49655
49749
  };
49656
49750
  PlayHeadComponent.prototype.render = function () {
49657
49751
  var _this = this;
49658
- if (!this.props.context.activeAnimation) {
49752
+ if (this.props.context.activeAnimations.length === 0) {
49659
49753
  return null;
49660
49754
  }
49661
49755
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
@@ -49699,7 +49793,6 @@ var RangeFrameBarComponent = /** @class */ (function (_super) {
49699
49793
  _this._computeSizes();
49700
49794
  });
49701
49795
  _this._onActiveAnimationChangedObserver = _this.props.context.onActiveAnimationChanged.add(function () {
49702
- _this._currentAnimation = _this.props.context.activeAnimation;
49703
49796
  if (!_this._isMounted) {
49704
49797
  return;
49705
49798
  }
@@ -49736,15 +49829,12 @@ var RangeFrameBarComponent = /** @class */ (function (_super) {
49736
49829
  this._viewWidth = this._svgHost.current.clientWidth;
49737
49830
  this.forceUpdate();
49738
49831
  };
49739
- RangeFrameBarComponent.prototype._dropKeyFrames = function () {
49740
- if (!this._currentAnimation) {
49741
- return null;
49742
- }
49832
+ RangeFrameBarComponent.prototype._dropKeyFrames = function (animation) {
49743
49833
  var from = this.props.context.fromKey;
49744
49834
  var to = this.props.context.toKey;
49745
49835
  var range = to - from;
49746
49836
  var convertRatio = range / this._viewWidth;
49747
- var keys = this._currentAnimation.getKeys();
49837
+ var keys = animation.getKeys();
49748
49838
  return (keys.map(function (k, i) {
49749
49839
  var x = (k.frame - from) / convertRatio;
49750
49840
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("line", { key: "frame-line" + k.frame + i, x1: x, y1: "0px", x2: x, y2: "40px", style: {
@@ -49754,7 +49844,7 @@ var RangeFrameBarComponent = /** @class */ (function (_super) {
49754
49844
  }));
49755
49845
  };
49756
49846
  RangeFrameBarComponent.prototype._buildFrames = function () {
49757
- if (!this._currentAnimation) {
49847
+ if (this.props.context.activeAnimations.length === 0) {
49758
49848
  return null;
49759
49849
  }
49760
49850
  var from = this.props.context.fromKey;
@@ -49788,11 +49878,14 @@ var RangeFrameBarComponent = /** @class */ (function (_super) {
49788
49878
  }));
49789
49879
  };
49790
49880
  RangeFrameBarComponent.prototype.render = function () {
49881
+ var _this = this;
49791
49882
  var viewBox = -this._offsetX + " 0 " + (this._viewWidth + this._offsetX * 4) + " 40";
49792
49883
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "range-frame-bar" },
49793
49884
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("svg", { id: "svg-range-frames", viewBox: viewBox, ref: this._svgHost },
49794
49885
  this._buildFrames(),
49795
- this._dropKeyFrames())));
49886
+ this.props.context.activeAnimations.map(function (a) {
49887
+ return _this._dropKeyFrames(a);
49888
+ }))));
49796
49889
  };
49797
49890
  return RangeFrameBarComponent;
49798
49891
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
@@ -49970,20 +50063,21 @@ var AddAnimationComponent = /** @class */ (function (_super) {
49970
50063
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(AddAnimationComponent, _super);
49971
50064
  function AddAnimationComponent(props) {
49972
50065
  var _this = _super.call(this, props) || this;
49973
- _this.state = {};
50066
+ _this.state = { customPropertyMode: false };
49974
50067
  _this._root = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
49975
50068
  _this._displayName = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
49976
50069
  _this._property = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
49977
50070
  _this._typeElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
49978
50071
  _this._loopModeElement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
50072
+ _this._propertylement = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
49979
50073
  return _this;
49980
50074
  }
49981
50075
  AddAnimationComponent.prototype.createNew = function () {
49982
50076
  var context = this.props.context;
49983
50077
  var document = this._displayName.current.ownerDocument;
49984
50078
  var displayName = this._displayName.current.value;
49985
- var property = this._property.current.value;
49986
- var type = this._typeElement.current.value;
50079
+ var property = this._property.current ? this._property.current.value : this._propertylement.current.value;
50080
+ var type = this._typeElement.current ? this._typeElement.current.value : this.getInferredType();
49987
50081
  var loopModeValue = this._loopModeElement.current.value;
49988
50082
  if (!displayName) {
49989
50083
  document.defaultView.alert("Please define a display name");
@@ -50072,25 +50166,99 @@ var AddAnimationComponent = /** @class */ (function (_super) {
50072
50166
  if (!context.useTargetAnimations) {
50073
50167
  context.animations.push(animation);
50074
50168
  }
50075
- context.activeAnimation = animation;
50169
+ context.activeAnimations.push(animation);
50076
50170
  context.prepare();
50077
50171
  context.onActiveAnimationChanged.notifyObservers();
50078
50172
  context.onAnimationsLoaded.notifyObservers();
50079
50173
  };
50174
+ AddAnimationComponent.prototype.getInferredType = function (activeProperty) {
50175
+ if (activeProperty === void 0) { activeProperty = ""; }
50176
+ var source = this.props.context.target;
50177
+ if (this._propertylement.current) {
50178
+ activeProperty = this._propertylement.current.value;
50179
+ }
50180
+ var value = source[activeProperty];
50181
+ if (!isNaN(parseFloat(value))) {
50182
+ return "Float";
50183
+ }
50184
+ return value.getClassName();
50185
+ };
50080
50186
  AddAnimationComponent.prototype.render = function () {
50081
50187
  var _this = this;
50082
50188
  var types = ["Float", "Vector2", "Vector3", "Quaternion", "Color3", "Color4"];
50083
50189
  var loopModes = ["Cycle", "Relative", "Constant"];
50190
+ var modes = ["Custom", "List"];
50191
+ var properties = [];
50192
+ var inferredType = "";
50193
+ if (this.props.context.target) {
50194
+ var target = this.props.context.target;
50195
+ var source = target;
50196
+ while (target !== null) {
50197
+ var descriptors = Object.getOwnPropertyDescriptors(target);
50198
+ for (var property in descriptors) {
50199
+ var descriptor = descriptors[property];
50200
+ if (property[0] === "_" || source[property] === null || source[property] === undefined) {
50201
+ continue;
50202
+ }
50203
+ if (source[property].r === undefined && source[property].x === undefined && isNaN(parseFloat(source[property]))) {
50204
+ continue;
50205
+ }
50206
+ if (properties.indexOf(property) !== -1) {
50207
+ continue;
50208
+ }
50209
+ if (!descriptor.writable && !descriptor.set) {
50210
+ continue;
50211
+ }
50212
+ properties.push(property);
50213
+ }
50214
+ target = Object.getPrototypeOf(target);
50215
+ }
50216
+ properties.sort();
50217
+ // Extract position, rotation, scaling
50218
+ var main = ["scaling", "rotation", "position"];
50219
+ for (var _i = 0, main_1 = main; _i < main_1.length; _i++) {
50220
+ var mainProperty = main_1[_i];
50221
+ var index = properties.indexOf(mainProperty);
50222
+ if (index === -1) {
50223
+ continue;
50224
+ }
50225
+ properties.splice(index, 1);
50226
+ properties.splice(0, 0, mainProperty);
50227
+ }
50228
+ if (this._propertylement.current) {
50229
+ inferredType = this.getInferredType();
50230
+ }
50231
+ else {
50232
+ inferredType = this.getInferredType(properties[0]);
50233
+ }
50234
+ }
50235
+ var customPropertyMode = this.state.customPropertyMode || properties.length === 0;
50084
50236
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-pane", ref: this._root },
50085
50237
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-display-name-label" }, "Display Name"),
50238
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-mode-label" }, "Mode"),
50086
50239
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-property-label" }, "Property"),
50087
50240
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-type-label" }, "Type"),
50088
50241
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-loop-mode-label" }, "Loop Mode"),
50089
50242
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { type: "text", id: "add-animation-name", ref: this._displayName, className: "input-text", defaultValue: "" }),
50090
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { type: "text", id: "add-animation-property", ref: this._property, className: "input-text", defaultValue: "" }),
50091
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("select", { id: "add-animation-type", className: "option", ref: this._typeElement }, types.map(function (type, i) {
50092
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("option", { key: type + i, value: type, title: type }, type));
50243
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("select", { id: "add-animation-mode", className: "option", value: this.state.customPropertyMode ? "Custom" : "List", onChange: function (evt) {
50244
+ _this.setState({ customPropertyMode: evt.currentTarget.value === "Custom" });
50245
+ } }, modes.map(function (mode, i) {
50246
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("option", { key: mode + i, value: mode, title: mode }, mode));
50093
50247
  })),
50248
+ customPropertyMode &&
50249
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
50250
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { type: "text", id: "add-animation-property", ref: this._property, className: "input-text", defaultValue: "" }),
50251
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("select", { id: "add-animation-type", className: "option", ref: this._typeElement }, types.map(function (type, i) {
50252
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("option", { key: type + i, value: type, title: type }, type));
50253
+ }))),
50254
+ !customPropertyMode &&
50255
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
50256
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("select", { id: "add-animation-property", className: "option", ref: this._propertylement, onClick: function () {
50257
+ _this.forceUpdate();
50258
+ } }, properties.map(function (property, i) {
50259
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("option", { key: property + i, value: property, title: property }, property));
50260
+ })),
50261
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "add-animation-type" }, inferredType)),
50094
50262
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("select", { id: "add-animation-loop-mode", className: "option", ref: this._loopModeElement }, loopModes.map(function (loopMode, i) {
50095
50263
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("option", { key: loopMode + i, value: loopMode, title: loopMode }, loopMode));
50096
50264
  })),
@@ -50140,18 +50308,32 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
50140
50308
  if (_this._unmount) {
50141
50309
  return;
50142
50310
  }
50143
- if (_this.props.animation !== _this.props.context.activeAnimation) {
50311
+ if (_this.props.context.activeAnimations.indexOf(_this.props.animation) === -1) {
50144
50312
  _this.setState({ isSelected: false });
50145
50313
  }
50146
50314
  _this.forceUpdate();
50147
50315
  });
50148
50316
  _this._onActiveKeyPointChangedObserver = _this.props.context.onActiveKeyPointChanged.add(function () {
50149
50317
  _this.setState({ isSelected: _this.props.animation.dataType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT &&
50150
- _this.props.animation === _this.props.context.activeAnimation &&
50318
+ _this.props.context.activeAnimations.indexOf(_this.props.animation) !== -1 &&
50151
50319
  _this.props.context.activeKeyPoints !== null &&
50152
- _this.props.context.activeKeyPoints.length > 0
50320
+ _this.props.context.activeKeyPoints.length > 0 &&
50321
+ _this.props.context.activeKeyPoints.some(function (kp) { return kp.props.curve.animation === _this.props.animation; })
50153
50322
  });
50154
50323
  });
50324
+ _this._onSelectToActivatedObserver = _this.props.context.onSelectToActivated.add(function (info) {
50325
+ var currentIndex = _this.props.context.getAnimationSortIndex(_this.props.animation);
50326
+ var activeIndex = _this.props.context.activeAnimations.indexOf(_this.props.animation);
50327
+ if ((currentIndex > info.from && currentIndex <= info.to
50328
+ || currentIndex >= info.to && currentIndex < info.from)) {
50329
+ if (activeIndex === -1) {
50330
+ _this.props.context.activeAnimations.push(_this.props.animation);
50331
+ }
50332
+ }
50333
+ else if (currentIndex !== info.from && activeIndex !== -1) {
50334
+ _this.props.context.activeAnimations.splice(activeIndex, 1);
50335
+ }
50336
+ });
50155
50337
  return _this;
50156
50338
  }
50157
50339
  AnimationEntryComponent.prototype._onGear = function () {
@@ -50172,15 +50354,37 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
50172
50354
  if (this._onActiveKeyPointChangedObserver) {
50173
50355
  this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChangedObserver);
50174
50356
  }
50357
+ if (this._onSelectToActivatedObserver) {
50358
+ this.props.context.onSelectToActivated.remove(this._onSelectToActivatedObserver);
50359
+ }
50175
50360
  };
50176
- AnimationEntryComponent.prototype._activate = function () {
50177
- if (this.props.animation === this.props.context.activeAnimation && this.props.context.activeColor === null) {
50361
+ AnimationEntryComponent.prototype._activate = function (evt) {
50362
+ if (evt.shiftKey) {
50363
+ if (this.props.context.activeAnimations.length > 0) {
50364
+ var firstOne = this.props.context.activeAnimations[0];
50365
+ var payload = {
50366
+ from: this.props.context.getAnimationSortIndex(firstOne),
50367
+ to: this.props.context.getAnimationSortIndex(this.props.animation),
50368
+ };
50369
+ this.props.context.onSelectToActivated.notifyObservers(payload);
50370
+ this.props.context.onActiveAnimationChanged.notifyObservers();
50371
+ }
50178
50372
  return;
50179
50373
  }
50180
- this.props.context.activeKeyPoints = [];
50181
- this.props.context.onActiveKeyPointChanged.notifyObservers();
50182
- this.props.context.activeAnimation = this.props.animation;
50183
- this.props.context.activeColor = null;
50374
+ if (!evt.ctrlKey) {
50375
+ this.props.context.activeAnimations = [this.props.animation];
50376
+ this.props.context.resetAllActiveChannels();
50377
+ }
50378
+ else {
50379
+ var index = this.props.context.activeAnimations.indexOf(this.props.animation);
50380
+ if (index !== -1) {
50381
+ this.props.context.activeAnimations.splice(index, 1);
50382
+ }
50383
+ else {
50384
+ this.props.context.activeAnimations.push(this.props.animation);
50385
+ }
50386
+ }
50387
+ this.props.context.disableChannel(this.props.animation);
50184
50388
  this.props.context.onActiveAnimationChanged.notifyObservers();
50185
50389
  };
50186
50390
  AnimationEntryComponent.prototype._expandOrCollapse = function () {
@@ -50188,7 +50392,7 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
50188
50392
  };
50189
50393
  AnimationEntryComponent.prototype.render = function () {
50190
50394
  var _this = this;
50191
- var isActive = this.props.animation === this.props.context.activeAnimation;
50395
+ var isActive = this.props.context.activeAnimations.indexOf(this.props.animation) !== -1;
50192
50396
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
50193
50397
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-entry" + (isActive ? " isActive" : "") },
50194
50398
  this.state.isSelected &&
@@ -50200,7 +50404,7 @@ var AnimationEntryComponent = /** @class */ (function (_super) {
50200
50404
  this.props.animation.dataType !== _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_FLOAT &&
50201
50405
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-chevron", onClick: function () { return _this._expandOrCollapse(); } },
50202
50406
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { className: "animation-chevron-image" + (this.state.isExpanded ? "" : " collapsed"), src: chevronIcon })),
50203
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-name", onClick: function () { return _this._activate(); } }, this.props.animation.name),
50407
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-name", onClick: function (evt) { return _this._activate(evt); } }, this.props.animation.name),
50204
50408
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_3__["ActionButtonComponent"], { className: "animation-options", context: this.props.context, globalState: this.props.globalState, icon: gearIcon, onClick: function () { return _this._onGear(); } }),
50205
50409
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_3__["ActionButtonComponent"], { className: "animation-delete", context: this.props.context, globalState: this.props.globalState, icon: deleteIcon, onClick: function () { return _this._onDelete(); } })),
50206
50410
  this.state.isExpanded && this.props.animation.dataType === _babylonjs_core_Animations_animation__WEBPACK_IMPORTED_MODULE_2__["Animation"].ANIMATIONTYPE_COLOR3 &&
@@ -50307,7 +50511,7 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
50307
50511
  function AnimationSubEntryComponent(props) {
50308
50512
  var _this = _super.call(this, props) || this;
50309
50513
  var isSelected = false;
50310
- if (_this.props.animation === _this.props.context.activeAnimation && _this.props.context.activeKeyPoints) {
50514
+ if (_this.props.context.activeAnimations.indexOf(_this.props.animation) !== -1 && _this.props.context.activeKeyPoints) {
50311
50515
  for (var _i = 0, _a = _this.props.context.activeKeyPoints; _i < _a.length; _i++) {
50312
50516
  var keyPoint = _a[_i];
50313
50517
  if (keyPoint.state.selectedState === _graph_keyPoint__WEBPACK_IMPORTED_MODULE_2__["SelectionState"].Selected && keyPoint.props.channel === _this.props.color) {
@@ -50324,7 +50528,9 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
50324
50528
  if (_this.props.context.activeKeyPoints) {
50325
50529
  for (var _i = 0, _a = _this.props.context.activeKeyPoints; _i < _a.length; _i++) {
50326
50530
  var activeKeyPoint = _a[_i];
50327
- if (activeKeyPoint.props.channel === _this.props.color && _this.props.animation === _this.props.context.activeAnimation) {
50531
+ if (activeKeyPoint.props.curve.animation === _this.props.animation
50532
+ && activeKeyPoint.props.channel === _this.props.color
50533
+ && _this.props.context.activeAnimations.indexOf(_this.props.animation) !== -1) {
50328
50534
  isSelected = true;
50329
50535
  break;
50330
50536
  }
@@ -50342,19 +50548,27 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
50342
50548
  this.props.context.onActiveKeyPointChanged.remove(this._onActiveKeyPointChangedObserver);
50343
50549
  }
50344
50550
  };
50345
- AnimationSubEntryComponent.prototype._activate = function () {
50346
- if (this.props.animation === this.props.context.activeAnimation && this.props.context.activeColor === this.props.color) {
50551
+ AnimationSubEntryComponent.prototype._activate = function (evt) {
50552
+ var index = this.props.context.activeAnimations.indexOf(this.props.animation);
50553
+ if (index !== -1 && this.props.context.getActiveChannel(this.props.animation) === this.props.color) {
50347
50554
  return;
50348
50555
  }
50349
- this.props.context.activeKeyPoints = [];
50350
- this.props.context.onActiveKeyPointChanged.notifyObservers();
50351
- this.props.context.activeAnimation = this.props.animation;
50352
- this.props.context.activeColor = this.props.color;
50556
+ if (!evt.ctrlKey) {
50557
+ this.props.context.activeAnimations = [this.props.animation];
50558
+ this.props.context.resetAllActiveChannels();
50559
+ }
50560
+ else {
50561
+ if (index === -1) {
50562
+ this.props.context.activeAnimations.push(this.props.animation);
50563
+ }
50564
+ }
50565
+ this.props.context.enableChannel(this.props.animation, this.props.color);
50353
50566
  this.props.context.onActiveAnimationChanged.notifyObservers();
50354
50567
  };
50355
50568
  AnimationSubEntryComponent.prototype.render = function () {
50356
50569
  var _this = this;
50357
- var isActive = this.props.animation === this.props.context.activeAnimation && (this.props.context.activeColor === null || this.props.context.activeColor === this.props.color);
50570
+ var isActive = this.props.context.activeAnimations.indexOf(this.props.animation) !== -1
50571
+ && (this.props.context.isChannelEnabled(this.props.animation, this.props.color));
50358
50572
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null,
50359
50573
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-entry" + (isActive ? " isActive" : "") },
50360
50574
  this.state.isSelected &&
@@ -50362,7 +50576,7 @@ var AnimationSubEntryComponent = /** @class */ (function (_super) {
50362
50576
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: selectedIcon })),
50363
50577
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "animation-name", style: {
50364
50578
  color: this.props.color
50365
- }, onClick: function () { return _this._activate(); } }, this.props.subName))));
50579
+ }, onClick: function (evt) { return _this._activate(evt); } }, this.props.subName))));
50366
50580
  };
50367
50581
  return AnimationSubEntryComponent;
50368
50582
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
@@ -50526,7 +50740,7 @@ var LoadAnimationComponent = /** @class */ (function (_super) {
50526
50740
  }
50527
50741
  context.stop();
50528
50742
  context.target.animations = animations;
50529
- context.activeAnimation = animations.length ? animations[0] : null;
50743
+ context.activeAnimations = animations.length ? animations : [];
50530
50744
  context.prepare();
50531
50745
  context.onAnimationsLoaded.notifyObservers();
50532
50746
  context.onActiveAnimationChanged.notifyObservers();
@@ -50547,7 +50761,7 @@ var LoadAnimationComponent = /** @class */ (function (_super) {
50547
50761
  }
50548
50762
  context.stop();
50549
50763
  context.target.animations = context.animations;
50550
- context.activeAnimation = context.animations.length ? context.animations[0] : null;
50764
+ context.activeAnimations = context.animations.length ? context.animations : [];
50551
50765
  context.prepare();
50552
50766
  context.onAnimationsLoaded.notifyObservers();
50553
50767
  context.onActiveAnimationChanged.notifyObservers();
@@ -50757,8 +50971,9 @@ var SideBarComponent = /** @class */ (function (_super) {
50757
50971
  var _this = _super.call(this, props) || this;
50758
50972
  _this.state = { mode: Mode.Edit };
50759
50973
  _this.props.context.onDeleteAnimation.add(function (animationToDelete) {
50760
- if (_this.props.context.activeAnimation === animationToDelete) {
50761
- _this.props.context.activeAnimation = null;
50974
+ var indexInActiveList = _this.props.context.activeAnimations.indexOf(animationToDelete);
50975
+ if (indexInActiveList !== -1) {
50976
+ _this.props.context.activeAnimations.splice(indexInActiveList, 1);
50762
50977
  _this.props.context.onActiveAnimationChanged.notifyObservers();
50763
50978
  }
50764
50979
  var index = -1;
@@ -50776,7 +50991,6 @@ var SideBarComponent = /** @class */ (function (_super) {
50776
50991
  }
50777
50992
  if (index > -1) {
50778
50993
  _this.props.context.animations.splice(index, 1);
50779
- _this.props.context.play(_this.props.context.forwardAnimation);
50780
50994
  _this.forceUpdate();
50781
50995
  }
50782
50996
  });
@@ -50918,12 +51132,13 @@ var TopBarComponent = /** @class */ (function (_super) {
50918
51132
  };
50919
51133
  TopBarComponent.prototype.render = function () {
50920
51134
  var _this = this;
51135
+ var hasActiveAnimations = this.props.context.activeAnimations.length > 0;
50921
51136
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "top-bar" },
50922
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { id: "logo", src: logoIcon }),
50923
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "parent-name" }, this.props.context.title),
50924
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_textInputComponent__WEBPACK_IMPORTED_MODULE_3__["TextInputComponent"], { className: this.props.context.activeAnimation && this.state.editControlsVisible ? "" : "disabled", isNumber: true, value: this.state.keyFrameValue, tooltip: "Frame", id: "key-frame", onValueAsNumberChanged: function (newValue) { return _this.props.context.onFrameManuallyEntered.notifyObservers(newValue); }, globalState: this.props.globalState, context: this.props.context }),
50925
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_textInputComponent__WEBPACK_IMPORTED_MODULE_3__["TextInputComponent"], { className: this.props.context.activeAnimation && this.state.editControlsVisible ? "" : "disabled", isNumber: true, value: this.state.keyValue, tooltip: "Value", id: "key-value", onValueAsNumberChanged: function (newValue) { return _this.props.context.onValueManuallyEntered.notifyObservers(newValue); }, globalState: this.props.globalState, context: this.props.context }),
50926
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_2__["ActionButtonComponent"], { className: this.props.context.activeAnimation ? "" : "disabled", tooltip: "New key", id: "new-key", globalState: this.props.globalState, context: this.props.context, icon: newKeyIcon, onClick: function () { return _this.props.context.onNewKeyPointRequired.notifyObservers(); } }),
51137
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { id: "top-bar-logo", src: logoIcon }),
51138
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "top-bar-parent-name" }, this.props.context.title),
51139
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_textInputComponent__WEBPACK_IMPORTED_MODULE_3__["TextInputComponent"], { className: hasActiveAnimations && this.state.editControlsVisible ? "" : "disabled", isNumber: true, value: this.state.keyFrameValue, tooltip: "Frame", id: "key-frame", onValueAsNumberChanged: function (newValue) { return _this.props.context.onFrameManuallyEntered.notifyObservers(newValue); }, globalState: this.props.globalState, context: this.props.context }),
51140
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_textInputComponent__WEBPACK_IMPORTED_MODULE_3__["TextInputComponent"], { className: hasActiveAnimations && this.state.editControlsVisible ? "" : "disabled", isNumber: true, value: this.state.keyValue, tooltip: "Value", id: "key-value", onValueAsNumberChanged: function (newValue) { return _this.props.context.onValueManuallyEntered.notifyObservers(newValue); }, globalState: this.props.globalState, context: this.props.context }),
51141
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_2__["ActionButtonComponent"], { className: hasActiveAnimations ? "" : "disabled", tooltip: "New key", id: "new-key", globalState: this.props.globalState, context: this.props.context, icon: newKeyIcon, onClick: function () { return _this.props.context.onNewKeyPointRequired.notifyObservers(); } }),
50927
51142
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_2__["ActionButtonComponent"], { tooltip: "Frame canvas", id: "frame-canvas", globalState: this.props.globalState, context: this.props.context, icon: frameIcon, onClick: function () { return _this.props.context.onFrameRequired.notifyObservers(); } }),
50928
51143
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_2__["ActionButtonComponent"], { className: this.props.context.activeKeyPoints && this.props.context.activeKeyPoints.length > 0 ? "" : "disabled", tooltip: "Flatten tangent", id: "flatten-tangent", globalState: this.props.globalState, context: this.props.context, icon: flatTangentIcon, onClick: function () { return _this.props.context.onFlattenTangentRequired.notifyObservers(); } }),
50929
51144
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_controls_actionButtonComponent__WEBPACK_IMPORTED_MODULE_2__["ActionButtonComponent"], { className: this.props.context.activeKeyPoints && this.props.context.activeKeyPoints.length > 0 ? "" : "disabled", tooltip: "Linear tangent", id: "linear-tangent", globalState: this.props.globalState, context: this.props.context, icon: linearTangentIcon, onClick: function () { return _this.props.context.onLinearTangentRequired.notifyObservers(); } }),
@@ -51008,6 +51223,9 @@ var TargetedAnimationGridComponent = /** @class */ (function (_super) {
51008
51223
  this._animationCurveEditorContext.animations = [this.props.targetedAnimation.animation];
51009
51224
  this._animationCurveEditorContext.target = this.props.targetedAnimation.target;
51010
51225
  this._animationCurveEditorContext.scene = this.props.scene;
51226
+ if (this._animationGroup) {
51227
+ this._animationCurveEditorContext.rootAnimationGroup = this._animationGroup;
51228
+ }
51011
51229
  }
51012
51230
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "pane" },
51013
51231
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_3__["LineContainerComponent"], { title: "GENERAL", selection: this.props.globalState },
@@ -51378,6 +51596,12 @@ __webpack_require__.r(__webpack_exports__);
51378
51596
  /* harmony import */ var _lines_quaternionLineComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../lines/quaternionLineComponent */ "./components/actionTabs/lines/quaternionLineComponent.tsx");
51379
51597
  /* harmony import */ var _sharedUiComponents_lines_lineContainerComponent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/lineContainerComponent */ "./sharedUiComponents/lines/lineContainerComponent.tsx");
51380
51598
  /* harmony import */ var _sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/textInputLineComponent */ "./sharedUiComponents/lines/textInputLineComponent.tsx");
51599
+ /* harmony import */ var _sharedUiComponents_lines_buttonLineComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/buttonLineComponent */ "./sharedUiComponents/lines/buttonLineComponent.tsx");
51600
+ /* harmony import */ var _sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/optionsLineComponent */ "./sharedUiComponents/lines/optionsLineComponent.tsx");
51601
+ /* harmony import */ var _sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/textLineComponent */ "./sharedUiComponents/lines/textLineComponent.tsx");
51602
+
51603
+
51604
+
51381
51605
 
51382
51606
 
51383
51607
 
@@ -51409,6 +51633,16 @@ var CustomPropertyGridComponent = /** @class */ (function (_super) {
51409
51633
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_color3LineComponent__WEBPACK_IMPORTED_MODULE_2__["Color3LineComponent"], { key: inspectable.label, label: inspectable.label, target: this.props.target, propertyName: inspectable.propertyName, onPropertyChangedObservable: this.props.onPropertyChangedObservable }));
51410
51634
  case _babylonjs_core_Misc_iInspectable__WEBPACK_IMPORTED_MODULE_3__["InspectableType"].String:
51411
51635
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_9__["TextInputLineComponent"], { key: inspectable.label, label: inspectable.label, lockObject: this.props.lockObject, target: this.props.target, propertyName: inspectable.propertyName, onPropertyChangedObservable: this.props.onPropertyChangedObservable }));
51636
+ case _babylonjs_core_Misc_iInspectable__WEBPACK_IMPORTED_MODULE_3__["InspectableType"].Button:
51637
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_buttonLineComponent__WEBPACK_IMPORTED_MODULE_10__["ButtonLineComponent"], { key: inspectable.label, label: inspectable.label, onClick: inspectable.callback || function () {
51638
+ console.warn("no call back function added");
51639
+ } }));
51640
+ case _babylonjs_core_Misc_iInspectable__WEBPACK_IMPORTED_MODULE_3__["InspectableType"].Options:
51641
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_11__["OptionsLineComponent"], { key: inspectable.label, label: inspectable.label, target: this.props.target, propertyName: inspectable.propertyName, options: inspectable.options || [], onSelect: inspectable.callback || function (value) {
51642
+ console.log("Option " + value + " is selected");
51643
+ } }));
51644
+ case _babylonjs_core_Misc_iInspectable__WEBPACK_IMPORTED_MODULE_3__["InspectableType"].Tab:
51645
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_12__["TextLineComponent"], { key: inspectable.label, label: inspectable.label, value: " " }));
51412
51646
  }
51413
51647
  return null;
51414
51648
  };
@@ -53048,6 +53282,7 @@ var textureFormat = [
53048
53282
  { label: "Depth24/Stencil8", normalizable: 0, hideType: true, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_DEPTH24_STENCIL8 },
53049
53283
  { label: "Depth32 float", normalizable: 0, hideType: true, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_DEPTH32_FLOAT },
53050
53284
  { label: "Depth16", normalizable: 0, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_DEPTH16 },
53285
+ { label: "Depth24", normalizable: 0, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_DEPTH24 },
53051
53286
  { label: "RGBA BPTC UNorm", normalizable: 0, compressed: true, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM },
53052
53287
  { label: "RGB BPTC UFloat", normalizable: 0, compressed: true, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT },
53053
53288
  { label: "RGB BPTC SFloat", normalizable: 0, compressed: true, value: _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_2__["Constants"].TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT },
@@ -56849,6 +57084,7 @@ var ParticleSystemPropertyGridComponent = /** @class */ (function (_super) {
56849
57084
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_11__["CheckBoxLineComponent"], { label: "Animation sheet enabled", target: system, propertyName: "isAnimationSheetEnabled", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56850
57085
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { label: "First sprite index", isInteger: true, target: system, propertyName: "startSpriteCellID", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56851
57086
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { label: "Last sprite index", isInteger: true, target: system, propertyName: "endSpriteCellID", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
57087
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_11__["CheckBoxLineComponent"], { label: "Animation Loop", target: system, propertyName: "spriteCellLoop", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56852
57088
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_11__["CheckBoxLineComponent"], { label: "Random start cell index", target: system, propertyName: "spriteRandomStartCell", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56853
57089
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { label: "Cell width", isInteger: true, target: system, propertyName: "spriteCellWidth", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
56854
57090
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { label: "Cell height", isInteger: true, target: system, propertyName: "spriteCellHeight", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
@@ -65124,13 +65360,12 @@ var NumericInputComponent = /** @class */ (function (_super) {
65124
65360
  /*!***********************************************************!*\
65125
65361
  !*** ./sharedUiComponents/lines/optionsLineComponent.tsx ***!
65126
65362
  \***********************************************************/
65127
- /*! exports provided: Null_Value, ListLineOption, OptionsLineComponent */
65363
+ /*! exports provided: Null_Value, OptionsLineComponent */
65128
65364
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
65129
65365
 
65130
65366
  "use strict";
65131
65367
  __webpack_require__.r(__webpack_exports__);
65132
65368
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Null_Value", function() { return Null_Value; });
65133
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ListLineOption", function() { return ListLineOption; });
65134
65369
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OptionsLineComponent", function() { return OptionsLineComponent; });
65135
65370
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
65136
65371
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
@@ -65138,12 +65373,6 @@ __webpack_require__.r(__webpack_exports__);
65138
65373
 
65139
65374
 
65140
65375
  var Null_Value = Number.MAX_SAFE_INTEGER;
65141
- var ListLineOption = /** @class */ (function () {
65142
- function ListLineOption() {
65143
- }
65144
- return ListLineOption;
65145
- }());
65146
-
65147
65376
  var OptionsLineComponent = /** @class */ (function (_super) {
65148
65377
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(OptionsLineComponent, _super);
65149
65378
  function OptionsLineComponent(props) {
@@ -65435,10 +65664,14 @@ var TextInputLineComponent = /** @class */ (function (_super) {
65435
65664
  };
65436
65665
  TextInputLineComponent.prototype.updateValue = function (value) {
65437
65666
  if (this.props.numbersOnly) {
65438
- if (/[^0-9\.\p\x\%]/g.test(value)) {
65667
+ var checkValue = value;
65668
+ if (value[0] === "-") {
65669
+ checkValue = value.substr(1);
65670
+ }
65671
+ if (/[^0-9\.\p\x\%]/g.test(checkValue)) {
65439
65672
  return;
65440
65673
  }
65441
- if (value === "") {
65674
+ if (!value) {
65442
65675
  value = "0";
65443
65676
  }
65444
65677
  }