easy-richtextarea 3.0.123 → 3.0.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/example.js +505 -82
- package/lib/richTextarea.js +54 -82
- package/package.json +2 -2
- package/src/richTextarea.js +76 -76
package/lib/richTextarea.js
CHANGED
|
@@ -204,7 +204,59 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
|
|
|
204
204
|
var _super = _createSuper(RichTextarea);
|
|
205
205
|
function RichTextarea() {
|
|
206
206
|
_classCallCheck(this, RichTextarea);
|
|
207
|
-
|
|
207
|
+
var _this;
|
|
208
|
+
_this = _super.apply(this, arguments);
|
|
209
|
+
_defineProperty(_assertThisInitialized(_this), "intermediateHandler", function(event, element, eventType, forced) {
|
|
210
|
+
var changed = _this.hasChanged();
|
|
211
|
+
if (changed || forced) {
|
|
212
|
+
_this.callHandlers(eventType, event, element);
|
|
213
|
+
}
|
|
214
|
+
var content = _this.getContent(), selection = _this.getSelection(), previousContent = content, previousSelection = selection; ///
|
|
215
|
+
_this.setPreviousContent(previousContent);
|
|
216
|
+
_this.setPreviousSelection(previousSelection);
|
|
217
|
+
});
|
|
218
|
+
_defineProperty(_assertThisInitialized(_this), "mouseUpHandler", function(event, element) {
|
|
219
|
+
var mouseDown = false;
|
|
220
|
+
_this.setMouseDown(mouseDown);
|
|
221
|
+
});
|
|
222
|
+
_defineProperty(_assertThisInitialized(_this), "mouseDownHandler", function(event, element) {
|
|
223
|
+
var forced = false, mouseDown = true, eventType = CHANGE_EVENT_TYPE;
|
|
224
|
+
_this.setMouseDown(mouseDown);
|
|
225
|
+
defer(function() {
|
|
226
|
+
return _this.intermediateHandler(event, element, eventType, forced);
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
_defineProperty(_assertThisInitialized(_this), "mouseMoveHandler", function(event, element) {
|
|
230
|
+
var forced = false, mouseDown = _this.isMouseDown(), eventTYpe = CHANGE_EVENT_TYPE;
|
|
231
|
+
if (mouseDown) {
|
|
232
|
+
_this.intermediateHandler(event, element, eventTYpe, forced);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
_defineProperty(_assertThisInitialized(_this), "keyDownHandler", function(event, element) {
|
|
236
|
+
var forced = false, eventType = CHANGE_EVENT_TYPE;
|
|
237
|
+
defer(function() {
|
|
238
|
+
return _this.intermediateHandler(event, element, eventType, forced);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
_defineProperty(_assertThisInitialized(_this), "inputHandler", function(event, element) {
|
|
242
|
+
var forced = false, eventType = CHANGE_EVENT_TYPE;
|
|
243
|
+
_this.intermediateHandler(event, element, eventType, forced);
|
|
244
|
+
});
|
|
245
|
+
_defineProperty(_assertThisInitialized(_this), "scrollHandler", function(event, element) {
|
|
246
|
+
var eventType = SCROLL_EVENT_TYPE;
|
|
247
|
+
_this.callHandlers(eventType, event, element);
|
|
248
|
+
});
|
|
249
|
+
_defineProperty(_assertThisInitialized(_this), "focusHandler", function(event, element) {
|
|
250
|
+
var forced = true, eventType = FOCUS_EVENT_TYPE;
|
|
251
|
+
defer(function() {
|
|
252
|
+
return _this.intermediateHandler(event, element, eventType, forced);
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
_defineProperty(_assertThisInitialized(_this), "blurHandler", function(event, element) {
|
|
256
|
+
var forced = true, eventType = BLUR_EVENT_TYPE;
|
|
257
|
+
_this.intermediateHandler(event, element, eventType, forced);
|
|
258
|
+
});
|
|
259
|
+
return _this;
|
|
208
260
|
}
|
|
209
261
|
_createClass(RichTextarea, [
|
|
210
262
|
{
|
|
@@ -381,86 +433,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
|
|
|
381
433
|
this.removeEventListener(eventType, handler, element);
|
|
382
434
|
}
|
|
383
435
|
},
|
|
384
|
-
{
|
|
385
|
-
key: "mouseUpHandler",
|
|
386
|
-
value: function mouseUpHandler(event, element) {
|
|
387
|
-
var mouseDown = false;
|
|
388
|
-
this.setMouseDown(mouseDown);
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
key: "mouseDownHandler",
|
|
393
|
-
value: function mouseDownHandler(event, element) {
|
|
394
|
-
var _this = this;
|
|
395
|
-
var forced = false, mouseDown = true, eventType = CHANGE_EVENT_TYPE;
|
|
396
|
-
this.setMouseDown(mouseDown);
|
|
397
|
-
defer(function() {
|
|
398
|
-
return _this.intermediateHandler(event, element, eventType, forced);
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
key: "mouseMoveHandler",
|
|
404
|
-
value: function mouseMoveHandler(event, element) {
|
|
405
|
-
var forced = false, mouseDown = this.isMouseDown(), eventTYpe = CHANGE_EVENT_TYPE;
|
|
406
|
-
if (mouseDown) {
|
|
407
|
-
this.intermediateHandler(event, element, eventTYpe, forced);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
},
|
|
411
|
-
{
|
|
412
|
-
key: "keyDownHandler",
|
|
413
|
-
value: function keyDownHandler(event, element) {
|
|
414
|
-
var _this = this;
|
|
415
|
-
var forced = false, eventType = CHANGE_EVENT_TYPE;
|
|
416
|
-
defer(function() {
|
|
417
|
-
return _this.intermediateHandler(event, element, eventType, forced);
|
|
418
|
-
});
|
|
419
|
-
}
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
key: "inputHandler",
|
|
423
|
-
value: function inputHandler(event, element) {
|
|
424
|
-
var forced = false, eventType = CHANGE_EVENT_TYPE;
|
|
425
|
-
this.intermediateHandler(event, element, eventType, forced);
|
|
426
|
-
}
|
|
427
|
-
},
|
|
428
|
-
{
|
|
429
|
-
key: "scrollHandler",
|
|
430
|
-
value: function scrollHandler(event, element) {
|
|
431
|
-
var eventType = SCROLL_EVENT_TYPE;
|
|
432
|
-
this.callHandlers(eventType, event, element);
|
|
433
|
-
}
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
key: "focusHandler",
|
|
437
|
-
value: function focusHandler(event, element) {
|
|
438
|
-
var _this = this;
|
|
439
|
-
var forced = true, eventType = FOCUS_EVENT_TYPE;
|
|
440
|
-
defer(function() {
|
|
441
|
-
return _this.intermediateHandler(event, element, eventType, forced);
|
|
442
|
-
});
|
|
443
|
-
}
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
key: "blurHandler",
|
|
447
|
-
value: function blurHandler(event, element) {
|
|
448
|
-
var forced = true, eventType = BLUR_EVENT_TYPE;
|
|
449
|
-
this.intermediateHandler(event, element, eventType, forced);
|
|
450
|
-
}
|
|
451
|
-
},
|
|
452
|
-
{
|
|
453
|
-
key: "intermediateHandler",
|
|
454
|
-
value: function intermediateHandler(event, element, eventType, forced) {
|
|
455
|
-
var changed = this.hasChanged();
|
|
456
|
-
if (changed || forced) {
|
|
457
|
-
this.callHandlers(eventType, event, element);
|
|
458
|
-
}
|
|
459
|
-
var content = this.getContent(), selection = this.getSelection(), previousContent = content, previousSelection = selection; ///
|
|
460
|
-
this.setPreviousContent(previousContent);
|
|
461
|
-
this.setPreviousSelection(previousSelection);
|
|
462
|
-
}
|
|
463
|
-
},
|
|
464
436
|
{
|
|
465
437
|
key: "callHandlers",
|
|
466
438
|
value: function callHandlers(eventType) {
|
|
@@ -575,4 +547,4 @@ _defineProperty(RichTextarea, "defaultProperties", {
|
|
|
575
547
|
className: "rich"
|
|
576
548
|
});
|
|
577
549
|
|
|
578
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb25cIlxyXG5cclxuY29uc3QgeyBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRVVQX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRU1PVkVfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmNvbnN0IGRlZmVyID0gKGZ1bmMpID0+IHNldFRpbWVvdXQoZnVuYywgMCk7IC8vL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmljaFRleHRhcmVhIGV4dGVuZHMgRWxlbWVudCB7XHJcbiAgaXNBY3RpdmUoKSB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmhhc0NsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIHJldHVybiBhY3RpdmU7XHJcbiAgfVxyXG5cclxuICBpc1JlYWRPbmx5KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyByZWFkT25seSB9ID0gZG9tRWxlbWVudDtcclxuICAgIFxyXG4gICAgcmV0dXJuIHJlYWRPbmx5OyBcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHJlYWRPbmx5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbikge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRTdGFydFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbmRQb3NpdGlvbiA9IHNlbGVjdGlvbi5nZXRFbmRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBzZWxlY3Rpb25FbmQgPSBzZWxlY3Rpb25FbmRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb24sICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBPYmplY3QuYXNzaWduKGRvbUVsZW1lbnQsIHtcclxuICAgICAgc2VsZWN0aW9uU3RhcnQsXHJcbiAgICAgIHNlbGVjdGlvbkVuZFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgfVxyXG5cclxuICBpc01vdXNlRG93bigpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBtb3VzZURvd24gfSA9IHN0YXRlO1xyXG5cclxuICAgIHJldHVybiBtb3VzZURvd247XHJcbiAgfVxyXG5cclxuICBoYXNDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudENoYW5nZWQgPSB0aGlzLmhhc0NvbnRlbnRDaGFuZ2VkKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gdGhpcy5oYXNTZWxlY3Rpb25DaGFuZ2VkKCksXHJcbiAgICAgICAgICBjaGFuZ2VkID0gKGNvbnRlbnRDaGFuZ2VkIHx8IHNlbGVjdGlvbkNoYW5nZWQpO1xyXG5cclxuICAgIHJldHVybiBjaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzQ29udGVudENoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSB0aGlzLmdldFByZXZpb3VzQ29udGVudCgpLFxyXG4gICAgICAgICAgY29udGVudERpZmZlcmVudFRvUHJldmlvdXNDb250ZW50ID0gKGNvbnRlbnQgIT09IHByZXZpb3VzQ29udGVudCksXHJcbiAgICAgICAgICBjb250ZW50Q2hhbmdlZCA9IGNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudDsgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRDaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb24uaXNEaWZmZXJlbnRUbyhwcmV2aW91c1NlbGVjdGlvbiksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gc2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgd2luZG93Lm9uKGAke0JMVVJfRVZFTlRfVFlQRX0gJHtNT1VTRVVQX0VWRU5UX1RZUEV9ICR7Q09OVEVYVE1FTlVfRVZFTlRfVFlQRX1gLCB0aGlzLm1vdXNlVXBIYW5kbGVyLCB0aGlzKTsgLy8vXHJcblxyXG4gICAgdGhpcy5vbihNT1VTRURPV05fRVZFTlRfVFlQRSwgdGhpcy5tb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKE1PVVNFTU9WRV9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oS0VZRE9XTl9FVkVOVF9UWVBFLCB0aGlzLmtleURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub24oQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLmFkZENsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZGVhY3RpdmF0ZSgpIHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcblxyXG4gICAgd2luZG93Lm9mZihgJHtCTFVSX0VWRU5UX1RZUEV9ICR7TU9VU0VVUF9FVkVOVF9UWVBFfSAke0NPTlRFWFRNRU5VX0VWRU5UX1RZUEV9YCwgdGhpcy5tb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xyXG5cclxuICAgIHRoaXMub2ZmKE1PVVNFRE9XTl9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlRG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKE1PVVNFTU9WRV9FVkVOVF9UWVBFLCB0aGlzLm1vdXNlTW92ZUhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihCTFVSX0VWRU5UX1RZUEUsIHRoaXMuYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmQmx1cihibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGJsdXJIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZGb2N1cyhibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25TY3JvbGwoc2Nyb2xsSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gU0NST0xMX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gc2Nyb2xsSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IHNjcm9sbEhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IGNoYW5nZUhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkNoYW5nZShjaGFuZ2VIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBjaGFuZ2VIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZVVwSGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5zZXRNb3VzZURvd24obW91c2VEb3duKTtcclxuICB9O1xyXG5cclxuICBtb3VzZURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIG1vdXNlRG93biA9IHRydWUsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTW92ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgICAgbW91c2VEb3duID0gdGhpcy5pc01vdXNlRG93bigpLFxyXG4gICAgICAgICAgZXZlbnRUWXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgaWYgKG1vdXNlRG93bikge1xyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VFlwZSwgZm9yY2VkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGtleURvd25IYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSBmYWxzZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgICAgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBkZWZlcigoKSA9PiB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKSk7XHJcbiAgfVxyXG5cclxuICBibHVySGFuZGxlcihldmVudCwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZm9yY2VkID0gdHJ1ZSxcclxuICAgICAgICAgIGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIGludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKSB7XHJcbiAgICBjb25zdCBjaGFuZ2VkID0gdGhpcy5oYXNDaGFuZ2VkKCk7XHJcblxyXG4gICAgaWYgKGNoYW5nZWQgfHwgZm9yY2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGNhbGxIYW5kbGVycyhldmVudFR5cGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xyXG4gICAgY29uc3QgZXZlbnRMaXN0ZW5lcnMgPSB0aGlzLmZpbmRFdmVudExpc3RlbmVycyhldmVudFR5cGUpO1xyXG5cclxuICAgIGV2ZW50TGlzdGVuZXJzLmZvckVhY2goKGV2ZW50TGlzdGVuZXIpID0+IHtcclxuICAgICAgY29uc3QgeyBoYW5kbGVyLCBlbGVtZW50OiBoYW5kbGVyRWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcixcclxuICAgICAgICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xyXG5cclxuICAgICAgaWYgKChoYW5kbGVyICE9PSB0aGlzLmJsdXJIYW5kbGVyKSAmJiAoaGFuZGxlciAhPT0gdGhpcy5mb2N1c0hhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLnNjcm9sbEhhbmRsZXIpKSB7XHJcbiAgICAgICAgaGFuZGxlci5jYWxsKGhhbmRsZXJFbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzQ29udGVudCgpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHN0YXRlO1xyXG5cclxuICAgIHJldHVybiBwcmV2aW91c0NvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRQcmV2aW91c1NlbGVjdGlvbigpIHtcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXRTdGF0ZSgpLFxyXG4gICAgICAgICAgeyBwcmV2aW91c1NlbGVjdGlvbiB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0TW91c2VEb3duKG1vdXNlRG93bikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93blxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNDb250ZW50XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0SW5pdGlhbFN0YXRlKCkge1xyXG4gICAgY29uc3QgbW91c2VEb3duID0gZmFsc2UsXHJcbiAgICAgICAgICBwcmV2aW91c0NvbnRlbnQgPSBudWxsLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBtb3VzZURvd24sXHJcbiAgICAgIHByZXZpb3VzQ29udGVudCxcclxuICAgICAgcHJldmlvdXNTZWxlY3Rpb25cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGFjdGl2ZSwgb25DaGFuZ2UsIG9uU2Nyb2xsLCBvbkZvY3VzLCBvbkJsdXIgfSA9IHRoaXMucHJvcGVydGllcyxcclxuICAgICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IG9uU2Nyb2xsLCAvLy9cclxuICAgICAgICAgICAgZm9jdXNIYW5kbGVyID0gb25Gb2N1cywgLy8vXHJcbiAgICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub25DaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub25TY3JvbGwoc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9uQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3aWxsVW5tb3VudCgpIHtcclxuICAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uU2Nyb2xsLCBvbkZvY3VzLCBvbkJsdXIgfSA9IHRoaXMucHJvcGVydGllcyxcclxuICAgICAgICAgIGNoYW5nZUhhbmRsZXIgPSBvbkNoYW5nZSwgLy8vXHJcbiAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgZm9jdXNIYW5kbGVyID0gb25Gb2N1cywgLy8vXHJcbiAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1cjsgLy8vXHJcblxyXG4gICAgY2hhbmdlSGFuZGxlciAmJiB0aGlzLm9mZkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vZmZTY3JvbGwoc2Nyb2xsSGFuZGxlciwgdGhpcyk7XHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vZmZGb2N1cyhmb2N1c0hhbmRsZXIsIHRoaXMpO1xyXG4gICAgYmx1ckhhbmRsZXIgJiYgdGhpcy5vZmZCbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcclxuICAgIFwib25DaGFuZ2VcIixcclxuICAgIFwib25TY3JvbGxcIixcclxuICAgIFwib25Gb2N1c1wiLFxyXG4gICAgXCJvbkJsdXJcIixcclxuICAgIFwiYWN0aXZlXCJcclxuICBdO1xyXG5cclxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XHJcbiAgICBjbGFzc05hbWU6IFwicmljaFwiXHJcbiAgfTtcclxufVxyXG4iLCJSZWFjdC5jcmVhdGVFbGVtZW50Il0sIm5hbWVzIjpbIlJpY2hUZXh0YXJlYSIsIkJMVVJfRVZFTlRfVFlQRSIsImV2ZW50VHlwZXMiLCJJTlBVVF9FVkVOVF9UWVBFIiwiRk9DVVNfRVZFTlRfVFlQRSIsIkNIQU5HRV9FVkVOVF9UWVBFIiwiU0NST0xMX0VWRU5UX1RZUEUiLCJLRVlET1dOX0VWRU5UX1RZUEUiLCJNT1VTRVVQX0VWRU5UX1RZUEUiLCJNT1VTRURPV05fRVZFTlRfVFlQRSIsIk1PVVNFTU9WRV9FVkVOVF9UWVBFIiwiQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSIsImRlZmVyIiwiZnVuYyIsInNldFRpbWVvdXQiLCJpc0FjdGl2ZSIsImFjdGl2ZSIsImhhc0NsYXNzIiwiaXNSZWFkT25seSIsImRvbUVsZW1lbnQiLCJnZXRET01FbGVtZW50IiwicmVhZE9ubHkiLCJnZXRDb250ZW50IiwidmFsdWUiLCJjb250ZW50IiwiZ2V0U2VsZWN0aW9uIiwic2VsZWN0aW9uIiwiU2VsZWN0aW9uIiwiZnJvbURPTUVsZW1lbnQiLCJzZXRSZWFkT25seSIsIk9iamVjdCIsImFzc2lnbiIsInNldENvbnRlbnQiLCJwcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInByZXZpb3VzU2VsZWN0aW9uIiwic2V0UHJldmlvdXNTZWxlY3Rpb24iLCJpc01vdXNlRG93biIsInN0YXRlIiwiZ2V0U3RhdGUiLCJtb3VzZURvd24iLCJoYXNDaGFuZ2VkIiwiY29udGVudENoYW5nZWQiLCJoYXNDb250ZW50Q2hhbmdlZCIsInNlbGVjdGlvbkNoYW5nZWQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY2hhbmdlZCIsImdldFByZXZpb3VzQ29udGVudCIsImNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiIsImlzRGlmZmVyZW50VG8iLCJhY3RpdmF0ZSIsInNldE1vdXNlRG93biIsIndpbmRvdyIsIm9uIiwibW91c2VVcEhhbmRsZXIiLCJtb3VzZURvd25IYW5kbGVyIiwibW91c2VNb3ZlSGFuZGxlciIsImtleURvd25IYW5kbGVyIiwiaW5wdXRIYW5kbGVyIiwic2Nyb2xsSGFuZGxlciIsImZvY3VzSGFuZGxlciIsImJsdXJIYW5kbGVyIiwiYWRkQ2xhc3MiLCJkZWFjdGl2YXRlIiwib2ZmIiwicmVtb3ZlQ2xhc3MiLCJvbkJsdXIiLCJlbGVtZW50IiwiZXZlbnRUeXBlIiwiaGFuZGxlciIsImFkZEV2ZW50TGlzdGVuZXIiLCJvZmZCbHVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uRm9jdXMiLCJvZmZGb2N1cyIsIm9uU2Nyb2xsIiwib2ZmU2Nyb2xsIiwib25DaGFuZ2UiLCJjaGFuZ2VIYW5kbGVyIiwib2ZmQ2hhbmdlIiwiZXZlbnQiLCJmb3JjZWQiLCJpbnRlcm1lZGlhdGVIYW5kbGVyIiwiZXZlbnRUWXBlIiwiY2FsbEhhbmRsZXJzIiwicmVtYWluaW5nQXJndW1lbnRzIiwiZXZlbnRMaXN0ZW5lcnMiLCJmaW5kRXZlbnRMaXN0ZW5lcnMiLCJmb3JFYWNoIiwiZXZlbnRMaXN0ZW5lciIsImhhbmRsZXJFbGVtZW50IiwiY2FsbCIsInVwZGF0ZVN0YXRlIiwic2V0SW5pdGlhbFN0YXRlIiwic2V0U3RhdGUiLCJkaWRNb3VudCIsInByb3BlcnRpZXMiLCJ3aWxsVW5tb3VudCIsImluaXRpYWxpc2UiLCJFbGVtZW50IiwidGFnTmFtZSIsImlnbm9yZWRQcm9wZXJ0aWVzIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7OztlQW1CUUEsWUFBWTs7O29CQWpCVyxNQUFNOzhEQUU1QixhQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBUUMsZUFBZSxHQVNhQyxLQUFVLFdBQUEsQ0FUdENELGVBQWUsRUFDZEUsZ0JBQWdCLEdBUVdELEtBQVUsV0FBQSxDQVJyQ0MsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsR0FPV0YsS0FBVSxXQUFBLENBUHJDRSxnQkFBZ0IsRUFDaEJDLGlCQUFpQixHQU1VSCxLQUFVLFdBQUEsQ0FOckNHLGlCQUFpQixFQUNqQkMsaUJBQWlCLEdB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
|
|
550
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiLCI8PGpzeC1jb25maWctcHJhZ21hLmpzPj4iXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyB3aW5kb3csIEVsZW1lbnQsIGV2ZW50VHlwZXMgfSBmcm9tIFwiZWFzeVwiO1xyXG5cclxuaW1wb3J0IFNlbGVjdGlvbiBmcm9tIFwiLi9zZWxlY3Rpb25cIlxyXG5cclxuY29uc3QgeyBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIElOUFVUX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIENIQU5HRV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgS0VZRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRVVQX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgIE1PVVNFRE9XTl9FVkVOVF9UWVBFLFxyXG4gICAgICAgICBNT1VTRU1PVkVfRVZFTlRfVFlQRSxcclxuICAgICAgICAgQ09OVEVYVE1FTlVfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmNvbnN0IGRlZmVyID0gKGZ1bmMpID0+IHNldFRpbWVvdXQoZnVuYywgMCk7IC8vL1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmljaFRleHRhcmVhIGV4dGVuZHMgRWxlbWVudCB7XHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpID0+IHtcclxuICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmhhc0NoYW5nZWQoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlZCB8fCBmb3JjZWQpIHtcclxuICAgICAgdGhpcy5jYWxsSGFuZGxlcnMoZXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgbW91c2VVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IG1vdXNlRG93biA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuc2V0TW91c2VEb3duKG1vdXNlRG93bik7XHJcbiAgfTtcclxuXHJcbiAgbW91c2VEb3duSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgbW91c2VEb3duID0gdHJ1ZSxcclxuICAgICAgICBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIG1vdXNlTW92ZUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgIG1vdXNlRG93biA9IHRoaXMuaXNNb3VzZURvd24oKSxcclxuICAgICAgICBldmVudFRZcGUgPSBDSEFOR0VfRVZFTlRfVFlQRTtcclxuXHJcbiAgICBpZiAobW91c2VEb3duKSB7XHJcbiAgICAgIHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUWXBlLCBmb3JjZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAga2V5RG93bkhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGZvcmNlZCA9IGZhbHNlLFxyXG4gICAgICAgIGV2ZW50VHlwZSA9IENIQU5HRV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gZmFsc2UsXHJcbiAgICAgICAgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEU7XHJcblxyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBldmVudFR5cGUsIGZvcmNlZCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmNhbGxIYW5kbGVycyhldmVudFR5cGUsIGV2ZW50LCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGZvY3VzSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgZm9yY2VkID0gdHJ1ZSxcclxuICAgICAgICBldmVudFR5cGUgPSBGT0NVU19FVkVOVF9UWVBFO1xyXG5cclxuICAgIGRlZmVyKCgpID0+IHRoaXMuaW50ZXJtZWRpYXRlSGFuZGxlcihldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlLCBmb3JjZWQpKTtcclxuICB9XHJcblxyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBmb3JjZWQgPSB0cnVlLFxyXG4gICAgICAgIGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgZm9yY2VkKTtcclxuICB9XHJcblxyXG4gIGlzQWN0aXZlKCkge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5oYXNDbGFzcyhcImFjdGl2ZVwiKTtcclxuXHJcbiAgICByZXR1cm4gYWN0aXZlO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkT25seSgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgcmVhZE9ubHkgfSA9IGRvbUVsZW1lbnQ7XHJcbiAgICBcclxuICAgIHJldHVybiByZWFkT25seTsgXHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyB2YWx1ZSB9ID0gZG9tRWxlbWVudCxcclxuICAgICAgICAgIGNvbnRlbnQgPSB2YWx1ZTsgIC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seShyZWFkT25seSkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICByZWFkT25seVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGlvbihzZWxlY3Rpb24pIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHNlbGVjdGlvblN0YXJ0LFxyXG4gICAgICBzZWxlY3Rpb25FbmRcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaXNNb3VzZURvd24oKSB7XHJcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0U3RhdGUoKSxcclxuICAgICAgICAgIHsgbW91c2VEb3duIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gbW91c2VEb3duO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgY2hhbmdlZCA9IChjb250ZW50Q2hhbmdlZCB8fCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuXHJcbiAgICByZXR1cm4gY2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCA9IChjb250ZW50ICE9PSBwcmV2aW91c0NvbnRlbnQpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSBjb250ZW50RGlmZmVyZW50VG9QcmV2aW91c0NvbnRlbnQ7IC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25EaWZmZXJlbnRUb1ByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRGlmZmVyZW50VG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHNlbGVjdGlvbkRpZmZlcmVudFRvUHJldmlvdXNTZWxlY3Rpb247IC8vL1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb25DaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vbihgJHtCTFVSX0VWRU5UX1RZUEV9ICR7TU9VU0VVUF9FVkVOVF9UWVBFfSAke0NPTlRFWFRNRU5VX0VWRU5UX1RZUEV9YCwgdGhpcy5tb3VzZVVwSGFuZGxlciwgdGhpcyk7IC8vL1xyXG5cclxuICAgIHRoaXMub24oTU9VU0VET1dOX0VWRU5UX1RZUEUsIHRoaXMubW91c2VEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEtFWURPV05fRVZFTlRfVFlQRSwgdGhpcy5rZXlEb3duSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vbihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9uKEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIGRlYWN0aXZhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLnNldE1vdXNlRG93bihtb3VzZURvd24pO1xyXG5cclxuICAgIHdpbmRvdy5vZmYoYCR7QkxVUl9FVkVOVF9UWVBFfSAke01PVVNFVVBfRVZFTlRfVFlQRX0gJHtDT05URVhUTUVOVV9FVkVOVF9UWVBFfWAsIHRoaXMubW91c2VVcEhhbmRsZXIsIHRoaXMpOyAvLy9cclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRURPV05fRVZFTlRfVFlQRSwgdGhpcy5tb3VzZURvd25IYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihNT1VTRU1PVkVfRVZFTlRfVFlQRSwgdGhpcy5tb3VzZU1vdmVIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihLRVlET1dOX0VWRU5UX1RZUEUsIHRoaXMua2V5RG93bkhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIHRoaXMub2ZmKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLm9mZihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgdGhpcy5vZmYoQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGJsdXJIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZkJsdXIoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEJMVVJfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhibHVySGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBibHVySGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgb2ZmRm9jdXMoYmx1ckhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gYmx1ckhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIGVsZW1lbnQpIHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgaGFuZGxlciA9IHNjcm9sbEhhbmRsZXI7ICAvLy9cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBoYW5kbGVyLCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIG9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBzY3JvbGxIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCBlbGVtZW50KSB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICAgIGhhbmRsZXIgPSBjaGFuZ2VIYW5kbGVyOyAgLy8vXHJcblxyXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgaGFuZGxlciwgZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBvZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgZWxlbWVudCkge1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBoYW5kbGVyID0gY2hhbmdlSGFuZGxlcjsgIC8vL1xyXG5cclxuICAgIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIGhhbmRsZXIsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XHJcbiAgICBjb25zdCBldmVudExpc3RlbmVycyA9IHRoaXMuZmluZEV2ZW50TGlzdGVuZXJzKGV2ZW50VHlwZSk7XHJcblxyXG4gICAgZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgoZXZlbnRMaXN0ZW5lcikgPT4ge1xyXG4gICAgICBjb25zdCB7IGhhbmRsZXIsIGVsZW1lbnQ6IGhhbmRsZXJFbGVtZW50IH0gPSBldmVudExpc3RlbmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICBpZiAoKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpICYmIChoYW5kbGVyICE9PSB0aGlzLmZvY3VzSGFuZGxlcikgJiYgKGhhbmRsZXIgIT09IHRoaXMuc2Nyb2xsSGFuZGxlcikpIHtcclxuICAgICAgICBoYW5kbGVyLmNhbGwoaGFuZGxlckVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgZWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzQ29udGVudCB9ID0gc3RhdGU7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzQ29udGVudDtcclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldFN0YXRlKCksXHJcbiAgICAgICAgICB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSBzdGF0ZTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNTZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRNb3VzZURvd24obW91c2VEb3duKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHtcclxuICAgICAgbW91c2VEb3duXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnRcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgIHRoaXMudXBkYXRlU3RhdGUoe1xyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBtb3VzZURvd24gPSBmYWxzZSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IG51bGwsXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IG51bGw7XHJcblxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIG1vdXNlRG93bixcclxuICAgICAgcHJldmlvdXNDb250ZW50LFxyXG4gICAgICBwcmV2aW91c1NlbGVjdGlvblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgYWN0aXZlLCBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2UsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgICAgYmx1ckhhbmRsZXIgPSBvbkJsdXI7IC8vL1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICAgIHNjcm9sbEhhbmRsZXIgJiYgdGhpcy5vblNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9uRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSwgb25TY3JvbGwsIG9uRm9jdXMsIG9uQmx1ciB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgY2hhbmdlSGFuZGxlciA9IG9uQ2hhbmdlLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIGJsdXJIYW5kbGVyID0gb25CbHVyOyAvLy9cclxuXHJcbiAgICBjaGFuZ2VIYW5kbGVyICYmIHRoaXMub2ZmQ2hhbmdlKGNoYW5nZUhhbmRsZXIsIHRoaXMpO1xyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9mZlNjcm9sbChzY3JvbGxIYW5kbGVyLCB0aGlzKTtcclxuICAgIGZvY3VzSGFuZGxlciAmJiB0aGlzLm9mZkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcbiAgICBibHVySGFuZGxlciAmJiB0aGlzLm9mZkJsdXIoYmx1ckhhbmRsZXIsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGlzZSgpIHtcclxuICAgIHRoaXMuc2V0SW5pdGlhbFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdGFnTmFtZSA9IFwidGV4dGFyZWFcIjtcclxuXHJcbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xyXG4gICAgXCJvbkNoYW5nZVwiLFxyXG4gICAgXCJvblNjcm9sbFwiLFxyXG4gICAgXCJvbkZvY3VzXCIsXHJcbiAgICBcIm9uQmx1clwiLFxyXG4gICAgXCJhY3RpdmVcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG59XHJcbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiUmljaFRleHRhcmVhIiwiQkxVUl9FVkVOVF9UWVBFIiwiZXZlbnRUeXBlcyIsIklOUFVUX0VWRU5UX1RZUEUiLCJGT0NVU19FVkVOVF9UWVBFIiwiQ0hBTkdFX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsIktFWURPV05fRVZFTlRfVFlQRSIsIk1PVVNFVVBfRVZFTlRfVFlQRSIsIk1PVVNFRE9XTl9FVkVOVF9UWVBFIiwiTU9VU0VNT1ZFX0VWRU5UX1RZUEUiLCJDT05URVhUTUVOVV9FVkVOVF9UWVBFIiwiZGVmZXIiLCJmdW5jIiwic2V0VGltZW91dCIsImludGVybWVkaWF0ZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJldmVudFR5cGUiLCJmb3JjZWQiLCJjaGFuZ2VkIiwiaGFzQ2hhbmdlZCIsImNhbGxIYW5kbGVycyIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2VsZWN0aW9uIiwiZ2V0U2VsZWN0aW9uIiwicHJldmlvdXNDb250ZW50IiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsIm1vdXNlVXBIYW5kbGVyIiwibW91c2VEb3duIiwic2V0TW91c2VEb3duIiwibW91c2VEb3duSGFuZGxlciIsIm1vdXNlTW92ZUhhbmRsZXIiLCJpc01vdXNlRG93biIsImV2ZW50VFlwZSIsImtleURvd25IYW5kbGVyIiwiaW5wdXRIYW5kbGVyIiwic2Nyb2xsSGFuZGxlciIsImZvY3VzSGFuZGxlciIsImJsdXJIYW5kbGVyIiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsImlzUmVhZE9ubHkiLCJkb21FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsInJlYWRPbmx5IiwidmFsdWUiLCJTZWxlY3Rpb24iLCJmcm9tRE9NRWxlbWVudCIsInNldFJlYWRPbmx5IiwiT2JqZWN0IiwiYXNzaWduIiwic2V0Q29udGVudCIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwic3RhdGUiLCJnZXRTdGF0ZSIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCIsImdldFByZXZpb3VzQ29udGVudCIsImNvbnRlbnREaWZmZXJlbnRUb1ByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uRGlmZmVyZW50VG9QcmV2aW91c1NlbGVjdGlvbiIsImlzRGlmZmVyZW50VG8iLCJhY3RpdmF0ZSIsIndpbmRvdyIsIm9uIiwiYWRkQ2xhc3MiLCJkZWFjdGl2YXRlIiwib2ZmIiwicmVtb3ZlQ2xhc3MiLCJvbkJsdXIiLCJoYW5kbGVyIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9mZkJsdXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25Gb2N1cyIsIm9mZkZvY3VzIiwib25TY3JvbGwiLCJvZmZTY3JvbGwiLCJvbkNoYW5nZSIsImNoYW5nZUhhbmRsZXIiLCJvZmZDaGFuZ2UiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJldmVudExpc3RlbmVycyIsImZpbmRFdmVudExpc3RlbmVycyIsImZvckVhY2giLCJldmVudExpc3RlbmVyIiwiaGFuZGxlckVsZW1lbnQiLCJjYWxsIiwidXBkYXRlU3RhdGUiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImRpZE1vdW50IiwicHJvcGVydGllcyIsIndpbGxVbm1vdW50IiwiaW5pdGlhbGlzZSIsIkVsZW1lbnQiLCJ0YWdOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJkZWZhdWx0UHJvcGVydGllcyIsImNsYXNzTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7O2VBbUJRQSxZQUFZOzs7b0JBakJXLE1BQU07OERBRTVCLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuQyxJQUFRQyxlQUFlLEdBU2FDLEtBQVUsV0FBQSxDQVR0Q0QsZUFBZSxFQUNkRSxnQkFBZ0IsR0FRV0QsS0FBVSxXQUFBLENBUnJDQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixHQU9XRixLQUFVLFdBQUEsQ0FQckNFLGdCQUFnQixFQUNoQkMsaUJBQWlCLEdBTVVILEtB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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.
|
|
4
|
+
"version": "3.0.127",
|
|
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.",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@swc/core": "^1.2.160",
|
|
17
|
-
"easy-with-style": "^3.0.
|
|
17
|
+
"easy-with-style": "^3.0.160",
|
|
18
18
|
"esbuild": "^0.9.2",
|
|
19
19
|
"express": "^4.17.1",
|
|
20
20
|
"lively-cli": "^2.0.34",
|
package/src/richTextarea.js
CHANGED
|
@@ -18,6 +18,82 @@ const { BLUR_EVENT_TYPE,
|
|
|
18
18
|
const defer = (func) => setTimeout(func, 0); ///
|
|
19
19
|
|
|
20
20
|
export default class RichTextarea extends Element {
|
|
21
|
+
intermediateHandler = (event, element, eventType, forced) => {
|
|
22
|
+
const changed = this.hasChanged();
|
|
23
|
+
|
|
24
|
+
if (changed || forced) {
|
|
25
|
+
this.callHandlers(eventType, event, element);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const content = this.getContent(),
|
|
29
|
+
selection = this.getSelection(),
|
|
30
|
+
previousContent = content, ///
|
|
31
|
+
previousSelection = selection; ///
|
|
32
|
+
|
|
33
|
+
this.setPreviousContent(previousContent);
|
|
34
|
+
this.setPreviousSelection(previousSelection);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
mouseUpHandler = (event, element) => {
|
|
38
|
+
const mouseDown = false;
|
|
39
|
+
|
|
40
|
+
this.setMouseDown(mouseDown);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
mouseDownHandler = (event, element) => {
|
|
44
|
+
const forced = false,
|
|
45
|
+
mouseDown = true,
|
|
46
|
+
eventType = CHANGE_EVENT_TYPE;
|
|
47
|
+
|
|
48
|
+
this.setMouseDown(mouseDown);
|
|
49
|
+
|
|
50
|
+
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
mouseMoveHandler = (event, element) => {
|
|
54
|
+
const forced = false,
|
|
55
|
+
mouseDown = this.isMouseDown(),
|
|
56
|
+
eventTYpe = CHANGE_EVENT_TYPE;
|
|
57
|
+
|
|
58
|
+
if (mouseDown) {
|
|
59
|
+
this.intermediateHandler(event, element, eventTYpe, forced);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
keyDownHandler = (event, element) => {
|
|
64
|
+
const forced = false,
|
|
65
|
+
eventType = CHANGE_EVENT_TYPE;
|
|
66
|
+
|
|
67
|
+
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
inputHandler = (event, element) => {
|
|
71
|
+
const forced = false,
|
|
72
|
+
eventType = CHANGE_EVENT_TYPE;
|
|
73
|
+
|
|
74
|
+
this.intermediateHandler(event, element, eventType, forced);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
scrollHandler = (event, element) => {
|
|
78
|
+
const eventType = SCROLL_EVENT_TYPE;
|
|
79
|
+
|
|
80
|
+
this.callHandlers(eventType, event, element);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
focusHandler = (event, element) => {
|
|
84
|
+
const forced = true,
|
|
85
|
+
eventType = FOCUS_EVENT_TYPE;
|
|
86
|
+
|
|
87
|
+
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
blurHandler = (event, element) => {
|
|
91
|
+
const forced = true,
|
|
92
|
+
eventType = BLUR_EVENT_TYPE;
|
|
93
|
+
|
|
94
|
+
this.intermediateHandler(event, element, eventType, forced);
|
|
95
|
+
}
|
|
96
|
+
|
|
21
97
|
isActive() {
|
|
22
98
|
const active = this.hasClass("active");
|
|
23
99
|
|
|
@@ -219,82 +295,6 @@ export default class RichTextarea extends Element {
|
|
|
219
295
|
this.removeEventListener(eventType, handler, element);
|
|
220
296
|
}
|
|
221
297
|
|
|
222
|
-
mouseUpHandler(event, element) {
|
|
223
|
-
const mouseDown = false;
|
|
224
|
-
|
|
225
|
-
this.setMouseDown(mouseDown);
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
mouseDownHandler(event, element) {
|
|
229
|
-
const forced = false,
|
|
230
|
-
mouseDown = true,
|
|
231
|
-
eventType = CHANGE_EVENT_TYPE;
|
|
232
|
-
|
|
233
|
-
this.setMouseDown(mouseDown);
|
|
234
|
-
|
|
235
|
-
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
mouseMoveHandler(event, element) {
|
|
239
|
-
const forced = false,
|
|
240
|
-
mouseDown = this.isMouseDown(),
|
|
241
|
-
eventTYpe = CHANGE_EVENT_TYPE;
|
|
242
|
-
|
|
243
|
-
if (mouseDown) {
|
|
244
|
-
this.intermediateHandler(event, element, eventTYpe, forced);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
keyDownHandler(event, element) {
|
|
249
|
-
const forced = false,
|
|
250
|
-
eventType = CHANGE_EVENT_TYPE;
|
|
251
|
-
|
|
252
|
-
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
inputHandler(event, element) {
|
|
256
|
-
const forced = false,
|
|
257
|
-
eventType = CHANGE_EVENT_TYPE;
|
|
258
|
-
|
|
259
|
-
this.intermediateHandler(event, element, eventType, forced);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
scrollHandler(event, element) {
|
|
263
|
-
const eventType = SCROLL_EVENT_TYPE;
|
|
264
|
-
|
|
265
|
-
this.callHandlers(eventType, event, element);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
focusHandler(event, element) {
|
|
269
|
-
const forced = true,
|
|
270
|
-
eventType = FOCUS_EVENT_TYPE;
|
|
271
|
-
|
|
272
|
-
defer(() => this.intermediateHandler(event, element, eventType, forced));
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
blurHandler(event, element) {
|
|
276
|
-
const forced = true,
|
|
277
|
-
eventType = BLUR_EVENT_TYPE;
|
|
278
|
-
|
|
279
|
-
this.intermediateHandler(event, element, eventType, forced);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
intermediateHandler(event, element, eventType, forced) {
|
|
283
|
-
const changed = this.hasChanged();
|
|
284
|
-
|
|
285
|
-
if (changed || forced) {
|
|
286
|
-
this.callHandlers(eventType, event, element);
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
const content = this.getContent(),
|
|
290
|
-
selection = this.getSelection(),
|
|
291
|
-
previousContent = content, ///
|
|
292
|
-
previousSelection = selection; ///
|
|
293
|
-
|
|
294
|
-
this.setPreviousContent(previousContent);
|
|
295
|
-
this.setPreviousSelection(previousSelection);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
298
|
callHandlers(eventType, ...remainingArguments) {
|
|
299
299
|
const eventListeners = this.findEventListeners(eventType);
|
|
300
300
|
|