easy-richtextarea 4.0.102 → 4.0.105

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.
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ BLUR_CUSTOM_EVENT_TYPE: function() {
13
+ return BLUR_CUSTOM_EVENT_TYPE;
14
+ },
15
+ CHANGE_CUSTOM_EVENT_TYPE: function() {
16
+ return CHANGE_CUSTOM_EVENT_TYPE;
17
+ },
18
+ FOCUS_CUSTOM_EVENT_TYPE: function() {
19
+ return FOCUS_CUSTOM_EVENT_TYPE;
20
+ },
21
+ SCROLL_CUSTOM_EVENT_TYPE: function() {
22
+ return SCROLL_CUSTOM_EVENT_TYPE;
23
+ }
24
+ });
25
+ var BLUR_CUSTOM_EVENT_TYPE = "blur-custom";
26
+ var FOCUS_CUSTOM_EVENT_TYPE = "focus-custom";
27
+ var SCROLL_CUSTOM_EVENT_TYPE = "scroll-custom";
28
+ var CHANGE_CUSTOM_EVENT_TYPE = "change-custom";
29
+
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jdXN0b21FdmVudFR5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgQkxVUl9DVVNUT01fRVZFTlRfVFlQRSA9IFwiYmx1ci1jdXN0b21cIjtcbmV4cG9ydCBjb25zdCBGT0NVU19DVVNUT01fRVZFTlRfVFlQRSA9IFwiZm9jdXMtY3VzdG9tXCI7XG5leHBvcnQgY29uc3QgU0NST0xMX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJzY3JvbGwtY3VzdG9tXCI7XG5leHBvcnQgY29uc3QgQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFID0gXCJjaGFuZ2UtY3VzdG9tXCI7XG4iXSwibmFtZXMiOlsiQkxVUl9DVVNUT01fRVZFTlRfVFlQRSIsIkNIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSIsIkZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFIiwiU0NST0xMX0NVU1RPTV9FVkVOVF9UWVBFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsc0JBQXNCO2VBQXRCQTs7SUFHQUMsd0JBQXdCO2VBQXhCQTs7SUFGQUMsdUJBQXVCO2VBQXZCQTs7SUFDQUMsd0JBQXdCO2VBQXhCQTs7O0FBRk4sSUFBTUgseUJBQXlCO0FBQy9CLElBQU1FLDBCQUEwQjtBQUNoQyxJQUFNQywyQkFBMkI7QUFDakMsSUFBTUYsMkJBQTJCIn0=
@@ -15,10 +15,10 @@ function _interop_require_default(obj) {
15
15
  };
16
16
  }
17
17
  var content = "", richTextarea = /*#__PURE__*/ React.createElement(_richTextarea.default, {
18
- onBlur: blurHandler,
19
- onFocus: focusHandler,
20
- onChange: changeHandler,
21
- onScroll: scrollHandler
18
+ onCustomBlur: customBlurHandler,
19
+ onCustomFocus: customFocusHandler,
20
+ onCustomScroll: customScrollHandler,
21
+ onCustomChange: customChangeHandler
22
22
  });
23
23
  richTextarea.setContent(content);
24
24
  richTextarea.activate();
@@ -28,19 +28,19 @@ var View = function(properties) {
28
28
  }, richTextarea);
29
29
  };
30
30
  var _default = View;
31
- function blurHandler(event, element) {
31
+ function customBlurHandler(event, element) {
32
32
  console.log("blur");
33
33
  }
34
- function focusHandler(event, element) {
34
+ function customFocusHandler(event, element) {
35
35
  console.log("focus");
36
36
  }
37
- function changeHandler(event, element) {
38
- var contentChanged = richTextarea.hasContentChanged(), selectionChanged = richTextarea.hasSelectionChanged();
39
- console.log(contentChanged, selectionChanged);
40
- }
41
- function scrollHandler(event, element) {
37
+ function customScrollHandler(event, element) {
42
38
  var scrollTop = richTextarea.getScrollTop(), scrollLeft = richTextarea.getScrollLeft();
43
39
  console.log(scrollTop, scrollLeft);
44
40
  }
41
+ function customChangeHandler(event, element) {
42
+ var contentChanged = richTextarea.hasContentChanged(), selectionChanged = richTextarea.hasSelectionChanged();
43
+ console.log(contentChanged, selectionChanged);
44
+ }
45
45
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IGNvbnRlbnQgPSBcIlwiLFxuICAgICAgcmljaFRleHRhcmVhID1cblxuICAgICAgICA8UmljaFRleHRhcmVhIG9uQmx1cj17Ymx1ckhhbmRsZXJ9IG9uRm9jdXM9e2ZvY3VzSGFuZGxlcn0gb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IG9uU2Nyb2xsPXtzY3JvbGxIYW5kbGVyfSAvPlxuXG4gICAgICA7XG5cbnJpY2hUZXh0YXJlYS5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG5yaWNoVGV4dGFyZWEuYWN0aXZhdGUoKTtcblxuY29uc3QgVmlldyA9IChwcm9wZXJ0aWVzKSA9PlxuXG4gIDxkaXYgY2xhc3NOYW1lPVwidmlld1wiPlxuICAgIHtyaWNoVGV4dGFyZWF9XG4gIDwvZGl2PlxuXG47XG5cbmV4cG9ydCBkZWZhdWx0IFZpZXc7XG5cbmZ1bmN0aW9uIGJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiYmx1clwiKVxufVxuXG5mdW5jdGlvbiBmb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc29sZS5sb2coXCJmb2N1c1wiKVxufVxuXG5mdW5jdGlvbiBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gcmljaFRleHRhcmVhLmhhc0NvbnRlbnRDaGFuZ2VkKCksXG4gICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxufVxuXG5mdW5jdGlvbiBzY3JvbGxIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxUb3AoKSxcbiAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgY29uc29sZS5sb2coc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KVxufVxuIl0sIm5hbWVzIjpbImNvbnRlbnQiLCJyaWNoVGV4dGFyZWEiLCJSaWNoVGV4dGFyZWEiLCJvbkJsdXIiLCJibHVySGFuZGxlciIsIm9uRm9jdXMiLCJmb2N1c0hhbmRsZXIiLCJvbkNoYW5nZSIsImNoYW5nZUhhbmRsZXIiLCJvblNjcm9sbCIsInNjcm9sbEhhbmRsZXIiLCJzZXRDb250ZW50IiwiYWN0aXZhdGUiLCJWaWV3IiwicHJvcGVydGllcyIsImRpdiIsImNsYXNzTmFtZSIsImV2ZW50IiwiZWxlbWVudCIsImNvbnNvbGUiLCJsb2ciLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwic2VsZWN0aW9uQ2hhbmdlZCIsImhhc1NlbGVjdGlvbkNoYW5nZWQiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBdUJBOzs7ZUFBQTs7O21FQXJCeUI7Ozs7OztBQUV6QixJQUFNQSxVQUFVLElBQ1ZDLDZCQUVFLG9CQUFDQyxxQkFBWTtJQUFDQyxRQUFRQztJQUFhQyxTQUFTQztJQUFjQyxVQUFVQztJQUFlQyxVQUFVQzs7QUFJckdULGFBQWFVLFVBQVUsQ0FBQ1g7QUFFeEJDLGFBQWFXLFFBQVE7QUFFckIsSUFBTUMsT0FBTyxTQUFDQzt5QkFFWixvQkFBQ0M7UUFBSUMsV0FBVTtPQUNaZjs7SUFLTCxXQUFlWTtBQUVmLFNBQVNULFlBQVlhLEtBQUssRUFBRUMsT0FBTztJQUNqQ0MsUUFBUUMsR0FBRyxDQUFDO0FBQ2Q7QUFFQSxTQUFTZCxhQUFhVyxLQUFLLEVBQUVDLE9BQU87SUFDbENDLFFBQVFDLEdBQUcsQ0FBQztBQUNkO0FBRUEsU0FBU1osY0FBY1MsS0FBSyxFQUFFQyxPQUFPO0lBQ25DLElBQU1HLGlCQUFpQnBCLGFBQWFxQixpQkFBaUIsSUFDL0NDLG1CQUFtQnRCLGFBQWF1QixtQkFBbUI7SUFFekRMLFFBQVFDLEdBQUcsQ0FBQ0MsZ0JBQWdCRTtBQUM5QjtBQUVBLFNBQVNiLGNBQWNPLEtBQUssRUFBRUMsT0FBTztJQUNuQyxJQUFNTyxZQUFZeEIsYUFBYXlCLFlBQVksSUFDckNDLGFBQWExQixhQUFhMkIsYUFBYTtJQUU3Q1QsUUFBUUMsR0FBRyxDQUFDSyxXQUFXRTtBQUN6QiJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBSaWNoVGV4dGFyZWEgZnJvbSBcIi4vcmljaFRleHRhcmVhXCI7XG5cbmNvbnN0IGNvbnRlbnQgPSBcIlwiLFxuICAgICAgcmljaFRleHRhcmVhID1cblxuICAgICAgICA8UmljaFRleHRhcmVhIG9uQ3VzdG9tQmx1cj17Y3VzdG9tQmx1ckhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgb25DdXN0b21Gb2N1cz17Y3VzdG9tRm9jdXNIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ3VzdG9tU2Nyb2xsPXtjdXN0b21TY3JvbGxIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ3VzdG9tQ2hhbmdlPXtjdXN0b21DaGFuZ2VIYW5kbGVyfSAvPlxuXG4gICAgICA7XG5cbnJpY2hUZXh0YXJlYS5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG5yaWNoVGV4dGFyZWEuYWN0aXZhdGUoKTtcblxuY29uc3QgVmlldyA9IChwcm9wZXJ0aWVzKSA9PlxuXG4gIDxkaXYgY2xhc3NOYW1lPVwidmlld1wiPlxuICAgIHtyaWNoVGV4dGFyZWF9XG4gIDwvZGl2PlxuXG47XG5cbmV4cG9ydCBkZWZhdWx0IFZpZXc7XG5cbmZ1bmN0aW9uIGN1c3RvbUJsdXJIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnNvbGUubG9nKFwiYmx1clwiKVxufVxuXG5mdW5jdGlvbiBjdXN0b21Gb2N1c0hhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgY29uc29sZS5sb2coXCJmb2N1c1wiKVxufVxuXG5mdW5jdGlvbiBjdXN0b21TY3JvbGxIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IHNjcm9sbFRvcCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxUb3AoKSxcbiAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgY29uc29sZS5sb2coc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KVxufVxuXG5mdW5jdGlvbiBjdXN0b21DaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gIGNvbnN0IGNvbnRlbnRDaGFuZ2VkID0gcmljaFRleHRhcmVhLmhhc0NvbnRlbnRDaGFuZ2VkKCksXG4gICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xuXG4gIGNvbnNvbGUubG9nKGNvbnRlbnRDaGFuZ2VkLCBzZWxlY3Rpb25DaGFuZ2VkKVxufVxuIl0sIm5hbWVzIjpbImNvbnRlbnQiLCJyaWNoVGV4dGFyZWEiLCJSaWNoVGV4dGFyZWEiLCJvbkN1c3RvbUJsdXIiLCJjdXN0b21CbHVySGFuZGxlciIsIm9uQ3VzdG9tRm9jdXMiLCJjdXN0b21Gb2N1c0hhbmRsZXIiLCJvbkN1c3RvbVNjcm9sbCIsImN1c3RvbVNjcm9sbEhhbmRsZXIiLCJvbkN1c3RvbUNoYW5nZSIsImN1c3RvbUNoYW5nZUhhbmRsZXIiLCJzZXRDb250ZW50IiwiYWN0aXZhdGUiLCJWaWV3IiwicHJvcGVydGllcyIsImRpdiIsImNsYXNzTmFtZSIsImV2ZW50IiwiZWxlbWVudCIsImNvbnNvbGUiLCJsb2ciLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJzZWxlY3Rpb25DaGFuZ2VkIiwiaGFzU2VsZWN0aW9uQ2hhbmdlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMEJBOzs7ZUFBQTs7O21FQXhCeUI7Ozs7OztBQUV6QixJQUFNQSxVQUFVLElBQ1ZDLDZCQUVFLG9CQUFDQyxxQkFBWTtJQUFDQyxjQUFjQztJQUNkQyxlQUFlQztJQUNmQyxnQkFBZ0JDO0lBQ2hCQyxnQkFBZ0JDOztBQUl0Q1QsYUFBYVUsVUFBVSxDQUFDWDtBQUV4QkMsYUFBYVcsUUFBUTtBQUVyQixJQUFNQyxPQUFPLFNBQUNDO3lCQUVaLG9CQUFDQztRQUFJQyxXQUFVO09BQ1pmOztJQUtMLFdBQWVZO0FBRWYsU0FBU1Qsa0JBQWtCYSxLQUFLLEVBQUVDLE9BQU87SUFDdkNDLFFBQVFDLEdBQUcsQ0FBQztBQUNkO0FBRUEsU0FBU2QsbUJBQW1CVyxLQUFLLEVBQUVDLE9BQU87SUFDeENDLFFBQVFDLEdBQUcsQ0FBQztBQUNkO0FBRUEsU0FBU1osb0JBQW9CUyxLQUFLLEVBQUVDLE9BQU87SUFDekMsSUFBTUcsWUFBWXBCLGFBQWFxQixZQUFZLElBQ3JDQyxhQUFhdEIsYUFBYXVCLGFBQWE7SUFFN0NMLFFBQVFDLEdBQUcsQ0FBQ0MsV0FBV0U7QUFDekI7QUFFQSxTQUFTYixvQkFBb0JPLEtBQUssRUFBRUMsT0FBTztJQUN6QyxJQUFNTyxpQkFBaUJ4QixhQUFheUIsaUJBQWlCLElBQy9DQyxtQkFBbUIxQixhQUFhMkIsbUJBQW1CO0lBRXpEVCxRQUFRQyxHQUFHLENBQUNLLGdCQUFnQkU7QUFDOUIifQ==
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ var _customEventTypes = require("../customEventTypes");
12
+ function onCustomBlur(blurCustomHandler, element) {
13
+ var customEventType = _customEventTypes.BLUR_CUSTOM_EVENT_TYPE, customHandler = blurCustomHandler; ///
14
+ this.onCustomEvent(customEventType, customHandler, element);
15
+ }
16
+ function onCustomFocus(focusCustomHandler, element) {
17
+ var customEventType = _customEventTypes.FOCUS_CUSTOM_EVENT_TYPE, customHandler = focusCustomHandler; ///
18
+ this.onCustomEvent(customEventType, customHandler, element);
19
+ }
20
+ function onCustomScroll(scrollCustomHandler, element) {
21
+ var customEventType = _customEventTypes.SCROLL_CUSTOM_EVENT_TYPE, customHandler = scrollCustomHandler; ///
22
+ this.onCustomEvent(customEventType, customHandler, element);
23
+ }
24
+ function onCustomChange(changeCustomHandler, element) {
25
+ var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE, customHandler = changeCustomHandler; ///
26
+ this.onCustomEvent(customEventType, customHandler, element);
27
+ }
28
+ function offCustomBlur(blurCustomHandler, element) {
29
+ var customEventType = _customEventTypes.BLUR_CUSTOM_EVENT_TYPE, customHandler = blurCustomHandler; ///
30
+ this.offCustomEvent(customEventType, customHandler, element);
31
+ }
32
+ function offCustomFocus(blurCustomHandler, element) {
33
+ var customEventType = _customEventTypes.FOCUS_CUSTOM_EVENT_TYPE, customHandler = blurCustomHandler; ///
34
+ this.offCustomEvent(customEventType, customHandler, element);
35
+ }
36
+ function offCustomScroll(scrollCustomHandler, element) {
37
+ var customEventType = _customEventTypes.SCROLL_CUSTOM_EVENT_TYPE, customHandler = scrollCustomHandler; ///
38
+ this.offCustomEvent(customEventType, customHandler, element);
39
+ }
40
+ function offCustomChange(changeCustomHandler, element) {
41
+ var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE, customHandler = changeCustomHandler; ///
42
+ this.offCustomEvent(customEventType, customHandler, element);
43
+ }
44
+ var customEventMixins = {
45
+ onCustomBlur: onCustomBlur,
46
+ onCustomFocus: onCustomFocus,
47
+ onCustomScroll: onCustomScroll,
48
+ onCustomChange: onCustomChange,
49
+ offCustomBlur: offCustomBlur,
50
+ offCustomFocus: offCustomFocus,
51
+ offCustomScroll: offCustomScroll,
52
+ offCustomChange: offCustomChange
53
+ };
54
+ var _default = customEventMixins;
55
+
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvY3VzdG9tRXZlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsIEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFLCBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsIENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuLi9jdXN0b21FdmVudFR5cGVzXCI7XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tQmx1cihibHVyQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBCTFVSX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gYmx1ckN1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21Gb2N1cyhmb2N1c0N1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBmb2N1c0N1c3RvbUhhbmRsZXI7ICAvLy9cblxuICB0aGlzLm9uQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb25DdXN0b21TY3JvbGwoc2Nyb2xsQ3VzdG9tSGFuZGxlciwgZWxlbWVudCkge1xuICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBzY3JvbGxDdXN0b21IYW5kbGVyOyAgLy8vXG5cbiAgdGhpcy5vbkN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50VHlwZSwgY3VzdG9tSGFuZGxlciwgZWxlbWVudCk7XG59XG5cbmZ1bmN0aW9uIG9uQ3VzdG9tQ2hhbmdlKGNoYW5nZUN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gY2hhbmdlQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub25DdXN0b21FdmVudChjdXN0b21FdmVudFR5cGUsIGN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpO1xufVxuXG5mdW5jdGlvbiBvZmZDdXN0b21CbHVyKGJsdXJDdXN0b21IYW5kbGVyLCBlbGVtZW50KSB7XG4gIGNvbnN0IGN1c3RvbUV2ZW50VHlwZSA9IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBibHVyQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tRm9jdXMoYmx1ckN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUsXG4gICAgICAgIGN1c3RvbUhhbmRsZXIgPSBibHVyQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tU2Nyb2xsKHNjcm9sbEN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU0NST0xMX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gc2Nyb2xsQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuZnVuY3Rpb24gb2ZmQ3VzdG9tQ2hhbmdlKGNoYW5nZUN1c3RvbUhhbmRsZXIsIGVsZW1lbnQpIHtcbiAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFLFxuICAgICAgICBjdXN0b21IYW5kbGVyID0gY2hhbmdlQ3VzdG9tSGFuZGxlcjsgIC8vL1xuXG4gIHRoaXMub2ZmQ3VzdG9tRXZlbnQoY3VzdG9tRXZlbnRUeXBlLCBjdXN0b21IYW5kbGVyLCBlbGVtZW50KTtcbn1cblxuY29uc3QgY3VzdG9tRXZlbnRNaXhpbnMgPSB7XG4gIG9uQ3VzdG9tQmx1cixcbiAgb25DdXN0b21Gb2N1cyxcbiAgb25DdXN0b21TY3JvbGwsXG4gIG9uQ3VzdG9tQ2hhbmdlLFxuICBvZmZDdXN0b21CbHVyLFxuICBvZmZDdXN0b21Gb2N1cyxcbiAgb2ZmQ3VzdG9tU2Nyb2xsLFxuICBvZmZDdXN0b21DaGFuZ2Vcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGN1c3RvbUV2ZW50TWl4aW5zO1xuIl0sIm5hbWVzIjpbIm9uQ3VzdG9tQmx1ciIsImJsdXJDdXN0b21IYW5kbGVyIiwiZWxlbWVudCIsImN1c3RvbUV2ZW50VHlwZSIsIkJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUiLCJjdXN0b21IYW5kbGVyIiwib25DdXN0b21FdmVudCIsIm9uQ3VzdG9tRm9jdXMiLCJmb2N1c0N1c3RvbUhhbmRsZXIiLCJGT0NVU19DVVNUT01fRVZFTlRfVFlQRSIsIm9uQ3VzdG9tU2Nyb2xsIiwic2Nyb2xsQ3VzdG9tSGFuZGxlciIsIlNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSIsIm9uQ3VzdG9tQ2hhbmdlIiwiY2hhbmdlQ3VzdG9tSGFuZGxlciIsIkNIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSIsIm9mZkN1c3RvbUJsdXIiLCJvZmZDdXN0b21FdmVudCIsIm9mZkN1c3RvbUZvY3VzIiwib2ZmQ3VzdG9tU2Nyb2xsIiwib2ZmQ3VzdG9tQ2hhbmdlIiwiY3VzdG9tRXZlbnRNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXVFQTs7O2VBQUE7OztnQ0FyRW9IO0FBRXBILFNBQVNBLGFBQWFDLGlCQUFpQixFQUFFQyxPQUFPO0lBQzlDLElBQU1DLGtCQUFrQkMsd0NBQXNCLEVBQ3hDQyxnQkFBZ0JKLG1CQUFvQixHQUFHO0lBRTdDLElBQUksQ0FBQ0ssYUFBYSxDQUFDSCxpQkFBaUJFLGVBQWVIO0FBQ3JEO0FBRUEsU0FBU0ssY0FBY0Msa0JBQWtCLEVBQUVOLE9BQU87SUFDaEQsSUFBTUMsa0JBQWtCTSx5Q0FBdUIsRUFDekNKLGdCQUFnQkcsb0JBQXFCLEdBQUc7SUFFOUMsSUFBSSxDQUFDRixhQUFhLENBQUNILGlCQUFpQkUsZUFBZUg7QUFDckQ7QUFFQSxTQUFTUSxlQUFlQyxtQkFBbUIsRUFBRVQsT0FBTztJQUNsRCxJQUFNQyxrQkFBa0JTLDBDQUF3QixFQUMxQ1AsZ0JBQWdCTSxxQkFBc0IsR0FBRztJQUUvQyxJQUFJLENBQUNMLGFBQWEsQ0FBQ0gsaUJBQWlCRSxlQUFlSDtBQUNyRDtBQUVBLFNBQVNXLGVBQWVDLG1CQUFtQixFQUFFWixPQUFPO0lBQ2xELElBQU1DLGtCQUFrQlksMENBQXdCLEVBQzFDVixnQkFBZ0JTLHFCQUFzQixHQUFHO0lBRS9DLElBQUksQ0FBQ1IsYUFBYSxDQUFDSCxpQkFBaUJFLGVBQWVIO0FBQ3JEO0FBRUEsU0FBU2MsY0FBY2YsaUJBQWlCLEVBQUVDLE9BQU87SUFDL0MsSUFBTUMsa0JBQWtCQyx3Q0FBc0IsRUFDeENDLGdCQUFnQkosbUJBQW9CLEdBQUc7SUFFN0MsSUFBSSxDQUFDZ0IsY0FBYyxDQUFDZCxpQkFBaUJFLGVBQWVIO0FBQ3REO0FBRUEsU0FBU2dCLGVBQWVqQixpQkFBaUIsRUFBRUMsT0FBTztJQUNoRCxJQUFNQyxrQkFBa0JNLHlDQUF1QixFQUN6Q0osZ0JBQWdCSixtQkFBb0IsR0FBRztJQUU3QyxJQUFJLENBQUNnQixjQUFjLENBQUNkLGlCQUFpQkUsZUFBZUg7QUFDdEQ7QUFFQSxTQUFTaUIsZ0JBQWdCUixtQkFBbUIsRUFBRVQsT0FBTztJQUNuRCxJQUFNQyxrQkFBa0JTLDBDQUF3QixFQUMxQ1AsZ0JBQWdCTSxxQkFBc0IsR0FBRztJQUUvQyxJQUFJLENBQUNNLGNBQWMsQ0FBQ2QsaUJBQWlCRSxlQUFlSDtBQUN0RDtBQUVBLFNBQVNrQixnQkFBZ0JOLG1CQUFtQixFQUFFWixPQUFPO0lBQ25ELElBQU1DLGtCQUFrQlksMENBQXdCLEVBQzFDVixnQkFBZ0JTLHFCQUFzQixHQUFHO0lBRS9DLElBQUksQ0FBQ0csY0FBYyxDQUFDZCxpQkFBaUJFLGVBQWVIO0FBQ3REO0FBRUEsSUFBTW1CLG9CQUFvQjtJQUN4QnJCLGNBQUFBO0lBQ0FPLGVBQUFBO0lBQ0FHLGdCQUFBQTtJQUNBRyxnQkFBQUE7SUFDQUcsZUFBQUE7SUFDQUUsZ0JBQUFBO0lBQ0FDLGlCQUFBQTtJQUNBQyxpQkFBQUE7QUFDRjtJQUVBLFdBQWVDIn0=
@@ -10,7 +10,8 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  var _easy = require("easy");
12
12
  var _selection = /*#__PURE__*/ _interop_require_default(require("./selection"));
13
- var _event = /*#__PURE__*/ _interop_require_default(require("./mixins/event"));
13
+ var _customEvent = /*#__PURE__*/ _interop_require_default(require("./mixins/customEvent"));
14
+ var _customEventTypes = require("./customEventTypes");
14
15
  function _array_like_to_array(arr, len) {
15
16
  if (len == null || len > arr.length) len = arr.length;
16
17
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -185,7 +186,7 @@ function _create_super(Derived) {
185
186
  return _possible_constructor_return(this, result);
186
187
  };
187
188
  }
188
- var BLUR_EVENT_TYPE = _easy.eventTypes.BLUR_EVENT_TYPE, FOCUS_EVENT_TYPE = _easy.eventTypes.FOCUS_EVENT_TYPE, INPUT_EVENT_TYPE = _easy.eventTypes.INPUT_EVENT_TYPE, SCROLL_EVENT_TYPE = _easy.eventTypes.SCROLL_EVENT_TYPE, CHANGE_EVENT_TYPE = _easy.eventTypes.CHANGE_EVENT_TYPE, SELECTIONCHANGE_EVENT_TYPE = _easy.eventTypes.SELECTIONCHANGE_EVENT_TYPE;
189
+ var BLUR_EVENT_TYPE = _easy.eventTypes.BLUR_EVENT_TYPE, FOCUS_EVENT_TYPE = _easy.eventTypes.FOCUS_EVENT_TYPE, INPUT_EVENT_TYPE = _easy.eventTypes.INPUT_EVENT_TYPE, SCROLL_EVENT_TYPE = _easy.eventTypes.SCROLL_EVENT_TYPE, SELECTIONCHANGE_EVENT_TYPE = _easy.eventTypes.SELECTIONCHANGE_EVENT_TYPE;
189
190
  var RichTextarea = /*#__PURE__*/ function(Element) {
190
191
  _inherits(RichTextarea, Element);
191
192
  var _super = _create_super(RichTextarea);
@@ -194,34 +195,35 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
194
195
  var _this;
195
196
  _this = _super.apply(this, arguments);
196
197
  _define_property(_assert_this_initialized(_this), "blurHandler", function(event, element) {
197
- var eventType = BLUR_EVENT_TYPE, selectionChanged = true;
198
- _this.intermediateHandler(event, element, eventType, selectionChanged);
198
+ var customEventType = _customEventTypes.BLUR_CUSTOM_EVENT_TYPE, selectionChanged = true;
199
+ _this.customEventHandler(event, element, customEventType, selectionChanged);
199
200
  });
200
201
  _define_property(_assert_this_initialized(_this), "focusHandler", function(event, element) {
201
202
  defer(function() {
202
- var eventType = FOCUS_EVENT_TYPE, selectionChanged = true;
203
- _this.intermediateHandler(event, element, eventType, selectionChanged);
203
+ var customEventType = _customEventTypes.FOCUS_CUSTOM_EVENT_TYPE, selectionChanged = true;
204
+ _this.customEventHandler(event, element, customEventType, selectionChanged);
204
205
  });
205
206
  });
206
207
  _define_property(_assert_this_initialized(_this), "inputHandler", function(event, element) {
207
- _this.intermediateHandler(event, element);
208
+ var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE, selectionChanged = _this.hasSelectionChanged();
209
+ _this.customEventHandler(event, element, customEventType, selectionChanged);
208
210
  });
209
211
  _define_property(_assert_this_initialized(_this), "scrollHandler", function(event, element) {
210
- var eventType = SCROLL_EVENT_TYPE;
211
- _this.callHandlers(eventType, event, element);
212
+ var customEventType = _customEventTypes.SCROLL_CUSTOM_EVENT_TYPE;
213
+ _this.callCustomHandlers(customEventType, event, element); ///
212
214
  });
213
215
  _define_property(_assert_this_initialized(_this), "selectChangeHandler", function(event, element) {
214
216
  var currentTarget = event.currentTarget, activeElement = currentTarget.activeElement, domElement = _this.getDOMElement();
215
217
  if (activeElement === domElement) {
216
218
  element = _assert_this_initialized(_this); ///
217
- _this.intermediateHandler(event, element);
219
+ var customEventType = _customEventTypes.CHANGE_CUSTOM_EVENT_TYPE, selectionChanged = _this.hasSelectionChanged();
220
+ _this.customEventHandler(event, element, customEventType, selectionChanged);
218
221
  }
219
222
  });
220
- _define_property(_assert_this_initialized(_this), "intermediateHandler", function(event, element) {
221
- var eventType = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : CHANGE_EVENT_TYPE, selectionChanged = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : _this.hasSelectionChanged();
223
+ _define_property(_assert_this_initialized(_this), "customEventHandler", function(event, element, customEventType, selectionChanged) {
222
224
  var content = _this.getContent(), selection = _this.getSelection(), contentChanged = _this.hasContentChanged();
223
225
  if (contentChanged || selectionChanged) {
224
- _this.callHandlers(eventType, event, element);
226
+ _this.callCustomHandlers(customEventType, event, element);
225
227
  }
226
228
  var previousContent = content, previousSelection = selection; ///
227
229
  _this.setPreviousContent(previousContent);
@@ -230,30 +232,6 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
230
232
  return _this;
231
233
  }
232
234
  _create_class(RichTextarea, [
233
- {
234
- key: "callHandlers",
235
- value: function callHandlers(eventType) {
236
- for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
237
- remainingArguments[_key - 1] = arguments[_key];
238
- }
239
- var _this = this;
240
- var eventListeners = this.findEventListeners(eventType);
241
- eventListeners.forEach(function(eventListener) {
242
- var element = eventListener.element;
243
- var handler = eventListener.handler;
244
- if (handler !== _this.blurHandler && handler !== _this.focusHandler && handler !== _this.inputHandler && handler !== _this.scrollHandler && handler !== _this.selectChangeHandler) {
245
- var _handler;
246
- var handlerElement = element; ///
247
- element = _this; ///
248
- (_handler = handler).call.apply(_handler, [
249
- handlerElement
250
- ].concat(_to_consumable_array(remainingArguments), [
251
- element
252
- ]));
253
- }
254
- });
255
- }
256
- },
257
235
  {
258
236
  key: "isReadOnly",
259
237
  value: function isReadOnly() {
@@ -334,22 +312,22 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
334
312
  {
335
313
  key: "activate",
336
314
  value: function activate() {
337
- this.on(BLUR_EVENT_TYPE, this.blurHandler);
338
- this.on(FOCUS_EVENT_TYPE, this.focusHandler);
339
- this.on(INPUT_EVENT_TYPE, this.inputHandler);
340
- this.on(SCROLL_EVENT_TYPE, this.scrollHandler);
341
- _easy.document.on(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
315
+ this.onEvent(BLUR_EVENT_TYPE, this.blurHandler);
316
+ this.onEvent(FOCUS_EVENT_TYPE, this.focusHandler);
317
+ this.onEvent(INPUT_EVENT_TYPE, this.inputHandler);
318
+ this.onEvent(SCROLL_EVENT_TYPE, this.scrollHandler);
319
+ _easy.document.onEvent(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
342
320
  this.addClass("active");
343
321
  }
344
322
  },
345
323
  {
346
324
  key: "deactivate",
347
325
  value: function deactivate() {
348
- this.off(BLUR_EVENT_TYPE, this.blurHandler);
349
- this.off(FOCUS_EVENT_TYPE, this.focusHandler);
350
- this.off(INPUT_EVENT_TYPE, this.inputHandler);
351
- this.off(SCROLL_EVENT_TYPE, this.scrollHandler);
352
- _easy.document.off(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
326
+ this.offEvent(BLUR_EVENT_TYPE, this.blurHandler);
327
+ this.offEvent(FOCUS_EVENT_TYPE, this.focusHandler);
328
+ this.offEvent(INPUT_EVENT_TYPE, this.inputHandler);
329
+ this.offEvent(SCROLL_EVENT_TYPE, this.scrollHandler);
330
+ _easy.document.offEvent(SELECTIONCHANGE_EVENT_TYPE, this.selectChangeHandler);
353
331
  this.removeClass("active");
354
332
  }
355
333
  },
@@ -389,21 +367,11 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
389
367
  var content = this.getContent(), selection = this.getSelection(), previousContent = content, previousSelection = selection; ///
390
368
  this.setPreviousContent(previousContent);
391
369
  this.setPreviousSelection(previousSelection);
392
- var _this_properties = this.properties, onBlur = _this_properties.onBlur, onFocus = _this_properties.onFocus, onScroll = _this_properties.onScroll, onChange = _this_properties.onChange, blurHandler = onBlur, focusHandler = onFocus, scrollHandler = onScroll, changeHandler = onChange; ///
393
- blurHandler && this.onBlur(blurHandler, this);
394
- focusHandler && this.onFocus(focusHandler, this);
395
- scrollHandler && this.onScroll(scrollHandler, this);
396
- changeHandler && this.onChange(changeHandler, this);
397
370
  }
398
371
  },
399
372
  {
400
373
  key: "willUnmount",
401
374
  value: function willUnmount() {
402
- var _this_properties = this.properties, onBlur = _this_properties.onBlur, onFocus = _this_properties.onFocus, onScroll = _this_properties.onScroll, onChange = _this_properties.onChange, blurHandler = onBlur, focusHandler = onFocus, scrollHandler = onScroll, changeHandler = onChange; ///
403
- blurHandler && this.offBlur(blurHandler, this);
404
- focusHandler && this.offFocus(focusHandler, this);
405
- scrollHandler && this.offScroll(scrollHandler, this);
406
- changeHandler && this.offChange(changeHandler, this);
407
375
  var active = this.isActive();
408
376
  if (active) {
409
377
  this.deactivate();
@@ -445,18 +413,12 @@ var RichTextarea = /*#__PURE__*/ function(Element) {
445
413
  return RichTextarea;
446
414
  }(_wrap_native_super(_easy.Element));
447
415
  _define_property(RichTextarea, "tagName", "textarea");
448
- _define_property(RichTextarea, "ignoredProperties", [
449
- "onBlur",
450
- "onFocus",
451
- "onScroll",
452
- "onChange"
453
- ]);
454
416
  _define_property(RichTextarea, "defaultProperties", {
455
417
  className: "rich"
456
418
  });
457
- Object.assign(RichTextarea.prototype, _event.default);
419
+ Object.assign(RichTextarea.prototype, _customEvent.default);
458
420
  function defer(func) {
459
421
  setTimeout(func, 0);
460
422
  }
461
423
 
462
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBldmVudE1peGlucyBmcm9tIFwiLi9taXhpbnMvZXZlbnRcIjtcclxuXHJcbmNvbnN0IHsgQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICBDSEFOR0VfRVZFTlRfVFlQRSxcclxuICAgICAgICBTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJpY2hUZXh0YXJlYSBleHRlbmRzIEVsZW1lbnQge1xyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBldmVudFR5cGUgPSBCTFVSX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGRlZmVyKCgpID0+IHtcclxuICAgICAgY29uc3QgZXZlbnRUeXBlID0gRk9DVVNfRVZFTlRfVFlQRSxcclxuICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGV2ZW50VHlwZSwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgdGhpcy5pbnRlcm1lZGlhdGVIYW5kbGVyKGV2ZW50LCBlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHNjcm9sbEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IGV2ZW50VHlwZSA9IFNDUk9MTF9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q2hhbmdlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgeyBjdXJyZW50VGFyZ2V0IH0gPSBldmVudCxcclxuICAgICAgICAgIHsgYWN0aXZlRWxlbWVudCB9ID0gY3VycmVudFRhcmdldCxcclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlRWxlbWVudCA9PT0gZG9tRWxlbWVudCkge1xyXG4gICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICB0aGlzLmludGVybWVkaWF0ZUhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW50ZXJtZWRpYXRlSGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgZXZlbnRUeXBlID0gQ0hBTkdFX0VWRU5UX1RZUEUsIHNlbGVjdGlvbkNoYW5nZWQgPSB0aGlzLmhhc1NlbGVjdGlvbkNoYW5nZWQoKSkgPT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gdGhpcy5oYXNDb250ZW50Q2hhbmdlZCgpO1xyXG5cclxuICAgIGlmIChjb250ZW50Q2hhbmdlZCB8fCBzZWxlY3Rpb25DaGFuZ2VkKSB7XHJcbiAgICAgIHRoaXMuY2FsbEhhbmRsZXJzKGV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGNhbGxIYW5kbGVycyhldmVudFR5cGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xyXG4gICAgY29uc3QgZXZlbnRMaXN0ZW5lcnMgPSB0aGlzLmZpbmRFdmVudExpc3RlbmVycyhldmVudFR5cGUpO1xyXG5cclxuICAgIGV2ZW50TGlzdGVuZXJzLmZvckVhY2goKGV2ZW50TGlzdGVuZXIpID0+IHtcclxuICAgICAgbGV0IHsgZWxlbWVudCB9ID0gZXZlbnRMaXN0ZW5lcjtcclxuXHJcbiAgICAgIGNvbnN0IHsgaGFuZGxlciB9ID0gZXZlbnRMaXN0ZW5lcjtcclxuXHJcbiAgICAgIGlmICggKGhhbmRsZXIgIT09IHRoaXMuYmx1ckhhbmRsZXIpXHJcbiAgICAgICAgJiYgKGhhbmRsZXIgIT09IHRoaXMuZm9jdXNIYW5kbGVyKVxyXG4gICAgICAgICYmIChoYW5kbGVyICE9PSB0aGlzLmlucHV0SGFuZGxlcilcclxuICAgICAgICAmJiAoaGFuZGxlciAhPT0gdGhpcy5zY3JvbGxIYW5kbGVyKVxyXG4gICAgICAgICYmIChoYW5kbGVyICE9PSB0aGlzLnNlbGVjdENoYW5nZUhhbmRsZXIpICkge1xyXG5cclxuICAgICAgICBjb25zdCBoYW5kbGVyRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xyXG5cclxuICAgICAgICBlbGVtZW50ID0gdGhpczsgLy8vXHJcblxyXG4gICAgICAgIGhhbmRsZXIuY2FsbChoYW5kbGVyRWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpc1JlYWRPbmx5KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyByZWFkT25seSB9ID0gZG9tRWxlbWVudDtcclxuXHJcbiAgICByZXR1cm4gcmVhZE9ubHk7XHJcbiAgfVxyXG5cclxuICBpc0FjdGl2ZSgpIHtcclxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuaGFzQ2xhc3MoXCJhY3RpdmVcIik7XHJcblxyXG4gICAgcmV0dXJuIGFjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldENvbnRlbnQoKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICB7IHZhbHVlIH0gPSBkb21FbGVtZW50LFxyXG4gICAgICAgICAgY29udGVudCA9IHZhbHVlOyAgLy8vXHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSBTZWxlY3Rpb24uZnJvbURPTUVsZW1lbnQoZG9tRWxlbWVudCk7XHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIGhhc0NvbnRlbnRDaGFuZ2VkKCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgcHJldmlvdXNDb250ZW50ID0gdGhpcy5nZXRQcmV2aW91c0NvbnRlbnQoKSxcclxuICAgICAgICAgIGNvbnRlbnRQcmV2aW91c0NvbnRlbnQgPSAoY29udGVudCA9PT0gcHJldmlvdXNDb250ZW50KSxcclxuICAgICAgICAgIGNvbnRlbnRDaGFuZ2VkID0gIWNvbnRlbnRQcmV2aW91c0NvbnRlbnQ7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRlbnRDaGFuZ2VkO1xyXG4gIH1cclxuXHJcbiAgaGFzU2VsZWN0aW9uQ2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBwcmV2aW91c1NlbGVjdGlvbiA9IHRoaXMuZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uLmlzRXF1YWxUbyhwcmV2aW91c1NlbGVjdGlvbiksXHJcbiAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gIXNlbGVjdGlvblByZXZpb3VzU2VsZWN0aW9uOyAvLy9cclxuXHJcbiAgICByZXR1cm4gc2VsZWN0aW9uQ2hhbmdlZDtcclxuICB9XHJcblxyXG4gIHNldFJlYWRPbmx5KHJlYWRPbmx5KSB7XHJcbiAgICBjb25zdCBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHJlYWRPbmx5XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQoY29udGVudCwgc2V0UHJldmlvdXNDb250ZW50ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250ZW50LCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihkb21FbGVtZW50LCB7XHJcbiAgICAgIHZhbHVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNDb250ZW50KSB7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQ7ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uLCBzZXRQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0U3RhcnRQb3NpdGlvbigpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kUG9zaXRpb24gPSBzZWxlY3Rpb24uZ2V0RW5kUG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvblN0YXJ0ID0gc2VsZWN0aW9uU3RhcnRQb3NpdGlvbiwgIC8vL1xyXG4gICAgICAgICAgc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uRW5kUG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKTtcclxuXHJcbiAgICBkb21FbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpO1xyXG5cclxuICAgIGlmIChzZXRQcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbjsgIC8vL1xyXG5cclxuICAgICAgdGhpcy5zZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMub24oQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKEZPQ1VTX0VWRU5UX1RZUEUsIHRoaXMuZm9jdXNIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKElOUFVUX0VWRU5UX1RZUEUsIHRoaXMuaW5wdXRIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIGRvY3VtZW50Lm9uKFNFTEVDVElPTkNIQU5HRV9FVkVOVF9UWVBFLCB0aGlzLnNlbGVjdENoYW5nZUhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMuYWRkQ2xhc3MoXCJhY3RpdmVcIik7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5vZmYoQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9mZihGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmYoSU5QVVRfRVZFTlRfVFlQRSwgdGhpcy5pbnB1dEhhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub2ZmKFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIGRvY3VtZW50Lm9mZihTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSwgdGhpcy5zZWxlY3RDaGFuZ2VIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzQ29udGVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpZE1vdW50KCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuXHJcbiAgICBjb25zdCB7IG9uQmx1ciwgb25Gb2N1cywgb25TY3JvbGwsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BlcnRpZXMsXHJcbiAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1ciwgLy8vXHJcbiAgICAgICAgICBmb2N1c0hhbmRsZXIgPSBvbkZvY3VzLCAvLy9cclxuICAgICAgICAgIHNjcm9sbEhhbmRsZXIgPSBvblNjcm9sbCwgLy8vXHJcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2U7IC8vL1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub25CbHVyKGJsdXJIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBmb2N1c0hhbmRsZXIgJiYgdGhpcy5vbkZvY3VzKGZvY3VzSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgc2Nyb2xsSGFuZGxlciAmJiB0aGlzLm9uU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vbkNoYW5nZShjaGFuZ2VIYW5kbGVyLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgeyBvbkJsdXIsIG9uRm9jdXMsIG9uU2Nyb2xsLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxyXG4gICAgICAgICAgICBibHVySGFuZGxlciA9IG9uQmx1ciwgLy8vXHJcbiAgICAgICAgICAgIGZvY3VzSGFuZGxlciA9IG9uRm9jdXMsIC8vL1xyXG4gICAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gb25TY3JvbGwsIC8vL1xyXG4gICAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gb25DaGFuZ2U7IC8vL1xyXG5cclxuICAgIGJsdXJIYW5kbGVyICYmIHRoaXMub2ZmQmx1cihibHVySGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgZm9jdXNIYW5kbGVyICYmIHRoaXMub2ZmRm9jdXMoZm9jdXNIYW5kbGVyLCB0aGlzKTtcclxuXHJcbiAgICBzY3JvbGxIYW5kbGVyICYmIHRoaXMub2ZmU2Nyb2xsKHNjcm9sbEhhbmRsZXIsIHRoaXMpO1xyXG5cclxuICAgIGNoYW5nZUhhbmRsZXIgJiYgdGhpcy5vZmZDaGFuZ2UoY2hhbmdlSGFuZGxlciwgdGhpcyk7XHJcblxyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmIChhY3RpdmUpIHtcclxuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBudWxsLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnQsXHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcclxuICAgIFwib25CbHVyXCIsXHJcbiAgICBcIm9uRm9jdXNcIixcclxuICAgIFwib25TY3JvbGxcIixcclxuICAgIFwib25DaGFuZ2VcIlxyXG4gIF07XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG5cclxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IHJpY2hUZXh0YXJlYSA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xyXG5cclxuICAgIHJldHVybiByaWNoVGV4dGFyZWE7XHJcbiAgfVxyXG59XHJcblxyXG5PYmplY3QuYXNzaWduKFJpY2hUZXh0YXJlYS5wcm90b3R5cGUsIGV2ZW50TWl4aW5zKTtcclxuXHJcbmZ1bmN0aW9uIGRlZmVyKGZ1bmMpIHtcclxuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSaWNoVGV4dGFyZWEiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiRk9DVVNfRVZFTlRfVFlQRSIsIklOUFVUX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsIkNIQU5HRV9FVkVOVF9UWVBFIiwiU0VMRUNUSU9OQ0hBTkdFX0VWRU5UX1RZUEUiLCJibHVySGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsImV2ZW50VHlwZSIsInNlbGVjdGlvbkNoYW5nZWQiLCJpbnRlcm1lZGlhdGVIYW5kbGVyIiwiZm9jdXNIYW5kbGVyIiwiZGVmZXIiLCJpbnB1dEhhbmRsZXIiLCJzY3JvbGxIYW5kbGVyIiwiY2FsbEhhbmRsZXJzIiwic2VsZWN0Q2hhbmdlSGFuZGxlciIsImN1cnJlbnRUYXJnZXQiLCJhY3RpdmVFbGVtZW50IiwiZG9tRWxlbWVudCIsImdldERPTUVsZW1lbnQiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwiY29udGVudCIsImdldENvbnRlbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwicHJldmlvdXNDb250ZW50IiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImV2ZW50TGlzdGVuZXJzIiwiZmluZEV2ZW50TGlzdGVuZXJzIiwiZm9yRWFjaCIsImV2ZW50TGlzdGVuZXIiLCJoYW5kbGVyIiwiaGFuZGxlckVsZW1lbnQiLCJjYWxsIiwiaXNSZWFkT25seSIsInJlYWRPbmx5IiwiaXNBY3RpdmUiLCJhY3RpdmUiLCJoYXNDbGFzcyIsInZhbHVlIiwiU2VsZWN0aW9uIiwiZnJvbURPTUVsZW1lbnQiLCJnZXRQcmV2aW91c0NvbnRlbnQiLCJjb250ZW50UHJldmlvdXNDb250ZW50IiwiZ2V0UHJldmlvdXNTZWxlY3Rpb24iLCJzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbiIsImlzRXF1YWxUbyIsInNldFJlYWRPbmx5IiwiT2JqZWN0IiwiYXNzaWduIiwic2V0Q29udGVudCIsInNldFNlbGVjdGlvbiIsInNlbGVjdGlvblN0YXJ0UG9zaXRpb24iLCJnZXRTdGFydFBvc2l0aW9uIiwic2VsZWN0aW9uRW5kUG9zaXRpb24iLCJnZXRFbmRQb3NpdGlvbiIsInNlbGVjdGlvblN0YXJ0Iiwic2VsZWN0aW9uRW5kIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJhY3RpdmF0ZSIsIm9uIiwiZG9jdW1lbnQiLCJhZGRDbGFzcyIsImRlYWN0aXZhdGUiLCJvZmYiLCJyZW1vdmVDbGFzcyIsImdldFN0YXRlIiwidXBkYXRlU3RhdGUiLCJkaWRNb3VudCIsInByb3BlcnRpZXMiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25TY3JvbGwiLCJvbkNoYW5nZSIsImNoYW5nZUhhbmRsZXIiLCJ3aWxsVW5tb3VudCIsIm9mZkJsdXIiLCJvZmZGb2N1cyIsIm9mZlNjcm9sbCIsIm9mZkNoYW5nZSIsInNldEluaXRpYWxTdGF0ZSIsInNldFN0YXRlIiwiaW5pdGlhbGlzZSIsImZyb21DbGFzcyIsIkNsYXNzIiwiRWxlbWVudCIsInJpY2hUZXh0YXJlYSIsInRhZ05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiZXZlbnRNaXhpbnMiLCJmdW5jIiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFjcUJBOzs7b0JBWnlCO2dFQUV4Qjs0REFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4QixJQUFRQyxrQkFLK0JDLGdCQUFVLENBTHpDRCxpQkFDQUUsbUJBSStCRCxnQkFBVSxDQUp6Q0Msa0JBQ0FDLG1CQUcrQkYsZ0JBQVUsQ0FIekNFLGtCQUNBQyxvQkFFK0JILGdCQUFVLENBRnpDRyxtQkFDQUMsb0JBQytCSixnQkFBVSxDQUR6Q0ksbUJBQ0FDLDZCQUErQkwsZ0JBQVUsQ0FBekNLO0FBRU8sSUFBQSxBQUFNUCw2QkFBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztRQUNuQlEsa0RBQUFBLGVBQWMsU0FBQ0MsT0FBT0M7WUFDcEIsSUFBTUMsWUFBWVYsaUJBQ1pXLG1CQUFtQjtZQUV6QixNQUFL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
424
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgeyBFbGVtZW50LCBkb2N1bWVudCwgZXZlbnRUeXBlcyB9IGZyb20gXCJlYXN5XCI7XHJcblxyXG5pbXBvcnQgU2VsZWN0aW9uIGZyb20gXCIuL3NlbGVjdGlvblwiXHJcbmltcG9ydCBjdXN0b21FdmVudE1peGlucyBmcm9tIFwiLi9taXhpbnMvY3VzdG9tRXZlbnRcIjtcclxuXHJcbmltcG9ydCB7IEJMVVJfQ1VTVE9NX0VWRU5UX1RZUEUsIEZPQ1VTX0NVU1RPTV9FVkVOVF9UWVBFLCBTQ1JPTExfQ1VTVE9NX0VWRU5UX1RZUEUsIENIQU5HRV9DVVNUT01fRVZFTlRfVFlQRSB9IGZyb20gXCIuL2N1c3RvbUV2ZW50VHlwZXNcIjtcclxuXHJcbmNvbnN0IHsgQkxVUl9FVkVOVF9UWVBFLFxyXG4gICAgICAgIEZPQ1VTX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgSU5QVVRfRVZFTlRfVFlQRSxcclxuICAgICAgICBTQ1JPTExfRVZFTlRfVFlQRSxcclxuICAgICAgICBTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSB9ID0gZXZlbnRUeXBlcztcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJpY2hUZXh0YXJlYSBleHRlbmRzIEVsZW1lbnQge1xyXG4gIGJsdXJIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XHJcbiAgICBjb25zdCBjdXN0b21FdmVudFR5cGUgPSBCTFVSX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5jdXN0b21FdmVudEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGN1c3RvbUV2ZW50VHlwZSwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c0hhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGRlZmVyKCgpID0+IHtcclxuICAgICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUsXHJcbiAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5jdXN0b21FdmVudEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQsIGN1c3RvbUV2ZW50VHlwZSwgc2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlucHV0SGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IHRoaXMuaGFzU2VsZWN0aW9uQ2hhbmdlZCgpO1xyXG5cclxuICAgIHRoaXMuY3VzdG9tRXZlbnRIYW5kbGVyKGV2ZW50LCBlbGVtZW50LCBjdXN0b21FdmVudFR5cGUsIHNlbGVjdGlvbkNoYW5nZWQpO1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsSGFuZGxlciA9IChldmVudCwgZWxlbWVudCkgPT4ge1xyXG4gICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gU0NST0xMX0NVU1RPTV9FVkVOVF9UWVBFO1xyXG5cclxuICAgIHRoaXMuY2FsbEN1c3RvbUhhbmRsZXJzKGN1c3RvbUV2ZW50VHlwZSwgZXZlbnQsIGVsZW1lbnQpOyAvLy9cclxuICB9XHJcblxyXG4gIHNlbGVjdENoYW5nZUhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcclxuICAgIGNvbnN0IHsgY3VycmVudFRhcmdldCB9ID0gZXZlbnQsXHJcbiAgICAgICAgICB7IGFjdGl2ZUVsZW1lbnQgfSA9IGN1cnJlbnRUYXJnZXQsXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUVsZW1lbnQgPT09IGRvbUVsZW1lbnQpIHtcclxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xyXG5cclxuICAgICAgY29uc3QgY3VzdG9tRXZlbnRUeXBlID0gQ0hBTkdFX0NVU1RPTV9FVkVOVF9UWVBFLFxyXG4gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gdGhpcy5oYXNTZWxlY3Rpb25DaGFuZ2VkKCk7XHJcblxyXG4gICAgICB0aGlzLmN1c3RvbUV2ZW50SGFuZGxlcihldmVudCwgZWxlbWVudCwgY3VzdG9tRXZlbnRUeXBlLCBzZWxlY3Rpb25DaGFuZ2VkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbUV2ZW50SGFuZGxlciA9IChldmVudCwgZWxlbWVudCwgY3VzdG9tRXZlbnRUeXBlLCBzZWxlY3Rpb25DaGFuZ2VkKSA9PiB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXHJcbiAgICAgICAgICBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSB0aGlzLmhhc0NvbnRlbnRDaGFuZ2VkKCk7XHJcblxyXG4gICAgaWYgKGNvbnRlbnRDaGFuZ2VkIHx8IHNlbGVjdGlvbkNoYW5nZWQpIHtcclxuICAgICAgdGhpcy5jYWxsQ3VzdG9tSGFuZGxlcnMoY3VzdG9tRXZlbnRUeXBlLCBldmVudCwgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJldmlvdXNDb250ZW50ID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG5cclxuICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkT25seSgpIHtcclxuICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLmdldERPTUVsZW1lbnQoKSxcclxuICAgICAgICAgIHsgcmVhZE9ubHkgfSA9IGRvbUVsZW1lbnQ7XHJcblxyXG4gICAgcmV0dXJuIHJlYWRPbmx5O1xyXG4gIH1cclxuXHJcbiAgaXNBY3RpdmUoKSB7XHJcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmhhc0NsYXNzKFwiYWN0aXZlXCIpO1xyXG5cclxuICAgIHJldHVybiBhY3RpdmU7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZW50KCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgeyB2YWx1ZSB9ID0gZG9tRWxlbWVudCxcclxuICAgICAgICAgIGNvbnRlbnQgPSB2YWx1ZTsgIC8vL1xyXG5cclxuICAgIHJldHVybiBjb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gU2VsZWN0aW9uLmZyb21ET01FbGVtZW50KGRvbUVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBzZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICBoYXNDb250ZW50Q2hhbmdlZCgpIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQoKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IHRoaXMuZ2V0UHJldmlvdXNDb250ZW50KCksXHJcbiAgICAgICAgICBjb250ZW50UHJldmlvdXNDb250ZW50ID0gKGNvbnRlbnQgPT09IHByZXZpb3VzQ29udGVudCksXHJcbiAgICAgICAgICBjb250ZW50Q2hhbmdlZCA9ICFjb250ZW50UHJldmlvdXNDb250ZW50O1xyXG5cclxuICAgIHJldHVybiBjb250ZW50Q2hhbmdlZDtcclxuICB9XHJcblxyXG4gIGhhc1NlbGVjdGlvbkNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSB0aGlzLmdldFByZXZpb3VzU2VsZWN0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbiA9IHNlbGVjdGlvbi5pc0VxdWFsVG8ocHJldmlvdXNTZWxlY3Rpb24pLFxyXG4gICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9ICFzZWxlY3Rpb25QcmV2aW91c1NlbGVjdGlvbjsgLy8vXHJcblxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbkNoYW5nZWQ7XHJcbiAgfVxyXG5cclxuICBzZXRSZWFkT25seShyZWFkT25seSkge1xyXG4gICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICByZWFkT25seVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZW50KGNvbnRlbnQsIHNldFByZXZpb3VzQ29udGVudCA9IHRydWUpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gY29udGVudCwgIC8vL1xyXG4gICAgICAgICAgZG9tRWxlbWVudCA9IHRoaXMuZ2V0RE9NRWxlbWVudCgpO1xyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oZG9tRWxlbWVudCwge1xyXG4gICAgICB2YWx1ZVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHNldFByZXZpb3VzQ29udGVudCkge1xyXG4gICAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBjb250ZW50OyAgLy8vXHJcblxyXG4gICAgICB0aGlzLnNldFByZXZpb3VzQ29udGVudChwcmV2aW91c0NvbnRlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbiwgc2V0UHJldmlvdXNTZWxlY3Rpb24gPSB0cnVlKSB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldFN0YXJ0UG9zaXRpb24oKSxcclxuICAgICAgICAgIHNlbGVjdGlvbkVuZFBvc2l0aW9uID0gc2VsZWN0aW9uLmdldEVuZFBvc2l0aW9uKCksXHJcbiAgICAgICAgICBzZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0UG9zaXRpb24sICAvLy9cclxuICAgICAgICAgIHNlbGVjdGlvbkVuZCA9IHNlbGVjdGlvbkVuZFBvc2l0aW9uLCAgLy8vXHJcbiAgICAgICAgICBkb21FbGVtZW50ID0gdGhpcy5nZXRET01FbGVtZW50KCk7XHJcblxyXG4gICAgZG9tRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kKTtcclxuXHJcbiAgICBpZiAoc2V0UHJldmlvdXNTZWxlY3Rpb24pIHtcclxuICAgICAgY29uc3QgcHJldmlvdXNTZWxlY3Rpb24gPSBzZWxlY3Rpb247ICAvLy9cclxuXHJcbiAgICAgIHRoaXMuc2V0UHJldmlvdXNTZWxlY3Rpb24ocHJldmlvdXNTZWxlY3Rpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLm9uRXZlbnQoQkxVUl9FVkVOVF9UWVBFLCB0aGlzLmJsdXJIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLm9uRXZlbnQoRk9DVVNfRVZFTlRfVFlQRSwgdGhpcy5mb2N1c0hhbmRsZXIpO1xyXG5cclxuICAgIHRoaXMub25FdmVudChJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vbkV2ZW50KFNDUk9MTF9FVkVOVF9UWVBFLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xyXG5cclxuICAgIGRvY3VtZW50Lm9uRXZlbnQoU0VMRUNUSU9OQ0hBTkdFX0VWRU5UX1RZUEUsIHRoaXMuc2VsZWN0Q2hhbmdlSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5hZGRDbGFzcyhcImFjdGl2ZVwiKTtcclxuICB9XHJcblxyXG4gIGRlYWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLm9mZkV2ZW50KEJMVVJfRVZFTlRfVFlQRSwgdGhpcy5ibHVySGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChGT0NVU19FVkVOVF9UWVBFLCB0aGlzLmZvY3VzSGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChJTlBVVF9FVkVOVF9UWVBFLCB0aGlzLmlucHV0SGFuZGxlcik7XHJcblxyXG4gICAgdGhpcy5vZmZFdmVudChTQ1JPTExfRVZFTlRfVFlQRSwgdGhpcy5zY3JvbGxIYW5kbGVyKTtcclxuXHJcbiAgICBkb2N1bWVudC5vZmZFdmVudChTRUxFQ1RJT05DSEFOR0VfRVZFTlRfVFlQRSwgdGhpcy5zZWxlY3RDaGFuZ2VIYW5kbGVyKTtcclxuXHJcbiAgICB0aGlzLnJlbW92ZUNsYXNzKFwiYWN0aXZlXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNDb250ZW50KCkge1xyXG4gICAgY29uc3QgeyBwcmV2aW91c0NvbnRlbnQgfSA9IHRoaXMuZ2V0U3RhdGUoKTtcclxuXHJcbiAgICByZXR1cm4gcHJldmlvdXNDb250ZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJldmlvdXNTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCB7IHByZXZpb3VzU2VsZWN0aW9uIH0gPSB0aGlzLmdldFN0YXRlKCk7XHJcblxyXG4gICAgcmV0dXJuIHByZXZpb3VzU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0UHJldmlvdXNDb250ZW50KHByZXZpb3VzQ29udGVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzQ29udGVudFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQcmV2aW91c1NlbGVjdGlvbihwcmV2aW91c1NlbGVjdGlvbikge1xyXG4gICAgdGhpcy51cGRhdGVTdGF0ZSh7XHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRpZE1vdW50KCkge1xyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxyXG4gICAgICAgICAgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKSxcclxuICAgICAgICAgIHByZXZpb3VzQ29udGVudCA9IGNvbnRlbnQsICAvLy9cclxuICAgICAgICAgIHByZXZpb3VzU2VsZWN0aW9uID0gc2VsZWN0aW9uOyAgLy8vXHJcblxyXG4gICAgdGhpcy5zZXRQcmV2aW91c0NvbnRlbnQocHJldmlvdXNDb250ZW50KTtcclxuXHJcbiAgICB0aGlzLnNldFByZXZpb3VzU2VsZWN0aW9uKHByZXZpb3VzU2VsZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHdpbGxVbm1vdW50KCkge1xyXG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG5cclxuICAgIGlmIChhY3RpdmUpIHtcclxuICAgICAgdGhpcy5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRJbml0aWFsU3RhdGUoKSB7XHJcbiAgICBjb25zdCBwcmV2aW91c0NvbnRlbnQgPSBudWxsLFxyXG4gICAgICAgICAgcHJldmlvdXNTZWxlY3Rpb24gPSBudWxsO1xyXG5cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBwcmV2aW91c0NvbnRlbnQsXHJcbiAgICAgIHByZXZpb3VzU2VsZWN0aW9uXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpc2UoKSB7XHJcbiAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRhZ05hbWUgPSBcInRleHRhcmVhXCI7XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcclxuICAgIGNsYXNzTmFtZTogXCJyaWNoXCJcclxuICB9O1xyXG5cclxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcclxuICAgIGNvbnN0IHJpY2hUZXh0YXJlYSA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xyXG5cclxuICAgIHJldHVybiByaWNoVGV4dGFyZWE7XHJcbiAgfVxyXG59XHJcblxyXG5PYmplY3QuYXNzaWduKFJpY2hUZXh0YXJlYS5wcm90b3R5cGUsIGN1c3RvbUV2ZW50TWl4aW5zKTtcclxuXHJcbmZ1bmN0aW9uIGRlZmVyKGZ1bmMpIHtcclxuICBzZXRUaW1lb3V0KGZ1bmMsIDApO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJSaWNoVGV4dGFyZWEiLCJCTFVSX0VWRU5UX1RZUEUiLCJldmVudFR5cGVzIiwiRk9DVVNfRVZFTlRfVFlQRSIsIklOUFVUX0VWRU5UX1RZUEUiLCJTQ1JPTExfRVZFTlRfVFlQRSIsIlNFTEVDVElPTkNIQU5HRV9FVkVOVF9UWVBFIiwiYmx1ckhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJjdXN0b21FdmVudFR5cGUiLCJCTFVSX0NVU1RPTV9FVkVOVF9UWVBFIiwic2VsZWN0aW9uQ2hhbmdlZCIsImN1c3RvbUV2ZW50SGFuZGxlciIsImZvY3VzSGFuZGxlciIsImRlZmVyIiwiRk9DVVNfQ1VTVE9NX0VWRU5UX1RZUEUiLCJpbnB1dEhhbmRsZXIiLCJDSEFOR0VfQ1VTVE9NX0VWRU5UX1RZUEUiLCJoYXNTZWxlY3Rpb25DaGFuZ2VkIiwic2Nyb2xsSGFuZGxlciIsIlNDUk9MTF9DVVNUT01fRVZFTlRfVFlQRSIsImNhbGxDdXN0b21IYW5kbGVycyIsInNlbGVjdENoYW5nZUhhbmRsZXIiLCJjdXJyZW50VGFyZ2V0IiwiYWN0aXZlRWxlbWVudCIsImRvbUVsZW1lbnQiLCJnZXRET01FbGVtZW50IiwiY29udGVudCIsImdldENvbnRlbnQiLCJzZWxlY3Rpb24iLCJnZXRTZWxlY3Rpb24iLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwicHJldmlvdXNDb250ZW50IiwicHJldmlvdXNTZWxlY3Rpb24iLCJzZXRQcmV2aW91c0NvbnRlbnQiLCJzZXRQcmV2aW91c1NlbGVjdGlvbiIsImlzUmVhZE9ubHkiLCJyZWFkT25seSIsImlzQWN0aXZlIiwiYWN0aXZlIiwiaGFzQ2xhc3MiLCJ2YWx1ZSIsIlNlbGVjdGlvbiIsImZyb21ET01FbGVtZW50IiwiZ2V0UHJldmlvdXNDb250ZW50IiwiY29udGVudFByZXZpb3VzQ29udGVudCIsImdldFByZXZpb3VzU2VsZWN0aW9uIiwic2VsZWN0aW9uUHJldmlvdXNTZWxlY3Rpb24iLCJpc0VxdWFsVG8iLCJzZXRSZWFkT25seSIsIk9iamVjdCIsImFzc2lnbiIsInNldENvbnRlbnQiLCJzZXRTZWxlY3Rpb24iLCJzZWxlY3Rpb25TdGFydFBvc2l0aW9uIiwiZ2V0U3RhcnRQb3NpdGlvbiIsInNlbGVjdGlvbkVuZFBvc2l0aW9uIiwiZ2V0RW5kUG9zaXRpb24iLCJzZWxlY3Rpb25TdGFydCIsInNlbGVjdGlvbkVuZCIsInNldFNlbGVjdGlvblJhbmdlIiwiYWN0aXZhdGUiLCJvbkV2ZW50IiwiZG9jdW1lbnQiLCJhZGRDbGFzcyIsImRlYWN0aXZhdGUiLCJvZmZFdmVudCIsInJlbW92ZUNsYXNzIiwiZ2V0U3RhdGUiLCJ1cGRhdGVTdGF0ZSIsImRpZE1vdW50Iiwid2lsbFVubW91bnQiLCJzZXRJbml0aWFsU3RhdGUiLCJzZXRTdGF0ZSIsImluaXRpYWxpc2UiLCJmcm9tQ2xhc3MiLCJDbGFzcyIsInByb3BlcnRpZXMiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJFbGVtZW50IiwicmljaFRleHRhcmVhIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwicHJvdG90eXBlIiwiY3VzdG9tRXZlbnRNaXhpbnMiLCJmdW5jIiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFlcUJBOzs7b0JBYnlCO2dFQUV4QjtrRUFDUTtnQ0FFc0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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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.102",
4
+ "version": "4.0.105",
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.",
@@ -10,12 +10,12 @@
10
10
  "url": "https://github.com/djalbat/easy-richtextarea"
11
11
  },
12
12
  "dependencies": {
13
- "easy": "^15.1.1",
13
+ "easy": "^16.0.1",
14
14
  "necessary": "^13.1.4"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "^1.2.160",
18
- "easy-with-style": "^3.0.273",
18
+ "easy-with-style": "^3.0.274",
19
19
  "esbuild": "^0.9.2",
20
20
  "express": "^4.17.1",
21
21
  "lively-cli": "^2.0.51",
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export const BLUR_CUSTOM_EVENT_TYPE = "blur-custom";
4
+ export const FOCUS_CUSTOM_EVENT_TYPE = "focus-custom";
5
+ export const SCROLL_CUSTOM_EVENT_TYPE = "scroll-custom";
6
+ export const CHANGE_CUSTOM_EVENT_TYPE = "change-custom";
@@ -5,7 +5,10 @@ import RichTextarea from "./richTextarea";
5
5
  const content = "",
6
6
  richTextarea =
7
7
 
8
- <RichTextarea onBlur={blurHandler} onFocus={focusHandler} onChange={changeHandler} onScroll={scrollHandler} />
8
+ <RichTextarea onCustomBlur={customBlurHandler}
9
+ onCustomFocus={customFocusHandler}
10
+ onCustomScroll={customScrollHandler}
11
+ onCustomChange={customChangeHandler} />
9
12
 
10
13
  ;
11
14
 
@@ -23,24 +26,24 @@ const View = (properties) =>
23
26
 
24
27
  export default View;
25
28
 
26
- function blurHandler(event, element) {
29
+ function customBlurHandler(event, element) {
27
30
  console.log("blur")
28
31
  }
29
32
 
30
- function focusHandler(event, element) {
33
+ function customFocusHandler(event, element) {
31
34
  console.log("focus")
32
35
  }
33
36
 
34
- function changeHandler(event, element) {
35
- const contentChanged = richTextarea.hasContentChanged(),
36
- selectionChanged = richTextarea.hasSelectionChanged();
37
-
38
- console.log(contentChanged, selectionChanged)
39
- }
40
-
41
- function scrollHandler(event, element) {
37
+ function customScrollHandler(event, element) {
42
38
  const scrollTop = richTextarea.getScrollTop(),
43
39
  scrollLeft = richTextarea.getScrollLeft();
44
40
 
45
41
  console.log(scrollTop, scrollLeft)
46
42
  }
43
+
44
+ function customChangeHandler(event, element) {
45
+ const contentChanged = richTextarea.hasContentChanged(),
46
+ selectionChanged = richTextarea.hasSelectionChanged();
47
+
48
+ console.log(contentChanged, selectionChanged)
49
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ import { BLUR_CUSTOM_EVENT_TYPE, FOCUS_CUSTOM_EVENT_TYPE, SCROLL_CUSTOM_EVENT_TYPE, CHANGE_CUSTOM_EVENT_TYPE } from "../customEventTypes";
4
+
5
+ function onCustomBlur(blurCustomHandler, element) {
6
+ const customEventType = BLUR_CUSTOM_EVENT_TYPE,
7
+ customHandler = blurCustomHandler; ///
8
+
9
+ this.onCustomEvent(customEventType, customHandler, element);
10
+ }
11
+
12
+ function onCustomFocus(focusCustomHandler, element) {
13
+ const customEventType = FOCUS_CUSTOM_EVENT_TYPE,
14
+ customHandler = focusCustomHandler; ///
15
+
16
+ this.onCustomEvent(customEventType, customHandler, element);
17
+ }
18
+
19
+ function onCustomScroll(scrollCustomHandler, element) {
20
+ const customEventType = SCROLL_CUSTOM_EVENT_TYPE,
21
+ customHandler = scrollCustomHandler; ///
22
+
23
+ this.onCustomEvent(customEventType, customHandler, element);
24
+ }
25
+
26
+ function onCustomChange(changeCustomHandler, element) {
27
+ const customEventType = CHANGE_CUSTOM_EVENT_TYPE,
28
+ customHandler = changeCustomHandler; ///
29
+
30
+ this.onCustomEvent(customEventType, customHandler, element);
31
+ }
32
+
33
+ function offCustomBlur(blurCustomHandler, element) {
34
+ const customEventType = BLUR_CUSTOM_EVENT_TYPE,
35
+ customHandler = blurCustomHandler; ///
36
+
37
+ this.offCustomEvent(customEventType, customHandler, element);
38
+ }
39
+
40
+ function offCustomFocus(blurCustomHandler, element) {
41
+ const customEventType = FOCUS_CUSTOM_EVENT_TYPE,
42
+ customHandler = blurCustomHandler; ///
43
+
44
+ this.offCustomEvent(customEventType, customHandler, element);
45
+ }
46
+
47
+ function offCustomScroll(scrollCustomHandler, element) {
48
+ const customEventType = SCROLL_CUSTOM_EVENT_TYPE,
49
+ customHandler = scrollCustomHandler; ///
50
+
51
+ this.offCustomEvent(customEventType, customHandler, element);
52
+ }
53
+
54
+ function offCustomChange(changeCustomHandler, element) {
55
+ const customEventType = CHANGE_CUSTOM_EVENT_TYPE,
56
+ customHandler = changeCustomHandler; ///
57
+
58
+ this.offCustomEvent(customEventType, customHandler, element);
59
+ }
60
+
61
+ const customEventMixins = {
62
+ onCustomBlur,
63
+ onCustomFocus,
64
+ onCustomScroll,
65
+ onCustomChange,
66
+ offCustomBlur,
67
+ offCustomFocus,
68
+ offCustomScroll,
69
+ offCustomChange
70
+ };
71
+
72
+ export default customEventMixins;