yapp 2.2.18 → 2.2.20
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 +1474 -80
- package/lib/element/scrollable.js +28 -2
- package/lib/example/div/sizeable/left.js +28 -2
- package/lib/example/div/sizeable/middle.js +28 -2
- package/lib/example/div/sizeable/right.js +28 -2
- package/lib/example/div/sizeable/top.js +28 -2
- package/lib/example/textarea/bnf.js +28 -2
- package/lib/example/textarea/lexicalEntries.js +28 -2
- package/lib/example/textarea/parseTree.js +28 -2
- package/lib/example/textarea/tokens.js +28 -2
- package/lib/example/view/javascript.js +28 -2
- package/lib/example/view/json.js +28 -2
- package/lib/example/view/xml.js +28 -2
- package/lib/example/view.js +28 -2
- package/lib/example/yapp.js +28 -2
- package/lib/gutter.js +28 -2
- package/lib/lexer/javascript.js +28 -2
- package/lib/lexer/json.js +28 -2
- package/lib/lexer/plainText.js +28 -2
- package/lib/lexer/xml.js +28 -2
- package/lib/lineNumbers.js +28 -2
- package/lib/parser/javascript.js +28 -2
- package/lib/parser/json.js +28 -2
- package/lib/parser/plainText.js +28 -2
- package/lib/parser/xml.js +28 -2
- package/lib/plugin/javascript.js +28 -2
- package/lib/plugin/json.js +28 -2
- package/lib/plugin/plainText.js +28 -2
- package/lib/plugin/xml.js +28 -2
- package/lib/prettyPrinter.js +28 -2
- package/lib/processor/javascript.js +32 -6
- package/lib/processor/json.js +28 -2
- package/lib/processor/plainText.js +28 -2
- package/lib/processor/xml.js +28 -2
- package/lib/richTextarea.js +30 -3
- package/lib/syntax.js +31 -5
- package/lib/token/nonSignificant/comment/multiLine/endOf.js +28 -2
- package/lib/token/nonSignificant/comment/multiLine/middleOf.js +28 -2
- package/lib/token/nonSignificant/comment/multiLine/startOf.js +28 -2
- package/lib/token/nonSignificant/comment/singleLine.js +28 -2
- package/lib/token/significant/argument.js +28 -2
- package/lib/token/significant/attribute.js +28 -2
- package/lib/token/significant/comment.js +28 -2
- package/lib/token/significant/error.js +28 -2
- package/lib/token/significant/jsx.js +28 -2
- package/lib/token/significant/name.js +28 -2
- package/lib/token/significant/string.js +28 -2
- package/lib/token/significant/variable.js +28 -2
- package/lib/yapp.js +32 -5
- package/package.json +1 -1
- package/src/richTextarea.js +3 -1
- package/src/syntax.js +4 -5
- package/src/yapp.js +6 -4
|
@@ -64,13 +64,39 @@ function _setPrototypeOf(o, p) {
|
|
|
64
64
|
var _typeof = function(obj) {
|
|
65
65
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
66
66
|
};
|
|
67
|
+
function _isNativeReflectConstruct() {
|
|
68
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
69
|
+
if (Reflect.construct.sham) return false;
|
|
70
|
+
if (typeof Proxy === "function") return true;
|
|
71
|
+
try {
|
|
72
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
|
|
73
|
+
}));
|
|
74
|
+
return true;
|
|
75
|
+
} catch (e) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function _createSuper(Derived) {
|
|
80
|
+
var hasNativeReflectConstruct = _isNativeReflectConstruct();
|
|
81
|
+
return function _createSuperInternal() {
|
|
82
|
+
var Super = _getPrototypeOf(Derived), result;
|
|
83
|
+
if (hasNativeReflectConstruct) {
|
|
84
|
+
var NewTarget = _getPrototypeOf(this).constructor;
|
|
85
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
86
|
+
} else {
|
|
87
|
+
result = Super.apply(this, arguments);
|
|
88
|
+
}
|
|
89
|
+
return _possibleConstructorReturn(this, result);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
67
92
|
var stringLiteralType = _occamLexers.types.stringLiteralType;
|
|
68
93
|
var type = stringLiteralType; ///
|
|
69
94
|
var StringToken = /*#__PURE__*/ function(SignificantToken) {
|
|
70
95
|
_inherits(StringToken, SignificantToken);
|
|
96
|
+
var _super = _createSuper(StringToken);
|
|
71
97
|
function StringToken() {
|
|
72
98
|
_classCallCheck(this, StringToken);
|
|
73
|
-
return
|
|
99
|
+
return _super.apply(this, arguments);
|
|
74
100
|
}
|
|
75
101
|
_createClass(StringToken, null, [
|
|
76
102
|
{
|
|
@@ -84,4 +110,4 @@ var StringToken = /*#__PURE__*/ function(SignificantToken) {
|
|
|
84
110
|
}(_occamLexers.SignificantToken);
|
|
85
111
|
exports.default = StringToken;
|
|
86
112
|
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC9zdHJpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFNpZ25pZmljYW50VG9rZW4sIHR5cGVzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuXG5jb25zdCB7IHN0cmluZ0xpdGVyYWxUeXBlIH0gPSB0eXBlcztcblxuY29uc3QgdHlwZSA9IHN0cmluZ0xpdGVyYWxUeXBlOyAvLy9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nVG9rZW4gZXh0ZW5kcyBTaWduaWZpY2FudFRva2VuIHtcbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQpIHsgcmV0dXJuIFNpZ25pZmljYW50VG9rZW4uZnJvbUNvbnRlbnRBbmRUeXBlKFN0cmluZ1Rva2VuLCBjb250ZW50LCB0eXBlKTsgfVxufVxuIl0sIm5hbWVzIjpbInN0cmluZ0xpdGVyYWxUeXBlIiwidHlwZSIsIlN0cmluZ1Rva2VuIiwiZnJvbUNvbnRlbnQiLCJjb250ZW50IiwiZnJvbUNvbnRlbnRBbmRUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUU0QixHQUFjLENBQWQsWUFBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEQsR0FBSyxDQUFHQSxpQkFBaUIsR0FGZSxZQUFjLE9BRTlDQSxpQkFBaUI7QUFFekIsR0FBSyxDQUFDQyxJQUFJLEdBQUdELGlCQUFpQixDQUFFLENBQUcsQUFBSCxFQUFHLEFBQUgsQ0FBRztJQUVkRSxXQUFXLGlCQUFqQixRQUFRO2NBQUZBLFdBQVc7OEJBQVhBLFdBQVc7YUFBWEEsV0FBVzs4QkFBWEEsV0FBVzs7O2lCQUFYQSxXQUFXOztZQUN2QkMsR0FBVyxFQUFYQSxDQUFXO21CQUFsQixRQUFRLENBQURBLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQVBFLFlBQWMsa0JBT0VDLGtCQUFrQixDQUFDSCxXQUFXLEVBQUVFLE9BQU8sRUFBRUgsSUFBSTtZQUFHLENBQUM7OztXQURwRkMsV0FBVztFQU5RLFlBQWM7a0JBTWpDQSxXQUFXIn0=
|
|
@@ -65,12 +65,38 @@ function _setPrototypeOf(o, p) {
|
|
|
65
65
|
var _typeof = function(obj) {
|
|
66
66
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
67
67
|
};
|
|
68
|
+
function _isNativeReflectConstruct() {
|
|
69
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
70
|
+
if (Reflect.construct.sham) return false;
|
|
71
|
+
if (typeof Proxy === "function") return true;
|
|
72
|
+
try {
|
|
73
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
|
|
74
|
+
}));
|
|
75
|
+
return true;
|
|
76
|
+
} catch (e) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function _createSuper(Derived) {
|
|
81
|
+
var hasNativeReflectConstruct = _isNativeReflectConstruct();
|
|
82
|
+
return function _createSuperInternal() {
|
|
83
|
+
var Super = _getPrototypeOf(Derived), result;
|
|
84
|
+
if (hasNativeReflectConstruct) {
|
|
85
|
+
var NewTarget = _getPrototypeOf(this).constructor;
|
|
86
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
87
|
+
} else {
|
|
88
|
+
result = Super.apply(this, arguments);
|
|
89
|
+
}
|
|
90
|
+
return _possibleConstructorReturn(this, result);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
68
93
|
var type = _tokenTypes.VARIABLE_TOKEN_TYPE; ///
|
|
69
94
|
var VariableToken = /*#__PURE__*/ function(SignificantToken) {
|
|
70
95
|
_inherits(VariableToken, SignificantToken);
|
|
96
|
+
var _super = _createSuper(VariableToken);
|
|
71
97
|
function VariableToken() {
|
|
72
98
|
_classCallCheck(this, VariableToken);
|
|
73
|
-
return
|
|
99
|
+
return _super.apply(this, arguments);
|
|
74
100
|
}
|
|
75
101
|
_createClass(VariableToken, null, [
|
|
76
102
|
{
|
|
@@ -84,4 +110,4 @@ var VariableToken = /*#__PURE__*/ function(SignificantToken) {
|
|
|
84
110
|
}(_occamLexers.SignificantToken);
|
|
85
111
|
exports.default = VariableToken;
|
|
86
112
|
|
|
87
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b2tlbi9zaWduaWZpY2FudC92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgU2lnbmlmaWNhbnRUb2tlbiB9IGZyb20gXCJvY2NhbS1sZXhlcnNcIjtcblxuaW1wb3J0IHsgVkFSSUFCTEVfVE9LRU5fVFlQRSB9IGZyb20gXCIuLi8uLi90b2tlblR5cGVzXCI7XG5cbmNvbnN0IHR5cGUgPSBWQVJJQUJMRV9UT0tFTl9UWVBFOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZhcmlhYmxlVG9rZW4gZXh0ZW5kcyBTaWduaWZpY2FudFRva2VuIHtcbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQpIHsgcmV0dXJuIFNpZ25pZmljYW50VG9rZW4uZnJvbUNvbnRlbnRBbmRUeXBlKFZhcmlhYmxlVG9rZW4sIGNvbnRlbnQsIHR5cGUpOyB9XG59XG4iXSwibmFtZXMiOlsidHlwZSIsIlZhcmlhYmxlVG9rZW4iLCJmcm9tQ29udGVudCIsImNvbnRlbnQiLCJmcm9tQ29udGVudEFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRXFCLEdBQWMsQ0FBZCxZQUFjO0FBRVgsR0FBa0IsQ0FBbEIsV0FBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRELEdBQUssQ0FBQ0EsSUFBSSxHQUYwQixXQUFrQixxQkFFbkIsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0lBRWpCQyxhQUFhLGlCQUFuQixRQUFRO2NBQUZBLGFBQWE7OEJBQWJBLGFBQWE7YUFBYkEsYUFBYTs4QkFBYkEsYUFBYTs7O2lCQUFiQSxhQUFhOztZQUN6QkMsR0FBVyxFQUFYQSxDQUFXO21CQUFsQixRQUFRLENBQURBLFdBQVcsQ0FBQ0MsT0FBTyxFQUFFLENBQUM7Z0JBQUMsTUFBTSxDQVBMLFlBQWMsa0JBT1NDLGtCQUFrQixDQUFDSCxhQUFhLEVBQUVFLE9BQU8sRUFBRUgsSUFBSTtZQUFHLENBQUM7OztXQUR0RkMsYUFBYTtFQU5ELFlBQWM7a0JBTTFCQSxhQUFhIn0=
|
package/lib/yapp.js
CHANGED
|
@@ -160,6 +160,31 @@ function _wrapNativeSuper(Class) {
|
|
|
160
160
|
};
|
|
161
161
|
return _wrapNativeSuper(Class);
|
|
162
162
|
}
|
|
163
|
+
function _isNativeReflectConstruct() {
|
|
164
|
+
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
165
|
+
if (Reflect.construct.sham) return false;
|
|
166
|
+
if (typeof Proxy === "function") return true;
|
|
167
|
+
try {
|
|
168
|
+
Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
|
|
169
|
+
}));
|
|
170
|
+
return true;
|
|
171
|
+
} catch (e) {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function _createSuper(Derived) {
|
|
176
|
+
var hasNativeReflectConstruct = _isNativeReflectConstruct();
|
|
177
|
+
return function _createSuperInternal() {
|
|
178
|
+
var Super = _getPrototypeOf(Derived), result;
|
|
179
|
+
if (hasNativeReflectConstruct) {
|
|
180
|
+
var NewTarget = _getPrototypeOf(this).constructor;
|
|
181
|
+
result = Reflect.construct(Super, arguments, NewTarget);
|
|
182
|
+
} else {
|
|
183
|
+
result = Super.apply(this, arguments);
|
|
184
|
+
}
|
|
185
|
+
return _possibleConstructorReturn(this, result);
|
|
186
|
+
};
|
|
187
|
+
}
|
|
163
188
|
function _templateObject() {
|
|
164
189
|
var data = _taggedTemplateLiteral([
|
|
165
190
|
"\n\n width: 100%;\n position: relative;\n\n border: 1px solid;\n \n color: ",
|
|
@@ -175,10 +200,11 @@ function _templateObject() {
|
|
|
175
200
|
}
|
|
176
201
|
var Yapp = /*#__PURE__*/ function(Element) {
|
|
177
202
|
_inherits(Yapp, Element);
|
|
203
|
+
var _super = _createSuper(Yapp);
|
|
178
204
|
function Yapp(selector, plugin) {
|
|
179
205
|
_classCallCheck(this, Yapp);
|
|
180
206
|
var _this;
|
|
181
|
-
_this =
|
|
207
|
+
_this = _super.call(this, selector);
|
|
182
208
|
_this.plugin = plugin;
|
|
183
209
|
return _this;
|
|
184
210
|
}
|
|
@@ -342,15 +368,16 @@ var Yapp = /*#__PURE__*/ function(Element) {
|
|
|
342
368
|
{
|
|
343
369
|
key: "parentContext",
|
|
344
370
|
value: function parentContext() {
|
|
345
|
-
var getPlugin = this.getPlugin.bind(this), updateYapp = this.update.bind(this),
|
|
371
|
+
var getPlugin = this.getPlugin.bind(this), getContent = this.getContent.bind(this), updateYapp = this.update.bind(this), resizeYapp = this.resize.bind(this), setYappWidth = this.setWidth.bind(this), setYappHeight = this.setHeight.bind(this), setYappLexer = this.setLexer.bind(this), setYappParser = this.setParser.bind(this); ///
|
|
346
372
|
return {
|
|
347
373
|
getPlugin: getPlugin,
|
|
374
|
+
getContent: getContent,
|
|
348
375
|
updateYapp: updateYapp,
|
|
376
|
+
resizeYapp: resizeYapp,
|
|
349
377
|
setYappWidth: setYappWidth,
|
|
350
378
|
setYappHeight: setYappHeight,
|
|
351
379
|
setYappLexer: setYappLexer,
|
|
352
|
-
setYappParser: setYappParser
|
|
353
|
-
resizeYapp: resizeYapp
|
|
380
|
+
setYappParser: setYappParser
|
|
354
381
|
};
|
|
355
382
|
}
|
|
356
383
|
},
|
|
@@ -405,4 +432,4 @@ Object.assign(Yapp.prototype, _style.default);
|
|
|
405
432
|
var _default = (0, _easyWithStyle).default(Yapp)(_templateObject(), _colour.colour, _colour.caretColour, _colour.borderColour, _colour.backgroundColour);
|
|
406
433
|
exports.default = _default;
|
|
407
434
|
|
|
408
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBSZWFjdCwgQm91bmRzLCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHN0eWxlTWl4aW5zIGZyb20gXCIuL21peGlucy9zdHlsZVwiO1xuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Njcm9sbGJhclRoaWNrbmVzc1wiO1xuaW1wb3J0IHsgcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BsdWdpblwiO1xuaW1wb3J0IHsgcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Byb3BlcnRpZXNcIjtcbmltcG9ydCB7IGxpbmVDb3VudEZyb21Db250ZW50LCBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgY29sb3VyLCBjYXJldENvbG91ciwgYm9yZGVyQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyIH0gZnJvbSBcIi4vc2NoZW1lL2NvbG91clwiO1xuaW1wb3J0IHsgREVGQVVMVF9FRElUQUJMRSwgREVGQVVMVF9GSVJBX0NPREUsIERFRkFVTFRfREVGRVJfUkVOREVSLCBERUZBVUxUX0hJRERFTl9HVVRURVIsIERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMsIERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmNsYXNzIFlhcHAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IsIHBsdWdpbikge1xuICAgIHN1cGVyKHNlbGVjdG9yKTtcblxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZ2V0UGx1Z2luKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0UmljaFRleHRhcmVhQ29udGVudCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSByaWNoVGV4dGFyZWFDb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKSB7XG4gICAgbGV0IHRvcCxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgd2lkdGggPSB0aGlzLmdldFdpZHRoKCksXG4gICAgICAgIGhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCk7XG5cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0xlZnQgPSB0aGlzLmdldFBhZGRpbmdMZWZ0KCksXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRQYWRkaW5nUmlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tID0gdGhpcy5nZXRQYWRkaW5nQm90dG9tKCksXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlclRvcFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoID0gdGhpcy5nZXRCb3JkZXJMZWZ0V2lkdGgoKSxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoID0gdGhpcy5nZXRCb3JkZXJSaWdodFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCk7XG5cbiAgICB0b3AgPSBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3A7XG4gICAgbGVmdCA9IGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0O1xuXG4gICAgd2lkdGggLT0gKCBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0V2lkdGggKTtcbiAgICBoZWlnaHQgLT0gKCBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tV2lkdGggKTtcblxuICAgIGlmIChndXR0ZXJXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgbGVmdCArPSBndXR0ZXJXaWR0aDtcbiAgICAgIHdpZHRoIC09IGd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kcyA9IEJvdW5kcy5mcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0KHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCksXG4gICAgICAgICAgaW5uZXJCb3VuZHMgPSBib3VuZHM7IC8vL1xuXG4gICAgcmV0dXJuIGlubmVyQm91bmRzO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBsZXQgc2Nyb2xsYmFyVGhpY2tuZXNzID0gMDtcblxuICAgIGNvbnN0IHsgaGlkZGVuU2Nyb2xsYmFycyA9IERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmICghaGlkZGVuU2Nyb2xsYmFycykge1xuICAgICAgY29uc3QgeyBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKGZhbmN5U2Nyb2xsYmFycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBndXR0ZXJXaWR0aCA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGd1dHRlcldpZHRoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbm5lckJvdW5kcyA9IHRoaXMuZ2V0SW5uZXJCb3VuZHMoZ3V0dGVyV2lkdGgpLFxuICAgICAgICAgICAgcmljaFRleHRhcmVhQm91bmRzID0gaW5uZXJCb3VuZHM7IC8vL1xuXG4gICAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZSgpIHtcbiAgICBsZXQgaW5uZXJCb3VuZHMsXG4gICAgICAgIGd1dHRlcldpZHRoO1xuXG4gICAgZ3V0dGVyV2lkdGggPSBudWxsO1xuXG4gICAgaW5uZXJCb3VuZHMgPSB0aGlzLmdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKTtcblxuICAgIGNvbnN0IHByZXR0eVByaW50ZXJCb3VuZHMgPSBpbm5lckJvdW5kczsgIC8vL1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyQm91bmRzKHByZXR0eVByaW50ZXJCb3VuZHMpO1xuXG4gICAgZ3V0dGVyV2lkdGggPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKTtcblxuICAgIGlubmVyQm91bmRzID0gdGhpcy5nZXRJbm5lckJvdW5kcyhndXR0ZXJXaWR0aCk7XG5cbiAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IHRoaXMuZ2V0UGFkZGluZ0JvdHRvbSgpLFxuICAgICAgICAgIGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGluaXRpYWxMaW5lQ291bnQgPSB0aGlzLmdldEluaXRpYWxMaW5lQ291bnQoKSxcbiAgICAgICAgICBib3JkZXJCb3R0b21XaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyQm90dG9tV2lkdGgoKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpLFxuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCArIGluaXRpYWxMaW5lQ291bnQgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlckJvdHRvbVdpZHRoICsgc2Nyb2xsYmFyVGhpY2tuZXNzO1xuXG4gICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0KTtcblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFLCBkZWZlclJlbmRlciA9IERFRkFVTFRfREVGRVJfUkVOREVSIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuXG4gICAgaWYgKGRlZmVyUmVuZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmlyYUNvZGUgPSBERUZBVUxUX0ZJUkFfQ09ERSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZpcmFDb2RlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmlyYS1jb2RlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBoaWRkZW5HdXR0ZXIgPSBERUZBVUxUX0hJRERFTl9HVVRURVIsIGhpZGRlblNjcm9sbGJhcnMgPSBERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTLCBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IHRoaXMuc2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IHRoaXMuZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKCk7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPFByZXR0eVByaW50ZXIgaGlkZGVuR3V0dGVyPXtoaWRkZW5HdXR0ZXJ9IHNjcm9sbGJhclRoaWNrbmVzcz17c2Nyb2xsYmFyVGhpY2tuZXNzfSAvPixcbiAgICAgIDxSaWNoVGV4dGFyZWEgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IG9uU2Nyb2xsPXtzY3JvbGxIYW5kbGVyfSBoaWRkZW5TY3JvbGxiYXJzPXtoaWRkZW5TY3JvbGxiYXJzfSBmYW5jeVNjcm9sbGJhcnM9e2ZhbmN5U2Nyb2xsYmFyc30gYWN0aXZlIC8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0UGx1Z2luID0gdGhpcy5nZXRQbHVnaW4uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVZYXBwID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBXaWR0aCA9IHRoaXMuc2V0V2lkdGguYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBIZWlnaHQgPSB0aGlzLnNldEhlaWdodC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcExleGVyID0gdGhpcy5zZXRMZXhlci5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcFBhcnNlciA9IHRoaXMuc2V0UGFyc2VyLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICByZXNpemVZYXBwID0gdGhpcy5yZXNpemUuYmluZCh0aGlzKTsgIC8vL1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBnZXRQbHVnaW4sXG4gICAgICB1cGRhdGVZYXBwLFxuICAgICAgc2V0WWFwcFdpZHRoLFxuICAgICAgc2V0WWFwcEhlaWdodCxcbiAgICAgIHNldFlhcHBMZXhlcixcbiAgICAgIHNldFlhcHBQYXJzZXIsXG4gICAgICByZXNpemVZYXBwXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBjaGlsZEVsZW1lbnRzLCBlZGl0YWJsZSA9IERFRkFVTFRfRURJVEFCTEUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMucGx1Z2luLmdldExhbmd1YWdlKCksXG4gICAgICAgICAgY29udGVudCA9IGNvbnRlbnRGcm9tQ2hpbGRFbGVtZW50cyhjaGlsZEVsZW1lbnRzKSxcbiAgICAgICAgICByZWFkT25seSA9ICFlZGl0YWJsZSxcbiAgICAgICAgICBzY3JvbGxUb3AgPSAwLCAgLy8vXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IDA7IC8vL1xuXG4gICAgdGhpcy5zZXRMYW5ndWFnZShsYW5ndWFnZSk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhQ29udGVudChjb250ZW50KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhUmVhZE9ubHkocmVhZE9ubHkpO1xuXG4gICAgdGhpcy5vblJlc2l6ZSgoZXZlbnQsIGVsZW1lbnQpID0+IHRoaXMucmVzaXplKCkpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwieWFwcFwiXG4gIH07XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwiUGx1Z2luXCIsXG4gICAgXCJsYW5ndWFnZVwiLFxuICAgIFwiZmlyYUNvZGVcIixcbiAgICBcImVkaXRhYmxlXCIsXG4gICAgXCJkZWZlclJlbmRlclwiLFxuICAgIFwiaGlkZGVuR3V0dGVyXCIsXG4gICAgXCJub1Njcm9sbGJhcnNcIixcbiAgICBcImZhbmN5U2Nyb2xsYmFyc1wiXG4gIF07XG5cbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBDbGFzcyA9IFlhcHAsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29udGVudExhbmd1YWdlUGx1Z2luQW5kT3B0aW9ucyhjb250ZW50LCBsYW5ndWFnZSwgUGx1Z2luLCBvcHRpb25zKSxcbiAgICAgICAgICBwbHVnaW4gPSBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4obGFuZ3VhZ2UsIFBsdWdpbiksXG4gICAgICAgICAgeWFwcCA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCBwbHVnaW4pO1xuXG4gICAgcmV0dXJuIHlhcHA7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBsYW5ndWFnZSwgUGx1Z2luIH0gPSBwcm9wZXJ0aWVzLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFlhcHAucHJvdG90eXBlLCBzdHlsZU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShZYXBwKWBcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBcbiAgY29sb3I6ICR7Y29sb3VyfTtcbiAgY2FyZXQtY29sb3I6ICR7Y2FyZXRDb2xvdXJ9O1xuICBib3JkZXItY29sb3I6ICR7Ym9yZGVyQ29sb3VyfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQ29sb3VyfTtcblxuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LWZhbWlseTogXCJNZW5sb1wiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblxuICAuZmlyYS1jb2RlIHtcblxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJjYWx0XCIgMTtcbiAgICBcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIllhcHAiLCJzZWxlY3RvciIsInBsdWdpbiIsImdldFBsdWdpbiIsImdldENvbnRlbnQiLCJyaWNoVGV4dGFyZWFDb250ZW50IiwiZ2V0UmljaFRleHRhcmVhQ29udGVudCIsImNvbnRlbnQiLCJnZXRJbm5lckJvdW5kcyIsImd1dHRlcldpZHRoIiwidG9wIiwibGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJwYWRkaW5nVG9wIiwiZ2V0UGFkZGluZ1RvcCIsInBhZGRpbmdMZWZ0IiwiZ2V0UGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJnZXRQYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwiZ2V0UGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcFdpZHRoIiwiZ2V0Qm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJnZXRCb3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwiZ2V0Qm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiZ2V0Qm9yZGVyQm90dG9tV2lkdGgiLCJib3VuZHMiLCJmcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0IiwiaW5uZXJCb3VuZHMiLCJnZXRJbml0aWFsTGluZUNvdW50IiwibGluZUNvdW50IiwiaW5pdGlhbExpbmVDb3VudCIsImdldFNjcm9sbGJhclRoaWNrbmVzcyIsInNjcm9sbGJhclRoaWNrbmVzcyIsInByb3BlcnRpZXMiLCJoaWRkZW5TY3JvbGxiYXJzIiwiZmFuY3lTY3JvbGxiYXJzIiwic2V0TGV4ZXIiLCJsZXhlciIsInNldFBhcnNlciIsInBhcnNlciIsImNoYW5nZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJyaWNoVGV4dGFyZWEiLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwib25Db250ZW50Q2hhbmdlIiwiY29udGVudENoYW5nZUhhbmRsZXIiLCJ1cGRhdGUiLCJzY3JvbGxIYW5kbGVyIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJzY3JvbGxQcmV0dHlQcmludGVyIiwidG9rZW5zIiwiZ2V0VG9rZW5zIiwidXBkYXRlUHJldHR5UHJpbnRlciIsInJpY2hUZXh0YXJlYUJvdW5kcyIsInNldFJpY2hUZXh0YXJlYUJvdW5kcyIsInJlc2l6ZSIsInByZXR0eVByaW50ZXJCb3VuZHMiLCJzZXRQcmV0dHlQcmludGVyQm91bmRzIiwicmVzaXplUHJldHR5UHJpbnRlciIsInJlbmRlciIsImxpbmVIZWlnaHQiLCJnZXRMaW5lSGVpZ2h0Iiwic2V0SGVpZ2h0IiwiZGlkTW91bnQiLCJmaXJhQ29kZSIsImRlZmVyUmVuZGVyIiwiYWRkQ2xhc3MiLCJ3aWxsVW5tb3VudCIsInJlbW92ZUNsYXNzIiwiY2hpbGRFbGVtZW50cyIsImhpZGRlbkd1dHRlciIsImJpbmQiLCJvbkNoYW5nZSIsIm9uU2Nyb2xsIiwiYWN0aXZlIiwicGFyZW50Q29udGV4dCIsInVwZGF0ZVlhcHAiLCJzZXRZYXBwV2lkdGgiLCJzZXRXaWR0aCIsInNldFlhcHBIZWlnaHQiLCJzZXRZYXBwTGV4ZXIiLCJzZXRZYXBwUGFyc2VyIiwicmVzaXplWWFwcCIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiZWRpdGFibGUiLCJsYW5ndWFnZSIsImdldExhbmd1YWdlIiwicmVhZE9ubHkiLCJzZXRMYW5ndWFnZSIsInNldFJpY2hUZXh0YXJlYUNvbnRlbnQiLCJzZXRSaWNoVGV4dGFyZWFSZWFkT25seSIsIm9uUmVzaXplIiwiZnJvbUNvbnRlbnQiLCJQbHVnaW4iLCJvcHRpb25zIiwiQ2xhc3MiLCJ5YXBwIiwiZnJvbUNsYXNzIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFQSxHQUFNLENBQU4sS0FBTTtBQUVyQixHQUFnQixDQUFoQixNQUFnQjtBQUNmLEdBQWdCLENBQWhCLGFBQWdCO0FBQ2YsR0FBaUIsQ0FBakIsY0FB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
|
|
435
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBSZWFjdCwgQm91bmRzLCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHN0eWxlTWl4aW5zIGZyb20gXCIuL21peGlucy9zdHlsZVwiO1xuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Njcm9sbGJhclRoaWNrbmVzc1wiO1xuaW1wb3J0IHsgcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BsdWdpblwiO1xuaW1wb3J0IHsgcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Byb3BlcnRpZXNcIjtcbmltcG9ydCB7IGxpbmVDb3VudEZyb21Db250ZW50LCBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgY29sb3VyLCBjYXJldENvbG91ciwgYm9yZGVyQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyIH0gZnJvbSBcIi4vc2NoZW1lL2NvbG91clwiO1xuaW1wb3J0IHsgREVGQVVMVF9FRElUQUJMRSwgREVGQVVMVF9GSVJBX0NPREUsIERFRkFVTFRfREVGRVJfUkVOREVSLCBERUZBVUxUX0hJRERFTl9HVVRURVIsIERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMsIERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmNsYXNzIFlhcHAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IsIHBsdWdpbikge1xuICAgIHN1cGVyKHNlbGVjdG9yKTtcblxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZ2V0UGx1Z2luKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0UmljaFRleHRhcmVhQ29udGVudCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSByaWNoVGV4dGFyZWFDb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKSB7XG4gICAgbGV0IHRvcCxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgd2lkdGggPSB0aGlzLmdldFdpZHRoKCksXG4gICAgICAgIGhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCk7XG5cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0xlZnQgPSB0aGlzLmdldFBhZGRpbmdMZWZ0KCksXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRQYWRkaW5nUmlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tID0gdGhpcy5nZXRQYWRkaW5nQm90dG9tKCksXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlclRvcFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoID0gdGhpcy5nZXRCb3JkZXJMZWZ0V2lkdGgoKSxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoID0gdGhpcy5nZXRCb3JkZXJSaWdodFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCk7XG5cbiAgICB0b3AgPSBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3A7XG4gICAgbGVmdCA9IGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0O1xuXG4gICAgd2lkdGggLT0gKCBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0V2lkdGggKTtcbiAgICBoZWlnaHQgLT0gKCBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tV2lkdGggKTtcblxuICAgIGlmIChndXR0ZXJXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgbGVmdCArPSBndXR0ZXJXaWR0aDtcbiAgICAgIHdpZHRoIC09IGd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kcyA9IEJvdW5kcy5mcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0KHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCksXG4gICAgICAgICAgaW5uZXJCb3VuZHMgPSBib3VuZHM7IC8vL1xuXG4gICAgcmV0dXJuIGlubmVyQm91bmRzO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBsZXQgc2Nyb2xsYmFyVGhpY2tuZXNzID0gMDtcblxuICAgIGNvbnN0IHsgaGlkZGVuU2Nyb2xsYmFycyA9IERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmICghaGlkZGVuU2Nyb2xsYmFycykge1xuICAgICAgY29uc3QgeyBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKGZhbmN5U2Nyb2xsYmFycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBndXR0ZXJXaWR0aCA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGd1dHRlcldpZHRoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbm5lckJvdW5kcyA9IHRoaXMuZ2V0SW5uZXJCb3VuZHMoZ3V0dGVyV2lkdGgpLFxuICAgICAgICAgICAgcmljaFRleHRhcmVhQm91bmRzID0gaW5uZXJCb3VuZHM7IC8vL1xuXG4gICAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZSgpIHtcbiAgICBsZXQgaW5uZXJCb3VuZHMsXG4gICAgICAgIGd1dHRlcldpZHRoO1xuXG4gICAgZ3V0dGVyV2lkdGggPSBudWxsO1xuXG4gICAgaW5uZXJCb3VuZHMgPSB0aGlzLmdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKTtcblxuICAgIGNvbnN0IHByZXR0eVByaW50ZXJCb3VuZHMgPSBpbm5lckJvdW5kczsgIC8vL1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyQm91bmRzKHByZXR0eVByaW50ZXJCb3VuZHMpO1xuXG4gICAgZ3V0dGVyV2lkdGggPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKTtcblxuICAgIGlubmVyQm91bmRzID0gdGhpcy5nZXRJbm5lckJvdW5kcyhndXR0ZXJXaWR0aCk7XG5cbiAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IHRoaXMuZ2V0UGFkZGluZ0JvdHRvbSgpLFxuICAgICAgICAgIGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGluaXRpYWxMaW5lQ291bnQgPSB0aGlzLmdldEluaXRpYWxMaW5lQ291bnQoKSxcbiAgICAgICAgICBib3JkZXJCb3R0b21XaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyQm90dG9tV2lkdGgoKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpLFxuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCArIGluaXRpYWxMaW5lQ291bnQgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlckJvdHRvbVdpZHRoICsgc2Nyb2xsYmFyVGhpY2tuZXNzO1xuXG4gICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0KTtcblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFLCBkZWZlclJlbmRlciA9IERFRkFVTFRfREVGRVJfUkVOREVSIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuXG4gICAgaWYgKGRlZmVyUmVuZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmlyYUNvZGUgPSBERUZBVUxUX0ZJUkFfQ09ERSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZpcmFDb2RlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmlyYS1jb2RlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBoaWRkZW5HdXR0ZXIgPSBERUZBVUxUX0hJRERFTl9HVVRURVIsIGhpZGRlblNjcm9sbGJhcnMgPSBERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTLCBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IHRoaXMuc2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IHRoaXMuZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKCk7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPFByZXR0eVByaW50ZXIgaGlkZGVuR3V0dGVyPXtoaWRkZW5HdXR0ZXJ9IHNjcm9sbGJhclRoaWNrbmVzcz17c2Nyb2xsYmFyVGhpY2tuZXNzfSAvPixcbiAgICAgIDxSaWNoVGV4dGFyZWEgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IG9uU2Nyb2xsPXtzY3JvbGxIYW5kbGVyfSBoaWRkZW5TY3JvbGxiYXJzPXtoaWRkZW5TY3JvbGxiYXJzfSBmYW5jeVNjcm9sbGJhcnM9e2ZhbmN5U2Nyb2xsYmFyc30gYWN0aXZlIC8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0UGx1Z2luID0gdGhpcy5nZXRQbHVnaW4uYmluZCh0aGlzKSxcbiAgICAgICAgICBnZXRDb250ZW50ID0gdGhpcy5nZXRDb250ZW50LmJpbmQodGhpcyksXG4gICAgICAgICAgdXBkYXRlWWFwcCA9IHRoaXMudXBkYXRlLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICByZXNpemVZYXBwID0gdGhpcy5yZXNpemUuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBXaWR0aCA9IHRoaXMuc2V0V2lkdGguYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBIZWlnaHQgPSB0aGlzLnNldEhlaWdodC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcExleGVyID0gdGhpcy5zZXRMZXhlci5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcFBhcnNlciA9IHRoaXMuc2V0UGFyc2VyLmJpbmQodGhpcyk7ICAvLy9cblxuICAgIHJldHVybiAoe1xuICAgICAgZ2V0UGx1Z2luLFxuICAgICAgZ2V0Q29udGVudCxcbiAgICAgIHVwZGF0ZVlhcHAsXG4gICAgICByZXNpemVZYXBwLFxuICAgICAgc2V0WWFwcFdpZHRoLFxuICAgICAgc2V0WWFwcEhlaWdodCxcbiAgICAgIHNldFlhcHBMZXhlcixcbiAgICAgIHNldFlhcHBQYXJzZXJcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICBjb25zdCB7IGNoaWxkRWxlbWVudHMsIGVkaXRhYmxlID0gREVGQVVMVF9FRElUQUJMRSB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIGxhbmd1YWdlID0gdGhpcy5wbHVnaW4uZ2V0TGFuZ3VhZ2UoKSxcbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21DaGlsZEVsZW1lbnRzKGNoaWxkRWxlbWVudHMpLFxuICAgICAgICAgIHJlYWRPbmx5ID0gIWVkaXRhYmxlLFxuICAgICAgICAgIHNjcm9sbFRvcCA9IDAsICAvLy9cbiAgICAgICAgICBzY3JvbGxMZWZ0ID0gMDsgLy8vXG5cbiAgICB0aGlzLnNldExhbmd1YWdlKGxhbmd1YWdlKTtcblxuICAgIHRoaXMuc2Nyb2xsUHJldHR5UHJpbnRlcihzY3JvbGxUb3AsIHNjcm9sbExlZnQpO1xuXG4gICAgdGhpcy5zZXRSaWNoVGV4dGFyZWFDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgdGhpcy5zZXRSaWNoVGV4dGFyZWFSZWFkT25seShyZWFkT25seSk7XG5cbiAgICB0aGlzLm9uUmVzaXplKChldmVudCwgZWxlbWVudCkgPT4gdGhpcy5yZXNpemUoKSk7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJ5YXBwXCJcbiAgfTtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJQbHVnaW5cIixcbiAgICBcImxhbmd1YWdlXCIsXG4gICAgXCJmaXJhQ29kZVwiLFxuICAgIFwiZWRpdGFibGVcIixcbiAgICBcImRlZmVyUmVuZGVyXCIsXG4gICAgXCJoaWRkZW5HdXR0ZXJcIixcbiAgICBcIm5vU2Nyb2xsYmFyc1wiLFxuICAgIFwiZmFuY3lTY3JvbGxiYXJzXCJcbiAgXTtcblxuICBzdGF0aWMgZnJvbUNvbnRlbnQoY29udGVudCwgbGFuZ3VhZ2UsIFBsdWdpbiwgb3B0aW9ucykge1xuICAgIGNvbnN0IENsYXNzID0gWWFwcCxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zKGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMpIHtcbiAgICBjb25zdCB7IGxhbmd1YWdlLCBQbHVnaW4gfSA9IHByb3BlcnRpZXMsXG4gICAgICAgICAgcGx1Z2luID0gcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luKGxhbmd1YWdlLCBQbHVnaW4pLFxuICAgICAgICAgIHlhcHAgPSBFbGVtZW50LmZyb21DbGFzcyhDbGFzcywgcHJvcGVydGllcywgcGx1Z2luKTtcblxuICAgIHJldHVybiB5YXBwO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oWWFwcC5wcm90b3R5cGUsIHN0eWxlTWl4aW5zKTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKFlhcHApYFxuXG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIFxuICBjb2xvcjogJHtjb2xvdXJ9O1xuICBjYXJldC1jb2xvcjogJHtjYXJldENvbG91cn07XG4gIGJvcmRlci1jb2xvcjogJHtib3JkZXJDb2xvdXJ9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2JhY2tncm91bmRDb2xvdXJ9O1xuXG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIk1lbmxvXCIsIFwiTHVjaWRhIFNhbnMgVHlwZXdyaXRlclwiLCBtb25vc3BhY2U7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogbm9ybWFsO1xuXG4gIC5maXJhLWNvZGUge1xuXG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgIGZvbnQtZmFtaWx5OiBcIkZpcmEgQ29kZVwiO1xuICAgIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiBcImNhbHRcIiAxO1xuICAgIFxuICB9XG5cbmA7XG4iXSwibmFtZXMiOlsiWWFwcCIsInNlbGVjdG9yIiwicGx1Z2luIiwiZ2V0UGx1Z2luIiwiZ2V0Q29udGVudCIsInJpY2hUZXh0YXJlYUNvbnRlbnQiLCJnZXRSaWNoVGV4dGFyZWFDb250ZW50IiwiY29udGVudCIsImdldElubmVyQm91bmRzIiwiZ3V0dGVyV2lkdGgiLCJ0b3AiLCJsZWZ0Iiwid2lkdGgiLCJnZXRXaWR0aCIsImhlaWdodCIsImdldEhlaWdodCIsInBhZGRpbmdUb3AiLCJnZXRQYWRkaW5nVG9wIiwicGFkZGluZ0xlZnQiLCJnZXRQYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsImdldFBhZGRpbmdSaWdodCIsInBhZGRpbmdCb3R0b20iLCJnZXRQYWRkaW5nQm90dG9tIiwiYm9yZGVyVG9wV2lkdGgiLCJnZXRCb3JkZXJUb3BXaWR0aCIsImJvcmRlckxlZnRXaWR0aCIsImdldEJvcmRlckxlZnRXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJnZXRCb3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJnZXRCb3JkZXJCb3R0b21XaWR0aCIsImJvdW5kcyIsImZyb21Ub3BMZWZ0V2lkdGhBbmRIZWlnaHQiLCJpbm5lckJvdW5kcyIsImdldEluaXRpYWxMaW5lQ291bnQiLCJsaW5lQ291bnQiLCJpbml0aWFsTGluZUNvdW50IiwiZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIiwic2Nyb2xsYmFyVGhpY2tuZXNzIiwicHJvcGVydGllcyIsImhpZGRlblNjcm9sbGJhcnMiLCJmYW5jeVNjcm9sbGJhcnMiLCJzZXRMZXhlciIsImxleGVyIiwic2V0UGFyc2VyIiwicGFyc2VyIiwiY2hhbmdlSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsInJpY2hUZXh0YXJlYSIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJvbkNvbnRlbnRDaGFuZ2UiLCJjb250ZW50Q2hhbmdlSGFuZGxlciIsInVwZGF0ZSIsInNjcm9sbEhhbmRsZXIiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsInNjcm9sbFByZXR0eVByaW50ZXIiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJ1cGRhdGVQcmV0dHlQcmludGVyIiwicmljaFRleHRhcmVhQm91bmRzIiwic2V0UmljaFRleHRhcmVhQm91bmRzIiwicmVzaXplIiwicHJldHR5UHJpbnRlckJvdW5kcyIsInNldFByZXR0eVByaW50ZXJCb3VuZHMiLCJyZXNpemVQcmV0dHlQcmludGVyIiwicmVuZGVyIiwibGluZUhlaWdodCIsImdldExpbmVIZWlnaHQiLCJzZXRIZWlnaHQiLCJkaWRNb3VudCIsImZpcmFDb2RlIiwiZGVmZXJSZW5kZXIiLCJhZGRDbGFzcyIsIndpbGxVbm1vdW50IiwicmVtb3ZlQ2xhc3MiLCJjaGlsZEVsZW1lbnRzIiwiaGlkZGVuR3V0dGVyIiwiYmluZCIsIm9uQ2hhbmdlIiwib25TY3JvbGwiLCJhY3RpdmUiLCJwYXJlbnRDb250ZXh0IiwidXBkYXRlWWFwcCIsInJlc2l6ZVlhcHAiLCJzZXRZYXBwV2lkdGgiLCJzZXRXaWR0aCIsInNldFlhcHBIZWlnaHQiLCJzZXRZYXBwTGV4ZXIiLCJzZXRZYXBwUGFyc2VyIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJlZGl0YWJsZSIsImxhbmd1YWdlIiwiZ2V0TGFuZ3VhZ2UiLCJyZWFkT25seSIsInNldExhbmd1YWdlIiwic2V0UmljaFRleHRhcmVhQ29udGVudCIsInNldFJpY2hUZXh0YXJlYVJlYWRPbmx5Iiwib25SZXNpemUiLCJmcm9tQ29udGVudCIsIlBsdWdpbiIsIm9wdGlvbnMiLCJDbGFzcyIsInlhcHAiLCJmcm9tQ2xhc3MiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFVSxHQUFpQixDQUFqQixjQUFpQjtBQUVBLEdBQU0sQ0FBTixL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
|
package/package.json
CHANGED
package/src/richTextarea.js
CHANGED
|
@@ -59,12 +59,14 @@ export default withStyle(class extends RichTextarea {
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
parentContext() {
|
|
62
|
-
const
|
|
62
|
+
const getContent = this.getContent.bind(this), ///
|
|
63
|
+
setRichTextareaBounds = this.setBounds.bind(this), ///
|
|
63
64
|
getRichTextareaContent = this.getContent.bind(this), ///
|
|
64
65
|
setRichTextareaContent = this.setContent.bind(this), ///
|
|
65
66
|
setRichTextareaReadOnly = this.setReadOnly.bind(this); ///
|
|
66
67
|
|
|
67
68
|
return ({
|
|
69
|
+
getContent,
|
|
68
70
|
setRichTextareaBounds,
|
|
69
71
|
getRichTextareaContent,
|
|
70
72
|
setRichTextareaContent,
|
package/src/syntax.js
CHANGED
|
@@ -77,12 +77,11 @@ class Syntax extends ScrollableElement {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
setInitialState() {
|
|
80
|
-
const language = null
|
|
81
|
-
initialState = {
|
|
82
|
-
language
|
|
83
|
-
};
|
|
80
|
+
const language = null;
|
|
84
81
|
|
|
85
|
-
this.setState(
|
|
82
|
+
this.setState({
|
|
83
|
+
language
|
|
84
|
+
});
|
|
86
85
|
}
|
|
87
86
|
|
|
88
87
|
initialise() {
|
package/src/yapp.js
CHANGED
|
@@ -207,21 +207,23 @@ class Yapp extends Element {
|
|
|
207
207
|
|
|
208
208
|
parentContext() {
|
|
209
209
|
const getPlugin = this.getPlugin.bind(this),
|
|
210
|
+
getContent = this.getContent.bind(this),
|
|
210
211
|
updateYapp = this.update.bind(this), ///
|
|
212
|
+
resizeYapp = this.resize.bind(this), ///
|
|
211
213
|
setYappWidth = this.setWidth.bind(this), ///
|
|
212
214
|
setYappHeight = this.setHeight.bind(this), ///
|
|
213
215
|
setYappLexer = this.setLexer.bind(this), ///
|
|
214
|
-
setYappParser = this.setParser.bind(this)
|
|
215
|
-
resizeYapp = this.resize.bind(this); ///
|
|
216
|
+
setYappParser = this.setParser.bind(this); ///
|
|
216
217
|
|
|
217
218
|
return ({
|
|
218
219
|
getPlugin,
|
|
220
|
+
getContent,
|
|
219
221
|
updateYapp,
|
|
222
|
+
resizeYapp,
|
|
220
223
|
setYappWidth,
|
|
221
224
|
setYappHeight,
|
|
222
225
|
setYappLexer,
|
|
223
|
-
setYappParser
|
|
224
|
-
resizeYapp
|
|
226
|
+
setYappParser
|
|
225
227
|
});
|
|
226
228
|
}
|
|
227
229
|
|