easy-richtextarea 3.0.146 → 3.0.148

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.
@@ -27,7 +27,7 @@ function _taggedTemplateLiteral(strings, raw) {
27
27
  }
28
28
  function _templateObject() {
29
29
  var data = _taggedTemplateLiteral([
30
- "\n\n border: 1px solid black;\n width: 32rem;\n height: 32rem;\n padding: 0.25rem;\n font-size: 1.2rem;\n font-family: monospace;\n\n"
30
+ "\n\n border: 1px solid black;\n width: 32rem;\n height: 32rem;\n padding: 0.25rem;\n font-size: 1.2rem;\n font-family: monospace;\n \n display: none;\n \n .active {\n display: block;\n }\n\n"
31
31
  ]);
32
32
  _templateObject = function _templateObject() {
33
33
  return data;
@@ -36,4 +36,4 @@ function _templateObject() {
36
36
  }
37
37
  var _default = (0, _easyWithStyle.default)(_browser.RichTextarea)(_templateObject());
38
38
 
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3JpY2hUZXh0YXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7XG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuLi9icm93c2VyXCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpY2hUZXh0YXJlYSlgXG5cbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHdpZHRoOiAzMnJlbTtcbiAgaGVpZ2h0OiAzMnJlbTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbmA7XG4iXSwibmFtZXMiOlsid2l0aFN0eWxlIiwiUmljaFRleHRhcmVhIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztrRUFKc0I7dUJBRU87Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFFN0IsV0FBZUEsSUFBQUEsc0JBQVMsRUFBQ0MscUJBQVkifQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3JpY2hUZXh0YXJlYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHdpdGhTdHlsZSBmcm9tIFwiZWFzeS13aXRoLXN0eWxlXCI7XG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCIuLi9icm93c2VyXCI7ICAvLy9cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFJpY2hUZXh0YXJlYSlgXG5cbiAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7XG4gIHdpZHRoOiAzMnJlbTtcbiAgaGVpZ2h0OiAzMnJlbTtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIFxuICBkaXNwbGF5OiBub25lO1xuICBcbiAgLmFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuYDtcbiJdLCJuYW1lcyI6WyJ3aXRoU3R5bGUiLCJSaWNoVGV4dGFyZWEiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2tFQUpzQjt1QkFFTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUU3QixXQUFlQSxJQUFBQSxzQkFBUyxFQUFDQyxxQkFBWSJ9
@@ -14,16 +14,19 @@ function _interopRequireDefault(obj) {
14
14
  default: obj
15
15
  };
16
16
  }
17
+ var content = "Rule (blah)\n Conclusion\n A", readOnly = true, richTextarea = /*#__PURE__*/ React.createElement(_richTextarea.default, {
18
+ onChange: changeHandler,
19
+ onScroll: scrollHandler,
20
+ onFocus: focusHandler,
21
+ onBlur: blurHandler
22
+ });
23
+ richTextarea.setContent(content);
24
+ richTextarea.setReadOnly(readOnly);
25
+ richTextarea.activate();
17
26
  var View = function(properties) {
18
27
  return /*#__PURE__*/ React.createElement("div", {
19
28
  className: "view"
20
- }, /*#__PURE__*/ React.createElement(_richTextarea.default, {
21
- onChange: changeHandler,
22
- onScroll: scrollHandler,
23
- onFocus: focusHandler,
24
- onBlur: blurHandler,
25
- active: true
26
- }));
29
+ }, richTextarea);
27
30
  };
28
31
  var _default = View;
29
32
  function changeHandler(event, element) {
@@ -41,4 +44,4 @@ function blurHandler(event, element) {
41
44
  console.log("blur");
42
45
  }
43
46
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IFZpZXcgPSAocHJvcGVydGllcykgPT5cblxuICA8ZGl2IGNsYXNzTmFtZT1cInZpZXdcIj5cbiAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgb25TY3JvbGw9e3Njcm9sbEhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkZvY3VzPXtmb2N1c0hhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICBvbkJsdXI9e2JsdXJIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgYWN0aXZlXG4gICAgLz5cbiAgPC9kaXY+XG5cbjtcblxuZXhwb3J0IGRlZmF1bHQgVmlldztcblxuZnVuY3Rpb24gY2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zdCBjb250ZW50Q2hhbmdlZCA9IGVsZW1lbnQuaGFzQ29udGVudENoYW5nZWQoKSxcbiAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGVsZW1lbnQuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxufVxuXG5mdW5jdGlvbiBzY3JvbGxIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IGVsZW1lbnQuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgIHNjcm9sbExlZnQgPSBlbGVtZW50LmdldFNjcm9sbExlZnQoKTtcblxuICBjb25zb2xlLmxvZyhzY3JvbGxUb3AsIHNjcm9sbExlZnQpXG59XG5cbmZ1bmN0aW9uIGZvY3VzSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xuICBjb25zb2xlLmxvZyhcImZvY3VzXCIpXG59XG5cbmZ1bmN0aW9uIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiYmx1clwiKVxufVxuIl0sIm5hbWVzIjpbIlZpZXciLCJwcm9wZXJ0aWVzIiwiZGl2IiwiY2xhc3NOYW1lIiwiUmljaFRleHRhcmVhIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib25TY3JvbGwiLCJzY3JvbGxIYW5kbGVyIiwib25Gb2N1cyIsImZvY3VzSGFuZGxlciIsIm9uQmx1ciIsImJsdXJIYW5kbGVyIiwiYWN0aXZlIiwiZXZlbnQiLCJlbGVtZW50IiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsInNlbGVjdGlvbkNoYW5nZWQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY29uc29sZSIsImxvZyIsInNjcm9sbFRvcCIsImdldFNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJnZXRTY3JvbGxMZWZ0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7aUVBZnlCOzs7Ozs7QUFFekIsSUFBTUEsT0FBTyxTQUFDQzt5QkFFWixvQkFBQ0M7UUFBSUMsV0FBVTtxQkFDYixvQkFBQ0MscUJBQVk7UUFBQ0MsVUFBVUM7UUFDVkMsVUFBVUM7UUFDVkMsU0FBU0M7UUFDVEMsUUFBUUM7UUFDUkMsUUFBQUEsSUFBTTs7O0lBTXhCLFdBQWViO0FBRWYsU0FBU00sY0FBY1EsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDckMsSUFBTUMsaUJBQWlCRCxRQUFRRSxpQkFBaUIsSUFDMUNDLG1CQUFtQkgsUUFBUUksbUJBQW1CO0lBRXBEQyxRQUFRQyxHQUFHLENBQUNMLGdCQUFnQkU7QUFDOUI7QUFFQSxTQUFTVixjQUFjTSxLQUFLLEVBQUVDLE9BQU8sRUFBRTtJQUNyQyxJQUFNTyxZQUFZUCxRQUFRUSxZQUFZLElBQ2hDQyxhQUFhVCxRQUFRVSxhQUFhO0lBRXhDTCxRQUFRQyxHQUFHLENBQUNDLFdBQVdFO0FBQ3pCO0FBRUEsU0FBU2QsYUFBYUksS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDcENLLFFBQVFDLEdBQUcsQ0FBQztBQUNkO0FBRUEsU0FBU1QsWUFBWUUsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDbkNLLFFBQVFDLEdBQUcsQ0FBQztBQUNkIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IGNvbnRlbnQgPSBgUnVsZSAoYmxhaClcbiAgQ29uY2x1c2lvblxuICAgIEFgLFxuICAgICAgcmVhZE9ubHkgPSB0cnVlLFxuICAgICAgcmljaFRleHRhcmVhID1cblxuICAgICAgICA8UmljaFRleHRhcmVhIG9uQ2hhbmdlPXtjaGFuZ2VIYW5kbGVyfSBvblNjcm9sbD17c2Nyb2xsSGFuZGxlcn0gb25Gb2N1cz17Zm9jdXNIYW5kbGVyfSBvbkJsdXI9e2JsdXJIYW5kbGVyfSAvPlxuXG4gICAgICA7XG5cbnJpY2hUZXh0YXJlYS5zZXRDb250ZW50KGNvbnRlbnQpO1xucmljaFRleHRhcmVhLnNldFJlYWRPbmx5KHJlYWRPbmx5KTtcblxucmljaFRleHRhcmVhLmFjdGl2YXRlKCk7XG5cbmNvbnN0IFZpZXcgPSAocHJvcGVydGllcykgPT5cblxuICA8ZGl2IGNsYXNzTmFtZT1cInZpZXdcIj5cbiAgICB7cmljaFRleHRhcmVhfVxuICA8L2Rpdj5cblxuO1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3O1xuXG5mdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gZWxlbWVudC5oYXNDb250ZW50Q2hhbmdlZCgpLFxuICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZWxlbWVudC5oYXNTZWxlY3Rpb25DaGFuZ2VkKCk7XG5cbiAgY29uc29sZS5sb2coY29udGVudENoYW5nZWQsIHNlbGVjdGlvbkNoYW5nZWQpXG59XG5cbmZ1bmN0aW9uIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc3Qgc2Nyb2xsVG9wID0gZWxlbWVudC5nZXRTY3JvbGxUb3AoKSxcbiAgICAgICAgc2Nyb2xsTGVmdCA9IGVsZW1lbnQuZ2V0U2Nyb2xsTGVmdCgpO1xuXG4gIGNvbnNvbGUubG9nKHNjcm9sbFRvcCwgc2Nyb2xsTGVmdClcbn1cblxuZnVuY3Rpb24gZm9jdXNIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiZm9jdXNcIilcbn1cblxuZnVuY3Rpb24gYmx1ckhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc29sZS5sb2coXCJibHVyXCIpXG59XG4iXSwibmFtZXMiOlsiY29udGVudCIsInJlYWRPbmx5IiwicmljaFRleHRhcmVhIiwiUmljaFRleHRhcmVhIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib25TY3JvbGwiLCJzY3JvbGxIYW5kbGVyIiwib25Gb2N1cyIsImZvY3VzSGFuZGxlciIsIm9uQmx1ciIsImJsdXJIYW5kbGVyIiwic2V0Q29udGVudCIsInNldFJlYWRPbmx5IiwiYWN0aXZhdGUiLCJWaWV3IiwicHJvcGVydGllcyIsImRpdiIsImNsYXNzTmFtZSIsImV2ZW50IiwiZWxlbWVudCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImNvbnNvbGUiLCJsb2ciLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMkJBOzs7ZUFBQTs7O2lFQXpCeUI7Ozs7OztBQUV6QixJQUFNQSxVQUFXLG9DQUdYQyxXQUFXLElBQUksRUFDZkMsNkJBRUUsb0JBQUNDLHFCQUFZO0lBQUNDLFVBQVVDO0lBQWVDLFVBQVVDO0lBQWVDLFNBQVNDO0lBQWNDLFFBQVFDOztBQUl2R1QsYUFBYVUsVUFBVSxDQUFDWjtBQUN4QkUsYUFBYVcsV0FBVyxDQUFDWjtBQUV6QkMsYUFBYVksUUFBUTtBQUVyQixJQUFNQyxPQUFPLFNBQUNDO3lCQUVaLG9CQUFDQztRQUFJQyxXQUFVO09BQ1poQjs7SUFLTCxXQUFlYTtBQUVmLFNBQVNWLGNBQWNjLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLElBQU1DLGlCQUFpQkQsUUFBUUUsaUJBQWlCLElBQzFDQyxtQkFBbUJILFFBQVFJLG1CQUFtQjtJQUVwREMsUUFBUUMsR0FBRyxDQUFDTCxnQkFBZ0JFO0FBQzlCO0FBRUEsU0FBU2hCLGNBQWNZLEtBQUssRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLElBQU1PLFlBQVlQLFFBQVFRLFlBQVksSUFDaENDLGFBQWFULFFBQVFVLGFBQWE7SUFFeENMLFFBQVFDLEdBQUcsQ0FBQ0MsV0FBV0U7QUFDekI7QUFFQSxTQUFTcEIsYUFBYVUsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDcENLLFFBQVFDLEdBQUcsQ0FBQztBQUNkO0FBRUEsU0FBU2YsWUFBWVEsS0FBSyxFQUFFQyxPQUFPLEVBQUU7SUFDbkNLLFFBQVFDLEdBQUcsQ0FBQztBQUNkIn0=
@@ -207,18 +207,19 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
207
207
  var _this;
208
208
  _this = _super.apply(this, arguments);
209
209
  _defineProperty(_assertThisInitialized(_this), "intermediateHandler", function(event, element, eventType, forced) {
210
+ var readOnly = _this.isReadOnly();
211
+ if (readOnly) {
212
+ var previousContent = _this.getPreviousContent(), content = previousContent; ///
213
+ _this.setContent(content);
214
+ }
210
215
  var changed = _this.hasChanged();
211
216
  if (changed || forced) {
212
217
  _this.callHandlers(eventType, event, element);
213
218
  }
214
- var content = _this.getContent(), selection = _this.getSelection(), previousContent = content, previousSelection = selection; ///
215
- _this.setPreviousContent(previousContent);
219
+ var content1 = _this.getContent(), selection = _this.getSelection(), previousContent1 = content1, previousSelection = selection; ///
220
+ _this.setPreviousContent(previousContent1);
216
221
  _this.setPreviousSelection(previousSelection);
217
222
  });
218
- _defineProperty(_assertThisInitialized(_this), "mouseUpHandler", function(event, element) {
219
- var mouseDown = false;
220
- _this.setMouseDown(mouseDown);
221
- });
222
223
  _defineProperty(_assertThisInitialized(_this), "mouseDownHandler", function(event, element) {
223
224
  var forced = false, mouseDown = true, eventType = CHANGE_EVENT_TYPE;
224
225
  _this.setMouseDown(mouseDown);
@@ -232,6 +233,10 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
232
233
  _this.intermediateHandler(event, element, eventTYpe, forced);
233
234
  }
234
235
  });
236
+ _defineProperty(_assertThisInitialized(_this), "mouseUpHandler", function(event, element) {
237
+ var mouseDown = false;
238
+ _this.setMouseDown(mouseDown);
239
+ });
235
240
  _defineProperty(_assertThisInitialized(_this), "keyDownHandler", function(event, element) {
236
241
  var forced = false, eventType = CHANGE_EVENT_TYPE;
237
242
  defer(function() {
@@ -266,13 +271,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
266
271
  return active;
267
272
  }
268
273
  },
269
- {
270
- key: "isReadOnly",
271
- value: function isReadOnly() {
272
- var domElement = this.getDOMElement(), readOnly = domElement.readOnly;
273
- return readOnly;
274
- }
275
- },
276
274
  {
277
275
  key: "getContent",
278
276
  value: function getContent() {
@@ -287,15 +285,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
287
285
  return selection;
288
286
  }
289
287
  },
290
- {
291
- key: "setReadOnly",
292
- value: function setReadOnly(readOnly) {
293
- var domElement = this.getDOMElement();
294
- Object.assign(domElement, {
295
- readOnly: readOnly
296
- });
297
- }
298
- },
299
288
  {
300
289
  key: "setContent",
301
290
  value: function setContent(content) {
@@ -317,13 +306,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
317
306
  this.setPreviousSelection(previousSelection);
318
307
  }
319
308
  },
320
- {
321
- key: "isMouseDown",
322
- value: function isMouseDown() {
323
- var state = this.getState(), mouseDown = state.mouseDown;
324
- return mouseDown;
325
- }
326
- },
327
309
  {
328
310
  key: "hasChanged",
329
311
  value: function hasChanged() {
@@ -454,20 +436,42 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
454
436
  });
455
437
  }
456
438
  },
439
+ {
440
+ key: "isReadOnly",
441
+ value: function isReadOnly() {
442
+ var readOnly = this.getState().readOnly;
443
+ return readOnly;
444
+ }
445
+ },
446
+ {
447
+ key: "isMouseDown",
448
+ value: function isMouseDown() {
449
+ var mouseDown = this.getState().mouseDown;
450
+ return mouseDown;
451
+ }
452
+ },
457
453
  {
458
454
  key: "getPreviousContent",
459
455
  value: function getPreviousContent() {
460
- var state = this.getState(), previousContent = state.previousContent;
456
+ var previousContent = this.getState().previousContent;
461
457
  return previousContent;
462
458
  }
463
459
  },
464
460
  {
465
461
  key: "getPreviousSelection",
466
462
  value: function getPreviousSelection() {
467
- var state = this.getState(), previousSelection = state.previousSelection;
463
+ var previousSelection = this.getState().previousSelection;
468
464
  return previousSelection;
469
465
  }
470
466
  },
467
+ {
468
+ key: "setReadOnly",
469
+ value: function setReadOnly(readOnly) {
470
+ this.updateState({
471
+ readOnly: readOnly
472
+ });
473
+ }
474
+ },
471
475
  {
472
476
  key: "setMouseDown",
473
477
  value: function setMouseDown(mouseDown) {
@@ -495,8 +499,9 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
495
499
  {
496
500
  key: "setInitialState",
497
501
  value: function setInitialState() {
498
- var mouseDown = false, previousContent = null, previousSelection = null;
502
+ var readOnly = false, mouseDown = false, previousContent = null, previousSelection = null;
499
503
  this.setState({
504
+ readOnly: readOnly,
500
505
  mouseDown: mouseDown,
501
506
  previousContent: previousContent,
502
507
  previousSelection: previousSelection
@@ -506,14 +511,14 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
506
511
  {
507
512
  key: "didMount",
508
513
  value: function didMount() {
509
- var _this_properties = this.properties, active = _this_properties.active, onChange = _this_properties.onChange, onScroll = _this_properties.onScroll, onFocus = _this_properties.onFocus, onBlur = _this_properties.onBlur, changeHandler = onChange, scrollHandler = onScroll, focusHandler = onFocus, blurHandler = onBlur; ///
514
+ var _this_properties = this.properties, onChange = _this_properties.onChange, onScroll = _this_properties.onScroll, onFocus = _this_properties.onFocus, onBlur = _this_properties.onBlur, changeHandler = onChange, scrollHandler = onScroll, focusHandler = onFocus, blurHandler = onBlur; ///
510
515
  changeHandler && this.onChange(changeHandler, this);
511
516
  scrollHandler && this.onScroll(scrollHandler, this);
512
517
  focusHandler && this.onFocus(focusHandler, this);
513
518
  blurHandler && this.onBlur(blurHandler, this);
514
- if (active) {
515
- this.activate();
516
- }
519
+ var content = this.getContent(), selection = this.getSelection(), previousContent = content, previousSelection = selection; ///
520
+ this.setPreviousSelection(previousSelection);
521
+ this.setPreviousContent(previousContent);
517
522
  }
518
523
  },
519
524
  {
@@ -524,6 +529,10 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
524
529
  scrollHandler && this.offScroll(scrollHandler, this);
525
530
  focusHandler && this.offFocus(focusHandler, this);
526
531
  blurHandler && this.offBlur(blurHandler, this);
532
+ var active = this.isActive();
533
+ if (active) {
534
+ this.deactivate();
535
+ }
527
536
  }
528
537
  },
529
538
  {
@@ -540,11 +549,10 @@ _defineProperty(RichTextarea, "ignoredProperties", [
540
549
  "onChange",
541
550
  "onScroll",
542
551
  "onFocus",
543
- "onBlur",
544
- "active"
552
+ "onBlur"
545
553
  ]);
546
554
  _defineProperty(RichTextarea, "defaultProperties", {
547
555
  className: "rich"
548
556
  });
549
557
 
550
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb25cIlxyXG5cclxuY29uc3QgeyBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRVVQX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRU1PVkVfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmNvbnN0IGRlZmVyID0gKGZ1bmMpID0+IHNldFRpbWVvdXQoZnVuYywgMSk7IC8vL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmljaFRleHRhcmVhIGV4dGVuZHMgRWxlbWVudCB7XHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpID0+IHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgbW91c2VVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcbiAgfTtcclxuXHJcbiAgbW91c2VEb3duSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTW92ZUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgIG1vdXNlRG93biA9IHRoaXMuaXNNb3VzZURvd24oKSxcclxuICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGZvY3VzSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gdHJ1ZSxcclxuICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgIGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIGlzQWN0aXZlKCkge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5oYXNDbGFzcyhcImFjdGl2ZVwiKTtcclxuXHJcbiAgICByZXR1cm4gYWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkT25seSgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgcmVhZE9ubHkgfSA9IGRvbUVsZW1lbnQ7XHJcbiAgICBcclxuICAgIHJldHVybiByZWFkT25seTsgXHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyB2YWx1ZSB9ID0gZG9tRWxlbWVudCxcclxuICAgICAgICAgIGNvbnRlbnQgPSB2YWx1ZTsgIC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seShyZWFkT25seSkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICByZWFkT25seVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGlvbihzZWxlY3Rpb24pIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHNlbGVjdGlvblN0YXJ0LFxyXG4gICAgICBzZWxlY3Rpb25FbmRcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaXNNb3VzZURvd24oKSB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoKSxcclxuICAgICAgICAgIHsgbW91c2VEb3duIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gbW91c2VEb3duO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgY2hhbmdlZCA9IChjb250ZW50Q2hhbmdlZCB8fCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuXHJcbiAgICByZXR1cm4gY2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCA9IChjb250ZW50ICE9PSBwcmV2aW91c0NvbnRlbnQpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQ7IC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRGlmZmVyZW50VG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb247IC8vL1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb25DaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vbihgJHtCTFVSX0VWRU5UX1RZUEV9ICR7TU9VU0VVUF9FVkVOVF9UWVBFfSAke0NPTlRFWFRNRU5VX0VWRU5UX1RZUEV9YCwgdGhpcy5tb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIGRlYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vZmYoYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRURPV05fRVZFTlRfVFlQRSwgdGhpcy5tb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkJsdXIoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IHNjcm9sbEhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBjaGFuZ2VIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUmljaFRleHRhcmVhIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIklOUFVUX0VWRU5UX1RZUEUiLCJGT0NVU19FVkVOVF9UWVBFIiwiQ0hBTkdFX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsIktFWURPV05fRVZFTlRfVFlQRSIsIk1PVVNFVVBfRVZFTlRfVFlQRSIsIk1PVVNFRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VNT1ZFX0VWRU5UX1RZUEUiLCJDT05URVhUTUVOVV9FVkVOVF9UWVBFIiwiZGVmZXIiLCJmdW5jIiwic2V0VGltZW91dCIsImludGVybWVkaWF0ZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJldmVudFR5cGUiLCJmb3JjZWQiLCJjaGFuZ2VkIiwiaGFzQ2hhbmdlZCIsImNhbGxIYW5kbGVycyIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwicHJldmlvdXNDb250ZW50IiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duIiwic2V0TW91c2VEb3duIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJpc01vdXNlRG93biIsImV2ZW50VFlwZSIsImtleURvd25IYW5kbGVyIiwiaW5wdXRIYW5kbGVyIiwic2Nyb2xsSGFuZGxlciIsImZvY3VzSGFuZGxlciIsImJsdXJIYW5kbGVyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwidmFsdWUiLCJTZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsInNldFJlYWRPbmx5IiwiT2JqZWN0IiwiYXNzaWduIiwic2V0Q29udGVudCIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwic3RhdGUiLCJnZXRTdGF0ZSIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImdldFByZXZpb3VzQ29udGVudCIsImNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiIsImlzRGlmZmVyZW50VG8iLCJhY3RpdmF0ZSIsIndpbmRvdyIsIm9uIiwiYWRkQ2xhc3MiLCJkZWFjdGl2YXRlIiwib2ZmIiwicmVtb3ZlQ2xhc3MiLCJvbkJsdXIiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZkJsdXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25Gb2N1cyIsIm9mZkZvY3VzIiwib25TY3JvbGwiLCJvZmZTY3JvbGwiLCJvbkNoYW5nZSIsImNoYW5nZUhhbmRsZXIiLCJvZmZDaGFuZ2UiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImZvckVhY2giLCJldmVudExpc3RlbmVyIiwiaGFuZGxlckVsZW1lbnQiLCJjYWxsIiwidXBkYXRlU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImRpZE1vdW50IiwicHJvcGVydGllcyIsIndpbGxVbm1vdW50IiwiaW5pdGlhbGlzZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFtQnFCQTs7O29CQWpCdUI7OERBRXRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEIsSUFBUUMsa0JBUzRCQyxnQkFBVSxDQVR0Q0QsaUJBQ0NFLG1CQVEyQkQsZ0JBQVUsQ0FSckNDLGtCQUNBQyxtQkFPMkJGLGdCQUFVLENBUHJDRSxrQkFDQUMsb0JBTTJCSCxnQkFBVSxDQU5yQ0csbUJBQ0FDLG9CQUsyQkosZ0JBQVUsQ0FMckNJLG1CQUNBQyxxQkFJMkJMLGdCQUFVLENBSnJDSyxvQkFD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
558
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb25cIlxyXG5cclxuY29uc3QgeyBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRVVQX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRU1PVkVfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmNvbnN0IGRlZmVyID0gKGZ1bmMpID0+IHNldFRpbWVvdXQoZnVuYywgMSk7IC8vL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmljaFRleHRhcmVhIGV4dGVuZHMgRWxlbWVudCB7XHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpID0+IHtcclxuICAgIGNvbnN0IHJlYWRPbmx5ID0gdGhpcy5pc1JlYWRPbmx5KCk7XHJcblxyXG4gICAgaWYgKHJlYWRPbmx5KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICAgIGNvbnRlbnQgPSBwcmV2aW91c0NvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5oYXNDaGFuZ2VkKCk7XHJcblxyXG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIG1vdXNlRG93bkhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgbW91c2VNb3ZlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBtb3VzZURvd24gPSB0aGlzLmlzTW91c2VEb3duKCksXHJcbiAgICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW91c2VVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcbiAgfTtcclxuXHJcbiAga2V5RG93bkhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgZGVmZXIoKCkgPT4gdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCkpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaXNBY3RpdmUoKSB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmhhc0NsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIHJldHVybiBhY3RpdmU7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyB2YWx1ZSB9ID0gZG9tRWxlbWVudCxcclxuICAgICAgICAgIGNvbnRlbnQgPSB2YWx1ZTsgIC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGlvbihzZWxlY3Rpb24pIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHNlbGVjdGlvblN0YXJ0LFxyXG4gICAgICBzZWxlY3Rpb25FbmRcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgY2hhbmdlZCA9IChjb250ZW50Q2hhbmdlZCB8fCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuXHJcbiAgICByZXR1cm4gY2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCA9IChjb250ZW50ICE9PSBwcmV2aW91c0NvbnRlbnQpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQ7IC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRGlmZmVyZW50VG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb247IC8vL1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb25DaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vbihgJHtCTFVSX0VWRU5UX1RZUEV9ICR7TU9VU0VVUF9FVkVOVF9UWVBFfSAke0NPTlRFWFRNRU5VX0VWRU5UX1RZUEV9YCwgdGhpcy5tb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIGRlYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vZmYoYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRURPV05fRVZFTlRfVFlQRSwgdGhpcy5tb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkJsdXIoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IHNjcm9sbEhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBjaGFuZ2VIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkT25seSgpIHtcclxuICAgIGNvbnN0IHsgcmVhZE9ubHkgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7XHJcbiAgfVxyXG5cclxuICBpc01vdXNlRG93bigpIHtcclxuICAgIGNvbnN0IHsgbW91c2VEb3duIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIG1vdXNlRG93bjtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzQ29udGVudCgpIHtcclxuICAgIGNvbnN0IHsgcHJldmlvdXNDb250ZW50IH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c1NlbGVjdGlvbiB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIHJldHVybiBwcmV2aW91c1NlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcmVhZE9ubHlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TW91c2VEb3duKG1vdXNlRG93bikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93blxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgcmVhZE9ubHkgPSBmYWxzZSxcclxuICAgICAgICAgIG1vdXNlRG93biA9IGZhbHNlLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gbnVsbCxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgcmVhZE9ubHksXHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uU2Nyb2xsLCBvbkZvY3VzLCBvbkJsdXIgfSA9IHRoaXMucHJvcGVydGllcyxcclxuICAgICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IG9uU2Nyb2xsLCAvLy9cclxuICAgICAgICAgICAgZm9jdXNIYW5kbGVyID0gb25Gb2N1cywgLy8vXHJcbiAgICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub25TY3JvbGwoc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9uQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiXHJcbiAgXTtcclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xyXG4gICAgY2xhc3NOYW1lOiBcInJpY2hcIlxyXG4gIH07XHJcbn1cclxuIiwiUmVhY3QuY3JlYXRlRWxlbWVudCJdLCJuYW1lcyI6WyJSaWNoVGV4dGFyZWEiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiSU5QVVRfRVZFTlRfVFlQRSIsIkZPQ1VTX0VWRU5UX1RZUEUiLCJDSEFOR0VfRVZFTlRfVFlQRSIsIlNDUk9MTF9FVkVOVF9UWVBFIiwiS0VZRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VVUF9FVkVOVF9UWVBFIiwiTU9VU0VET1dOX0VWRU5UX1RZUEUiLCJNT1VTRU1PVkVfRVZFTlRfVFlQRSIsIkNPTlRFWFRNRU5VX0VWRU5UX1RZUEUiLCJkZWZlciIsImZ1bmMiLCJzZXRUaW1lb3V0IiwiaW50ZXJtZWRpYXRlSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImV2ZW50VHlwZSIsImZvcmNlZCIsInJlYWRPbmx5IiwiaXNSZWFkT25seSIsInByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzQ29udGVudCIsImNvbnRlbnQiLCJzZXRDb250ZW50IiwiY2hhbmdlZCIsImhhc0NoYW5nZWQiLCJjYWxsSGFuZGxlcnMiLCJnZXRDb250ZW50Iiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsIm1vdXNlRG93bkhhbmRsZXIiLCJtb3VzZURvd24iLCJzZXRNb3VzZURvd24iLCJtb3VzZU1vdmVIYW5kbGVyIiwiaXNNb3VzZURvd24iLCJldmVudFRZcGUiLCJtb3VzZVVwSGFuZGxlciIsImtleURvd25IYW5kbGVyIiwiaW5wdXRIYW5kbGVyIiwic2Nyb2xsSGFuZGxlciIsImZvY3VzSGFuZGxlciIsImJsdXJIYW5kbGVyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImRvbUVsZW1lbnQiLCJnZXRET01FbGVtZW50IiwidmFsdWUiLCJTZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsIk9iamVjdCIsImFzc2lnbiIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsInNlbGVjdGlvbkNoYW5nZWQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50IiwiZ2V0UHJldmlvdXNTZWxlY3Rpb24iLCJzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uIiwiaXNEaWZmZXJlbnRUbyIsImFjdGl2YXRlIiwid2luZG93Iiwib24iLCJhZGRDbGFzcyIsImRlYWN0aXZhdGUiLCJvZmYiLCJyZW1vdmVDbGFzcyIsIm9uQmx1ciIsImhhbmRsZXIiLCJhZGRFdmVudExpc3RlbmVyIiwib2ZmQmx1ciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkZvY3VzIiwib2ZmRm9jdXMiLCJvblNjcm9sbCIsIm9mZlNjcm9sbCIsIm9uQ2hhbmdlIiwiY2hhbmdlSGFuZGxlciIsIm9mZkNoYW5nZSIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyRWxlbWVudCIsImNhbGwiLCJnZXRTdGF0ZSIsInNldFJlYWRPbmx5IiwidXBkYXRlU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImRpZE1vdW50IiwicHJvcGVydGllcyIsIndpbGxVbm1vdW50IiwiaW5pdGlhbGlzZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJt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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "easy-richtextarea",
3
3
  "author": "James Smith",
4
- "version": "3.0.146",
4
+ "version": "3.0.148",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/easy-richtextarea",
7
7
  "description": "A textarea element that handles and hands off events well.",
@@ -12,5 +12,11 @@ export default withStyle(RichTextarea)`
12
12
  padding: 0.25rem;
13
13
  font-size: 1.2rem;
14
14
  font-family: monospace;
15
+
16
+ display: none;
17
+
18
+ .active {
19
+ display: block;
20
+ }
15
21
 
16
22
  `;
@@ -2,15 +2,25 @@
2
2
 
3
3
  import RichTextarea from "./richTextarea";
4
4
 
5
+ const content = `Rule (blah)
6
+ Conclusion
7
+ A`,
8
+ readOnly = true,
9
+ richTextarea =
10
+
11
+ <RichTextarea onChange={changeHandler} onScroll={scrollHandler} onFocus={focusHandler} onBlur={blurHandler} />
12
+
13
+ ;
14
+
15
+ richTextarea.setContent(content);
16
+ richTextarea.setReadOnly(readOnly);
17
+
18
+ richTextarea.activate();
19
+
5
20
  const View = (properties) =>
6
21
 
7
22
  <div className="view">
8
- <RichTextarea onChange={changeHandler}
9
- onScroll={scrollHandler}
10
- onFocus={focusHandler}
11
- onBlur={blurHandler}
12
- active
13
- />
23
+ {richTextarea}
14
24
  </div>
15
25
 
16
26
  ;
@@ -19,6 +19,15 @@ const defer = (func) => setTimeout(func, 1); ///
19
19
 
20
20
  export default class RichTextarea extends Element {
21
21
  intermediateHandler = (event, element, eventType, forced) => {
22
+ const readOnly = this.isReadOnly();
23
+
24
+ if (readOnly) {
25
+ const previousContent = this.getPreviousContent(),
26
+ content = previousContent; ///
27
+
28
+ this.setContent(content);
29
+ }
30
+
22
31
  const changed = this.hasChanged();
23
32
 
24
33
  if (changed || forced) {
@@ -34,16 +43,10 @@ export default class RichTextarea extends Element {
34
43
  this.setPreviousSelection(previousSelection);
35
44
  }
36
45
 
37
- mouseUpHandler = (event, element) => {
38
- const mouseDown = false;
39
-
40
- this.setMouseDown(mouseDown);
41
- };
42
-
43
46
  mouseDownHandler = (event, element) => {
44
47
  const forced = false,
45
- mouseDown = true,
46
- eventType = CHANGE_EVENT_TYPE;
48
+ mouseDown = true,
49
+ eventType = CHANGE_EVENT_TYPE;
47
50
 
48
51
  this.setMouseDown(mouseDown);
49
52
 
@@ -52,24 +55,30 @@ export default class RichTextarea extends Element {
52
55
 
53
56
  mouseMoveHandler = (event, element) => {
54
57
  const forced = false,
55
- mouseDown = this.isMouseDown(),
56
- eventTYpe = CHANGE_EVENT_TYPE;
58
+ mouseDown = this.isMouseDown(),
59
+ eventTYpe = CHANGE_EVENT_TYPE;
57
60
 
58
61
  if (mouseDown) {
59
62
  this.intermediateHandler(event, element, eventTYpe, forced);
60
63
  }
61
64
  }
62
65
 
66
+ mouseUpHandler = (event, element) => {
67
+ const mouseDown = false;
68
+
69
+ this.setMouseDown(mouseDown);
70
+ };
71
+
63
72
  keyDownHandler = (event, element) => {
64
73
  const forced = false,
65
- eventType = CHANGE_EVENT_TYPE;
74
+ eventType = CHANGE_EVENT_TYPE;
66
75
 
67
76
  defer(() => this.intermediateHandler(event, element, eventType, forced));
68
77
  }
69
78
 
70
79
  inputHandler = (event, element) => {
71
80
  const forced = false,
72
- eventType = CHANGE_EVENT_TYPE;
81
+ eventType = CHANGE_EVENT_TYPE;
73
82
 
74
83
  this.intermediateHandler(event, element, eventType, forced);
75
84
  }
@@ -82,14 +91,14 @@ export default class RichTextarea extends Element {
82
91
 
83
92
  focusHandler = (event, element) => {
84
93
  const forced = true,
85
- eventType = FOCUS_EVENT_TYPE;
94
+ eventType = FOCUS_EVENT_TYPE;
86
95
 
87
96
  defer(() => this.intermediateHandler(event, element, eventType, forced));
88
97
  }
89
98
 
90
99
  blurHandler = (event, element) => {
91
100
  const forced = true,
92
- eventType = BLUR_EVENT_TYPE;
101
+ eventType = BLUR_EVENT_TYPE;
93
102
 
94
103
  this.intermediateHandler(event, element, eventType, forced);
95
104
  }
@@ -100,13 +109,6 @@ export default class RichTextarea extends Element {
100
109
  return active;
101
110
  }
102
111
 
103
- isReadOnly() {
104
- const domElement = this.getDOMElement(),
105
- { readOnly } = domElement;
106
-
107
- return readOnly;
108
- }
109
-
110
112
  getContent() {
111
113
  const domElement = this.getDOMElement(),
112
114
  { value } = domElement,
@@ -122,14 +124,6 @@ export default class RichTextarea extends Element {
122
124
  return selection;
123
125
  }
124
126
 
125
- setReadOnly(readOnly) {
126
- const domElement = this.getDOMElement();
127
-
128
- Object.assign(domElement, {
129
- readOnly
130
- });
131
- }
132
-
133
127
  setContent(content) {
134
128
  const value = content, ///
135
129
  previousContent = content, ///
@@ -158,13 +152,6 @@ export default class RichTextarea extends Element {
158
152
  this.setPreviousSelection(previousSelection);
159
153
  }
160
154
 
161
- isMouseDown() {
162
- const state = this.getState(),
163
- { mouseDown } = state;
164
-
165
- return mouseDown;
166
- }
167
-
168
155
  hasChanged() {
169
156
  const contentChanged = this.hasContentChanged(),
170
157
  selectionChanged = this.hasSelectionChanged(),
@@ -308,20 +295,36 @@ export default class RichTextarea extends Element {
308
295
  });
309
296
  }
310
297
 
298
+ isReadOnly() {
299
+ const { readOnly } = this.getState();
300
+
301
+ return readOnly;
302
+ }
303
+
304
+ isMouseDown() {
305
+ const { mouseDown } = this.getState();
306
+
307
+ return mouseDown;
308
+ }
309
+
311
310
  getPreviousContent() {
312
- const state = this.getState(),
313
- { previousContent } = state;
311
+ const { previousContent } = this.getState();
314
312
 
315
313
  return previousContent;
316
314
  }
317
315
 
318
316
  getPreviousSelection() {
319
- const state = this.getState(),
320
- { previousSelection } = state;
317
+ const { previousSelection } = this.getState();
321
318
 
322
319
  return previousSelection;
323
320
  }
324
321
 
322
+ setReadOnly(readOnly) {
323
+ this.updateState({
324
+ readOnly
325
+ });
326
+ }
327
+
325
328
  setMouseDown(mouseDown) {
326
329
  this.updateState({
327
330
  mouseDown
@@ -341,11 +344,13 @@ export default class RichTextarea extends Element {
341
344
  }
342
345
 
343
346
  setInitialState() {
344
- const mouseDown = false,
347
+ const readOnly = false,
348
+ mouseDown = false,
345
349
  previousContent = null,
346
350
  previousSelection = null;
347
351
 
348
352
  this.setState({
353
+ readOnly,
349
354
  mouseDown,
350
355
  previousContent,
351
356
  previousSelection
@@ -353,7 +358,7 @@ export default class RichTextarea extends Element {
353
358
  }
354
359
 
355
360
  didMount() {
356
- const { active, onChange, onScroll, onFocus, onBlur } = this.properties,
361
+ const { onChange, onScroll, onFocus, onBlur } = this.properties,
357
362
  changeHandler = onChange, ///
358
363
  scrollHandler = onScroll, ///
359
364
  focusHandler = onFocus, ///
@@ -364,9 +369,14 @@ export default class RichTextarea extends Element {
364
369
  focusHandler && this.onFocus(focusHandler, this);
365
370
  blurHandler && this.onBlur(blurHandler, this);
366
371
 
367
- if (active) {
368
- this.activate();
369
- }
372
+ const content = this.getContent(),
373
+ selection = this.getSelection(),
374
+ previousContent = content, ///
375
+ previousSelection = selection; ///
376
+
377
+ this.setPreviousSelection(previousSelection);
378
+
379
+ this.setPreviousContent(previousContent);
370
380
  }
371
381
 
372
382
  willUnmount() {
@@ -380,6 +390,12 @@ export default class RichTextarea extends Element {
380
390
  scrollHandler && this.offScroll(scrollHandler, this);
381
391
  focusHandler && this.offFocus(focusHandler, this);
382
392
  blurHandler && this.offBlur(blurHandler, this);
393
+
394
+ const active = this.isActive();
395
+
396
+ if (active) {
397
+ this.deactivate();
398
+ }
383
399
  }
384
400
 
385
401
  initialise() {
@@ -392,8 +408,7 @@ export default class RichTextarea extends Element {
392
408
  "onChange",
393
409
  "onScroll",
394
410
  "onFocus",
395
- "onBlur",
396
- "active"
411
+ "onBlur"
397
412
  ];
398
413
 
399
414
  static defaultProperties = {