babylonjs-gui 5.11.0 → 5.12.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.
- package/babylon.gui.d.ts +193 -36
- package/babylon.gui.js +1155 -48
- package/babylon.gui.js.map +1 -1
- package/babylon.gui.min.js +1 -2
- package/babylon.gui.min.js.map +1 -1
- package/babylon.gui.module.d.ts +402 -73
- package/package.json +5 -5
- package/babylon.gui.min.js.LICENSE.txt +0 -14
package/babylon.gui.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
exports["babylonjs-gui"] = factory(require("babylonjs"));
|
|
8
8
|
else
|
|
9
9
|
root["BABYLON"] = root["BABYLON"] || {}, root["BABYLON"]["GUI"] = factory(root["BABYLON"]);
|
|
10
|
-
})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this),
|
|
10
|
+
})((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this), (__WEBPACK_EXTERNAL_MODULE_core_Misc_observable__) => {
|
|
11
11
|
return /******/ (() => { // webpackBootstrap
|
|
12
12
|
/******/ "use strict";
|
|
13
13
|
/******/ var __webpack_modules__ = ({
|
|
@@ -27,6 +27,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
27
27
|
/* harmony export */ "__await": () => (/* binding */ __await),
|
|
28
28
|
/* harmony export */ "__awaiter": () => (/* binding */ __awaiter),
|
|
29
29
|
/* harmony export */ "__classPrivateFieldGet": () => (/* binding */ __classPrivateFieldGet),
|
|
30
|
+
/* harmony export */ "__classPrivateFieldIn": () => (/* binding */ __classPrivateFieldIn),
|
|
30
31
|
/* harmony export */ "__classPrivateFieldSet": () => (/* binding */ __classPrivateFieldSet),
|
|
31
32
|
/* harmony export */ "__createBinding": () => (/* binding */ __createBinding),
|
|
32
33
|
/* harmony export */ "__decorate": () => (/* binding */ __decorate),
|
|
@@ -45,7 +46,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
45
46
|
/* harmony export */ "__spreadArrays": () => (/* binding */ __spreadArrays),
|
|
46
47
|
/* harmony export */ "__values": () => (/* binding */ __values)
|
|
47
48
|
/* harmony export */ });
|
|
48
|
-
|
|
49
|
+
/******************************************************************************
|
|
49
50
|
Copyright (c) Microsoft Corporation.
|
|
50
51
|
|
|
51
52
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -154,7 +155,11 @@ function __generator(thisArg, body) {
|
|
|
154
155
|
|
|
155
156
|
var __createBinding = Object.create ? (function(o, m, k, k2) {
|
|
156
157
|
if (k2 === undefined) k2 = k;
|
|
157
|
-
Object.
|
|
158
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
159
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
160
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
161
|
+
}
|
|
162
|
+
Object.defineProperty(o, k2, desc);
|
|
158
163
|
}) : (function(o, m, k, k2) {
|
|
159
164
|
if (k2 === undefined) k2 = k;
|
|
160
165
|
o[k2] = m[k];
|
|
@@ -284,6 +289,11 @@ function __classPrivateFieldSet(receiver, state, value, kind, f) {
|
|
|
284
289
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
285
290
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
286
291
|
}
|
|
292
|
+
|
|
293
|
+
function __classPrivateFieldIn(state, receiver) {
|
|
294
|
+
if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
|
|
295
|
+
return typeof state === "function" ? receiver === state : state.has(receiver);
|
|
296
|
+
}
|
|
287
297
|
|
|
288
298
|
|
|
289
299
|
/***/ }),
|
|
@@ -8311,6 +8321,7 @@ var Image = /** @class */ (function (_super) {
|
|
|
8311
8321
|
};
|
|
8312
8322
|
if (value) {
|
|
8313
8323
|
core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.Tools.SetCorsBehavior(value, this._domImage);
|
|
8324
|
+
core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.Tools.SetReferrerPolicyBehavior(this.referrerPolicy, this._domImage);
|
|
8314
8325
|
this._domImage.src = value;
|
|
8315
8326
|
}
|
|
8316
8327
|
},
|
|
@@ -8727,41 +8738,42 @@ var Image = /** @class */ (function (_super) {
|
|
|
8727
8738
|
|
|
8728
8739
|
__webpack_require__.r(__webpack_exports__);
|
|
8729
8740
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
8730
|
-
/* harmony export */ "BaseSlider": () => (/* reexport safe */
|
|
8741
|
+
/* harmony export */ "BaseSlider": () => (/* reexport safe */ _sliders_baseSlider__WEBPACK_IMPORTED_MODULE_25__.BaseSlider),
|
|
8731
8742
|
/* harmony export */ "Button": () => (/* reexport safe */ _button__WEBPACK_IMPORTED_MODULE_0__.Button),
|
|
8732
8743
|
/* harmony export */ "Checkbox": () => (/* reexport safe */ _checkbox__WEBPACK_IMPORTED_MODULE_1__.Checkbox),
|
|
8733
|
-
/* harmony export */ "CheckboxGroup": () => (/* reexport safe */
|
|
8744
|
+
/* harmony export */ "CheckboxGroup": () => (/* reexport safe */ _selector__WEBPACK_IMPORTED_MODULE_17__.CheckboxGroup),
|
|
8734
8745
|
/* harmony export */ "ColorPicker": () => (/* reexport safe */ _colorpicker__WEBPACK_IMPORTED_MODULE_2__.ColorPicker),
|
|
8735
8746
|
/* harmony export */ "Container": () => (/* reexport safe */ _container__WEBPACK_IMPORTED_MODULE_3__.Container),
|
|
8736
8747
|
/* harmony export */ "Control": () => (/* reexport safe */ _control__WEBPACK_IMPORTED_MODULE_4__.Control),
|
|
8737
|
-
/* harmony export */ "DisplayGrid": () => (/* reexport safe */
|
|
8748
|
+
/* harmony export */ "DisplayGrid": () => (/* reexport safe */ _displayGrid__WEBPACK_IMPORTED_MODULE_24__.DisplayGrid),
|
|
8738
8749
|
/* harmony export */ "Ellipse": () => (/* reexport safe */ _ellipse__WEBPACK_IMPORTED_MODULE_5__.Ellipse),
|
|
8739
8750
|
/* harmony export */ "FocusableButton": () => (/* reexport safe */ _focusableButton__WEBPACK_IMPORTED_MODULE_6__.FocusableButton),
|
|
8740
8751
|
/* harmony export */ "Grid": () => (/* reexport safe */ _grid__WEBPACK_IMPORTED_MODULE_8__.Grid),
|
|
8741
8752
|
/* harmony export */ "Image": () => (/* reexport safe */ _image__WEBPACK_IMPORTED_MODULE_9__.Image),
|
|
8742
|
-
/* harmony export */ "ImageBasedSlider": () => (/* reexport safe */
|
|
8743
|
-
/* harmony export */ "ImageScrollBar": () => (/* reexport safe */
|
|
8744
|
-
/* harmony export */ "InputPassword": () => (/* reexport safe */
|
|
8753
|
+
/* harmony export */ "ImageBasedSlider": () => (/* reexport safe */ _sliders_imageBasedSlider__WEBPACK_IMPORTED_MODULE_27__.ImageBasedSlider),
|
|
8754
|
+
/* harmony export */ "ImageScrollBar": () => (/* reexport safe */ _sliders_imageScrollBar__WEBPACK_IMPORTED_MODULE_29__.ImageScrollBar),
|
|
8755
|
+
/* harmony export */ "InputPassword": () => (/* reexport safe */ _inputPassword__WEBPACK_IMPORTED_MODULE_12__.InputPassword),
|
|
8745
8756
|
/* harmony export */ "InputText": () => (/* reexport safe */ _inputText__WEBPACK_IMPORTED_MODULE_10__.InputText),
|
|
8746
|
-
/* harmony export */ "
|
|
8747
|
-
/* harmony export */ "
|
|
8748
|
-
/* harmony export */ "
|
|
8749
|
-
/* harmony export */ "
|
|
8750
|
-
/* harmony export */ "
|
|
8751
|
-
/* harmony export */ "
|
|
8752
|
-
/* harmony export */ "
|
|
8753
|
-
/* harmony export */ "
|
|
8754
|
-
/* harmony export */ "
|
|
8755
|
-
/* harmony export */ "
|
|
8756
|
-
/* harmony export */ "
|
|
8757
|
-
/* harmony export */ "
|
|
8758
|
-
/* harmony export */ "
|
|
8759
|
-
/* harmony export */ "
|
|
8760
|
-
/* harmony export */ "
|
|
8761
|
-
/* harmony export */ "
|
|
8762
|
-
/* harmony export */ "
|
|
8763
|
-
/* harmony export */ "
|
|
8764
|
-
/* harmony export */ "
|
|
8757
|
+
/* harmony export */ "InputTextArea": () => (/* reexport safe */ _inputTextArea__WEBPACK_IMPORTED_MODULE_11__.InputTextArea),
|
|
8758
|
+
/* harmony export */ "KeyPropertySet": () => (/* reexport safe */ _virtualKeyboard__WEBPACK_IMPORTED_MODULE_22__.KeyPropertySet),
|
|
8759
|
+
/* harmony export */ "Line": () => (/* reexport safe */ _line__WEBPACK_IMPORTED_MODULE_13__.Line),
|
|
8760
|
+
/* harmony export */ "MultiLine": () => (/* reexport safe */ _multiLine__WEBPACK_IMPORTED_MODULE_14__.MultiLine),
|
|
8761
|
+
/* harmony export */ "RadioButton": () => (/* reexport safe */ _radioButton__WEBPACK_IMPORTED_MODULE_15__.RadioButton),
|
|
8762
|
+
/* harmony export */ "RadioGroup": () => (/* reexport safe */ _selector__WEBPACK_IMPORTED_MODULE_17__.RadioGroup),
|
|
8763
|
+
/* harmony export */ "Rectangle": () => (/* reexport safe */ _rectangle__WEBPACK_IMPORTED_MODULE_23__.Rectangle),
|
|
8764
|
+
/* harmony export */ "ScrollBar": () => (/* reexport safe */ _sliders_scrollBar__WEBPACK_IMPORTED_MODULE_28__.ScrollBar),
|
|
8765
|
+
/* harmony export */ "ScrollViewer": () => (/* reexport safe */ _scrollViewers_scrollViewer__WEBPACK_IMPORTED_MODULE_18__.ScrollViewer),
|
|
8766
|
+
/* harmony export */ "SelectionPanel": () => (/* reexport safe */ _selector__WEBPACK_IMPORTED_MODULE_17__.SelectionPanel),
|
|
8767
|
+
/* harmony export */ "SelectorGroup": () => (/* reexport safe */ _selector__WEBPACK_IMPORTED_MODULE_17__.SelectorGroup),
|
|
8768
|
+
/* harmony export */ "Slider": () => (/* reexport safe */ _sliders_slider__WEBPACK_IMPORTED_MODULE_26__.Slider),
|
|
8769
|
+
/* harmony export */ "SliderGroup": () => (/* reexport safe */ _selector__WEBPACK_IMPORTED_MODULE_17__.SliderGroup),
|
|
8770
|
+
/* harmony export */ "StackPanel": () => (/* reexport safe */ _stackPanel__WEBPACK_IMPORTED_MODULE_16__.StackPanel),
|
|
8771
|
+
/* harmony export */ "TextBlock": () => (/* reexport safe */ _textBlock__WEBPACK_IMPORTED_MODULE_19__.TextBlock),
|
|
8772
|
+
/* harmony export */ "TextWrapper": () => (/* reexport safe */ _textWrapper__WEBPACK_IMPORTED_MODULE_20__.TextWrapper),
|
|
8773
|
+
/* harmony export */ "TextWrapping": () => (/* reexport safe */ _textBlock__WEBPACK_IMPORTED_MODULE_19__.TextWrapping),
|
|
8774
|
+
/* harmony export */ "ToggleButton": () => (/* reexport safe */ _toggleButton__WEBPACK_IMPORTED_MODULE_21__.ToggleButton),
|
|
8775
|
+
/* harmony export */ "VirtualKeyboard": () => (/* reexport safe */ _virtualKeyboard__WEBPACK_IMPORTED_MODULE_22__.VirtualKeyboard),
|
|
8776
|
+
/* harmony export */ "name": () => (/* reexport safe */ _statics__WEBPACK_IMPORTED_MODULE_30__.name)
|
|
8765
8777
|
/* harmony export */ });
|
|
8766
8778
|
/* harmony import */ var _button__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./button */ "../../../lts/gui/dist/2D/controls/button.js");
|
|
8767
8779
|
/* harmony import */ var _checkbox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./checkbox */ "../../../lts/gui/dist/2D/controls/checkbox.js");
|
|
@@ -8774,25 +8786,27 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
8774
8786
|
/* harmony import */ var _grid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./grid */ "../../../lts/gui/dist/2D/controls/grid.js");
|
|
8775
8787
|
/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./image */ "../../../lts/gui/dist/2D/controls/image.js");
|
|
8776
8788
|
/* harmony import */ var _inputText__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./inputText */ "../../../lts/gui/dist/2D/controls/inputText.js");
|
|
8777
|
-
/* harmony import */ var
|
|
8778
|
-
/* harmony import */ var
|
|
8779
|
-
/* harmony import */ var
|
|
8780
|
-
/* harmony import */ var
|
|
8781
|
-
/* harmony import */ var
|
|
8782
|
-
/* harmony import */ var
|
|
8783
|
-
/* harmony import */ var
|
|
8784
|
-
/* harmony import */ var
|
|
8785
|
-
/* harmony import */ var
|
|
8786
|
-
/* harmony import */ var
|
|
8787
|
-
/* harmony import */ var
|
|
8788
|
-
/* harmony import */ var
|
|
8789
|
-
/* harmony import */ var
|
|
8790
|
-
/* harmony import */ var
|
|
8791
|
-
/* harmony import */ var
|
|
8792
|
-
/* harmony import */ var
|
|
8793
|
-
/* harmony import */ var
|
|
8794
|
-
/* harmony import */ var
|
|
8795
|
-
/* harmony import */ var
|
|
8789
|
+
/* harmony import */ var _inputTextArea__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./inputTextArea */ "../../../lts/gui/dist/2D/controls/inputTextArea.js");
|
|
8790
|
+
/* harmony import */ var _inputPassword__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./inputPassword */ "../../../lts/gui/dist/2D/controls/inputPassword.js");
|
|
8791
|
+
/* harmony import */ var _line__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./line */ "../../../lts/gui/dist/2D/controls/line.js");
|
|
8792
|
+
/* harmony import */ var _multiLine__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./multiLine */ "../../../lts/gui/dist/2D/controls/multiLine.js");
|
|
8793
|
+
/* harmony import */ var _radioButton__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./radioButton */ "../../../lts/gui/dist/2D/controls/radioButton.js");
|
|
8794
|
+
/* harmony import */ var _stackPanel__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./stackPanel */ "../../../lts/gui/dist/2D/controls/stackPanel.js");
|
|
8795
|
+
/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./selector */ "../../../lts/gui/dist/2D/controls/selector.js");
|
|
8796
|
+
/* harmony import */ var _scrollViewers_scrollViewer__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./scrollViewers/scrollViewer */ "../../../lts/gui/dist/2D/controls/scrollViewers/scrollViewer.js");
|
|
8797
|
+
/* harmony import */ var _textBlock__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./textBlock */ "../../../lts/gui/dist/2D/controls/textBlock.js");
|
|
8798
|
+
/* harmony import */ var _textWrapper__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./textWrapper */ "../../../lts/gui/dist/2D/controls/textWrapper.js");
|
|
8799
|
+
/* harmony import */ var _toggleButton__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./toggleButton */ "../../../lts/gui/dist/2D/controls/toggleButton.js");
|
|
8800
|
+
/* harmony import */ var _virtualKeyboard__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./virtualKeyboard */ "../../../lts/gui/dist/2D/controls/virtualKeyboard.js");
|
|
8801
|
+
/* harmony import */ var _rectangle__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./rectangle */ "../../../lts/gui/dist/2D/controls/rectangle.js");
|
|
8802
|
+
/* harmony import */ var _displayGrid__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./displayGrid */ "../../../lts/gui/dist/2D/controls/displayGrid.js");
|
|
8803
|
+
/* harmony import */ var _sliders_baseSlider__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./sliders/baseSlider */ "../../../lts/gui/dist/2D/controls/sliders/baseSlider.js");
|
|
8804
|
+
/* harmony import */ var _sliders_slider__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./sliders/slider */ "../../../lts/gui/dist/2D/controls/sliders/slider.js");
|
|
8805
|
+
/* harmony import */ var _sliders_imageBasedSlider__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./sliders/imageBasedSlider */ "../../../lts/gui/dist/2D/controls/sliders/imageBasedSlider.js");
|
|
8806
|
+
/* harmony import */ var _sliders_scrollBar__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./sliders/scrollBar */ "../../../lts/gui/dist/2D/controls/sliders/scrollBar.js");
|
|
8807
|
+
/* harmony import */ var _sliders_imageScrollBar__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./sliders/imageScrollBar */ "../../../lts/gui/dist/2D/controls/sliders/imageScrollBar.js");
|
|
8808
|
+
/* harmony import */ var _statics__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./statics */ "../../../lts/gui/dist/2D/controls/statics.js");
|
|
8809
|
+
|
|
8796
8810
|
|
|
8797
8811
|
|
|
8798
8812
|
|
|
@@ -10011,6 +10025,1096 @@ var InputText = /** @class */ (function (_super) {
|
|
|
10011
10025
|
(0,core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.RegisterClass)("BABYLON.GUI.InputText", InputText);
|
|
10012
10026
|
|
|
10013
10027
|
|
|
10028
|
+
/***/ }),
|
|
10029
|
+
|
|
10030
|
+
/***/ "../../../lts/gui/dist/2D/controls/inputTextArea.js":
|
|
10031
|
+
/*!**********************************************************!*\
|
|
10032
|
+
!*** ../../../lts/gui/dist/2D/controls/inputTextArea.js ***!
|
|
10033
|
+
\**********************************************************/
|
|
10034
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
10035
|
+
|
|
10036
|
+
__webpack_require__.r(__webpack_exports__);
|
|
10037
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10038
|
+
/* harmony export */ "InputTextArea": () => (/* binding */ InputTextArea)
|
|
10039
|
+
/* harmony export */ });
|
|
10040
|
+
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "../../../../node_modules/tslib/tslib.es6.js");
|
|
10041
|
+
/* harmony import */ var core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core/Misc/decorators */ "core/Misc/observable");
|
|
10042
|
+
/* harmony import */ var core_Misc_observable__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__);
|
|
10043
|
+
/* harmony import */ var _control__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./control */ "../../../lts/gui/dist/2D/controls/control.js");
|
|
10044
|
+
/* harmony import */ var _valueAndUnit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../valueAndUnit */ "../../../lts/gui/dist/2D/valueAndUnit.js");
|
|
10045
|
+
/* harmony import */ var _inputText__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./inputText */ "../../../lts/gui/dist/2D/controls/inputText.js");
|
|
10046
|
+
|
|
10047
|
+
|
|
10048
|
+
|
|
10049
|
+
|
|
10050
|
+
|
|
10051
|
+
|
|
10052
|
+
|
|
10053
|
+
/**
|
|
10054
|
+
* Class used to create input text control
|
|
10055
|
+
*/
|
|
10056
|
+
var InputTextArea = /** @class */ (function (_super) {
|
|
10057
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__extends)(InputTextArea, _super);
|
|
10058
|
+
/**
|
|
10059
|
+
* Creates a new InputTextArea
|
|
10060
|
+
* @param name defines the control name
|
|
10061
|
+
* @param text defines the text of the control
|
|
10062
|
+
*/
|
|
10063
|
+
function InputTextArea(name, text) {
|
|
10064
|
+
if (text === void 0) { text = ""; }
|
|
10065
|
+
var _this = _super.call(this, name) || this;
|
|
10066
|
+
_this.name = name;
|
|
10067
|
+
_this._textHorizontalAlignment = _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_LEFT;
|
|
10068
|
+
_this._textVerticalAlignment = _control__WEBPACK_IMPORTED_MODULE_2__.Control.VERTICAL_ALIGNMENT_TOP;
|
|
10069
|
+
_this._lineSpacing = new _valueAndUnit__WEBPACK_IMPORTED_MODULE_3__.ValueAndUnit(0);
|
|
10070
|
+
_this._outlineWidth = 0;
|
|
10071
|
+
_this._outlineColor = "white";
|
|
10072
|
+
_this._maxHeight = new _valueAndUnit__WEBPACK_IMPORTED_MODULE_3__.ValueAndUnit(1, _valueAndUnit__WEBPACK_IMPORTED_MODULE_3__.ValueAndUnit.UNITMODE_PERCENTAGE, false);
|
|
10073
|
+
/**
|
|
10074
|
+
* An event triggered after the text was broken up into lines
|
|
10075
|
+
*/
|
|
10076
|
+
_this.onLinesReadyObservable = new core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.Observable();
|
|
10077
|
+
_this.text = text;
|
|
10078
|
+
_this.isPointerBlocker = true;
|
|
10079
|
+
_this.onLinesReadyObservable.add(function () { return _this._updateCursorPosition(); });
|
|
10080
|
+
_this._highlightCursorInfo = {
|
|
10081
|
+
initialStartIndex: -1,
|
|
10082
|
+
initialRelativeStartIndex: -1,
|
|
10083
|
+
initialLineIndex: -1,
|
|
10084
|
+
};
|
|
10085
|
+
_this._cursorInfo = {
|
|
10086
|
+
globalStartIndex: 0,
|
|
10087
|
+
globalEndIndex: 0,
|
|
10088
|
+
relativeEndIndex: 0,
|
|
10089
|
+
relativeStartIndex: 0,
|
|
10090
|
+
currentLineIndex: 0,
|
|
10091
|
+
};
|
|
10092
|
+
return _this;
|
|
10093
|
+
}
|
|
10094
|
+
Object.defineProperty(InputTextArea.prototype, "outlineWidth", {
|
|
10095
|
+
/**
|
|
10096
|
+
* Gets or sets outlineWidth of the text to display
|
|
10097
|
+
*/
|
|
10098
|
+
get: function () {
|
|
10099
|
+
return this._outlineWidth;
|
|
10100
|
+
},
|
|
10101
|
+
/**
|
|
10102
|
+
* Gets or sets outlineWidth of the text to display
|
|
10103
|
+
*/
|
|
10104
|
+
set: function (value) {
|
|
10105
|
+
if (this._outlineWidth === value) {
|
|
10106
|
+
return;
|
|
10107
|
+
}
|
|
10108
|
+
this._outlineWidth = value;
|
|
10109
|
+
this._markAsDirty();
|
|
10110
|
+
},
|
|
10111
|
+
enumerable: false,
|
|
10112
|
+
configurable: true
|
|
10113
|
+
});
|
|
10114
|
+
Object.defineProperty(InputTextArea.prototype, "outlineColor", {
|
|
10115
|
+
/**
|
|
10116
|
+
* Gets or sets outlineColor of the text to display
|
|
10117
|
+
*/
|
|
10118
|
+
get: function () {
|
|
10119
|
+
return this._outlineColor;
|
|
10120
|
+
},
|
|
10121
|
+
/**
|
|
10122
|
+
* Gets or sets outlineColor of the text to display
|
|
10123
|
+
*/
|
|
10124
|
+
set: function (value) {
|
|
10125
|
+
if (this._outlineColor === value) {
|
|
10126
|
+
return;
|
|
10127
|
+
}
|
|
10128
|
+
this._outlineColor = value;
|
|
10129
|
+
this._markAsDirty();
|
|
10130
|
+
},
|
|
10131
|
+
enumerable: false,
|
|
10132
|
+
configurable: true
|
|
10133
|
+
});
|
|
10134
|
+
Object.defineProperty(InputTextArea.prototype, "autoStretchHeight", {
|
|
10135
|
+
/** Gets or sets a boolean indicating if the control can auto stretch its height to adapt to the text */
|
|
10136
|
+
get: function () {
|
|
10137
|
+
return this._autoStretchHeight;
|
|
10138
|
+
},
|
|
10139
|
+
set: function (value) {
|
|
10140
|
+
if (this._autoStretchHeight === value) {
|
|
10141
|
+
return;
|
|
10142
|
+
}
|
|
10143
|
+
this._autoStretchHeight = value;
|
|
10144
|
+
this._markAsDirty();
|
|
10145
|
+
},
|
|
10146
|
+
enumerable: false,
|
|
10147
|
+
configurable: true
|
|
10148
|
+
});
|
|
10149
|
+
Object.defineProperty(InputTextArea.prototype, "height", {
|
|
10150
|
+
set: function (value) {
|
|
10151
|
+
this._fixedRatioMasterIsWidth = false;
|
|
10152
|
+
if (this._height.toString(this._host) === value) {
|
|
10153
|
+
return;
|
|
10154
|
+
}
|
|
10155
|
+
if (this._height.fromString(value)) {
|
|
10156
|
+
this._markAsDirty();
|
|
10157
|
+
}
|
|
10158
|
+
this._autoStretchHeight = false;
|
|
10159
|
+
},
|
|
10160
|
+
enumerable: false,
|
|
10161
|
+
configurable: true
|
|
10162
|
+
});
|
|
10163
|
+
Object.defineProperty(InputTextArea.prototype, "maxHeight", {
|
|
10164
|
+
get: function () {
|
|
10165
|
+
return this._maxHeight.toString(this._host);
|
|
10166
|
+
},
|
|
10167
|
+
set: function (value) {
|
|
10168
|
+
if (this._maxHeight.toString(this._host) === value) {
|
|
10169
|
+
return;
|
|
10170
|
+
}
|
|
10171
|
+
if (this._maxHeight.fromString(value)) {
|
|
10172
|
+
this._markAsDirty();
|
|
10173
|
+
}
|
|
10174
|
+
},
|
|
10175
|
+
enumerable: false,
|
|
10176
|
+
configurable: true
|
|
10177
|
+
});
|
|
10178
|
+
Object.defineProperty(InputTextArea.prototype, "maxHeightInPixels", {
|
|
10179
|
+
/** Gets the maximum width allowed by the control in pixels */
|
|
10180
|
+
get: function () {
|
|
10181
|
+
return this._maxHeight.getValueInPixel(this._host, this._cachedParentMeasure.height);
|
|
10182
|
+
},
|
|
10183
|
+
enumerable: false,
|
|
10184
|
+
configurable: true
|
|
10185
|
+
});
|
|
10186
|
+
InputTextArea.prototype._getTypeName = function () {
|
|
10187
|
+
return "InputTextArea";
|
|
10188
|
+
};
|
|
10189
|
+
/**
|
|
10190
|
+
* Handles the keyboard event
|
|
10191
|
+
* @param evt Defines the KeyboardEvent
|
|
10192
|
+
*/
|
|
10193
|
+
InputTextArea.prototype.processKeyboard = function (evt) {
|
|
10194
|
+
// process pressed key
|
|
10195
|
+
this.alternativeProcessKey(evt.code, evt.key, evt);
|
|
10196
|
+
this.onKeyboardEventProcessedObservable.notifyObservers(evt);
|
|
10197
|
+
};
|
|
10198
|
+
/**
|
|
10199
|
+
* Process the last keyboard input
|
|
10200
|
+
*
|
|
10201
|
+
* @param code The ascii input number
|
|
10202
|
+
* @param key The key string representation
|
|
10203
|
+
* @param evt The keyboard event emits with input
|
|
10204
|
+
* @hidden
|
|
10205
|
+
*/
|
|
10206
|
+
InputTextArea.prototype.alternativeProcessKey = function (code, key, evt) {
|
|
10207
|
+
//return if clipboard event keys (i.e -ctr/cmd + c,v,x)
|
|
10208
|
+
if (evt && (evt.ctrlKey || evt.metaKey) && (code === "KeyC" || code === "KeyV" || code === "KeyX")) {
|
|
10209
|
+
return;
|
|
10210
|
+
}
|
|
10211
|
+
// Specific cases
|
|
10212
|
+
switch (code) {
|
|
10213
|
+
case "KeyA": // A - select all
|
|
10214
|
+
if (evt && (evt.ctrlKey || evt.metaKey)) {
|
|
10215
|
+
this._selectAllText();
|
|
10216
|
+
evt.preventDefault();
|
|
10217
|
+
return;
|
|
10218
|
+
}
|
|
10219
|
+
break;
|
|
10220
|
+
case "Period": //SLASH
|
|
10221
|
+
if (evt && evt.shiftKey) {
|
|
10222
|
+
evt.preventDefault();
|
|
10223
|
+
}
|
|
10224
|
+
break;
|
|
10225
|
+
case "Backspace": // BACKSPACE
|
|
10226
|
+
if (!this._isTextHighlightOn && this._cursorInfo.globalStartIndex > 0) {
|
|
10227
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10228
|
+
this._cursorInfo.globalStartIndex--;
|
|
10229
|
+
}
|
|
10230
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex);
|
|
10231
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10232
|
+
if (evt) {
|
|
10233
|
+
evt.preventDefault();
|
|
10234
|
+
}
|
|
10235
|
+
this._blinkIsEven = false;
|
|
10236
|
+
this._isTextHighlightOn = false;
|
|
10237
|
+
this._textHasChanged();
|
|
10238
|
+
break;
|
|
10239
|
+
case "Delete": // DELETE
|
|
10240
|
+
if (!this._isTextHighlightOn && this._cursorInfo.globalEndIndex < this.text.length) {
|
|
10241
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex + 1;
|
|
10242
|
+
}
|
|
10243
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex);
|
|
10244
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10245
|
+
if (evt) {
|
|
10246
|
+
evt.preventDefault();
|
|
10247
|
+
}
|
|
10248
|
+
this._blinkIsEven = false;
|
|
10249
|
+
this._isTextHighlightOn = false;
|
|
10250
|
+
this._textHasChanged();
|
|
10251
|
+
break;
|
|
10252
|
+
case "Enter": // RETURN
|
|
10253
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex, "\n");
|
|
10254
|
+
this._cursorInfo.globalStartIndex++;
|
|
10255
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10256
|
+
this._blinkIsEven = false;
|
|
10257
|
+
this._isTextHighlightOn = false;
|
|
10258
|
+
this._textHasChanged();
|
|
10259
|
+
return;
|
|
10260
|
+
case "End": // END
|
|
10261
|
+
this._cursorInfo.globalStartIndex = this.text.length;
|
|
10262
|
+
this._blinkIsEven = false;
|
|
10263
|
+
this._isTextHighlightOn = false;
|
|
10264
|
+
this._markAsDirty();
|
|
10265
|
+
return;
|
|
10266
|
+
case "Home": // HOME
|
|
10267
|
+
this._cursorInfo.globalStartIndex = 0;
|
|
10268
|
+
this._blinkIsEven = false;
|
|
10269
|
+
this._isTextHighlightOn = false;
|
|
10270
|
+
this._markAsDirty();
|
|
10271
|
+
return;
|
|
10272
|
+
case "ArrowLeft": // LEFT
|
|
10273
|
+
this._markAsDirty();
|
|
10274
|
+
if (evt && evt.shiftKey) {
|
|
10275
|
+
// shift + ctrl/cmd + <-
|
|
10276
|
+
if (evt.ctrlKey || evt.metaKey) {
|
|
10277
|
+
// Go to line's start by substract the relativeStartIndex to the globalStartIndex
|
|
10278
|
+
this._cursorInfo.globalStartIndex -= this._cursorInfo.relativeStartIndex;
|
|
10279
|
+
this._cursorInfo.globalEndIndex = this._highlightCursorInfo.initialStartIndex;
|
|
10280
|
+
}
|
|
10281
|
+
// store the starting point
|
|
10282
|
+
if (!this._isTextHighlightOn) {
|
|
10283
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
10284
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
10285
|
+
this._highlightCursorInfo.initialRelativeStartIndex = this._cursorInfo.relativeStartIndex;
|
|
10286
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10287
|
+
this._cursorInfo.globalStartIndex--;
|
|
10288
|
+
this._isTextHighlightOn = true;
|
|
10289
|
+
}
|
|
10290
|
+
else {
|
|
10291
|
+
if (this._cursorInfo.globalEndIndex > this._highlightCursorInfo.initialStartIndex) {
|
|
10292
|
+
this._cursorInfo.globalEndIndex--;
|
|
10293
|
+
}
|
|
10294
|
+
else {
|
|
10295
|
+
this._cursorInfo.globalStartIndex--;
|
|
10296
|
+
}
|
|
10297
|
+
}
|
|
10298
|
+
this._blinkIsEven = true;
|
|
10299
|
+
evt.preventDefault();
|
|
10300
|
+
return;
|
|
10301
|
+
}
|
|
10302
|
+
if (this._isTextHighlightOn) {
|
|
10303
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10304
|
+
}
|
|
10305
|
+
else if (evt && (evt.ctrlKey || evt.metaKey)) {
|
|
10306
|
+
// ctr + <-
|
|
10307
|
+
this._cursorInfo.globalStartIndex -= this._cursorInfo.relativeStartIndex;
|
|
10308
|
+
evt.preventDefault();
|
|
10309
|
+
}
|
|
10310
|
+
else if (this._cursorInfo.globalStartIndex > 0) {
|
|
10311
|
+
this._cursorInfo.globalStartIndex--;
|
|
10312
|
+
}
|
|
10313
|
+
// update the cursor
|
|
10314
|
+
this._blinkIsEven = false;
|
|
10315
|
+
this._isTextHighlightOn = false;
|
|
10316
|
+
return;
|
|
10317
|
+
case "ArrowRight": // RIGHT
|
|
10318
|
+
this._markAsDirty();
|
|
10319
|
+
if (evt && evt.shiftKey) {
|
|
10320
|
+
// shift + ctrl/cmd + ->
|
|
10321
|
+
if (evt.ctrlKey || evt.metaKey) {
|
|
10322
|
+
var rightDelta = this._lines[this._cursorInfo.currentLineIndex].text.length - this._cursorInfo.relativeEndIndex - 1;
|
|
10323
|
+
this._cursorInfo.globalEndIndex += rightDelta;
|
|
10324
|
+
this._cursorInfo.globalStartIndex = this._highlightCursorInfo.initialStartIndex;
|
|
10325
|
+
}
|
|
10326
|
+
// store the starting point
|
|
10327
|
+
if (!this._isTextHighlightOn) {
|
|
10328
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
10329
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
10330
|
+
this._highlightCursorInfo.initialRelativeStartIndex = this._cursorInfo.relativeStartIndex;
|
|
10331
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10332
|
+
this._cursorInfo.globalEndIndex++;
|
|
10333
|
+
this._isTextHighlightOn = true;
|
|
10334
|
+
}
|
|
10335
|
+
else {
|
|
10336
|
+
if (this._cursorInfo.globalStartIndex < this._highlightCursorInfo.initialStartIndex) {
|
|
10337
|
+
this._cursorInfo.globalStartIndex++;
|
|
10338
|
+
}
|
|
10339
|
+
else {
|
|
10340
|
+
this._cursorInfo.globalEndIndex++;
|
|
10341
|
+
}
|
|
10342
|
+
}
|
|
10343
|
+
this._blinkIsEven = true;
|
|
10344
|
+
evt.preventDefault();
|
|
10345
|
+
return;
|
|
10346
|
+
}
|
|
10347
|
+
if (this._isTextHighlightOn) {
|
|
10348
|
+
this._cursorInfo.globalStartIndex = this._cursorInfo.globalEndIndex;
|
|
10349
|
+
}
|
|
10350
|
+
else if (evt && (evt.ctrlKey || evt.metaKey)) {
|
|
10351
|
+
//ctr + ->
|
|
10352
|
+
var rightDelta = this._lines[this._cursorInfo.currentLineIndex].text.length - this._cursorInfo.relativeEndIndex;
|
|
10353
|
+
this._cursorInfo.globalStartIndex += rightDelta;
|
|
10354
|
+
}
|
|
10355
|
+
else if (this._cursorInfo.globalStartIndex < this.text.length) {
|
|
10356
|
+
this._cursorInfo.globalStartIndex++;
|
|
10357
|
+
}
|
|
10358
|
+
// update the cursor
|
|
10359
|
+
this._blinkIsEven = false;
|
|
10360
|
+
this._isTextHighlightOn = false;
|
|
10361
|
+
return;
|
|
10362
|
+
case "ArrowUp": // UP
|
|
10363
|
+
// update the cursor
|
|
10364
|
+
this._blinkIsEven = false;
|
|
10365
|
+
if (evt) {
|
|
10366
|
+
if (evt.shiftKey) {
|
|
10367
|
+
if (!this._isTextHighlightOn) {
|
|
10368
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
10369
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
10370
|
+
this._highlightCursorInfo.initialRelativeStartIndex = this._cursorInfo.relativeStartIndex;
|
|
10371
|
+
}
|
|
10372
|
+
this._isTextHighlightOn = true;
|
|
10373
|
+
this._blinkIsEven = true;
|
|
10374
|
+
}
|
|
10375
|
+
else {
|
|
10376
|
+
this._isTextHighlightOn = false;
|
|
10377
|
+
}
|
|
10378
|
+
evt.preventDefault();
|
|
10379
|
+
}
|
|
10380
|
+
if (this._cursorInfo.currentLineIndex === 0) {
|
|
10381
|
+
// First line
|
|
10382
|
+
this._cursorInfo.globalStartIndex = 0;
|
|
10383
|
+
}
|
|
10384
|
+
else {
|
|
10385
|
+
var currentLine = this._lines[this._cursorInfo.currentLineIndex];
|
|
10386
|
+
var upperLine = this._lines[this._cursorInfo.currentLineIndex - 1];
|
|
10387
|
+
var tmpIndex = 0;
|
|
10388
|
+
var relativeIndex = 0;
|
|
10389
|
+
if (!this._isTextHighlightOn || this._cursorInfo.currentLineIndex < this._highlightCursorInfo.initialLineIndex) {
|
|
10390
|
+
tmpIndex = this._cursorInfo.globalStartIndex;
|
|
10391
|
+
relativeIndex = this._cursorInfo.relativeStartIndex;
|
|
10392
|
+
}
|
|
10393
|
+
else {
|
|
10394
|
+
tmpIndex = this._cursorInfo.globalEndIndex;
|
|
10395
|
+
relativeIndex = this._cursorInfo.relativeEndIndex;
|
|
10396
|
+
}
|
|
10397
|
+
var currentText = currentLine.text.substr(0, relativeIndex);
|
|
10398
|
+
var currentWidth = this._contextForBreakLines.measureText(currentText).width;
|
|
10399
|
+
var upperWidth = 0;
|
|
10400
|
+
var previousWidth = 0;
|
|
10401
|
+
tmpIndex -= relativeIndex; // Start of current line
|
|
10402
|
+
tmpIndex -= upperLine.text.length + upperLine.lineEnding.length; // Start of upper line
|
|
10403
|
+
var upperLineRelativeIndex = 0;
|
|
10404
|
+
while (upperWidth < currentWidth && upperLineRelativeIndex < upperLine.text.length) {
|
|
10405
|
+
tmpIndex++;
|
|
10406
|
+
upperLineRelativeIndex++;
|
|
10407
|
+
previousWidth = Math.abs(currentWidth - upperWidth);
|
|
10408
|
+
upperWidth = this._contextForBreakLines.measureText(upperLine.text.substr(0, upperLineRelativeIndex)).width;
|
|
10409
|
+
}
|
|
10410
|
+
// Find closest move
|
|
10411
|
+
if (Math.abs(currentWidth - upperWidth) > previousWidth && upperLineRelativeIndex > 0) {
|
|
10412
|
+
tmpIndex--;
|
|
10413
|
+
}
|
|
10414
|
+
if (!this._isTextHighlightOn) {
|
|
10415
|
+
this._cursorInfo.globalStartIndex = tmpIndex;
|
|
10416
|
+
}
|
|
10417
|
+
else if (this._cursorInfo.currentLineIndex <= this._highlightCursorInfo.initialLineIndex) {
|
|
10418
|
+
this._cursorInfo.globalStartIndex = tmpIndex;
|
|
10419
|
+
this._cursorInfo.globalEndIndex = this._highlightCursorInfo.initialStartIndex;
|
|
10420
|
+
this._cursorInfo.relativeEndIndex = this._highlightCursorInfo.initialRelativeStartIndex;
|
|
10421
|
+
}
|
|
10422
|
+
else {
|
|
10423
|
+
this._cursorInfo.globalEndIndex = tmpIndex;
|
|
10424
|
+
}
|
|
10425
|
+
}
|
|
10426
|
+
this._markAsDirty();
|
|
10427
|
+
return;
|
|
10428
|
+
case "ArrowDown": // DOWN
|
|
10429
|
+
// update the cursor
|
|
10430
|
+
this._blinkIsEven = false;
|
|
10431
|
+
if (evt) {
|
|
10432
|
+
if (evt.shiftKey) {
|
|
10433
|
+
if (!this._isTextHighlightOn) {
|
|
10434
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
10435
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
10436
|
+
this._highlightCursorInfo.initialRelativeStartIndex = this._cursorInfo.relativeStartIndex;
|
|
10437
|
+
}
|
|
10438
|
+
this._isTextHighlightOn = true;
|
|
10439
|
+
this._blinkIsEven = true;
|
|
10440
|
+
}
|
|
10441
|
+
else {
|
|
10442
|
+
this._isTextHighlightOn = false;
|
|
10443
|
+
}
|
|
10444
|
+
evt.preventDefault();
|
|
10445
|
+
}
|
|
10446
|
+
if (this._cursorInfo.currentLineIndex === this._lines.length - 1) {
|
|
10447
|
+
// Last line
|
|
10448
|
+
this._cursorInfo.globalStartIndex = this.text.length;
|
|
10449
|
+
}
|
|
10450
|
+
else {
|
|
10451
|
+
var currentLine = this._lines[this._cursorInfo.currentLineIndex];
|
|
10452
|
+
var underLine = this._lines[this._cursorInfo.currentLineIndex + 1];
|
|
10453
|
+
var tmpIndex = 0;
|
|
10454
|
+
var relativeIndex = 0;
|
|
10455
|
+
if (!this._isTextHighlightOn || this._cursorInfo.currentLineIndex < this._highlightCursorInfo.initialLineIndex) {
|
|
10456
|
+
tmpIndex = this._cursorInfo.globalStartIndex;
|
|
10457
|
+
relativeIndex = this._cursorInfo.relativeStartIndex;
|
|
10458
|
+
}
|
|
10459
|
+
else {
|
|
10460
|
+
tmpIndex = this._cursorInfo.globalEndIndex;
|
|
10461
|
+
relativeIndex = this._cursorInfo.relativeEndIndex;
|
|
10462
|
+
}
|
|
10463
|
+
var currentText = currentLine.text.substr(0, relativeIndex);
|
|
10464
|
+
var currentWidth = this._contextForBreakLines.measureText(currentText).width;
|
|
10465
|
+
var underWidth = 0;
|
|
10466
|
+
var previousWidth = 0;
|
|
10467
|
+
tmpIndex += currentLine.text.length - relativeIndex + currentLine.lineEnding.length; // Start of current line
|
|
10468
|
+
var underLineRelativeIndex = 0;
|
|
10469
|
+
while (underWidth < currentWidth && underLineRelativeIndex < underLine.text.length) {
|
|
10470
|
+
tmpIndex++;
|
|
10471
|
+
underLineRelativeIndex++;
|
|
10472
|
+
previousWidth = Math.abs(currentWidth - underWidth);
|
|
10473
|
+
underWidth = this._contextForBreakLines.measureText(underLine.text.substr(0, underLineRelativeIndex)).width;
|
|
10474
|
+
}
|
|
10475
|
+
// Find closest move
|
|
10476
|
+
if (Math.abs(currentWidth - underWidth) > previousWidth && underLineRelativeIndex > 0) {
|
|
10477
|
+
tmpIndex--;
|
|
10478
|
+
}
|
|
10479
|
+
if (!this._isTextHighlightOn) {
|
|
10480
|
+
this._cursorInfo.globalStartIndex = tmpIndex;
|
|
10481
|
+
}
|
|
10482
|
+
else if (this._cursorInfo.currentLineIndex < this._highlightCursorInfo.initialLineIndex) {
|
|
10483
|
+
this._cursorInfo.globalStartIndex = tmpIndex;
|
|
10484
|
+
if (this._cursorInfo.globalStartIndex > this._cursorInfo.globalEndIndex) {
|
|
10485
|
+
this._cursorInfo.globalEndIndex += this._cursorInfo.globalStartIndex;
|
|
10486
|
+
this._cursorInfo.globalStartIndex = this._cursorInfo.globalEndIndex - this._cursorInfo.globalStartIndex;
|
|
10487
|
+
this._cursorInfo.globalEndIndex -= this._cursorInfo.globalStartIndex;
|
|
10488
|
+
}
|
|
10489
|
+
}
|
|
10490
|
+
else {
|
|
10491
|
+
this._cursorInfo.globalEndIndex = tmpIndex;
|
|
10492
|
+
this._cursorInfo.globalStartIndex = this._highlightCursorInfo.initialStartIndex;
|
|
10493
|
+
}
|
|
10494
|
+
}
|
|
10495
|
+
this._markAsDirty();
|
|
10496
|
+
return;
|
|
10497
|
+
}
|
|
10498
|
+
// Printable characters
|
|
10499
|
+
if ((key === null || key === void 0 ? void 0 : key.length) === 1) {
|
|
10500
|
+
evt === null || evt === void 0 ? void 0 : evt.preventDefault();
|
|
10501
|
+
this._currentKey = key;
|
|
10502
|
+
this.onBeforeKeyAddObservable.notifyObservers(this);
|
|
10503
|
+
key = this._currentKey;
|
|
10504
|
+
if (this._addKey) {
|
|
10505
|
+
this._isTextHighlightOn = false;
|
|
10506
|
+
this._blinkIsEven = false;
|
|
10507
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex, key);
|
|
10508
|
+
this._cursorInfo.globalStartIndex += key.length;
|
|
10509
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10510
|
+
this._textHasChanged();
|
|
10511
|
+
}
|
|
10512
|
+
}
|
|
10513
|
+
};
|
|
10514
|
+
InputTextArea.prototype._parseLineWordWrap = function (line, width, context) {
|
|
10515
|
+
if (line === void 0) { line = ""; }
|
|
10516
|
+
var lines = [];
|
|
10517
|
+
var words = line.split(" ");
|
|
10518
|
+
var lineWidth = 0;
|
|
10519
|
+
var _loop_1 = function (n) {
|
|
10520
|
+
var testLine = n > 0 ? line + " " + words[n] : words[0];
|
|
10521
|
+
var metrics = context.measureText(testLine);
|
|
10522
|
+
var testWidth = metrics.width;
|
|
10523
|
+
if (testWidth > width) {
|
|
10524
|
+
if (n > 0) {
|
|
10525
|
+
// Avoid first word duplication if of too long
|
|
10526
|
+
lineWidth = context.measureText(line).width;
|
|
10527
|
+
lines.push({ text: line, width: lineWidth, lineEnding: " " });
|
|
10528
|
+
}
|
|
10529
|
+
line = words[n];
|
|
10530
|
+
var flushedLine_1 = "";
|
|
10531
|
+
line.split("").map(function (char) {
|
|
10532
|
+
if (context.measureText(flushedLine_1 + char).width > width) {
|
|
10533
|
+
lines.push({ text: flushedLine_1, width: context.measureText(flushedLine_1).width, lineEnding: "\n" });
|
|
10534
|
+
flushedLine_1 = "";
|
|
10535
|
+
}
|
|
10536
|
+
flushedLine_1 += char;
|
|
10537
|
+
});
|
|
10538
|
+
line = flushedLine_1;
|
|
10539
|
+
// Measure remaining characters
|
|
10540
|
+
lineWidth = context.measureText(line).width;
|
|
10541
|
+
}
|
|
10542
|
+
else {
|
|
10543
|
+
lineWidth = testWidth;
|
|
10544
|
+
line = testLine;
|
|
10545
|
+
}
|
|
10546
|
+
};
|
|
10547
|
+
for (var n = 0; n < words.length; n++) {
|
|
10548
|
+
_loop_1(n);
|
|
10549
|
+
}
|
|
10550
|
+
lines.push({ text: line, width: lineWidth, lineEnding: " " });
|
|
10551
|
+
return lines;
|
|
10552
|
+
};
|
|
10553
|
+
InputTextArea.prototype._breakLines = function (refWidth, context) {
|
|
10554
|
+
var lines = [];
|
|
10555
|
+
var _lines = this.text.split("\n");
|
|
10556
|
+
if (this.clipContent) {
|
|
10557
|
+
for (var _i = 0, _lines_1 = _lines; _i < _lines_1.length; _i++) {
|
|
10558
|
+
var _line = _lines_1[_i];
|
|
10559
|
+
lines.push.apply(lines, this._parseLineWordWrap(_line, refWidth, context));
|
|
10560
|
+
}
|
|
10561
|
+
}
|
|
10562
|
+
else {
|
|
10563
|
+
for (var _a = 0, _lines_2 = _lines; _a < _lines_2.length; _a++) {
|
|
10564
|
+
var _line = _lines_2[_a];
|
|
10565
|
+
lines.push(this._parseLine(_line, context));
|
|
10566
|
+
}
|
|
10567
|
+
}
|
|
10568
|
+
lines[lines.length - 1].lineEnding = "\n";
|
|
10569
|
+
return lines;
|
|
10570
|
+
};
|
|
10571
|
+
InputTextArea.prototype._parseLine = function (line, context) {
|
|
10572
|
+
if (line === void 0) { line = ""; }
|
|
10573
|
+
return { text: line, width: context.measureText(line).width, lineEnding: " " };
|
|
10574
|
+
};
|
|
10575
|
+
/**
|
|
10576
|
+
* Processing of child right before the parent measurement update
|
|
10577
|
+
*
|
|
10578
|
+
* @param parentMeasure The parent measure
|
|
10579
|
+
* @param context The rendering canvas
|
|
10580
|
+
* @hidden
|
|
10581
|
+
*/
|
|
10582
|
+
InputTextArea.prototype._preMeasure = function (parentMeasure, context) {
|
|
10583
|
+
if (!this._fontOffset || this._wasDirty) {
|
|
10584
|
+
this._fontOffset = _control__WEBPACK_IMPORTED_MODULE_2__.Control._GetFontOffset(context.font);
|
|
10585
|
+
}
|
|
10586
|
+
var text = this._beforeRenderText(this._textWrapper).text;
|
|
10587
|
+
// placeholder conditions and color setting
|
|
10588
|
+
if (!this._isFocused && !this.text && this._placeholderText) {
|
|
10589
|
+
text = this._placeholderText;
|
|
10590
|
+
if (this._placeholderColor) {
|
|
10591
|
+
context.fillStyle = this._placeholderColor;
|
|
10592
|
+
}
|
|
10593
|
+
}
|
|
10594
|
+
// measures the textlength -> this.measure.width
|
|
10595
|
+
this._textWidth = context.measureText(text).width;
|
|
10596
|
+
// we double up the margin width
|
|
10597
|
+
var marginWidth = this._margin.getValueInPixel(this._host, parentMeasure.width) * 2;
|
|
10598
|
+
if (this._autoStretchWidth) {
|
|
10599
|
+
var tmpLines = text.split("\n");
|
|
10600
|
+
var longerString = tmpLines.reduce(function (acc, val) {
|
|
10601
|
+
var valueLength = context.measureText(val).width;
|
|
10602
|
+
var accLength = context.measureText(acc).width;
|
|
10603
|
+
return valueLength > accLength ? val : acc;
|
|
10604
|
+
}, "");
|
|
10605
|
+
var longerStringWidth = context.measureText(longerString).width;
|
|
10606
|
+
this.width = Math.min(this._maxWidth.getValueInPixel(this._host, parentMeasure.width), longerStringWidth + marginWidth) + "px";
|
|
10607
|
+
this.autoStretchWidth = true;
|
|
10608
|
+
}
|
|
10609
|
+
this._availableWidth = this._width.getValueInPixel(this._host, parentMeasure.width) - marginWidth;
|
|
10610
|
+
// Prepare lines
|
|
10611
|
+
this._lines = this._breakLines(this._availableWidth, context);
|
|
10612
|
+
// can we find a cleaner implementation here?
|
|
10613
|
+
this._contextForBreakLines = context;
|
|
10614
|
+
if (this._autoStretchHeight) {
|
|
10615
|
+
var textHeight = this._lines.length * this._fontOffset.height;
|
|
10616
|
+
var totalHeight = textHeight + this._margin.getValueInPixel(this._host, parentMeasure.height) * 2;
|
|
10617
|
+
this.height = Math.min(this._maxHeight.getValueInPixel(this._host, parentMeasure.height), totalHeight) + "px";
|
|
10618
|
+
this._autoStretchHeight = true;
|
|
10619
|
+
}
|
|
10620
|
+
this._availableHeight = this._height.getValueInPixel(this._host, parentMeasure.height) - marginWidth;
|
|
10621
|
+
if (this._isFocused) {
|
|
10622
|
+
this._cursorInfo.currentLineIndex = 0;
|
|
10623
|
+
var lineLength = this._lines[this._cursorInfo.currentLineIndex].text.length + this._lines[this._cursorInfo.currentLineIndex].lineEnding.length;
|
|
10624
|
+
var tmpLength = 0;
|
|
10625
|
+
while (tmpLength + lineLength <= this._cursorInfo.globalStartIndex) {
|
|
10626
|
+
tmpLength += lineLength;
|
|
10627
|
+
if (this._cursorInfo.currentLineIndex < this._lines.length - 1) {
|
|
10628
|
+
this._cursorInfo.currentLineIndex++;
|
|
10629
|
+
lineLength = this._lines[this._cursorInfo.currentLineIndex].text.length + this._lines[this._cursorInfo.currentLineIndex].lineEnding.length;
|
|
10630
|
+
}
|
|
10631
|
+
}
|
|
10632
|
+
}
|
|
10633
|
+
};
|
|
10634
|
+
/**
|
|
10635
|
+
* Processing of child after the parent measurement update
|
|
10636
|
+
*
|
|
10637
|
+
* @param parentMeasure The parent measure
|
|
10638
|
+
* @param context The rendering canvas
|
|
10639
|
+
* @hidden
|
|
10640
|
+
*/
|
|
10641
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10642
|
+
InputTextArea.prototype._additionalProcessing = function (parentMeasure, context) {
|
|
10643
|
+
this._clipTextLeft = this._currentMeasure.left + this._margin.getValueInPixel(this._host, parentMeasure.width);
|
|
10644
|
+
this._clipTextTop = this._currentMeasure.top + this._margin.getValueInPixel(this._host, parentMeasure.height);
|
|
10645
|
+
if (this._isFocused && this._lines[this._cursorInfo.currentLineIndex].width > this._availableWidth) {
|
|
10646
|
+
var textLeft = this._clipTextLeft - this._lines[this._cursorInfo.currentLineIndex].width + this._availableWidth;
|
|
10647
|
+
if (!this._scrollLeft) {
|
|
10648
|
+
this._scrollLeft = textLeft;
|
|
10649
|
+
}
|
|
10650
|
+
}
|
|
10651
|
+
else {
|
|
10652
|
+
this._scrollLeft = this._clipTextLeft;
|
|
10653
|
+
}
|
|
10654
|
+
if (this._isFocused && !this._autoStretchHeight) {
|
|
10655
|
+
var selectedHeight = (this._cursorInfo.currentLineIndex + 1) * this._fontOffset.height;
|
|
10656
|
+
var textTop = this._clipTextTop - selectedHeight;
|
|
10657
|
+
if (!this._scrollTop) {
|
|
10658
|
+
this._scrollTop = textTop;
|
|
10659
|
+
}
|
|
10660
|
+
}
|
|
10661
|
+
else {
|
|
10662
|
+
this._scrollTop = this._clipTextTop;
|
|
10663
|
+
}
|
|
10664
|
+
// Flush the highlighted text each frame
|
|
10665
|
+
this.highlightedText = "";
|
|
10666
|
+
this.onLinesReadyObservable.notifyObservers(this);
|
|
10667
|
+
};
|
|
10668
|
+
InputTextArea.prototype._drawText = function (text, textWidth, y, context) {
|
|
10669
|
+
var width = this._currentMeasure.width;
|
|
10670
|
+
var x = this._scrollLeft;
|
|
10671
|
+
switch (this._textHorizontalAlignment) {
|
|
10672
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_LEFT:
|
|
10673
|
+
x += 0;
|
|
10674
|
+
break;
|
|
10675
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_RIGHT:
|
|
10676
|
+
x += width - textWidth;
|
|
10677
|
+
break;
|
|
10678
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_CENTER:
|
|
10679
|
+
x += (width - textWidth) / 2;
|
|
10680
|
+
break;
|
|
10681
|
+
}
|
|
10682
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
10683
|
+
context.shadowColor = this.shadowColor;
|
|
10684
|
+
context.shadowBlur = this.shadowBlur;
|
|
10685
|
+
context.shadowOffsetX = this.shadowOffsetX;
|
|
10686
|
+
context.shadowOffsetY = this.shadowOffsetY;
|
|
10687
|
+
}
|
|
10688
|
+
if (this.outlineWidth) {
|
|
10689
|
+
context.strokeText(text, this._currentMeasure.left + x, y);
|
|
10690
|
+
}
|
|
10691
|
+
context.fillText(text, x, y);
|
|
10692
|
+
};
|
|
10693
|
+
/**
|
|
10694
|
+
* Copy the text in the clipboard
|
|
10695
|
+
*
|
|
10696
|
+
* @param ev The clipboard event
|
|
10697
|
+
* @hidden
|
|
10698
|
+
*/
|
|
10699
|
+
InputTextArea.prototype._onCopyText = function (ev) {
|
|
10700
|
+
this._isTextHighlightOn = false;
|
|
10701
|
+
//when write permission to clipbaord data is denied
|
|
10702
|
+
try {
|
|
10703
|
+
ev.clipboardData && ev.clipboardData.setData("text/plain", this._highlightedText);
|
|
10704
|
+
}
|
|
10705
|
+
catch (_a) { } //pass
|
|
10706
|
+
this._host.clipboardData = this._highlightedText;
|
|
10707
|
+
};
|
|
10708
|
+
/**
|
|
10709
|
+
* Cut the text and copy it in the clipboard
|
|
10710
|
+
*
|
|
10711
|
+
* @param ev The clipboard event
|
|
10712
|
+
* @hidden
|
|
10713
|
+
*/
|
|
10714
|
+
InputTextArea.prototype._onCutText = function (ev) {
|
|
10715
|
+
if (!this._highlightedText) {
|
|
10716
|
+
return;
|
|
10717
|
+
}
|
|
10718
|
+
//when write permission to clipbaord data is denied
|
|
10719
|
+
try {
|
|
10720
|
+
ev.clipboardData && ev.clipboardData.setData("text/plain", this._highlightedText);
|
|
10721
|
+
}
|
|
10722
|
+
catch (_a) { } //pass
|
|
10723
|
+
this._host.clipboardData = this._highlightedText;
|
|
10724
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex);
|
|
10725
|
+
this._textHasChanged();
|
|
10726
|
+
};
|
|
10727
|
+
/**
|
|
10728
|
+
* Paste the copied text from the clipboard
|
|
10729
|
+
*
|
|
10730
|
+
* @param ev The clipboard event
|
|
10731
|
+
* @hidden
|
|
10732
|
+
*/
|
|
10733
|
+
InputTextArea.prototype._onPasteText = function (ev) {
|
|
10734
|
+
var data = "";
|
|
10735
|
+
if (ev.clipboardData && ev.clipboardData.types.indexOf("text/plain") !== -1) {
|
|
10736
|
+
data = ev.clipboardData.getData("text/plain");
|
|
10737
|
+
}
|
|
10738
|
+
else {
|
|
10739
|
+
//get the cached data; returns blank string by default
|
|
10740
|
+
data = this._host.clipboardData;
|
|
10741
|
+
}
|
|
10742
|
+
this._isTextHighlightOn = false;
|
|
10743
|
+
this._textWrapper.removePart(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex, data);
|
|
10744
|
+
var deltaIndex = data.length - (this._cursorInfo.globalEndIndex - this._cursorInfo.globalStartIndex);
|
|
10745
|
+
this._cursorInfo.globalStartIndex += deltaIndex;
|
|
10746
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
10747
|
+
this._textHasChanged();
|
|
10748
|
+
};
|
|
10749
|
+
InputTextArea.prototype._draw = function (context) {
|
|
10750
|
+
var _a, _b;
|
|
10751
|
+
this._scrollLeft = (_a = this._scrollLeft) !== null && _a !== void 0 ? _a : 0;
|
|
10752
|
+
this._scrollTop = (_b = this._scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
10753
|
+
context.save();
|
|
10754
|
+
this._applyStates(context);
|
|
10755
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
10756
|
+
context.shadowColor = this.shadowColor;
|
|
10757
|
+
context.shadowBlur = this.shadowBlur;
|
|
10758
|
+
context.shadowOffsetX = this.shadowOffsetX;
|
|
10759
|
+
context.shadowOffsetY = this.shadowOffsetY;
|
|
10760
|
+
}
|
|
10761
|
+
// Background
|
|
10762
|
+
if (this._isFocused) {
|
|
10763
|
+
if (this._focusedBackground) {
|
|
10764
|
+
context.fillStyle = this._isEnabled ? this._focusedBackground : this._disabledColor;
|
|
10765
|
+
context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
|
|
10766
|
+
}
|
|
10767
|
+
}
|
|
10768
|
+
else if (this._background) {
|
|
10769
|
+
context.fillStyle = this._isEnabled ? this._background : this._disabledColor;
|
|
10770
|
+
context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
|
|
10771
|
+
}
|
|
10772
|
+
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
10773
|
+
context.shadowBlur = 0;
|
|
10774
|
+
context.shadowOffsetX = 0;
|
|
10775
|
+
context.shadowOffsetY = 0;
|
|
10776
|
+
}
|
|
10777
|
+
// sets the color of the rectangle (border if background available)
|
|
10778
|
+
if (this.color) {
|
|
10779
|
+
context.fillStyle = this.color;
|
|
10780
|
+
}
|
|
10781
|
+
var height = this._currentMeasure.height;
|
|
10782
|
+
var width = this._currentMeasure.width;
|
|
10783
|
+
var rootY = 0;
|
|
10784
|
+
switch (this._textVerticalAlignment) {
|
|
10785
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.VERTICAL_ALIGNMENT_TOP:
|
|
10786
|
+
rootY = this._fontOffset.ascent;
|
|
10787
|
+
break;
|
|
10788
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.VERTICAL_ALIGNMENT_BOTTOM:
|
|
10789
|
+
rootY = height - this._fontOffset.height * (this._lines.length - 1) - this._fontOffset.descent;
|
|
10790
|
+
break;
|
|
10791
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.VERTICAL_ALIGNMENT_CENTER:
|
|
10792
|
+
rootY = this._fontOffset.ascent + (height - this._fontOffset.height * this._lines.length) / 2;
|
|
10793
|
+
break;
|
|
10794
|
+
}
|
|
10795
|
+
context.save();
|
|
10796
|
+
context.beginPath();
|
|
10797
|
+
context.fillStyle = this.fontStyle;
|
|
10798
|
+
// here we define the visible reactangle to clip it in next line
|
|
10799
|
+
context.rect(this._clipTextLeft, this._clipTextTop, this._availableWidth + 2, this._availableHeight + 2);
|
|
10800
|
+
context.clip();
|
|
10801
|
+
// Text
|
|
10802
|
+
rootY += this._scrollTop;
|
|
10803
|
+
for (var i = 0; i < this._lines.length; i++) {
|
|
10804
|
+
var line = this._lines[i];
|
|
10805
|
+
if (i !== 0 && this._lineSpacing.internalValue !== 0) {
|
|
10806
|
+
if (this._lineSpacing.isPixel) {
|
|
10807
|
+
rootY += this._lineSpacing.getValue(this._host);
|
|
10808
|
+
}
|
|
10809
|
+
else {
|
|
10810
|
+
rootY = rootY + this._lineSpacing.getValue(this._host) * this._height.getValueInPixel(this._host, this._cachedParentMeasure.height);
|
|
10811
|
+
}
|
|
10812
|
+
}
|
|
10813
|
+
this._drawText(line.text, line.width, rootY, context);
|
|
10814
|
+
rootY += this._fontOffset.height;
|
|
10815
|
+
}
|
|
10816
|
+
context.restore();
|
|
10817
|
+
// Cursor
|
|
10818
|
+
if (this._isFocused) {
|
|
10819
|
+
// Render cursor
|
|
10820
|
+
if (!this._blinkIsEven || this._isTextHighlightOn) {
|
|
10821
|
+
var cursorLeft = this._scrollLeft + context.measureText(this._lines[this._cursorInfo.currentLineIndex].text.substr(0, this._cursorInfo.relativeStartIndex)).width;
|
|
10822
|
+
if (cursorLeft < this._clipTextLeft) {
|
|
10823
|
+
this._scrollLeft += this._clipTextLeft - cursorLeft;
|
|
10824
|
+
cursorLeft = this._clipTextLeft;
|
|
10825
|
+
this._markAsDirty();
|
|
10826
|
+
}
|
|
10827
|
+
else if (cursorLeft > this._clipTextLeft + this._availableWidth) {
|
|
10828
|
+
this._scrollLeft += this._clipTextLeft + this._availableWidth - cursorLeft;
|
|
10829
|
+
cursorLeft = this._clipTextLeft + this._availableWidth;
|
|
10830
|
+
this._markAsDirty();
|
|
10831
|
+
}
|
|
10832
|
+
var cursorTop = this._scrollTop + this._cursorInfo.currentLineIndex * this._fontOffset.height; //cursorTop distance from top to cursor start
|
|
10833
|
+
if (cursorTop < this._clipTextTop) {
|
|
10834
|
+
this._scrollTop += this._clipTextTop - cursorTop;
|
|
10835
|
+
cursorTop = this._clipTextTop;
|
|
10836
|
+
this._markAsDirty();
|
|
10837
|
+
}
|
|
10838
|
+
else if (cursorTop + this._fontOffset.height > this._clipTextTop + this._availableHeight) {
|
|
10839
|
+
this._scrollTop += this._clipTextTop + this._availableHeight - cursorTop - this._fontOffset.height;
|
|
10840
|
+
cursorTop = this._clipTextTop + this._availableHeight - this._fontOffset.height;
|
|
10841
|
+
this._markAsDirty();
|
|
10842
|
+
}
|
|
10843
|
+
if (!this._isTextHighlightOn) {
|
|
10844
|
+
context.fillRect(cursorLeft, cursorTop, 2, this._fontOffset.height);
|
|
10845
|
+
}
|
|
10846
|
+
}
|
|
10847
|
+
this._resetBlinking();
|
|
10848
|
+
//show the highlighted text
|
|
10849
|
+
if (this._isTextHighlightOn) {
|
|
10850
|
+
clearTimeout(this._blinkTimeout);
|
|
10851
|
+
this._highlightedText = this.text.substring(this._cursorInfo.globalStartIndex, this._cursorInfo.globalEndIndex);
|
|
10852
|
+
context.globalAlpha = this._highligherOpacity;
|
|
10853
|
+
context.fillStyle = this._textHighlightColor;
|
|
10854
|
+
var startLineIndex = Math.min(this._cursorInfo.currentLineIndex, this._highlightCursorInfo.initialLineIndex);
|
|
10855
|
+
var endLineIndex = Math.max(this._cursorInfo.currentLineIndex, this._highlightCursorInfo.initialLineIndex);
|
|
10856
|
+
var highlightRootY = this._scrollTop + startLineIndex * this._fontOffset.height;
|
|
10857
|
+
for (var i = startLineIndex; i <= endLineIndex; i++) {
|
|
10858
|
+
var line = this._lines[i];
|
|
10859
|
+
var highlightRootX = this._scrollLeft;
|
|
10860
|
+
switch (this._textHorizontalAlignment) {
|
|
10861
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_LEFT:
|
|
10862
|
+
highlightRootX += 0;
|
|
10863
|
+
break;
|
|
10864
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_RIGHT:
|
|
10865
|
+
highlightRootX += width - line.width;
|
|
10866
|
+
break;
|
|
10867
|
+
case _control__WEBPACK_IMPORTED_MODULE_2__.Control.HORIZONTAL_ALIGNMENT_CENTER:
|
|
10868
|
+
highlightRootX += (width - line.width) / 2;
|
|
10869
|
+
break;
|
|
10870
|
+
}
|
|
10871
|
+
var begin = i === startLineIndex ? this._cursorInfo.relativeStartIndex : 0;
|
|
10872
|
+
var end = i === endLineIndex ? this._cursorInfo.relativeEndIndex : line.text.length;
|
|
10873
|
+
var leftOffsetWidth = context.measureText(line.text.substr(0, begin)).width;
|
|
10874
|
+
var selectedText = line.text.substring(begin, end);
|
|
10875
|
+
var hightlightWidth = context.measureText(selectedText).width;
|
|
10876
|
+
context.fillRect(highlightRootX + leftOffsetWidth, highlightRootY, hightlightWidth, this._fontOffset.height);
|
|
10877
|
+
highlightRootY += this._fontOffset.height;
|
|
10878
|
+
}
|
|
10879
|
+
if (this._cursorInfo.globalEndIndex === this._cursorInfo.globalStartIndex) {
|
|
10880
|
+
this._resetBlinking();
|
|
10881
|
+
}
|
|
10882
|
+
}
|
|
10883
|
+
}
|
|
10884
|
+
context.restore();
|
|
10885
|
+
// Border
|
|
10886
|
+
if (this._thickness) {
|
|
10887
|
+
if (this._isFocused) {
|
|
10888
|
+
if (this.focusedColor) {
|
|
10889
|
+
context.strokeStyle = this.focusedColor;
|
|
10890
|
+
}
|
|
10891
|
+
}
|
|
10892
|
+
else {
|
|
10893
|
+
if (this.color) {
|
|
10894
|
+
context.strokeStyle = this.color;
|
|
10895
|
+
}
|
|
10896
|
+
}
|
|
10897
|
+
context.lineWidth = this._thickness;
|
|
10898
|
+
context.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2, this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness);
|
|
10899
|
+
}
|
|
10900
|
+
};
|
|
10901
|
+
InputTextArea.prototype._resetBlinking = function () {
|
|
10902
|
+
var _this = this;
|
|
10903
|
+
clearTimeout(this._blinkTimeout);
|
|
10904
|
+
this._blinkTimeout = setTimeout(function () {
|
|
10905
|
+
_this._blinkIsEven = !_this._blinkIsEven;
|
|
10906
|
+
_this._markAsDirty();
|
|
10907
|
+
}, 500);
|
|
10908
|
+
};
|
|
10909
|
+
InputTextArea.prototype._applyStates = function (context) {
|
|
10910
|
+
_super.prototype._applyStates.call(this, context);
|
|
10911
|
+
if (this.outlineWidth) {
|
|
10912
|
+
context.lineWidth = this.outlineWidth;
|
|
10913
|
+
context.strokeStyle = this.outlineColor;
|
|
10914
|
+
}
|
|
10915
|
+
};
|
|
10916
|
+
InputTextArea.prototype._onPointerDown = function (target, coordinates, pointerId, buttonIndex, pi) {
|
|
10917
|
+
if (!_super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi)) {
|
|
10918
|
+
return false;
|
|
10919
|
+
}
|
|
10920
|
+
this._clickedCoordinateX = coordinates.x;
|
|
10921
|
+
this._clickedCoordinateY = coordinates.y;
|
|
10922
|
+
this._isTextHighlightOn = false;
|
|
10923
|
+
this._highlightedText = "";
|
|
10924
|
+
this._isPointerDown = true;
|
|
10925
|
+
this._host._capturingControl[pointerId] = this;
|
|
10926
|
+
if (this._host.focusedControl === this) {
|
|
10927
|
+
// Move cursor
|
|
10928
|
+
clearTimeout(this._blinkTimeout);
|
|
10929
|
+
this._markAsDirty();
|
|
10930
|
+
return true;
|
|
10931
|
+
}
|
|
10932
|
+
if (!this._isEnabled) {
|
|
10933
|
+
return false;
|
|
10934
|
+
}
|
|
10935
|
+
this._host.focusedControl = this;
|
|
10936
|
+
return true;
|
|
10937
|
+
};
|
|
10938
|
+
// for textselection
|
|
10939
|
+
InputTextArea.prototype._onPointerMove = function (target, coordinates, pointerId, pi) {
|
|
10940
|
+
// Avoid Chromium-like beahavior when this event is fired right after onPointerDown
|
|
10941
|
+
if (pi.event.movementX === 0 && pi.event.movementY === 0) {
|
|
10942
|
+
return;
|
|
10943
|
+
}
|
|
10944
|
+
if (this._host.focusedControl === this && this._isPointerDown) {
|
|
10945
|
+
this._clickedCoordinateX = coordinates.x;
|
|
10946
|
+
this._clickedCoordinateY = coordinates.y;
|
|
10947
|
+
if (!this._isTextHighlightOn) {
|
|
10948
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
10949
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
10950
|
+
this._highlightCursorInfo.initialRelativeStartIndex = this._cursorInfo.relativeStartIndex;
|
|
10951
|
+
this._isTextHighlightOn = true;
|
|
10952
|
+
}
|
|
10953
|
+
this._markAsDirty();
|
|
10954
|
+
}
|
|
10955
|
+
_super.prototype._onPointerMove.call(this, target, coordinates, pointerId, pi);
|
|
10956
|
+
};
|
|
10957
|
+
/**
|
|
10958
|
+
* Apply the correct position of cursor according to current modification
|
|
10959
|
+
*/
|
|
10960
|
+
InputTextArea.prototype._updateCursorPosition = function () {
|
|
10961
|
+
var _a;
|
|
10962
|
+
if (!this._isFocused) {
|
|
10963
|
+
return;
|
|
10964
|
+
}
|
|
10965
|
+
if (this._clickedCoordinateX && this._clickedCoordinateY) {
|
|
10966
|
+
if (!this._isTextHighlightOn) {
|
|
10967
|
+
this._cursorInfo = {
|
|
10968
|
+
globalStartIndex: 0,
|
|
10969
|
+
globalEndIndex: 0,
|
|
10970
|
+
relativeStartIndex: 0,
|
|
10971
|
+
relativeEndIndex: 0,
|
|
10972
|
+
currentLineIndex: 0,
|
|
10973
|
+
};
|
|
10974
|
+
}
|
|
10975
|
+
var globalIndex = 0;
|
|
10976
|
+
var relativeIndex = 0;
|
|
10977
|
+
var lastClickedCoordinateY = this._clickedCoordinateY - this._scrollTop;
|
|
10978
|
+
var relativeCoordinateY = Math.floor(lastClickedCoordinateY / this._fontOffset.height);
|
|
10979
|
+
this._cursorInfo.currentLineIndex = Math.min(Math.max(relativeCoordinateY, 0), this._lines.length - 1);
|
|
10980
|
+
var currentSize = 0;
|
|
10981
|
+
var relativeXPosition = this._clickedCoordinateX - ((_a = this._scrollLeft) !== null && _a !== void 0 ? _a : 0);
|
|
10982
|
+
var previousDist = 0;
|
|
10983
|
+
for (var index = 0; index < this._cursorInfo.currentLineIndex; index++) {
|
|
10984
|
+
var line = this._lines[index];
|
|
10985
|
+
globalIndex += line.text.length + line.lineEnding.length;
|
|
10986
|
+
}
|
|
10987
|
+
while (currentSize < relativeXPosition && this._lines[this._cursorInfo.currentLineIndex].text.length > relativeIndex) {
|
|
10988
|
+
relativeIndex++;
|
|
10989
|
+
previousDist = Math.abs(relativeXPosition - currentSize);
|
|
10990
|
+
currentSize = this._contextForBreakLines.measureText(this._lines[this._cursorInfo.currentLineIndex].text.substr(0, relativeIndex)).width;
|
|
10991
|
+
}
|
|
10992
|
+
// Find closest move
|
|
10993
|
+
if (Math.abs(relativeXPosition - currentSize) > previousDist && relativeIndex > 0) {
|
|
10994
|
+
relativeIndex--;
|
|
10995
|
+
}
|
|
10996
|
+
globalIndex += relativeIndex;
|
|
10997
|
+
if (!this._isTextHighlightOn) {
|
|
10998
|
+
this._cursorInfo.globalStartIndex = globalIndex;
|
|
10999
|
+
this._cursorInfo.relativeStartIndex = relativeIndex;
|
|
11000
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
11001
|
+
this._cursorInfo.relativeEndIndex = this._cursorInfo.relativeStartIndex;
|
|
11002
|
+
}
|
|
11003
|
+
else {
|
|
11004
|
+
if (globalIndex < this._highlightCursorInfo.initialStartIndex) {
|
|
11005
|
+
this._cursorInfo.globalStartIndex = globalIndex;
|
|
11006
|
+
this._cursorInfo.relativeStartIndex = relativeIndex;
|
|
11007
|
+
this._cursorInfo.globalEndIndex = this._highlightCursorInfo.initialStartIndex;
|
|
11008
|
+
this._cursorInfo.relativeEndIndex = this._highlightCursorInfo.initialRelativeStartIndex;
|
|
11009
|
+
}
|
|
11010
|
+
else {
|
|
11011
|
+
this._cursorInfo.globalStartIndex = this._highlightCursorInfo.initialStartIndex;
|
|
11012
|
+
this._cursorInfo.relativeStartIndex = this._highlightCursorInfo.initialRelativeStartIndex;
|
|
11013
|
+
this._cursorInfo.globalEndIndex = globalIndex;
|
|
11014
|
+
this._cursorInfo.relativeEndIndex = relativeIndex;
|
|
11015
|
+
}
|
|
11016
|
+
}
|
|
11017
|
+
// Avoid the caret during highlighting
|
|
11018
|
+
this._blinkIsEven = this._isTextHighlightOn;
|
|
11019
|
+
this._clickedCoordinateX = null;
|
|
11020
|
+
this._clickedCoordinateY = null;
|
|
11021
|
+
}
|
|
11022
|
+
else {
|
|
11023
|
+
// Standard behavior same as Current line is at least above the initial highlight index
|
|
11024
|
+
this._cursorInfo.relativeStartIndex = 0;
|
|
11025
|
+
this._cursorInfo.currentLineIndex = 0;
|
|
11026
|
+
var lineLength = this._lines[this._cursorInfo.currentLineIndex].text.length + this._lines[this._cursorInfo.currentLineIndex].lineEnding.length;
|
|
11027
|
+
var tmpLength = 0;
|
|
11028
|
+
while (tmpLength + lineLength <= this._cursorInfo.globalStartIndex) {
|
|
11029
|
+
tmpLength += lineLength;
|
|
11030
|
+
if (this._cursorInfo.currentLineIndex < this._lines.length - 1) {
|
|
11031
|
+
this._cursorInfo.currentLineIndex++;
|
|
11032
|
+
lineLength = this._lines[this._cursorInfo.currentLineIndex].text.length + this._lines[this._cursorInfo.currentLineIndex].lineEnding.length;
|
|
11033
|
+
}
|
|
11034
|
+
}
|
|
11035
|
+
this._cursorInfo.relativeStartIndex = this._cursorInfo.globalStartIndex - tmpLength;
|
|
11036
|
+
if (this._highlightCursorInfo.initialStartIndex !== -1 && this._cursorInfo.globalStartIndex >= this._highlightCursorInfo.initialStartIndex) {
|
|
11037
|
+
// Current line is at least below the initial highlight index
|
|
11038
|
+
while (tmpLength + lineLength <= this._cursorInfo.globalEndIndex) {
|
|
11039
|
+
tmpLength += lineLength;
|
|
11040
|
+
if (this._cursorInfo.currentLineIndex < this._lines.length - 1) {
|
|
11041
|
+
this._cursorInfo.currentLineIndex++;
|
|
11042
|
+
lineLength = this._lines[this._cursorInfo.currentLineIndex].text.length + this._lines[this._cursorInfo.currentLineIndex].lineEnding.length;
|
|
11043
|
+
}
|
|
11044
|
+
}
|
|
11045
|
+
this._cursorInfo.relativeEndIndex = this._cursorInfo.globalEndIndex - tmpLength;
|
|
11046
|
+
}
|
|
11047
|
+
else if (!this._isTextHighlightOn) {
|
|
11048
|
+
this._cursorInfo.relativeEndIndex = this._cursorInfo.relativeStartIndex;
|
|
11049
|
+
this._cursorInfo.globalEndIndex = this._cursorInfo.globalStartIndex;
|
|
11050
|
+
}
|
|
11051
|
+
}
|
|
11052
|
+
};
|
|
11053
|
+
/**
|
|
11054
|
+
* Update all values of cursor information based on cursorIndex value
|
|
11055
|
+
*
|
|
11056
|
+
* @param offset The index to take care of
|
|
11057
|
+
* @hidden
|
|
11058
|
+
*/
|
|
11059
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11060
|
+
InputTextArea.prototype._updateValueFromCursorIndex = function (offset) {
|
|
11061
|
+
// Override to avoid parent behavior during _onPointerMove
|
|
11062
|
+
};
|
|
11063
|
+
/**
|
|
11064
|
+
* Select the word immediatly under the cursor on double click
|
|
11065
|
+
*
|
|
11066
|
+
* @param _evt Pointer informations of double click
|
|
11067
|
+
* @hidden
|
|
11068
|
+
*/
|
|
11069
|
+
InputTextArea.prototype._processDblClick = function (_evt) {
|
|
11070
|
+
//pre-find the start and end index of the word under cursor, speeds up the rendering
|
|
11071
|
+
var moveLeft, moveRight;
|
|
11072
|
+
do {
|
|
11073
|
+
moveLeft = this._cursorInfo.globalStartIndex > 0 && this._textWrapper.isWord(this._cursorInfo.globalStartIndex - 1) ? --this._cursorInfo.globalStartIndex : 0;
|
|
11074
|
+
moveRight =
|
|
11075
|
+
this._cursorInfo.globalEndIndex < this._textWrapper.length && this._textWrapper.isWord(this._cursorInfo.globalEndIndex) ? ++this._cursorInfo.globalEndIndex : 0;
|
|
11076
|
+
} while (moveLeft || moveRight);
|
|
11077
|
+
this._highlightCursorInfo.initialLineIndex = this._cursorInfo.currentLineIndex;
|
|
11078
|
+
this._highlightCursorInfo.initialStartIndex = this._cursorInfo.globalStartIndex;
|
|
11079
|
+
this.onTextHighlightObservable.notifyObservers(this);
|
|
11080
|
+
this._isTextHighlightOn = true;
|
|
11081
|
+
this._blinkIsEven = true;
|
|
11082
|
+
this._markAsDirty();
|
|
11083
|
+
};
|
|
11084
|
+
/** @hidden */
|
|
11085
|
+
InputTextArea.prototype._selectAllText = function () {
|
|
11086
|
+
this._isTextHighlightOn = true;
|
|
11087
|
+
this._blinkIsEven = true;
|
|
11088
|
+
this._highlightCursorInfo = {
|
|
11089
|
+
initialStartIndex: 0,
|
|
11090
|
+
initialRelativeStartIndex: 0,
|
|
11091
|
+
initialLineIndex: 0,
|
|
11092
|
+
};
|
|
11093
|
+
this._cursorInfo = {
|
|
11094
|
+
globalStartIndex: 0,
|
|
11095
|
+
globalEndIndex: this._textWrapper.length,
|
|
11096
|
+
relativeEndIndex: this._lines[this._lines.length - 1].text.length,
|
|
11097
|
+
relativeStartIndex: 0,
|
|
11098
|
+
currentLineIndex: this._lines.length - 1,
|
|
11099
|
+
};
|
|
11100
|
+
this._markAsDirty();
|
|
11101
|
+
};
|
|
11102
|
+
InputTextArea.prototype.dipose = function () {
|
|
11103
|
+
_super.prototype.dispose.call(this);
|
|
11104
|
+
this.onLinesReadyObservable.clear();
|
|
11105
|
+
};
|
|
11106
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
|
|
11107
|
+
(0,core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.serialize)()
|
|
11108
|
+
], InputTextArea.prototype, "autoStretchHeight", null);
|
|
11109
|
+
(0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([
|
|
11110
|
+
(0,core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.serialize)()
|
|
11111
|
+
], InputTextArea.prototype, "maxHeight", null);
|
|
11112
|
+
return InputTextArea;
|
|
11113
|
+
}(_inputText__WEBPACK_IMPORTED_MODULE_4__.InputText));
|
|
11114
|
+
|
|
11115
|
+
(0,core_Misc_observable__WEBPACK_IMPORTED_MODULE_1__.RegisterClass)("BABYLON.GUI.InputTextArea", InputTextArea);
|
|
11116
|
+
|
|
11117
|
+
|
|
10014
11118
|
/***/ }),
|
|
10015
11119
|
|
|
10016
11120
|
/***/ "../../../lts/gui/dist/2D/controls/line.js":
|
|
@@ -14871,7 +15975,7 @@ var TextBlock = /** @class */ (function (_super) {
|
|
|
14871
15975
|
return lines;
|
|
14872
15976
|
};
|
|
14873
15977
|
TextBlock.prototype._renderLines = function (context) {
|
|
14874
|
-
if (!this._fontOffset) {
|
|
15978
|
+
if (!this._fontOffset || !this._lines) {
|
|
14875
15979
|
return;
|
|
14876
15980
|
}
|
|
14877
15981
|
var height = this._currentMeasure.height;
|
|
@@ -15713,6 +16817,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
15713
16817
|
/* harmony export */ "ImageScrollBar": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.ImageScrollBar),
|
|
15714
16818
|
/* harmony export */ "InputPassword": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.InputPassword),
|
|
15715
16819
|
/* harmony export */ "InputText": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.InputText),
|
|
16820
|
+
/* harmony export */ "InputTextArea": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.InputTextArea),
|
|
15716
16821
|
/* harmony export */ "KeyPropertySet": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.KeyPropertySet),
|
|
15717
16822
|
/* harmony export */ "Line": () => (/* reexport safe */ _controls_index__WEBPACK_IMPORTED_MODULE_0__.Line),
|
|
15718
16823
|
/* harmony export */ "Matrix2D": () => (/* reexport safe */ _math2D__WEBPACK_IMPORTED_MODULE_3__.Matrix2D),
|
|
@@ -26474,6 +27579,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26474
27579
|
/* harmony export */ "ImageScrollBar": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.ImageScrollBar),
|
|
26475
27580
|
/* harmony export */ "InputPassword": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.InputPassword),
|
|
26476
27581
|
/* harmony export */ "InputText": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.InputText),
|
|
27582
|
+
/* harmony export */ "InputTextArea": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.InputTextArea),
|
|
26477
27583
|
/* harmony export */ "KeyPropertySet": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.KeyPropertySet),
|
|
26478
27584
|
/* harmony export */ "Line": () => (/* reexport safe */ _2D_index__WEBPACK_IMPORTED_MODULE_0__.Line),
|
|
26479
27585
|
/* harmony export */ "MRDLBackplateMaterial": () => (/* reexport safe */ _3D_index__WEBPACK_IMPORTED_MODULE_1__.MRDLBackplateMaterial),
|
|
@@ -26572,6 +27678,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
26572
27678
|
/* harmony export */ "ImageScrollBar": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.ImageScrollBar),
|
|
26573
27679
|
/* harmony export */ "InputPassword": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.InputPassword),
|
|
26574
27680
|
/* harmony export */ "InputText": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.InputText),
|
|
27681
|
+
/* harmony export */ "InputTextArea": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.InputTextArea),
|
|
26575
27682
|
/* harmony export */ "KeyPropertySet": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.KeyPropertySet),
|
|
26576
27683
|
/* harmony export */ "Line": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.Line),
|
|
26577
27684
|
/* harmony export */ "MRDLBackplateMaterial": () => (/* reexport safe */ _index__WEBPACK_IMPORTED_MODULE_0__.MRDLBackplateMaterial),
|