@babylonjs/gui-editor 5.0.0-beta.9 → 5.0.0-rc.0

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.
@@ -10114,7 +10114,7 @@ __webpack_require__.r(__webpack_exports__);
10114
10114
 
10115
10115
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);
10116
10116
  // Module
10117
- ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --backgroundGrey: #aaaaaa;\n --spacingHeight: 30px;\n --labelFamily: \"acumin-pro-condensed-semibold\"; }\n\nhr.ge {\n border: 1px solid #d0cece; }\n\n#ge-propertyTab {\n user-select: none;\n color: black;\n background: #e2e2e2; }\n #ge-propertyTab * {\n font-family: \"acumin-pro-semicondensed\";\n font-size: 12px; }\n #ge-propertyTab #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: white;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #ge-propertyTab #header #logo {\n position: relative;\n background: white;\n grid-column: 1;\n width: 32px;\n height: 32px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #ge-propertyTab #header #title {\n background: white;\n color: black;\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #ge-propertyTab .range {\n -webkit-appearance: none;\n width: 100%;\n height: 2px;\n background: #bcbcbc;\n border-radius: 5px;\n outline: none;\n opacity: 0.7;\n -webkit-transition: .2s;\n transition: opacity .2s; }\n #ge-propertyTab .range:hover {\n opacity: 1; }\n #ge-propertyTab .range::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #e2e2e2;\n border: solid;\n border-width: thin;\n cursor: pointer; }\n #ge-propertyTab .range::-moz-range-thumb {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: black;\n cursor: pointer; }\n #ge-propertyTab input[type=\"color\"] {\n -webkit-appearance: none;\n border: 1px solid rgba(255, 255, 255, 0.5);\n padding: 0;\n width: 30px;\n height: 20px; }\n #ge-propertyTab input[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0; }\n #ge-propertyTab input[type=\"color\"]::-webkit-color-swatch {\n border: none; }\n #ge-propertyTab .unit {\n width: 26px;\n height: 26px;\n background-color: white;\n border: none;\n margin-top: 2px; }\n #ge-propertyTab .unit.disabled {\n background-color: #c8c8c8; }\n #ge-propertyTab .sliderLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: auto auto auto 1fr; }\n #ge-propertyTab .sliderLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .sliderLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .sliderLine .slider {\n grid-column: 4;\n grid-row: 1;\n margin-right: 5px;\n width: 90%;\n display: flex;\n align-items: center;\n padding-left: 5px; }\n #ge-propertyTab .sliderLine .floatLine {\n grid-column: 3;\n padding-left: 0px; }\n #ge-propertyTab .sliderLine .floatLine .label {\n grid-column: 1;\n display: none;\n align-items: center;\n font-family: var(--labelFamily); }\n #ge-propertyTab .sliderLine .floatLine .short {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .sliderLine .floatLine .short input {\n width: 60px;\n background-color: white;\n outline-color: transparent;\n border: transparent;\n height: 26px;\n outline-width: 0px; }\n #ge-propertyTab .sliderLine .floatLine .short input::-webkit-outer-spin-button,\n #ge-propertyTab .sliderLine .floatLine .short input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n #ge-propertyTab .sliderLine .floatLine .short input[type=number] {\n -moz-appearance: textfield; }\n #ge-propertyTab .ge-divider {\n display: grid;\n grid-template-columns: auto auto auto auto auto auto;\n padding-right: 18px; }\n #ge-propertyTab .ge-divider-short {\n display: grid;\n grid-template-columns: 1fr 1fr;\n padding-right: 18px; }\n #ge-propertyTab .ge-divider-single {\n display: block;\n padding-right: 18px; }\n #ge-propertyTab .ge-grid-divider {\n display: grid;\n grid-template-columns: 150px 1fr auto; }\n #ge-propertyTab .ge-grid-divider .textLine {\n grid-column: auto; }\n #ge-propertyTab .ge-grid-button-divider {\n display: grid;\n grid-template-columns: 60px 60px 60px 60px; }\n #ge-propertyTab .ge-grid-remove {\n display: grid;\n background-color: #c2c2c2;\n margin-bottom: 5px;\n filter: invert(1); }\n #ge-propertyTab .ge-grid-edit {\n display: grid;\n background-color: #878787;\n margin-bottom: 5px;\n filter: invert(1); }\n #ge-propertyTab .ge-grid {\n display: grid;\n margin-bottom: 5px; }\n #ge-propertyTab .textInputLine {\n user-select: none;\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .textInputLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .textInputLine img {\n width: 30px; }\n #ge-propertyTab .textInputLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textInputLine .value {\n display: flex;\n align-items: center;\n grid-column: 3;\n background: transparent;\n height: 30px; }\n #ge-propertyTab .textInputLine .value input {\n width: calc(100% - 5px);\n background-color: white;\n outline-color: transparent;\n border: transparent;\n outline-width: 0px;\n height: 24px; }\n #ge-propertyTab .textInputLine.withUnits {\n grid-template-columns: auto auto 1fr auto; }\n #ge-propertyTab .textInputArea {\n padding-left: 5px;\n height: 100%;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #ge-propertyTab .textInputArea .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textInputArea .value {\n display: flex;\n align-items: center;\n grid-column: 2; }\n #ge-propertyTab .textInputArea .value textarea {\n width: calc(150% - 5px);\n margin-left: -50%;\n height: 40px; }\n #ge-propertyTab .paneContainer {\n margin-top: 3px;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%; }\n #ge-propertyTab .paneContainer .paneList {\n border-left: 3px solid transparent; }\n #ge-propertyTab .paneContainer:hover .paneList {\n border-left: 3px solid rgba(51, 122, 183, 0.8); }\n #ge-propertyTab .paneContainer:hover .paneContainer-content .header .title {\n border-left: 3px solid #337ab7; }\n #ge-propertyTab .paneContainer .paneContainer-highlight-border {\n grid-row: 1;\n grid-column: 1;\n opacity: 1;\n border: 3px solid red;\n transition: opacity 250ms;\n pointer-events: none; }\n #ge-propertyTab .paneContainer .paneContainer-highlight-border.transparent {\n opacity: 0; }\n #ge-propertyTab .paneContainer .paneContainer-content {\n grid-row: 1;\n grid-column: 1; }\n #ge-propertyTab .paneContainer .paneContainer-content .header {\n display: grid;\n grid-template-columns: 1fr auto;\n background: #cccccc;\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 5px;\n cursor: pointer; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .title {\n border-left: 3px solid transparent;\n padding-left: 5px;\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .collapse {\n grid-column: 2;\n display: flex;\n align-items: center;\n justify-items: center;\n transform-origin: center; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .collapse.closed {\n transform: rotate(180deg); }\n #ge-propertyTab .paneContainer .paneContainer-content .paneList > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #ge-propertyTab .paneContainer .paneContainer-content .fragment > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #ge-propertyTab .color-picker {\n height: 150px;\n width: 15px; }\n #ge-propertyTab .color-picker .color-rect-background {\n height: 15px;\n border: 1px black solid;\n cursor: pointer;\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50%/10px 10px; }\n #ge-propertyTab .color-picker .color-rect-background .color-rect {\n height: 100%; }\n #ge-propertyTab .color-picker .color-picker-cover {\n position: fixed;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px; }\n #ge-propertyTab .color-picker .color-picker-float {\n z-index: 2;\n position: absolute; }\n #ge-propertyTab .gradient-step {\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 20px 30px 40px auto 20px 30px;\n padding-top: 5px;\n padding-left: 5px;\n padding-bottom: 5px; }\n #ge-propertyTab .gradient-step .step {\n grid-row: 1;\n grid-column: 1; }\n #ge-propertyTab .gradient-step .color {\n grid-row: 1;\n grid-column: 2;\n cursor: pointer; }\n #ge-propertyTab .gradient-step .step-value {\n margin-left: 5px;\n grid-row: 1;\n grid-column: 3;\n text-align: right;\n margin-right: 5px; }\n #ge-propertyTab .gradient-step .step-slider {\n grid-row: 1;\n grid-column: 4;\n display: grid;\n justify-content: stretch;\n align-content: center;\n margin-right: -5px;\n padding-left: 12px; }\n #ge-propertyTab .gradient-step .step-slider input {\n width: 90%; }\n #ge-propertyTab .gradient-step .gradient-copy {\n grid-row: 1;\n grid-column: 5;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .gradient-step .gradient-copy .img {\n height: 20px;\n width: 20px; }\n #ge-propertyTab .gradient-step .gradient-copy .img:hover {\n cursor: pointer; }\n #ge-propertyTab .gradient-step .gradient-delete {\n grid-row: 1;\n grid-column: 6;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .gradient-step .gradient-delete .img {\n height: 20px;\n width: 20px; }\n #ge-propertyTab .gradient-step .gradient-delete .img:hover {\n cursor: pointer; }\n #ge-propertyTab .alignment-bar {\n display: flex;\n justify-content: center;\n padding-right: 5px; }\n #ge-propertyTab .command-button {\n cursor: pointer;\n width: 30px; }\n #ge-propertyTab .command-button .command-label {\n display: none; }\n #ge-propertyTab .command-button .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n color: white;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button:hover {\n background-color: white; }\n #ge-propertyTab .command-button .active {\n transform-origin: center;\n background-color: white; }\n #ge-propertyTab .command-button img.active {\n background-color: white; }\n #ge-propertyTab .command-button-alt {\n cursor: pointer;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: white; }\n #ge-propertyTab .command-button-alt .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button-alt:hover {\n background-color: #c2c2c2;\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-disabled {\n cursor: pointer;\n pointer-events: none;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: white; }\n #ge-propertyTab .command-button-alt-disabled .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt-disabled .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button-alt-disabled img {\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-active {\n cursor: pointer;\n pointer-events: none;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: #c2c2c2;\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-active .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt-active .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .floatLine {\n user-select: none;\n padding-left: 5px;\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid;\n grid-template-columns: auto auto 2fr 1fr; }\n #ge-propertyTab .floatLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .floatLine img {\n width: 30px; }\n #ge-propertyTab .floatLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .floatLine .value {\n display: flex;\n align-items: center;\n grid-column: 3;\n background: transparent;\n height: 30px; }\n #ge-propertyTab .floatLine .value input {\n width: calc(100% - 5px);\n background-color: white;\n outline-color: transparent;\n border: none;\n outline-width: 0px;\n height: 24px; }\n #ge-propertyTab .floatLine .short {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #ge-propertyTab .floatLine .short input {\n width: 27px; }\n #ge-propertyTab .floatLine .short input::-webkit-outer-spin-button,\n #ge-propertyTab .floatLine .short input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n #ge-propertyTab .floatLine .short input[type=number] {\n -moz-appearance: textfield; }\n #ge-propertyTab .vector3Line {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid; }\n #ge-propertyTab .vector3Line .firstLine {\n display: grid;\n grid-template-columns: 1fr auto 20px;\n height: var(--spacingHeight); }\n #ge-propertyTab .vector3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .vector3Line .firstLine .vector {\n grid-column: 2;\n display: flex;\n align-items: center;\n text-align: right;\n opacity: 0.8; }\n #ge-propertyTab .vector3Line .firstLine .expand {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-propertyTab .vector3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #ge-propertyTab .vector3Line .secondLine .no-right-margin {\n margin-right: 0; }\n #ge-propertyTab .vector3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #ge-propertyTab .vector3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #ge-propertyTab .vector3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #ge-propertyTab .buttonLine {\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid;\n align-items: center;\n justify-items: stretch;\n padding-bottom: 5px; }\n #ge-propertyTab .buttonLine input[type=\"file\"] {\n display: none; }\n #ge-propertyTab .buttonLine .file-upload {\n background: var(--backgroundGrey);\n border: 1px solid #424242;\n margin: 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n cursor: pointer;\n text-align: center;\n border-radius: 4px; }\n #ge-propertyTab .buttonLine .file-upload:hover {\n opacity: 1.0; }\n #ge-propertyTab .buttonLine .file-upload:active {\n transform: scale(0.98);\n transform-origin: 0.5 0.5; }\n #ge-propertyTab .buttonLine button {\n background: var(--backgroundGrey);\n border: 1px solid #424242;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n border-radius: 4px; }\n #ge-propertyTab .buttonLine button:hover {\n opacity: 1.0; }\n #ge-propertyTab .buttonLine button:active {\n background: #282828; }\n #ge-propertyTab .buttonLine button:focus {\n border: 1px solid #424242;\n outline: 0px; }\n #ge-propertyTab .numeric {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: 1fr 120px auto; }\n #ge-propertyTab .numeric .numeric-label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .numeric .number {\n display: flex;\n align-items: center;\n grid-column: 2;\n height: 10px; }\n #ge-propertyTab .numeric .number .input {\n width: calc(100% - 5px);\n height: 10px; }\n #ge-propertyTab .checkBoxLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .checkBoxLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 100px;\n margin-left: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .checkBoxLine img {\n width: 30px; }\n #ge-propertyTab .checkBoxLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .checkBoxLine .checkBox {\n grid-column: 3;\n display: flex;\n align-items: center;\n margin-left: auto;\n margin-right: 0px; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl {\n position: relative;\n display: block;\n height: 14px;\n width: 34px;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.3s ease;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl:after {\n position: absolute;\n left: 3px;\n top: 1px;\n display: block;\n width: 10px;\n height: 10px;\n border-radius: 100px;\n background: #e2e2e2;\n box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\n content: '';\n transition: all 0.15s ease;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl:active:after {\n transform: scale(1.15, 0.85); }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label {\n background: transparent; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label:after {\n left: 20px;\n background: black;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx.conflict ~ label:after {\n left: 10px;\n background: repeating-linear-gradient(45deg, transparent, transparent 5px, black 5px, black 10px); }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label.disabled {\n background: black;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label.disabled:after {\n left: 20px;\n background: #555555;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx ~ label.disabled {\n background: #555555;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .hidden {\n display: none; }\n #ge-propertyTab .listLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto 1fr auto; }\n #ge-propertyTab .listLine .label {\n grid-column: 2;\n display: none;\n align-items: center; }\n #ge-propertyTab .listLine img {\n width: 30px; }\n #ge-propertyTab .listLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .listLine .options {\n grid-column: 2;\n padding-left: 15px;\n display: flex;\n align-items: center;\n margin-right: 5px; }\n #ge-propertyTab .listLine .options select {\n width: 120px;\n height: 25px;\n border: transparent;\n border-radius: 4px; }\n #ge-propertyTab .color3Line {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n display: grid; }\n #ge-propertyTab .color3Line .firstLine {\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .color3Line .firstLine .label {\n grid-column: 2;\n padding-left: 5px;\n display: none;\n align-items: center;\n min-width: 15px; }\n #ge-propertyTab .color3Line .firstLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .color3Line .firstLine img {\n width: 30px;\n height: 30px; }\n #ge-propertyTab .color3Line .firstLine .textInputLine {\n grid-column: 3;\n padding-left: 0px; }\n #ge-propertyTab .color3Line .firstLine .color3 {\n grid-column: 2;\n margin-top: 6px;\n display: flex;\n align-items: center;\n padding-left: 15px; }\n #ge-propertyTab .color3Line .firstLine .color3 input {\n margin-right: 5px; }\n #ge-propertyTab .color3Line .firstLine .textInputLine .value {\n padding-left: 2px; }\n #ge-propertyTab .color3Line .firstLine .copy {\n grid-column: 4;\n display: none;\n align-items: center;\n justify-items: center;\n cursor: pointer;\n color: black; }\n #ge-propertyTab .color3Line .firstLine .copy img {\n height: 100%;\n width: 20px; }\n #ge-propertyTab .color3Line .firstLine .expand {\n grid-column: 4;\n display: none;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-propertyTab .color3Line .firstLine .expand img {\n height: 100%;\n width: 20px; }\n #ge-propertyTab .color3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #ge-propertyTab .color3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #ge-propertyTab .color3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #ge-propertyTab .color3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #ge-propertyTab .textLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: auto;\n display: grid;\n grid-template-columns: auto auto 2fr 1fr; }\n #ge-propertyTab .textLine .label {\n grid-column: 2;\n padding-left: 5px;\n padding-top: 4px;\n display: flex;\n align-items: left;\n min-width: 15px;\n color: #a9a9a9;\n font-size: 10px;\n font-family: \"acumin-pro-semicondensed\"; }\n #ge-propertyTab .textLine img {\n width: 30px; }\n #ge-propertyTab .textLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textLine .link-value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 140px;\n text-decoration: underline;\n cursor: pointer; }\n #ge-propertyTab .textLine .value {\n display: none;\n grid-column: 3;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 200px;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text; }\n #ge-propertyTab .textLine .value.check {\n color: green; }\n #ge-propertyTab .textLine .value.uncheck {\n color: red; }\n", "",{"version":3,"sources":["webpack://./components/propertyTab/propertyTab.scss"],"names":[],"mappings":"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","sourcesContent":[":root {\r\n --backgroundGrey: #aaaaaa;\r\n --spacingHeight: 30px;\r\n --labelFamily: \"acumin-pro-condensed-semibold\";\r\n}\r\n\r\nhr.ge {\r\n border: 1px solid #d0cece;\r\n}\r\n\r\n#ge-propertyTab {\r\n user-select: none;\r\n $line-padding-left: 5px;\r\n $line-padding-bottom: 0px;\r\n $line-padding-top: 0px;\r\n $line-padding-right: 18px;\r\n color:black;\r\n background: #e2e2e2;\r\n * {\r\n font-family: \"acumin-pro-semicondensed\";\r\n font-size: 12px;\r\n }\r\n #header {\r\n height: 30px;\r\n font-size: 16px;\r\n color: white;\r\n background: white;\r\n grid-row: 1;\r\n text-align: center;\r\n display: grid;\r\n grid-template-columns: 30px 1fr; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n\r\n #logo {\r\n position: relative;\r\n background: white;\r\n grid-column: 1; \r\n width: 32px;\r\n height: 32px;\r\n left:0;\r\n display: flex;\r\n align-self: center; \r\n justify-self: center;\r\n } \r\n\r\n #title {\r\n background: white;\r\n color: black;\r\n grid-column: 2; \r\n display: grid;\r\n align-items: center; \r\n text-align: center;\r\n }\r\n }\r\n\r\n .range {\r\n -webkit-appearance: none;\r\n width: 100%;\r\n height: 2px;\r\n background: #bcbcbc;\r\n border-radius: 5px;\r\n outline: none;\r\n opacity: 0.7;\r\n -webkit-transition: .2s;\r\n transition: opacity .2s;\r\n }\r\n \r\n .range:hover {\r\n opacity: 1;\r\n }\r\n \r\n .range::-webkit-slider-thumb {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n background: #e2e2e2;\r\n border: solid;\r\n border-width: thin;\r\n cursor: pointer;\r\n }\r\n \r\n .range::-moz-range-thumb {\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n background: rgb(0, 0, 0);\r\n cursor: pointer;\r\n }\r\n\r\n input[type=\"color\"] {\r\n -webkit-appearance: none;\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n padding: 0;\r\n width: 30px;\r\n height: 20px;\r\n }\r\n input[type=\"color\"]::-webkit-color-swatch-wrapper {\r\n padding: 0;\r\n }\r\n input[type=\"color\"]::-webkit-color-swatch {\r\n border: none;\r\n }\r\n\r\n .unit {\r\n width: 26px;\r\n height: 26px;\r\n background-color: white;\r\n border: none;\r\n margin-top: 2px;\r\n }\r\n\r\n .unit.disabled {\r\n background-color: #c8c8c8;\r\n }\r\n\r\n .sliderLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: auto auto auto 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n\r\n .slider {\r\n grid-column: 4;\r\n grid-row: 1;\r\n margin-right: 5px;\r\n width: 90%;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 5px;\r\n }\r\n\r\n .floatLine {\r\n grid-column: 3;\r\n padding-left: 0px;\r\n \r\n .label {\r\n grid-column: 1;\r\n display: none;\r\n align-items: center;\r\n font-family: var(--labelFamily);\r\n }\r\n \r\n .short {\r\n grid-column: 1; \r\n display: flex;\r\n align-items: center;\r\n \r\n input {\r\n width: 60px;\r\n background-color: white;\r\n outline-color: transparent;\r\n border: transparent;\r\n height: 26px;\r\n outline-width: 0px\r\n }\r\n \r\n input::-webkit-outer-spin-button,\r\n input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n \r\n input[type=number] {\r\n -moz-appearance: textfield;\r\n }\r\n }\r\n } \r\n } \r\n\r\n .ge-divider {\r\n display: grid;\r\n grid-template-columns: auto auto auto auto auto auto;\r\n padding-right: $line-padding-right;\r\n }\r\n\r\n .ge-divider-short {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n padding-right: $line-padding-right;\r\n }\r\n\r\n .ge-divider-single {\r\n display: block;\r\n padding-right: $line-padding-right;\r\n }\r\n \r\n .ge-grid-divider {\r\n display: grid;\r\n grid-template-columns: 150px 1fr auto;\r\n \r\n .textLine {\r\n grid-column: auto;\r\n \r\n }\r\n }\r\n\r\n .ge-grid-button-divider {\r\n display: grid;\r\n grid-template-columns: 60px 60px 60px 60px;\r\n }\r\n\r\n .ge-grid-remove {\r\n display: grid;\r\n background-color: #c2c2c2;\r\n margin-bottom: 5px;\r\n filter: invert(1);\r\n }\r\n\r\n .ge-grid-edit {\r\n display: grid;\r\n background-color: #878787;\r\n margin-bottom: 5px;\r\n filter: invert(1);\r\n\r\n }\r\n \r\n .ge-grid {\r\n display: grid;\r\n margin-bottom: 5px;\r\n }\r\n\r\n\r\n .textInputLine {\r\n user-select: none;\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr;\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 3;\r\n background: transparent;\r\n height: 30px;\r\n input {\r\n width: calc(100% - 5px);\r\n background-color: white;\r\n outline-color: transparent;\r\n border: transparent;\r\n outline-width: 0px;\r\n height: 24px;\r\n }\r\n }\r\n }\r\n\r\n .textInputLine.withUnits {\r\n grid-template-columns: auto auto 1fr auto;\r\n }\r\n \r\n .textInputArea {\r\n padding-left: $line-padding-left;\r\n height: 100%;\r\n display: grid;\r\n grid-template-columns: 1fr 120px;\r\n\r\n .label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 2;\r\n \r\n textarea {\r\n width: calc(150% - 5px);\r\n margin-left: -50%;\r\n height: 40px;\r\n }\r\n }\r\n }\r\n \r\n .paneContainer {\r\n margin-top: 3px;\r\n display:grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n \r\n .paneList {\r\n border-left: 3px solid transparent;\r\n }\r\n\r\n &:hover { \r\n .paneList { \r\n border-left: 3px solid rgba(51, 122, 183, 0.8);\r\n }\r\n\r\n .paneContainer-content {\r\n .header {\r\n .title { \r\n border-left: 3px solid rgb(51, 122, 183);\r\n }\r\n }\r\n }\r\n }\r\n \r\n .paneContainer-highlight-border {\r\n grid-row: 1;\r\n grid-column: 1;\r\n opacity: 1;\r\n border: 3px solid red;\r\n transition: opacity 250ms;\r\n pointer-events: none;\r\n \r\n &.transparent {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n .paneContainer-content {\r\n grid-row: 1;\r\n grid-column: 1;\r\n\r\n .header {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n background: #cccccc; \r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: 5px; \r\n cursor: pointer;\r\n \r\n .title { \r\n border-left: 3px solid transparent;\r\n padding-left: 5px;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .collapse {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n justify-items: center;\r\n transform-origin: center;\r\n\r\n &.closed {\r\n transform: rotate(180deg);\r\n }\r\n } \r\n }\r\n\r\n .paneList > div:not(:last-child) {\r\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .fragment > div:not(:last-child) {\r\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r\n }\r\n }\r\n }\r\n\r\n .color-picker {\r\n height: 150px;\r\n width: 15px;\r\n\r\n .color-rect-background {\r\n height: 15px;\r\n border: 1px black solid;\r\n cursor: pointer;\r\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50% / 10px 10px;\r\n .color-rect {\r\n height: 100%;\r\n }\r\n }\r\n\r\n .color-picker-cover {\r\n position: fixed;\r\n top: 0px;\r\n right: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n }\r\n\r\n .color-picker-float {\r\n z-index: 2;\r\n position: absolute; \r\n } \r\n }\r\n\r\n .gradient-step {\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 20px 30px 40px auto 20px 30px;\r\n padding-top: 5px;\r\n padding-left: 5px;\r\n padding-bottom: 5px;\r\n\r\n .step {\r\n grid-row: 1;\r\n grid-column: 1;\r\n }\r\n \r\n .color {\r\n grid-row: 1;\r\n grid-column: 2;\r\n cursor: pointer;\r\n }\r\n\r\n .step-value { \r\n margin-left: 5px; \r\n grid-row: 1;\r\n grid-column: 3;\r\n text-align: right;\r\n margin-right: 5px;\r\n }\r\n\r\n .step-slider { \r\n grid-row: 1;\r\n grid-column: 4;\r\n display: grid;\r\n justify-content: stretch;\r\n align-content: center;\r\n margin-right: -5px;\r\n padding-left: 12px;\r\n\r\n input {\r\n width: 90%;\r\n }\r\n }\r\n\r\n .gradient-copy { \r\n grid-row: 1;\r\n grid-column: 5;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n \r\n .img {\r\n height: 20px;\r\n width: 20px;\r\n }\r\n .img:hover {\r\n cursor: pointer;\r\n }\r\n\r\n }\r\n .gradient-delete { \r\n grid-row: 1;\r\n grid-column: 6;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n .img {\r\n height: 20px;\r\n width: 20px;\r\n }\r\n .img:hover {\r\n cursor: pointer;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .alignment-bar {\r\n display: flex;\r\n justify-content: center;\r\n padding-right: 5px;\r\n }\r\n\r\n .command-button {\r\n cursor: pointer;\r\n width: 30px;\r\n\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n color: white;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n\r\n &:hover {\r\n background-color: white;\r\n } \r\n \r\n .active {\r\n transform-origin: center;\r\n background-color: white;\r\n }\r\n\r\n img {\r\n &.active {\r\n background-color: white;\r\n }\r\n }\r\n }\r\n\r\n .command-button-alt {\r\n cursor: pointer;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: white;\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n &:hover {\r\n background-color: #c2c2c2;\r\n filter: invert(1);\r\n } \r\n }\r\n\r\n .command-button-alt-disabled {\r\n cursor: pointer;\r\n pointer-events: none;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: white;\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n\r\n img {\r\n filter: invert(1);\r\n }\r\n }\r\n\r\n \r\n .command-button-alt-active {\r\n cursor: pointer;\r\n pointer-events: none;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: #c2c2c2;\r\n filter: invert(1);\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n .floatLine {\r\n user-select: none;\r\n padding-left: $line-padding-left;\r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n display: grid;\r\n grid-template-columns: auto auto 2fr 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 3;\r\n background: transparent;\r\n height: 30px;\r\n input {\r\n width: calc(100% - 5px);\r\n background-color: white;\r\n outline-color: transparent;\r\n border: none;\r\n outline-width: 0px;\r\n height: 24px;\r\n }\r\n }\r\n\r\n .short {\r\n grid-column: 2;\r\n \r\n display: flex;\r\n align-items: center;\r\n \r\n input {\r\n width: 27px;\r\n }\r\n \r\n input::-webkit-outer-spin-button,\r\n input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n input[type=number] {\r\n -moz-appearance: textfield;\r\n }\r\n }\r\n }\r\n\r\n .vector3Line {\r\n padding-left:$line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top; \r\n display: grid;\r\n .firstLine {\r\n display: grid;\r\n grid-template-columns: 1fr auto 20px;\r\n height: var(--spacingHeight);\r\n\r\n .label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .vector {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n text-align: right;\r\n opacity: 0.8;\r\n }\r\n\r\n .expand {\r\n grid-column: 3;\r\n display: grid;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .secondLine {\r\n display: grid;\r\n padding-right: 5px; \r\n border-left: 1px solid rgb(51, 122, 183);\r\n\r\n .no-right-margin {\r\n margin-right: 0;\r\n }\r\n\r\n .numeric {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n }\r\n\r\n .numeric-label {\r\n text-align: right;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center; \r\n justify-self: right;\r\n margin-right: 10px; \r\n }\r\n\r\n .numeric-value {\r\n width: 120px;\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n border: 1px solid rgb(51, 122, 183);\r\n } \r\n }\r\n }\r\n\r\n .buttonLine {\r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n display: grid;\r\n align-items: center;\r\n justify-items: stretch;\r\n padding-bottom: 5px;\r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n\r\n .file-upload { \r\n background: var(--backgroundGrey);\r\n border: 1px solid #424242;\r\n margin: 5px 10px;\r\n color:white;\r\n padding: 4px 5px;\r\n opacity: 0.9;\r\n cursor: pointer;\r\n text-align: center;\r\n border-radius: 4px;\r\n }\r\n\r\n .file-upload:hover {\r\n opacity: 1.0;\r\n }\r\n\r\n .file-upload:active {\r\n transform: scale(0.98);\r\n transform-origin: 0.5 0.5;\r\n }\r\n\r\n button {\r\n background: var(--backgroundGrey);\r\n border: 1px solid #424242;\r\n margin: 5px 10px 5px 10px;\r\n color:white;\r\n padding: 4px 5px;\r\n opacity: 0.9;\r\n border-radius: 4px;\r\n }\r\n\r\n button:hover {\r\n opacity: 1.0;\r\n }\r\n\r\n button:active {\r\n background: #282828;\r\n } \r\n \r\n button:focus {\r\n border: 1px solid #424242;\r\n outline: 0px;\r\n } \r\n }\r\n\r\n .numeric {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n height: var(--spacingHeight);;\r\n display: grid;\r\n grid-template-columns: 1fr 120px auto;\r\n\r\n .numeric-label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .number { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 2;\r\n height: 10px;\r\n .input {\r\n width: calc(100% - 5px);\r\n height: 10px;\r\n }\r\n }\r\n }\r\n \r\n .checkBoxLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr ;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 100px;\r\n margin-left: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .checkBox {\r\n grid-column: 3;\r\n display: flex;\r\n align-items: center;\r\n margin-left: auto;\r\n margin-right: 0px;\r\n \r\n .lbl {\r\n position: relative;\r\n display: block;\r\n height: 14px;\r\n width: 34px;\r\n border-radius: 100px;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .lbl:after {\r\n position: absolute;\r\n left: 3px;\r\n top: 1px;\r\n display: block;\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 100px;\r\n background: #e2e2e2;\r\n box-shadow: 0px 3px 3px rgba(0,0,0,0.05);\r\n content: '';\r\n transition: all 0.15s ease;\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .lbl:active:after { \r\n transform: scale(1.15, 0.85); \r\n }\r\n\r\n .cbx:checked ~ label { \r\n background: transparent;\r\n \r\n }\r\n\r\n .cbx:checked ~ label:after {\r\n left: 20px;\r\n background: rgb(0, 0, 0);\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .cbx.conflict ~ label:after {\r\n left: 10px;\r\n background: repeating-linear-gradient(45deg, transparent, transparent 5px, black 5px, black 10px);\r\n }\r\n\r\n .cbx:checked ~ label.disabled { \r\n background: rgb(0, 0, 0);\r\n cursor: pointer;\r\n }\r\n\r\n .cbx:checked ~ label.disabled:after {\r\n left: 20px;\r\n background: rgb(85, 85, 85);\r\n cursor: pointer;\r\n }\r\n\r\n .cbx ~ label.disabled {\r\n background: rgb(85, 85, 85);\r\n cursor: pointer;\r\n }\r\n\r\n .hidden { \r\n display: none; \r\n } \r\n } \r\n } \r\n\r\n .listLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto 1fr auto ;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: none;\r\n align-items: center;\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .options {\r\n grid-column: 2;\r\n padding-left: 15px;\r\n display: flex;\r\n align-items: center; \r\n margin-right: 5px;\r\n\r\n select {\r\n width: 120px;\r\n height: 25px;\r\n border: transparent;\r\n border-radius: 4px;\r\n }\r\n } \r\n } \r\n \r\n .color3Line {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n display: grid;\r\n\r\n .firstLine {\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n padding-left: 5px;\r\n display: none;\r\n align-items: center;\r\n min-width: 15px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n img {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n \r\n .textInputLine {\r\n grid-column: 3;\r\n padding-left: 0px;\r\n }\r\n \r\n .color3 {\r\n grid-column: 2; \r\n margin-top: 6px;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 15px;\r\n \r\n input {\r\n margin-right: 5px;\r\n }\r\n }\r\n\r\n .textInputLine {\r\n .value {\r\n padding-left: 2px;\r\n }\r\n }\r\n\r\n .copy {\r\n grid-column: 4;\r\n display: none;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n color: black;\r\n img {\r\n height: 100%;\r\n width: 20px;\r\n }\r\n }\r\n\r\n .expand {\r\n grid-column: 4;\r\n display: none;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n\r\n img {\r\n height: 100%;\r\n width: 20px;\r\n }\r\n }\r\n } \r\n\r\n .secondLine {\r\n display: grid;\r\n padding-right: 5px; \r\n border-left: 1px solid rgb(51, 122, 183);\r\n\r\n .numeric {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n }\r\n\r\n .numeric-label {\r\n text-align: right;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center; \r\n justify-self: right;\r\n margin-right: 10px; \r\n }\r\n\r\n .numeric-value {\r\n width: 120px;\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n border: 1px solid rgb(51, 122, 183);\r\n } \r\n } \r\n } \r\n \r\n .textLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: auto;\r\n display: grid;\r\n grid-template-columns: auto auto 2fr 1fr;\r\n .label {\r\n grid-column: 2;\r\n padding-left: 5px;\r\n padding-top: 4px;\r\n display: flex;\r\n align-items: left;\r\n min-width: 15px;\r\n color: #a9a9a9;\r\n font-size: 10px;\r\n font-family: \"acumin-pro-semicondensed\";\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .link-value {\r\n grid-column: 2;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n text-align: end;\r\n opacity: 0.8;\r\n margin:5px;\r\n margin-top: 6px;\r\n max-width: 140px;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n }\r\n\r\n .value {\r\n display: none;\r\n grid-column: 3;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n text-align: end;\r\n opacity: 0.8;\r\n margin:5px;\r\n margin-top: 6px;\r\n max-width: 200px;\r\n -webkit-user-select: text; \r\n -moz-user-select: text; \r\n -ms-user-select: text; \r\n user-select: text; \r\n\r\n &.check {\r\n color: green;\r\n }\r\n\r\n &.uncheck {\r\n color: red;\r\n } \r\n }\r\n } \r\n\r\n}"],"sourceRoot":""}]);
10117
+ ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --backgroundGrey: #aaaaaa;\n --spacingHeight: 30px;\n --labelFamily: \"acumin-pro-condensed-semibold\";\n --button: #333333;\n --buttonBackground: #ffffff;\n --buttonDisabledBackground: #c8c8c8;\n --buttonPressed: #ffffff;\n --buttonPressedBackground: #606060; }\n\nhr.ge {\n border: 1px solid #d0cece; }\n\n#ge-propertyTab {\n user-select: none;\n color: black;\n background: #e2e2e2; }\n #ge-propertyTab * {\n font-family: \"acumin-pro-semicondensed\";\n font-size: 12px; }\n #ge-propertyTab #header {\n height: 30px;\n font-size: 16px;\n color: white;\n background: white;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #ge-propertyTab #header #logo {\n position: relative;\n background: white;\n grid-column: 1;\n width: 32px;\n height: 32px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #ge-propertyTab #header #title {\n background: white;\n color: black;\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #ge-propertyTab .range {\n -webkit-appearance: none;\n width: 100%;\n height: 2px;\n background: #bcbcbc;\n border-radius: 5px;\n outline: none;\n opacity: 0.7;\n -webkit-transition: .2s;\n transition: opacity .2s; }\n #ge-propertyTab .range:hover {\n opacity: 1; }\n #ge-propertyTab .range::-webkit-slider-thumb {\n -webkit-appearance: none;\n appearance: none;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #e2e2e2;\n border: solid;\n border-width: thin;\n cursor: pointer; }\n #ge-propertyTab .range::-moz-range-thumb {\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: black;\n cursor: pointer; }\n #ge-propertyTab input[type=\"color\"] {\n -webkit-appearance: none;\n border: 1px solid rgba(255, 255, 255, 0.5);\n padding: 0;\n width: 30px;\n height: 20px; }\n #ge-propertyTab input[type=\"color\"]::-webkit-color-swatch-wrapper {\n padding: 0; }\n #ge-propertyTab input[type=\"color\"]::-webkit-color-swatch {\n border: none; }\n #ge-propertyTab .unit {\n width: 26px;\n height: 26px;\n color: var(--button);\n background-color: var(--buttonBackground);\n border: none;\n margin-top: 2px;\n cursor: pointer; }\n #ge-propertyTab .unit.disabled {\n background-color: var(--buttonDisabledBackground); }\n #ge-propertyTab .unit:active {\n color: var(--buttonPressed);\n background-color: var(--buttonPressedBackground); }\n #ge-propertyTab .sliderLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: auto auto auto 1fr; }\n #ge-propertyTab .sliderLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .sliderLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .sliderLine .slider {\n grid-column: 4;\n grid-row: 1;\n margin-right: 5px;\n width: 90%;\n display: flex;\n align-items: center;\n padding-left: 5px; }\n #ge-propertyTab .sliderLine .floatLine {\n grid-column: 3;\n padding-left: 0px; }\n #ge-propertyTab .sliderLine .floatLine .label {\n grid-column: 1;\n display: none;\n align-items: center;\n font-family: var(--labelFamily); }\n #ge-propertyTab .sliderLine .floatLine .short {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .sliderLine .floatLine .short input {\n width: 60px;\n background-color: white;\n outline-color: transparent;\n border: transparent;\n height: 26px;\n outline-width: 0px; }\n #ge-propertyTab .sliderLine .floatLine .short input::-webkit-outer-spin-button,\n #ge-propertyTab .sliderLine .floatLine .short input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n #ge-propertyTab .sliderLine .floatLine .short input[type=number] {\n -webkit-appearance: textfield;\n -moz-appearance: textfield;\n appearance: textfield; }\n #ge-propertyTab .ge-divider {\n display: grid;\n grid-template-columns: auto auto auto auto auto auto;\n padding-right: 18px; }\n #ge-propertyTab .ge-divider-short {\n display: grid;\n grid-template-columns: 1fr 1fr;\n padding-right: 18px; }\n #ge-propertyTab .ge-divider-single {\n display: block;\n padding-right: 18px; }\n #ge-propertyTab .ge-grid-divider {\n display: grid;\n grid-template-columns: 150px 1fr auto; }\n #ge-propertyTab .ge-grid-divider .textLine {\n grid-column: auto; }\n #ge-propertyTab .ge-grid-button-divider {\n display: grid;\n grid-template-columns: 60px 60px 60px 60px; }\n #ge-propertyTab .ge-grid-remove {\n display: grid;\n background-color: #c2c2c2;\n margin-bottom: 5px;\n filter: invert(1); }\n #ge-propertyTab .ge-grid-edit {\n display: grid;\n background-color: #878787;\n margin-bottom: 5px;\n filter: invert(1); }\n #ge-propertyTab .ge-grid {\n display: grid;\n margin-bottom: 5px; }\n #ge-propertyTab .textInputLine {\n user-select: none;\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .textInputLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .textInputLine img {\n width: 30px; }\n #ge-propertyTab .textInputLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textInputLine .value {\n display: flex;\n align-items: center;\n grid-column: 3;\n background: transparent;\n height: 26px;\n position: relative;\n background-color: white;\n margin-top: 2px;\n overflow-y: hidden;\n margin-right: 2px; }\n #ge-propertyTab .textInputLine .value input {\n width: 100%;\n outline-color: transparent;\n border: transparent;\n outline-width: 0px;\n height: 24px; }\n #ge-propertyTab .textInputLine .value input.hasArrows {\n padding-right: 15px; }\n #ge-propertyTab .textInputLine .value .arrows {\n display: none; }\n #ge-propertyTab .textInputLine .value:hover .arrows, #ge-propertyTab .textInputLine .value:focus .arrows, #ge-propertyTab .textInputLine .value.dragging .arrows {\n position: absolute;\n right: 0;\n display: flex;\n flex-direction: column;\n background-color: white;\n cursor: grab; }\n #ge-propertyTab .textInputLine .value:hover .arrows .downArrowIcon, #ge-propertyTab .textInputLine .value:hover .arrows .upArrowIcon, #ge-propertyTab .textInputLine .value:focus .arrows .downArrowIcon, #ge-propertyTab .textInputLine .value:focus .arrows .upArrowIcon, #ge-propertyTab .textInputLine .value.dragging .arrows .downArrowIcon, #ge-propertyTab .textInputLine .value.dragging .arrows .upArrowIcon {\n width: 15px;\n height: 15px; }\n #ge-propertyTab .textInputLine .value.dragging .arrows {\n background-color: var(--buttonPressedBackground); }\n #ge-propertyTab .textInputLine .value.dragging .arrows .downArrowIcon, #ge-propertyTab .textInputLine .value.dragging .arrows .upArrowIcon {\n filter: invert(100%) brightness(500%); }\n #ge-propertyTab .textInputLine.withUnits {\n grid-template-columns: auto auto 1fr auto; }\n #ge-propertyTab .textInputArea {\n padding-left: 5px;\n height: 100%;\n display: grid;\n grid-template-columns: 1fr 120px; }\n #ge-propertyTab .textInputArea .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textInputArea .value {\n display: flex;\n align-items: center;\n grid-column: 2; }\n #ge-propertyTab .textInputArea .value textarea {\n width: calc(150% - 5px);\n margin-left: -50%;\n height: 40px; }\n #ge-propertyTab .paneContainer {\n margin-top: 3px;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%; }\n #ge-propertyTab .paneContainer .paneList {\n border-left: 3px solid transparent; }\n #ge-propertyTab .paneContainer:hover .paneList {\n border-left: 3px solid rgba(51, 122, 183, 0.8); }\n #ge-propertyTab .paneContainer:hover .paneContainer-content .header .title {\n border-left: 3px solid #337ab7; }\n #ge-propertyTab .paneContainer .paneContainer-highlight-border {\n grid-row: 1;\n grid-column: 1;\n opacity: 1;\n border: 3px solid red;\n transition: opacity 250ms;\n pointer-events: none; }\n #ge-propertyTab .paneContainer .paneContainer-highlight-border.transparent {\n opacity: 0; }\n #ge-propertyTab .paneContainer .paneContainer-content {\n grid-row: 1;\n grid-column: 1; }\n #ge-propertyTab .paneContainer .paneContainer-content .header {\n display: grid;\n grid-template-columns: 1fr auto;\n background: #cccccc;\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 5px;\n cursor: pointer; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .title {\n border-left: 3px solid transparent;\n padding-left: 5px;\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .collapse {\n grid-column: 2;\n display: flex;\n align-items: center;\n justify-items: center;\n transform-origin: center; }\n #ge-propertyTab .paneContainer .paneContainer-content .header .collapse.closed {\n transform: rotate(180deg); }\n #ge-propertyTab .paneContainer .paneContainer-content .paneList > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #ge-propertyTab .paneContainer .paneContainer-content .fragment > div:not(:last-child) {\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); }\n #ge-propertyTab .color-picker {\n height: 150px;\n width: 15px; }\n #ge-propertyTab .color-picker .color-rect-background {\n height: 15px;\n border: 1px black solid;\n cursor: pointer;\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50%/10px 10px; }\n #ge-propertyTab .color-picker .color-rect-background .color-rect {\n height: 100%; }\n #ge-propertyTab .color-picker .color-picker-cover {\n position: fixed;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px; }\n #ge-propertyTab .color-picker .color-picker-float {\n z-index: 2;\n position: absolute; }\n #ge-propertyTab .gradient-step {\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 20px 30px 40px auto 20px 30px;\n padding-top: 5px;\n padding-left: 5px;\n padding-bottom: 5px; }\n #ge-propertyTab .gradient-step .step {\n grid-row: 1;\n grid-column: 1; }\n #ge-propertyTab .gradient-step .color {\n grid-row: 1;\n grid-column: 2;\n cursor: pointer; }\n #ge-propertyTab .gradient-step .step-value {\n margin-left: 5px;\n grid-row: 1;\n grid-column: 3;\n text-align: right;\n margin-right: 5px; }\n #ge-propertyTab .gradient-step .step-slider {\n grid-row: 1;\n grid-column: 4;\n display: grid;\n justify-content: stretch;\n align-content: center;\n margin-right: -5px;\n padding-left: 12px; }\n #ge-propertyTab .gradient-step .step-slider input {\n width: 90%; }\n #ge-propertyTab .gradient-step .gradient-copy {\n grid-row: 1;\n grid-column: 5;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .gradient-step .gradient-copy .img {\n height: 20px;\n width: 20px; }\n #ge-propertyTab .gradient-step .gradient-copy .img:hover {\n cursor: pointer; }\n #ge-propertyTab .gradient-step .gradient-delete {\n grid-row: 1;\n grid-column: 6;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .gradient-step .gradient-delete .img {\n height: 20px;\n width: 20px; }\n #ge-propertyTab .gradient-step .gradient-delete .img:hover {\n cursor: pointer; }\n #ge-propertyTab .alignment-bar {\n display: flex;\n justify-content: center;\n padding-right: 5px; }\n #ge-propertyTab .command-button {\n cursor: pointer;\n width: 30px; }\n #ge-propertyTab .command-button .command-label {\n display: none; }\n #ge-propertyTab .command-button .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n color: white;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button:hover {\n background-color: white; }\n #ge-propertyTab .command-button .active {\n transform-origin: center;\n background-color: white; }\n #ge-propertyTab .command-button img.active {\n background-color: white; }\n #ge-propertyTab .command-button-alt {\n cursor: pointer;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: white; }\n #ge-propertyTab .command-button-alt .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button-alt:hover {\n background-color: #c2c2c2;\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-disabled {\n cursor: pointer;\n pointer-events: none;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: white; }\n #ge-propertyTab .command-button-alt-disabled .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt-disabled .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .command-button-alt-disabled img {\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-active {\n cursor: pointer;\n pointer-events: none;\n width: 40px;\n margin-left: 5px;\n margin-right: 5px;\n background-color: #c2c2c2;\n filter: invert(1); }\n #ge-propertyTab .command-button-alt-active .command-label {\n display: none; }\n #ge-propertyTab .command-button-alt-active .command-button-icon {\n height: 100%;\n width: 100%;\n display: grid;\n align-content: center;\n justify-content: center; }\n #ge-propertyTab .floatLine {\n user-select: none;\n padding-left: 5px;\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid;\n grid-template-columns: auto auto 2fr 1fr; }\n #ge-propertyTab .floatLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .floatLine img {\n width: 30px; }\n #ge-propertyTab .floatLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .floatLine .value {\n display: flex;\n align-items: center;\n grid-column: 3;\n background: transparent;\n height: 30px;\n margin-right: 2px; }\n #ge-propertyTab .floatLine .value input {\n width: 100%;\n background-color: white;\n outline-color: transparent;\n border: none;\n outline-width: 0px;\n height: 24px; }\n #ge-propertyTab .floatLine .short {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #ge-propertyTab .floatLine .short input {\n width: 27px; }\n #ge-propertyTab .floatLine .short input::-webkit-outer-spin-button,\n #ge-propertyTab .floatLine .short input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0; }\n #ge-propertyTab .floatLine .short input[type=number] {\n -moz-appearance: textfield; }\n #ge-propertyTab .vector3Line {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid; }\n #ge-propertyTab .vector3Line .firstLine {\n display: grid;\n grid-template-columns: 1fr auto 20px;\n height: var(--spacingHeight); }\n #ge-propertyTab .vector3Line .firstLine .label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .vector3Line .firstLine .vector {\n grid-column: 2;\n display: flex;\n align-items: center;\n text-align: right;\n opacity: 0.8; }\n #ge-propertyTab .vector3Line .firstLine .expand {\n grid-column: 3;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-propertyTab .vector3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #ge-propertyTab .vector3Line .secondLine .no-right-margin {\n margin-right: 0; }\n #ge-propertyTab .vector3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #ge-propertyTab .vector3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #ge-propertyTab .vector3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #ge-propertyTab .buttonLine {\n height: var(--spacingHeight);\n padding-bottom: 0px;\n padding-top: 0px;\n display: grid;\n align-items: center;\n justify-items: stretch;\n padding-bottom: 5px; }\n #ge-propertyTab .buttonLine input[type=\"file\"] {\n display: none; }\n #ge-propertyTab .buttonLine .file-upload {\n background: var(--backgroundGrey);\n border: 1px solid #424242;\n margin: 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n cursor: pointer;\n text-align: center;\n border-radius: 4px; }\n #ge-propertyTab .buttonLine .file-upload:hover {\n opacity: 1.0; }\n #ge-propertyTab .buttonLine .file-upload:active {\n transform: scale(0.98);\n transform-origin: 0.5 0.5; }\n #ge-propertyTab .buttonLine button {\n background: var(--backgroundGrey);\n border: 1px solid #424242;\n margin: 5px 10px 5px 10px;\n color: white;\n padding: 4px 5px;\n opacity: 0.9;\n border-radius: 4px; }\n #ge-propertyTab .buttonLine button:hover {\n opacity: 1.0; }\n #ge-propertyTab .buttonLine button:active {\n background: #282828; }\n #ge-propertyTab .buttonLine button:focus {\n border: 1px solid #424242;\n outline: 0px; }\n #ge-propertyTab .numeric {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: 1fr 120px auto; }\n #ge-propertyTab .numeric .numeric-label {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .numeric .number {\n display: flex;\n align-items: center;\n grid-column: 2;\n height: 10px; }\n #ge-propertyTab .numeric .number .input {\n width: calc(100% - 5px);\n height: 10px; }\n #ge-propertyTab .checkBoxLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .checkBoxLine .label {\n grid-column: 2;\n display: flex;\n align-items: center;\n min-width: 100px;\n margin-left: 15px;\n font-family: var(--labelFamily); }\n #ge-propertyTab .checkBoxLine img {\n width: 30px; }\n #ge-propertyTab .checkBoxLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .checkBoxLine .checkBox {\n grid-column: 3;\n display: flex;\n align-items: center;\n margin-left: auto;\n margin-right: 0px; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl {\n position: relative;\n display: block;\n height: 14px;\n width: 34px;\n border-radius: 100px;\n cursor: pointer;\n transition: all 0.3s ease;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl:after {\n position: absolute;\n left: 3px;\n top: 1px;\n display: block;\n width: 10px;\n height: 10px;\n border-radius: 100px;\n background: #e2e2e2;\n box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.05);\n content: '';\n transition: all 0.15s ease;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .lbl:active:after {\n transform: scale(1.15, 0.85); }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label {\n background: transparent; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label:after {\n left: 20px;\n background: black;\n border: solid;\n border-width: thin; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx.conflict ~ label:after {\n left: 10px;\n background: repeating-linear-gradient(45deg, transparent, transparent 5px, black 5px, black 10px); }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label.disabled {\n background: black;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx:checked ~ label.disabled:after {\n left: 20px;\n background: #555555;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .cbx ~ label.disabled {\n background: #555555;\n cursor: pointer; }\n #ge-propertyTab .checkBoxLine .checkBox .hidden {\n display: none; }\n #ge-propertyTab .listLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto 1fr auto; }\n #ge-propertyTab .listLine .label {\n grid-column: 2;\n display: none;\n align-items: center; }\n #ge-propertyTab .listLine img {\n width: 30px; }\n #ge-propertyTab .listLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .listLine .options {\n grid-column: 2;\n padding-left: 15px;\n display: flex;\n align-items: center;\n margin-right: 5px; }\n #ge-propertyTab .listLine .options select {\n width: 120px;\n height: 25px;\n border: transparent;\n border-radius: 4px; }\n #ge-propertyTab .color3Line {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n display: grid; }\n #ge-propertyTab .color3Line .firstLine {\n height: var(--spacingHeight);\n display: grid;\n grid-template-columns: auto auto 1fr; }\n #ge-propertyTab .color3Line .firstLine .label {\n grid-column: 2;\n padding-left: 5px;\n display: none;\n align-items: center;\n min-width: 15px; }\n #ge-propertyTab .color3Line .firstLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .color3Line .firstLine img {\n width: 30px;\n height: 30px; }\n #ge-propertyTab .color3Line .firstLine .textInputLine {\n grid-column: 3;\n padding-left: 0px; }\n #ge-propertyTab .color3Line .firstLine .color3 {\n grid-column: 2;\n margin-top: 6px;\n display: flex;\n align-items: center;\n padding-left: 15px; }\n #ge-propertyTab .color3Line .firstLine .color3 input {\n margin-right: 5px; }\n #ge-propertyTab .color3Line .firstLine .textInputLine .value {\n padding-left: 2px; }\n #ge-propertyTab .color3Line .firstLine .copy {\n grid-column: 4;\n display: none;\n align-items: center;\n justify-items: center;\n cursor: pointer;\n color: black; }\n #ge-propertyTab .color3Line .firstLine .copy img {\n height: 100%;\n width: 20px; }\n #ge-propertyTab .color3Line .firstLine .expand {\n grid-column: 4;\n display: none;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-propertyTab .color3Line .firstLine .expand img {\n height: 100%;\n width: 20px; }\n #ge-propertyTab .color3Line .secondLine {\n display: grid;\n padding-right: 5px;\n border-left: 1px solid #337ab7; }\n #ge-propertyTab .color3Line .secondLine .numeric {\n display: grid;\n grid-template-columns: 1fr auto; }\n #ge-propertyTab .color3Line .secondLine .numeric-label {\n text-align: right;\n grid-column: 1;\n display: flex;\n align-items: center;\n justify-self: right;\n margin-right: 10px; }\n #ge-propertyTab .color3Line .secondLine .numeric-value {\n width: 120px;\n grid-column: 2;\n display: flex;\n align-items: center;\n border: 1px solid #337ab7; }\n #ge-propertyTab .textLine {\n padding-left: 5px;\n padding-bottom: 0px;\n padding-top: 0px;\n padding-right: 18px;\n height: auto;\n display: grid;\n grid-template-columns: auto auto 2fr 1fr; }\n #ge-propertyTab .textLine .label {\n grid-column: 2;\n padding-left: 5px;\n padding-top: 4px;\n display: flex;\n align-items: left;\n min-width: 15px;\n color: #a9a9a9;\n font-size: 10px;\n font-family: \"acumin-pro-semicondensed\"; }\n #ge-propertyTab .textLine img {\n width: 30px; }\n #ge-propertyTab .textLine .img {\n grid-column: 1;\n display: flex;\n align-items: center; }\n #ge-propertyTab .textLine .link-value {\n grid-column: 2;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 140px;\n text-decoration: underline;\n cursor: pointer; }\n #ge-propertyTab .textLine .value {\n display: none;\n grid-column: 3;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n text-align: end;\n opacity: 0.8;\n margin: 5px;\n margin-top: 6px;\n max-width: 200px;\n -webkit-user-select: text;\n -moz-user-select: text;\n -ms-user-select: text;\n user-select: text; }\n #ge-propertyTab .textLine .value.check {\n color: green; }\n #ge-propertyTab .textLine .value.uncheck {\n color: red; }\n", "",{"version":3,"sources":["webpack://./components/propertyTab/propertyTab.scss"],"names":[],"mappings":"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","sourcesContent":[":root {\r\n --backgroundGrey: #aaaaaa;\r\n --spacingHeight: 30px;\r\n --labelFamily: \"acumin-pro-condensed-semibold\";\r\n --button: #333333;\r\n --buttonBackground: #ffffff;\r\n --buttonDisabledBackground: #c8c8c8;\r\n --buttonPressed: #ffffff;\r\n --buttonPressedBackground: #606060;\r\n}\r\n\r\nhr.ge {\r\n border: 1px solid #d0cece;\r\n}\r\n\r\n#ge-propertyTab {\r\n user-select: none;\r\n $line-padding-left: 5px;\r\n $line-padding-bottom: 0px;\r\n $line-padding-top: 0px;\r\n $line-padding-right: 18px;\r\n color:black;\r\n background: #e2e2e2;\r\n * {\r\n font-family: \"acumin-pro-semicondensed\";\r\n font-size: 12px;\r\n }\r\n #header {\r\n height: 30px;\r\n font-size: 16px;\r\n color: white;\r\n background: white;\r\n grid-row: 1;\r\n text-align: center;\r\n display: grid;\r\n grid-template-columns: 30px 1fr; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n\r\n #logo {\r\n position: relative;\r\n background: white;\r\n grid-column: 1; \r\n width: 32px;\r\n height: 32px;\r\n left:0;\r\n display: flex;\r\n align-self: center; \r\n justify-self: center;\r\n } \r\n\r\n #title {\r\n background: white;\r\n color: black;\r\n grid-column: 2; \r\n display: grid;\r\n align-items: center; \r\n text-align: center;\r\n }\r\n }\r\n\r\n .range {\r\n -webkit-appearance: none;\r\n width: 100%;\r\n height: 2px;\r\n background: #bcbcbc;\r\n border-radius: 5px;\r\n outline: none;\r\n opacity: 0.7;\r\n -webkit-transition: .2s;\r\n transition: opacity .2s;\r\n }\r\n \r\n .range:hover {\r\n opacity: 1;\r\n }\r\n \r\n .range::-webkit-slider-thumb {\r\n -webkit-appearance: none;\r\n appearance: none;\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n background: #e2e2e2;\r\n border: solid;\r\n border-width: thin;\r\n cursor: pointer;\r\n }\r\n \r\n .range::-moz-range-thumb {\r\n width: 14px;\r\n height: 14px;\r\n border-radius: 50%;\r\n background: rgb(0, 0, 0);\r\n cursor: pointer;\r\n }\r\n\r\n input[type=\"color\"] {\r\n -webkit-appearance: none;\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n padding: 0;\r\n width: 30px;\r\n height: 20px;\r\n }\r\n input[type=\"color\"]::-webkit-color-swatch-wrapper {\r\n padding: 0;\r\n }\r\n input[type=\"color\"]::-webkit-color-swatch {\r\n border: none;\r\n }\r\n\r\n .unit {\r\n width: 26px;\r\n height: 26px;\r\n color: var(--button);\r\n background-color: var(--buttonBackground);\r\n border: none;\r\n margin-top: 2px;\r\n cursor: pointer;\r\n }\r\n\r\n .unit.disabled {\r\n background-color: var(--buttonDisabledBackground);\r\n }\r\n\r\n .unit:active {\r\n color: var(--buttonPressed);\r\n background-color: var(--buttonPressedBackground);\r\n }\r\n\r\n .sliderLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: auto auto auto 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n\r\n .slider {\r\n grid-column: 4;\r\n grid-row: 1;\r\n margin-right: 5px;\r\n width: 90%;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 5px;\r\n }\r\n\r\n .floatLine {\r\n grid-column: 3;\r\n padding-left: 0px;\r\n \r\n .label {\r\n grid-column: 1;\r\n display: none;\r\n align-items: center;\r\n font-family: var(--labelFamily);\r\n }\r\n \r\n .short {\r\n grid-column: 1; \r\n display: flex;\r\n align-items: center;\r\n \r\n input {\r\n width: 60px;\r\n background-color: white;\r\n outline-color: transparent;\r\n border: transparent;\r\n height: 26px;\r\n outline-width: 0px\r\n }\r\n \r\n input::-webkit-outer-spin-button,\r\n input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n \r\n input[type=number] {\r\n -webkit-appearance: textfield;\r\n -moz-appearance: textfield;\r\n appearance: textfield;\r\n }\r\n }\r\n } \r\n } \r\n\r\n .ge-divider {\r\n display: grid;\r\n grid-template-columns: auto auto auto auto auto auto;\r\n padding-right: $line-padding-right;\r\n }\r\n\r\n .ge-divider-short {\r\n display: grid;\r\n grid-template-columns: 1fr 1fr;\r\n padding-right: $line-padding-right;\r\n }\r\n\r\n .ge-divider-single {\r\n display: block;\r\n padding-right: $line-padding-right;\r\n }\r\n \r\n .ge-grid-divider {\r\n display: grid;\r\n grid-template-columns: 150px 1fr auto;\r\n \r\n .textLine {\r\n grid-column: auto;\r\n \r\n }\r\n }\r\n\r\n .ge-grid-button-divider {\r\n display: grid;\r\n grid-template-columns: 60px 60px 60px 60px;\r\n }\r\n\r\n .ge-grid-remove {\r\n display: grid;\r\n background-color: #c2c2c2;\r\n margin-bottom: 5px;\r\n filter: invert(1);\r\n }\r\n\r\n .ge-grid-edit {\r\n display: grid;\r\n background-color: #878787;\r\n margin-bottom: 5px;\r\n filter: invert(1);\r\n\r\n }\r\n \r\n .ge-grid {\r\n display: grid;\r\n margin-bottom: 5px;\r\n }\r\n\r\n\r\n .textInputLine {\r\n user-select: none;\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr;\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 3;\r\n background: transparent;\r\n height: 26px;\r\n position: relative;\r\n background-color: white;\r\n margin-top: 2px;\r\n overflow-y: hidden;\r\n margin-right: 2px;\r\n input {\r\n width: 100%;\r\n outline-color: transparent;\r\n border: transparent;\r\n outline-width: 0px;\r\n height: 24px;\r\n }\r\n input.hasArrows {\r\n padding-right: 15px;\r\n }\r\n .arrows {\r\n display: none;\r\n }\r\n &:hover .arrows, &:focus .arrows, &.dragging .arrows {\r\n position: absolute;\r\n right: 0;\r\n display: flex;\r\n flex-direction: column;\r\n background-color: white;\r\n cursor: grab;\r\n .downArrowIcon, .upArrowIcon {\r\n width: 15px;\r\n height: 15px;\r\n }\r\n }\r\n &.dragging .arrows {\r\n background-color: var(--buttonPressedBackground);\r\n .downArrowIcon, .upArrowIcon {\r\n filter: invert(100%) brightness(500%);\r\n }\r\n }\r\n }\r\n }\r\n\r\n .textInputLine.withUnits {\r\n grid-template-columns: auto auto 1fr auto;\r\n }\r\n \r\n .textInputArea {\r\n padding-left: $line-padding-left;\r\n height: 100%;\r\n display: grid;\r\n grid-template-columns: 1fr 120px;\r\n\r\n .label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 2;\r\n \r\n textarea {\r\n width: calc(150% - 5px);\r\n margin-left: -50%;\r\n height: 40px;\r\n }\r\n }\r\n }\r\n \r\n .paneContainer {\r\n margin-top: 3px;\r\n display:grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n \r\n .paneList {\r\n border-left: 3px solid transparent;\r\n }\r\n\r\n &:hover { \r\n .paneList { \r\n border-left: 3px solid rgba(51, 122, 183, 0.8);\r\n }\r\n\r\n .paneContainer-content {\r\n .header {\r\n .title { \r\n border-left: 3px solid rgb(51, 122, 183);\r\n }\r\n }\r\n }\r\n }\r\n \r\n .paneContainer-highlight-border {\r\n grid-row: 1;\r\n grid-column: 1;\r\n opacity: 1;\r\n border: 3px solid red;\r\n transition: opacity 250ms;\r\n pointer-events: none;\r\n \r\n &.transparent {\r\n opacity: 0;\r\n }\r\n }\r\n\r\n .paneContainer-content {\r\n grid-row: 1;\r\n grid-column: 1;\r\n\r\n .header {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n background: #cccccc; \r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: 5px; \r\n cursor: pointer;\r\n \r\n .title { \r\n border-left: 3px solid transparent;\r\n padding-left: 5px;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .collapse {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n justify-items: center;\r\n transform-origin: center;\r\n\r\n &.closed {\r\n transform: rotate(180deg);\r\n }\r\n } \r\n }\r\n\r\n .paneList > div:not(:last-child) {\r\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r\n }\r\n\r\n .fragment > div:not(:last-child) {\r\n border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);\r\n }\r\n }\r\n }\r\n\r\n .color-picker {\r\n height: 150px;\r\n width: 15px;\r\n\r\n .color-rect-background {\r\n height: 15px;\r\n border: 1px black solid;\r\n cursor: pointer;\r\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50% / 10px 10px;\r\n .color-rect {\r\n height: 100%;\r\n }\r\n }\r\n\r\n .color-picker-cover {\r\n position: fixed;\r\n top: 0px;\r\n right: 0px;\r\n bottom: 0px;\r\n left: 0px;\r\n }\r\n\r\n .color-picker-float {\r\n z-index: 2;\r\n position: absolute; \r\n } \r\n }\r\n\r\n .gradient-step {\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 20px 30px 40px auto 20px 30px;\r\n padding-top: 5px;\r\n padding-left: 5px;\r\n padding-bottom: 5px;\r\n\r\n .step {\r\n grid-row: 1;\r\n grid-column: 1;\r\n }\r\n \r\n .color {\r\n grid-row: 1;\r\n grid-column: 2;\r\n cursor: pointer;\r\n }\r\n\r\n .step-value { \r\n margin-left: 5px; \r\n grid-row: 1;\r\n grid-column: 3;\r\n text-align: right;\r\n margin-right: 5px;\r\n }\r\n\r\n .step-slider { \r\n grid-row: 1;\r\n grid-column: 4;\r\n display: grid;\r\n justify-content: stretch;\r\n align-content: center;\r\n margin-right: -5px;\r\n padding-left: 12px;\r\n\r\n input {\r\n width: 90%;\r\n }\r\n }\r\n\r\n .gradient-copy { \r\n grid-row: 1;\r\n grid-column: 5;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n \r\n .img {\r\n height: 20px;\r\n width: 20px;\r\n }\r\n .img:hover {\r\n cursor: pointer;\r\n }\r\n\r\n }\r\n .gradient-delete { \r\n grid-row: 1;\r\n grid-column: 6;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n .img {\r\n height: 20px;\r\n width: 20px;\r\n }\r\n .img:hover {\r\n cursor: pointer;\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n .alignment-bar {\r\n display: flex;\r\n justify-content: center;\r\n padding-right: 5px;\r\n }\r\n\r\n .command-button {\r\n cursor: pointer;\r\n width: 30px;\r\n\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n color: white;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n\r\n &:hover {\r\n background-color: white;\r\n } \r\n \r\n .active {\r\n transform-origin: center;\r\n background-color: white;\r\n }\r\n\r\n img {\r\n &.active {\r\n background-color: white;\r\n }\r\n }\r\n }\r\n\r\n .command-button-alt {\r\n cursor: pointer;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: white;\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n &:hover {\r\n background-color: #c2c2c2;\r\n filter: invert(1);\r\n } \r\n }\r\n\r\n .command-button-alt-disabled {\r\n cursor: pointer;\r\n pointer-events: none;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: white;\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n\r\n img {\r\n filter: invert(1);\r\n }\r\n }\r\n\r\n \r\n .command-button-alt-active {\r\n cursor: pointer;\r\n pointer-events: none;\r\n width: 40px;\r\n margin-left: 5px;\r\n margin-right: 5px;\r\n .command-label {\r\n display: none;\r\n } \r\n\r\n background-color: #c2c2c2;\r\n filter: invert(1);\r\n .command-button-icon {\r\n height: 100%;\r\n width: 100%;\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n .floatLine {\r\n user-select: none;\r\n padding-left: $line-padding-left;\r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n display: grid;\r\n grid-template-columns: auto auto 2fr 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .value { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 3;\r\n background: transparent;\r\n height: 30px;\r\n margin-right: 2px;\r\n input {\r\n width: 100%;\r\n background-color: white;\r\n outline-color: transparent;\r\n border: none;\r\n outline-width: 0px;\r\n height: 24px;\r\n }\r\n }\r\n\r\n .short {\r\n grid-column: 2;\r\n \r\n display: flex;\r\n align-items: center;\r\n \r\n input {\r\n width: 27px;\r\n }\r\n \r\n input::-webkit-outer-spin-button,\r\n input::-webkit-inner-spin-button {\r\n -webkit-appearance: none;\r\n margin: 0;\r\n }\r\n\r\n input[type=number] {\r\n -moz-appearance: textfield;\r\n }\r\n }\r\n }\r\n\r\n .vector3Line {\r\n padding-left:$line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top; \r\n display: grid;\r\n .firstLine {\r\n display: grid;\r\n grid-template-columns: 1fr auto 20px;\r\n height: var(--spacingHeight);\r\n\r\n .label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .vector {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n text-align: right;\r\n opacity: 0.8;\r\n }\r\n\r\n .expand {\r\n grid-column: 3;\r\n display: grid;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .secondLine {\r\n display: grid;\r\n padding-right: 5px; \r\n border-left: 1px solid rgb(51, 122, 183);\r\n\r\n .no-right-margin {\r\n margin-right: 0;\r\n }\r\n\r\n .numeric {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n }\r\n\r\n .numeric-label {\r\n text-align: right;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center; \r\n justify-self: right;\r\n margin-right: 10px; \r\n }\r\n\r\n .numeric-value {\r\n width: 120px;\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n border: 1px solid rgb(51, 122, 183);\r\n } \r\n }\r\n }\r\n\r\n .buttonLine {\r\n height: var(--spacingHeight);\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n display: grid;\r\n align-items: center;\r\n justify-items: stretch;\r\n padding-bottom: 5px;\r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n\r\n .file-upload { \r\n background: var(--backgroundGrey);\r\n border: 1px solid #424242;\r\n margin: 5px 10px;\r\n color:white;\r\n padding: 4px 5px;\r\n opacity: 0.9;\r\n cursor: pointer;\r\n text-align: center;\r\n border-radius: 4px;\r\n }\r\n\r\n .file-upload:hover {\r\n opacity: 1.0;\r\n }\r\n\r\n .file-upload:active {\r\n transform: scale(0.98);\r\n transform-origin: 0.5 0.5;\r\n }\r\n\r\n button {\r\n background: var(--backgroundGrey);\r\n border: 1px solid #424242;\r\n margin: 5px 10px 5px 10px;\r\n color:white;\r\n padding: 4px 5px;\r\n opacity: 0.9;\r\n border-radius: 4px;\r\n }\r\n\r\n button:hover {\r\n opacity: 1.0;\r\n }\r\n\r\n button:active {\r\n background: #282828;\r\n } \r\n \r\n button:focus {\r\n border: 1px solid #424242;\r\n outline: 0px;\r\n } \r\n }\r\n\r\n .numeric {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n height: var(--spacingHeight);;\r\n display: grid;\r\n grid-template-columns: 1fr 120px auto;\r\n\r\n .numeric-label {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .number { \r\n display: flex;\r\n align-items: center;\r\n grid-column: 2;\r\n height: 10px;\r\n .input {\r\n width: calc(100% - 5px);\r\n height: 10px;\r\n }\r\n }\r\n }\r\n \r\n .checkBoxLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr ;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n min-width: 100px;\r\n margin-left: 15px;\r\n font-family: var(--labelFamily);\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .checkBox {\r\n grid-column: 3;\r\n display: flex;\r\n align-items: center;\r\n margin-left: auto;\r\n margin-right: 0px;\r\n \r\n .lbl {\r\n position: relative;\r\n display: block;\r\n height: 14px;\r\n width: 34px;\r\n border-radius: 100px;\r\n cursor: pointer;\r\n transition: all 0.3s ease;\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .lbl:after {\r\n position: absolute;\r\n left: 3px;\r\n top: 1px;\r\n display: block;\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 100px;\r\n background: #e2e2e2;\r\n box-shadow: 0px 3px 3px rgba(0,0,0,0.05);\r\n content: '';\r\n transition: all 0.15s ease;\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .lbl:active:after { \r\n transform: scale(1.15, 0.85); \r\n }\r\n\r\n .cbx:checked ~ label { \r\n background: transparent;\r\n \r\n }\r\n\r\n .cbx:checked ~ label:after {\r\n left: 20px;\r\n background: rgb(0, 0, 0);\r\n border: solid;\r\n border-width: thin;\r\n }\r\n\r\n .cbx.conflict ~ label:after {\r\n left: 10px;\r\n background: repeating-linear-gradient(45deg, transparent, transparent 5px, black 5px, black 10px);\r\n }\r\n\r\n .cbx:checked ~ label.disabled { \r\n background: rgb(0, 0, 0);\r\n cursor: pointer;\r\n }\r\n\r\n .cbx:checked ~ label.disabled:after {\r\n left: 20px;\r\n background: rgb(85, 85, 85);\r\n cursor: pointer;\r\n }\r\n\r\n .cbx ~ label.disabled {\r\n background: rgb(85, 85, 85);\r\n cursor: pointer;\r\n }\r\n\r\n .hidden { \r\n display: none; \r\n } \r\n } \r\n } \r\n\r\n .listLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto 1fr auto ;\r\n\r\n .label {\r\n grid-column: 2;\r\n display: none;\r\n align-items: center;\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .options {\r\n grid-column: 2;\r\n padding-left: 15px;\r\n display: flex;\r\n align-items: center; \r\n margin-right: 5px;\r\n\r\n select {\r\n width: 120px;\r\n height: 25px;\r\n border: transparent;\r\n border-radius: 4px;\r\n }\r\n } \r\n } \r\n \r\n .color3Line {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n display: grid;\r\n\r\n .firstLine {\r\n height: var(--spacingHeight);\r\n display: grid;\r\n grid-template-columns: auto auto 1fr;\r\n\r\n .label {\r\n grid-column: 2;\r\n padding-left: 5px;\r\n display: none;\r\n align-items: center;\r\n min-width: 15px;\r\n }\r\n \r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n img {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n \r\n .textInputLine {\r\n grid-column: 3;\r\n padding-left: 0px;\r\n }\r\n \r\n .color3 {\r\n grid-column: 2; \r\n margin-top: 6px;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 15px;\r\n \r\n input {\r\n margin-right: 5px;\r\n }\r\n }\r\n\r\n .textInputLine {\r\n .value {\r\n padding-left: 2px;\r\n }\r\n }\r\n\r\n .copy {\r\n grid-column: 4;\r\n display: none;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n color: black;\r\n img {\r\n height: 100%;\r\n width: 20px;\r\n }\r\n }\r\n\r\n .expand {\r\n grid-column: 4;\r\n display: none;\r\n align-items: center;\r\n justify-items: center;\r\n cursor: pointer;\r\n\r\n img {\r\n height: 100%;\r\n width: 20px;\r\n }\r\n }\r\n } \r\n\r\n .secondLine {\r\n display: grid;\r\n padding-right: 5px; \r\n border-left: 1px solid rgb(51, 122, 183);\r\n\r\n .numeric {\r\n display: grid;\r\n grid-template-columns: 1fr auto;\r\n }\r\n\r\n .numeric-label {\r\n text-align: right;\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center; \r\n justify-self: right;\r\n margin-right: 10px; \r\n }\r\n\r\n .numeric-value {\r\n width: 120px;\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center; \r\n border: 1px solid rgb(51, 122, 183);\r\n } \r\n } \r\n } \r\n \r\n .textLine {\r\n padding-left: $line-padding-left;\r\n padding-bottom: $line-padding-bottom;\r\n padding-top: $line-padding-top;\r\n padding-right: $line-padding-right;\r\n height: auto;\r\n display: grid;\r\n grid-template-columns: auto auto 2fr 1fr;\r\n .label {\r\n grid-column: 2;\r\n padding-left: 5px;\r\n padding-top: 4px;\r\n display: flex;\r\n align-items: left;\r\n min-width: 15px;\r\n color: #a9a9a9;\r\n font-size: 10px;\r\n font-family: \"acumin-pro-semicondensed\";\r\n }\r\n\r\n img {\r\n width: 30px;\r\n }\r\n\r\n .img {\r\n grid-column: 1;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .link-value {\r\n grid-column: 2;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n text-align: end;\r\n opacity: 0.8;\r\n margin:5px;\r\n margin-top: 6px;\r\n max-width: 140px;\r\n text-decoration: underline;\r\n cursor: pointer;\r\n }\r\n\r\n .value {\r\n display: none;\r\n grid-column: 3;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n text-align: end;\r\n opacity: 0.8;\r\n margin:5px;\r\n margin-top: 6px;\r\n max-width: 200px;\r\n -webkit-user-select: text; \r\n -moz-user-select: text; \r\n -ms-user-select: text; \r\n user-select: text; \r\n\r\n &.check {\r\n color: green;\r\n }\r\n\r\n &.uncheck {\r\n color: red;\r\n } \r\n }\r\n } \r\n\r\n}"],"sourceRoot":""}]);
10118
10118
  // Exports
10119
10119
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
10120
10120
 
@@ -10139,7 +10139,7 @@ __webpack_require__.r(__webpack_exports__);
10139
10139
 
10140
10140
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);
10141
10141
  // Module
10142
- ___CSS_LOADER_EXPORT___.push([module.i, "#ge-scene-explorer-host {\n position: absolute;\n left: 0px;\n top: 0px;\n bottom: 0px; }\n #ge-scene-explorer-host * {\n font-family: \"acumin-pro-condensed\"; }\n #ge-scene-explorer-host:focus {\n outline: none; }\n\n#ge-__resizable_base__ {\n display: none; }\n\n.ge-context-menu {\n background: #e2e2e2; }\n .ge-context-menu .react-contextmenu-item {\n padding: 10px;\n cursor: pointer; }\n .ge-context-menu .react-contextmenu-item:hover {\n background: #e2e2e2; }\n\n.ge-eact-contextmenu.context-menu.react-contextmenu--visible {\n z-index: 99;\n transform: scale(1); }\n\n#ge-sceneExplorer {\n background: #e2e2e2;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 16px \"acumin-pro-condensed\"; }\n #ge-sceneExplorer:focus {\n outline: none; }\n #ge-sceneExplorer #header {\n height: 30px;\n font-size: 16px;\n color: black;\n background: #e2e2e2;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #ge-sceneExplorer #header #logo {\n position: relative;\n grid-column: 1;\n width: 24px;\n height: 24px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #ge-sceneExplorer #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #ge-sceneExplorer #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #ge-sceneExplorer #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer #tree {\n grid-row: 2;\n overflow-x: hidden;\n overflow-y: auto; }\n #ge-sceneExplorer .filter {\n display: flex;\n align-items: stretch; }\n #ge-sceneExplorer .filter input {\n width: 100%;\n margin: 10px 40px 5px 40px;\n display: block;\n border: none;\n padding: 0;\n border-bottom: solid 1px #337ab7;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #337ab7 4%);\n background-position: -1000px 0;\n background-size: 1000px 100%;\n background-repeat: no-repeat;\n color: black; }\n #ge-sceneExplorer .filter input::placeholder {\n color: lightgray; }\n #ge-sceneExplorer .filter input:focus {\n box-shadow: none;\n outline: none;\n background-position: 0 0; }\n #ge-sceneExplorer .groupContainer {\n margin-left: 0px;\n color: black;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n align-self: center;\n display: grid;\n align-items: center; }\n #ge-sceneExplorer .groupContainer:hover {\n background: #bbbbbb; }\n #ge-sceneExplorer .groupContainer .expandableHeader {\n display: grid;\n grid-template-columns: 1fr 20px; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text {\n grid-column: 1;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text .arrow {\n grid-column: 1;\n margin-left: 0px;\n color: black;\n cursor: pointer;\n display: inline-block;\n margin-right: 6px;\n opacity: 0.5; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text .text-value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #ge-sceneExplorer .groupContainer .expandableHeader .expandAll {\n opacity: 0.5;\n grid-column: 2;\n margin-right: 10px; }\n #ge-sceneExplorer .icon {\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer .addComponent {\n display: none; }\n #ge-sceneExplorer .makeChild {\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer {\n margin-left: 0px;\n color: black;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 32px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: grid;\n grid-template-columns: 20px 1fr;\n border: 2px solid transparent; }\n #ge-sceneExplorer .itemContainer.hover {\n border: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.seAbove {\n border-top: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.seBelow {\n border-bottom: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.selected {\n background: #bfbebe;\n color: black; }\n #ge-sceneExplorer .itemContainer.dragged {\n background: transparent;\n color: black; }\n #ge-sceneExplorer .itemContainer.parent {\n background: #ffffff;\n color: black; }\n #ge-sceneExplorer .itemContainer .isNotActive {\n opacity: 0.3; }\n #ge-sceneExplorer .itemContainer .arrow {\n grid-column: 1;\n color: black;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .popup {\n width: 200px;\n visibility: hidden;\n background-color: #bbbbbb;\n color: #fff;\n border: 1px solid rgba(255, 255, 255, 0.5);\n position: absolute;\n z-index: 1;\n margin-left: -180px;\n box-sizing: border-box; }\n #ge-sceneExplorer .itemContainer .popup.show {\n visibility: visible; }\n #ge-sceneExplorer .itemContainer .popup:focus {\n outline: none; }\n #ge-sceneExplorer .itemContainer .popup .popupMenu {\n padding: 6px 5px 5px 10px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: 18px; }\n #ge-sceneExplorer .itemContainer .popup .popupMenu:hover {\n background: white;\n color: #333333; }\n #ge-sceneExplorer .itemContainer .sceneNode {\n grid-column: 2;\n margin-left: -10px;\n display: grid;\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\n align-items: center;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer .sceneNode .sceneTitle {\n grid-column: 1;\n margin-right: 5px;\n display: flex;\n align-items: center;\n height: 24px; }\n #ge-sceneExplorer .itemContainer .sceneNode .translation {\n grid-column: 2;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .translation.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .rotation {\n grid-column: 3;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .rotation.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .scaling {\n grid-column: 4;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .scaling.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .bounding {\n grid-column: 5;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .bounding.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .separator {\n grid-column: 6;\n margin-left: 5px;\n width: 5px;\n display: flex;\n align-items: center;\n height: 18px;\n border-left: solid 1px #337ab7; }\n #ge-sceneExplorer .itemContainer .sceneNode .pickingMode {\n grid-column: 7;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .pickingMode.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .refresh {\n grid-column: 8; }\n #ge-sceneExplorer .itemContainer .sceneNode .extensions {\n width: 20px;\n grid-column: 9; }\n #ge-sceneExplorer .itemContainer .adtextureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #ge-sceneExplorer .itemContainer .adtextureTools .pickingMode {\n grid-column: 2;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .adtextureTools .extensions {\n width: 20px;\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer .controlTools {\n grid-column: 2;\n display: grid;\n align-items: center; }\n #ge-sceneExplorer .itemContainer .controlTools .highlight {\n grid-column: 2; }\n #ge-sceneExplorer .itemContainer .controlTools .visibility {\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer .controlTools .extensions {\n width: 20px;\n grid-column: 4; }\n #ge-sceneExplorer .itemContainer .title {\n grid-column: 1;\n background: transparent;\n white-space: nowrap;\n overflow: hidden;\n min-width: 0;\n margin-right: 5px;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr;\n height: 24px;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer .title .titleText {\n grid-column: 1;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n outline: none; }\n", "",{"version":3,"sources":["webpack://./components/sceneExplorer/sceneExplorer.scss"],"names":[],"mappings":"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","sourcesContent":["#ge-scene-explorer-host {\r\n position: absolute;\r\n left: 0px;\r\n top:0px;\r\n bottom: 0px;\r\n * {\r\n font-family: \"acumin-pro-condensed\";\r\n }\r\n &:focus {\r\n outline: none;\r\n }\r\n}\r\n\r\n#ge-__resizable_base__ {\r\n display: none;\r\n}\r\n\r\n.ge-context-menu {\r\n background: #e2e2e2;\r\n\r\n .react-contextmenu-item {\r\n padding: 10px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #e2e2e2;\r\n }\r\n }\r\n}\r\n\r\n.ge-eact-contextmenu.context-menu.react-contextmenu--visible {\r\n z-index: 99;\r\n transform: scale(1);\r\n}\r\n\r\n#ge-sceneExplorer {\r\n background: #e2e2e2;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n display: grid;\r\n grid-template-rows: auto 1fr;\r\n font: 16px \"acumin-pro-condensed\";\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n #header {\r\n height: 30px;\r\n font-size: 16px;\r\n color: black;\r\n background: #e2e2e2;\r\n grid-row: 1;\r\n text-align: center;\r\n display: grid;\r\n grid-template-columns: 30px 1fr 50px; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n\r\n #logo {\r\n position: relative;\r\n grid-column: 1; \r\n width: 24px;\r\n height: 24px;\r\n left:0;\r\n display: flex;\r\n align-self: center; \r\n justify-self: center;\r\n } \r\n\r\n #title {\r\n grid-column: 2; \r\n display: grid;\r\n align-items: center; \r\n text-align: center;\r\n }\r\n\r\n #commands {\r\n grid-column: 3; \r\n display: grid;\r\n align-items: center; \r\n grid-template-columns: 1fr 1fr; \r\n \r\n .expand {\r\n grid-column: 1;\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer; \r\n }\r\n\r\n .close {\r\n grid-column: 2;\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer; \r\n } \r\n }\r\n }\r\n\r\n #tree {\r\n grid-row: 2; \r\n\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n\r\n .filter {\r\n display: flex;\r\n align-items: stretch;\r\n\r\n input {\r\n width: 100%;\r\n margin: 10px 40px 5px 40px;\r\n display: block;\r\n border: none;\r\n padding: 0;\r\n border-bottom: solid 1px rgb(51, 122, 183);\r\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);\r\n background-position: -1000px 0;\r\n background-size: 1000px 100%;\r\n background-repeat: no-repeat; \r\n color:black; \r\n }\r\n\r\n input::placeholder {\r\n color: lightgray;\r\n }\r\n\r\n input:focus {\r\n box-shadow: none;\r\n outline: none;\r\n background-position: 0 0;\r\n }\r\n }\r\n\r\n .groupContainer {\r\n margin-left: 0px;\r\n color: black;\r\n margin-top: 0px;\r\n margin-bottom: 0px;\r\n height: 24px; \r\n\r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n \r\n align-self: center; \r\n display: grid;\r\n align-items: center; \r\n\r\n &:hover {\r\n background: #bbbbbb;\r\n }\r\n\r\n .expandableHeader {\r\n display: grid;\r\n grid-template-columns: 1fr 20px;\r\n\r\n .text {\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-columns: 20px 1fr;\r\n\r\n .arrow {\r\n grid-column: 1;\r\n margin-left: 0px;\r\n color: black;\r\n cursor: pointer;\r\n display: inline-block;\r\n margin-right: 6px;\r\n opacity: 0.5;\r\n }\r\n\r\n .text-value {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n\r\n .expandAll { \r\n opacity: 0.5;\r\n grid-column: 2;\r\n margin-right: 10px; \r\n }\r\n }\r\n \r\n\r\n }\r\n\r\n .icon {\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer;\r\n }\r\n\r\n .addComponent {\r\n display: none;\r\n }\r\n\r\n .makeChild{\r\n grid-column: 3;\r\n }\r\n\r\n .itemContainer {\r\n margin-left: 0px;\r\n color: black;\r\n margin-top: 0px;\r\n margin-bottom: 0px;\r\n height: 32px; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n display: grid;\r\n grid-template-columns: 20px 1fr;\r\n border: 2px solid transparent;\r\n &.hover {\r\n border: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n\r\n &.seAbove {\r\n border-top: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n &.seBelow {\r\n border-bottom: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n\r\n &.selected {\r\n \r\n background: #bfbebe;\r\n color: black;\r\n }\r\n\r\n &.dragged {\r\n background: transparent;\r\n color: black;\r\n }\r\n\r\n &.parent {\r\n background: #ffffff ;\r\n color: black;\r\n }\r\n \r\n .isNotActive {\r\n opacity: 0.3;\r\n }\r\n .arrow {\r\n grid-column: 1;\r\n color: black;\r\n opacity: 0.6;\r\n }\r\n\r\n .popup {\r\n width: 200px;\r\n visibility: hidden;\r\n background-color: #bbbbbb;\r\n color: #fff;\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n position: absolute;\r\n z-index: 1;\r\n margin-left: -180px;\r\n box-sizing: border-box;\r\n\r\n &.show {\r\n visibility: visible;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n .popupMenu {\r\n padding: 6px 5px 5px 10px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n height: 18px;\r\n \r\n\r\n &:hover {\r\n background: white;\r\n color: #333333;\r\n }\r\n }\r\n }\r\n\r\n .sceneNode {\r\n grid-column: 2;\r\n margin-left: -10px;\r\n display: grid;\r\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\r\n align-items: center;\r\n cursor: pointer; \r\n\r\n .sceneTitle {\r\n grid-column: 1;\r\n margin-right: 5px; \r\n display: flex;\r\n align-items: center; \r\n height: 24px; \r\n } \r\n\r\n .translation {\r\n grid-column: 2;\r\n opacity: 0.6;\r\n \r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .rotation {\r\n grid-column: 3;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .scaling {\r\n grid-column: 4;\r\n opacity: 0.6;\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n \r\n .bounding {\r\n grid-column: 5;\r\n opacity: 0.6;\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .separator {\r\n grid-column: 6;\r\n margin-left: 5px; \r\n width: 5px;\r\n display: flex;\r\n align-items: center; \r\n height: 18px; \r\n border-left: solid 1px rgb(51, 122, 183);\r\n }\r\n\r\n .pickingMode {\r\n grid-column: 7;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .refresh {\r\n grid-column: 8;\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 9;\r\n }\r\n }\r\n \r\n .adtextureTools {\r\n grid-column: 2;\r\n display: grid;\r\n grid-template-columns: 1fr 20px auto 5px;\r\n align-items: center;\r\n \r\n .pickingMode {\r\n grid-column: 2;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 3;\r\n }\r\n } \r\n\r\n .controlTools {\r\n grid-column: 2;\r\n display: grid;\r\n align-items: center;\r\n\r\n .highlight {\r\n grid-column: 2;\r\n }\r\n\r\n .visibility {\r\n grid-column: 3;\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 4;\r\n }\r\n } \r\n \r\n .title {\r\n grid-column: 1;\r\n background: transparent;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n min-width: 0;\r\n margin-right: 5px; \r\n display: grid;\r\n align-items: center; \r\n grid-template-columns: 1fr; \r\n height: 24px;\r\n cursor: pointer;\r\n\r\n .titleText {\r\n grid-column: 1;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n outline: none;\r\n } \r\n \r\n }\r\n }\r\n}"],"sourceRoot":""}]);
10142
+ ___CSS_LOADER_EXPORT___.push([module.i, "#ge-scene-explorer-host {\n position: absolute;\n left: 0px;\n top: 0px;\n bottom: 0px; }\n #ge-scene-explorer-host * {\n font-family: \"acumin-pro-condensed\"; }\n #ge-scene-explorer-host:focus {\n outline: none; }\n\n#ge-__resizable_base__ {\n display: none; }\n\n.ge-context-menu {\n background: #e2e2e2; }\n .ge-context-menu .react-contextmenu-item {\n padding: 10px;\n cursor: pointer; }\n .ge-context-menu .react-contextmenu-item:hover {\n background: #e2e2e2; }\n\n.ge-eact-contextmenu.context-menu.react-contextmenu--visible {\n z-index: 99;\n transform: scale(1); }\n\n#ge-sceneExplorer {\n background: #e2e2e2;\n height: 100%;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-rows: auto 1fr;\n font: 16px \"acumin-pro-condensed\"; }\n #ge-sceneExplorer:focus {\n outline: none; }\n #ge-sceneExplorer #header {\n height: 30px;\n font-size: 16px;\n color: black;\n background: #e2e2e2;\n grid-row: 1;\n text-align: center;\n display: grid;\n grid-template-columns: 30px 1fr 50px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n #ge-sceneExplorer #header #logo {\n position: relative;\n grid-column: 1;\n width: 24px;\n height: 24px;\n left: 0;\n display: flex;\n align-self: center;\n justify-self: center; }\n #ge-sceneExplorer #header #title {\n grid-column: 2;\n display: grid;\n align-items: center;\n text-align: center; }\n #ge-sceneExplorer #header #commands {\n grid-column: 3;\n display: grid;\n align-items: center;\n grid-template-columns: 1fr 1fr; }\n #ge-sceneExplorer #header #commands .expand {\n grid-column: 1;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer #header #commands .close {\n grid-column: 2;\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer #tree {\n grid-row: 2;\n overflow-x: hidden;\n overflow-y: auto; }\n #ge-sceneExplorer .filter {\n display: flex;\n align-items: stretch; }\n #ge-sceneExplorer .filter input {\n width: 100%;\n margin: 10px 40px 5px 40px;\n display: block;\n border: none;\n padding: 0;\n border-bottom: solid 1px #337ab7;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, #337ab7 4%);\n background-position: -1000px 0;\n background-size: 1000px 100%;\n background-repeat: no-repeat;\n color: black; }\n #ge-sceneExplorer .filter input::placeholder {\n color: lightgray; }\n #ge-sceneExplorer .filter input:focus {\n box-shadow: none;\n outline: none;\n background-position: 0 0; }\n #ge-sceneExplorer .groupContainer {\n margin-left: 0px;\n color: black;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 24px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n align-self: center;\n display: grid;\n align-items: center; }\n #ge-sceneExplorer .groupContainer:hover {\n background: #bbbbbb; }\n #ge-sceneExplorer .groupContainer .expandableHeader {\n display: grid;\n grid-template-columns: 1fr 20px; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text {\n grid-column: 1;\n display: grid;\n grid-template-columns: 20px 1fr; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text .arrow {\n grid-column: 1;\n margin-left: 0px;\n color: black;\n cursor: pointer;\n display: inline-block;\n margin-right: 6px;\n opacity: 0.5; }\n #ge-sceneExplorer .groupContainer .expandableHeader .text .text-value {\n grid-column: 2;\n display: flex;\n align-items: center; }\n #ge-sceneExplorer .groupContainer .expandableHeader .expandAll {\n opacity: 0.5;\n grid-column: 2;\n margin-right: 10px; }\n #ge-sceneExplorer .icon {\n display: grid;\n align-items: center;\n justify-items: center;\n cursor: pointer; }\n #ge-sceneExplorer .addComponent {\n display: none; }\n #ge-sceneExplorer .makeChild {\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer {\n margin-left: 0px;\n color: black;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 32px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: grid;\n grid-template-columns: 20px 1fr;\n border: 2px solid transparent; }\n #ge-sceneExplorer .itemContainer.hover {\n border: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.seAbove {\n border-top: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.seBelow {\n border-bottom: 2px solid #527089;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer.selected {\n background: #bfbebe;\n color: black; }\n #ge-sceneExplorer .itemContainer.dragged {\n background: transparent;\n color: black; }\n #ge-sceneExplorer .itemContainer.parent {\n background: #ffffff;\n color: black; }\n #ge-sceneExplorer .itemContainer .isNotActive {\n opacity: 0.3; }\n #ge-sceneExplorer .itemContainer .arrow {\n grid-column: 1;\n color: black;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .popup {\n width: 200px;\n visibility: hidden;\n background-color: #bbbbbb;\n color: #fff;\n border: 1px solid rgba(255, 255, 255, 0.5);\n position: absolute;\n z-index: 1;\n margin-left: -180px;\n box-sizing: border-box; }\n #ge-sceneExplorer .itemContainer .popup.show {\n visibility: visible; }\n #ge-sceneExplorer .itemContainer .popup:focus {\n outline: none; }\n #ge-sceneExplorer .itemContainer .popup .popupMenu {\n padding: 6px 5px 5px 10px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n height: 18px; }\n #ge-sceneExplorer .itemContainer .popup .popupMenu:hover {\n background: white;\n color: #333333; }\n #ge-sceneExplorer .itemContainer .sceneNode {\n grid-column: 2;\n margin-left: -10px;\n display: grid;\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\n align-items: center;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer .sceneNode .sceneTitle {\n grid-column: 1;\n margin-right: 5px;\n display: flex;\n align-items: center;\n height: 24px; }\n #ge-sceneExplorer .itemContainer .sceneNode .translation {\n grid-column: 2;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .translation.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .rotation {\n grid-column: 3;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .rotation.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .scaling {\n grid-column: 4;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .scaling.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .bounding {\n grid-column: 5;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .bounding.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .separator {\n grid-column: 6;\n margin-left: 5px;\n width: 5px;\n display: flex;\n align-items: center;\n height: 18px;\n border-left: solid 1px #337ab7; }\n #ge-sceneExplorer .itemContainer .sceneNode .pickingMode {\n grid-column: 7;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .sceneNode .pickingMode.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .sceneNode .refresh {\n grid-column: 8; }\n #ge-sceneExplorer .itemContainer .sceneNode .extensions {\n width: 20px;\n grid-column: 9; }\n #ge-sceneExplorer .itemContainer .adtextureTools {\n grid-column: 2;\n display: grid;\n grid-template-columns: 1fr 20px auto 5px;\n align-items: center; }\n #ge-sceneExplorer .itemContainer .adtextureTools .pickingMode {\n grid-column: 2;\n opacity: 0.6; }\n #ge-sceneExplorer .itemContainer .adtextureTools .pickingMode.selected {\n opacity: 1; }\n #ge-sceneExplorer .itemContainer .adtextureTools .extensions {\n width: 20px;\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer .controlTools {\n grid-column: 2;\n display: grid;\n align-items: center; }\n #ge-sceneExplorer .itemContainer .controlTools .highlight {\n grid-column: 2; }\n #ge-sceneExplorer .itemContainer .controlTools .visibility {\n grid-column: 3; }\n #ge-sceneExplorer .itemContainer .controlTools .extensions {\n width: 20px;\n grid-column: 4; }\n #ge-sceneExplorer .itemContainer .title {\n background: transparent;\n white-space: nowrap;\n overflow: hidden;\n min-width: 0;\n margin-right: 5px;\n align-items: center;\n height: 24px;\n cursor: pointer; }\n #ge-sceneExplorer .itemContainer .title .titleText {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n outline: none; }\n", "",{"version":3,"sources":["webpack://./components/sceneExplorer/sceneExplorer.scss"],"names":[],"mappings":"AAAA;EACI,kBAAkB;EAClB,SAAS;EACT,QAAO;EACP,WAAW,EAAA;EAJf;IAMY,mCAAmC,EAAA;EAN/C;IASQ,aAAa,EAAA;;AAIrB;EACI,aAAa,EAAA;;AAGjB;EACI,mBAAmB,EAAA;EADvB;IAIQ,aAAa;IACb,eAAe,EAAA;IALvB;MAQY,mBAAmB,EAAA;;AAK/B;EACI,WAAW;EACX,mBAAmB,EAAA;;AAGvB;EACI,mBAAmB;EACnB,YAAY;EACZ,SAAS;EACT,UAAU;EACV,aAAa;EACb,4BAA4B;EAC5B,iCAAiC,EAAA;EAPrC;IAUQ,aAAa,EAAA;EAVrB;IAcQ,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,mBAAmB;IACnB,WAAW;IACX,kBAAkB;IAClB,aAAa;IACb,oCAAoC;IACpC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB,EAAA;IAzBzB;MA4BY,kBAAkB;MAClB,cAAc;MACd,WAAW;MACX,YAAY;MACZ,OAAM;MACN,aAAa;MACb,kBAAkB;MAClB,oBAAoB,EAAA;IAnChC;MAuCY,cAAc;MACd,aAAa;MACb,mBAAmB;MACnB,kBAAkB,EAAA;IA1C9B;MA8CY,cAAc;MACd,aAAa;MACb,mBAAmB;MACnB,8BAA8B,EAAA;MAjD1C;QAoDgB,cAAc;QACd,aAAa;QACb,mBAAmB;QACnB,qBAAqB;QACrB,eAAe,EAAA;MAxD/B;QA4DgB,cAAc;QACd,aAAa;QACb,mBAAmB;QACnB,qBAAqB;QACrB,eAAe,EAAA;EAhE/B;IAsEO,WAAW;IAEX,kBAAkB;IAClB,gBAAgB,EAAA;EAzEvB;IA6EQ,aAAa;IACb,oBAAoB,EAAA;IA9E5B;MAiFY,WAAW;MACX,0BAA0B;MAC1B,cAAc;MACd,YAAY;MACZ,UAAU;MACV,gCAA0C;MAC1C,8EAAwF;MACxF,8BAA8B;MAC9B,4BAA4B;MAC5B,4BAA4B;MAC5B,YAAW,EAAA;IA3FvB;MA+FY,gBAAgB,EAAA;IA/F5B;MAmGY,gBAAgB;MAChB,aAAa;MACb,wBAAwB,EAAA;EArGpC;IA0GQ,gBAAgB;IAChB,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,YAAY;IAEZ,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IAEjB,kBAAkB;IAClB,aAAa;IACb,mBAAmB,EAAA;IAvH3B;MA0HY,mBAAmB,EAAA;IA1H/B;MA8HY,aAAa;MACb,+BAA+B,EAAA;MA/H3C;QAkIgB,cAAc;QACd,aAAa;QACb,+BAA+B,EAAA;QApI/C;UAuIoB,cAAc;UACd,gBAAgB;UAChB,YAAY;UACZ,eAAe;UACf,qBAAqB;UACrB,iBAAiB;UACjB,YAAY,EAAA;QA7IhC;UAiJoB,cAAc;UACd,aAAa;UACb,mBAAmB,EAAA;MAnJvC;QAwJgB,YAAY;QACZ,cAAc;QACd,kBAAkB,EAAA;EA1JlC;IAkKQ,aAAa;IACb,mBAAmB;IACnB,qBAAqB;IACrB,eAAe,EAAA;EArKvB;IAyKQ,aAAa,EAAA;EAzKrB;IA6KO,cAAc,EAAA;EA7KrB;IAiLQ,gBAAgB;IAChB,YAAY;IACZ,eAAe;IACf,kBAAkB;IAClB,YAAY;IACZ,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,+BAA+B;IAC/B,6BAA6B,EAAA;IA5LrC;MA8LY,yBAAyB;MACzB,eAAe,EAAA;IA/L3B;MAmMY,6BAA6B;MAC7B,eAAe,EAAA;IApM3B;MAuMY,gCAAgC;MAChC,eAAe,EAAA;IAxM3B;MA6MY,mBAAmB;MACnB,YAAY,EAAA;IA9MxB;MAkNY,uBAAuB;MACvB,YAAY,EAAA;IAnNxB;MAuNY,mBAAmB;MACnB,YAAY,EAAA;IAxNxB;MA4NY,YAAY,EAAA;IA5NxB;MA+NY,cAAc;MACd,YAAY;MACZ,YAAY,EAAA;IAjOxB;MAqOY,YAAY;MACZ,kBAAkB;MAClB,yBAAyB;MACzB,WAAW;MACX,0CAA0C;MAC1C,kBAAkB;MAClB,UAAU;MACV,mBAAmB;MACnB,sBAAsB,EAAA;MA7OlC;QAgPgB,mBAAmB,EAAA;MAhPnC;QAoPgB,aAAa,EAAA;MApP7B;QAwPgB,yBAAyB;QACzB,gBAAgB;QAChB,mBAAmB;QACnB,uBAAuB;QACvB,YAAY,EAAA;QA5P5B;UAgQoB,iBAAiB;UACjB,cAAc,EAAA;IAjQlC;MAuQY,cAAc;MACd,kBAAkB;MAClB,aAAa;MACb,sEAAsE;MACtE,mBAAmB;MACnB,eAAe,EAAA;MA5Q3B;QA+QgB,cAAc;QACd,iBAAiB;QACjB,aAAa;QACb,mBAAmB;QACnB,YAAY,EAAA;MAnR5B;QAuRgB,cAAc;QACd,YAAY,EAAA;QAxR5B;UA2RoB,UAAU,EAAA;MA3R9B;QAgSgB,cAAc;QACd,YAAY,EAAA;QAjS5B;UAoSoB,UAAU,EAAA;MApS9B;QAySgB,cAAc;QACd,YAAY,EAAA;QA1S5B;UA4SoB,UAAU,EAAA;MA5S9B;QAiTgB,cAAc;QACd,YAAY,EAAA;QAlT5B;UAoToB,UAAU,EAAA;MApT9B;QAyTgB,cAAc;QACd,gBAAgB;QAChB,UAAU;QACV,aAAa;QACb,mBAAmB;QACnB,YAAY;QACZ,8BAAwC,EAAA;MA/TxD;QAmUgB,cAAc;QACd,YAAY,EAAA;QApU5B;UAuUoB,UAAU,EAAA;MAvU9B;QA4UgB,cAAc,EAAA;MA5U9B;QAgVgB,WAAW;QACX,cAAc,EAAA;IAjV9B;MAsVY,cAAc;MACd,aAAa;MACb,wCAAwC;MACxC,mBAAmB,EAAA;MAzV/B;QA4VgB,cAAc;QACd,YAAY,EAAA;QA7V5B;UAgWoB,UAAU,EAAA;MAhW9B;QAqWgB,WAAW;QACX,cAAc,EAAA;IAtW9B;MA2WY,cAAc;MACd,aAAa;MACb,mBAAmB,EAAA;MA7W/B;QAgXgB,cAAc,EAAA;MAhX9B;QAoXgB,cAAc,EAAA;MApX9B;QAwXgB,WAAW;QACX,cAAc,EAAA;IAzX9B;MA8XY,uBAAuB;MACvB,mBAAmB;MACnB,gBAAgB;MAChB,YAAY;MACZ,iBAAiB;MACjB,mBAAmB;MACnB,YAAY;MACZ,eAAe,EAAA;MArY3B;QAwYgB,mBAAmB;QACnB,uBAAuB;QACvB,gBAAgB;QAChB,aAAa,EAAA","sourcesContent":["#ge-scene-explorer-host {\r\n position: absolute;\r\n left: 0px;\r\n top:0px;\r\n bottom: 0px;\r\n * {\r\n font-family: \"acumin-pro-condensed\";\r\n }\r\n &:focus {\r\n outline: none;\r\n }\r\n}\r\n\r\n#ge-__resizable_base__ {\r\n display: none;\r\n}\r\n\r\n.ge-context-menu {\r\n background: #e2e2e2;\r\n\r\n .react-contextmenu-item {\r\n padding: 10px;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: #e2e2e2;\r\n }\r\n }\r\n}\r\n\r\n.ge-eact-contextmenu.context-menu.react-contextmenu--visible {\r\n z-index: 99;\r\n transform: scale(1);\r\n}\r\n\r\n#ge-sceneExplorer {\r\n background: #e2e2e2;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n display: grid;\r\n grid-template-rows: auto 1fr;\r\n font: 16px \"acumin-pro-condensed\";\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n #header {\r\n height: 30px;\r\n font-size: 16px;\r\n color: black;\r\n background: #e2e2e2;\r\n grid-row: 1;\r\n text-align: center;\r\n display: grid;\r\n grid-template-columns: 30px 1fr 50px; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n\r\n #logo {\r\n position: relative;\r\n grid-column: 1; \r\n width: 24px;\r\n height: 24px;\r\n left:0;\r\n display: flex;\r\n align-self: center; \r\n justify-self: center;\r\n } \r\n\r\n #title {\r\n grid-column: 2; \r\n display: grid;\r\n align-items: center; \r\n text-align: center;\r\n }\r\n\r\n #commands {\r\n grid-column: 3; \r\n display: grid;\r\n align-items: center; \r\n grid-template-columns: 1fr 1fr; \r\n \r\n .expand {\r\n grid-column: 1;\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer; \r\n }\r\n\r\n .close {\r\n grid-column: 2;\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer; \r\n } \r\n }\r\n }\r\n\r\n #tree {\r\n grid-row: 2; \r\n\r\n overflow-x: hidden;\r\n overflow-y: auto;\r\n }\r\n\r\n .filter {\r\n display: flex;\r\n align-items: stretch;\r\n\r\n input {\r\n width: 100%;\r\n margin: 10px 40px 5px 40px;\r\n display: block;\r\n border: none;\r\n padding: 0;\r\n border-bottom: solid 1px rgb(51, 122, 183);\r\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 96%, rgb(51, 122, 183) 4%);\r\n background-position: -1000px 0;\r\n background-size: 1000px 100%;\r\n background-repeat: no-repeat; \r\n color:black; \r\n }\r\n\r\n input::placeholder {\r\n color: lightgray;\r\n }\r\n\r\n input:focus {\r\n box-shadow: none;\r\n outline: none;\r\n background-position: 0 0;\r\n }\r\n }\r\n\r\n .groupContainer {\r\n margin-left: 0px;\r\n color: black;\r\n margin-top: 0px;\r\n margin-bottom: 0px;\r\n height: 24px; \r\n\r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none; \r\n \r\n align-self: center; \r\n display: grid;\r\n align-items: center; \r\n\r\n &:hover {\r\n background: #bbbbbb;\r\n }\r\n\r\n .expandableHeader {\r\n display: grid;\r\n grid-template-columns: 1fr 20px;\r\n\r\n .text {\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-columns: 20px 1fr;\r\n\r\n .arrow {\r\n grid-column: 1;\r\n margin-left: 0px;\r\n color: black;\r\n cursor: pointer;\r\n display: inline-block;\r\n margin-right: 6px;\r\n opacity: 0.5;\r\n }\r\n\r\n .text-value {\r\n grid-column: 2;\r\n display: flex;\r\n align-items: center;\r\n }\r\n }\r\n\r\n .expandAll { \r\n opacity: 0.5;\r\n grid-column: 2;\r\n margin-right: 10px; \r\n }\r\n }\r\n \r\n\r\n }\r\n\r\n .icon {\r\n display: grid;\r\n align-items: center; \r\n justify-items: center;\r\n cursor: pointer;\r\n }\r\n\r\n .addComponent {\r\n display: none;\r\n }\r\n\r\n .makeChild{\r\n grid-column: 3;\r\n }\r\n\r\n .itemContainer {\r\n margin-left: 0px;\r\n color: black;\r\n margin-top: 0px;\r\n margin-bottom: 0px;\r\n height: 32px; \r\n -webkit-user-select: none; \r\n -moz-user-select: none; \r\n -ms-user-select: none; \r\n user-select: none;\r\n display: grid;\r\n grid-template-columns: 20px 1fr;\r\n border: 2px solid transparent;\r\n &.hover {\r\n border: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n\r\n &.seAbove {\r\n border-top: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n &.seBelow {\r\n border-bottom: 2px solid #527089;\r\n cursor: pointer;\r\n }\r\n\r\n &.selected {\r\n \r\n background: #bfbebe;\r\n color: black;\r\n }\r\n\r\n &.dragged {\r\n background: transparent;\r\n color: black;\r\n }\r\n\r\n &.parent {\r\n background: #ffffff;\r\n color: black;\r\n }\r\n \r\n .isNotActive {\r\n opacity: 0.3;\r\n }\r\n .arrow {\r\n grid-column: 1;\r\n color: black;\r\n opacity: 0.6;\r\n }\r\n\r\n .popup {\r\n width: 200px;\r\n visibility: hidden;\r\n background-color: #bbbbbb;\r\n color: #fff;\r\n border: 1px solid rgba(255, 255, 255, 0.5);\r\n position: absolute;\r\n z-index: 1;\r\n margin-left: -180px;\r\n box-sizing: border-box;\r\n\r\n &.show {\r\n visibility: visible;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n .popupMenu {\r\n padding: 6px 5px 5px 10px;\r\n overflow: hidden;\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n height: 18px;\r\n \r\n\r\n &:hover {\r\n background: white;\r\n color: #333333;\r\n }\r\n }\r\n }\r\n\r\n .sceneNode {\r\n grid-column: 2;\r\n margin-left: -10px;\r\n display: grid;\r\n grid-template-columns: 1fr 20px 20px 20px 20px 10px 20px 20px auto 5px;\r\n align-items: center;\r\n cursor: pointer; \r\n\r\n .sceneTitle {\r\n grid-column: 1;\r\n margin-right: 5px; \r\n display: flex;\r\n align-items: center; \r\n height: 24px; \r\n } \r\n\r\n .translation {\r\n grid-column: 2;\r\n opacity: 0.6;\r\n \r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .rotation {\r\n grid-column: 3;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .scaling {\r\n grid-column: 4;\r\n opacity: 0.6;\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n \r\n .bounding {\r\n grid-column: 5;\r\n opacity: 0.6;\r\n &.selected {\r\n opacity: 1;\r\n } \r\n }\r\n\r\n .separator {\r\n grid-column: 6;\r\n margin-left: 5px; \r\n width: 5px;\r\n display: flex;\r\n align-items: center; \r\n height: 18px; \r\n border-left: solid 1px rgb(51, 122, 183);\r\n }\r\n\r\n .pickingMode {\r\n grid-column: 7;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .refresh {\r\n grid-column: 8;\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 9;\r\n }\r\n }\r\n \r\n .adtextureTools {\r\n grid-column: 2;\r\n display: grid;\r\n grid-template-columns: 1fr 20px auto 5px;\r\n align-items: center;\r\n \r\n .pickingMode {\r\n grid-column: 2;\r\n opacity: 0.6;\r\n\r\n &.selected {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 3;\r\n }\r\n } \r\n\r\n .controlTools {\r\n grid-column: 2;\r\n display: grid;\r\n align-items: center;\r\n\r\n .highlight {\r\n grid-column: 2;\r\n }\r\n\r\n .visibility {\r\n grid-column: 3;\r\n }\r\n\r\n .extensions {\r\n width: 20px;\r\n grid-column: 4;\r\n }\r\n } \r\n \r\n .title {\r\n background: transparent;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n min-width: 0;\r\n margin-right: 5px;\r\n align-items: center; \r\n height: 24px;\r\n cursor: pointer;\r\n\r\n .titleText {\r\n white-space: nowrap;\r\n text-overflow: ellipsis;\r\n overflow: hidden;\r\n outline: none;\r\n } \r\n \r\n }\r\n }\r\n}"],"sourceRoot":""}]);
10143
10143
  // Exports
10144
10144
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
10145
10145
 
@@ -10189,7 +10189,7 @@ __webpack_require__.r(__webpack_exports__);
10189
10189
 
10190
10190
  var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default.a);
10191
10191
  // Module
10192
- ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --blackBarHeight: 55px; }\n\n#gui-editor-workbench-root {\n display: grid;\n grid-template-rows: calc(100% - 55px);\n height: 100%;\n width: 100%;\n background: #e2e2e2;\n font: 14px \"acumin-pro-condensed\"; }\n\n.wait-screen {\n display: grid;\n justify-content: center;\n align-content: center;\n height: 100%;\n width: 100%;\n background: #464646;\n opacity: 0.95;\n color: white;\n font: 24px \"acumin-pro-condensed\";\n position: absolute;\n top: 0;\n left: 0; }\n .wait-screen.hidden {\n visibility: hidden; }\n\n#leftGrab {\n grid-row: 1 / span 2;\n grid-column: 2;\n cursor: ew-resize; }\n\n#rightGrab {\n grid-row: 1 / span 2;\n grid-column: 5;\n cursor: ew-resize; }\n\n#toolbarGrab {\n background: #333333;\n grid-row: 1 / span 3;\n grid-column: 3;\n height: 100%; }\n #toolbarGrab .blackLine {\n height: 5px;\n background: black; }\n #toolbarGrab .toolbar-label {\n color: white;\n font-size: 18px;\n display: grid;\n align-items: center;\n cursor: pointer;\n user-select: none;\n grid-template-columns: 1fr 20px;\n grid-template-rows: 100%;\n position: relative; }\n #toolbarGrab .toolbar-label.active {\n font-weight: bold;\n font-size: 20px; }\n #toolbarGrab .toolbar-label:hover {\n background: var(--selectionGrey); }\n #toolbarGrab .toolbar-label:hover .sub-items {\n display: block; }\n #toolbarGrab .toolbar-icon {\n width: 40px;\n height: 40px; }\n\n.diagram-container {\n position: relative;\n display: grid;\n grid-row: 1;\n grid-column: 4;\n background: #CCCCCC;\n width: 100%;\n height: 100%;\n overflow: hidden; }\n .diagram-container .diagram {\n display: none;\n width: 100%;\n height: 100%; }\n\n.right-panel {\n grid-row: 1 / span 2;\n grid-column: 6;\n display: grid;\n grid-template-rows: 1fr 40px auto 40px;\n grid-template-columns: 100%;\n height: calc(100% - var(--blackBarHeight));\n overflow-y: auto; }\n .right-panel #propertyTab {\n grid-row: 1;\n grid-column: 1; }\n .right-panel .button {\n display: grid;\n justify-content: center;\n align-content: center;\n height: auto;\n width: calc(100% / 7);\n cursor: pointer; }\n .right-panel .button:hover {\n background: #337ab7;\n color: white;\n opacity: 0.8; }\n .right-panel .button.selected {\n background: #337ab7;\n color: white; }\n .right-panel .button.align {\n justify-content: stretch;\n text-align: center; }\n\n.blocker {\n visibility: hidden;\n position: absolute;\n width: calc(100% - 40px);\n height: 100%;\n top: 0;\n left: 0;\n background: rgba(20, 20, 20, 0.95);\n font-family: \"acumin-pro-condensed\";\n color: white;\n font-size: 24px;\n display: grid;\n align-content: center;\n justify-content: center;\n user-select: none;\n padding: 20px;\n text-align: center; }\n\n#log-console {\n grid-row: 2;\n grid-column: 4;\n display: none; }\n\n.dialog-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: grid;\n font-family: \"acumin-pro-condensed\";\n top: 0; }\n .dialog-container .dialog {\n align-self: center;\n justify-self: center;\n min-height: 140px;\n max-width: 400px;\n border-radius: 10px;\n background: white;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: calc(100% - 50px) 50px; }\n .dialog-container .dialog .dialog-message {\n grid-row: 1;\n grid-column: 1;\n margin-top: 20px;\n padding: 10px;\n font-size: 18px;\n color: black; }\n .dialog-container .dialog .dialog-buttons {\n grid-row: 2;\n grid-column: 1;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%;\n color: white; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok {\n cursor: pointer;\n justify-self: center;\n background: green;\n min-width: 80px;\n justify-content: center;\n display: grid;\n align-content: center;\n align-self: center;\n height: 35px;\n border-radius: 10px; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok:hover {\n opacity: 0.8; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok.error {\n background: red; }\n\n.gizmo .bounding-box-line {\n background-color: black;\n position: absolute;\n line-height: 1px;\n height: 1px;\n pointer-events: none; }\n\n.gizmo .scale-point-container {\n position: absolute;\n width: 30px;\n height: 30px; }\n .gizmo .scale-point-container .scale-point {\n top: 10px;\n left: 10px;\n position: absolute;\n width: 10px;\n height: 10px;\n background: transparent;\n outline: #7d7d7d 2px solid; }\n .gizmo .scale-point-container .rotate-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n .gizmo .scale-point-container .scale-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n\n.gizmo .pivot-point {\n width: 30px;\n height: 30px;\n background: transparent;\n position: absolute; }\n\n#workbench-canvas {\n position: relative; }\n\n.artboard-stroke {\n outline: 1px solid black;\n position: absolute;\n z-index: 5;\n pointer-events: none; }\n\n.artboard-background {\n position: absolute;\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50%/10px 10px;\n width: 100%;\n height: 100%; }\n", "",{"version":3,"sources":["webpack://./main.scss"],"names":[],"mappings":"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","sourcesContent":[":root {\r\n --blackBarHeight: 55px;\r\n}\r\n\r\n#gui-editor-workbench-root {\r\n display: grid;\r\n grid-template-rows: calc(100% - 55px);\r\n height: 100%;\r\n width: 100%;\r\n background: #e2e2e2;\r\n font: 14px \"acumin-pro-condensed\"; \r\n}\r\n\r\n.wait-screen {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: 100%;\r\n width: 100%;\r\n background: #464646;\r\n opacity: 0.95;\r\n color:white;\r\n font: 24px \"acumin-pro-condensed\"; \r\n position: absolute;\r\n top: 0;\r\n left: 0; \r\n\r\n &.hidden {\r\n visibility: hidden;\r\n }\r\n}\r\n\r\n#leftGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 2;\r\n cursor: ew-resize;\r\n}\r\n\r\n#rightGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 5;\r\n cursor: ew-resize;\r\n}\r\n\r\n\r\n#toolbarGrab {\r\n background: #333333;\r\n grid-row: 1 / span 3;\r\n grid-column: 3;\r\n height: 100%;\r\n\r\n .blackLine {\r\n height: 5px;\r\n background: black;\r\n }\r\n .toolbar-label {\r\n color:white;\r\n font-size: 18px;\r\n display: grid;\r\n align-items: center;\r\n cursor: pointer;\r\n user-select: none;\r\n grid-template-columns: 1fr 20px;\r\n grid-template-rows: 100%;\r\n position: relative;\r\n\r\n &.active {\r\n font-weight: bold;\r\n font-size: 20px;\r\n }\r\n\r\n &:hover {\r\n background: var(--selectionGrey);\r\n .sub-items {\r\n display: block;\r\n }\r\n } \r\n }\r\n .toolbar-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n}\r\n\r\n.diagram-container {\r\n position: relative;\r\n display: grid;\r\n grid-row: 1;\r\n grid-column: 4;\r\n background: #CCCCCC;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n\r\n .diagram {\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n\r\n.right-panel {\r\n grid-row: 1 / span 2;\r\n grid-column: 6;\r\n display: grid;\r\n grid-template-rows: 1fr 40px auto 40px;\r\n grid-template-columns: 100%;\r\n height: calc(100% - var(--blackBarHeight));\r\n overflow-y: auto;\r\n\r\n #propertyTab {\r\n grid-row: 1;\r\n grid-column: 1;\r\n } \r\n \r\n .button {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: auto;\r\n width: calc(100% / 7);\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n opacity: 0.8;\r\n }\r\n\r\n &.selected {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n }\r\n \r\n &.align {\r\n justify-content: stretch;\r\n text-align: center;\r\n }\r\n } \r\n}\r\n\r\n.blocker {\r\n visibility: hidden;\r\n position: absolute;\r\n width: calc(100% - 40px);\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n\r\n background: rgba(20, 20, 20, 0.95); \r\n font-family: \"acumin-pro-condensed\";\r\n color: white;\r\n font-size: 24px;\r\n\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n\r\n user-select: none;\r\n\r\n padding: 20px;\r\n text-align: center;\r\n}\r\n\r\n#log-console {\r\n grid-row: 2;\r\n grid-column: 4;\r\n display: none;\r\n}\r\n\r\n.dialog-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0.1, 0.1, 0.1, 0.6);\r\n display: grid;\r\n font-family: \"acumin-pro-condensed\";\r\n top:0;\r\n\r\n .dialog {\r\n align-self: center;\r\n justify-self: center;\r\n min-height: 140px;\r\n max-width: 400px;\r\n border-radius: 10px;\r\n background: white;\r\n\r\n display: grid;\r\n grid-template-columns: 100%;\r\n grid-template-rows: calc(100% - 50px) 50px;\r\n\r\n .dialog-message {\r\n grid-row: 1;\r\n grid-column: 1;\r\n margin-top: 20px;\r\n padding: 10px;\r\n font-size: 18px;\r\n color: black;\r\n }\r\n\r\n .dialog-buttons {\r\n grid-row: 2;\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n color: white;\r\n\r\n .dialog-button-ok {\r\n cursor: pointer;\r\n justify-self: center;\r\n background:green;\r\n min-width: 80px;\r\n justify-content: center;\r\n display: grid;\r\n align-content: center;\r\n align-self: center;\r\n height: 35px; \r\n border-radius: 10px;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n\r\n &.error {\r\n background: red;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n.gizmo {\r\n .bounding-box-line {\r\n background-color: black;\r\n position: absolute;\r\n line-height: 1px;\r\n height: 1px;\r\n pointer-events: none;\r\n }\r\n .scale-point-container {\r\n position: absolute;\r\n width: 30px;\r\n height: 30px;\r\n .scale-point {\r\n top: 10px;\r\n left: 10px;\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n background: transparent;\r\n outline: rgb(125, 125, 125) 2px solid;\r\n }\r\n .rotate-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n .scale-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n }\r\n .pivot-point {\r\n width: 30px;\r\n height: 30px;\r\n background: transparent;\r\n position: absolute;\r\n }\r\n}\r\n#workbench-canvas {\r\n position: relative;\r\n}\r\n.artboard-stroke {\r\n outline: 1px solid black;\r\n position: absolute;\r\n z-index: 5;\r\n pointer-events: none;\r\n}\r\n.artboard-background {\r\n position: absolute;\r\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50% / 10px 10px;\r\n width: 100%;\r\n height: 100%;\r\n}"],"sourceRoot":""}]);
10192
+ ___CSS_LOADER_EXPORT___.push([module.i, ":root {\n --blackBarHeight: 55px; }\n\n#gui-editor-workbench-root {\n display: grid;\n grid-template-rows: calc(100% - 55px);\n height: 100%;\n width: 100%;\n background: #e2e2e2;\n font: 14px \"acumin-pro-condensed\"; }\n\n.wait-screen {\n display: grid;\n justify-content: center;\n align-content: center;\n height: 100%;\n width: 100%;\n background: #464646;\n opacity: 0.95;\n color: white;\n font: 24px \"acumin-pro-condensed\";\n position: absolute;\n top: 0;\n left: 0; }\n .wait-screen.hidden {\n visibility: hidden; }\n\n#leftGrab {\n grid-row: 1 / span 2;\n grid-column: 2;\n cursor: ew-resize; }\n\n#rightGrab {\n grid-row: 1 / span 2;\n grid-column: 5;\n cursor: ew-resize; }\n\n#toolbarGrab {\n background: #333333;\n grid-row: 1 / span 3;\n grid-column: 3;\n height: 100%; }\n #toolbarGrab .blackLine {\n height: 5px;\n background: black; }\n #toolbarGrab .toolbar-label {\n color: white;\n font-size: 18px;\n display: grid;\n align-items: center;\n cursor: pointer;\n user-select: none;\n grid-template-columns: 1fr 20px;\n grid-template-rows: 100%;\n position: relative; }\n #toolbarGrab .toolbar-label.active {\n font-weight: bold;\n font-size: 20px; }\n #toolbarGrab .toolbar-label:hover {\n background: var(--selectionGrey); }\n #toolbarGrab .toolbar-label:hover .sub-items {\n display: block; }\n #toolbarGrab .toolbar-icon {\n width: 40px;\n height: 40px; }\n\n.diagram-container {\n position: relative;\n display: grid;\n grid-row: 1;\n grid-column: 4;\n background: #CCCCCC;\n width: 100%;\n height: 100%;\n overflow: hidden; }\n .diagram-container .diagram {\n display: none;\n width: 100%;\n height: 100%; }\n\n.right-panel {\n grid-row: 1 / span 2;\n grid-column: 6;\n display: grid;\n grid-template-rows: 1fr 40px auto 40px;\n grid-template-columns: 100%;\n height: calc(100% - var(--blackBarHeight));\n overflow-y: auto; }\n .right-panel #propertyTab {\n grid-row: 1;\n grid-column: 1; }\n .right-panel .button {\n display: grid;\n justify-content: center;\n align-content: center;\n height: auto;\n width: calc(100% / 7);\n cursor: pointer; }\n .right-panel .button:hover {\n background: #337ab7;\n color: white;\n opacity: 0.8; }\n .right-panel .button.selected {\n background: #337ab7;\n color: white; }\n .right-panel .button.align {\n justify-content: stretch;\n text-align: center; }\n\n.blocker {\n visibility: hidden;\n position: absolute;\n width: calc(100% - 40px);\n height: 100%;\n top: 0;\n left: 0;\n background: rgba(20, 20, 20, 0.95);\n font-family: \"acumin-pro-condensed\";\n color: white;\n font-size: 24px;\n display: grid;\n align-content: center;\n justify-content: center;\n user-select: none;\n padding: 20px;\n text-align: center; }\n\n#log-console {\n grid-row: 2;\n grid-column: 4;\n display: none; }\n\n.dialog-container {\n position: absolute;\n width: 100%;\n height: 100%;\n background: rgba(0, 0, 0, 0.6);\n display: grid;\n font-family: \"acumin-pro-condensed\";\n top: 0; }\n .dialog-container .dialog {\n align-self: center;\n justify-self: center;\n min-height: 140px;\n max-width: 400px;\n border-radius: 10px;\n background: white;\n display: grid;\n grid-template-columns: 100%;\n grid-template-rows: calc(100% - 50px) 50px; }\n .dialog-container .dialog .dialog-message {\n grid-row: 1;\n grid-column: 1;\n margin-top: 20px;\n padding: 10px;\n font-size: 18px;\n color: black; }\n .dialog-container .dialog .dialog-buttons {\n grid-row: 2;\n grid-column: 1;\n display: grid;\n grid-template-rows: 100%;\n grid-template-columns: 100%;\n color: white; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok {\n cursor: pointer;\n justify-self: center;\n background: green;\n min-width: 80px;\n justify-content: center;\n display: grid;\n align-content: center;\n align-self: center;\n height: 35px;\n border-radius: 10px; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok:hover {\n opacity: 0.8; }\n .dialog-container .dialog .dialog-buttons .dialog-button-ok.error {\n background: red; }\n\n.gizmo * {\n user-select: none; }\n\n.gizmo .bounding-box-line {\n background-color: black;\n position: absolute;\n line-height: 1px;\n height: 1px;\n pointer-events: none; }\n\n.gizmo .scale-point-container {\n position: absolute;\n width: 30px;\n height: 30px; }\n .gizmo .scale-point-container .scale-point {\n top: 10px;\n left: 10px;\n position: absolute;\n width: 10px;\n height: 10px;\n background: transparent;\n outline: #7d7d7d 2px solid; }\n .gizmo .scale-point-container .rotate-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n .gizmo .scale-point-container .scale-click-area {\n width: 20px;\n height: 20px;\n position: absolute; }\n\n.gizmo .pivot-point {\n width: 30px;\n height: 30px;\n background: transparent;\n position: absolute; }\n\n#workbench-canvas {\n position: relative; }\n\n.artboard-stroke {\n outline: 1px solid black;\n position: absolute;\n z-index: 5;\n pointer-events: none; }\n\n.artboard-background {\n position: absolute;\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50%/10px 10px;\n width: 100%;\n height: 100%; }\n", "",{"version":3,"sources":["webpack://./main.scss"],"names":[],"mappings":"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","sourcesContent":[":root {\r\n --blackBarHeight: 55px;\r\n}\r\n\r\n#gui-editor-workbench-root {\r\n display: grid;\r\n grid-template-rows: calc(100% - 55px);\r\n height: 100%;\r\n width: 100%;\r\n background: #e2e2e2;\r\n font: 14px \"acumin-pro-condensed\"; \r\n}\r\n\r\n.wait-screen {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: 100%;\r\n width: 100%;\r\n background: #464646;\r\n opacity: 0.95;\r\n color:white;\r\n font: 24px \"acumin-pro-condensed\"; \r\n position: absolute;\r\n top: 0;\r\n left: 0; \r\n\r\n &.hidden {\r\n visibility: hidden;\r\n }\r\n}\r\n\r\n#leftGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 2;\r\n cursor: ew-resize;\r\n}\r\n\r\n#rightGrab {\r\n grid-row: 1 / span 2;\r\n grid-column: 5;\r\n cursor: ew-resize;\r\n}\r\n\r\n\r\n#toolbarGrab {\r\n background: #333333;\r\n grid-row: 1 / span 3;\r\n grid-column: 3;\r\n height: 100%;\r\n\r\n .blackLine {\r\n height: 5px;\r\n background: black;\r\n }\r\n .toolbar-label {\r\n color:white;\r\n font-size: 18px;\r\n display: grid;\r\n align-items: center;\r\n cursor: pointer;\r\n user-select: none;\r\n grid-template-columns: 1fr 20px;\r\n grid-template-rows: 100%;\r\n position: relative;\r\n\r\n &.active {\r\n font-weight: bold;\r\n font-size: 20px;\r\n }\r\n\r\n &:hover {\r\n background: var(--selectionGrey);\r\n .sub-items {\r\n display: block;\r\n }\r\n } \r\n }\r\n .toolbar-icon {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n}\r\n\r\n.diagram-container {\r\n position: relative;\r\n display: grid;\r\n grid-row: 1;\r\n grid-column: 4;\r\n background: #CCCCCC;\r\n width: 100%;\r\n height: 100%;\r\n overflow: hidden;\r\n\r\n .diagram {\r\n display: none;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n\r\n.right-panel {\r\n grid-row: 1 / span 2;\r\n grid-column: 6;\r\n display: grid;\r\n grid-template-rows: 1fr 40px auto 40px;\r\n grid-template-columns: 100%;\r\n height: calc(100% - var(--blackBarHeight));\r\n overflow-y: auto;\r\n\r\n #propertyTab {\r\n grid-row: 1;\r\n grid-column: 1;\r\n } \r\n \r\n .button {\r\n display: grid;\r\n justify-content: center;\r\n align-content: center;\r\n height: auto;\r\n width: calc(100% / 7);\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n opacity: 0.8;\r\n }\r\n\r\n &.selected {\r\n background: rgb(51, 122, 183);\r\n color: white;\r\n }\r\n \r\n &.align {\r\n justify-content: stretch;\r\n text-align: center;\r\n }\r\n } \r\n}\r\n\r\n.blocker {\r\n visibility: hidden;\r\n position: absolute;\r\n width: calc(100% - 40px);\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n\r\n background: rgba(20, 20, 20, 0.95); \r\n font-family: \"acumin-pro-condensed\";\r\n color: white;\r\n font-size: 24px;\r\n\r\n display: grid;\r\n align-content: center;\r\n justify-content: center;\r\n\r\n user-select: none;\r\n\r\n padding: 20px;\r\n text-align: center;\r\n}\r\n\r\n#log-console {\r\n grid-row: 2;\r\n grid-column: 4;\r\n display: none;\r\n}\r\n\r\n.dialog-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n background: rgba(0.1, 0.1, 0.1, 0.6);\r\n display: grid;\r\n font-family: \"acumin-pro-condensed\";\r\n top:0;\r\n\r\n .dialog {\r\n align-self: center;\r\n justify-self: center;\r\n min-height: 140px;\r\n max-width: 400px;\r\n border-radius: 10px;\r\n background: white;\r\n\r\n display: grid;\r\n grid-template-columns: 100%;\r\n grid-template-rows: calc(100% - 50px) 50px;\r\n\r\n .dialog-message {\r\n grid-row: 1;\r\n grid-column: 1;\r\n margin-top: 20px;\r\n padding: 10px;\r\n font-size: 18px;\r\n color: black;\r\n }\r\n\r\n .dialog-buttons {\r\n grid-row: 2;\r\n grid-column: 1;\r\n display: grid;\r\n grid-template-rows: 100%;\r\n grid-template-columns: 100%;\r\n color: white;\r\n\r\n .dialog-button-ok {\r\n cursor: pointer;\r\n justify-self: center;\r\n background:green;\r\n min-width: 80px;\r\n justify-content: center;\r\n display: grid;\r\n align-content: center;\r\n align-self: center;\r\n height: 35px; \r\n border-radius: 10px;\r\n\r\n &:hover {\r\n opacity: 0.8;\r\n }\r\n\r\n &.error {\r\n background: red;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n.gizmo {\r\n * {\r\n user-select: none;\r\n }\r\n .bounding-box-line {\r\n background-color: black;\r\n position: absolute;\r\n line-height: 1px;\r\n height: 1px;\r\n pointer-events: none;\r\n }\r\n .scale-point-container {\r\n position: absolute;\r\n width: 30px;\r\n height: 30px;\r\n .scale-point {\r\n top: 10px;\r\n left: 10px;\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n background: transparent;\r\n outline: rgb(125, 125, 125) 2px solid;\r\n }\r\n .rotate-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n .scale-click-area {\r\n width: 20px;\r\n height: 20px;\r\n position: absolute;\r\n }\r\n }\r\n .pivot-point {\r\n width: 30px;\r\n height: 30px;\r\n background: transparent;\r\n position: absolute;\r\n }\r\n}\r\n#workbench-canvas {\r\n position: relative;\r\n}\r\n.artboard-stroke {\r\n outline: 1px solid black;\r\n position: absolute;\r\n z-index: 5;\r\n pointer-events: none;\r\n}\r\n.artboard-background {\r\n position: absolute;\r\n background: repeating-conic-gradient(#E2E2E2 0% 25%, white 0% 50%) 50% / 10px 10px;\r\n width: 100%;\r\n height: 100%;\r\n}"],"sourceRoot":""}]);
10193
10193
  // Exports
10194
10194
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
10195
10195
 
@@ -43100,13 +43100,10 @@ module.exports = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' w
43100
43100
  __webpack_require__.r(__webpack_exports__);
43101
43101
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CommandBarComponent", function() { return CommandBarComponent; });
43102
43102
  /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
43103
- /* harmony import */ var _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/container */ "@babylonjs/gui/2D/controls/button");
43104
- /* harmony import */ var _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_1__);
43105
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
43106
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
43107
- /* harmony import */ var _commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commandButtonComponent */ "./components/commandButtonComponent.tsx");
43108
- /* harmony import */ var _commandDropdownComponent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./commandDropdownComponent */ "./components/commandDropdownComponent.tsx");
43109
-
43103
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
43104
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
43105
+ /* harmony import */ var _commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commandButtonComponent */ "./components/commandButtonComponent.tsx");
43106
+ /* harmony import */ var _commandDropdownComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commandDropdownComponent */ "./components/commandDropdownComponent.tsx");
43110
43107
 
43111
43108
 
43112
43109
 
@@ -43144,32 +43141,17 @@ var CommandBarComponent = /** @class */ (function (_super) {
43144
43141
  _this._selecting = false;
43145
43142
  _this.forceUpdate();
43146
43143
  });
43147
- props.globalState.onOutlinesObservable.add(function () {
43148
- _this._outlines = !_this._outlines;
43149
- var nodes = _this.props.globalState.workbench.nodes;
43150
- nodes.forEach(function (node) {
43151
- _this.updateNodeOutline(node);
43152
- });
43144
+ props.globalState.onOutlineChangedObservable.add(function () {
43153
43145
  _this.forceUpdate();
43154
43146
  });
43155
43147
  return _this;
43156
43148
  }
43157
- CommandBarComponent.prototype.updateNodeOutline = function (guiControl) {
43158
- var _this = this;
43159
- guiControl.isHighlighted = this._outlines;
43160
- guiControl.highlightLineWidth = 5;
43161
- if (guiControl instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_1__["Container"]) {
43162
- guiControl.children.forEach(function (child) {
43163
- _this.updateNodeOutline(child);
43164
- });
43165
- }
43166
- };
43167
43149
  CommandBarComponent.prototype.render = function () {
43168
43150
  var _this = this;
43169
- return (react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: "ge-commands" },
43170
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: "commands-left" },
43171
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("img", { src: logoIcon, color: "white", className: "active" }),
43172
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandDropdownComponent__WEBPACK_IMPORTED_MODULE_4__["CommandDropdownComponent"], { globalState: this.props.globalState, toRight: true, icon: hamburgerIcon, tooltip: "Options", items: [
43151
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-commands" },
43152
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "commands-left" },
43153
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: logoIcon, color: "white", className: "active" }),
43154
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandDropdownComponent__WEBPACK_IMPORTED_MODULE_3__["CommandDropdownComponent"], { globalState: this.props.globalState, toRight: true, icon: hamburgerIcon, tooltip: "Options", items: [
43173
43155
  {
43174
43156
  label: "Save",
43175
43157
  onClick: function () {
@@ -43195,19 +43177,29 @@ var CommandBarComponent = /** @class */ (function (_super) {
43195
43177
  {
43196
43178
  label: "Copy Selected",
43197
43179
  onClick: function () {
43198
- _this.props.globalState.workbench.copyToClipboard();
43180
+ _this.props.globalState.onCopyObservable.notifyObservers(function (content) { return _this.props.globalState.hostWindow.navigator.clipboard.writeText(content); });
43199
43181
  },
43200
43182
  },
43201
43183
  {
43202
43184
  label: "Paste",
43203
- onClick: function () {
43204
- _this.props.globalState.workbench.pasteFromClipboard();
43205
- }
43185
+ onClick: function () { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(_this, void 0, void 0, function () {
43186
+ var _a, _b;
43187
+ return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__generator"])(this, function (_c) {
43188
+ switch (_c.label) {
43189
+ case 0:
43190
+ _b = (_a = this.props.globalState.onPasteObservable).notifyObservers;
43191
+ return [4 /*yield*/, this.props.globalState.hostWindow.navigator.clipboard.readText()];
43192
+ case 1:
43193
+ _b.apply(_a, [_c.sent()]);
43194
+ return [2 /*return*/];
43195
+ }
43196
+ });
43197
+ }); }
43206
43198
  },
43207
43199
  {
43208
43200
  label: "Delete Selected",
43209
43201
  onClick: function () {
43210
- _this.props.globalState.workbench.selectedGuiNodes.forEach(function (guiNode) {
43202
+ _this.props.globalState.selectedControls.forEach(function (guiNode) {
43211
43203
  var _a;
43212
43204
  if (guiNode !== _this.props.globalState.guiTexture.getChildren()[0]) {
43213
43205
  _this.props.globalState.guiTexture.removeControl(guiNode);
@@ -43215,7 +43207,7 @@ var CommandBarComponent = /** @class */ (function (_super) {
43215
43207
  guiNode.dispose();
43216
43208
  }
43217
43209
  });
43218
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
43210
+ _this.props.globalState.setSelection([]);
43219
43211
  },
43220
43212
  },
43221
43213
  {
@@ -43231,28 +43223,26 @@ var CommandBarComponent = /** @class */ (function (_super) {
43231
43223
  },
43232
43224
  },
43233
43225
  ] }),
43234
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__["CommandButtonComponent"], { tooltip: "Select", icon: pointerIcon, shortcut: "S", isActive: this._selecting, onClick: function () {
43226
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__["CommandButtonComponent"], { tooltip: "Select", icon: pointerIcon, shortcut: "S", isActive: this._selecting, onClick: function () {
43235
43227
  if (!_this._selecting)
43236
43228
  _this.props.globalState.onSelectionButtonObservable.notifyObservers();
43237
43229
  } }),
43238
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__["CommandButtonComponent"], { tooltip: "Pan", icon: handIcon, shortcut: "P", isActive: this._panning, onClick: function () {
43230
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__["CommandButtonComponent"], { tooltip: "Pan", icon: handIcon, shortcut: "P", isActive: this._panning, onClick: function () {
43239
43231
  if (!_this._panning)
43240
43232
  _this.props.globalState.onPanObservable.notifyObservers();
43241
43233
  } }),
43242
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__["CommandButtonComponent"], { tooltip: "Zoom", shortcut: "Z", icon: zoomIcon, isActive: this._zooming, onClick: function () {
43234
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__["CommandButtonComponent"], { tooltip: "Zoom", shortcut: "Z", icon: zoomIcon, isActive: this._zooming, onClick: function () {
43243
43235
  if (!_this._zooming)
43244
43236
  _this.props.globalState.onZoomObservable.notifyObservers();
43245
43237
  } }),
43246
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__["CommandButtonComponent"], { tooltip: "Fit to Window", shortcut: "F", icon: canvasFitIcon, isActive: false, onClick: function () {
43238
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__["CommandButtonComponent"], { tooltip: "Fit to Window", shortcut: "F", icon: canvasFitIcon, isActive: false, onClick: function () {
43247
43239
  _this.props.globalState.onFitToWindowObservable.notifyObservers();
43248
43240
  } }),
43249
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_3__["CommandButtonComponent"], { tooltip: "Toggle Guides", shortcut: "G", icon: guidesIcon, isActive: this._outlines, onClick: function () {
43250
- _this.props.globalState.onOutlinesObservable.notifyObservers();
43251
- } })),
43252
- react__WEBPACK_IMPORTED_MODULE_2__["createElement"]("div", { className: "commands-right" })));
43241
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_commandButtonComponent__WEBPACK_IMPORTED_MODULE_2__["CommandButtonComponent"], { tooltip: "Toggle Guides", shortcut: "G", icon: guidesIcon, isActive: this.props.globalState.outlines, onClick: function () { return _this.props.globalState.outlines = !_this.props.globalState.outlines; } })),
43242
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "commands-right" })));
43253
43243
  };
43254
43244
  return CommandBarComponent;
43255
- }(react__WEBPACK_IMPORTED_MODULE_2__["Component"]));
43245
+ }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
43256
43246
 
43257
43247
 
43258
43248
 
@@ -43724,6 +43714,9 @@ __webpack_require__.r(__webpack_exports__);
43724
43714
  /* harmony import */ var _sharedUiComponents_lines_colorLineComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/colorLineComponent */ "./sharedUiComponents/lines/colorLineComponent.tsx");
43725
43715
  /* harmony import */ var _sharedUiComponents_lines_targetsProxy__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../../sharedUiComponents/lines/targetsProxy */ "./sharedUiComponents/lines/targetsProxy.tsx");
43726
43716
  /* harmony import */ var _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../../diagram/coordinateHelper */ "./diagram/coordinateHelper.tsx");
43717
+ /* harmony import */ var _babylonjs_core_Maths_math__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babylonjs/core/Maths/math */ "@babylonjs/core/Misc/observable");
43718
+ /* harmony import */ var _babylonjs_core_Maths_math__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Maths_math__WEBPACK_IMPORTED_MODULE_12__);
43719
+
43727
43720
 
43728
43721
 
43729
43722
 
@@ -43764,8 +43757,42 @@ var descendantsOnlyPaddingIcon = __webpack_require__(/*! ../../../../sharedUiCom
43764
43757
  var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43765
43758
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(CommonControlPropertyGridComponent, _super);
43766
43759
  function CommonControlPropertyGridComponent(props) {
43767
- return _super.call(this, props) || this;
43760
+ var _a;
43761
+ var _this = _super.call(this, props) || this;
43762
+ var controls = _this.props.controls;
43763
+ for (var _i = 0, controls_1 = controls; _i < controls_1.length; _i++) {
43764
+ var control = controls_1[_i];
43765
+ var transformed = _this._getTransformedReferenceCoordinate(control);
43766
+ if (!control.metadata) {
43767
+ control.metadata = {};
43768
+ }
43769
+ control.metadata._previousCenter = transformed;
43770
+ }
43771
+ _this._onPropertyChangedObserver = (_a = _this.props.onPropertyChangedObservable) === null || _a === void 0 ? void 0 : _a.add(function (event) {
43772
+ var isTransformEvent = event.property === "transformCenterX" || event.property === "transformCenterY";
43773
+ for (var _i = 0, controls_2 = controls; _i < controls_2.length; _i++) {
43774
+ var control = controls_2[_i];
43775
+ var transformed = _this._getTransformedReferenceCoordinate(control);
43776
+ if (isTransformEvent && control.metadata._previousCenter) {
43777
+ // Calculate the difference between current center and previous center
43778
+ var diff = transformed.subtract(control.metadata._previousCenter);
43779
+ control.leftInPixels -= diff.x;
43780
+ control.topInPixels -= diff.y;
43781
+ // Update center in reference to left and top positions
43782
+ transformed = _this._getTransformedReferenceCoordinate(control);
43783
+ }
43784
+ control.metadata._previousCenter = transformed;
43785
+ }
43786
+ _this.forceUpdate();
43787
+ });
43788
+ return _this;
43768
43789
  }
43790
+ CommonControlPropertyGridComponent.prototype._getTransformedReferenceCoordinate = function (control) {
43791
+ var nodeMatrix = _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_11__["CoordinateHelper"].getNodeMatrix(control);
43792
+ var transformed = new _babylonjs_core_Maths_math__WEBPACK_IMPORTED_MODULE_12__["Vector2"](1, 1);
43793
+ nodeMatrix.transformCoordinates(1, 1, transformed);
43794
+ return transformed;
43795
+ };
43769
43796
  CommonControlPropertyGridComponent.prototype._updateAlignment = function (alignment, value) {
43770
43797
  for (var _i = 0, _a = this.props.controls; _i < _a.length; _i++) {
43771
43798
  var control = _a[_i];
@@ -43815,14 +43842,20 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43815
43842
  });
43816
43843
  }
43817
43844
  };
43845
+ CommonControlPropertyGridComponent.prototype.componentWillUnmount = function () {
43846
+ var _a;
43847
+ if (this._onPropertyChangedObserver) {
43848
+ (_a = this.props.onPropertyChangedObservable) === null || _a === void 0 ? void 0 : _a.remove(this._onPropertyChangedObserver);
43849
+ }
43850
+ };
43818
43851
  CommonControlPropertyGridComponent.prototype.render = function () {
43819
43852
  var _this = this;
43820
43853
  var controls = this.props.controls;
43821
43854
  var firstControl = controls[0];
43822
43855
  var horizontalAlignment = firstControl.horizontalAlignment;
43823
43856
  var verticalAlignment = firstControl.verticalAlignment;
43824
- for (var _i = 0, controls_1 = controls; _i < controls_1.length; _i++) {
43825
- var control = controls_1[_i];
43857
+ for (var _i = 0, controls_3 = controls; _i < controls_3.length; _i++) {
43858
+ var control = controls_3[_i];
43826
43859
  if (control.horizontalAlignment !== horizontalAlignment) {
43827
43860
  horizontalAlignment = _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Control"].HORIZONTAL_ALIGNMENT_CENTER;
43828
43861
  }
@@ -43870,9 +43903,32 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43870
43903
  return _sharedUiComponents_lines_targetsProxy__WEBPACK_IMPORTED_MODULE_10__["conflictingValuesPlaceholder"];
43871
43904
  }
43872
43905
  };
43906
+ var increment = function (propertyName, amount, minimum, maximum) {
43907
+ var _a;
43908
+ for (var _i = 0, controls_4 = controls; _i < controls_4.length; _i++) {
43909
+ var control = controls_4[_i];
43910
+ var initialValue = control[propertyName];
43911
+ var initialUnit = control["_" + propertyName]._unit;
43912
+ var newValue = control["".concat(propertyName, "InPixels")] + amount;
43913
+ if (minimum !== undefined && newValue < minimum)
43914
+ newValue = minimum;
43915
+ if (maximum !== undefined && newValue > maximum)
43916
+ newValue = maximum;
43917
+ control["".concat(propertyName, "InPixels")] = newValue;
43918
+ if (initialUnit === _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["ValueAndUnit"].UNITMODE_PERCENTAGE) {
43919
+ _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_11__["CoordinateHelper"].convertToPercentage(control, [propertyName]);
43920
+ }
43921
+ (_a = _this.props.onPropertyChangedObservable) === null || _a === void 0 ? void 0 : _a.notifyObservers({
43922
+ object: control,
43923
+ property: propertyName,
43924
+ initialValue: initialValue,
43925
+ value: control[propertyName]
43926
+ });
43927
+ }
43928
+ };
43873
43929
  var convertUnits = function (unit, property) {
43874
- for (var _i = 0, controls_2 = controls; _i < controls_2.length; _i++) {
43875
- var control = controls_2[_i];
43930
+ for (var _i = 0, controls_5 = controls; _i < controls_5.length; _i++) {
43931
+ var control = controls_5[_i];
43876
43932
  if (unit === "PX") {
43877
43933
  _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_11__["CoordinateHelper"].convertToPercentage(control, [property], _this.props.onPropertyChangedObservable);
43878
43934
  }
@@ -43903,12 +43959,12 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43903
43959
  _this._updateAlignment("verticalAlignment", _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Control"].VERTICAL_ALIGNMENT_BOTTOM);
43904
43960
  } })),
43905
43961
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43906
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, iconLabel: "Position", icon: positionIcon, lockObject: this.props.lockObject, label: "X", delayInput: true, value: getValue("_left"), onChange: function (newValue) { return _this._checkAndUpdateValues("left", newValue); }, unit: getUnitString("_left"), onUnitClicked: function (unit) { return convertUnits(unit, "left"); } }),
43907
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, lockObject: this.props.lockObject, label: "Y", delayInput: true, value: getValue("_top"), onChange: function (newValue) { return _this._checkAndUpdateValues("top", newValue); }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_top"), onUnitClicked: function (unit) { return convertUnits(unit, "top"); } })),
43962
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, iconLabel: "Position", icon: positionIcon, lockObject: this.props.lockObject, label: "X", delayInput: true, value: getValue("_left"), onChange: function (newValue) { return _this._checkAndUpdateValues("left", newValue); }, unit: getUnitString("_left"), onUnitClicked: function (unit) { return convertUnits(unit, "left"); }, arrows: true, arrowsIncrement: function (amount) { return increment("left", amount); } }),
43963
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, lockObject: this.props.lockObject, label: "Y", delayInput: true, value: getValue("_top"), onChange: function (newValue) { return _this._checkAndUpdateValues("top", newValue); }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_top"), onUnitClicked: function (unit) { return convertUnits(unit, "top"); }, arrows: true, arrowsIncrement: function (amount) { return increment("top", amount); } })),
43908
43964
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43909
43965
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, iconLabel: "Scale", icon: sizeIcon, lockObject: this.props.lockObject, label: "W", delayInput: true, value: getValue("_width"), onPropertyChangedObservable: this.props.onPropertyChangedObservable, onChange: function (newValue) {
43910
- for (var _i = 0, controls_3 = controls; _i < controls_3.length; _i++) {
43911
- var control = controls_3[_i];
43966
+ for (var _i = 0, controls_6 = controls; _i < controls_6.length; _i++) {
43967
+ var control = controls_6[_i];
43912
43968
  if (control.typeName === "Image") {
43913
43969
  control.autoScale = false;
43914
43970
  }
@@ -43922,10 +43978,10 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43922
43978
  }
43923
43979
  }
43924
43980
  _this._checkAndUpdateValues("width", newValue);
43925
- }, unit: getUnitString("_width"), onUnitClicked: function (unit) { return convertUnits(unit, "width"); } }),
43981
+ }, unit: getUnitString("_width"), onUnitClicked: function (unit) { return convertUnits(unit, "width"); }, arrows: true, arrowsIncrement: function (amount) { return increment("width", amount); } }),
43926
43982
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, lockObject: this.props.lockObject, label: "H", delayInput: true, value: getValue("_height"), onPropertyChangedObservable: this.props.onPropertyChangedObservable, onChange: function (newValue) {
43927
- for (var _i = 0, controls_4 = controls; _i < controls_4.length; _i++) {
43928
- var control = controls_4[_i];
43983
+ for (var _i = 0, controls_7 = controls; _i < controls_7.length; _i++) {
43984
+ var control = controls_7[_i];
43929
43985
  if (control.typeName === "Image") {
43930
43986
  control.autoScale = false;
43931
43987
  }
@@ -43939,34 +43995,34 @@ var CommonControlPropertyGridComponent = /** @class */ (function (_super) {
43939
43995
  }
43940
43996
  }
43941
43997
  _this._checkAndUpdateValues("height", newValue);
43942
- }, unit: getUnitString("_height"), onUnitClicked: function (unit) { return convertUnits(unit, "height"); } })),
43998
+ }, unit: getUnitString("_height"), onUnitClicked: function (unit) { return convertUnits(unit, "height"); }, arrows: true, arrowsIncrement: function (amount) { return increment("height", amount); } })),
43943
43999
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43944
44000
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, iconLabel: "Padding", icon: verticalMarginIcon, lockObject: this.props.lockObject, label: "T", delayInput: true, value: getValue("_paddingTop"), onChange: function (newValue) {
43945
44001
  _this._checkAndUpdateValues("paddingTop", newValue);
43946
44002
  _this._markChildrenAsDirty();
43947
- }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingTop"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingTop"); } }),
44003
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingTop"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingTop"); }, arrows: true, arrowsIncrement: function (amount) { return increment("paddingTop", amount, 0); } }),
43948
44004
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, lockObject: this.props.lockObject, label: "B", delayInput: true, value: getValue("_paddingBottom"), onChange: function (newValue) {
43949
44005
  _this._checkAndUpdateValues("paddingBottom", newValue);
43950
44006
  _this._markChildrenAsDirty();
43951
- }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingBottom"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingBottom"); } })),
44007
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingBottom"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingBottom"); }, arrows: true, arrowsIncrement: function (amount) { return increment("paddingBottom", amount, 0); } })),
43952
44008
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43953
44009
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, iconLabel: "Horizontal Margins", icon: horizontalMarginIcon, lockObject: this.props.lockObject, label: "L", delayInput: true, value: getValue("_paddingLeft"), onChange: function (newValue) {
43954
44010
  _this._checkAndUpdateValues("paddingLeft", newValue);
43955
44011
  _this._markChildrenAsDirty();
43956
- }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingLeft"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingLeft"); } }),
44012
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingLeft"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingLeft"); }, arrows: true, arrowsIncrement: function (amount) { return increment("paddingLeft", amount); } }),
43957
44013
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { numbersOnly: true, lockObject: this.props.lockObject, label: "R", delayInput: true, value: getValue("_paddingRight"), onChange: function (newValue) {
43958
44014
  _this._checkAndUpdateValues("paddingRight", newValue);
43959
44015
  _this._markChildrenAsDirty();
43960
- }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingRight"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingRight"); } })),
44016
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable, unit: getUnitString("_paddingRight"), onUnitClicked: function (unit) { return convertUnits(unit, "paddingRight"); }, arrows: true, arrowsIncrement: function (amount) { return increment("paddingRight", amount); } })),
43961
44017
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_checkBoxLineComponent__WEBPACK_IMPORTED_MODULE_8__["CheckBoxLineComponent"], { iconLabel: "Padding does not affect the parameters of this control, only the descendants of this control.", icon: descendantsOnlyPaddingIcon, label: "PAD ONLY DESCENDENTS", target: proxy, propertyName: "descendentsOnlyPadding", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43962
44018
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("hr", { className: "ge" }),
43963
44019
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_2__["TextLineComponent"], { tooltip: "", label: "TRANSFORMATION", value: " ", color: "grey" }),
43964
44020
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43965
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { iconLabel: "Transform Center", icon: positionIcon, lockObject: this.props.lockObject, label: "X", target: proxy, propertyName: "transformCenterX", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43966
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { lockObject: this.props.lockObject, label: "Y", target: proxy, propertyName: "transformCenterY", onPropertyChangedObservable: this.props.onPropertyChangedObservable })),
44021
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { iconLabel: "Transform Center", icon: positionIcon, lockObject: this.props.lockObject, label: "X", target: proxy, propertyName: "transformCenterX", onPropertyChangedObservable: this.props.onPropertyChangedObservable, arrows: true, step: 0.0005, numbersOnly: true }),
44022
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { lockObject: this.props.lockObject, label: "Y", target: proxy, propertyName: "transformCenterY", onPropertyChangedObservable: this.props.onPropertyChangedObservable, arrows: true, step: 0.0005, numbersOnly: true })),
43967
44023
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "ge-divider" },
43968
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { iconLabel: "Scale", icon: scaleIcon, lockObject: this.props.lockObject, label: "X", target: proxy, propertyName: "scaleX", onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43969
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_5__["FloatLineComponent"], { lockObject: this.props.lockObject, label: "Y", target: proxy, propertyName: "scaleY", onPropertyChangedObservable: this.props.onPropertyChangedObservable })),
44024
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { iconLabel: "Scale", icon: scaleIcon, lockObject: this.props.lockObject, label: "X", target: proxy, propertyName: "scaleX", onPropertyChangedObservable: this.props.onPropertyChangedObservable, arrows: true, step: 0.0005, numbersOnly: true }),
44025
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textInputLineComponent__WEBPACK_IMPORTED_MODULE_6__["TextInputLineComponent"], { lockObject: this.props.lockObject, label: "Y", target: proxy, propertyName: "scaleY", onPropertyChangedObservable: this.props.onPropertyChangedObservable, arrows: true, step: 0.0005, numbersOnly: true })),
43970
44026
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_sliderLineComponent__WEBPACK_IMPORTED_MODULE_4__["SliderLineComponent"], { iconLabel: "Rotation", lockObject: this.props.lockObject, icon: rotationIcon, label: "R", target: proxy, decimalCount: 2, propertyName: "rotation", minimum: 0, maximum: 2 * Math.PI, step: 0.01, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
43971
44027
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("hr", { className: "ge" }),
43972
44028
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_sharedUiComponents_lines_textLineComponent__WEBPACK_IMPORTED_MODULE_2__["TextLineComponent"], { tooltip: "", label: "APPEARANCE", value: " ", color: "grey" }),
@@ -45335,9 +45391,9 @@ __webpack_require__.r(__webpack_exports__);
45335
45391
  /* harmony import */ var _propertyGrids_gui_scrollViewerPropertyGridComponent__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./propertyGrids/gui/scrollViewerPropertyGridComponent */ "./components/propertyTab/propertyGrids/gui/scrollViewerPropertyGridComponent.tsx");
45336
45392
  /* harmony import */ var _propertyGrids_gui_ellipsePropertyGridComponent__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./propertyGrids/gui/ellipsePropertyGridComponent */ "./components/propertyTab/propertyGrids/gui/ellipsePropertyGridComponent.tsx");
45337
45393
  /* harmony import */ var _propertyGrids_gui_checkboxPropertyGridComponent__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./propertyGrids/gui/checkboxPropertyGridComponent */ "./components/propertyTab/propertyGrids/gui/checkboxPropertyGridComponent.tsx");
45338
- /* harmony import */ var _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @babylonjs/gui/2D/controls/control */ "@babylonjs/gui/2D/controls/button");
45339
- /* harmony import */ var _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_23__);
45340
- /* harmony import */ var _propertyGrids_gui_controlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./propertyGrids/gui/controlPropertyGridComponent */ "./components/propertyTab/propertyGrids/gui/controlPropertyGridComponent.tsx");
45394
+ /* harmony import */ var _propertyGrids_gui_controlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./propertyGrids/gui/controlPropertyGridComponent */ "./components/propertyTab/propertyGrids/gui/controlPropertyGridComponent.tsx");
45395
+ /* harmony import */ var _babylonjs_gui_2D_advancedDynamicTexture__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @babylonjs/gui/2D/advancedDynamicTexture */ "@babylonjs/gui/2D/controls/button");
45396
+ /* harmony import */ var _babylonjs_gui_2D_advancedDynamicTexture__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_gui_2D_advancedDynamicTexture__WEBPACK_IMPORTED_MODULE_24__);
45341
45397
  /* harmony import */ var _sharedUiComponents_lines_optionsLineComponent__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../sharedUiComponents/lines/optionsLineComponent */ "./sharedUiComponents/lines/optionsLineComponent.tsx");
45342
45398
  /* harmony import */ var _sharedUiComponents_lines_floatLineComponent__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../../sharedUiComponents/lines/floatLineComponent */ "./sharedUiComponents/lines/floatLineComponent.tsx");
45343
45399
  /* harmony import */ var _sharedUiComponents_lines_colorLineComponent__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../../sharedUiComponents/lines/colorLineComponent */ "./sharedUiComponents/lines/colorLineComponent.tsx");
@@ -45380,7 +45436,6 @@ __webpack_require__.r(__webpack_exports__);
45380
45436
 
45381
45437
 
45382
45438
 
45383
-
45384
45439
 
45385
45440
 
45386
45441
  __webpack_require__(/*! ./propertyTab.scss */ "./components/propertyTab/propertyTab.scss");
@@ -45446,7 +45501,7 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45446
45501
  }
45447
45502
  }
45448
45503
  };
45449
- xmlHttp.open("POST", _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_23__["AdvancedDynamicTexture"].SnippetUrl + (adt.snippetId ? "/" + adt.snippetId : ""), true);
45504
+ xmlHttp.open("POST", _babylonjs_gui_2D_advancedDynamicTexture__WEBPACK_IMPORTED_MODULE_24__["AdvancedDynamicTexture"].SnippetUrl + (adt.snippetId ? "/" + adt.snippetId : ""), true);
45450
45505
  xmlHttp.setRequestHeader("Content-Type", "application/json");
45451
45506
  var dataToSend = {
45452
45507
  payload: JSON.stringify({
@@ -45493,7 +45548,6 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45493
45548
  return [2 /*return*/];
45494
45549
  });
45495
45550
  }); };
45496
- _this.state = { currentNode: null };
45497
45551
  _this._lockObject = new _sharedUiComponents_tabs_propertyGrids_lockObject__WEBPACK_IMPORTED_MODULE_8__["LockObject"]();
45498
45552
  _this.props.globalState.lockObject = _this._lockObject;
45499
45553
  _this.props.globalState.onSaveObservable.add(function () {
@@ -45513,13 +45567,8 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45513
45567
  }
45514
45568
  PropertyTabComponent.prototype.componentDidMount = function () {
45515
45569
  var _this = this;
45516
- this.props.globalState.onSelectionChangedObservable.add(function (selection) {
45517
- if (selection instanceof _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_23__["Control"]) {
45518
- _this.setState({ currentNode: selection });
45519
- }
45520
- else {
45521
- _this.setState({ currentNode: null });
45522
- }
45570
+ this.props.globalState.onSelectionChangedObservable.add(function () {
45571
+ _this.forceUpdate();
45523
45572
  });
45524
45573
  this.props.globalState.onResizeObservable.add(function (newSize) {
45525
45574
  _this.forceUpdate();
@@ -45537,7 +45586,7 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45537
45586
  _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_4__["Tools"].ReadFile(file, function (data) {
45538
45587
  var decoder = new TextDecoder("utf-8");
45539
45588
  _this.props.globalState.workbench.loadFromJson(JSON.parse(decoder.decode(data)));
45540
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
45589
+ _this.props.globalState.setSelection([]);
45541
45590
  }, undefined, true);
45542
45591
  };
45543
45592
  PropertyTabComponent.prototype.save = function (saveCallback) {
@@ -45654,13 +45703,13 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45654
45703
  var guiElement = _guiNodeTools__WEBPACK_IMPORTED_MODULE_32__["GUINodeTools"].CreateControlFromString(value);
45655
45704
  var newGuiNode = _this.props.globalState.workbench.createNewGuiNode(guiElement);
45656
45705
  button.addControl(newGuiNode);
45657
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(newGuiNode);
45706
+ _this.props.globalState.select(newGuiNode);
45658
45707
  }
45659
45708
  } }));
45660
45709
  }
45661
45710
  }
45662
45711
  var controls = nodes;
45663
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_propertyGrids_gui_controlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_24__["ControlPropertyGridComponent"], { controls: controls, lockObject: this._lockObject, onPropertyChangedObservable: this.props.globalState.onPropertyChangedObservable }));
45712
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_propertyGrids_gui_controlPropertyGridComponent__WEBPACK_IMPORTED_MODULE_23__["ControlPropertyGridComponent"], { controls: controls, lockObject: this._lockObject, onPropertyChangedObservable: this.props.globalState.onPropertyChangedObservable }));
45664
45713
  };
45665
45714
  PropertyTabComponent.prototype.renderControlIcon = function (nodes) {
45666
45715
  var node = nodes[0];
@@ -45761,8 +45810,8 @@ var PropertyTabComponent = /** @class */ (function (_super) {
45761
45810
  this.props.globalState.onResponsiveChangeObservable.notifyObservers(false);
45762
45811
  _babylonjs_core_Misc_tools__WEBPACK_IMPORTED_MODULE_4__["DataStorage"].WriteBoolean("Responsive", false);
45763
45812
  }
45764
- if (this.state.currentNode && this.props.globalState.workbench.selectedGuiNodes.length > 0) {
45765
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "ge-propertyTab" }, this.renderNode(this.props.globalState.workbench.selectedGuiNodes)));
45813
+ if (this.props.globalState.selectedControls.length > 0) {
45814
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "ge-propertyTab" }, this.renderNode(this.props.globalState.selectedControls)));
45766
45815
  }
45767
45816
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "ge-propertyTab" },
45768
45817
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "header" },
@@ -45885,7 +45934,7 @@ var ControlTreeItemComponent = /** @class */ (function (_super) {
45885
45934
  var draggingSelf = this.props.globalState.draggedControl === control;
45886
45935
  return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "controlTools" },
45887
45936
  react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_treeItemLabelComponent__WEBPACK_IMPORTED_MODULE_1__["TreeItemLabelComponent"], { label: control.name, bracket: bracket, onClick: function () { return _this.props.onClick(); }, onChange: function (name) { return _this.onRename(name); }, setRenaming: function (renaming) { return _this.setState({ isRenaming: renaming }); }, renaming: this.state.isRenaming }),
45888
- !draggingSelf && this.props.dragOverHover && this.props.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].CENTER && control instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_5__["Container"] && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](react__WEBPACK_IMPORTED_MODULE_3__["Fragment"], null,
45937
+ !draggingSelf && this.props.isDragOver && this.props.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].CENTER && control instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_5__["Container"] && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](react__WEBPACK_IMPORTED_MODULE_3__["Fragment"], null,
45889
45938
  react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "makeChild icon", onClick: function () { return _this.highlight(); }, title: "Make Child" },
45890
45939
  react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("img", { src: makeChildOfContainerIcon })))),
45891
45940
  !this.state.isRenaming && this.props.isHovered && this.props.globalState.draggedControl === null && this.props.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](react__WEBPACK_IMPORTED_MODULE_3__["Fragment"], null,
@@ -46101,14 +46150,14 @@ var SceneExplorerComponent = /** @class */ (function (_super) {
46101
46150
  data.found = true;
46102
46151
  if (!goNext) {
46103
46152
  if (data.previousOne) {
46104
- this.props.globalState.onSelectionChangedObservable.notifyObservers(data.previousOne);
46153
+ this.props.globalState.select(data.previousOne);
46105
46154
  }
46106
46155
  return true;
46107
46156
  }
46108
46157
  }
46109
46158
  else {
46110
46159
  if (data.found) {
46111
- this.props.globalState.onSelectionChangedObservable.notifyObservers(item);
46160
+ this.props.globalState.select(item);
46112
46161
  return true;
46113
46162
  }
46114
46163
  data.previousOne = item;
@@ -46122,9 +46171,7 @@ var SceneExplorerComponent = /** @class */ (function (_super) {
46122
46171
  return false;
46123
46172
  };
46124
46173
  SceneExplorerComponent.prototype.processKeys = function (keyEvent) {
46125
- if (!this.state.selectedEntity) {
46126
- return;
46127
- }
46174
+ var _this = this;
46128
46175
  // if typing inside a text box, don't process keys
46129
46176
  if (keyEvent.target.localName === "input")
46130
46177
  return;
@@ -46141,39 +46188,49 @@ var SceneExplorerComponent = /** @class */ (function (_super) {
46141
46188
  break;
46142
46189
  case "Enter":
46143
46190
  case "ArrowRight":
46144
- var reservedDataStore = this.state.selectedEntity.reservedDataStore;
46145
- if (reservedDataStore && reservedDataStore.setExpandedState) {
46146
- reservedDataStore.setExpandedState(true);
46147
- }
46191
+ this.props.globalState.selectedControls.forEach(function (node) {
46192
+ var reservedDataStore = node.reservedDataStore;
46193
+ if (reservedDataStore && reservedDataStore.setExpandedState) {
46194
+ reservedDataStore.setExpandedState(true);
46195
+ }
46196
+ });
46148
46197
  keyEvent.preventDefault();
46198
+ this.forceUpdate();
46149
46199
  return;
46150
46200
  case "ArrowLeft":
46151
- var reservedDataStore = this.state.selectedEntity.reservedDataStore;
46152
- if (reservedDataStore && reservedDataStore.setExpandedState) {
46153
- reservedDataStore.setExpandedState(false);
46154
- }
46201
+ this.props.globalState.selectedControls.forEach(function (node) {
46202
+ var reservedDataStore = node.reservedDataStore;
46203
+ console.log(reservedDataStore);
46204
+ if (reservedDataStore && reservedDataStore.setExpandedState) {
46205
+ reservedDataStore.setExpandedState(false);
46206
+ }
46207
+ });
46155
46208
  keyEvent.preventDefault();
46209
+ this.forceUpdate();
46156
46210
  return;
46157
- break;
46158
46211
  case "Delete":
46159
46212
  case "Backspace":
46160
46213
  if (this.state.selectedEntity !== this.props.globalState.guiTexture.getChildren()[0]) {
46161
46214
  this.state.selectedEntity.dispose();
46162
- this.forceUpdate();
46215
+ this.props.globalState.selectedControls.forEach(function (node) {
46216
+ if (node !== _this.props.globalState.guiTexture.getChildren()[0]) {
46217
+ node.dispose();
46218
+ }
46219
+ _this.forceUpdate();
46220
+ });
46163
46221
  }
46164
46222
  break;
46165
- default:
46166
- break;
46167
46223
  }
46168
46224
  if (!search) {
46169
46225
  return;
46170
46226
  }
46171
46227
  keyEvent.preventDefault();
46172
46228
  if (scene) {
46229
+ var selectedEntity = this.props.globalState.selectedControls[this.props.globalState.selectedControls.length - 1];
46173
46230
  var data = {};
46174
- if (!this.findSiblings(null, scene.rootNodes, this.state.selectedEntity, goNext, data)) {
46175
- if (!this.findSiblings(null, scene.materials, this.state.selectedEntity, goNext, data)) {
46176
- this.findSiblings(null, scene.textures, this.state.selectedEntity, goNext, data);
46231
+ if (!this.findSiblings(null, scene.rootNodes, selectedEntity, goNext, data)) {
46232
+ if (!this.findSiblings(null, scene.materials, selectedEntity, goNext, data)) {
46233
+ this.findSiblings(null, scene.textures, selectedEntity, goNext, data);
46177
46234
  }
46178
46235
  }
46179
46236
  }
@@ -46186,17 +46243,18 @@ var SceneExplorerComponent = /** @class */ (function (_super) {
46186
46243
  }
46187
46244
  var guiElements = scene.textures.filter(function (t) { return t.getClassName() === "AdvancedDynamicTexture"; });
46188
46245
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "tree", onDrop: function (event) {
46246
+ _this.props.globalState.onDropObservable.notifyObservers();
46189
46247
  _this.props.globalState.onParentingChangeObservable.notifyObservers(null);
46190
46248
  }, onDragOver: function (event) {
46191
46249
  event.preventDefault();
46192
46250
  }, onClick: function (event) {
46193
46251
  if (!_this.props.globalState.selectionLock) {
46194
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
46252
+ _this.props.globalState.setSelection([]);
46195
46253
  }
46196
46254
  else {
46197
46255
  _this.props.globalState.selectionLock = false;
46198
46256
  }
46199
- }, onContextMenu: function (ev) { return ev.preventDefault(); } }, guiElements && guiElements.length > 0 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_treeItemComponent__WEBPACK_IMPORTED_MODULE_2__["TreeItemComponent"], { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntity: this.state.selectedEntity, items: guiElements, label: "GUI", offset: 1, filter: this.state.filter }))));
46257
+ }, onContextMenu: function (ev) { return ev.preventDefault(); } }, guiElements && guiElements.length > 0 && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_treeItemComponent__WEBPACK_IMPORTED_MODULE_2__["TreeItemComponent"], { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, selectedEntities: this.props.globalState.selectedControls, items: guiElements, label: "GUI", offset: 1, filter: this.state.filter }))));
46200
46258
  };
46201
46259
  SceneExplorerComponent.prototype.onClose = function () {
46202
46260
  if (!this.props.onClose) {
@@ -46212,7 +46270,9 @@ var SceneExplorerComponent = /** @class */ (function (_super) {
46212
46270
  };
46213
46271
  SceneExplorerComponent.prototype.render = function () {
46214
46272
  var _this = this;
46215
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "ge-sceneExplorer", tabIndex: 0, onKeyDown: function (keyEvent) { return _this.processKeys(keyEvent); } }, this.renderContent()));
46273
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "ge-sceneExplorer", tabIndex: 0, onKeyDown: function (keyEvent) { return _this.processKeys(keyEvent); } },
46274
+ this.props.children,
46275
+ this.renderContent()));
46216
46276
  };
46217
46277
  return SceneExplorerComponent;
46218
46278
  }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
@@ -46297,13 +46357,11 @@ var TreeItemComponent = /** @class */ (function (_super) {
46297
46357
  }
46298
46358
  var items = nextProps.items;
46299
46359
  if (items && items.length) {
46300
- if (nextProps.selectedEntity) {
46301
- for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
46302
- var item = items_1[_i];
46303
- if (_tools__WEBPACK_IMPORTED_MODULE_5__["Tools"].LookForItem(item, nextProps.selectedEntity)) {
46304
- nextState.isExpanded = true;
46305
- return true;
46306
- }
46360
+ for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
46361
+ var item = items_1[_i];
46362
+ if (_tools__WEBPACK_IMPORTED_MODULE_5__["Tools"].LookForItems(item, nextProps.selectedEntities)) {
46363
+ nextState.isExpanded = true;
46364
+ return true;
46307
46365
  }
46308
46366
  }
46309
46367
  }
@@ -46350,7 +46408,7 @@ var TreeItemComponent = /** @class */ (function (_super) {
46350
46408
  }
46351
46409
  var sortedItems = _tools__WEBPACK_IMPORTED_MODULE_5__["Tools"].SortAndFilter(null, items)[0].getChildren();
46352
46410
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", null, sortedItems.map(function (item) {
46353
- return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_treeItemSelectableComponent__WEBPACK_IMPORTED_MODULE_4__["TreeItemSelectableComponent"], { extensibilityGroups: _this.props.extensibilityGroups, key: item.uniqueId !== undefined && item.uniqueId !== null ? item.uniqueId : item.name, offset: _this.props.offset + 1, selectedEntity: _this.props.selectedEntity, entity: item, globalState: _this.props.globalState, filter: _this.props.filter }));
46411
+ return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_treeItemSelectableComponent__WEBPACK_IMPORTED_MODULE_4__["TreeItemSelectableComponent"], { extensibilityGroups: _this.props.extensibilityGroups, key: item.uniqueId !== undefined && item.uniqueId !== null ? item.uniqueId : item.name, offset: _this.props.offset + 1, selectedEntities: _this.props.selectedEntities, entity: item, globalState: _this.props.globalState, filter: _this.props.filter }));
46354
46412
  })));
46355
46413
  };
46356
46414
  TreeItemComponent._ContextMenuUniqueIdGenerator = 0;
@@ -46453,9 +46511,15 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46453
46511
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(TreeItemSelectableComponent, _super);
46454
46512
  function TreeItemSelectableComponent(props) {
46455
46513
  var _this = _super.call(this, props) || this;
46456
- _this.state = { dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE, isHovered: false, isSelected: _this.props.entity === _this.props.selectedEntity };
46457
- _this._onSelectionChangedObservable = props.globalState.onSelectionChangedObservable.add(function (selection) {
46458
- _this.setState({ isSelected: selection === _this.props.entity });
46514
+ /** flag flipped onDragEnter if dragOver is already true
46515
+ * prevents dragLeave from immediately setting dragOver to false
46516
+ * required to make dragging work as expected
46517
+ * see: see: https://github.com/transformation-dev/matrx/tree/master/packages/dragster
46518
+ */
46519
+ _this._secondDragEnter = false;
46520
+ _this.state = { dragOver: false, dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE, isHovered: false, isSelected: _this.props.selectedEntities.includes(_this.props.entity) };
46521
+ _this._onSelectionChangedObservable = props.globalState.onSelectionChangedObservable.add(function () {
46522
+ _this.setState({ isSelected: _this.props.globalState.selectedControls.includes(_this.props.entity) });
46459
46523
  });
46460
46524
  _this._onDraggingEndObservable = props.globalState.onDraggingEndObservable.add(function () {
46461
46525
  _this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE });
@@ -46466,21 +46530,19 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46466
46530
  return _this;
46467
46531
  }
46468
46532
  TreeItemSelectableComponent.prototype.switchExpandedState = function () {
46469
- this.props.entity.reservedDataStore.isExpanded = !this.props.entity.reservedDataStore.isExpanded;
46533
+ this.props.entity.reservedDataStore.setExpandedState(!this.props.entity.reservedDataStore.isExpanded);
46470
46534
  };
46471
46535
  TreeItemSelectableComponent.prototype.shouldComponentUpdate = function (nextProps, nextState) {
46472
46536
  //if the next entity is going to be selected then we want to highlight it so update
46473
- if (nextProps.entity === nextProps.selectedEntity) {
46537
+ if (nextProps.selectedEntities.includes(nextProps.entity)) {
46474
46538
  nextState.isSelected = true;
46475
46539
  return true;
46476
46540
  }
46477
46541
  else {
46478
46542
  nextState.isSelected = false;
46479
46543
  }
46480
- if (nextProps.selectedEntity) {
46481
- if (_tools__WEBPACK_IMPORTED_MODULE_1__["Tools"].LookForItem(nextProps.entity, nextProps.selectedEntity)) {
46482
- return true;
46483
- }
46544
+ if (_tools__WEBPACK_IMPORTED_MODULE_1__["Tools"].LookForItems(nextProps.entity, nextProps.selectedEntities)) {
46545
+ return true;
46484
46546
  }
46485
46547
  return true;
46486
46548
  };
@@ -46496,11 +46558,8 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46496
46558
  this.props.globalState.onParentingChangeObservable.remove(this._onDraggingStartObservable);
46497
46559
  };
46498
46560
  TreeItemSelectableComponent.prototype.onSelect = function () {
46499
- if (!this.props.globalState.onSelectionChangedObservable) {
46500
- return;
46501
- }
46502
46561
  var entity = this.props.entity;
46503
- this.props.globalState.onSelectionChangedObservable.notifyObservers(entity);
46562
+ this.props.globalState.select(entity);
46504
46563
  this.props.globalState.selectionLock = true;
46505
46564
  };
46506
46565
  TreeItemSelectableComponent.prototype.renderChildren = function (isExpanded, offset) {
@@ -46518,12 +46577,14 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46518
46577
  if (item.name == "Art-Board-Background") {
46519
46578
  return null;
46520
46579
  }
46521
- return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](TreeItemSelectableComponent, { globalState: _this.props.globalState, mustExpand: _this.props.mustExpand, extensibilityGroups: _this.props.extensibilityGroups, selectedEntity: _this.props.selectedEntity, key: i, offset: _this.props.offset + (offset ? 2 : 0), entity: item, filter: _this.props.filter }));
46580
+ return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"](TreeItemSelectableComponent, { globalState: _this.props.globalState, mustExpand: _this.props.mustExpand, extensibilityGroups: _this.props.extensibilityGroups, selectedEntities: _this.props.selectedEntities, key: i, offset: _this.props.offset + (offset ? 2 : 0), entity: item, filter: _this.props.filter }));
46522
46581
  });
46523
46582
  };
46524
46583
  TreeItemSelectableComponent.prototype.render = function () {
46525
46584
  var _this = this;
46526
- if (this.props.entity === this.props.globalState.workbench.trueRootContainer || this.props.entity === this.props.globalState.workbench.visibleRegionContainer || this.props.entity === this.props.globalState.workbench.panAndZoomContainer) {
46585
+ if (this.props.entity === this.props.globalState.workbench.trueRootContainer ||
46586
+ this.props.entity === this.props.globalState.workbench.visibleRegionContainer ||
46587
+ this.props.entity === this.props.globalState.workbench.panAndZoomContainer) {
46527
46588
  return this.renderChildren(true, false);
46528
46589
  }
46529
46590
  var marginStyle = {
@@ -46531,10 +46592,12 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46531
46592
  };
46532
46593
  var entity = this.props.entity;
46533
46594
  if (!entity.reservedDataStore) {
46534
- entity.reservedDataStore = {};
46535
- entity.reservedDataStore.isExpanded = true;
46595
+ entity.reservedDataStore = {
46596
+ isExpanded: true,
46597
+ setExpandedState: function (expanded) { return entity.reservedDataStore.isExpanded = expanded; }
46598
+ };
46536
46599
  }
46537
- var isExpanded = entity.reservedDataStore.isExpanded || _tools__WEBPACK_IMPORTED_MODULE_1__["Tools"].LookForItem(this.props.entity, this.props.selectedEntity);
46600
+ var isExpanded = entity.reservedDataStore.isExpanded || _tools__WEBPACK_IMPORTED_MODULE_1__["Tools"].LookForItems(this.props.entity, this.props.selectedEntities);
46538
46601
  entity.reservedDataStore.isExpanded = isExpanded;
46539
46602
  var chevron = isExpanded ? react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("img", { src: expandedIcon, className: "icon" }) : react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("img", { src: collapsedIcon, className: "icon" });
46540
46603
  var children = entity.getClassName() === "MultiMaterial" ? [] : _tools__WEBPACK_IMPORTED_MODULE_1__["Tools"].SortAndFilter(entity, entity.getChildren ? entity.getChildren() : entity.children);
@@ -46557,43 +46620,60 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46557
46620
  var className = "itemContainer"; //setting class name plus whatever extras based on states
46558
46621
  className += this.state.isSelected && this.props.globalState.draggedControl === null ? " selected" : "";
46559
46622
  className += this.state.isHovered && this.props.globalState.draggedControl === null ? " hover" : "";
46560
- className += this.dragOverHover && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].CENTER && entity instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_6__["Container"] ? " parent" : "";
46623
+ className += this.state.dragOver && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].CENTER && entity instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_6__["Container"] ? " parent" : "";
46561
46624
  className += this.props.globalState.draggedControl === this.props.entity ? " dragged" : "";
46562
46625
  className +=
46563
- this.dragOverHover && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].ABOVE && this.props.globalState.draggedControl != null && entity.parent ? " seAbove" : "";
46626
+ this.state.dragOver && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].ABOVE && entity.parent ? " seAbove" : "";
46564
46627
  className +=
46565
- this.dragOverHover && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].BELOW && this.props.globalState.draggedControl != null && entity.parent ? " seBelow" : "";
46628
+ this.state.dragOver && this.state.dragOverLocation == _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].BELOW && entity.parent ? " seBelow" : "";
46566
46629
  return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", null,
46567
- react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: className, style: marginStyle, draggable: entity.parent ? true : false, onMouseOver: function () { return _this.setState({ isHovered: true }); }, onMouseLeave: function () { return _this.setState({ isHovered: false }); }, onClick: function () {
46630
+ react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: className, style: marginStyle, onPointerUp: function () {
46568
46631
  _this.onSelect();
46569
- }, onDragStart: function (event) {
46570
- _this.props.globalState.draggedControl = entity;
46632
+ }, onPointerEnter: function () { return _this.setState({ isHovered: true }); }, onPointerLeave: function () { return _this.setState({ isHovered: false }); }, onDragStart: function () {
46633
+ _this.props.globalState.draggedControl = _this.props.entity;
46571
46634
  _this.props.globalState.onDraggingStartObservable.notifyObservers();
46572
- }, onDrop: function (event) {
46573
- _this.drop();
46574
- }, onDragEnd: function (event) {
46635
+ }, onDragEnd: function () {
46575
46636
  _this.props.globalState.onDraggingEndObservable.notifyObservers();
46576
- }, onDragOver: function (event) {
46637
+ }, draggable: entity.parent ? true : false, onDrop: function (event) {
46638
+ _this.drop();
46639
+ event.preventDefault();
46640
+ }, onDragEnter: function (event) {
46641
+ event.preventDefault();
46577
46642
  _this.dragOver(event);
46578
- }, onDragLeave: function (event) {
46579
- _this.dragOverHover = false;
46580
- _this.forceUpdate();
46643
+ }, onDragOver: function (event) { return _this.updateDragOverLocation(event); }, onDragLeave: function () {
46644
+ // don't immediately set dragOver to false
46645
+ if (_this._secondDragEnter) {
46646
+ _this._secondDragEnter = false;
46647
+ }
46648
+ else {
46649
+ _this.setState({ dragOver: false });
46650
+ }
46581
46651
  } },
46582
46652
  hasChildren && (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "arrow icon", onClick: function () { return _this.switchExpandedState(); } }, chevron)),
46583
- react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_5__["ControlTreeItemComponent"], { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, control: entity, onClick: function () { }, isHovered: this.state.isHovered, dragOverHover: this.dragOverHover, dragOverLocation: this.state.dragOverLocation })),
46653
+ react__WEBPACK_IMPORTED_MODULE_3__["createElement"](_entities_gui_controlTreeItemComponent__WEBPACK_IMPORTED_MODULE_5__["ControlTreeItemComponent"], { globalState: this.props.globalState, extensibilityGroups: this.props.extensibilityGroups, control: entity, onClick: function () { }, isHovered: this.state.isHovered, isDragOver: this.state.dragOver, dragOverLocation: this.state.dragOverLocation })),
46584
46654
  this.renderChildren(isExpanded)));
46585
46655
  };
46586
46656
  TreeItemSelectableComponent.prototype.dragOver = function (event) {
46587
- //check the positiions of the mouse cursor.
46657
+ this.updateDragOverLocation(event);
46658
+ // if we've already hovered the element, record a new drag event
46659
+ if (this.state.dragOver) {
46660
+ this._secondDragEnter = true;
46661
+ }
46662
+ else {
46663
+ this.setState({ dragOver: true });
46664
+ }
46665
+ };
46666
+ TreeItemSelectableComponent.prototype.updateDragOverLocation = function (event) {
46667
+ //check the positions of the mouse cursor.
46588
46668
  var target = event.target;
46589
46669
  var rect = target.getBoundingClientRect();
46590
46670
  var y = event.clientY - rect.top;
46591
46671
  if (this.props.entity instanceof _babylonjs_gui_2D_controls_container__WEBPACK_IMPORTED_MODULE_6__["Container"]) {
46592
- if (y < CONTROL_HEIGHT / 3) {
46593
- //split in thirds
46672
+ if (y < CONTROL_HEIGHT / 5) {
46673
+ //split in fifths
46594
46674
  this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].ABOVE });
46595
46675
  }
46596
- else if (y > (2 * CONTROL_HEIGHT) / 3) {
46676
+ else if (y > (4 * CONTROL_HEIGHT) / 5) {
46597
46677
  this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].BELOW });
46598
46678
  }
46599
46679
  else {
@@ -46609,19 +46689,17 @@ var TreeItemSelectableComponent = /** @class */ (function (_super) {
46609
46689
  this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].BELOW });
46610
46690
  }
46611
46691
  }
46612
- event.preventDefault();
46613
- this.dragOverHover = true;
46614
- this.forceUpdate();
46615
46692
  };
46616
46693
  TreeItemSelectableComponent.prototype.drop = function () {
46694
+ this.props.globalState.onDropObservable.notifyObservers();
46617
46695
  var control = this.props.entity;
46618
46696
  if (this.props.globalState.draggedControl != control) {
46619
- this.dragOverHover = false;
46620
46697
  this.props.globalState.draggedControlDirection = this.state.dragOverLocation;
46621
46698
  this.props.globalState.onParentingChangeObservable.notifyObservers(this.props.entity);
46622
46699
  }
46623
46700
  this.props.globalState.draggedControl = null;
46624
- this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE });
46701
+ this.setState({ dragOverLocation: _globalState__WEBPACK_IMPORTED_MODULE_4__["DragOverLocation"].NONE, dragOver: false });
46702
+ this._secondDragEnter = false;
46625
46703
  };
46626
46704
  return TreeItemSelectableComponent;
46627
46705
  }(react__WEBPACK_IMPORTED_MODULE_3__["Component"]));
@@ -46714,6 +46792,9 @@ var Rect = /** @class */ (function () {
46714
46792
  this.right = right;
46715
46793
  this.bottom = bottom;
46716
46794
  }
46795
+ Rect.prototype.clone = function () {
46796
+ return new Rect(this.left, this.top, this.right, this.bottom);
46797
+ };
46717
46798
  Object.defineProperty(Rect.prototype, "center", {
46718
46799
  get: function () {
46719
46800
  var topLeft = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_1__["Vector2"](this.left, this.top);
@@ -47038,68 +47119,57 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47038
47119
  };
47039
47120
  _this._onMove = function () {
47040
47121
  var scene = _this.props.globalState.workbench._scene;
47041
- var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
47042
47122
  if (_this.state.scalePointDragging !== -1) {
47043
- if (selectedGuiNodes.length === 1) {
47044
- var node = selectedGuiNodes[0];
47045
- var inRTT = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].mousePointerToRTTSpace(node, scene.pointerX, scene.pointerY);
47046
- var inNodeSpace = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToLocalNodeSpace(node, inRTT.x, inRTT.y, undefined, _this._storedValues);
47047
- _this._dragLocalBounds(inNodeSpace);
47048
- _this._updateNodeFromLocalBounds(node, _this.state.scalePointDragging);
47049
- //convert to percentage
47050
- if (_this._responsive) {
47051
- _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].convertToPercentage(node, ["left", "top"]);
47052
- }
47053
- _this.props.globalState.workbench._liveGuiTextureRerender = false;
47054
- _this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
47055
- }
47123
+ var node = _this.props.control;
47124
+ var inRTT = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].mousePointerToRTTSpace(node, scene.pointerX, scene.pointerY);
47125
+ var inNodeSpace = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToLocalNodeSpace(node, inRTT.x, inRTT.y, undefined, _this._storedValues);
47126
+ _this._dragLocalBounds(inNodeSpace);
47127
+ _this._updateNodeFromLocalBounds();
47128
+ _this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
47056
47129
  }
47057
47130
  if (_this.state.isRotating) {
47058
- selectedGuiNodes.forEach(function (node, index) {
47059
- var nodeRotationData = _this._rotation.nodeRotations[index];
47060
- var angle = Math.atan2(scene.pointerY - _this._rotation.pivot.y, scene.pointerX - _this._rotation.pivot.x);
47061
- node.rotation = nodeRotationData + (angle - _this._rotation.initialAngleToPivot);
47062
- });
47131
+ var angle = Math.atan2(scene.pointerY - _this._rotation.pivot.y, scene.pointerX - _this._rotation.pivot.x);
47132
+ for (var _i = 0, _a = _this.props.globalState.selectedControls; _i < _a.length; _i++) {
47133
+ var control = _a[_i];
47134
+ var oldRotation = control.rotation;
47135
+ control.rotation += (angle - _this._rotation.initialAngleToPivot);
47136
+ _this.props.globalState.onPropertyChangedObservable.notifyObservers({
47137
+ object: control,
47138
+ property: 'rotation',
47139
+ value: control.rotation,
47140
+ initialValue: oldRotation
47141
+ });
47142
+ }
47143
+ _this._rotation.initialAngleToPivot = angle;
47063
47144
  _this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
47064
47145
  }
47065
47146
  };
47066
47147
  _this._beginDraggingScalePoint = function (scalePointIndex) {
47067
- var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
47068
47148
  _this.setState({ scalePointDragging: scalePointIndex });
47069
- if (selectedGuiNodes.length > 0) {
47070
- var node = selectedGuiNodes[0];
47071
- _this._localBounds = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].computeLocalBounds(node);
47072
- _this._storedValues = new _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["Rect"](node.leftInPixels, node.topInPixels, node.leftInPixels + node.widthInPixels, node.topInPixels + node.heightInPixels);
47149
+ var node = _this.props.control;
47150
+ _this._localBounds = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].computeLocalBounds(node);
47151
+ _this._storedValues = new _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["Rect"](node.leftInPixels, node.topInPixels, node.leftInPixels + node.widthInPixels, node.topInPixels + node.heightInPixels);
47152
+ for (var _i = 0, _a = _this.props.globalState.selectedControls; _i < _a.length; _i++) {
47153
+ var node_1 = _a[_i];
47154
+ node_1.metadata.localBounds = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].computeLocalBounds(node_1);
47155
+ node_1.metadata.storedValues = new _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["Rect"](node_1.leftInPixels, node_1.topInPixels, node_1.leftInPixels + node_1.widthInPixels, node_1.topInPixels + node_1.heightInPixels);
47073
47156
  }
47074
47157
  };
47075
47158
  _this._beginRotate = function () {
47076
47159
  var scene = _this.props.globalState.workbench._scene;
47077
- var selectedGuiNodes = _this.props.globalState.workbench.selectedGuiNodes;
47078
47160
  var pivot;
47079
- if (selectedGuiNodes.length === 1) {
47080
- var node = selectedGuiNodes[0];
47081
- var nodeSpace = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"](node.transformCenterX, node.transformCenterY);
47082
- var rtt = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined);
47083
- var canvas = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToCanvasSpace(rtt.x, rtt.y);
47084
- pivot = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"](canvas.x, canvas.y);
47085
- }
47086
- else {
47087
- pivot = _this.state.canvasBounds.center;
47088
- }
47161
+ var node = _this.props.control;
47162
+ var nodeSpace = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"](node.transformCenterX, node.transformCenterY);
47163
+ var rtt = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined);
47164
+ var canvas = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToCanvasSpace(rtt.x, rtt.y);
47165
+ pivot = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"](canvas.x, canvas.y);
47089
47166
  var initialAngleToPivot = Math.atan2(scene.pointerY - pivot.y, scene.pointerX - pivot.x);
47090
- var nodeRotations = [];
47091
- selectedGuiNodes.forEach(function (node) {
47092
- nodeRotations.push(node.rotation);
47093
- });
47094
47167
  _this._rotation = {
47095
47168
  pivot: pivot,
47096
47169
  initialAngleToPivot: initialAngleToPivot,
47097
- nodeRotations: nodeRotations
47098
47170
  };
47099
47171
  _this.setState({ isRotating: true });
47100
47172
  };
47101
- _this.props.globalState.guiGizmo = _this;
47102
- _this._responsive = _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["DataStorage"].ReadBoolean("Responsive", true);
47103
47173
  var scalePoints = [];
47104
47174
  for (var vertical = ScalePointPosition.Top; vertical <= ScalePointPosition.Bottom; vertical++) {
47105
47175
  for (var horizontal = ScalePointPosition.Left; horizontal <= ScalePointPosition.Right; horizontal++) {
@@ -47114,127 +47184,83 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47114
47184
  scalePointDragging: -1,
47115
47185
  isRotating: false
47116
47186
  };
47117
- props.globalState.onSelectionChangedObservable.add(function (selection) {
47118
- _this.updateGizmo(true);
47119
- });
47120
- _this.props.globalState.onResponsiveChangeObservable.add(function (value) {
47121
- _this._responsive = value;
47122
- });
47123
- _this.props.globalState.onGizmoUpdateRequireObservable.add(function () {
47187
+ _this._gizmoUpdateObserver = _this.props.globalState.onGizmoUpdateRequireObservable.add(function () {
47124
47188
  _this.updateGizmo(true);
47125
47189
  });
47190
+ _this._pointerUpObserver = _this.props.globalState.onPointerUpObservable.add(function (evt) { return _this._onUp(evt); });
47191
+ _this._pointerMoveObserver = _this.props.globalState.onPointerMoveObservable.add(function () { return _this._onMove(); });
47126
47192
  _this.updateGizmo(true);
47127
47193
  return _this;
47128
47194
  }
47129
- GuiGizmoComponent.prototype.componentDidMount = function () { };
47195
+ GuiGizmoComponent.prototype.componentWillUnmount = function () {
47196
+ this.props.globalState.onGizmoUpdateRequireObservable.remove(this._gizmoUpdateObserver);
47197
+ this.props.globalState.onPointerUpObservable.remove(this._pointerUpObserver);
47198
+ this.props.globalState.onPointerMoveObservable.remove(this._pointerMoveObserver);
47199
+ };
47130
47200
  /**
47131
47201
  * Update the gizmo's positions
47132
47202
  * @param force should the update be forced. otherwise it will be updated only when the pointer is down
47133
47203
  */
47134
47204
  GuiGizmoComponent.prototype.updateGizmo = function (force) {
47135
- var _this = this;
47136
- var selectedGuiNodes = this.props.globalState.workbench.selectedGuiNodes;
47137
- if (selectedGuiNodes.length > 0 && (force || this.state.scalePointDragging !== -1)) {
47138
- // Calculating the offsets for each scale point.
47139
- var half_1 = 1 / 2;
47140
- var canvasBounds_1 = new _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["Rect"](Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
47141
- selectedGuiNodes.forEach(function (node) {
47142
- var localBounds = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].computeLocalBounds(node);
47143
- _this.state.scalePoints.forEach(function (scalePoint) {
47144
- var nodeSpace = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"]();
47145
- switch (scalePoint.horizontalPosition) {
47146
- case ScalePointPosition.Left:
47147
- nodeSpace.x = localBounds.left;
47148
- break;
47149
- case ScalePointPosition.Center:
47150
- nodeSpace.x = localBounds.center.x;
47151
- break;
47152
- case ScalePointPosition.Right:
47153
- nodeSpace.x = localBounds.right;
47154
- break;
47155
- }
47156
- switch (scalePoint.verticalPosition) {
47157
- case ScalePointPosition.Top:
47158
- nodeSpace.y = localBounds.top;
47159
- break;
47160
- case ScalePointPosition.Center:
47161
- nodeSpace.y = localBounds.center.y;
47162
- break;
47163
- case ScalePointPosition.Bottom:
47164
- nodeSpace.y = localBounds.bottom;
47165
- break;
47166
- }
47167
- if (scalePoint.isPivot) {
47168
- // Calculate the pivot point
47169
- var pivotX = (node.transformCenterX - 0.5) * 2;
47170
- var pivotY = (node.transformCenterY - 0.5) * 2;
47171
- nodeSpace.x = node.widthInPixels * half_1 * pivotX;
47172
- nodeSpace.y = node.heightInPixels * half_1 * pivotY;
47173
- }
47174
- var rtt = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined);
47175
- var canvas = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToCanvasSpace(rtt.x, rtt.y);
47176
- if (canvas.x < canvasBounds_1.left) {
47177
- canvasBounds_1.left = canvas.x;
47178
- }
47179
- if (canvas.x > canvasBounds_1.right) {
47180
- canvasBounds_1.right = canvas.x;
47181
- }
47182
- if (canvas.y < canvasBounds_1.top) {
47183
- canvasBounds_1.top = canvas.y;
47184
- }
47185
- if (canvas.y > canvasBounds_1.bottom) {
47186
- canvasBounds_1.bottom = canvas.y;
47187
- }
47188
- // if we have a single control selected, put scale points at its edges, and rotate based on the rotation of the control
47189
- if (selectedGuiNodes.length === 1) {
47190
- scalePoint.position.x = canvas.x;
47191
- scalePoint.position.y = canvas.y;
47192
- scalePoint.rotation = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getRotation(node) * (180 / Math.PI);
47193
- }
47194
- });
47195
- });
47196
- // if we are in multiselect mode, use the bounds to determine the scale point locations, and set rotation = 0
47197
- if (selectedGuiNodes.length > 1) {
47198
- this.state.scalePoints.forEach(function (scalePoint) {
47199
- switch (scalePoint.verticalPosition) {
47200
- case ScalePointPosition.Top:
47201
- scalePoint.position.y = canvasBounds_1.top;
47202
- break;
47203
- case ScalePointPosition.Center:
47204
- scalePoint.position.y = canvasBounds_1.center.y;
47205
- break;
47206
- case ScalePointPosition.Bottom:
47207
- scalePoint.position.y = canvasBounds_1.bottom;
47208
- break;
47209
- }
47210
- switch (scalePoint.horizontalPosition) {
47211
- case ScalePointPosition.Left:
47212
- scalePoint.position.x = canvasBounds_1.left;
47213
- break;
47214
- case ScalePointPosition.Center:
47215
- scalePoint.position.x = canvasBounds_1.center.x;
47216
- break;
47217
- case ScalePointPosition.Right:
47218
- scalePoint.position.x = canvasBounds_1.right;
47219
- break;
47220
- }
47221
- scalePoint.rotation = 0;
47222
- });
47205
+ var node = this.props.control;
47206
+ // Calculating the offsets for each scale point.
47207
+ var half = 1 / 2;
47208
+ var canvasBounds = new _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["Rect"](Number.MAX_VALUE, Number.MAX_VALUE, 0, 0);
47209
+ var localBounds = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].computeLocalBounds(node);
47210
+ this.state.scalePoints.forEach(function (scalePoint) {
47211
+ var nodeSpace = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_2__["Vector2"]();
47212
+ switch (scalePoint.horizontalPosition) {
47213
+ case ScalePointPosition.Left:
47214
+ nodeSpace.x = localBounds.left;
47215
+ break;
47216
+ case ScalePointPosition.Center:
47217
+ nodeSpace.x = localBounds.center.x;
47218
+ break;
47219
+ case ScalePointPosition.Right:
47220
+ nodeSpace.x = localBounds.right;
47221
+ break;
47223
47222
  }
47224
- this.setState({
47225
- canvasBounds: canvasBounds_1,
47226
- scalePoints: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])([], this.state.scalePoints, true),
47227
- });
47228
- }
47229
- else {
47230
- this.forceUpdate();
47231
- }
47232
- };
47233
- GuiGizmoComponent.prototype.onUp = function (evt) {
47234
- this._onUp(evt);
47235
- };
47236
- GuiGizmoComponent.prototype.onMove = function (evt) {
47237
- this._onMove();
47223
+ switch (scalePoint.verticalPosition) {
47224
+ case ScalePointPosition.Top:
47225
+ nodeSpace.y = localBounds.top;
47226
+ break;
47227
+ case ScalePointPosition.Center:
47228
+ nodeSpace.y = localBounds.center.y;
47229
+ break;
47230
+ case ScalePointPosition.Bottom:
47231
+ nodeSpace.y = localBounds.bottom;
47232
+ break;
47233
+ }
47234
+ if (scalePoint.isPivot) {
47235
+ // Calculate the pivot point
47236
+ var pivotX = (node.transformCenterX - 0.5) * 2;
47237
+ var pivotY = (node.transformCenterY - 0.5) * 2;
47238
+ nodeSpace.x = node.widthInPixels * half * pivotX;
47239
+ nodeSpace.y = node.heightInPixels * half * pivotY;
47240
+ }
47241
+ var rtt = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].nodeToRTTSpace(node, nodeSpace.x, nodeSpace.y, undefined);
47242
+ var canvas = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].rttToCanvasSpace(rtt.x, rtt.y);
47243
+ if (canvas.x < canvasBounds.left) {
47244
+ canvasBounds.left = canvas.x;
47245
+ }
47246
+ if (canvas.x > canvasBounds.right) {
47247
+ canvasBounds.right = canvas.x;
47248
+ }
47249
+ if (canvas.y < canvasBounds.top) {
47250
+ canvasBounds.top = canvas.y;
47251
+ }
47252
+ if (canvas.y > canvasBounds.bottom) {
47253
+ canvasBounds.bottom = canvas.y;
47254
+ }
47255
+ // edges, and rotate based on the rotation of the control
47256
+ scalePoint.position.x = canvas.x;
47257
+ scalePoint.position.y = canvas.y;
47258
+ scalePoint.rotation = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getRotation(node) * (180 / Math.PI);
47259
+ });
47260
+ this.setState({
47261
+ canvasBounds: canvasBounds,
47262
+ scalePoints: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])([], this.state.scalePoints, true),
47263
+ });
47238
47264
  };
47239
47265
  GuiGizmoComponent.prototype._rotate = function (x, y, centerX, centerY, angle) {
47240
47266
  return {
@@ -47242,83 +47268,138 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47242
47268
  y: (x - centerX) * Math.sin(angle) + (y - centerY) * Math.cos(angle) + centerY,
47243
47269
  };
47244
47270
  };
47271
+ GuiGizmoComponent.prototype._modulo = function (dividend, divisor) {
47272
+ return ((dividend % divisor) + divisor) % divisor;
47273
+ };
47245
47274
  GuiGizmoComponent.prototype._dragLocalBounds = function (toPosition) {
47275
+ var _this = this;
47246
47276
  var scalePoint = this.state.scalePoints[this.state.scalePointDragging];
47277
+ var newBounds = this._localBounds.clone();
47247
47278
  if (scalePoint.horizontalPosition === ScalePointPosition.Left) {
47248
- this._localBounds.left = Math.min(this._localBounds.right, toPosition.x);
47249
- }
47250
- if (scalePoint.horizontalPosition === ScalePointPosition.Right) {
47251
- this._localBounds.right = Math.max(this._localBounds.left, toPosition.x);
47279
+ newBounds.left = Math.min(this._localBounds.right - 1, toPosition.x);
47252
47280
  }
47253
47281
  if (scalePoint.verticalPosition === ScalePointPosition.Left) {
47254
- this._localBounds.top = Math.min(this._localBounds.bottom, toPosition.y);
47255
- }
47256
- if (scalePoint.verticalPosition === ScalePointPosition.Bottom) {
47257
- this._localBounds.bottom = Math.max(this._localBounds.top, toPosition.y);
47258
- }
47259
- };
47260
- GuiGizmoComponent.prototype._updateNodeFromLocalBounds = function (node, scalePointIndex) {
47261
- var width = this._localBounds.right - this._localBounds.left;
47262
- var height = this._localBounds.bottom - this._localBounds.top;
47263
- var scalePoint = this.state.scalePoints[scalePointIndex];
47264
- var left = scalePoint.horizontalPosition === ScalePointPosition.Left && scalePoint.verticalPosition !== ScalePointPosition.Center;
47265
- var top = scalePoint.verticalPosition === ScalePointPosition.Top && scalePoint.horizontalPosition !== ScalePointPosition.Center;
47266
- // calculate the center point
47267
- var localRotation = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getRotation(node, true);
47268
- var localScaling = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getScale(node, true);
47269
- var absoluteCenter = this._localBounds.center;
47270
- var center = absoluteCenter.clone();
47271
- // move to pivot
47272
- center.multiplyInPlace(localScaling);
47273
- var cosRotation = Math.cos(localRotation);
47274
- var sinRotation = Math.sin(localRotation);
47275
- var cosRotation180 = Math.cos(localRotation + Math.PI);
47276
- var sinRotation180 = Math.sin(localRotation + Math.PI);
47277
- var widthDelta = (this._storedValues.width - width) * 0.5;
47278
- var heightDelta = (this._storedValues.height - height) * 0.5;
47279
- // alignment compensation
47280
- switch (node.horizontalAlignment) {
47281
- case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].HORIZONTAL_ALIGNMENT_LEFT:
47282
- center.x += (left ? widthDelta : -absoluteCenter.x) * cosRotation;
47283
- center.y += (left ? -widthDelta : absoluteCenter.x) * sinRotation;
47284
- break;
47285
- case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].HORIZONTAL_ALIGNMENT_RIGHT:
47286
- center.x += (left ? -widthDelta : absoluteCenter.x) * cosRotation;
47287
- center.y += (left ? widthDelta : -absoluteCenter.x) * sinRotation;
47288
- break;
47282
+ newBounds.top = Math.min(this._localBounds.bottom - 1, toPosition.y);
47289
47283
  }
47290
- switch (node.verticalAlignment) {
47291
- case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].VERTICAL_ALIGNMENT_TOP:
47292
- center.y += (top ? -heightDelta : absoluteCenter.y) * cosRotation180;
47293
- center.x += (top ? -heightDelta : absoluteCenter.y) * sinRotation180;
47294
- break;
47295
- case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].VERTICAL_ALIGNMENT_BOTTOM:
47296
- center.y += (top ? heightDelta : -absoluteCenter.y) * cosRotation180;
47297
- center.x += (top ? heightDelta : -absoluteCenter.y) * sinRotation180;
47298
- break;
47299
- }
47300
- // rotate the center around 0,0
47301
- var rotatedCenter = this._rotate(center.x, center.y, 0, 0, localRotation);
47302
- // round the values and set them
47303
- node.leftInPixels = round(this._storedValues.left + rotatedCenter.x);
47304
- node.topInPixels = round(this._storedValues.top + rotatedCenter.y);
47305
- node.widthInPixels = round(Math.max(10, width));
47306
- node.heightInPixels = round(Math.max(10, height));
47307
- if (node.typeName === "Image") {
47308
- node.autoScale = false;
47284
+ if (scalePoint.horizontalPosition === ScalePointPosition.Right) {
47285
+ newBounds.right = Math.max(this._localBounds.left + 1, toPosition.x);
47309
47286
  }
47310
- else if (node.typeName === "TextBlock") {
47311
- node.resizeToFit = false;
47287
+ if (scalePoint.verticalPosition === ScalePointPosition.Bottom) {
47288
+ newBounds.bottom = Math.max(this._localBounds.top + 1, toPosition.y);
47289
+ }
47290
+ // apply bounds changes to all controls
47291
+ var edges = ["left", "top", "right", "bottom"];
47292
+ var _loop_1 = function (node) {
47293
+ var initialBounds = node.metadata.localBounds;
47294
+ var nb = initialBounds.clone();
47295
+ // account for rotation: if other control is rotated 90 degrees
47296
+ // relative to primary control, we should modify top instead of left
47297
+ var rotationModifier = this_1._modulo((this_1.props.control.rotation - node.rotation), Math.PI * 2) / Math.PI * 2;
47298
+ edges.forEach(function (edge, index) {
47299
+ var modifiedIndex = Math.round(index + rotationModifier) % 4;
47300
+ var flipSign = ((index < 2) === (modifiedIndex < 2)) ? 1 : -1;
47301
+ nb[edges[modifiedIndex]] += (newBounds[edge] - _this._localBounds[edge]) * flipSign;
47302
+ });
47303
+ nb.left = Math.min(initialBounds.right - 1, nb.left);
47304
+ nb.top = Math.min(initialBounds.bottom - 1, nb.top);
47305
+ nb.right = Math.max(initialBounds.left + 1, nb.right);
47306
+ nb.bottom = Math.max(initialBounds.top + 1, nb.bottom);
47307
+ node.metadata.localBounds = nb;
47308
+ };
47309
+ var this_1 = this;
47310
+ for (var _i = 0, _a = this.props.globalState.selectedControls; _i < _a.length; _i++) {
47311
+ var node = _a[_i];
47312
+ _loop_1(node);
47312
47313
  }
47313
- if (this._responsive) {
47314
- _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].convertToPercentage(node);
47314
+ this._localBounds = newBounds;
47315
+ };
47316
+ GuiGizmoComponent.prototype._updateNodeFromLocalBounds = function () {
47317
+ var scalePoint = this.state.scalePoints[this.state.scalePointDragging];
47318
+ var left = scalePoint.horizontalPosition === ScalePointPosition.Left;
47319
+ var top = scalePoint.verticalPosition === ScalePointPosition.Top;
47320
+ for (var _i = 0, _a = this.props.globalState.selectedControls; _i < _a.length; _i++) {
47321
+ var selectedControl = _a[_i];
47322
+ var width = selectedControl.metadata.localBounds.width;
47323
+ var height = selectedControl.metadata.localBounds.height;
47324
+ // calculate the center point
47325
+ var localRotation = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getRotation(selectedControl, true);
47326
+ var localScaling = _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].getScale(selectedControl, true);
47327
+ var absoluteCenter = selectedControl.metadata.localBounds.center;
47328
+ var center = absoluteCenter.clone();
47329
+ // move to pivot
47330
+ center.multiplyInPlace(localScaling);
47331
+ var cosRotation = Math.cos(localRotation);
47332
+ var sinRotation = Math.sin(localRotation);
47333
+ var cosRotation180 = Math.cos(localRotation + Math.PI);
47334
+ var sinRotation180 = Math.sin(localRotation + Math.PI);
47335
+ var widthDelta = (selectedControl.metadata.storedValues.width - width) * 0.5;
47336
+ var heightDelta = (selectedControl.metadata.storedValues.height - height) * 0.5;
47337
+ // alignment compensation
47338
+ switch (selectedControl.horizontalAlignment) {
47339
+ case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].HORIZONTAL_ALIGNMENT_LEFT:
47340
+ center.x += (left ? widthDelta : -absoluteCenter.x) * cosRotation;
47341
+ center.y += (left ? -widthDelta : absoluteCenter.x) * sinRotation;
47342
+ break;
47343
+ case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].HORIZONTAL_ALIGNMENT_RIGHT:
47344
+ center.x += (left ? -widthDelta : absoluteCenter.x) * cosRotation;
47345
+ center.y += (left ? widthDelta : -absoluteCenter.x) * sinRotation;
47346
+ break;
47347
+ }
47348
+ switch (selectedControl.verticalAlignment) {
47349
+ case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].VERTICAL_ALIGNMENT_TOP:
47350
+ center.y += (top ? -heightDelta : absoluteCenter.y) * cosRotation180;
47351
+ center.x += (top ? -heightDelta : absoluteCenter.y) * sinRotation180;
47352
+ break;
47353
+ case _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["Control"].VERTICAL_ALIGNMENT_BOTTOM:
47354
+ center.y += (top ? heightDelta : -absoluteCenter.y) * cosRotation180;
47355
+ center.x += (top ? heightDelta : -absoluteCenter.y) * sinRotation180;
47356
+ break;
47357
+ }
47358
+ // rotate the center around 0,0
47359
+ var rotatedCenter = this._rotate(center.x, center.y, 0, 0, localRotation);
47360
+ var properties = ["left", "top", "width", "height"];
47361
+ for (var _b = 0, properties_1 = properties; _b < properties_1.length; _b++) {
47362
+ var property = properties_1[_b];
47363
+ var newPixels = 0;
47364
+ switch (property) {
47365
+ case "left":
47366
+ newPixels = round(selectedControl.metadata.storedValues.left + rotatedCenter.x);
47367
+ break;
47368
+ case "top":
47369
+ newPixels = round(selectedControl.metadata.storedValues.top + rotatedCenter.y);
47370
+ break;
47371
+ case "width":
47372
+ newPixels = round(width);
47373
+ break;
47374
+ case "height":
47375
+ newPixels = round(height);
47376
+ break;
47377
+ }
47378
+ // compute real change in property
47379
+ var initialUnit = selectedControl["_".concat(property)].unit;
47380
+ var oldPixels = selectedControl["".concat(property, "InPixels")];
47381
+ selectedControl["".concat(property, "InPixels")] = newPixels;
47382
+ this.props.globalState.onPropertyChangedObservable.notifyObservers({
47383
+ object: selectedControl,
47384
+ property: "".concat(property, "InPixels"),
47385
+ value: newPixels,
47386
+ initialValue: oldPixels
47387
+ });
47388
+ if (initialUnit === _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_1__["ValueAndUnit"].UNITMODE_PERCENTAGE) {
47389
+ _coordinateHelper__WEBPACK_IMPORTED_MODULE_4__["CoordinateHelper"].convertToPercentage(selectedControl, [property]);
47390
+ }
47391
+ }
47392
+ if (selectedControl.typeName === "Image") {
47393
+ selectedControl.autoScale = false;
47394
+ }
47395
+ else if (selectedControl.typeName === "TextBlock") {
47396
+ selectedControl.resizeToFit = false;
47397
+ }
47315
47398
  }
47316
47399
  };
47317
47400
  GuiGizmoComponent.prototype.render = function () {
47318
47401
  var _this = this;
47319
47402
  // don't render if we don't have anything selected, or if we're currently dragging
47320
- if (this.props.globalState.workbench.selectedGuiNodes.length === 0 || this.state.scalePointDragging !== -1)
47321
- return null;
47322
47403
  return (react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("div", { className: "gizmo" },
47323
47404
  lines.map(function (line, index) {
47324
47405
  var start = _this.state.scalePoints[line[0]];
@@ -47342,16 +47423,11 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47342
47423
  pointerEvents: _this.state.scalePointDragging === -1 && !scalePoint.isPivot && !_this.state.isRotating ? "auto" : "none",
47343
47424
  };
47344
47425
  if (scalePoint.isPivot) {
47345
- if (_this.props.globalState.workbench.selectedGuiNodes.length > 1) {
47346
- return null;
47347
- }
47348
47426
  return react__WEBPACK_IMPORTED_MODULE_3__["createElement"]("img", { className: "pivot-point", src: gizmoPivotIcon, style: style, key: index });
47349
47427
  }
47350
47428
  // compute which cursor icon to use on hover
47351
47429
  var angleOfCursor = (defaultScalePointRotations[index] + scalePoint.rotation);
47352
- var angleAdjusted = angleOfCursor % (360);
47353
- if (angleAdjusted < 0)
47354
- angleAdjusted += 360;
47430
+ var angleAdjusted = _this._modulo(angleOfCursor, 360);
47355
47431
  var increment = 45;
47356
47432
  var cursorIndex = Math.round(angleAdjusted / increment) % 8;
47357
47433
  var cursor = scalePointCursors[cursorIndex];
@@ -47390,6 +47466,49 @@ var GuiGizmoComponent = /** @class */ (function (_super) {
47390
47466
 
47391
47467
 
47392
47468
 
47469
+ /***/ }),
47470
+
47471
+ /***/ "./diagram/guiGizmoWrapper.tsx":
47472
+ /*!*************************************!*\
47473
+ !*** ./diagram/guiGizmoWrapper.tsx ***!
47474
+ \*************************************/
47475
+ /*! exports provided: GizmoWrapper */
47476
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
47477
+
47478
+ "use strict";
47479
+ __webpack_require__.r(__webpack_exports__);
47480
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GizmoWrapper", function() { return GizmoWrapper; });
47481
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
47482
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
47483
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
47484
+ /* harmony import */ var _guiGizmo__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./guiGizmo */ "./diagram/guiGizmo.tsx");
47485
+
47486
+
47487
+
47488
+ var GizmoWrapper = /** @class */ (function (_super) {
47489
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(GizmoWrapper, _super);
47490
+ function GizmoWrapper() {
47491
+ return _super !== null && _super.apply(this, arguments) || this;
47492
+ }
47493
+ GizmoWrapper.prototype.componentWillMount = function () {
47494
+ var _this = this;
47495
+ this.observer = this.props.globalState.onSelectionChangedObservable.add(function () { return _this.forceUpdate(); });
47496
+ };
47497
+ GizmoWrapper.prototype.componentWillUnmount = function () {
47498
+ this.props.globalState.onSelectionChangedObservable.remove(this.observer);
47499
+ };
47500
+ GizmoWrapper.prototype.render = function () {
47501
+ var _this = this;
47502
+ var controls = this.props.globalState.selectedControls;
47503
+ return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](react__WEBPACK_IMPORTED_MODULE_1__["Fragment"], null, controls.map(function (control) {
47504
+ return react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_guiGizmo__WEBPACK_IMPORTED_MODULE_2__["GuiGizmoComponent"], { globalState: _this.props.globalState, control: control, key: control.uniqueId });
47505
+ }));
47506
+ };
47507
+ return GizmoWrapper;
47508
+ }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
47509
+
47510
+
47511
+
47393
47512
  /***/ }),
47394
47513
 
47395
47514
  /***/ "./diagram/workbench.tsx":
@@ -47432,6 +47551,7 @@ __webpack_require__.r(__webpack_exports__);
47432
47551
 
47433
47552
 
47434
47553
 
47554
+
47435
47555
 
47436
47556
  __webpack_require__(/*! ./workbenchCanvas.scss */ "./diagram/workbenchCanvas.scss");
47437
47557
  var ConstraintDirection;
@@ -47440,6 +47560,8 @@ var ConstraintDirection;
47440
47560
  ConstraintDirection[ConstraintDirection["X"] = 2] = "X";
47441
47561
  ConstraintDirection[ConstraintDirection["Y"] = 3] = "Y";
47442
47562
  })(ConstraintDirection || (ConstraintDirection = {}));
47563
+ var ARROW_KEY_MOVEMENT_SMALL = 1; // px
47564
+ var ARROW_KEY_MOVEMENT_LARGE = 5; // px
47443
47565
  var WorkbenchComponent = /** @class */ (function (_super) {
47444
47566
  Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(WorkbenchComponent, _super);
47445
47567
  function WorkbenchComponent(props) {
@@ -47447,25 +47569,20 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47447
47569
  _this._setConstraintDirection = false;
47448
47570
  _this._mouseStartPointX = null;
47449
47571
  _this._mouseStartPointY = null;
47450
- _this._selectedGuiNodes = [];
47451
47572
  _this._ctrlKeyIsPressed = false;
47452
47573
  _this._altKeyIsPressed = false;
47453
47574
  _this._constraintDirection = ConstraintDirection.NONE;
47454
47575
  _this._forcePanning = false;
47455
47576
  _this._forceZooming = false;
47456
47577
  _this._forceSelecting = true;
47457
- _this._outlines = false;
47458
47578
  _this._isOverGUINode = [];
47459
- _this._clipboard = [];
47460
- _this._selectAll = false;
47461
47579
  _this._mainSelection = null;
47462
47580
  _this._selectionDepth = 0;
47463
47581
  _this._doubleClick = null;
47464
- _this._lockMainSelection = false;
47465
47582
  _this._liveGuiTextureRerender = true;
47466
47583
  _this._anyControlClicked = true;
47467
47584
  _this._nextLiveGuiRender = -1;
47468
- _this._liveGuiRerenderDelay = 100;
47585
+ _this._liveGuiRerenderDelay = 30;
47469
47586
  _this._defaultGUISize = { width: 1024, height: 1024 };
47470
47587
  _this._initialPanningOffset = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["Vector2"](0, 0);
47471
47588
  _this._panningOffset = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["Vector2"](0, 0);
@@ -47486,39 +47603,13 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47486
47603
  }
47487
47604
  if (evt.key === "Delete" || evt.key === "Backspace") {
47488
47605
  if (!_this.props.globalState.lockObject.lock) {
47489
- _this._selectedGuiNodes.forEach(function (guiNode) {
47490
- var _a;
47491
- if (guiNode !== _this.globalState.guiTexture.getChildren()[0]) {
47492
- _this.props.globalState.guiTexture.removeControl(guiNode);
47493
- (_a = _this.props.globalState.liveGuiTexture) === null || _a === void 0 ? void 0 : _a.removeControl(guiNode);
47494
- guiNode.dispose();
47495
- }
47496
- });
47497
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
47606
+ _this._deleteSelectedNodes();
47498
47607
  }
47499
47608
  }
47500
47609
  if (_this._ctrlKeyIsPressed && !_this.props.globalState.lockObject.lock) {
47501
47610
  if (evt.key === "a") {
47502
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
47503
- var index_1 = 0;
47504
- _this.nodes.forEach(function (node) {
47505
- if (index_1++) {
47506
- //skip the first node, the background
47507
- _this.selectAllGUI(node);
47508
- }
47509
- });
47510
- }
47511
- else if (evt.key === "c") {
47512
- _this.copyToClipboard();
47611
+ _this.props.globalState.setSelection(_this.trueRootContainer.children);
47513
47612
  }
47514
- else if (evt.key === "v" && !_this._pasted) {
47515
- _this.globalState.onSelectionChangedObservable.notifyObservers(null);
47516
- _this.pasteFromClipboard();
47517
- _this._pasted = true;
47518
- }
47519
- }
47520
- else if (!_this._ctrlKeyIsPressed) {
47521
- _this._pasted = false;
47522
47613
  }
47523
47614
  if (_this._forceZooming) {
47524
47615
  _this._canvas.style.cursor = _this._altKeyIsPressed ? "zoom-out" : "zoom-in";
@@ -47527,44 +47618,12 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47527
47618
  _this.blurEvent = function () {
47528
47619
  _this._ctrlKeyIsPressed = false;
47529
47620
  _this._constraintDirection = ConstraintDirection.NONE;
47530
- _this.props.globalState.guiGizmo.onUp();
47621
+ _this.props.globalState.onPointerUpObservable.notifyObservers(null);
47531
47622
  };
47532
47623
  _this.isUp = true;
47533
47624
  _this._rootContainer = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
47534
47625
  _this._responsive = _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["DataStorage"].ReadBoolean("Responsive", true);
47535
- props.globalState.onSelectionChangedObservable.add(function (selection) {
47536
- if (!selection) {
47537
- _this.changeSelectionHighlight(false);
47538
- _this._selectedGuiNodes = [];
47539
- _this._selectAll = false;
47540
- _this._mainSelection = null;
47541
- }
47542
- else {
47543
- if (selection instanceof _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Control"]) {
47544
- if (_this._ctrlKeyIsPressed) {
47545
- var index = _this._selectedGuiNodes.indexOf(selection);
47546
- if (index === -1) {
47547
- _this._selectedGuiNodes.push(selection);
47548
- }
47549
- else {
47550
- _this.changeSelectionHighlight(false);
47551
- _this._selectedGuiNodes.splice(index, 1);
47552
- }
47553
- }
47554
- else if (_this._selectedGuiNodes.length <= 1) {
47555
- _this.changeSelectionHighlight(false);
47556
- _this._selectedGuiNodes = [selection];
47557
- if (!_this._lockMainSelection && selection != _this.props.globalState.guiTexture._rootContainer) {
47558
- //incase the selection did not come from the canvas and mouse
47559
- _this._mainSelection = selection;
47560
- }
47561
- _this._lockMainSelection = false;
47562
- _this._selectAll = false;
47563
- }
47564
- _this.changeSelectionHighlight(true);
47565
- }
47566
- }
47567
- });
47626
+ props.globalState.onSelectionChangedObservable.add(function () { return _this.updateNodeOutlines(); });
47568
47627
  props.globalState.onPanObservable.add(function () {
47569
47628
  _this._forcePanning = !_this._forcePanning;
47570
47629
  _this._forceSelecting = false;
@@ -47575,16 +47634,12 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47575
47634
  else {
47576
47635
  _this._canvas.style.cursor = "grab";
47577
47636
  }
47578
- _this.updateHitTest(_this.globalState.guiTexture.getChildren()[0], _this._forceSelecting);
47579
- // this.artBoardBackground.isHitTestVisible = true;
47580
47637
  });
47581
47638
  props.globalState.onSelectionButtonObservable.add(function () {
47582
47639
  _this._forceSelecting = !_this._forceSelecting;
47583
47640
  _this._forcePanning = false;
47584
47641
  _this._forceZooming = false;
47585
47642
  _this._canvas.style.cursor = "default";
47586
- _this.updateHitTest(_this.globalState.guiTexture.getChildren()[0], _this._forceSelecting);
47587
- // this.artBoardBackground.isHitTestVisible = true;
47588
47643
  });
47589
47644
  props.globalState.onZoomObservable.add(function () {
47590
47645
  _this._forceZooming = !_this._forceZooming;
@@ -47596,8 +47651,6 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47596
47651
  else {
47597
47652
  _this._canvas.style.cursor = "zoom-in";
47598
47653
  }
47599
- _this.updateHitTest(_this.globalState.guiTexture.getChildren()[0], _this._forceSelecting);
47600
- // this.artBoardBackground.isHitTestVisible = true;
47601
47654
  });
47602
47655
  props.globalState.onFitToWindowObservable.add(function () {
47603
47656
  _this._panningOffset = new _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["Vector2"](0, 0);
@@ -47605,8 +47658,11 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47605
47658
  var yFactor = _this._engine.getRenderHeight() / _this.guiSize.height;
47606
47659
  _this._zoomFactor = Math.min(xFactor, yFactor) * 0.9;
47607
47660
  });
47608
- props.globalState.onOutlinesObservable.add(function () {
47609
- _this._outlines = !_this._outlines;
47661
+ props.globalState.onOutlineChangedObservable.add(function () {
47662
+ _this.updateNodeOutlines();
47663
+ });
47664
+ props.globalState.onSelectionChangedObservable.add(function () {
47665
+ _this.updateNodeOutlines();
47610
47666
  });
47611
47667
  props.globalState.onParentingChangeObservable.add(function (control) {
47612
47668
  _this.parent(control);
@@ -47623,6 +47679,9 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47623
47679
  _this.props.globalState.onArtBoardUpdateRequiredObservable.notifyObservers();
47624
47680
  _this._engine.resize();
47625
47681
  });
47682
+ props.globalState.onCopyObservable.add(function (copyFn) { return _this.copyToClipboard(copyFn); });
47683
+ props.globalState.onCutObservable.add(function (copyFn) { return _this.cutToClipboard(copyFn); });
47684
+ props.globalState.onPasteObservable.add(function (content) { return _this.pasteFromClipboard(content); });
47626
47685
  _this.props.globalState.workbench = _this;
47627
47686
  return _this;
47628
47687
  }
@@ -47714,7 +47773,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47714
47773
  });
47715
47774
  Object.defineProperty(WorkbenchComponent.prototype, "selectedGuiNodes", {
47716
47775
  get: function () {
47717
- return this._selectedGuiNodes;
47776
+ return this.props.globalState.selectedControls;
47718
47777
  },
47719
47778
  enumerable: false,
47720
47779
  configurable: true
@@ -47742,9 +47801,9 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47742
47801
  return parent;
47743
47802
  };
47744
47803
  WorkbenchComponent.prototype.determineMouseSelection = function (selection) {
47745
- if (selection && this._selectedGuiNodes.length <= 1) {
47804
+ if (this.props.globalState.selectedControls.length <= 1) {
47746
47805
  // if we're still on the same main selection, got down the tree.
47747
- if (selection === this._selectedGuiNodes[0] || selection === this._mainSelection) {
47806
+ if (selection === this.props.globalState.selectedControls[0]) {
47748
47807
  selection = this._getParentWithDepth(selection);
47749
47808
  }
47750
47809
  else { // get the start of our tree by getting our max parent and storing our main selected control
@@ -47757,46 +47816,54 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47757
47816
  this._mainSelection = selection;
47758
47817
  }
47759
47818
  }
47760
- this._lockMainSelection = true;
47761
- this.props.globalState.onSelectionChangedObservable.notifyObservers(selection);
47819
+ this.props.globalState.select(selection);
47762
47820
  };
47763
- WorkbenchComponent.prototype.updateHitTest = function (guiControl, value) {
47764
- var _this = this;
47765
- guiControl.isHitTestVisible = value;
47766
- if (guiControl instanceof _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Container"]) {
47767
- guiControl.children.forEach(function (child) {
47768
- _this.updateHitTest(child, value);
47769
- });
47821
+ WorkbenchComponent.prototype._deleteSelectedNodes = function () {
47822
+ var _a;
47823
+ for (var _i = 0, _b = this.props.globalState.selectedControls; _i < _b.length; _i++) {
47824
+ var control = _b[_i];
47825
+ this.props.globalState.guiTexture.removeControl(control);
47826
+ (_a = this.props.globalState.liveGuiTexture) === null || _a === void 0 ? void 0 : _a.removeControl(control);
47827
+ control.dispose();
47828
+ }
47829
+ ;
47830
+ this.props.globalState.setSelection([]);
47831
+ };
47832
+ WorkbenchComponent.prototype.copyToClipboard = function (copyFn) {
47833
+ var controlList = [];
47834
+ for (var _i = 0, _a = this.selectedGuiNodes; _i < _a.length; _i++) {
47835
+ var control = _a[_i];
47836
+ var obj = {};
47837
+ control.serialize(obj);
47838
+ controlList.push(obj);
47770
47839
  }
47840
+ copyFn(JSON.stringify({
47841
+ GUIClipboard: true,
47842
+ controls: controlList
47843
+ }));
47771
47844
  };
47772
- WorkbenchComponent.prototype.updateHitTestForSelection = function (value) {
47773
- if (this._forceSelecting && !value)
47774
- return;
47775
- this.selectedGuiNodes.forEach(function (control) {
47776
- control.isHitTestVisible = value;
47777
- });
47845
+ WorkbenchComponent.prototype.cutToClipboard = function (copyFn) {
47846
+ this.copyToClipboard(copyFn);
47847
+ this._deleteSelectedNodes();
47778
47848
  };
47779
- WorkbenchComponent.prototype.copyToClipboard = function () {
47780
- var _this = this;
47781
- this._clipboard = [];
47782
- if (this._selectAll) {
47783
- var index_2 = 0;
47784
- this.nodes.forEach(function (node) {
47785
- if (index_2++) {
47786
- //skip the first node, the background
47787
- _this._clipboard.push(node);
47849
+ WorkbenchComponent.prototype.pasteFromClipboard = function (clipboardContents) {
47850
+ try {
47851
+ var parsed = JSON.parse(clipboardContents);
47852
+ if (parsed.GUIClipboard) {
47853
+ var newSelection = [];
47854
+ for (var _i = 0, _a = parsed.controls; _i < _a.length; _i++) {
47855
+ var control = _a[_i];
47856
+ newSelection.push(this.appendBlock(_babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Control"].Parse(control, this.props.globalState.guiTexture)));
47788
47857
  }
47789
- });
47858
+ this.props.globalState.setSelection(newSelection);
47859
+ return true;
47860
+ }
47790
47861
  }
47791
- else {
47792
- this._clipboard = this.selectedGuiNodes;
47862
+ catch (_b) {
47863
+ // don't need an error message
47793
47864
  }
47794
- };
47795
- WorkbenchComponent.prototype.pasteFromClipboard = function () {
47796
- var _this = this;
47797
- this._clipboard.forEach(function (control) {
47798
- _this.CopyGUIControl(control);
47799
- });
47865
+ _babylonjs_core_Maths_math_vector__WEBPACK_IMPORTED_MODULE_4__["Logger"].Warn("Paste attempted, but clipboard content was invalid.");
47866
+ return false;
47800
47867
  };
47801
47868
  WorkbenchComponent.prototype.CopyGUIControl = function (original) {
47802
47869
  var _a, _b;
@@ -47814,25 +47881,24 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47814
47881
  else {
47815
47882
  (_b = original.parent) === null || _b === void 0 ? void 0 : _b.addControl(newControl);
47816
47883
  }
47817
- var index_3 = 1;
47884
+ var index_1 = 1;
47818
47885
  while (this.props.globalState.guiTexture.getDescendants(false).filter(
47819
47886
  //search if there are any copies
47820
- function (control) { return control.name === "".concat(newControl.name, " Copy ").concat(index_3); }).length) {
47821
- index_3++;
47887
+ function (control) { return control.name === "".concat(newControl.name, " Copy ").concat(index_1); }).length) {
47888
+ index_1++;
47822
47889
  }
47823
- newControl.name = "".concat(newControl.name, " Copy ").concat(index_3);
47824
- this.props.globalState.onSelectionChangedObservable.notifyObservers(newControl);
47890
+ newControl.name = "".concat(newControl.name, " Copy ").concat(index_1);
47891
+ this.props.globalState.select(newControl);
47825
47892
  }
47826
47893
  };
47827
47894
  WorkbenchComponent.prototype.selectAllGUI = function (node) {
47828
47895
  var _this = this;
47829
- this.globalState.onSelectionChangedObservable.notifyObservers(node);
47896
+ this.globalState.select(node);
47830
47897
  if (node instanceof _babylonjs_gui_2D_controls_control__WEBPACK_IMPORTED_MODULE_3__["Container"]) {
47831
47898
  node.children.forEach(function (child) {
47832
47899
  _this.selectAllGUI(child);
47833
47900
  });
47834
47901
  }
47835
- this._selectAll = true;
47836
47902
  };
47837
47903
  WorkbenchComponent.prototype.componentWillUnmount = function () {
47838
47904
  this.props.globalState.hostDocument.removeEventListener("keyup", this.keyEvent);
@@ -47860,7 +47926,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47860
47926
  WorkbenchComponent.prototype.loadFromJson = function (serializationObject) {
47861
47927
  var _a;
47862
47928
  this.removeEditorTransformation();
47863
- this.globalState.onSelectionChangedObservable.notifyObservers(null);
47929
+ this.props.globalState.setSelection([]);
47864
47930
  if (this.props.globalState.liveGuiTexture) {
47865
47931
  (_a = this.globalState.liveGuiTexture) === null || _a === void 0 ? void 0 : _a.parseContent(serializationObject, true);
47866
47932
  this.synchronizeLiveGUI();
@@ -47879,7 +47945,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47879
47945
  switch (_b.label) {
47880
47946
  case 0:
47881
47947
  this.removeEditorTransformation();
47882
- this.globalState.onSelectionChangedObservable.notifyObservers(null);
47948
+ this.props.globalState.setSelection([]);
47883
47949
  if (!this.props.globalState.liveGuiTexture) return [3 /*break*/, 2];
47884
47950
  return [4 /*yield*/, ((_a = this.globalState.liveGuiTexture) === null || _a === void 0 ? void 0 : _a.parseFromSnippetAsync(snippetId, true))];
47885
47951
  case 1:
@@ -47907,35 +47973,18 @@ var WorkbenchComponent = /** @class */ (function (_super) {
47907
47973
  WorkbenchComponent.prototype.loadToEditor = function () {
47908
47974
  var _this = this;
47909
47975
  this.globalState.guiTexture.rootContainer.children.forEach(function (guiElement) {
47910
- if (guiElement.name === "Art-Board-Background" && guiElement.typeName === "Rectangle") {
47911
- // this.artBoardBackground = guiElement as Rectangle;
47912
- return;
47913
- }
47914
47976
  _this.createNewGuiNode(guiElement);
47915
47977
  });
47916
- if (this.props.globalState.guiTexture.getChildren()[0].children.length) {
47917
- // this.props.globalState.guiTexture.getChildren()[0].children.unshift(this.props.globalState.workbench.artBoardBackground);
47918
- }
47919
- else {
47920
- // this.props.globalState.guiTexture.getChildren()[0].children.push(this.props.globalState.workbench.artBoardBackground);
47921
- }
47922
47978
  this._isOverGUINode = [];
47923
- this.globalState.onSelectionChangedObservable.notifyObservers(null);
47979
+ this.globalState.setSelection([]);
47924
47980
  this.globalState.onFitToWindowObservable.notifyObservers();
47925
47981
  };
47926
- WorkbenchComponent.prototype.changeSelectionHighlight = function (value) {
47927
- var _this = this;
47928
- this._selectedGuiNodes.forEach(function (node) {
47929
- if (_this._outlines) {
47930
- node.isHighlighted = true;
47931
- node.highlightLineWidth = 5;
47932
- }
47933
- else {
47934
- node.isHighlighted = value && node.typeName === "Grid";
47935
- node.highlightLineWidth = 5;
47936
- }
47937
- });
47938
- this.updateHitTestForSelection(value);
47982
+ WorkbenchComponent.prototype.updateNodeOutlines = function () {
47983
+ for (var _i = 0, _a = this._trueRootContainer.getDescendants(); _i < _a.length; _i++) {
47984
+ var guiControl = _a[_i];
47985
+ guiControl.isHighlighted = guiControl.getClassName() === "Grid" && (this.props.globalState.outlines || this.props.globalState.selectedControls.includes(guiControl));
47986
+ guiControl.highlightLineWidth = 5;
47987
+ }
47939
47988
  };
47940
47989
  WorkbenchComponent.prototype.findNodeFromGuiElement = function (guiControl) {
47941
47990
  return this.nodes.filter(function (n) { return n === guiControl; })[0];
@@ -48043,7 +48092,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48043
48092
  }
48044
48093
  else if (dropLocationControl.parent) {
48045
48094
  //dropping inside the controls parent container
48046
- if (dropLocationControl.parent.typeName != "Grid") {
48095
+ if (dropLocationControl.parent.typeName !== "Grid") {
48047
48096
  draggedControlParent.removeControl(draggedControl);
48048
48097
  var index = dropLocationControl.parent.children.indexOf(dropLocationControl);
48049
48098
  var reversed = dropLocationControl.parent.typeName === "StackPanel" || dropLocationControl.parent.typeName === "VirtualKeyboard";
@@ -48070,10 +48119,10 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48070
48119
  }
48071
48120
  }
48072
48121
  else {
48073
- //starting at index 1 because of object "Art-Board-Background" must be at index 0
48074
48122
  draggedControlParent.removeControl(draggedControl);
48075
- draggedControlParent.children.splice(1, 0, draggedControl);
48076
- draggedControl.parent = draggedControlParent;
48123
+ this.trueRootContainer.addControl(draggedControl);
48124
+ this.trueRootContainer.children.pop();
48125
+ this.trueRootContainer.children.splice(0, 0, draggedControl);
48077
48126
  }
48078
48127
  }
48079
48128
  }
@@ -48117,11 +48166,10 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48117
48166
  return index;
48118
48167
  };
48119
48168
  WorkbenchComponent.prototype.isSelected = function (value, guiNode) {
48120
- this.globalState.onSelectionChangedObservable.notifyObservers(guiNode);
48169
+ this.globalState.select(guiNode);
48121
48170
  };
48122
48171
  WorkbenchComponent.prototype._onMove = function (guiControl, evt, startPos, ignorClick) {
48123
48172
  if (ignorClick === void 0) { ignorClick = false; }
48124
- this._liveGuiTextureRerender = false;
48125
48173
  var newX = evt.x - startPos.x;
48126
48174
  var newY = evt.y - startPos.y;
48127
48175
  if (this._setConstraintDirection) {
@@ -48184,7 +48232,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48184
48232
  (_a = this._rootContainer.current) === null || _a === void 0 ? void 0 : _a.setPointerCapture(evt.pointerId);
48185
48233
  if (this._isOverGUINode.length === 0 && !evt.button) {
48186
48234
  if (this._forceSelecting) {
48187
- this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
48235
+ this.props.globalState.setSelection([]);
48188
48236
  }
48189
48237
  return;
48190
48238
  }
@@ -48285,7 +48333,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48285
48333
  WorkbenchComponent.prototype.synchronizeLiveGUI = function () {
48286
48334
  var _this = this;
48287
48335
  if (this.globalState.liveGuiTexture) {
48288
- this.globalState.guiTexture._rootContainer.getDescendants().filter(function (desc) { return desc.name !== "Art-Board-Background"; }).forEach(function (desc) { return desc.dispose(); });
48336
+ this._trueRootContainer.getDescendants().forEach(function (desc) { return desc.dispose(); });
48289
48337
  this.globalState.liveGuiTexture.rootContainer.getDescendants(true).forEach(function (desc) {
48290
48338
  var _a;
48291
48339
  (_a = _this.globalState.liveGuiTexture) === null || _a === void 0 ? void 0 : _a.removeControl(desc);
@@ -48340,7 +48388,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48340
48388
  // if we click in the scene and we don't hit any controls, deselect all
48341
48389
  _this._scene.onAfterRenderObservable.addOnce(function () {
48342
48390
  if (!_this._anyControlClicked) {
48343
- _this.props.globalState.onSelectionChangedObservable.notifyObservers(null);
48391
+ _this.props.globalState.setSelection([]);
48344
48392
  }
48345
48393
  _this._anyControlClicked = false;
48346
48394
  });
@@ -48349,7 +48397,7 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48349
48397
  (_c = this._rootContainer.current) === null || _c === void 0 ? void 0 : _c.addEventListener("pointerup", function (event) {
48350
48398
  _this._panning = false;
48351
48399
  removeObservers();
48352
- _this.props.globalState.guiGizmo.onUp();
48400
+ _this.props.globalState.onPointerUpObservable.notifyObservers(event);
48353
48401
  });
48354
48402
  scene.onKeyboardObservable.add(function (k, e) {
48355
48403
  switch (k.event.key) {
@@ -48370,12 +48418,23 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48370
48418
  break;
48371
48419
  case "g": //outlines
48372
48420
  case "G":
48373
- _this.globalState.onOutlinesObservable.notifyObservers();
48421
+ _this.globalState.outlines = !_this.globalState.outlines;
48374
48422
  break;
48375
48423
  case "f": //fit to window
48376
48424
  case "F":
48377
48425
  _this.globalState.onFitToWindowObservable.notifyObservers();
48378
48426
  break;
48427
+ case "ArrowUp": // move up
48428
+ _this.moveControls(false, k.event.shiftKey ? -ARROW_KEY_MOVEMENT_LARGE : -ARROW_KEY_MOVEMENT_SMALL);
48429
+ break;
48430
+ case "ArrowDown": // move down
48431
+ _this.moveControls(false, k.event.shiftKey ? ARROW_KEY_MOVEMENT_LARGE : ARROW_KEY_MOVEMENT_SMALL);
48432
+ break;
48433
+ case "ArrowLeft": // move left
48434
+ _this.moveControls(true, k.event.shiftKey ? -ARROW_KEY_MOVEMENT_LARGE : -ARROW_KEY_MOVEMENT_SMALL);
48435
+ break;
48436
+ case "ArrowRight": // move right
48437
+ _this.moveControls(true, k.event.shiftKey ? ARROW_KEY_MOVEMENT_LARGE : ARROW_KEY_MOVEMENT_SMALL);
48379
48438
  default:
48380
48439
  break;
48381
48440
  }
@@ -48411,6 +48470,35 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48411
48470
  this.props.globalState.onArtBoardUpdateRequiredObservable.notifyObservers();
48412
48471
  this.props.globalState.onGizmoUpdateRequireObservable.notifyObservers();
48413
48472
  };
48473
+ // Move the selected controls. Can be either on horizontal (leftInPixels) or
48474
+ // vertical (topInPixels) direction
48475
+ WorkbenchComponent.prototype.moveControls = function (moveHorizontal, amount) {
48476
+ for (var _i = 0, _a = this.props.globalState.workbench.selectedGuiNodes; _i < _a.length; _i++) {
48477
+ var selectedControl = _a[_i];
48478
+ if (moveHorizontal) { // move horizontal
48479
+ var prevValue = selectedControl.leftInPixels;
48480
+ selectedControl.leftInPixels += amount;
48481
+ this.props.globalState.onPropertyChangedObservable.notifyObservers({
48482
+ object: selectedControl,
48483
+ property: "leftInPixels",
48484
+ value: selectedControl.leftInPixels,
48485
+ initialValue: prevValue
48486
+ });
48487
+ this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
48488
+ }
48489
+ else { // move vertical
48490
+ var prevValue = selectedControl.topInPixels;
48491
+ selectedControl.topInPixels += amount;
48492
+ this.props.globalState.onPropertyChangedObservable.notifyObservers({
48493
+ object: selectedControl,
48494
+ property: "topInPixels",
48495
+ value: selectedControl.topInPixels,
48496
+ initialValue: prevValue
48497
+ });
48498
+ this.props.globalState.onPropertyGridUpdateRequiredObservable.notifyObservers();
48499
+ }
48500
+ }
48501
+ };
48414
48502
  //Get the wheel delta
48415
48503
  WorkbenchComponent.prototype.zoomWheel = function (event) {
48416
48504
  event.preventDefault();
@@ -48445,12 +48533,10 @@ var WorkbenchComponent = /** @class */ (function (_super) {
48445
48533
  if (_this.props.globalState.guiTexture) {
48446
48534
  _this.onMove(evt);
48447
48535
  }
48448
- if (_this.props.globalState.guiGizmo) {
48449
- _this.props.globalState.guiGizmo.onMove(evt);
48450
- }
48536
+ _this.props.globalState.onPointerMoveObservable.notifyObservers(evt);
48451
48537
  }, onPointerDown: function (evt) { return _this.onDown(evt); }, onPointerUp: function (evt) {
48452
48538
  _this.onUp(evt);
48453
- _this.props.globalState.guiGizmo.onUp(evt);
48539
+ _this.props.globalState.onPointerUpObservable.notifyObservers(evt);
48454
48540
  }, ref: this._rootContainer }));
48455
48541
  };
48456
48542
  return WorkbenchComponent;
@@ -48500,10 +48586,12 @@ module.exports = content.locals || {};
48500
48586
  __webpack_require__.r(__webpack_exports__);
48501
48587
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DragOverLocation", function() { return DragOverLocation; });
48502
48588
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GlobalState", function() { return GlobalState; });
48503
- /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babylonjs/core/Misc/observable */ "@babylonjs/core/Misc/observable");
48504
- /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__);
48505
- /* harmony import */ var _sharedUiComponents_tabs_propertyGrids_lockObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sharedUiComponents/tabs/propertyGrids/lockObject */ "./sharedUiComponents/tabs/propertyGrids/lockObject.ts");
48506
- /* harmony import */ var _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diagram/coordinateHelper */ "./diagram/coordinateHelper.tsx");
48589
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
48590
+ /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babylonjs/core/Misc/observable */ "@babylonjs/core/Misc/observable");
48591
+ /* harmony import */ var _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__);
48592
+ /* harmony import */ var _sharedUiComponents_tabs_propertyGrids_lockObject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sharedUiComponents/tabs/propertyGrids/lockObject */ "./sharedUiComponents/tabs/propertyGrids/lockObject.ts");
48593
+ /* harmony import */ var _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./diagram/coordinateHelper */ "./diagram/coordinateHelper.tsx");
48594
+
48507
48595
 
48508
48596
 
48509
48597
 
@@ -48518,51 +48606,91 @@ var DragOverLocation;
48518
48606
  })(DragOverLocation || (DragOverLocation = {}));
48519
48607
  var GlobalState = /** @class */ (function () {
48520
48608
  function GlobalState() {
48521
- this.onSelectionChangedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48522
- this.onResizeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48523
- this.onBuiltObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48524
- this.onResetRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48525
- this.onUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48526
- this.onLogRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48527
- this.onErrorMessageDialogRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48528
- this.onIsLoadingChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48529
- this.onSelectionBoxMoved = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48530
- this.onNewSceneObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48531
- this.onGuiNodeRemovalObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48532
- this.onPopupClosedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48609
+ this.selectedControls = [];
48610
+ this.onSelectionChangedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48611
+ this.onResizeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48612
+ this.onBuiltObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48613
+ this.onResetRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48614
+ this.onUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48615
+ this.onLogRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48616
+ this.onErrorMessageDialogRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48617
+ this.onIsLoadingChanged = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48618
+ this.onSelectionBoxMoved = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48619
+ this.onNewSceneObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48620
+ this.onGuiNodeRemovalObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48621
+ this.onPopupClosedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48622
+ this._outlines = false;
48623
+ this.isMultiSelecting = false;
48624
+ this.onOutlineChangedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48533
48625
  this.blockKeyboardEvents = false;
48534
- this.onPropertyChangedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48535
- this.onZoomObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48536
- this.onFitToWindowObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48537
- this.onPanObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48538
- this.onSelectionButtonObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48539
- this.onMoveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48540
- this.onLoadObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48541
- this.onSaveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48542
- this.onSnippetLoadObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48543
- this.onSnippetSaveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48544
- this.onOutlinesObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48545
- this.onResponsiveChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48546
- this.onParentingChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48547
- this.onPropertyGridUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48548
- this.onDraggingEndObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48549
- this.onDraggingStartObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48550
- this.onWindowResizeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48551
- this.onGizmoUpdateRequireObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48552
- this.onArtBoardUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48553
- this.onBackgroundColorChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]();
48626
+ this.onPropertyChangedObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48627
+ this.onZoomObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48628
+ this.onFitToWindowObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48629
+ this.onPanObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48630
+ this.onSelectionButtonObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48631
+ this.onLoadObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48632
+ this.onSaveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48633
+ this.onSnippetLoadObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48634
+ this.onSnippetSaveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48635
+ this.onResponsiveChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48636
+ this.onParentingChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48637
+ this.onDropObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48638
+ this.onPropertyGridUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48639
+ this.onDraggingEndObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48640
+ this.onDraggingStartObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48641
+ this.onWindowResizeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48642
+ this.onGizmoUpdateRequireObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48643
+ this.onArtBoardUpdateRequiredObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48644
+ this.onBackgroundColorChangeObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48645
+ this.onPointerMoveObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48646
+ this.onPointerUpObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48554
48647
  this.draggedControl = null;
48648
+ this.onCopyObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48649
+ this.onCutObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48650
+ this.onPasteObservable = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Observable"]();
48555
48651
  this.isSaving = false;
48556
- this.lockObject = new _sharedUiComponents_tabs_propertyGrids_lockObject__WEBPACK_IMPORTED_MODULE_1__["LockObject"]();
48557
- this.controlCamera = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].ReadBoolean("ControlCamera", true);
48652
+ this.lockObject = new _sharedUiComponents_tabs_propertyGrids_lockObject__WEBPACK_IMPORTED_MODULE_2__["LockObject"]();
48653
+ this.controlCamera = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].ReadBoolean("ControlCamera", true);
48558
48654
  var defaultBrightness = 204 / 255.0;
48559
- var r = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].ReadNumber("BackgroundColorR", defaultBrightness);
48560
- var g = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].ReadNumber("BackgroundColorG", defaultBrightness);
48561
- var b = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].ReadNumber("BackgroundColorB", defaultBrightness);
48562
- this.backgroundColor = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["Color3"](r, g, b);
48655
+ var r = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].ReadNumber("BackgroundColorR", defaultBrightness);
48656
+ var g = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].ReadNumber("BackgroundColorG", defaultBrightness);
48657
+ var b = _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].ReadNumber("BackgroundColorB", defaultBrightness);
48658
+ this.backgroundColor = new _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["Color3"](r, g, b);
48563
48659
  this.onBackgroundColorChangeObservable.notifyObservers();
48564
- _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_2__["CoordinateHelper"].globalState = this;
48660
+ _diagram_coordinateHelper__WEBPACK_IMPORTED_MODULE_3__["CoordinateHelper"].globalState = this;
48565
48661
  }
48662
+ /** adds copy, cut and paste listeners to the host window */
48663
+ GlobalState.prototype.registerEventListeners = function () {
48664
+ var _this = this;
48665
+ this.hostDocument.addEventListener("copy", function (event) {
48666
+ var target = event.target;
48667
+ if (!target.isContentEditable && target.tagName !== "input" && target.tagName !== "textarea") {
48668
+ _this.onCopyObservable.notifyObservers(function (content) { var _a; return (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData("text/plain", content); });
48669
+ event.preventDefault();
48670
+ }
48671
+ });
48672
+ this.hostDocument.addEventListener("cut", function (event) {
48673
+ var target = event.target;
48674
+ if (!target.isContentEditable && target.tagName !== "input" && target.tagName !== "textarea") {
48675
+ _this.onCutObservable.notifyObservers(function (content) { var _a; return (_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.setData("text/plain", content); });
48676
+ event.preventDefault();
48677
+ }
48678
+ });
48679
+ this.hostDocument.addEventListener("paste", function (event) {
48680
+ var _a;
48681
+ var target = event.target;
48682
+ if (!target.isContentEditable && target.tagName !== "input" && target.tagName !== "textarea") {
48683
+ _this.onPasteObservable.notifyObservers(((_a = event.clipboardData) === null || _a === void 0 ? void 0 : _a.getData("text")) || "");
48684
+ event.preventDefault();
48685
+ }
48686
+ });
48687
+ this.hostDocument.addEventListener("keydown", function (evt) { return _this._updateKeys(evt); });
48688
+ this.hostDocument.addEventListener("keyup", function (evt) { return _this._updateKeys(evt); });
48689
+ this.hostDocument.addEventListener("keypress", function (evt) { return _this._updateKeys(evt); });
48690
+ };
48691
+ GlobalState.prototype._updateKeys = function (event) {
48692
+ this.isMultiSelecting = event.ctrlKey;
48693
+ };
48566
48694
  Object.defineProperty(GlobalState.prototype, "backgroundColor", {
48567
48695
  get: function () {
48568
48696
  return this._backgroundColor;
@@ -48570,13 +48698,49 @@ var GlobalState = /** @class */ (function () {
48570
48698
  set: function (value) {
48571
48699
  this._backgroundColor = value;
48572
48700
  this.onBackgroundColorChangeObservable.notifyObservers();
48573
- _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].WriteNumber("BackgroundColorR", value.r);
48574
- _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].WriteNumber("BackgroundColorG", value.g);
48575
- _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_0__["DataStorage"].WriteNumber("BackgroundColorB", value.b);
48701
+ _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].WriteNumber("BackgroundColorR", value.r);
48702
+ _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].WriteNumber("BackgroundColorG", value.g);
48703
+ _babylonjs_core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__["DataStorage"].WriteNumber("BackgroundColorB", value.b);
48704
+ },
48705
+ enumerable: false,
48706
+ configurable: true
48707
+ });
48708
+ Object.defineProperty(GlobalState.prototype, "outlines", {
48709
+ get: function () {
48710
+ return this._outlines;
48711
+ },
48712
+ set: function (value) {
48713
+ this._outlines = value;
48714
+ this.onOutlineChangedObservable.notifyObservers();
48576
48715
  },
48577
48716
  enumerable: false,
48578
48717
  configurable: true
48579
48718
  });
48719
+ GlobalState.prototype.select = function (control) {
48720
+ if (this.isMultiSelecting && this.isMultiSelectable(control)) {
48721
+ var index = this.selectedControls.indexOf(control);
48722
+ if (index === -1) {
48723
+ this.setSelection(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])([], this.selectedControls, true), [control], false));
48724
+ }
48725
+ else {
48726
+ this.setSelection(this.selectedControls.filter(function (node) { return node !== control; }));
48727
+ }
48728
+ }
48729
+ else {
48730
+ this.setSelection([control]);
48731
+ }
48732
+ };
48733
+ GlobalState.prototype.setSelection = function (controls) {
48734
+ this.selectedControls = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__spreadArray"])([], controls, true);
48735
+ this.onSelectionChangedObservable.notifyObservers();
48736
+ };
48737
+ GlobalState.prototype.isMultiSelectable = function (control) {
48738
+ if (this.selectedControls.length === 0)
48739
+ return true;
48740
+ if (this.selectedControls[0].parent === control.parent)
48741
+ return true;
48742
+ return false;
48743
+ };
48580
48744
  return GlobalState;
48581
48745
  }());
48582
48746
 
@@ -48653,6 +48817,7 @@ var GUIEditor = /** @class */ (function () {
48653
48817
  globalState.customSave = options.customSave;
48654
48818
  globalState.customLoad = options.customLoad;
48655
48819
  globalState.hostWindow = hostElement.ownerDocument.defaultView;
48820
+ globalState.registerEventListeners();
48656
48821
  graphEditor = react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_workbenchEditor__WEBPACK_IMPORTED_MODULE_4__["WorkbenchEditor"], {
48657
48822
  globalState: globalState,
48658
48823
  });
@@ -48837,7 +49002,6 @@ var GUINodeTools = /** @class */ (function () {
48837
49002
  return element;
48838
49003
  case "Grid":
48839
49004
  element = new _babylonjs_gui_2D_controls_button__WEBPACK_IMPORTED_MODULE_0__["Grid"]("Grid");
48840
- element.isHighlighted = true;
48841
49005
  element.addColumnDefinition(1.0, false);
48842
49006
  element.addRowDefinition(1.0, false);
48843
49007
  element.isPointerBlocker = true;
@@ -48847,7 +49011,6 @@ var GUINodeTools = /** @class */ (function () {
48847
49011
  return element;
48848
49012
  case "StackPanel":
48849
49013
  element = new _babylonjs_gui_2D_controls_button__WEBPACK_IMPORTED_MODULE_0__["StackPanel"]("StackPanel");
48850
- element.isHighlighted = true;
48851
49014
  element.width = "100%";
48852
49015
  element.height = "100%";
48853
49016
  return element;
@@ -50376,7 +50539,7 @@ var ColorLineComponent = /** @class */ (function (_super) {
50376
50539
  _this.setColorFromString(newValue);
50377
50540
  }, onPropertyChangedObservable: this.props.onPropertyChangedObservable })),
50378
50541
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "copy hoverIcon", onClick: function () { return _this.copyToClipboard(); }, title: "Copy to clipboard" },
50379
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: copyIcon, alt: "" })),
50542
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: copyIcon, alt: "Copy" })),
50380
50543
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "expand hoverIcon", onClick: function () { return _this.switchExpandState(); }, title: "Expand" }, chevron)),
50381
50544
  this.state.isExpanded && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "secondLine" },
50382
50545
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_numericInputComponent__WEBPACK_IMPORTED_MODULE_3__["NumericInputComponent"], { label: "r", value: this.state.color.r, onChange: function (value) { return _this.updateStateR(value); } }),
@@ -50700,6 +50863,59 @@ var FloatLineComponent = /** @class */ (function (_super) {
50700
50863
 
50701
50864
 
50702
50865
 
50866
+ /***/ }),
50867
+
50868
+ /***/ "./sharedUiComponents/lines/inputArrowsComponent.tsx":
50869
+ /*!***********************************************************!*\
50870
+ !*** ./sharedUiComponents/lines/inputArrowsComponent.tsx ***!
50871
+ \***********************************************************/
50872
+ /*! exports provided: InputArrowsComponent */
50873
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
50874
+
50875
+ "use strict";
50876
+ __webpack_require__.r(__webpack_exports__);
50877
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InputArrowsComponent", function() { return InputArrowsComponent; });
50878
+ /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
50879
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
50880
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
50881
+
50882
+
50883
+ var upArrowIcon = __webpack_require__(/*! ./valueUpArrowIcon.svg */ "./sharedUiComponents/lines/valueUpArrowIcon.svg");
50884
+ var downArrowIcon = __webpack_require__(/*! ./valueDownArrowIcon.svg */ "./sharedUiComponents/lines/valueDownArrowIcon.svg");
50885
+ var InputArrowsComponent = /** @class */ (function (_super) {
50886
+ Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"])(InputArrowsComponent, _super);
50887
+ function InputArrowsComponent() {
50888
+ var _this = _super !== null && _super.apply(this, arguments) || this;
50889
+ _this._arrowsRef = react__WEBPACK_IMPORTED_MODULE_1__["createRef"]();
50890
+ _this._drag = function (event) {
50891
+ _this.props.incrementValue(event.movementY);
50892
+ };
50893
+ _this._releaseListener = function () {
50894
+ var _a, _b;
50895
+ _this.props.setDragging(false);
50896
+ (_a = _this._arrowsRef.current) === null || _a === void 0 ? void 0 : _a.ownerDocument.exitPointerLock();
50897
+ window.removeEventListener("pointerup", _this._releaseListener);
50898
+ (_b = _this._arrowsRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.removeEventListener("mousemove", _this._drag);
50899
+ };
50900
+ return _this;
50901
+ }
50902
+ InputArrowsComponent.prototype.render = function () {
50903
+ var _this = this;
50904
+ return react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "arrows", ref: this._arrowsRef, onPointerDown: function (event) {
50905
+ var _a, _b;
50906
+ _this.props.setDragging(true);
50907
+ (_a = _this._arrowsRef.current) === null || _a === void 0 ? void 0 : _a.requestPointerLock();
50908
+ window.addEventListener("pointerup", _this._releaseListener);
50909
+ (_b = _this._arrowsRef.current) === null || _b === void 0 ? void 0 : _b.ownerDocument.addEventListener("mousemove", _this._drag);
50910
+ }, onDragStart: function (evt) { return evt.preventDefault(); } },
50911
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { className: "upArrowIcon", src: upArrowIcon, alt: "Increase Value" }),
50912
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { className: "downArrowIcon", src: downArrowIcon, alt: "Increase Value" }));
50913
+ };
50914
+ return InputArrowsComponent;
50915
+ }(react__WEBPACK_IMPORTED_MODULE_1__["Component"]));
50916
+
50917
+
50918
+
50703
50919
  /***/ }),
50704
50920
 
50705
50921
  /***/ "./sharedUiComponents/lines/numericInputComponent.tsx":
@@ -51052,7 +51268,7 @@ var SliderLineComponent = /** @class */ (function (_super) {
51052
51268
  }, onChange: function (evt) {
51053
51269
  var changed = _this.prepareDataToRead(_this.state.value);
51054
51270
  _this.onChange(changed);
51055
- } }),
51271
+ }, onPropertyChangedObservable: this.props.onPropertyChangedObservable }),
51056
51272
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "slider" },
51057
51273
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { className: "range", type: "range", step: this.props.step, min: this.prepareDataToRead(this.props.minimum), max: this.prepareDataToRead(this.props.maximum), value: this.prepareDataToRead(this.state.value), onInput: function (evt) { return _this.onInput(evt.target.value); }, onChange: function (evt) { return _this.onChange(evt.target.value); } }))));
51058
51274
  };
@@ -51138,6 +51354,8 @@ __webpack_require__.r(__webpack_exports__);
51138
51354
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "../../../../node_modules/react/index.js");
51139
51355
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
51140
51356
  /* harmony import */ var _targetsProxy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./targetsProxy */ "./sharedUiComponents/lines/targetsProxy.tsx");
51357
+ /* harmony import */ var _inputArrowsComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./inputArrowsComponent */ "./sharedUiComponents/lines/inputArrowsComponent.tsx");
51358
+
51141
51359
 
51142
51360
 
51143
51361
 
@@ -51146,7 +51364,10 @@ var TextInputLineComponent = /** @class */ (function (_super) {
51146
51364
  function TextInputLineComponent(props) {
51147
51365
  var _this = _super.call(this, props) || this;
51148
51366
  _this._localChange = false;
51149
- _this.state = { value: (_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "" };
51367
+ _this.state = {
51368
+ value: (_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "",
51369
+ dragging: false
51370
+ };
51150
51371
  return _this;
51151
51372
  }
51152
51373
  TextInputLineComponent.prototype.componentWillUnmount = function () {
@@ -51162,6 +51383,8 @@ var TextInputLineComponent = /** @class */ (function (_super) {
51162
51383
  nextState.value = newValue || "";
51163
51384
  return true;
51164
51385
  }
51386
+ if (nextState.dragging != this.state.dragging)
51387
+ return true;
51165
51388
  return false;
51166
51389
  };
51167
51390
  TextInputLineComponent.prototype.raiseOnPropertyChanged = function (newValue, previousValue) {
@@ -51200,6 +51423,29 @@ var TextInputLineComponent = /** @class */ (function (_super) {
51200
51423
  }
51201
51424
  this.raiseOnPropertyChanged(value, store);
51202
51425
  };
51426
+ TextInputLineComponent.prototype.incrementValue = function (amount) {
51427
+ if (this.props.step) {
51428
+ amount *= this.props.step;
51429
+ }
51430
+ if (this.props.arrowsIncrement) {
51431
+ this.props.arrowsIncrement(amount);
51432
+ return;
51433
+ }
51434
+ var currentValue = parseFloat(this.state.value);
51435
+ this.updateValue((currentValue + amount).toFixed(2));
51436
+ };
51437
+ TextInputLineComponent.prototype.onKeyDown = function (event) {
51438
+ if (this.props.arrows) {
51439
+ if (event.key === "ArrowUp") {
51440
+ this.incrementValue(-1);
51441
+ event.preventDefault();
51442
+ }
51443
+ if (event.key === "ArrowDown") {
51444
+ this.incrementValue(1);
51445
+ event.preventDefault();
51446
+ }
51447
+ }
51448
+ };
51203
51449
  TextInputLineComponent.prototype.render = function () {
51204
51450
  var _this = this;
51205
51451
  var value = this.state.value === _targetsProxy__WEBPACK_IMPORTED_MODULE_2__["conflictingValuesPlaceholder"] ? "" : this.state.value;
@@ -51207,11 +51453,13 @@ var TextInputLineComponent = /** @class */ (function (_super) {
51207
51453
  return (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: this.props.unit !== undefined ? "textInputLine withUnits" : "textInputLine" },
51208
51454
  this.props.icon && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("img", { src: this.props.icon, title: this.props.iconLabel, alt: this.props.iconLabel, color: "black", className: "icon" }),
51209
51455
  (!this.props.icon || (this.props.icon && this.props.label != "")) && (react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "label", title: this.props.label }, this.props.label)),
51210
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "value" + (this.props.noUnderline === true ? " noUnderline" : "") },
51456
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "value".concat(this.props.noUnderline === true ? " noUnderline" : "").concat(this.props.arrows ? " hasArrows" : "").concat(this.state.dragging ? " dragging" : "") },
51211
51457
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("input", { value: value, onBlur: function () {
51212
51458
  _this.props.lockObject.lock = false;
51213
51459
  _this.updateValue((_this.props.value !== undefined ? _this.props.value : _this.props.target[_this.props.propertyName]) || "");
51214
- }, onFocus: function () { return (_this.props.lockObject.lock = true); }, onChange: function (evt) { return _this.updateValue(evt.target.value); }, placeholder: placeholder })),
51460
+ }, onFocus: function () { return (_this.props.lockObject.lock = true); }, onChange: function (evt) { return _this.updateValue(evt.target.value); }, onKeyDown: function (evt) { return _this.onKeyDown(evt); }, placeholder: placeholder }),
51461
+ this.props.arrows &&
51462
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_inputArrowsComponent__WEBPACK_IMPORTED_MODULE_3__["InputArrowsComponent"], { incrementValue: function (amount) { return _this.incrementValue(amount); }, setDragging: function (dragging) { return _this.setState({ dragging: dragging }); } })),
51215
51463
  this.props.unit !== undefined && react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("button", { className: this.props.unitLocked ? "unit disabled" : "unit", onClick: function () { if (_this.props.onUnitClicked && !_this.props.unitLocked)
51216
51464
  _this.props.onUnitClicked(_this.props.unit || ""); } }, this.props.unit)));
51217
51465
  };
@@ -51274,6 +51522,28 @@ var TextLineComponent = /** @class */ (function (_super) {
51274
51522
 
51275
51523
 
51276
51524
 
51525
+ /***/ }),
51526
+
51527
+ /***/ "./sharedUiComponents/lines/valueDownArrowIcon.svg":
51528
+ /*!*********************************************************!*\
51529
+ !*** ./sharedUiComponents/lines/valueDownArrowIcon.svg ***!
51530
+ \*********************************************************/
51531
+ /*! no static exports found */
51532
+ /***/ (function(module, exports) {
51533
+
51534
+ module.exports = "data:image/svg+xml,%3Csvg id='icons' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M4.09,5.55a.61.61,0,0,1,.85,0l2,2V1.79a.6.6,0,1,1,1.2,0V7.52l2-2a.61.61,0,0,1,.85,0,.6.6,0,0,1,0,.84l-3,3a.6.6,0,0,1-.84,0l-3-3A.6.6,0,0,1,4.09,5.55Z'/%3E%3C/svg%3E"
51535
+
51536
+ /***/ }),
51537
+
51538
+ /***/ "./sharedUiComponents/lines/valueUpArrowIcon.svg":
51539
+ /*!*******************************************************!*\
51540
+ !*** ./sharedUiComponents/lines/valueUpArrowIcon.svg ***!
51541
+ \*******************************************************/
51542
+ /*! no static exports found */
51543
+ /***/ (function(module, exports) {
51544
+
51545
+ module.exports = "data:image/svg+xml,%3Csvg id='icons' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23333;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M4.09,9.45a.6.6,0,0,1,0-.84l3-3a.6.6,0,0,1,.84,0l3,3a.6.6,0,0,1,0,.84.61.61,0,0,1-.85,0l-2-2v5.73a.6.6,0,0,1-1.2,0V7.48l-2,2A.61.61,0,0,1,4.09,9.45Z'/%3E%3C/svg%3E"
51546
+
51277
51547
  /***/ }),
51278
51548
 
51279
51549
  /***/ "./sharedUiComponents/stringTools.ts":
@@ -51418,16 +51688,19 @@ __webpack_require__.r(__webpack_exports__);
51418
51688
  var Tools = /** @class */ (function () {
51419
51689
  function Tools() {
51420
51690
  }
51421
- Tools.LookForItem = function (item, selectedEntity, firstIteration) {
51691
+ Tools.LookForItems = function (item, selectedEntities, firstIteration) {
51422
51692
  if (firstIteration === void 0) { firstIteration = true; }
51423
- if (!firstIteration && item === selectedEntity) {
51693
+ if (selectedEntities.length == 0) {
51694
+ return false;
51695
+ }
51696
+ if (!firstIteration && selectedEntities.includes(item)) {
51424
51697
  return true;
51425
51698
  }
51426
51699
  var children = item.getChildren ? item.getChildren() : item.children;
51427
51700
  if (children) {
51428
51701
  for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {
51429
51702
  var child = children_1[_i];
51430
- if (Tools.LookForItem(child, selectedEntity, false)) {
51703
+ if (Tools.LookForItems(child, selectedEntities, false)) {
51431
51704
  return true;
51432
51705
  }
51433
51706
  }
@@ -51517,7 +51790,7 @@ __webpack_require__.r(__webpack_exports__);
51517
51790
  /* harmony import */ var _sharedComponents_messageDialog__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./sharedComponents/messageDialog */ "./sharedComponents/messageDialog.tsx");
51518
51791
  /* harmony import */ var _components_sceneExplorer_sceneExplorerComponent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/sceneExplorer/sceneExplorerComponent */ "./components/sceneExplorer/sceneExplorerComponent.tsx");
51519
51792
  /* harmony import */ var _components_commandBarComponent__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/commandBarComponent */ "./components/commandBarComponent.tsx");
51520
- /* harmony import */ var _diagram_guiGizmo__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagram/guiGizmo */ "./diagram/guiGizmo.tsx");
51793
+ /* harmony import */ var _diagram_guiGizmoWrapper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./diagram/guiGizmoWrapper */ "./diagram/guiGizmoWrapper.tsx");
51521
51794
  /* harmony import */ var _diagram_artBoard__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./diagram/artBoard */ "./diagram/artBoard.tsx");
51522
51795
 
51523
51796
 
@@ -51651,6 +51924,12 @@ var WorkbenchEditor = /** @class */ (function (_super) {
51651
51924
  }, false);
51652
51925
  _this.createItems();
51653
51926
  _this.props.globalState.onBackgroundColorChangeObservable.add(function () { return _this.forceUpdate(); });
51927
+ _this.props.globalState.onDropObservable.add(function () {
51928
+ if (_this._draggedItem != null) {
51929
+ _this.props.globalState.draggedControl = _this.onCreate(_this._draggedItem);
51930
+ }
51931
+ _this._draggedItem = null;
51932
+ });
51654
51933
  return _this;
51655
51934
  }
51656
51935
  WorkbenchEditor.prototype.componentDidMount = function () {
@@ -51718,10 +51997,8 @@ var WorkbenchEditor = /** @class */ (function (_super) {
51718
51997
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_components_sceneExplorer_sceneExplorerComponent__WEBPACK_IMPORTED_MODULE_9__["SceneExplorerComponent"], { globalState: this.props.globalState, noExpand: true }),
51719
51998
  this.createToolbar(),
51720
51999
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "diagram-container", onDrop: function (event) {
51721
- if (_this._draggedItem != null) {
51722
- _this.onCreate(_this._draggedItem);
51723
- }
51724
- _this._draggedItem = null;
52000
+ event.preventDefault();
52001
+ _this.props.globalState.onDropObservable.notifyObservers();
51725
52002
  }, onDragOver: function (event) {
51726
52003
  event.preventDefault();
51727
52004
  }, style: {
@@ -51729,7 +52006,7 @@ var WorkbenchEditor = /** @class */ (function (_super) {
51729
52006
  } },
51730
52007
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_diagram_artBoard__WEBPACK_IMPORTED_MODULE_12__["ArtBoardComponent"], { globalState: this.props.globalState }),
51731
52008
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_diagram_workbench__WEBPACK_IMPORTED_MODULE_7__["WorkbenchComponent"], { ref: "workbenchCanvas", globalState: this.props.globalState }),
51732
- react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_diagram_guiGizmo__WEBPACK_IMPORTED_MODULE_11__["GuiGizmoComponent"], { globalState: this.props.globalState })),
52009
+ react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_diagram_guiGizmoWrapper__WEBPACK_IMPORTED_MODULE_11__["GizmoWrapper"], { globalState: this.props.globalState })),
51733
52010
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { id: "rightGrab", onPointerDown: function (evt) { return _this.onPointerDown(evt); }, onPointerUp: function (evt) { return _this.onPointerUp(evt); }, onPointerMove: function (evt) { return _this.resizeColumns(evt, false); } }),
51734
52011
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"]("div", { className: "right-panel" },
51735
52012
  react__WEBPACK_IMPORTED_MODULE_1__["createElement"](_components_propertyTab_propertyTabComponent__WEBPACK_IMPORTED_MODULE_2__["PropertyTabComponent"], { globalState: this.props.globalState })),
@@ -51872,9 +52149,10 @@ var WorkbenchEditor = /** @class */ (function (_super) {
51872
52149
  WorkbenchEditor.prototype.onCreate = function (value) {
51873
52150
  var guiElement = _guiNodeTools__WEBPACK_IMPORTED_MODULE_6__["GUINodeTools"].CreateControlFromString(value);
51874
52151
  var newGuiNode = this.props.globalState.workbench.appendBlock(guiElement);
51875
- this.props.globalState.onSelectionChangedObservable.notifyObservers(newGuiNode);
51876
- this.props.globalState.guiGizmo.onUp();
52152
+ this.props.globalState.select(newGuiNode);
52153
+ this.props.globalState.onPointerUpObservable.notifyObservers(null);
51877
52154
  this.forceUpdate();
52155
+ return newGuiNode;
51878
52156
  };
51879
52157
  WorkbenchEditor.prototype.createToolbar = function () {
51880
52158
  var _this = this;