yapp 2.1.16 → 2.2.0

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/lib/defaults.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- exports.DEFAULT_FANCY_SCROLLBARS = exports.DEFAULT_HIDDEN_GUTTER = exports.DEFAULT_DEFER_RENDER = exports.DEFAULT_FIRA_CODE = exports.DEFAULT_EDITABLE = exports.DEFAULT_HOST = void 0;
5
+ exports.DEFAULT_HIDDEN_SCROLLBARS = exports.DEFAULT_FANCY_SCROLLBARS = exports.DEFAULT_HIDDEN_GUTTER = exports.DEFAULT_DEFER_RENDER = exports.DEFAULT_FIRA_CODE = exports.DEFAULT_EDITABLE = exports.DEFAULT_HOST = void 0;
6
6
  var DEFAULT_HOST = "";
7
7
  exports.DEFAULT_HOST = DEFAULT_HOST;
8
8
  var DEFAULT_EDITABLE = false;
@@ -15,5 +15,7 @@ var DEFAULT_HIDDEN_GUTTER = false;
15
15
  exports.DEFAULT_HIDDEN_GUTTER = DEFAULT_HIDDEN_GUTTER;
16
16
  var DEFAULT_FANCY_SCROLLBARS = false;
17
17
  exports.DEFAULT_FANCY_SCROLLBARS = DEFAULT_FANCY_SCROLLBARS;
18
+ var DEFAULT_HIDDEN_SCROLLBARS = false;
19
+ exports.DEFAULT_HIDDEN_SCROLLBARS = DEFAULT_HIDDEN_SCROLLBARS;
18
20
 
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSE9TVCA9IFwiXCI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9FRElUQUJMRSA9IGZhbHNlO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklSQV9DT0RFID0gZmFsc2U7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ERUZFUl9SRU5ERVIgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJRERFTl9HVVRURVIgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgPSBmYWxzZTtcbiJdLCJuYW1lcyI6WyJERUZBVUxUX0hPU1QiLCJERUZBVUxUX0VESVRBQkxFIiwiREVGQVVMVF9GSVJBX0NPREUiLCJERUZBVUxUX0RFRkVSX1JFTkRFUiIsIkRFRkFVTFRfSElEREVOX0dVVFRFUiIsIkRFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFTCxHQUFLLENBQUNBLFlBQVksR0FBRyxDQUFFO1FBQWpCQSxZQUFZLEdBQVpBLFlBQVk7QUFDbEIsR0FBSyxDQUFDQyxnQkFBZ0IsR0FBRyxLQUFLO1FBQXhCQSxnQkFBZ0IsR0FBaEJBLGdCQUFnQjtBQUN0QixHQUFLLENBQUNDLGlCQUFpQixHQUFHLEtBQUs7UUFBekJBLGlCQUFpQixHQUFqQkEsaUJBQWlCO0FBQ3ZCLEdBQUssQ0FBQ0Msb0JBQW9CLEdBQUcsS0FBSztRQUE1QkEsb0JBQW9CLEdBQXBCQSxvQkFBb0I7QUFDMUIsR0FBSyxDQUFDQyxxQkFBcUIsR0FBRyxLQUFLO1FBQTdCQSxxQkFBcUIsR0FBckJBLHFCQUFxQjtBQUMzQixHQUFLLENBQUNDLHdCQUF3QixHQUFHLEtBQUs7UUFBaENBLHdCQUF3QixHQUF4QkEsd0JBQXdCIn0=
21
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSE9TVCA9IFwiXCI7XG5leHBvcnQgY29uc3QgREVGQVVMVF9FRElUQUJMRSA9IGZhbHNlO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklSQV9DT0RFID0gZmFsc2U7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ERUZFUl9SRU5ERVIgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJRERFTl9HVVRURVIgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgPSBmYWxzZTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTID0gZmFsc2U7XG4iXSwibmFtZXMiOlsiREVGQVVMVF9IT1NUIiwiREVGQVVMVF9FRElUQUJMRSIsIkRFRkFVTFRfRklSQV9DT0RFIiwiREVGQVVMVF9ERUZFUl9SRU5ERVIiLCJERUZBVUxUX0hJRERFTl9HVVRURVIiLCJERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMiLCJERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVMLEdBQUssQ0FBQ0EsWUFBWSxHQUFHLENBQUU7UUFBakJBLFlBQVksR0FBWkEsWUFBWTtBQUNsQixHQUFLLENBQUNDLGdCQUFnQixHQUFHLEtBQUs7UUFBeEJBLGdCQUFnQixHQUFoQkEsZ0JBQWdCO0FBQ3RCLEdBQUssQ0FBQ0MsaUJBQWlCLEdBQUcsS0FBSztRQUF6QkEsaUJBQWlCLEdBQWpCQSxpQkFBaUI7QUFDdkIsR0FBSyxDQUFDQyxvQkFBb0IsR0FBRyxLQUFLO1FBQTVCQSxvQkFBb0IsR0FBcEJBLG9CQUFvQjtBQUMxQixHQUFLLENBQUNDLHFCQUFxQixHQUFHLEtBQUs7UUFBN0JBLHFCQUFxQixHQUFyQkEscUJBQXFCO0FBQzNCLEdBQUssQ0FBQ0Msd0JBQXdCLEdBQUcsS0FBSztRQUFoQ0Esd0JBQXdCLEdBQXhCQSx3QkFBd0I7QUFDOUIsR0FBSyxDQUFDQyx5QkFBeUIsR0FBRyxLQUFLO1FBQWpDQSx5QkFBeUIsR0FBekJBLHlCQUF5QiJ9
@@ -100,11 +100,10 @@ var _default = (0, _easyWithStyle).default(function() {
100
100
  _defineProperty(_class, "defaultProperties", {
101
101
  editable: true,
102
102
  firaCode: true,
103
- hiddenGutter: false,
104
- fancyScrollbars: true
103
+ hiddenScrollbars: true
105
104
  });
106
105
  return _class;
107
106
  }())(_templateObject());
108
107
  exports.default = _default;
109
108
 
110
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3lhcHAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCBZYXBwIGZyb20gXCIuLi9pbmRleFwiOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShjbGFzcyBleHRlbmRzIFlhcHAge1xuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgZWRpdGFibGU6IHRydWUsXG4gICAgZmlyYUNvZGU6IHRydWUsXG4gICAgaGlkZGVuR3V0dGVyOiBmYWxzZSxcbiAgICBmYW5jeVNjcm9sbGJhcnM6IHRydWVcbiAgfTtcbn0pYFxuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICM2NjY7XG4gIFxuYDtcbiJdLCJuYW1lcyI6WyJkZWZhdWx0UHJvcGVydGllcyIsImVkaXRhYmxlIiwiZmlyYUNvZGUiLCJoaWRkZW5HdXR0ZXIiLCJmYW5jeVNjcm9sbGJhcnMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFdEIsR0FBVSxDQUFWLE1BQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBU3hCLENBS0g7Ozs7Ozs7bUJBaEJzQixjQUFpQjsrQkFJZCxRQUFROzs7Ozs7O01BRmhCLE1BQVU7NEJBR2xCQSxDQUFpQixvQkFBRyxDQUFDO1FBQzFCQyxRQUFRLEVBQUUsSUFBSTtRQUNkQyxRQUFRLEVBQUUsSUFBSTtRQUNkQyxZQUFZLEVBQUUsS0FBSztRQUNuQkMsZUFBZSxFQUFFLElBQUk7SUFDdkIsQ0FBQyJ9
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3lhcHAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCBZYXBwIGZyb20gXCIuLi9pbmRleFwiOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShjbGFzcyBleHRlbmRzIFlhcHAge1xuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgZWRpdGFibGU6IHRydWUsXG4gICAgZmlyYUNvZGU6IHRydWUsXG4gICAgaGlkZGVuU2Nyb2xsYmFyczogdHJ1ZVxuICB9O1xufSlgXG5cbiAgYm9yZGVyOiAxcHggc29saWQ7XG4gIGJvcmRlci1jb2xvcjogIzY2NjtcbiAgXG5gO1xuIl0sIm5hbWVzIjpbImRlZmF1bHRQcm9wZXJ0aWVzIiwiZWRpdGFibGUiLCJmaXJhQ29kZSIsImhpZGRlblNjcm9sbGJhcnMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFdEIsR0FBVSxDQUFWLE1BQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBUXhCLENBS0g7Ozs7Ozs7bUJBZnNCLGNBQWlCOytCQUlkLFFBQVE7Ozs7Ozs7TUFGaEIsTUFBVTs0QkFHbEJBLENBQWlCLG9CQUFHLENBQUM7UUFDMUJDLFFBQVEsRUFBRSxJQUFJO1FBQ2RDLFFBQVEsRUFBRSxJQUFJO1FBQ2RDLGdCQUFnQixFQUFFLElBQUk7SUFDeEIsQ0FBQyJ9
@@ -122,7 +122,7 @@ function _templateObject() {
122
122
  var data = _taggedTemplateLiteral([
123
123
  "\n\n color: transparent;\n width: 100%;\n height: 100%;\n cursor: auto;\n resize: none;\n outline: none;\n z-index: 1;\n tab-size: 2;\n position: absolute;\n overflow: scroll;\n border-top: none;\n white-space: pre;\n overflow-wrap: normal;\n background-color: transparent;\n \n ::selection {\n color: ",
124
124
  ";\n background-color: ",
125
- ";\n }\n \n .fancy-scrollbars::-webkit-scrollbar {\n width: ",
125
+ ";\n }\n \n .hidden-scrollbars {\n overflow: hidden;\n }\n \n .fancy-scrollbars::-webkit-scrollbar {\n width: ",
126
126
  ";\n height: ",
127
127
  ";\n }\n\n .fancy-scrollbars::-webkit-scrollbar-track {\n display: none;\n }\n\n .fancy-scrollbars::-webkit-scrollbar-thumb {\n border: 2px solid ",
128
128
  ";\n box-shadow: inset 0 0 1px ",
@@ -167,20 +167,26 @@ var _default = (0, _easyWithStyle).default(function() {
167
167
  {
168
168
  key: "didMount",
169
169
  value: function didMount() {
170
- var fancyScrollbars = this.properties.fancyScrollbars;
170
+ var _properties = this.properties, fancyScrollbars = _properties.fancyScrollbars, hiddenScrollbars = _properties.hiddenScrollbars;
171
171
  if (fancyScrollbars) {
172
172
  this.addClass("fancy-scrollbars");
173
173
  }
174
+ if (hiddenScrollbars) {
175
+ this.addClass("hidden-scrollbars");
176
+ }
174
177
  _get(_getPrototypeOf(_class.prototype), "didMount", this).call(this);
175
178
  }
176
179
  },
177
180
  {
178
181
  key: "willUnmount",
179
182
  value: function willUnmount() {
180
- var fancyScrollbars = this.properties.fancyScrollbars;
183
+ var _properties = this.properties, fancyScrollbars = _properties.fancyScrollbars, hiddenScrollbars = _properties.hiddenScrollbars;
181
184
  if (fancyScrollbars) {
182
185
  this.removeClass("fancy-scrollbars");
183
186
  }
187
+ if (hiddenScrollbars) {
188
+ this.removeClass("hidden-scrollbars");
189
+ }
184
190
  _get(_getPrototypeOf(_class.prototype), "willUnmount", this).call(this);
185
191
  }
186
192
  },
@@ -209,4 +215,4 @@ var _default = (0, _easyWithStyle).default(function() {
209
215
  }())(_templateObject(), _colour.selectionColour, _colour.selectionBackgroundColour, _styles.scrollbarThickness, _styles.scrollbarThickness, _colour.backgroundColour, _colour.scrollbarThumbBoxShadowColour, _styles.scrollbarThumbBorderRadius, _colour.scrollbarThumbBackgroundColour);
210
216
  exports.default = _default;
211
217
 
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCJlYXN5LXJpY2h0ZXh0YXJlYVwiO1xuaW1wb3J0IHsgc2Nyb2xsYmFyVGhpY2tuZXNzLCBzY3JvbGxiYXJUaHVtYkJvcmRlclJhZGl1cyB9IGZyb20gXCIuL3N0eWxlc1wiO1xuaW1wb3J0IHsgc2VsZWN0aW9uQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyLCBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3VyLCBzY3JvbGxiYXJUaHVtYkJveFNoYWRvd0NvbG91ciwgc2Nyb2xsYmFyVGh1bWJCYWNrZ3JvdW5kQ29sb3VyICB9IGZyb20gXCIuL3NjaGVtZS9jb2xvdXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKGNsYXNzIGV4dGVuZHMgUmljaFRleHRhcmVhIHtcbiAgcG9zaXRpb24odG9wLCBsZWZ0KSB7XG4gICAgdG9wID0gYCR7dG9wfXB4YDtcbiAgICBsZWZ0ID0gYCR7bGVmdH1weGA7XG5cbiAgICBjb25zdCBjc3MgPSB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0XG4gICAgfTtcblxuICAgIHRoaXMuY3NzKGNzcyk7XG4gIH1cblxuICBzZXRCb3VuZHMoYm91bmRzKSB7XG4gICAgY29uc3QgdG9wID0gYm91bmRzLmdldFRvcCgpLFxuICAgICAgICAgIGxlZnQgPSBib3VuZHMuZ2V0TGVmdCgpLFxuICAgICAgICAgIHdpZHRoID0gYm91bmRzLmdldFdpZHRoKCksXG4gICAgICAgICAgaGVpZ2h0ID0gYm91bmRzLmdldEhlaWdodCgpO1xuXG4gICAgdGhpcy5wb3NpdGlvbih0b3AsIGxlZnQpO1xuICAgIHRoaXMuc2V0V2lkdGgod2lkdGgpO1xuICAgIHRoaXMuc2V0SGVpZ2h0KGhlaWdodCk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGZhbmN5U2Nyb2xsYmFycyB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZhbmN5U2Nyb2xsYmFycykge1xuICAgICAgdGhpcy5hZGRDbGFzcyhcImZhbmN5LXNjcm9sbGJhcnNcIik7XG4gICAgfVxuXG4gICAgc3VwZXIuZGlkTW91bnQoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmFuY3lTY3JvbGxiYXJzIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmFuY3lTY3JvbGxiYXJzKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmFuY3ktc2Nyb2xsYmFyc1wiKTtcbiAgICB9XG5cbiAgICBzdXBlci53aWxsVW5tb3VudCgpO1xuICB9XG5cbiAgcGFyZW50Q29udGV4dCgpIHtcbiAgICBjb25zdCBzZXRSaWNoVGV4dGFyZWFCb3VuZHMgPSB0aGlzLnNldEJvdW5kcy5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgZ2V0UmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0Q29udGVudC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0UmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuc2V0Q29udGVudC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0UmljaFRleHRhcmVhUmVhZE9ubHkgPSB0aGlzLnNldFJlYWRPbmx5LmJpbmQodGhpcyk7ICAvLy9cblxuICAgIHJldHVybiAoe1xuICAgICAgc2V0UmljaFRleHRhcmVhQm91bmRzLFxuICAgICAgZ2V0UmljaFRleHRhcmVhQ29udGVudCxcbiAgICAgIHNldFJpY2hUZXh0YXJlYUNvbnRlbnQsXG4gICAgICBzZXRSaWNoVGV4dGFyZWFSZWFkT25seVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIHNwZWxsQ2hlY2s6IFwiZmFsc2VcIlxuICB9O1xuXG4gIHN0YXRpYyBpZ25vcmVkUHJvcGVydGllcyA9IFtcbiAgICBcImZhbmN5U2Nyb2xsYmFyc1wiXG4gIF07XG59KWBcblxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGN1cnNvcjogYXV0bztcbiAgcmVzaXplOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICB6LWluZGV4OiAxO1xuICB0YWItc2l6ZTogMjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdmVyZmxvdzogc2Nyb2xsO1xuICBib3JkZXItdG9wOiBub25lO1xuICB3aGl0ZS1zcGFjZTogcHJlO1xuICBvdmVyZmxvdy13cmFwOiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBcbiAgOjpzZWxlY3Rpb24ge1xuICAgIGNvbG9yOiAke3NlbGVjdGlvbkNvbG91cn07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3VyfTtcbiAgfVxuICBcbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogJHtzY3JvbGxiYXJUaGlja25lc3N9O1xuICAgIGhlaWdodDogJHtzY3JvbGxiYXJUaGlja25lc3N9O1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAke2JhY2tncm91bmRDb2xvdXJ9O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggJHtzY3JvbGxiYXJUaHVtYkJveFNoYWRvd0NvbG91cn07XG4gICAgYm9yZGVyLXJhZGl1czogJHtzY3JvbGxiYXJUaHVtYkJvcmRlclJhZGl1c307XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtzY3JvbGxiYXJUaHVtYkJhY2tncm91bmRDb2xvdXJ9O1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGNhcmV0LWNvbG9yOiBpbmhlcml0O1xuICBcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBpbmhlcml0O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7XG5cbmA7XG4iXSwibmFtZXMiOlsicG9zaXRpb24iLCJ0b3AiLCJsZWZ0IiwiY3NzIiwic2V0Qm91bmRzIiwiYm91bmRzIiwiZ2V0VG9wIiwiZ2V0TGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJzZXRXaWR0aCIsInNldEhlaWdodCIsImRpZE1vdW50IiwiZmFuY3lTY3JvbGxiYXJzIiwicHJvcGVydGllcyIsImFkZENsYXNzIiwid2lsbFVubW91bnQiLCJyZW1vdmVDbGFzcyIsInBhcmVudENvbnRleHQiLCJzZXRSaWNoVGV4dGFyZWFCb3VuZHMiLCJiaW5kIiwiZ2V0UmljaFRleHRhcmVhQ29udGVudCIsImdldENvbnRlbnQiLCJzZXRSaWNoVGV4dGFyZWFDb250ZW50Iiwic2V0Q29udGVudCIsInNldFJpY2hUZXh0YXJlYVJlYWRPbmx5Iiwic2V0UmVhZE9ubHkiLCJkZWZhdWx0UHJvcGVydGllcyIsInNwZWxsQ2hlY2siLCJpZ25vcmVkUHJvcGVydGllcyJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFVSxHQUFpQixDQUFqQixjQUFpQjtBQUVWLEdBQW1CLENBQW5CLGlCQUFtQjtBQUNlLEdBQVUsQ0FBVixPQUFVO0FBQ29FLEdBQWlCLENBQWpCLE9BQWlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yaWNoVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IFJpY2hUZXh0YXJlYSB9IGZyb20gXCJlYXN5LXJpY2h0ZXh0YXJlYVwiO1xuaW1wb3J0IHsgc2Nyb2xsYmFyVGhpY2tuZXNzLCBzY3JvbGxiYXJUaHVtYkJvcmRlclJhZGl1cyB9IGZyb20gXCIuL3N0eWxlc1wiO1xuaW1wb3J0IHsgc2VsZWN0aW9uQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyLCBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3VyLCBzY3JvbGxiYXJUaHVtYkJveFNoYWRvd0NvbG91ciwgc2Nyb2xsYmFyVGh1bWJCYWNrZ3JvdW5kQ29sb3VyICB9IGZyb20gXCIuL3NjaGVtZS9jb2xvdXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlKGNsYXNzIGV4dGVuZHMgUmljaFRleHRhcmVhIHtcbiAgcG9zaXRpb24odG9wLCBsZWZ0KSB7XG4gICAgdG9wID0gYCR7dG9wfXB4YDtcbiAgICBsZWZ0ID0gYCR7bGVmdH1weGA7XG5cbiAgICBjb25zdCBjc3MgPSB7XG4gICAgICB0b3AsXG4gICAgICBsZWZ0XG4gICAgfTtcblxuICAgIHRoaXMuY3NzKGNzcyk7XG4gIH1cblxuICBzZXRCb3VuZHMoYm91bmRzKSB7XG4gICAgY29uc3QgdG9wID0gYm91bmRzLmdldFRvcCgpLFxuICAgICAgICAgIGxlZnQgPSBib3VuZHMuZ2V0TGVmdCgpLFxuICAgICAgICAgIHdpZHRoID0gYm91bmRzLmdldFdpZHRoKCksXG4gICAgICAgICAgaGVpZ2h0ID0gYm91bmRzLmdldEhlaWdodCgpO1xuXG4gICAgdGhpcy5wb3NpdGlvbih0b3AsIGxlZnQpO1xuICAgIHRoaXMuc2V0V2lkdGgod2lkdGgpO1xuICAgIHRoaXMuc2V0SGVpZ2h0KGhlaWdodCk7XG4gIH1cblxuICBkaWRNb3VudCgpIHtcbiAgICBjb25zdCB7IGZhbmN5U2Nyb2xsYmFycywgaGlkZGVuU2Nyb2xsYmFycyB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZhbmN5U2Nyb2xsYmFycykge1xuICAgICAgdGhpcy5hZGRDbGFzcyhcImZhbmN5LXNjcm9sbGJhcnNcIik7XG4gICAgfVxuXG4gICAgaWYgKGhpZGRlblNjcm9sbGJhcnMpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJoaWRkZW4tc2Nyb2xsYmFyc1wiKTtcbiAgICB9XG5cbiAgICBzdXBlci5kaWRNb3VudCgpO1xuICB9XG5cbiAgd2lsbFVubW91bnQoKSB7XG4gICAgY29uc3QgeyBmYW5jeVNjcm9sbGJhcnMsIGhpZGRlblNjcm9sbGJhcnMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmIChmYW5jeVNjcm9sbGJhcnMpIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2xhc3MoXCJmYW5jeS1zY3JvbGxiYXJzXCIpO1xuICAgIH1cblxuICAgIGlmIChoaWRkZW5TY3JvbGxiYXJzKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiaGlkZGVuLXNjcm9sbGJhcnNcIik7XG4gICAgfVxuXG4gICAgc3VwZXIud2lsbFVubW91bnQoKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3Qgc2V0UmljaFRleHRhcmVhQm91bmRzID0gdGhpcy5zZXRCb3VuZHMuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIGdldFJpY2hUZXh0YXJlYUNvbnRlbnQgPSB0aGlzLmdldENvbnRlbnQuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFJpY2hUZXh0YXJlYUNvbnRlbnQgPSB0aGlzLnNldENvbnRlbnQuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFJpY2hUZXh0YXJlYVJlYWRPbmx5ID0gdGhpcy5zZXRSZWFkT25seS5iaW5kKHRoaXMpOyAgLy8vXG5cbiAgICByZXR1cm4gKHtcbiAgICAgIHNldFJpY2hUZXh0YXJlYUJvdW5kcyxcbiAgICAgIGdldFJpY2hUZXh0YXJlYUNvbnRlbnQsXG4gICAgICBzZXRSaWNoVGV4dGFyZWFDb250ZW50LFxuICAgICAgc2V0UmljaFRleHRhcmVhUmVhZE9ubHlcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBzcGVsbENoZWNrOiBcImZhbHNlXCJcbiAgfTtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJmYW5jeVNjcm9sbGJhcnNcIlxuICBdO1xufSlgXG5cbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBjdXJzb3I6IGF1dG87XG4gIHJlc2l6ZTogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgei1pbmRleDogMTtcbiAgdGFiLXNpemU6IDI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3ZlcmZsb3c6IHNjcm9sbDtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgb3ZlcmZsb3ctd3JhcDogbm9ybWFsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgXG4gIDo6c2VsZWN0aW9uIHtcbiAgICBjb2xvcjogJHtzZWxlY3Rpb25Db2xvdXJ9O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7c2VsZWN0aW9uQmFja2dyb3VuZENvbG91cn07XG4gIH1cbiAgXG4gIC5oaWRkZW4tc2Nyb2xsYmFycyB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuICBcbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogJHtzY3JvbGxiYXJUaGlja25lc3N9O1xuICAgIGhlaWdodDogJHtzY3JvbGxiYXJUaGlja25lc3N9O1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAke2JhY2tncm91bmRDb2xvdXJ9O1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggJHtzY3JvbGxiYXJUaHVtYkJveFNoYWRvd0NvbG91cn07XG4gICAgYm9yZGVyLXJhZGl1czogJHtzY3JvbGxiYXJUaHVtYkJvcmRlclJhZGl1c307XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtzY3JvbGxiYXJUaHVtYkJhY2tncm91bmRDb2xvdXJ9O1xuICB9XG5cbiAgLmZhbmN5LXNjcm9sbGJhcnM6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGNhcmV0LWNvbG9yOiBpbmhlcml0O1xuICBcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHRleHQtcmVuZGVyaW5nOiBpbmhlcml0O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IGluaGVyaXQ7XG5cbmA7XG4iXSwibmFtZXMiOlsicG9zaXRpb24iLCJ0b3AiLCJsZWZ0IiwiY3NzIiwic2V0Qm91bmRzIiwiYm91bmRzIiwiZ2V0VG9wIiwiZ2V0TGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJzZXRXaWR0aCIsInNldEhlaWdodCIsImRpZE1vdW50IiwicHJvcGVydGllcyIsImZhbmN5U2Nyb2xsYmFycyIsImhpZGRlblNjcm9sbGJhcnMiLCJhZGRDbGFzcyIsIndpbGxVbm1vdW50IiwicmVtb3ZlQ2xhc3MiLCJwYXJlbnRDb250ZXh0Iiwic2V0UmljaFRleHRhcmVhQm91bmRzIiwiYmluZCIsImdldFJpY2hUZXh0YXJlYUNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2V0UmljaFRleHRhcmVhQ29udGVudCIsInNldENvbnRlbnQiLCJzZXRSaWNoVGV4dGFyZWFSZWFkT25seSIsInNldFJlYWRPbmx5IiwiZGVmYXVsdFByb3BlcnRpZXMiLCJzcGVsbENoZWNrIiwiaWdub3JlZFByb3BlcnRpZXMiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFVixHQUFtQixDQUFuQixpQkFBbUI7QUFDZSxHQUFVLENBQVYsT0FBVTtBQUNvRSxHQUFpQixDQUFqQixPQUFpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBMkUzSixDQWtCUTtRQUFrQixDQUNQO1FBQTRCLENBUXZDO1FBQXFCLENBQ3BCO1FBQXFCLENBUVg7UUFBbUIsQ0FDWDtRQUFnQyxDQUMzQztRQUE2QixDQUMxQjtRQUFpQyxDQWV2RDs7Ozs7OzttQkFySXNCLGNBQWlCOytCQU1kLFFBQVE7Ozs7Ozs7O2dCQUMvQkEsR0FBUSxFQUFSQSxDQUFRO3VCQUFSQSxRQUFRLENBQVJBLFFBQVEsQ0FBQ0MsR0FBRyxFQUFFQyxJQUFJLEVBQUUsQ0FBQztvQkFDbkJELEdBQUcsR0FBSSxDQUFBLEVBQU0sTUFBRSxDQUFOQSxHQUFHLEVBQUMsQ0FBRTtvQkFDZkMsSUFBSSxHQUFJLENBQUEsRUFBTyxNQUFFLENBQVBBLElBQUksRUFBQyxDQUFFO29CQUVqQixHQUFLLENBQUNDLEdBQUcsR0FBRyxDQUFDO3dCQUNYRixHQUFHLEVBQUhBLEdBQUc7d0JBQ0hDLElBQUksRUFBSkEsSUFBSTtvQkFDTixDQUFDO29CQUVELElBQUksQ0FBQ0MsR0FBRyxDQUFDQSxHQUFHO2dCQUNkLENBQUM7OztnQkFFREMsR0FBUyxFQUFUQSxDQUFTO3VCQUFUQSxRQUFRLENBQVJBLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFLENBQUM7b0JBQ2pCLEdBQUssQ0FBQ0osR0FBRyxHQUFHSSxN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
package/lib/yapp.js CHANGED
@@ -10,7 +10,7 @@ var _richTextarea = _interopRequireDefault(require("./richTextarea"));
10
10
  var _prettyPrinter = _interopRequireDefault(require("./prettyPrinter"));
11
11
  var _scrollbarThickness = require("./utilities/scrollbarThickness");
12
12
  var _plugin = require("./utilities/plugin");
13
- var _properties1 = require("./utilities/properties");
13
+ var _properties2 = require("./utilities/properties");
14
14
  var _content = require("./utilities/content");
15
15
  var _colour = require("./scheme/colour");
16
16
  var _defaults = require("./defaults");
@@ -223,7 +223,12 @@ var Yapp = /*#__PURE__*/ function(Element) {
223
223
  {
224
224
  key: "getScrollbarThickness",
225
225
  value: function getScrollbarThickness() {
226
- var _properties = this.properties, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, scrollbarThickness = (0, _scrollbarThickness).getScrollbarThickness(fancyScrollbars);
226
+ var scrollbarThickness = 0;
227
+ var _properties = this.properties, _hiddenScrollbars = _properties.hiddenScrollbars, hiddenScrollbars = _hiddenScrollbars === void 0 ? _defaults.DEFAULT_HIDDEN_SCROLLBARS : _hiddenScrollbars;
228
+ if (!hiddenScrollbars) {
229
+ var _properties1 = this.properties, _fancyScrollbars = _properties1.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars;
230
+ scrollbarThickness = (0, _scrollbarThickness).getScrollbarThickness(fancyScrollbars);
231
+ }
227
232
  return scrollbarThickness;
228
233
  }
229
234
  },
@@ -318,7 +323,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
318
323
  {
319
324
  key: "childElements",
320
325
  value: function childElements() {
321
- var _properties = this.properties, _hiddenGutter = _properties.hiddenGutter, hiddenGutter = _hiddenGutter === void 0 ? _defaults.DEFAULT_HIDDEN_GUTTER : _hiddenGutter, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, changeHandler = this.changeHandler.bind(this), scrollHandler = this.scrollHandler.bind(this), scrollbarThickness = this.getScrollbarThickness();
326
+ var _properties = this.properties, _hiddenGutter = _properties.hiddenGutter, hiddenGutter = _hiddenGutter === void 0 ? _defaults.DEFAULT_HIDDEN_GUTTER : _hiddenGutter, _hiddenScrollbars = _properties.hiddenScrollbars, hiddenScrollbars = _hiddenScrollbars === void 0 ? _defaults.DEFAULT_HIDDEN_SCROLLBARS : _hiddenScrollbars, _fancyScrollbars = _properties.fancyScrollbars, fancyScrollbars = _fancyScrollbars === void 0 ? _defaults.DEFAULT_FANCY_SCROLLBARS : _fancyScrollbars, changeHandler = this.changeHandler.bind(this), scrollHandler = this.scrollHandler.bind(this), scrollbarThickness = this.getScrollbarThickness();
322
327
  return [
323
328
  /*#__PURE__*/ _easy.React.createElement(_prettyPrinter.default, {
324
329
  hiddenGutter: hiddenGutter,
@@ -327,6 +332,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
327
332
  /*#__PURE__*/ _easy.React.createElement(_richTextarea.default, {
328
333
  onChange: changeHandler,
329
334
  onScroll: scrollHandler,
335
+ hiddenScrollbars: hiddenScrollbars,
330
336
  fancyScrollbars: fancyScrollbars,
331
337
  active: true
332
338
  })
@@ -367,7 +373,7 @@ var Yapp = /*#__PURE__*/ function(Element) {
367
373
  {
368
374
  key: "fromContent",
369
375
  value: function fromContent(content, language, Plugin, options) {
370
- var Class = Yapp, properties = (0, _properties1).propertiesFromContentLanguagePluginAndOptions(content, language, Plugin, options), plugin = (0, _plugin).pluginFromLanguageAndPlugin(language, Plugin), yapp = _easy.Element.fromClass(Class, properties, plugin);
376
+ var Class = Yapp, properties = (0, _properties2).propertiesFromContentLanguagePluginAndOptions(content, language, Plugin, options), plugin = (0, _plugin).pluginFromLanguageAndPlugin(language, Plugin), yapp = _easy.Element.fromClass(Class, properties, plugin);
371
377
  return yapp;
372
378
  }
373
379
  },
@@ -392,10 +398,11 @@ _defineProperty(Yapp, "ignoredProperties", [
392
398
  "editable",
393
399
  "deferRender",
394
400
  "hiddenGutter",
401
+ "noScrollbars",
395
402
  "fancyScrollbars"
396
403
  ]);
397
404
  Object.assign(Yapp.prototype, _style.default);
398
405
  var _default = (0, _easyWithStyle).default(Yapp)(_templateObject(), _colour.colour, _colour.caretColour, _colour.borderColour, _colour.backgroundColour);
399
406
  exports.default = _default;
400
407
 
401
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBSZWFjdCwgQm91bmRzLCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHN0eWxlTWl4aW5zIGZyb20gXCIuL21peGlucy9zdHlsZVwiO1xuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Njcm9sbGJhclRoaWNrbmVzc1wiO1xuaW1wb3J0IHsgcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BsdWdpblwiO1xuaW1wb3J0IHsgcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Byb3BlcnRpZXNcIjtcbmltcG9ydCB7IGxpbmVDb3VudEZyb21Db250ZW50LCBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgY29sb3VyLCBjYXJldENvbG91ciwgYm9yZGVyQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyIH0gZnJvbSBcIi4vc2NoZW1lL2NvbG91clwiO1xuaW1wb3J0IHsgREVGQVVMVF9FRElUQUJMRSwgREVGQVVMVF9GSVJBX0NPREUsIERFRkFVTFRfREVGRVJfUkVOREVSLCBERUZBVUxUX0hJRERFTl9HVVRURVIsIERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmNsYXNzIFlhcHAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IsIHBsdWdpbikge1xuICAgIHN1cGVyKHNlbGVjdG9yKTtcblxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZ2V0UGx1Z2luKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0UmljaFRleHRhcmVhQ29udGVudCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSByaWNoVGV4dGFyZWFDb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKSB7XG4gICAgbGV0IHRvcCxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgd2lkdGggPSB0aGlzLmdldFdpZHRoKCksXG4gICAgICAgIGhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCk7XG5cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0xlZnQgPSB0aGlzLmdldFBhZGRpbmdMZWZ0KCksXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRQYWRkaW5nUmlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tID0gdGhpcy5nZXRQYWRkaW5nQm90dG9tKCksXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlclRvcFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoID0gdGhpcy5nZXRCb3JkZXJMZWZ0V2lkdGgoKSxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoID0gdGhpcy5nZXRCb3JkZXJSaWdodFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCk7XG5cbiAgICB0b3AgPSBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3A7XG4gICAgbGVmdCA9IGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0O1xuXG4gICAgd2lkdGggLT0gKCBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0V2lkdGggKTtcbiAgICBoZWlnaHQgLT0gKCBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tV2lkdGggKTtcblxuICAgIGlmIChndXR0ZXJXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgbGVmdCArPSBndXR0ZXJXaWR0aDtcbiAgICAgIHdpZHRoIC09IGd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kcyA9IEJvdW5kcy5mcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0KHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCksXG4gICAgICAgICAgaW5uZXJCb3VuZHMgPSBib3VuZHM7IC8vL1xuXG4gICAgcmV0dXJuIGlubmVyQm91bmRzO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBjb25zdCB7IGZhbmN5U2Nyb2xsYmFycyA9IERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IGdldFNjcm9sbGJhclRoaWNrbmVzcyhmYW5jeVNjcm9sbGJhcnMpO1xuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBndXR0ZXJXaWR0aCA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGd1dHRlcldpZHRoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbm5lckJvdW5kcyA9IHRoaXMuZ2V0SW5uZXJCb3VuZHMoZ3V0dGVyV2lkdGgpLFxuICAgICAgICAgICAgcmljaFRleHRhcmVhQm91bmRzID0gaW5uZXJCb3VuZHM7IC8vL1xuXG4gICAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZSgpIHtcbiAgICBsZXQgaW5uZXJCb3VuZHMsXG4gICAgICAgIGd1dHRlcldpZHRoO1xuXG4gICAgZ3V0dGVyV2lkdGggPSBudWxsO1xuXG4gICAgaW5uZXJCb3VuZHMgPSB0aGlzLmdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKTtcblxuICAgIGNvbnN0IHByZXR0eVByaW50ZXJCb3VuZHMgPSBpbm5lckJvdW5kczsgIC8vL1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyQm91bmRzKHByZXR0eVByaW50ZXJCb3VuZHMpO1xuXG4gICAgZ3V0dGVyV2lkdGggPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKTtcblxuICAgIGlubmVyQm91bmRzID0gdGhpcy5nZXRJbm5lckJvdW5kcyhndXR0ZXJXaWR0aCk7XG5cbiAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IHRoaXMuZ2V0UGFkZGluZ0JvdHRvbSgpLFxuICAgICAgICAgIGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGluaXRpYWxMaW5lQ291bnQgPSB0aGlzLmdldEluaXRpYWxMaW5lQ291bnQoKSxcbiAgICAgICAgICBib3JkZXJCb3R0b21XaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyQm90dG9tV2lkdGgoKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpLFxuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCArIGluaXRpYWxMaW5lQ291bnQgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlckJvdHRvbVdpZHRoICsgc2Nyb2xsYmFyVGhpY2tuZXNzO1xuXG4gICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0KTtcblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFLCBkZWZlclJlbmRlciA9IERFRkFVTFRfREVGRVJfUkVOREVSIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuXG4gICAgaWYgKGRlZmVyUmVuZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmlyYUNvZGUgPSBERUZBVUxUX0ZJUkFfQ09ERSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZpcmFDb2RlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmlyYS1jb2RlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBoaWRkZW5HdXR0ZXIgPSBERUZBVUxUX0hJRERFTl9HVVRURVIsIGZhbmN5U2Nyb2xsYmFycyA9IERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIGNoYW5nZUhhbmRsZXIgPSB0aGlzLmNoYW5nZUhhbmRsZXIuYmluZCh0aGlzKSxcbiAgICAgICAgICBzY3JvbGxIYW5kbGVyID0gdGhpcy5zY3JvbGxIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gdGhpcy5nZXRTY3JvbGxiYXJUaGlja25lc3MoKTtcblxuICAgIHJldHVybiAoW1xuXG4gICAgICA8UHJldHR5UHJpbnRlciBoaWRkZW5HdXR0ZXI9e2hpZGRlbkd1dHRlcn0gc2Nyb2xsYmFyVGhpY2tuZXNzPXtzY3JvbGxiYXJUaGlja25lc3N9IC8+LFxuICAgICAgPFJpY2hUZXh0YXJlYSBvbkNoYW5nZT17Y2hhbmdlSGFuZGxlcn0gb25TY3JvbGw9e3Njcm9sbEhhbmRsZXJ9IGZhbmN5U2Nyb2xsYmFycz17ZmFuY3lTY3JvbGxiYXJzfSBhY3RpdmUgLz5cblxuICAgIF0pO1xuICB9XG5cbiAgcGFyZW50Q29udGV4dCgpIHtcbiAgICBjb25zdCBnZXRQbHVnaW4gPSB0aGlzLmdldFBsdWdpbi5iaW5kKHRoaXMpLFxuICAgICAgICAgIHVwZGF0ZVlhcHAgPSB0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcFdpZHRoID0gdGhpcy5zZXRXaWR0aC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcEhlaWdodCA9IHRoaXMuc2V0SGVpZ2h0LmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBzZXRZYXBwTGV4ZXIgPSB0aGlzLnNldExleGVyLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICBzZXRZYXBwUGFyc2VyID0gdGhpcy5zZXRQYXJzZXIuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHJlc2l6ZVlhcHAgPSB0aGlzLnJlc2l6ZS5iaW5kKHRoaXMpOyAgLy8vXG5cbiAgICByZXR1cm4gKHtcbiAgICAgIGdldFBsdWdpbixcbiAgICAgIHVwZGF0ZVlhcHAsXG4gICAgICBzZXRZYXBwV2lkdGgsXG4gICAgICBzZXRZYXBwSGVpZ2h0LFxuICAgICAgc2V0WWFwcExleGVyLFxuICAgICAgc2V0WWFwcFBhcnNlcixcbiAgICAgIHJlc2l6ZVlhcHBcbiAgICB9KTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICBjb25zdCB7IGNoaWxkRWxlbWVudHMsIGVkaXRhYmxlID0gREVGQVVMVF9FRElUQUJMRSB9ID0gdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgIGxhbmd1YWdlID0gdGhpcy5wbHVnaW4uZ2V0TGFuZ3VhZ2UoKSxcbiAgICAgICAgICBjb250ZW50ID0gY29udGVudEZyb21DaGlsZEVsZW1lbnRzKGNoaWxkRWxlbWVudHMpLFxuICAgICAgICAgIHJlYWRPbmx5ID0gIWVkaXRhYmxlLFxuICAgICAgICAgIHNjcm9sbFRvcCA9IDAsICAvLy9cbiAgICAgICAgICBzY3JvbGxMZWZ0ID0gMDsgLy8vXG5cbiAgICB0aGlzLnNldExhbmd1YWdlKGxhbmd1YWdlKTtcblxuICAgIHRoaXMuc2Nyb2xsUHJldHR5UHJpbnRlcihzY3JvbGxUb3AsIHNjcm9sbExlZnQpO1xuXG4gICAgdGhpcy5zZXRSaWNoVGV4dGFyZWFDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgdGhpcy5zZXRSaWNoVGV4dGFyZWFSZWFkT25seShyZWFkT25seSk7XG5cbiAgICB0aGlzLm9uUmVzaXplKChldmVudCwgZWxlbWVudCkgPT4gdGhpcy5yZXNpemUoKSk7XG4gIH1cblxuICBzdGF0aWMgdGFnTmFtZSA9IFwiZGl2XCI7XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wZXJ0aWVzID0ge1xuICAgIGNsYXNzTmFtZTogXCJ5YXBwXCJcbiAgfTtcblxuICBzdGF0aWMgaWdub3JlZFByb3BlcnRpZXMgPSBbXG4gICAgXCJQbHVnaW5cIixcbiAgICBcImxhbmd1YWdlXCIsXG4gICAgXCJmaXJhQ29kZVwiLFxuICAgIFwiZWRpdGFibGVcIixcbiAgICBcImRlZmVyUmVuZGVyXCIsXG4gICAgXCJoaWRkZW5HdXR0ZXJcIixcbiAgICBcImZhbmN5U2Nyb2xsYmFyc1wiXG4gIF07XG5cbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBDbGFzcyA9IFlhcHAsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29udGVudExhbmd1YWdlUGx1Z2luQW5kT3B0aW9ucyhjb250ZW50LCBsYW5ndWFnZSwgUGx1Z2luLCBvcHRpb25zKSxcbiAgICAgICAgICBwbHVnaW4gPSBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4obGFuZ3VhZ2UsIFBsdWdpbiksXG4gICAgICAgICAgeWFwcCA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCBwbHVnaW4pO1xuXG4gICAgcmV0dXJuIHlhcHA7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBsYW5ndWFnZSwgUGx1Z2luIH0gPSBwcm9wZXJ0aWVzLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFlhcHAucHJvdG90eXBlLCBzdHlsZU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShZYXBwKWBcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBcbiAgY29sb3I6ICR7Y29sb3VyfTtcbiAgY2FyZXQtY29sb3I6ICR7Y2FyZXRDb2xvdXJ9O1xuICBib3JkZXItY29sb3I6ICR7Ym9yZGVyQ29sb3VyfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQ29sb3VyfTtcblxuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LWZhbWlseTogXCJNZW5sb1wiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblxuICAuZmlyYS1jb2RlIHtcblxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJjYWx0XCIgMTtcbiAgICBcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIllhcHAiLCJzZWxlY3RvciIsInBsdWdpbiIsImdldFBsdWdpbiIsImdldENvbnRlbnQiLCJyaWNoVGV4dGFyZWFDb250ZW50IiwiZ2V0UmljaFRleHRhcmVhQ29udGVudCIsImNvbnRlbnQiLCJnZXRJbm5lckJvdW5kcyIsImd1dHRlcldpZHRoIiwidG9wIiwibGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJwYWRkaW5nVG9wIiwiZ2V0UGFkZGluZ1RvcCIsInBhZGRpbmdMZWZ0IiwiZ2V0UGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJnZXRQYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwiZ2V0UGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcFdpZHRoIiwiZ2V0Qm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJnZXRCb3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwiZ2V0Qm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiZ2V0Qm9yZGVyQm90dG9tV2lkdGgiLCJib3VuZHMiLCJmcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0IiwiaW5uZXJCb3VuZHMiLCJnZXRJbml0aWFsTGluZUNvdW50IiwibGluZUNvdW50IiwiaW5pdGlhbExpbmVDb3VudCIsImdldFNjcm9sbGJhclRoaWNrbmVzcyIsInByb3BlcnRpZXMiLCJmYW5jeVNjcm9sbGJhcnMiLCJzY3JvbGxiYXJUaGlja25lc3MiLCJzZXRMZXhlciIsImxleGVyIiwic2V0UGFyc2VyIiwicGFyc2VyIiwiY2hhbmdlSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsInJpY2hUZXh0YXJlYSIsImNvbnRlbnRDaGFuZ2VkIiwiaGFzQ29udGVudENoYW5nZWQiLCJvbkNvbnRlbnRDaGFuZ2UiLCJjb250ZW50Q2hhbmdlSGFuZGxlciIsInVwZGF0ZSIsInNjcm9sbEhhbmRsZXIiLCJzY3JvbGxUb3AiLCJnZXRTY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwiZ2V0U2Nyb2xsTGVmdCIsInNjcm9sbFByZXR0eVByaW50ZXIiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJ1cGRhdGVQcmV0dHlQcmludGVyIiwicmljaFRleHRhcmVhQm91bmRzIiwic2V0UmljaFRleHRhcmVhQm91bmRzIiwicmVzaXplIiwicHJldHR5UHJpbnRlckJvdW5kcyIsInNldFByZXR0eVByaW50ZXJCb3VuZHMiLCJyZXNpemVQcmV0dHlQcmludGVyIiwicmVuZGVyIiwibGluZUhlaWdodCIsImdldExpbmVIZWlnaHQiLCJzZXRIZWlnaHQiLCJkaWRNb3VudCIsImZpcmFDb2RlIiwiZGVmZXJSZW5kZXIiLCJhZGRDbGFzcyIsIndpbGxVbm1vdW50IiwicmVtb3ZlQ2xhc3MiLCJjaGlsZEVsZW1lbnRzIiwiaGlkZGVuR3V0dGVyIiwiYmluZCIsIm9uQ2hhbmdlIiwib25TY3JvbGwiLCJhY3RpdmUiLCJwYXJlbnRDb250ZXh0IiwidXBkYXRlWWFwcCIsInNldFlhcHBXaWR0aCIsInNldFdpZHRoIiwic2V0WWFwcEhlaWdodCIsInNldFlhcHBMZXhlciIsInNldFlhcHBQYXJzZXIiLCJyZXNpemVZYXBwIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJlZGl0YWJsZSIsImxhbmd1YWdlIiwiZ2V0TGFuZ3VhZ2UiLCJyZWFkT25seSIsInNldExhbmd1YWdlIiwic2V0UmljaFRleHRhcmVhQ29udGVudCIsInNldFJpY2hUZXh0YXJlYVJlYWRPbmx5Iiwib25SZXNpemUiLCJmcm9tQ29udGVudCIsIlBsdWdpbiIsIm9wdGlvbnMiLCJDbGFzcyIsInlhcHAiLCJmcm9tQ2xhc3MiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJpZ25vcmVkUHJvcGVydGllcyIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6IkFBQUEsQ0FBWTs7Ozs7QUFFVSxHQUFpQixDQUFqQixjQUFpQjtBQUVBLEdBQU0sQ0FBTixLQUFNO0FBRXJCLEdBQWdCLENBQWhCLE1BQWdCO0FBQ2YsR0FBZ0IsQ0FBaEIsYUFBZ0I7QUFDZixHQUFpQixDQUFqQixjQUFpQjtBQUVMLEdBQWdDLENBQWhDLG1CQUFnQztBQUMxQixHQUFvQixDQUFwQixPQUFvQjtBQUNGLEdBQXdCLENBQXhCLFlBQXdCO0FBQ3ZCLEdBQXFCLENBQXJCLFFBQXFCO0FBQ2hCLEdBQWlCLENBQWpCLE9BQWlCO0FBQ3NDLEdBQVksQ0FBWixTQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXNReEcsQ0FPdEI7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
408
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXBwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgd2l0aFN0eWxlIGZyb20gXCJlYXN5LXdpdGgtc3R5bGVcIjsgIC8vL1xuXG5pbXBvcnQgeyBSZWFjdCwgQm91bmRzLCBFbGVtZW50IH0gZnJvbSBcImVhc3lcIjtcblxuaW1wb3J0IHN0eWxlTWl4aW5zIGZyb20gXCIuL21peGlucy9zdHlsZVwiO1xuaW1wb3J0IFJpY2hUZXh0YXJlYSBmcm9tIFwiLi9yaWNoVGV4dGFyZWFcIjtcbmltcG9ydCBQcmV0dHlQcmludGVyIGZyb20gXCIuL3ByZXR0eVByaW50ZXJcIjtcblxuaW1wb3J0IHsgZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Njcm9sbGJhclRoaWNrbmVzc1wiO1xuaW1wb3J0IHsgcGx1Z2luRnJvbUxhbmd1YWdlQW5kUGx1Z2luIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3BsdWdpblwiO1xuaW1wb3J0IHsgcHJvcGVydGllc0Zyb21Db250ZW50TGFuZ3VhZ2VQbHVnaW5BbmRPcHRpb25zIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3Byb3BlcnRpZXNcIjtcbmltcG9ydCB7IGxpbmVDb3VudEZyb21Db250ZW50LCBjb250ZW50RnJvbUNoaWxkRWxlbWVudHMgfSBmcm9tIFwiLi91dGlsaXRpZXMvY29udGVudFwiO1xuaW1wb3J0IHsgY29sb3VyLCBjYXJldENvbG91ciwgYm9yZGVyQ29sb3VyLCBiYWNrZ3JvdW5kQ29sb3VyIH0gZnJvbSBcIi4vc2NoZW1lL2NvbG91clwiO1xuaW1wb3J0IHsgREVGQVVMVF9FRElUQUJMRSwgREVGQVVMVF9GSVJBX0NPREUsIERFRkFVTFRfREVGRVJfUkVOREVSLCBERUZBVUxUX0hJRERFTl9HVVRURVIsIERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMsIERFRkFVTFRfRkFOQ1lfU0NST0xMQkFSUyB9IGZyb20gXCIuL2RlZmF1bHRzXCI7XG5cbmNsYXNzIFlhcHAgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3Ioc2VsZWN0b3IsIHBsdWdpbikge1xuICAgIHN1cGVyKHNlbGVjdG9yKTtcblxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZ2V0UGx1Z2luKCkge1xuICAgIHJldHVybiB0aGlzLnBsdWdpbjtcbiAgfVxuXG4gIGdldENvbnRlbnQoKSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhQ29udGVudCA9IHRoaXMuZ2V0UmljaFRleHRhcmVhQ29udGVudCgpLFxuICAgICAgICAgIGNvbnRlbnQgPSByaWNoVGV4dGFyZWFDb250ZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIGdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKSB7XG4gICAgbGV0IHRvcCxcbiAgICAgICAgbGVmdCxcbiAgICAgICAgd2lkdGggPSB0aGlzLmdldFdpZHRoKCksXG4gICAgICAgIGhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCk7XG5cbiAgICBjb25zdCBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0xlZnQgPSB0aGlzLmdldFBhZGRpbmdMZWZ0KCksXG4gICAgICAgICAgcGFkZGluZ1JpZ2h0ID0gdGhpcy5nZXRQYWRkaW5nUmlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nQm90dG9tID0gdGhpcy5nZXRQYWRkaW5nQm90dG9tKCksXG4gICAgICAgICAgYm9yZGVyVG9wV2lkdGggPSB0aGlzLmdldEJvcmRlclRvcFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyTGVmdFdpZHRoID0gdGhpcy5nZXRCb3JkZXJMZWZ0V2lkdGgoKSxcbiAgICAgICAgICBib3JkZXJSaWdodFdpZHRoID0gdGhpcy5nZXRCb3JkZXJSaWdodFdpZHRoKCksXG4gICAgICAgICAgYm9yZGVyQm90dG9tV2lkdGggPSB0aGlzLmdldEJvcmRlckJvdHRvbVdpZHRoKCk7XG5cbiAgICB0b3AgPSBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3A7XG4gICAgbGVmdCA9IGJvcmRlckxlZnRXaWR0aCArIHBhZGRpbmdMZWZ0O1xuXG4gICAgd2lkdGggLT0gKCBib3JkZXJMZWZ0V2lkdGggKyBwYWRkaW5nTGVmdCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0V2lkdGggKTtcbiAgICBoZWlnaHQgLT0gKCBib3JkZXJUb3BXaWR0aCArIHBhZGRpbmdUb3AgKyBwYWRkaW5nQm90dG9tICsgYm9yZGVyQm90dG9tV2lkdGggKTtcblxuICAgIGlmIChndXR0ZXJXaWR0aCAhPT0gbnVsbCkge1xuICAgICAgbGVmdCArPSBndXR0ZXJXaWR0aDtcbiAgICAgIHdpZHRoIC09IGd1dHRlcldpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kcyA9IEJvdW5kcy5mcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0KHRvcCwgbGVmdCwgd2lkdGgsIGhlaWdodCksXG4gICAgICAgICAgaW5uZXJCb3VuZHMgPSBib3VuZHM7IC8vL1xuXG4gICAgcmV0dXJuIGlubmVyQm91bmRzO1xuICB9XG5cbiAgZ2V0SW5pdGlhbExpbmVDb3VudCgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgbGluZUNvdW50ID0gbGluZUNvdW50RnJvbUNvbnRlbnQoY29udGVudCksXG4gICAgICAgICAgaW5pdGlhbExpbmVDb3VudCA9IGxpbmVDb3VudDsgLy8vXG5cbiAgICByZXR1cm4gaW5pdGlhbExpbmVDb3VudDtcbiAgfVxuXG4gIGdldFNjcm9sbGJhclRoaWNrbmVzcygpIHtcbiAgICBsZXQgc2Nyb2xsYmFyVGhpY2tuZXNzID0gMDtcblxuICAgIGNvbnN0IHsgaGlkZGVuU2Nyb2xsYmFycyA9IERFRkFVTFRfSElEREVOX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgIGlmICghaGlkZGVuU2Nyb2xsYmFycykge1xuICAgICAgY29uc3QgeyBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcztcblxuICAgICAgc2Nyb2xsYmFyVGhpY2tuZXNzID0gZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKGZhbmN5U2Nyb2xsYmFycyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVzcztcbiAgfVxuXG4gIHNldExleGVyKGxleGVyKSB7IHRoaXMucGx1Z2luLnNldExleGVyKGxleGVyKTsgfVxuXG4gIHNldFBhcnNlcihwYXJzZXIpIHsgdGhpcy5wbHVnaW4uc2V0UGFyc2VyKHBhcnNlcik7IH1cblxuICBjaGFuZ2VIYW5kbGVyKGV2ZW50LCBlbGVtZW50KSB7XG4gICAgY29uc3QgcmljaFRleHRhcmVhID0gZWxlbWVudCwgLy8vXG4gICAgICAgICAgY29udGVudENoYW5nZWQgPSByaWNoVGV4dGFyZWEuaGFzQ29udGVudENoYW5nZWQoKTtcblxuICAgIGlmIChjb250ZW50Q2hhbmdlZCkge1xuICAgICAgY29uc3QgeyBvbkNvbnRlbnRDaGFuZ2UgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgIGNvbnRlbnRDaGFuZ2VIYW5kbGVyID0gb25Db250ZW50Q2hhbmdlOyAvLy9cblxuICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgZWxlbWVudCA9IHRoaXM7IC8vL1xuXG4gICAgICBjb250ZW50Q2hhbmdlSGFuZGxlciAmJiBjb250ZW50Q2hhbmdlSGFuZGxlcihldmVudCwgZWxlbWVudCk7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHNjcm9sbEhhbmRsZXIoZXZlbnQsIGVsZW1lbnQpIHtcbiAgICBjb25zdCByaWNoVGV4dGFyZWEgPSBlbGVtZW50LCAvLy9cbiAgICAgICAgICBzY3JvbGxUb3AgPSByaWNoVGV4dGFyZWEuZ2V0U2Nyb2xsVG9wKCksXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IHJpY2hUZXh0YXJlYS5nZXRTY3JvbGxMZWZ0KCk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcbiAgfVxuXG4gIHVwZGF0ZSgpIHtcbiAgICBjb25zdCBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnBsdWdpbi51cGRhdGUoY29udGVudCk7XG5cbiAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnBsdWdpbi5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBndXR0ZXJXaWR0aCA9IHRoaXMudXBkYXRlUHJldHR5UHJpbnRlcih0b2tlbnMpO1xuXG4gICAgaWYgKGd1dHRlcldpZHRoICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBpbm5lckJvdW5kcyA9IHRoaXMuZ2V0SW5uZXJCb3VuZHMoZ3V0dGVyV2lkdGgpLFxuICAgICAgICAgICAgcmljaFRleHRhcmVhQm91bmRzID0gaW5uZXJCb3VuZHM7IC8vL1xuXG4gICAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2l6ZSgpIHtcbiAgICBsZXQgaW5uZXJCb3VuZHMsXG4gICAgICAgIGd1dHRlcldpZHRoO1xuXG4gICAgZ3V0dGVyV2lkdGggPSBudWxsO1xuXG4gICAgaW5uZXJCb3VuZHMgPSB0aGlzLmdldElubmVyQm91bmRzKGd1dHRlcldpZHRoKTtcblxuICAgIGNvbnN0IHByZXR0eVByaW50ZXJCb3VuZHMgPSBpbm5lckJvdW5kczsgIC8vL1xuXG4gICAgdGhpcy5zZXRQcmV0dHlQcmludGVyQm91bmRzKHByZXR0eVByaW50ZXJCb3VuZHMpO1xuXG4gICAgZ3V0dGVyV2lkdGggPSB0aGlzLnJlc2l6ZVByZXR0eVByaW50ZXIoKTtcblxuICAgIGlubmVyQm91bmRzID0gdGhpcy5nZXRJbm5lckJvdW5kcyhndXR0ZXJXaWR0aCk7XG5cbiAgICBjb25zdCByaWNoVGV4dGFyZWFCb3VuZHMgPSBpbm5lckJvdW5kczsgLy8vXG5cbiAgICB0aGlzLnNldFJpY2hUZXh0YXJlYUJvdW5kcyhyaWNoVGV4dGFyZWFCb3VuZHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGxpbmVIZWlnaHQgPSB0aGlzLmdldExpbmVIZWlnaHQoKSxcbiAgICAgICAgICBwYWRkaW5nVG9wID0gdGhpcy5nZXRQYWRkaW5nVG9wKCksXG4gICAgICAgICAgcGFkZGluZ0JvdHRvbSA9IHRoaXMuZ2V0UGFkZGluZ0JvdHRvbSgpLFxuICAgICAgICAgIGJvcmRlclRvcFdpZHRoID0gdGhpcy5nZXRCb3JkZXJUb3BXaWR0aCgpLFxuICAgICAgICAgIGluaXRpYWxMaW5lQ291bnQgPSB0aGlzLmdldEluaXRpYWxMaW5lQ291bnQoKSxcbiAgICAgICAgICBib3JkZXJCb3R0b21XaWR0aCA9IHRoaXMuZ2V0Qm9yZGVyQm90dG9tV2lkdGgoKSxcbiAgICAgICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSB0aGlzLmdldFNjcm9sbGJhclRoaWNrbmVzcygpLFxuICAgICAgICAgIGhlaWdodCA9IGJvcmRlclRvcFdpZHRoICsgcGFkZGluZ1RvcCArIGluaXRpYWxMaW5lQ291bnQgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZ0JvdHRvbSArIGJvcmRlckJvdHRvbVdpZHRoICsgc2Nyb2xsYmFyVGhpY2tuZXNzO1xuXG4gICAgdGhpcy5zZXRIZWlnaHQoaGVpZ2h0KTtcblxuICAgIHRoaXMucmVzaXplKCk7XG5cbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgZGlkTW91bnQoKSB7XG4gICAgY29uc3QgeyBmaXJhQ29kZSA9IERFRkFVTFRfRklSQV9DT0RFLCBkZWZlclJlbmRlciA9IERFRkFVTFRfREVGRVJfUkVOREVSIH0gPSB0aGlzLnByb3BlcnRpZXM7XG5cbiAgICBpZiAoZmlyYUNvZGUpIHtcbiAgICAgIHRoaXMuYWRkQ2xhc3MoXCJmaXJhLWNvZGVcIik7XG4gICAgfVxuXG4gICAgaWYgKGRlZmVyUmVuZGVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHdpbGxVbm1vdW50KCkge1xuICAgIGNvbnN0IHsgZmlyYUNvZGUgPSBERUZBVUxUX0ZJUkFfQ09ERSB9ID0gdGhpcy5wcm9wZXJ0aWVzO1xuXG4gICAgaWYgKGZpcmFDb2RlKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsYXNzKFwiZmlyYS1jb2RlXCIpO1xuICAgIH1cbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgY29uc3QgeyBoaWRkZW5HdXR0ZXIgPSBERUZBVUxUX0hJRERFTl9HVVRURVIsIGhpZGRlblNjcm9sbGJhcnMgPSBERUZBVUxUX0hJRERFTl9TQ1JPTExCQVJTLCBmYW5jeVNjcm9sbGJhcnMgPSBERUZBVUxUX0ZBTkNZX1NDUk9MTEJBUlMgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBjaGFuZ2VIYW5kbGVyID0gdGhpcy5jaGFuZ2VIYW5kbGVyLmJpbmQodGhpcyksXG4gICAgICAgICAgc2Nyb2xsSGFuZGxlciA9IHRoaXMuc2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpLFxuICAgICAgICAgIHNjcm9sbGJhclRoaWNrbmVzcyA9IHRoaXMuZ2V0U2Nyb2xsYmFyVGhpY2tuZXNzKCk7XG5cbiAgICByZXR1cm4gKFtcblxuICAgICAgPFByZXR0eVByaW50ZXIgaGlkZGVuR3V0dGVyPXtoaWRkZW5HdXR0ZXJ9IHNjcm9sbGJhclRoaWNrbmVzcz17c2Nyb2xsYmFyVGhpY2tuZXNzfSAvPixcbiAgICAgIDxSaWNoVGV4dGFyZWEgb25DaGFuZ2U9e2NoYW5nZUhhbmRsZXJ9IG9uU2Nyb2xsPXtzY3JvbGxIYW5kbGVyfSBoaWRkZW5TY3JvbGxiYXJzPXtoaWRkZW5TY3JvbGxiYXJzfSBmYW5jeVNjcm9sbGJhcnM9e2ZhbmN5U2Nyb2xsYmFyc30gYWN0aXZlIC8+XG5cbiAgICBdKTtcbiAgfVxuXG4gIHBhcmVudENvbnRleHQoKSB7XG4gICAgY29uc3QgZ2V0UGx1Z2luID0gdGhpcy5nZXRQbHVnaW4uYmluZCh0aGlzKSxcbiAgICAgICAgICB1cGRhdGVZYXBwID0gdGhpcy51cGRhdGUuYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBXaWR0aCA9IHRoaXMuc2V0V2lkdGguYmluZCh0aGlzKSwgIC8vL1xuICAgICAgICAgIHNldFlhcHBIZWlnaHQgPSB0aGlzLnNldEhlaWdodC5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcExleGVyID0gdGhpcy5zZXRMZXhlci5iaW5kKHRoaXMpLCAgLy8vXG4gICAgICAgICAgc2V0WWFwcFBhcnNlciA9IHRoaXMuc2V0UGFyc2VyLmJpbmQodGhpcyksICAvLy9cbiAgICAgICAgICByZXNpemVZYXBwID0gdGhpcy5yZXNpemUuYmluZCh0aGlzKTsgIC8vL1xuXG4gICAgcmV0dXJuICh7XG4gICAgICBnZXRQbHVnaW4sXG4gICAgICB1cGRhdGVZYXBwLFxuICAgICAgc2V0WWFwcFdpZHRoLFxuICAgICAgc2V0WWFwcEhlaWdodCxcbiAgICAgIHNldFlhcHBMZXhlcixcbiAgICAgIHNldFlhcHBQYXJzZXIsXG4gICAgICByZXNpemVZYXBwXG4gICAgfSk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBjaGlsZEVsZW1lbnRzLCBlZGl0YWJsZSA9IERFRkFVTFRfRURJVEFCTEUgfSA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBsYW5ndWFnZSA9IHRoaXMucGx1Z2luLmdldExhbmd1YWdlKCksXG4gICAgICAgICAgY29udGVudCA9IGNvbnRlbnRGcm9tQ2hpbGRFbGVtZW50cyhjaGlsZEVsZW1lbnRzKSxcbiAgICAgICAgICByZWFkT25seSA9ICFlZGl0YWJsZSxcbiAgICAgICAgICBzY3JvbGxUb3AgPSAwLCAgLy8vXG4gICAgICAgICAgc2Nyb2xsTGVmdCA9IDA7IC8vL1xuXG4gICAgdGhpcy5zZXRMYW5ndWFnZShsYW5ndWFnZSk7XG5cbiAgICB0aGlzLnNjcm9sbFByZXR0eVByaW50ZXIoc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhQ29udGVudChjb250ZW50KTtcblxuICAgIHRoaXMuc2V0UmljaFRleHRhcmVhUmVhZE9ubHkocmVhZE9ubHkpO1xuXG4gICAgdGhpcy5vblJlc2l6ZSgoZXZlbnQsIGVsZW1lbnQpID0+IHRoaXMucmVzaXplKCkpO1xuICB9XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwieWFwcFwiXG4gIH07XG5cbiAgc3RhdGljIGlnbm9yZWRQcm9wZXJ0aWVzID0gW1xuICAgIFwiUGx1Z2luXCIsXG4gICAgXCJsYW5ndWFnZVwiLFxuICAgIFwiZmlyYUNvZGVcIixcbiAgICBcImVkaXRhYmxlXCIsXG4gICAgXCJkZWZlclJlbmRlclwiLFxuICAgIFwiaGlkZGVuR3V0dGVyXCIsXG4gICAgXCJub1Njcm9sbGJhcnNcIixcbiAgICBcImZhbmN5U2Nyb2xsYmFyc1wiXG4gIF07XG5cbiAgc3RhdGljIGZyb21Db250ZW50KGNvbnRlbnQsIGxhbmd1YWdlLCBQbHVnaW4sIG9wdGlvbnMpIHtcbiAgICBjb25zdCBDbGFzcyA9IFlhcHAsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29udGVudExhbmd1YWdlUGx1Z2luQW5kT3B0aW9ucyhjb250ZW50LCBsYW5ndWFnZSwgUGx1Z2luLCBvcHRpb25zKSxcbiAgICAgICAgICBwbHVnaW4gPSBwbHVnaW5Gcm9tTGFuZ3VhZ2VBbmRQbHVnaW4obGFuZ3VhZ2UsIFBsdWdpbiksXG4gICAgICAgICAgeWFwcCA9IEVsZW1lbnQuZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzLCBwbHVnaW4pO1xuXG4gICAgcmV0dXJuIHlhcHA7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNsYXNzKENsYXNzLCBwcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgeyBsYW5ndWFnZSwgUGx1Z2luIH0gPSBwcm9wZXJ0aWVzLFxuICAgICAgICAgIHBsdWdpbiA9IHBsdWdpbkZyb21MYW5ndWFnZUFuZFBsdWdpbihsYW5ndWFnZSwgUGx1Z2luKSxcbiAgICAgICAgICB5YXBwID0gRWxlbWVudC5mcm9tQ2xhc3MoQ2xhc3MsIHByb3BlcnRpZXMsIHBsdWdpbik7XG5cbiAgICByZXR1cm4geWFwcDtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKFlhcHAucHJvdG90eXBlLCBzdHlsZU1peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShZYXBwKWBcblxuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkO1xuICBcbiAgY29sb3I6ICR7Y29sb3VyfTtcbiAgY2FyZXQtY29sb3I6ICR7Y2FyZXRDb2xvdXJ9O1xuICBib3JkZXItY29sb3I6ICR7Ym9yZGVyQ29sb3VyfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtiYWNrZ3JvdW5kQ29sb3VyfTtcblxuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICBmb250LWZhbWlseTogXCJNZW5sb1wiLCBcIkx1Y2lkYSBTYW5zIFR5cGV3cml0ZXJcIiwgbW9ub3NwYWNlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IG5vcm1hbDtcblxuICAuZmlyYS1jb2RlIHtcblxuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJjYWx0XCIgMTtcbiAgICBcbiAgfVxuXG5gO1xuIl0sIm5hbWVzIjpbIllhcHAiLCJzZWxlY3RvciIsInBsdWdpbiIsImdldFBsdWdpbiIsImdldENvbnRlbnQiLCJyaWNoVGV4dGFyZWFDb250ZW50IiwiZ2V0UmljaFRleHRhcmVhQ29udGVudCIsImNvbnRlbnQiLCJnZXRJbm5lckJvdW5kcyIsImd1dHRlcldpZHRoIiwidG9wIiwibGVmdCIsIndpZHRoIiwiZ2V0V2lkdGgiLCJoZWlnaHQiLCJnZXRIZWlnaHQiLCJwYWRkaW5nVG9wIiwiZ2V0UGFkZGluZ1RvcCIsInBhZGRpbmdMZWZ0IiwiZ2V0UGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJnZXRQYWRkaW5nUmlnaHQiLCJwYWRkaW5nQm90dG9tIiwiZ2V0UGFkZGluZ0JvdHRvbSIsImJvcmRlclRvcFdpZHRoIiwiZ2V0Qm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJnZXRCb3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwiZ2V0Qm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlckJvdHRvbVdpZHRoIiwiZ2V0Qm9yZGVyQm90dG9tV2lkdGgiLCJib3VuZHMiLCJmcm9tVG9wTGVmdFdpZHRoQW5kSGVpZ2h0IiwiaW5uZXJCb3VuZHMiLCJnZXRJbml0aWFsTGluZUNvdW50IiwibGluZUNvdW50IiwiaW5pdGlhbExpbmVDb3VudCIsImdldFNjcm9sbGJhclRoaWNrbmVzcyIsInNjcm9sbGJhclRoaWNrbmVzcyIsInByb3BlcnRpZXMiLCJoaWRkZW5TY3JvbGxiYXJzIiwiZmFuY3lTY3JvbGxiYXJzIiwic2V0TGV4ZXIiLCJsZXhlciIsInNldFBhcnNlciIsInBhcnNlciIsImNoYW5nZUhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJyaWNoVGV4dGFyZWEiLCJjb250ZW50Q2hhbmdlZCIsImhhc0NvbnRlbnRDaGFuZ2VkIiwib25Db250ZW50Q2hhbmdlIiwiY29udGVudENoYW5nZUhhbmRsZXIiLCJ1cGRhdGUiLCJzY3JvbGxIYW5kbGVyIiwic2Nyb2xsVG9wIiwiZ2V0U2Nyb2xsVG9wIiwic2Nyb2xsTGVmdCIsImdldFNjcm9sbExlZnQiLCJzY3JvbGxQcmV0dHlQcmludGVyIiwidG9rZW5zIiwiZ2V0VG9rZW5zIiwidXBkYXRlUHJldHR5UHJpbnRlciIsInJpY2hUZXh0YXJlYUJvdW5kcyIsInNldFJpY2hUZXh0YXJlYUJvdW5kcyIsInJlc2l6ZSIsInByZXR0eVByaW50ZXJCb3VuZHMiLCJzZXRQcmV0dHlQcmludGVyQm91bmRzIiwicmVzaXplUHJldHR5UHJpbnRlciIsInJlbmRlciIsImxpbmVIZWlnaHQiLCJnZXRMaW5lSGVpZ2h0Iiwic2V0SGVpZ2h0IiwiZGlkTW91bnQiLCJmaXJhQ29kZSIsImRlZmVyUmVuZGVyIiwiYWRkQ2xhc3MiLCJ3aWxsVW5tb3VudCIsInJlbW92ZUNsYXNzIiwiY2hpbGRFbGVtZW50cyIsImhpZGRlbkd1dHRlciIsImJpbmQiLCJvbkNoYW5nZSIsIm9uU2Nyb2xsIiwiYWN0aXZlIiwicGFyZW50Q29udGV4dCIsInVwZGF0ZVlhcHAiLCJzZXRZYXBwV2lkdGgiLCJzZXRXaWR0aCIsInNldFlhcHBIZWlnaHQiLCJzZXRZYXBwTGV4ZXIiLCJzZXRZYXBwUGFyc2VyIiwicmVzaXplWWFwcCIsImluaXRpYWxpc2UiLCJhc3NpZ25Db250ZXh0IiwiZWRpdGFibGUiLCJsYW5ndWFnZSIsImdldExhbmd1YWdlIiwicmVhZE9ubHkiLCJzZXRMYW5ndWFnZSIsInNldFJpY2hUZXh0YXJlYUNvbnRlbnQiLCJzZXRSaWNoVGV4dGFyZWFSZWFkT25seSIsIm9uUmVzaXplIiwiZnJvbUNvbnRlbnQiLCJQbHVnaW4iLCJvcHRpb25zIiwiQ2xhc3MiLCJ5YXBwIiwiZnJvbUNsYXNzIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwiaWdub3JlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiJBQUFBLENBQVk7Ozs7O0FBRVUsR0FBaUIsQ0FBakIsY0FBaUI7QUFFQSxHQUFNLENBQU4sS0FBTTtBQUVyQixHQUFnQixDQUFoQixNQUFnQjtBQUNmLEdBQWdCLENBQWhCLGFBQWdCO0FBQ2YsR0FBaUIsQ0FBakIsY0FB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yapp",
3
3
  "author": "James Smith",
4
- "version": "2.1.16",
4
+ "version": "2.2.0",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/yapp",
7
7
  "description": "Yet Another Pretty Printer.",
@@ -20,7 +20,7 @@
20
20
  "occam-parsers": "^14.0.35"
21
21
  },
22
22
  "devDependencies": {
23
- "@swc/core": "^1.2.96",
23
+ "@swc/core": "^1.2.106",
24
24
  "easy-layout": "^5.0.57",
25
25
  "esbuild": "^0.11.7",
26
26
  "express": "^4.17.1",
package/src/defaults.js CHANGED
@@ -6,3 +6,4 @@ export const DEFAULT_FIRA_CODE = false;
6
6
  export const DEFAULT_DEFER_RENDER = false;
7
7
  export const DEFAULT_HIDDEN_GUTTER = false;
8
8
  export const DEFAULT_FANCY_SCROLLBARS = false;
9
+ export const DEFAULT_HIDDEN_SCROLLBARS = false;
@@ -8,8 +8,7 @@ export default withStyle(class extends Yapp {
8
8
  static defaultProperties = {
9
9
  editable: true,
10
10
  firaCode: true,
11
- hiddenGutter: false,
12
- fancyScrollbars: true
11
+ hiddenScrollbars: true
13
12
  };
14
13
  })`
15
14
 
@@ -31,22 +31,30 @@ export default withStyle(class extends RichTextarea {
31
31
  }
32
32
 
33
33
  didMount() {
34
- const { fancyScrollbars } = this.properties;
34
+ const { fancyScrollbars, hiddenScrollbars } = this.properties;
35
35
 
36
36
  if (fancyScrollbars) {
37
37
  this.addClass("fancy-scrollbars");
38
38
  }
39
39
 
40
+ if (hiddenScrollbars) {
41
+ this.addClass("hidden-scrollbars");
42
+ }
43
+
40
44
  super.didMount();
41
45
  }
42
46
 
43
47
  willUnmount() {
44
- const { fancyScrollbars } = this.properties;
48
+ const { fancyScrollbars, hiddenScrollbars } = this.properties;
45
49
 
46
50
  if (fancyScrollbars) {
47
51
  this.removeClass("fancy-scrollbars");
48
52
  }
49
53
 
54
+ if (hiddenScrollbars) {
55
+ this.removeClass("hidden-scrollbars");
56
+ }
57
+
50
58
  super.willUnmount();
51
59
  }
52
60
 
@@ -93,6 +101,10 @@ export default withStyle(class extends RichTextarea {
93
101
  background-color: ${selectionBackgroundColour};
94
102
  }
95
103
 
104
+ .hidden-scrollbars {
105
+ overflow: hidden;
106
+ }
107
+
96
108
  .fancy-scrollbars::-webkit-scrollbar {
97
109
  width: ${scrollbarThickness};
98
110
  height: ${scrollbarThickness};
package/src/yapp.js CHANGED
@@ -13,7 +13,7 @@ import { pluginFromLanguageAndPlugin } from "./utilities/plugin";
13
13
  import { propertiesFromContentLanguagePluginAndOptions } from "./utilities/properties";
14
14
  import { lineCountFromContent, contentFromChildElements } from "./utilities/content";
15
15
  import { colour, caretColour, borderColour, backgroundColour } from "./scheme/colour";
16
- import { DEFAULT_EDITABLE, DEFAULT_FIRA_CODE, DEFAULT_DEFER_RENDER, DEFAULT_HIDDEN_GUTTER, DEFAULT_FANCY_SCROLLBARS } from "./defaults";
16
+ import { DEFAULT_EDITABLE, DEFAULT_FIRA_CODE, DEFAULT_DEFER_RENDER, DEFAULT_HIDDEN_GUTTER, DEFAULT_HIDDEN_SCROLLBARS, DEFAULT_FANCY_SCROLLBARS } from "./defaults";
17
17
 
18
18
  class Yapp extends Element {
19
19
  constructor(selector, plugin) {
@@ -74,8 +74,15 @@ class Yapp extends Element {
74
74
  }
75
75
 
76
76
  getScrollbarThickness() {
77
- const { fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
78
- scrollbarThickness = getScrollbarThickness(fancyScrollbars);
77
+ let scrollbarThickness = 0;
78
+
79
+ const { hiddenScrollbars = DEFAULT_HIDDEN_SCROLLBARS } = this.properties;
80
+
81
+ if (!hiddenScrollbars) {
82
+ const { fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties;
83
+
84
+ scrollbarThickness = getScrollbarThickness(fancyScrollbars);
85
+ }
79
86
 
80
87
  return scrollbarThickness;
81
88
  }
@@ -185,7 +192,7 @@ class Yapp extends Element {
185
192
  }
186
193
 
187
194
  childElements() {
188
- const { hiddenGutter = DEFAULT_HIDDEN_GUTTER, fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
195
+ const { hiddenGutter = DEFAULT_HIDDEN_GUTTER, hiddenScrollbars = DEFAULT_HIDDEN_SCROLLBARS, fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
189
196
  changeHandler = this.changeHandler.bind(this),
190
197
  scrollHandler = this.scrollHandler.bind(this),
191
198
  scrollbarThickness = this.getScrollbarThickness();
@@ -193,7 +200,7 @@ class Yapp extends Element {
193
200
  return ([
194
201
 
195
202
  <PrettyPrinter hiddenGutter={hiddenGutter} scrollbarThickness={scrollbarThickness} />,
196
- <RichTextarea onChange={changeHandler} onScroll={scrollHandler} fancyScrollbars={fancyScrollbars} active />
203
+ <RichTextarea onChange={changeHandler} onScroll={scrollHandler} hiddenScrollbars={hiddenScrollbars} fancyScrollbars={fancyScrollbars} active />
197
204
 
198
205
  ]);
199
206
  }
@@ -252,6 +259,7 @@ class Yapp extends Element {
252
259
  "editable",
253
260
  "deferRender",
254
261
  "hiddenGutter",
262
+ "noScrollbars",
255
263
  "fancyScrollbars"
256
264
  ];
257
265