easy-richtextarea 4.0.202 → 4.0.206

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.
@@ -26,9 +26,6 @@ _export(exports, {
26
26
  },
27
27
  SCROLL_CUSTOM_EVENT_TYPE: function() {
28
28
  return SCROLL_CUSTOM_EVENT_TYPE;
29
- },
30
- default: function() {
31
- return _default;
32
29
  }
33
30
  });
34
31
  var BLUR_CUSTOM_EVENT_TYPE = "blur";
@@ -37,13 +34,5 @@ var SCROLL_CUSTOM_EVENT_TYPE = "scroll";
37
34
  var CHANGE_CUSTOM_EVENT_TYPE = "change";
38
35
  var ACTIVATE_CUSTOM_EVENT_TYPE = "activate";
39
36
  var DEACTIVATE_CUSTOM_EVENT_TYPE = "deactivate";
40
- var _default = {
41
- BLUR_CUSTOM_EVENT_TYPE: BLUR_CUSTOM_EVENT_TYPE,
42
- FOCUS_CUSTOM_EVENT_TYPE: FOCUS_CUSTOM_EVENT_TYPE,
43
- SCROLL_CUSTOM_EVENT_TYPE: SCROLL_CUSTOM_EVENT_TYPE,
44
- CHANGE_CUSTOM_EVENT_TYPE: CHANGE_CUSTOM_EVENT_TYPE,
45
- ACTIVATE_CUSTOM_EVENT_TYPE: ACTIVATE_CUSTOM_EVENT_TYPE,
46
- DEACTIVATE_CUSTOM_EVENT_TYPE: DEACTIVATE_CUSTOM_EVENT_TYPE
47
- };
48
37
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXN0b21FdmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgQkxVUl9DVVNUT01fRVZFTlRfVFlQRSA9IFwiYmx1clwiO1xuZXhwb3J0IGNvbnN0IEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJmb2N1c1wiO1xuZXhwb3J0IGNvbnN0IFNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSA9IFwic2Nyb2xsXCI7XG5leHBvcnQgY29uc3QgQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJjaGFuZ2VcIjtcbmV4cG9ydCBjb25zdCBBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSA9IFwiYWN0aXZhdGVcIjtcbmV4cG9ydCBjb25zdCBERUFDVElWQVRFX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJkZWFjdGl2YXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgQkxVUl9DVVNUT01fRVZFTlRfVFlQRSxcbiAgRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gIFNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSxcbiAgQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFLFxuICBBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSxcbiAgREVBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRVxufTtcbiJdLCJuYW1lcyI6WyJBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSIsIkJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUiLCJDSEFOR0VfQ1VTVE9NX0VWRU5UX1RZUEUiLCJERUFDVElWQVRFX0NVU1RPTV9FVkVOVF9UWVBFIiwiRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUiLCJTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU1hQSwwQkFBMEI7ZUFBMUJBOztJQUpBQyxzQkFBc0I7ZUFBdEJBOztJQUdBQyx3QkFBd0I7ZUFBeEJBOztJQUVBQyw0QkFBNEI7ZUFBNUJBOztJQUpBQyx1QkFBdUI7ZUFBdkJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQUtiLE9BT0U7ZUFQRjs7O0FBUE8sSUFBTUoseUJBQXlCO0FBQy9CLElBQU1HLDBCQUEwQjtBQUNoQyxJQUFNQywyQkFBMkI7QUFDakMsSUFBTUgsMkJBQTJCO0FBQ2pDLElBQU1GLDZCQUE2QjtBQUNuQyxJQUFNRywrQkFBK0I7SUFFNUMsV0FBZTtJQUNiRix3QkFBQUE7SUFDQUcseUJBQUFBO0lBQ0FDLDBCQUFBQTtJQUNBSCwwQkFBQUE7SUFDQUYsNEJBQUFBO0lBQ0FHLDhCQUFBQTtBQUNGIn0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXN0b21FdmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgQkxVUl9DVVNUT01fRVZFTlRfVFlQRSA9IFwiYmx1clwiO1xuZXhwb3J0IGNvbnN0IEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJmb2N1c1wiO1xuZXhwb3J0IGNvbnN0IFNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSA9IFwic2Nyb2xsXCI7XG5leHBvcnQgY29uc3QgQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJjaGFuZ2VcIjtcbmV4cG9ydCBjb25zdCBBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSA9IFwiYWN0aXZhdGVcIjtcbmV4cG9ydCBjb25zdCBERUFDVElWQVRFX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJkZWFjdGl2YXRlXCI7XG4iXSwibmFtZXMiOlsiQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUiLCJCTFVSX0NVU1RPTV9FVkVOVF9UWVBFIiwiQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFIiwiREVBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSIsIkZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFIiwiU0NST0xMX0NVU1RPTV9FVkVOVF9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFNYUEsMEJBQTBCO2VBQTFCQTs7SUFKQUMsc0JBQXNCO2VBQXRCQTs7SUFHQUMsd0JBQXdCO2VBQXhCQTs7SUFFQUMsNEJBQTRCO2VBQTVCQTs7SUFKQUMsdUJBQXVCO2VBQXZCQTs7SUFDQUMsd0JBQXdCO2VBQXhCQTs7O0FBRk4sSUFBTUoseUJBQXlCO0FBQy9CLElBQU1HLDBCQUEwQjtBQUNoQyxJQUFNQywyQkFBMkI7QUFDakMsSUFBTUgsMkJBQTJCO0FBQ2pDLElBQU1GLDZCQUE2QjtBQUNuQyxJQUFNRywrQkFBK0IifQ==
@@ -194,31 +194,16 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
194
194
  _class_call_check(this, RichTextarea);
195
195
  var _this;
196
196
  _this = _super.apply(this, arguments);
197
- _define_property(_assert_this_initialized(_this), "blurHandler", function(event, element) {
197
+ _define_property(_assert_this_initialized(_this), "selectionChangeHandler", function(event, element) {
198
198
  var active = _this.isActive();
199
199
  if (!active) {
200
200
  return;
201
201
  }
202
- var customEventType = _customEventTypes.BLUR_CUSTOM_EVENT_TYPE, forced = true;
203
- _this.customHandler(customEventType, event, element, forced);
204
- });
205
- _define_property(_assert_this_initialized(_this), "focusHandler", function(event, element) {
206
- defer(function() {
207
- var active = _this.isActive();
208
- if (!active) {
209
- _this.addClass("active");
210
- var customEventType = _customEventTypes.ACTIVATE_CUSTOM_EVENT_TYPE, _$event = null, _$element = _assert_this_initialized(_this), forced = true;
211
- _this.customHandler(customEventType, _$event, _$element, forced);
212
- }
213
- var customEventType1 = _customEventTypes.FOCUS_CUSTOM_EVENT_TYPE, forced1 = true;
214
- _this.customHandler(customEventType1, event, element, forced1);
215
- });
216
- });
217
- _define_property(_assert_this_initialized(_this), "inputHandler", function(event, element) {
218
- var active = _this.isActive();
219
- if (!active) {
202
+ var currentTarget = event.currentTarget, activeElement = currentTarget.activeElement, domElement = _this.getDOMElement();
203
+ if (activeElement !== domElement) {
220
204
  return;
221
205
  }
206
+ element = _assert_this_initialized(_this); ///
222
207
  var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE;
223
208
  _this.customHandler(customEventType, event, element);
224
209
  });
@@ -230,19 +215,34 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
230
215
  var customEventType = _customEventTypes.SCROLL_CUSTOM_EVENT_TYPE, forced = true;
231
216
  _this.customHandler(customEventType, event, element, forced);
232
217
  });
233
- _define_property(_assert_this_initialized(_this), "selectionChangeHandler", function(event, element) {
218
+ _define_property(_assert_this_initialized(_this), "inputHandler", function(event, element) {
234
219
  var active = _this.isActive();
235
220
  if (!active) {
236
221
  return;
237
222
  }
238
- var currentTarget = event.currentTarget, activeElement = currentTarget.activeElement, domElement = _this.getDOMElement();
239
- if (activeElement !== domElement) {
240
- return;
241
- }
242
- element = _assert_this_initialized(_this); ///
243
223
  var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE;
244
224
  _this.customHandler(customEventType, event, element);
245
225
  });
226
+ _define_property(_assert_this_initialized(_this), "focusHandler", function(event, element) {
227
+ defer(function() {
228
+ var active = _this.isActive();
229
+ if (!active) {
230
+ _this.addClass("active");
231
+ var customEventType = _customEventTypes.ACTIVATE_CUSTOM_EVENT_TYPE, _$event = null, _$element = _assert_this_initialized(_this), forced = true;
232
+ _this.customHandler(customEventType, _$event, _$element, forced);
233
+ }
234
+ var customEventType1 = _customEventTypes.FOCUS_CUSTOM_EVENT_TYPE, forced1 = true;
235
+ _this.customHandler(customEventType1, event, element, forced1);
236
+ });
237
+ });
238
+ _define_property(_assert_this_initialized(_this), "blurHandler", function(event, element) {
239
+ var active = _this.isActive();
240
+ if (!active) {
241
+ return;
242
+ }
243
+ var customEventType = _customEventTypes.BLUR_CUSTOM_EVENT_TYPE, forced = true;
244
+ _this.customHandler(customEventType, event, element, forced);
245
+ });
246
246
  _define_property(_assert_this_initialized(_this), "customHandler", function(customEventType, event, element) {
247
247
  var forced = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
248
248
  var content = _this.getContent(), selection = _this.getSelection(), contentChanged = _this.hasContentChanged(), selectionChanged = _this.hasSelectionChanged();
@@ -451,4 +451,4 @@ function defer(func) {
451
451
  setTimeout(func, 0);
452
452
  }
453
453
 
454
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBjdXN0b21FdmVudE1peGlucyBmcm9tIFwiLi9taXhpbnMvY3VzdG9tRXZlbnRcIjtcclxuXHJcbmltcG9ydCB7IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSxcclxuICAgICAgICAgQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIERFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUgfSBmcm9tIFwiLi9jdXN0b21FdmVudFR5cGVzXCI7XHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSwgRk9DVVNfRVZFTlRfVFlQRSwgSU5QVVRfRVZFTlRfVFlQRSwgU0NST0xMX0VWRU5UX1RZUEUgfSA9IGV2ZW50VHlwZXM7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBibHVySGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBCTFVSX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgZm9yY2VkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbUhhbmRsZXIoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIGZvY3VzSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgZGVmZXIoKCkgPT4ge1xyXG4gICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgICBpZiAoIWFjdGl2ZSkge1xyXG4gICAgICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IEFDVElWQVRFX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgICAgIGV2ZW50ID0gbnVsbCxcclxuICAgICAgICAgICAgICBlbGVtZW50ID0gdGhpcyxcclxuICAgICAgICAgICAgICBmb3JjZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmN1c3RvbUhhbmRsZXIoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZm9yY2VkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICAgIGZvcmNlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmN1c3RvbUhhbmRsZXIoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCwgZm9yY2VkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbUhhbmRsZXIoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IFNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGZvcmNlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGZvcmNlZCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3Rpb25DaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCB9ID0gZXZlbnQsXHJcbiAgICAgICAgICB7IGFjdGl2ZUVsZW1lbnQgfSA9IGN1cnJlbnRUYXJnZXQsXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQgIT09IGRvbUVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnQgPSB0aGlzOyAvLy9cclxuXHJcbiAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBDSEFOR0VfQ1VTVE9NX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY3VzdG9tSGFuZGxlciA9IChjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBmb3JjZWQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xyXG5cclxuICAgIGlmIChmb3JjZWQgfHwgY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCkge1xyXG4gICAgICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc1JlYWRPbmx5KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyByZWFkT25seSB9ID0gZG9tRWxlbWVudDtcclxuXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnRQcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCA9PT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gIWNvbnRlbnRQcmV2aW91c0NvbnRlbnQ7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRDaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRXF1YWxUbyhwcmV2aW91c1NlbGVjdGlvbiksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gIXNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHJlYWRPbmx5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudCwgc2V0UHJldmlvdXNDb250ZW50ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNDb250ZW50KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBkb21FbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xyXG5cclxuICAgIGlmIChzZXRQcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBldmVudCA9IG51bGwsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcyxcclxuICAgICAgICAgIGZvcmNlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGZvcmNlZCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c0NvbnRlbnQoKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzQ29udGVudCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIHJldHVybiBwcmV2aW91c0NvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IHsgcHJldmlvdXNTZWxlY3Rpb24gfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgcHJldmlvdXNDb250ZW50ID0gbnVsbCxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcblxyXG4gICAgdGhpcy5vbkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbkV2ZW50KEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uRXZlbnQoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub25FdmVudChTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyKTtcclxuXHJcbiAgICBkb2N1bWVudC5vblNlbGVjdGlvbkNoYW5nZSh0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgd2lsbFVubW91bnQoKSB7XHJcbiAgICB0aGlzLm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyKTtcclxuXHJcbiAgICBkb2N1bWVudC5vZmZTZWxlY3Rpb25DaGFuZ2UodGhpcy5zZWxlY3Rpb25DaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG5cclxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IHJpY2hUZXh0YXJlYSA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xyXG5cclxuICAgIHJldHVybiByaWNoVGV4dGFyZWE7XHJcbiAgfVxyXG59XHJcblxyXG5PYmplY3QuYXNzaWduKFJpY2hUZXh0YXJlYS5wcm90b3R5cGUsIGN1c3RvbUV2ZW50TWl4aW5zKTtcclxuXHJcbmZ1bmN0aW9uIGRlZmVyKGZ1bmMpIHtcclxuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSaWNoVGV4dGFyZWEiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiRk9DVVNfRVZFTlRfVFlQRSIsIklOUFVUX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsImJsdXJIYW5kbGVyIiwiZXZlbnQiLCJlbGVtZW50IiwiYWN0aXZlIiwiaXNBY3RpdmUiLCJjdXN0b21FdmVudFR5cGUiLCJCTFVSX0NVU1RPTV9FVkVOVF9UWVBFIiwiZm9yY2VkIiwiY3VzdG9tSGFuZGxlciIsImZvY3VzSGFuZGxlciIsImRlZmVyIiwiYWRkQ2xhc3MiLCJBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSIsIkZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFIiwiaW5wdXRIYW5kbGVyIiwiQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFIiwic2Nyb2xsSGFuZGxlciIsIlNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSIsInNlbGVjdGlvbkNoYW5nZUhhbmRsZXIiLCJjdXJyZW50VGFyZ2V0IiwiYWN0aXZlRWxlbWVudCIsImRvbUVsZW1lbnQiLCJnZXRET01FbGVtZW50IiwiY29udGVudCIsImdldENvbnRlbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwic2VsZWN0aW9uQ2hhbmdlZCIsImhhc1NlbGVjdGlvbkNoYW5nZWQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJwcmV2aW91c0NvbnRlbnQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzQ29udGVudCIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNSZWFkT25seSIsInJlYWRPbmx5IiwiaGFzQ2xhc3MiLCJ2YWx1ZSIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50IiwiZ2V0UHJldmlvdXNDb250ZW50IiwiY29udGVudFByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uUHJldmlvdXNTZWxlY3Rpb24iLCJpc0VxdWFsVG8iLCJzZXRSZWFkT25seSIsIk9iamVjdCIsImFzc2lnbiIsInNldENvbnRlbnQiLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiYWN0aXZhdGUiLCJmb2N1cyIsImRlYWN0aXZhdGUiLCJyZW1vdmVDbGFzcyIsIkRFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUiLCJnZXRTdGF0ZSIsInVwZGF0ZVN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwic2V0U3RhdGUiLCJkaWRNb3VudCIsIm9uRXZlbnQiLCJkb2N1bWVudCIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwid2lsbFVubW91bnQiLCJvZmZFdmVudCIsIm9mZlNlbGVjdGlvbkNoYW5nZSIsImluaXRpYWxpc2UiLCJmcm9tQ2xhc3MiLCJDbGFzcyIsInByb3BlcnRpZXMiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJFbGVtZW50IiwicmljaFRleHRhcmVhIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiY3VzdG9tRXZlbnRNaXhpbnMiLCJmdW5jIiwi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
454
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBjdXN0b21FdmVudE1peGlucyBmcm9tIFwiLi9taXhpbnMvY3VzdG9tRXZlbnRcIjtcclxuXHJcbmltcG9ydCB7IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSxcclxuICAgICAgICAgQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIERFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUgfSBmcm9tIFwiLi9jdXN0b21FdmVudFR5cGVzXCI7XHJcblxyXG5jb25zdCB7IEJMVVJfRVZFTlRfVFlQRSwgRk9DVVNfRVZFTlRfVFlQRSwgSU5QVVRfRVZFTlRfVFlQRSwgU0NST0xMX0VWRU5UX1RZUEUgfSA9IGV2ZW50VHlwZXM7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSaWNoVGV4dGFyZWEgZXh0ZW5kcyBFbGVtZW50IHtcclxuICBzZWxlY3Rpb25DaGFuZ2VIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCB9ID0gZXZlbnQsXHJcbiAgICAgICAgICB7IGFjdGl2ZUVsZW1lbnQgfSA9IGN1cnJlbnRUYXJnZXQsXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQgIT09IGRvbUVsZW1lbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGVsZW1lbnQgPSB0aGlzOyAvLy9cclxuXHJcbiAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBDSEFOR0VfQ1VTVE9NX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBmb3JjZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuY3VzdG9tSGFuZGxlcihjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgaW5wdXRIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmN1c3RvbUhhbmRsZXIoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGRlZmVyKCgpID0+IHtcclxuICAgICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgICAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSxcclxuICAgICAgICAgICAgICBldmVudCA9IG51bGwsXHJcbiAgICAgICAgICAgICAgZWxlbWVudCA9IHRoaXMsXHJcbiAgICAgICAgICAgICAgZm9yY2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGZvcmNlZCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgICBmb3JjZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGZvcmNlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmlzQWN0aXZlKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBmb3JjZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuY3VzdG9tSGFuZGxlcihjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBmb3JjZWQpO1xyXG4gIH1cclxuXHJcbiAgY3VzdG9tSGFuZGxlciA9IChjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50LCBmb3JjZWQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xyXG5cclxuICAgIGlmIChmb3JjZWQgfHwgY29udGVudENoYW5nZWQgfHwgc2VsZWN0aW9uQ2hhbmdlZCkge1xyXG4gICAgICB0aGlzLmNhbGxDdXN0b21IYW5kbGVycyhjdXN0b21FdmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc1JlYWRPbmx5KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyByZWFkT25seSB9ID0gZG9tRWxlbWVudDtcclxuXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnRQcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCA9PT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gIWNvbnRlbnRQcmV2aW91c0NvbnRlbnQ7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRDaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRXF1YWxUbyhwcmV2aW91c1NlbGVjdGlvbiksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gIXNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHJlYWRPbmx5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudCwgc2V0UHJldmlvdXNDb250ZW50ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNDb250ZW50KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBkb21FbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xyXG5cclxuICAgIGlmIChzZXRQcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmICghYWN0aXZlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IERFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBldmVudCA9IG51bGwsXHJcbiAgICAgICAgICBlbGVtZW50ID0gdGhpcyxcclxuICAgICAgICAgIGZvcmNlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21IYW5kbGVyKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQsIGZvcmNlZCk7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c0NvbnRlbnQoKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzQ29udGVudCB9ID0gdGhpcy5nZXRTdGF0ZSgpO1xyXG5cclxuICAgIHJldHVybiBwcmV2aW91c0NvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IHsgcHJldmlvdXNTZWxlY3Rpb24gfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgcHJldmlvdXNDb250ZW50ID0gbnVsbCxcclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gbnVsbDtcclxuXHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcblxyXG4gICAgdGhpcy5vbkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbkV2ZW50KEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uRXZlbnQoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub25FdmVudChTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyKTtcclxuXHJcbiAgICBkb2N1bWVudC5vblNlbGVjdGlvbkNoYW5nZSh0aGlzLnNlbGVjdGlvbkNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgd2lsbFVubW91bnQoKSB7XHJcbiAgICB0aGlzLm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyKTtcclxuXHJcbiAgICBkb2N1bWVudC5vZmZTZWxlY3Rpb25DaGFuZ2UodGhpcy5zZWxlY3Rpb25DaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG5cclxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IHJpY2hUZXh0YXJlYSA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xyXG5cclxuICAgIHJldHVybiByaWNoVGV4dGFyZWE7XHJcbiAgfVxyXG59XHJcblxyXG5PYmplY3QuYXNzaWduKFJpY2hUZXh0YXJlYS5wcm90b3R5cGUsIGN1c3RvbUV2ZW50TWl4aW5zKTtcclxuXHJcbmZ1bmN0aW9uIGRlZmVyKGZ1bmMpIHtcclxuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSaWNoVGV4dGFyZWEiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiRk9DVVNfRVZFTlRfVFlQRSIsIklOUFVUX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsInNlbGVjdGlvbkNoYW5nZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJhY3RpdmUiLCJpc0FjdGl2ZSIsImN1cnJlbnRUYXJnZXQiLCJhY3RpdmVFbGVtZW50IiwiZG9tRWxlbWVudCIsImdldERPTUVsZW1lbnQiLCJjdXN0b21FdmVudFR5cGUiLCJDSEFOR0VfQ1VTVE9NX0VWRU5UX1RZUEUiLCJjdXN0b21IYW5kbGVyIiwic2Nyb2xsSGFuZGxlciIsIlNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSIsImZvcmNlZCIsImlucHV0SGFuZGxlciIsImZvY3VzSGFuZGxlciIsImRlZmVyIiwiYWRkQ2xhc3MiLCJBQ1RJVkFURV9DVVNUT01fRVZFTlRfVFlQRSIsIkZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFIiwiYmx1ckhhbmRsZXIiLCJCTFVSX0NVU1RPTV9FVkVOVF9UWVBFIiwiY29udGVudCIsImdldENvbnRlbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwic2VsZWN0aW9uQ2hhbmdlZCIsImhhc1NlbGVjdGlvbkNoYW5nZWQiLCJjYWxsQ3VzdG9tSGFuZGxlcnMiLCJwcmV2aW91c0NvbnRlbnQiLCJwcmV2aW91c1NlbGVjdGlvbiIsInNldFByZXZpb3VzQ29udGVudCIsInNldFByZXZpb3VzU2VsZWN0aW9uIiwiaXNSZWFkT25seSIsInJlYWRPbmx5IiwiaGFzQ2xhc3MiLCJ2YWx1ZSIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50IiwiZ2V0UHJldmlvdXNDb250ZW50IiwiY29udGVudFByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uUHJldmlvdXNTZWxlY3Rpb24iLCJpc0VxdWFsVG8iLCJzZXRSZWFkT25seSIsIk9iamVjdCIsImFzc2lnbiIsInNldENvbnRlbnQiLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiYWN0aXZhdGUiLCJmb2N1cyIsImRlYWN0aXZhdGUiLCJyZW1vdmVDbGFzcyIsIkRFQUNUSVZBVEVfQ1VTVE9NX0VWRU5UX1RZUEUiLCJnZXRTdGF0ZSIsInVwZGF0ZVN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwic2V0U3RhdGUiLCJkaWRNb3VudCIsIm9uRXZlbnQiLCJkb2N1bWVudCIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwid2lsbFVubW91bnQiLCJvZmZFdmVudCIsIm9mZlNlbGVjdGlvbkNoYW5nZSIsImluaXRpYWxpc2UiLCJmcm9tQ2xhc3MiLCJDbGFzcyIsInByb3BlcnRpZXMiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJFbGVtZW50IiwicmljaFRleHRhcmVhIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiY3VzdG9tRXZlbnRNaXhpbnMiLCJmdW5jIiwi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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": "4.0.202",
4
+ "version": "4.0.206",
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.",
@@ -6,12 +6,3 @@ export const SCROLL_CUSTOM_EVENT_TYPE = "scroll";
6
6
  export const CHANGE_CUSTOM_EVENT_TYPE = "change";
7
7
  export const ACTIVATE_CUSTOM_EVENT_TYPE = "activate";
8
8
  export const DEACTIVATE_CUSTOM_EVENT_TYPE = "deactivate";
9
-
10
- export default {
11
- BLUR_CUSTOM_EVENT_TYPE,
12
- FOCUS_CUSTOM_EVENT_TYPE,
13
- SCROLL_CUSTOM_EVENT_TYPE,
14
- CHANGE_CUSTOM_EVENT_TYPE,
15
- ACTIVATE_CUSTOM_EVENT_TYPE,
16
- DEACTIVATE_CUSTOM_EVENT_TYPE
17
- };
@@ -15,19 +15,53 @@ import { BLUR_CUSTOM_EVENT_TYPE,
15
15
  const { BLUR_EVENT_TYPE, FOCUS_EVENT_TYPE, INPUT_EVENT_TYPE, SCROLL_EVENT_TYPE } = eventTypes;
16
16
 
17
17
  export default class RichTextarea extends Element {
18
- blurHandler = (event, element) => {
18
+ selectionChangeHandler = (event, element) => {
19
19
  const active = this.isActive();
20
20
 
21
21
  if (!active) {
22
22
  return;
23
23
  }
24
24
 
25
- const customEventType = BLUR_CUSTOM_EVENT_TYPE,
25
+ const { currentTarget } = event,
26
+ { activeElement } = currentTarget,
27
+ domElement = this.getDOMElement();
28
+
29
+ if (activeElement !== domElement) {
30
+ return;
31
+ }
32
+
33
+ element = this; ///
34
+
35
+ const customEventType = CHANGE_CUSTOM_EVENT_TYPE;
36
+
37
+ this.customHandler(customEventType, event, element);
38
+ }
39
+
40
+ scrollHandler = (event, element) => {
41
+ const active = this.isActive();
42
+
43
+ if (!active) {
44
+ return;
45
+ }
46
+
47
+ const customEventType = SCROLL_CUSTOM_EVENT_TYPE,
26
48
  forced = true;
27
49
 
28
50
  this.customHandler(customEventType, event, element, forced);
29
51
  }
30
52
 
53
+ inputHandler = (event, element) => {
54
+ const active = this.isActive();
55
+
56
+ if (!active) {
57
+ return;
58
+ }
59
+
60
+ const customEventType = CHANGE_CUSTOM_EVENT_TYPE;
61
+
62
+ this.customHandler(customEventType, event, element);
63
+ }
64
+
31
65
  focusHandler = (event, element) => {
32
66
  defer(() => {
33
67
  const active = this.isActive();
@@ -50,53 +84,19 @@ export default class RichTextarea extends Element {
50
84
  });
51
85
  }
52
86
 
53
- inputHandler = (event, element) => {
54
- const active = this.isActive();
55
-
56
- if (!active) {
57
- return;
58
- }
59
-
60
- const customEventType = CHANGE_CUSTOM_EVENT_TYPE;
61
-
62
- this.customHandler(customEventType, event, element);
63
- }
64
-
65
- scrollHandler = (event, element) => {
87
+ blurHandler = (event, element) => {
66
88
  const active = this.isActive();
67
89
 
68
90
  if (!active) {
69
91
  return;
70
92
  }
71
93
 
72
- const customEventType = SCROLL_CUSTOM_EVENT_TYPE,
94
+ const customEventType = BLUR_CUSTOM_EVENT_TYPE,
73
95
  forced = true;
74
96
 
75
97
  this.customHandler(customEventType, event, element, forced);
76
98
  }
77
99
 
78
- selectionChangeHandler = (event, element) => {
79
- const active = this.isActive();
80
-
81
- if (!active) {
82
- return;
83
- }
84
-
85
- const { currentTarget } = event,
86
- { activeElement } = currentTarget,
87
- domElement = this.getDOMElement();
88
-
89
- if (activeElement !== domElement) {
90
- return;
91
- }
92
-
93
- element = this; ///
94
-
95
- const customEventType = CHANGE_CUSTOM_EVENT_TYPE;
96
-
97
- this.customHandler(customEventType, event, element);
98
- }
99
-
100
100
  customHandler = (customEventType, event, element, forced = false) => {
101
101
  const content = this.getContent(),
102
102
  selection = this.getSelection(),