@pie-lib/editable-html-tip-tap 1.0.7 → 1.0.9

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.
@@ -7,12 +7,18 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports["default"] = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
15
 
14
16
  var _debug = _interopRequireDefault(require("debug"));
15
17
 
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
16
22
  var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
17
23
  /**
18
24
  * Handles user selection, insertion (or cancellation) of an image into the editor.
@@ -24,10 +30,21 @@ var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-hand
24
30
  */
25
31
 
26
32
  var InsertImageHandler = /*#__PURE__*/function () {
27
- function InsertImageHandler(editor, onFinish) {
28
- var isPasted = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
33
+ function InsertImageHandler(editor, node, onFinish) {
34
+ var _this = this;
35
+
36
+ var isPasted = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
29
37
  (0, _classCallCheck2["default"])(this, InsertImageHandler);
30
38
  this.editor = editor;
39
+ this.node = node;
40
+ var nodePos;
41
+ editor.state.doc.descendants(function (node, pos) {
42
+ if (node === _this.node) {
43
+ nodePos = pos;
44
+ return false;
45
+ }
46
+ });
47
+ this.nodePos = nodePos;
31
48
  this.onFinish = onFinish;
32
49
  this.isPasted = isPasted;
33
50
  this.chosenFile = null;
@@ -39,11 +56,35 @@ var InsertImageHandler = /*#__PURE__*/function () {
39
56
  log('insert cancelled');
40
57
 
41
58
  try {
42
- this.editor.commands.deleteNode('imageUploadNode');
59
+ this.deleteNode();
43
60
  this.onFinish(false);
44
61
  } catch (err) {//
45
62
  }
46
63
  }
64
+ }, {
65
+ key: "updateNode",
66
+ value: function updateNode(newAttrs) {
67
+ var _this$editor = this.editor,
68
+ state = _this$editor.state,
69
+ view = _this$editor.view;
70
+ var tr = state.tr;
71
+ var node = state.doc.nodeAt(this.nodePos);
72
+
73
+ if (node) {
74
+ var transaction = tr.setNodeMarkup(this.nodePos, undefined, _objectSpread(_objectSpread({}, node.attrs), newAttrs));
75
+ view.dispatch(transaction);
76
+ }
77
+ }
78
+ }, {
79
+ key: "deleteNode",
80
+ value: function deleteNode() {
81
+ var _this$editor2 = this.editor,
82
+ state = _this$editor2.state,
83
+ view = _this$editor2.view;
84
+ var tr = state.tr;
85
+ var transaction = tr["delete"](this.nodePos, this.nodePos + this.node.nodeSize);
86
+ view.dispatch(transaction);
87
+ }
47
88
  }, {
48
89
  key: "done",
49
90
  value: function done(err, src) {
@@ -54,7 +95,7 @@ var InsertImageHandler = /*#__PURE__*/function () {
54
95
  console.log(err);
55
96
  this.onFinish(false);
56
97
  } else {
57
- this.editor.commands.updateAttributes('imageUploadNode', {
98
+ this.updateNode({
58
99
  loaded: true,
59
100
  src: src,
60
101
  percent: 100
@@ -71,7 +112,7 @@ var InsertImageHandler = /*#__PURE__*/function () {
71
112
  }, {
72
113
  key: "fileChosen",
73
114
  value: function fileChosen(file) {
74
- var _this = this;
115
+ var _this2 = this;
75
116
 
76
117
  if (!file) {
77
118
  return;
@@ -85,7 +126,7 @@ var InsertImageHandler = /*#__PURE__*/function () {
85
126
  reader.onload = function () {
86
127
  var dataURL = reader.result;
87
128
 
88
- _this.editor.commands.updateAttributes('imageUploadNode', {
129
+ _this2.updateNode({
89
130
  src: dataURL
90
131
  });
91
132
  };
@@ -96,7 +137,7 @@ var InsertImageHandler = /*#__PURE__*/function () {
96
137
  key: "progress",
97
138
  value: function progress(percent, bytes, total) {
98
139
  log('progress: ', percent, bytes, total);
99
- this.editor.commands.updateAttributes('imageUploadNode', {
140
+ this.updateNode({
100
141
  percent: percent
101
142
  });
102
143
  } // Add a getter method to retrieve the chosen file
@@ -112,4 +153,4 @@ var InsertImageHandler = /*#__PURE__*/function () {
112
153
 
113
154
  var _default = InsertImageHandler;
114
155
  exports["default"] = _default;
115
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ltYWdlL0luc2VydEltYWdlSGFuZGxlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJlZGl0b3IiLCJvbkZpbmlzaCIsImlzUGFzdGVkIiwiY2hvc2VuRmlsZSIsImNvbW1hbmRzIiwiZGVsZXRlTm9kZSIsImVyciIsInNyYyIsImNvbnNvbGUiLCJ1cGRhdGVBdHRyaWJ1dGVzIiwibG9hZGVkIiwicGVyY2VudCIsImZpbGUiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZGF0YVVSTCIsInJlc3VsdCIsInJlYWRBc0RhdGFVUkwiLCJieXRlcyIsInRvdGFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLG1EQUFOLENBQVo7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztJQUNNQyxrQjtBQUNKLDhCQUFZQyxNQUFaLEVBQW9CQyxRQUFwQixFQUFnRDtBQUFBLFFBQWxCQyxRQUFrQix1RUFBUCxLQUFPO0FBQUE7QUFDOUMsU0FBS0YsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsUUFBTCxHQUFnQkEsUUFBaEI7QUFDQSxTQUFLQyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLFNBQUtDLFVBQUwsR0FBa0IsSUFBbEI7QUFDRDs7OztXQUVELGtCQUFTO0FBQ1BMLE1BQUFBLEdBQUcsQ0FBQyxrQkFBRCxDQUFIOztBQUVBLFVBQUk7QUFDRixhQUFLRSxNQUFMLENBQVlJLFFBQVosQ0FBcUJDLFVBQXJCLENBQWdDLGlCQUFoQztBQUNBLGFBQUtKLFFBQUwsQ0FBYyxLQUFkO0FBQ0QsT0FIRCxDQUdFLE9BQU9LLEdBQVAsRUFBWSxDQUNaO0FBQ0Q7QUFDRjs7O1dBRUQsY0FBS0EsR0FBTCxFQUFVQyxHQUFWLEVBQWU7QUFDYlQsTUFBQUEsR0FBRyxDQUFDLFlBQUQsRUFBZVEsR0FBZixDQUFIOztBQUNBLFVBQUlBLEdBQUosRUFBUztBQUNQO0FBQ0FFLFFBQUFBLE9BQU8sQ0FBQ1YsR0FBUixDQUFZUSxHQUFaO0FBQ0EsYUFBS0wsUUFBTCxDQUFjLEtBQWQ7QUFDRCxPQUpELE1BSU87QUFDTCxhQUFLRCxNQUFMLENBQVlJLFFBQVosQ0FBcUJLLGdCQUFyQixDQUFzQyxpQkFBdEMsRUFBeUQ7QUFBRUMsVUFBQUEsTUFBTSxFQUFFLElBQVY7QUFBZ0JILFVBQUFBLEdBQUcsRUFBSEEsR0FBaEI7QUFBcUJJLFVBQUFBLE9BQU8sRUFBRTtBQUE5QixTQUF6RDtBQUNBLGFBQUtWLFFBQUwsQ0FBYyxJQUFkO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7Ozs7V0FDRSxvQkFBV1csSUFBWCxFQUFpQjtBQUFBOztBQUNmLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1Q7QUFDRCxPQUhjLENBS2Y7OztBQUNBLFdBQUtULFVBQUwsR0FBa0JTLElBQWxCO0FBRUFkLE1BQUFBLEdBQUcsQ0FBQyxxQkFBRCxFQUF3QmMsSUFBeEIsQ0FBSDtBQUNBLFVBQU1DLE1BQU0sR0FBRyxJQUFJQyxVQUFKLEVBQWY7O0FBQ0FELE1BQUFBLE1BQU0sQ0FBQ0UsTUFBUCxHQUFnQixZQUFNO0FBQ3BCLFlBQU1DLE9BQU8sR0FBR0gsTUFBTSxDQUFDSSxNQUF2Qjs7QUFFQSxRQUFBLEtBQUksQ0FBQ2pCLE1BQUwsQ0FBWUksUUFBWixDQUFxQkssZ0JBQXJCLENBQXNDLGlCQUF0QyxFQUF5RDtBQUFFRixVQUFBQSxHQUFHLEVBQUVTO0FBQVAsU0FBekQ7QUFDRCxPQUpEOztBQUtBSCxNQUFBQSxNQUFNLENBQUNLLGFBQVAsQ0FBcUJOLElBQXJCO0FBQ0Q7OztXQUVELGtCQUFTRCxPQUFULEVBQWtCUSxLQUFsQixFQUF5QkMsS0FBekIsRUFBZ0M7QUFDOUJ0QixNQUFBQSxHQUFHLENBQUMsWUFBRCxFQUFlYSxPQUFmLEVBQXdCUSxLQUF4QixFQUErQkMsS0FBL0IsQ0FBSDtBQUNBLFdBQUtwQixNQUFMLENBQVlJLFFBQVosQ0FBcUJLLGdCQUFyQixDQUFzQyxpQkFBdEMsRUFBeUQ7QUFBRUUsUUFBQUEsT0FBTyxFQUFQQTtBQUFGLE9BQXpEO0FBQ0QsSyxDQUVEOzs7O1dBQ0EseUJBQWdCO0FBQ2QsYUFBTyxLQUFLUixVQUFaO0FBQ0Q7Ozs7O2VBR1lKLGtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6aW1hZ2U6aW5zZXJ0LWltYWdlLWhhbmRsZXInKTtcblxuLyoqXG4gKiBIYW5kbGVzIHVzZXIgc2VsZWN0aW9uLCBpbnNlcnRpb24gKG9yIGNhbmNlbGxhdGlvbikgb2YgYW4gaW1hZ2UgaW50byB0aGUgZWRpdG9yLlxuICogQHBhcmFtIHtCbG9ja30gcGxhY2Vob2xkZXJCbG9jayAtIGEgYmxvY2sgdGhhdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgZWRpdG9yIGFzIGEgcGxhY2UgaG9sZGVyIGZvciB0aGUgaW1hZ2VcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uRmluaXNoIC0gYSBmdW5jdGlvbiB0byBjYWxsIGlmIHVwbG9hZGluZyBmYWlscyBvciBzdWNjZWVkc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0VmFsdWUgLSBhIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVkaXRvclxuICogQHBhcmFtIHtGdW5jdGlvbn0gb25DaGFuZ2UgLSBjYWxsYmFjayB0byBub3RpZnkgY2hhbmdlcyBhcHBsaWVkIGJ5IHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlzUGFzdGVkIC0gYSBib29sZWFuIHRoYXQga2VlcHMgdHJhY2sgaWYgdGhlIGZpbGUgaXMgcGFzdGVkXG4gKi9cbmNsYXNzIEluc2VydEltYWdlSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKGVkaXRvciwgb25GaW5pc2gsIGlzUGFzdGVkID0gZmFsc2UpIHtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICB0aGlzLm9uRmluaXNoID0gb25GaW5pc2g7XG4gICAgdGhpcy5pc1Bhc3RlZCA9IGlzUGFzdGVkO1xuICAgIHRoaXMuY2hvc2VuRmlsZSA9IG51bGw7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgbG9nKCdpbnNlcnQgY2FuY2VsbGVkJyk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5lZGl0b3IuY29tbWFuZHMuZGVsZXRlTm9kZSgnaW1hZ2VVcGxvYWROb2RlJyk7XG4gICAgICB0aGlzLm9uRmluaXNoKGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgZG9uZShlcnIsIHNyYykge1xuICAgIGxvZygnZG9uZTogZXJyOicsIGVycik7XG4gICAgaWYgKGVycikge1xuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICB0aGlzLm9uRmluaXNoKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgeyBsb2FkZWQ6IHRydWUsIHNyYywgcGVyY2VudDogMTAwIH0pO1xuICAgICAgdGhpcy5vbkZpbmlzaCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGhhbmRsZXIgdGhhdCB0aGUgdXNlciBjaG9zZSBhIGZpbGUgLSB3aWxsIGNyZWF0ZSBhIGNoYW5nZSB3aXRoIGEgcHJldmlldyBpbiB0aGUgZWRpdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGUgLSB0aGUgZmlsZSB0aGF0IHRoZSB1c2VyIGNob3NlIHVzaW5nIGEgZmlsZSBpbnB1dC5cbiAgICovXG4gIGZpbGVDaG9zZW4oZmlsZSkge1xuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNhdmUgdGhlIGNob3NlbiBmaWxlIHRvIHRoaXMuY2hvc2VuRmlsZVxuICAgIHRoaXMuY2hvc2VuRmlsZSA9IGZpbGU7XG5cbiAgICBsb2coJ1tmaWxlQ2hvc2VuXSBmaWxlOiAnLCBmaWxlKTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhVVJMID0gcmVhZGVyLnJlc3VsdDtcblxuICAgICAgdGhpcy5lZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgeyBzcmM6IGRhdGFVUkwgfSk7XG4gICAgfTtcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgfVxuXG4gIHByb2dyZXNzKHBlcmNlbnQsIGJ5dGVzLCB0b3RhbCkge1xuICAgIGxvZygncHJvZ3Jlc3M6ICcsIHBlcmNlbnQsIGJ5dGVzLCB0b3RhbCk7XG4gICAgdGhpcy5lZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgeyBwZXJjZW50IH0pO1xuICB9XG5cbiAgLy8gQWRkIGEgZ2V0dGVyIG1ldGhvZCB0byByZXRyaWV2ZSB0aGUgY2hvc2VuIGZpbGVcbiAgZ2V0Q2hvc2VuRmlsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaG9zZW5GaWxlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEluc2VydEltYWdlSGFuZGxlcjtcbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2ltYWdlL0luc2VydEltYWdlSGFuZGxlci5qcyJdLCJuYW1lcyI6WyJsb2ciLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJlZGl0b3IiLCJub2RlIiwib25GaW5pc2giLCJpc1Bhc3RlZCIsIm5vZGVQb3MiLCJzdGF0ZSIsImRvYyIsImRlc2NlbmRhbnRzIiwicG9zIiwiY2hvc2VuRmlsZSIsImRlbGV0ZU5vZGUiLCJlcnIiLCJuZXdBdHRycyIsInZpZXciLCJ0ciIsIm5vZGVBdCIsInRyYW5zYWN0aW9uIiwic2V0Tm9kZU1hcmt1cCIsInVuZGVmaW5lZCIsImF0dHJzIiwiZGlzcGF0Y2giLCJub2RlU2l6ZSIsInNyYyIsImNvbnNvbGUiLCJ1cGRhdGVOb2RlIiwibG9hZGVkIiwicGVyY2VudCIsImZpbGUiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZGF0YVVSTCIsInJlc3VsdCIsInJlYWRBc0RhdGFVUkwiLCJieXRlcyIsInRvdGFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O0FBRUEsSUFBTUEsR0FBRyxHQUFHLHVCQUFNLG1EQUFOLENBQVo7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztJQUNNQyxrQjtBQUNKLDhCQUFZQyxNQUFaLEVBQW9CQyxJQUFwQixFQUEwQkMsUUFBMUIsRUFBc0Q7QUFBQTs7QUFBQSxRQUFsQkMsUUFBa0IsdUVBQVAsS0FBTztBQUFBO0FBQ3BELFNBQUtILE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLElBQUwsR0FBWUEsSUFBWjtBQUVBLFFBQUlHLE9BQUo7QUFFQUosSUFBQUEsTUFBTSxDQUFDSyxLQUFQLENBQWFDLEdBQWIsQ0FBaUJDLFdBQWpCLENBQTZCLFVBQUNOLElBQUQsRUFBT08sR0FBUCxFQUFlO0FBQzFDLFVBQUlQLElBQUksS0FBSyxLQUFJLENBQUNBLElBQWxCLEVBQXdCO0FBQ3RCRyxRQUFBQSxPQUFPLEdBQUdJLEdBQVY7QUFDQSxlQUFPLEtBQVA7QUFDRDtBQUNGLEtBTEQ7QUFPQSxTQUFLSixPQUFMLEdBQWVBLE9BQWY7QUFDQSxTQUFLRixRQUFMLEdBQWdCQSxRQUFoQjtBQUNBLFNBQUtDLFFBQUwsR0FBZ0JBLFFBQWhCO0FBQ0EsU0FBS00sVUFBTCxHQUFrQixJQUFsQjtBQUNEOzs7O1dBRUQsa0JBQVM7QUFDUFgsTUFBQUEsR0FBRyxDQUFDLGtCQUFELENBQUg7O0FBRUEsVUFBSTtBQUNGLGFBQUtZLFVBQUw7QUFDQSxhQUFLUixRQUFMLENBQWMsS0FBZDtBQUNELE9BSEQsQ0FHRSxPQUFPUyxHQUFQLEVBQVksQ0FDWjtBQUNEO0FBQ0Y7OztXQUVELG9CQUFXQyxRQUFYLEVBQXFCO0FBQ25CLHlCQUF3QixLQUFLWixNQUE3QjtBQUFBLFVBQVFLLEtBQVIsZ0JBQVFBLEtBQVI7QUFBQSxVQUFlUSxJQUFmLGdCQUFlQSxJQUFmO0FBQ0EsVUFBUUMsRUFBUixHQUFlVCxLQUFmLENBQVFTLEVBQVI7QUFDQSxVQUFNYixJQUFJLEdBQUdJLEtBQUssQ0FBQ0MsR0FBTixDQUFVUyxNQUFWLENBQWlCLEtBQUtYLE9BQXRCLENBQWI7O0FBRUEsVUFBSUgsSUFBSixFQUFVO0FBQ1IsWUFBTWUsV0FBVyxHQUFHRixFQUFFLENBQUNHLGFBQUgsQ0FBaUIsS0FBS2IsT0FBdEIsRUFBK0JjLFNBQS9CLGtDQUErQ2pCLElBQUksQ0FBQ2tCLEtBQXBELEdBQThEUCxRQUE5RCxFQUFwQjtBQUVBQyxRQUFBQSxJQUFJLENBQUNPLFFBQUwsQ0FBY0osV0FBZDtBQUNEO0FBQ0Y7OztXQUVELHNCQUFhO0FBQ1gsMEJBQXdCLEtBQUtoQixNQUE3QjtBQUFBLFVBQVFLLEtBQVIsaUJBQVFBLEtBQVI7QUFBQSxVQUFlUSxJQUFmLGlCQUFlQSxJQUFmO0FBQ0EsVUFBUUMsRUFBUixHQUFlVCxLQUFmLENBQVFTLEVBQVI7QUFFQSxVQUFNRSxXQUFXLEdBQUdGLEVBQUUsVUFBRixDQUFVLEtBQUtWLE9BQWYsRUFBd0IsS0FBS0EsT0FBTCxHQUFlLEtBQUtILElBQUwsQ0FBVW9CLFFBQWpELENBQXBCO0FBRUFSLE1BQUFBLElBQUksQ0FBQ08sUUFBTCxDQUFjSixXQUFkO0FBQ0Q7OztXQUVELGNBQUtMLEdBQUwsRUFBVVcsR0FBVixFQUFlO0FBQ2J4QixNQUFBQSxHQUFHLENBQUMsWUFBRCxFQUFlYSxHQUFmLENBQUg7O0FBQ0EsVUFBSUEsR0FBSixFQUFTO0FBQ1A7QUFDQVksUUFBQUEsT0FBTyxDQUFDekIsR0FBUixDQUFZYSxHQUFaO0FBQ0EsYUFBS1QsUUFBTCxDQUFjLEtBQWQ7QUFDRCxPQUpELE1BSU87QUFDTCxhQUFLc0IsVUFBTCxDQUFnQjtBQUFFQyxVQUFBQSxNQUFNLEVBQUUsSUFBVjtBQUFnQkgsVUFBQUEsR0FBRyxFQUFIQSxHQUFoQjtBQUFxQkksVUFBQUEsT0FBTyxFQUFFO0FBQTlCLFNBQWhCO0FBQ0EsYUFBS3hCLFFBQUwsQ0FBYyxJQUFkO0FBQ0Q7QUFDRjtBQUVEO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7Ozs7V0FDRSxvQkFBV3lCLElBQVgsRUFBaUI7QUFBQTs7QUFDZixVQUFJLENBQUNBLElBQUwsRUFBVztBQUNUO0FBQ0QsT0FIYyxDQUtmOzs7QUFDQSxXQUFLbEIsVUFBTCxHQUFrQmtCLElBQWxCO0FBRUE3QixNQUFBQSxHQUFHLENBQUMscUJBQUQsRUFBd0I2QixJQUF4QixDQUFIO0FBQ0EsVUFBTUMsTUFBTSxHQUFHLElBQUlDLFVBQUosRUFBZjs7QUFDQUQsTUFBQUEsTUFBTSxDQUFDRSxNQUFQLEdBQWdCLFlBQU07QUFDcEIsWUFBTUMsT0FBTyxHQUFHSCxNQUFNLENBQUNJLE1BQXZCOztBQUVBLFFBQUEsTUFBSSxDQUFDUixVQUFMLENBQWdCO0FBQUVGLFVBQUFBLEdBQUcsRUFBRVM7QUFBUCxTQUFoQjtBQUNELE9BSkQ7O0FBS0FILE1BQUFBLE1BQU0sQ0FBQ0ssYUFBUCxDQUFxQk4sSUFBckI7QUFDRDs7O1dBRUQsa0JBQVNELE9BQVQsRUFBa0JRLEtBQWxCLEVBQXlCQyxLQUF6QixFQUFnQztBQUM5QnJDLE1BQUFBLEdBQUcsQ0FBQyxZQUFELEVBQWU0QixPQUFmLEVBQXdCUSxLQUF4QixFQUErQkMsS0FBL0IsQ0FBSDtBQUNBLFdBQUtYLFVBQUwsQ0FBZ0I7QUFBRUUsUUFBQUEsT0FBTyxFQUFQQTtBQUFGLE9BQWhCO0FBQ0QsSyxDQUVEOzs7O1dBQ0EseUJBQWdCO0FBQ2QsYUFBTyxLQUFLakIsVUFBWjtBQUNEOzs7OztlQUdZVixrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOmltYWdlOmluc2VydC1pbWFnZS1oYW5kbGVyJyk7XG5cbi8qKlxuICogSGFuZGxlcyB1c2VyIHNlbGVjdGlvbiwgaW5zZXJ0aW9uIChvciBjYW5jZWxsYXRpb24pIG9mIGFuIGltYWdlIGludG8gdGhlIGVkaXRvci5cbiAqIEBwYXJhbSB7QmxvY2t9IHBsYWNlaG9sZGVyQmxvY2sgLSBhIGJsb2NrIHRoYXQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIGVkaXRvciBhcyBhIHBsYWNlIGhvbGRlciBmb3IgdGhlIGltYWdlXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBvbkZpbmlzaCAtIGEgZnVuY3Rpb24gdG8gY2FsbCBpZiB1cGxvYWRpbmcgZmFpbHMgb3Igc3VjY2VlZHNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGdldFZhbHVlIC0gYSBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBlZGl0b3JcbiAqIEBwYXJhbSB7RnVuY3Rpb259IG9uQ2hhbmdlIC0gY2FsbGJhY2sgdG8gbm90aWZ5IGNoYW5nZXMgYXBwbGllZCBieSB0aGUgaGFuZGxlclxuICogQHBhcmFtIHtCb29sZWFufSBpc1Bhc3RlZCAtIGEgYm9vbGVhbiB0aGF0IGtlZXBzIHRyYWNrIGlmIHRoZSBmaWxlIGlzIHBhc3RlZFxuICovXG5jbGFzcyBJbnNlcnRJbWFnZUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihlZGl0b3IsIG5vZGUsIG9uRmluaXNoLCBpc1Bhc3RlZCA9IGZhbHNlKSB7XG4gICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcblxuICAgIGxldCBub2RlUG9zO1xuXG4gICAgZWRpdG9yLnN0YXRlLmRvYy5kZXNjZW5kYW50cygobm9kZSwgcG9zKSA9PiB7XG4gICAgICBpZiAobm9kZSA9PT0gdGhpcy5ub2RlKSB7XG4gICAgICAgIG5vZGVQb3MgPSBwb3M7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlUG9zID0gbm9kZVBvcztcbiAgICB0aGlzLm9uRmluaXNoID0gb25GaW5pc2g7XG4gICAgdGhpcy5pc1Bhc3RlZCA9IGlzUGFzdGVkO1xuICAgIHRoaXMuY2hvc2VuRmlsZSA9IG51bGw7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgbG9nKCdpbnNlcnQgY2FuY2VsbGVkJyk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy5kZWxldGVOb2RlKCk7XG4gICAgICB0aGlzLm9uRmluaXNoKGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlTm9kZShuZXdBdHRycykge1xuICAgIGNvbnN0IHsgc3RhdGUsIHZpZXcgfSA9IHRoaXMuZWRpdG9yO1xuICAgIGNvbnN0IHsgdHIgfSA9IHN0YXRlO1xuICAgIGNvbnN0IG5vZGUgPSBzdGF0ZS5kb2Mubm9kZUF0KHRoaXMubm9kZVBvcyk7XG5cbiAgICBpZiAobm9kZSkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0ci5zZXROb2RlTWFya3VwKHRoaXMubm9kZVBvcywgdW5kZWZpbmVkLCB7IC4uLm5vZGUuYXR0cnMsIC4uLm5ld0F0dHJzIH0pO1xuXG4gICAgICB2aWV3LmRpc3BhdGNoKHRyYW5zYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVOb2RlKCkge1xuICAgIGNvbnN0IHsgc3RhdGUsIHZpZXcgfSA9IHRoaXMuZWRpdG9yO1xuICAgIGNvbnN0IHsgdHIgfSA9IHN0YXRlO1xuXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0ci5kZWxldGUodGhpcy5ub2RlUG9zLCB0aGlzLm5vZGVQb3MgKyB0aGlzLm5vZGUubm9kZVNpemUpO1xuXG4gICAgdmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XG4gIH1cblxuICBkb25lKGVyciwgc3JjKSB7XG4gICAgbG9nKCdkb25lOiBlcnI6JywgZXJyKTtcbiAgICBpZiAoZXJyKSB7XG4gICAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgIHRoaXMub25GaW5pc2goZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZU5vZGUoeyBsb2FkZWQ6IHRydWUsIHNyYywgcGVyY2VudDogMTAwIH0pO1xuICAgICAgdGhpcy5vbkZpbmlzaCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTm90aWZ5IGhhbmRsZXIgdGhhdCB0aGUgdXNlciBjaG9zZSBhIGZpbGUgLSB3aWxsIGNyZWF0ZSBhIGNoYW5nZSB3aXRoIGEgcHJldmlldyBpbiB0aGUgZWRpdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGUgLSB0aGUgZmlsZSB0aGF0IHRoZSB1c2VyIGNob3NlIHVzaW5nIGEgZmlsZSBpbnB1dC5cbiAgICovXG4gIGZpbGVDaG9zZW4oZmlsZSkge1xuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFNhdmUgdGhlIGNob3NlbiBmaWxlIHRvIHRoaXMuY2hvc2VuRmlsZVxuICAgIHRoaXMuY2hvc2VuRmlsZSA9IGZpbGU7XG5cbiAgICBsb2coJ1tmaWxlQ2hvc2VuXSBmaWxlOiAnLCBmaWxlKTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhVVJMID0gcmVhZGVyLnJlc3VsdDtcblxuICAgICAgdGhpcy51cGRhdGVOb2RlKHsgc3JjOiBkYXRhVVJMIH0pO1xuICAgIH07XG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gIH1cblxuICBwcm9ncmVzcyhwZXJjZW50LCBieXRlcywgdG90YWwpIHtcbiAgICBsb2coJ3Byb2dyZXNzOiAnLCBwZXJjZW50LCBieXRlcywgdG90YWwpO1xuICAgIHRoaXMudXBkYXRlTm9kZSh7IHBlcmNlbnQgfSk7XG4gIH1cblxuICAvLyBBZGQgYSBnZXR0ZXIgbWV0aG9kIHRvIHJldHJpZXZlIHRoZSBjaG9zZW4gZmlsZVxuICBnZXRDaG9zZW5GaWxlKCkge1xuICAgIHJldHVybiB0aGlzLmNob3NlbkZpbGU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSW5zZXJ0SW1hZ2VIYW5kbGVyO1xuIl19
@@ -96,7 +96,7 @@ function ImageComponent(props) {
96
96
  }, [selected]);
97
97
  (0, _react.useEffect)(function () {
98
98
  options.imageHandling.insertImageRequested(node, function (finish) {
99
- return new _InsertImageHandler["default"](editor, finish);
99
+ return new _InsertImageHandler["default"](editor, node, finish);
100
100
  });
101
101
  applySizeData();
102
102
  var resizeHandle = resizeRef.current;
@@ -330,4 +330,4 @@ var _default = (0, _styles.withStyles)(function (theme) {
330
330
  })(ImageComponent);
331
331
 
332
332
  exports["default"] = _default;
333
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NvbXBvbmVudC5qc3giXSwibmFtZXMiOlsibG9nIiwic2l6ZVB4IiwicyIsIkltYWdlQ29tcG9uZW50IiwicHJvcHMiLCJub2RlIiwiZWRpdG9yIiwiY2xhc3NlcyIsImF0dHJpYnV0ZXMiLCJvbkZvY3VzIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGF0ZXgiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVEb25lIiwiYWx0IiwiYXR0cnMiLCJzaG93VG9vbGJhciIsInNldFNob3dUb29sYmFyIiwiaW1nUmVmIiwicmVzaXplUmVmIiwidG9vbGJhclJlZiIsImdldFBlcmNlbnRGcm9tV2lkdGgiLCJ3aWR0aCIsImZsb29yZWQiLCJjdXJyZW50IiwibmF0dXJhbFdpZHRoIiwicGFyc2VJbnQiLCJ0b0ZpeGVkIiwiYXBwbHlTaXplRGF0YSIsInVwZGF0ZSIsInJlc2l6ZVBlcmNlbnQiLCJjb21tYW5kcyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJpbWFnZUhhbmRsaW5nIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJmaW5pc2giLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJyZXNpemVIYW5kbGUiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5pdFJlc2l6ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkSW1hZ2UiLCJib3giLCJzdHlsZSIsInciLCJNYXRoIiwibWluIiwiaCIsIm5hdHVyYWxIZWlnaHQiLCJoZWlnaHQiLCJ1cGRhdGVBc3BlY3QiLCJpbml0aWFsIiwibmV4dCIsImtlZXBBc3BlY3QiLCJyZXNpemVUeXBlIiwicmF0aW8iLCJzdGFydFJlc2l6ZSIsImUiLCJib3VuZHMiLCJ0YXJnZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRYIiwibGVmdCIsImNsaWVudFkiLCJ0b3AiLCJvbkNoYW5nZSIsIm5ld1ZhbHVlcyIsInN0b3BSZXNpemUiLCJ3aW5kb3ciLCJvYmplY3RGaXQiLCJmbGV4QWxpZ24iLCJjZW50ZXIiLCJyaWdodCIsImFsaWdubWVudCIsInJvb3QiLCJsb2FkZWQiLCJsb2FkaW5nIiwiZGVsZXRlU3RhdHVzIiwicGVuZGluZ0RlbGV0ZSIsImp1c3RpZnlDb250ZW50IiwicGVyY2VudCIsInByb2dyZXNzIiwiaGlkZVByb2dyZXNzIiwiaW1hZ2VDb250YWluZXIiLCJzcmMiLCJpbWFnZSIsImFjdGl2ZSIsInJlc2l6ZSIsInBvc2l0aW9uIiwiekluZGV4IiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsIm9uRG9uZSIsImZvY3VzIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwibnVtYmVyIiwidGhlbWUiLCJwb3J0YWwiLCJvcGFjaXR5IiwidHJhbnNpdGlvbiIsImZsb2F0aW5nQnV0dG9uUm93IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsInBhcGVyIiwiYm9yZGVyUmFkaXVzIiwiZGlzcGxheSIsInBhZGRpbmciLCJib3JkZXIiLCJncmV5IiwiY29tbW9uIiwid2hpdGUiLCJhbGlnbkl0ZW1zIiwicHJpbWFyeSIsIm1haW4iLCJjdXJzb3IiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJkcmF3YWJsZUhlaWdodCIsIm1pbkhlaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxnREFBTixDQUFaOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLENBQUQ7QUFBQSxTQUFRQSxDQUFDLGFBQU1BLENBQU4sVUFBYyxZQUF2QjtBQUFBLENBQWY7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7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ZVJlZiwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGluZWFyUHJvZ3Jlc3MgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvTGluZWFyUHJvZ3Jlc3MnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7XG5pbXBvcnQgeyBOb2RlVmlld1dyYXBwZXIgfSBmcm9tICdAdGlwdGFwL3JlYWN0JztcbmltcG9ydCBJbnNlcnRJbWFnZUhhbmRsZXIgZnJvbSAnLi4vY29tcG9uZW50cy9pbWFnZS9JbnNlcnRJbWFnZUhhbmRsZXInO1xuaW1wb3J0IEltYWdlVG9vbGJhciBmcm9tICcuLi9jb21wb25lbnRzL2ltYWdlL0ltYWdlVG9vbGJhcic7XG5pbXBvcnQgQ3VzdG9tVG9vbGJhcldyYXBwZXIgZnJvbSAnLi9jdXN0b20tdG9vbGJhci13cmFwcGVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2luczppbWFnZTpjb21wb25lbnQnKTtcblxuY29uc3Qgc2l6ZVB4ID0gKHMpID0+IChzID8gYCR7c31weGAgOiAnY2FsYygyMHB4KScpO1xuXG5mdW5jdGlvbiBJbWFnZUNvbXBvbmVudChwcm9wcykge1xuICBjb25zdCB7XG4gICAgbm9kZSxcbiAgICBlZGl0b3IsXG4gICAgY2xhc3NlcyxcbiAgICBhdHRyaWJ1dGVzLFxuICAgIG9uRm9jdXMsXG4gICAgc2VsZWN0ZWQsXG4gICAgb3B0aW9ucyxcbiAgICBtYXhJbWFnZVdpZHRoID0gNzAwLFxuICAgIG1heEltYWdlSGVpZ2h0ID0gOTAwLFxuICAgIGxhdGV4LFxuICAgIGhhbmRsZUNoYW5nZSxcbiAgICBoYW5kbGVEb25lLFxuICB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgYWx0IH0gPSBub2RlLmF0dHJzO1xuXG4gIGNvbnN0IFtzaG93VG9vbGJhciwgc2V0U2hvd1Rvb2xiYXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGltZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgcmVzaXplUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IGdldFBlcmNlbnRGcm9tV2lkdGggPSB1c2VDYWxsYmFjaygod2lkdGgpID0+IHtcbiAgICBjb25zdCBmbG9vcmVkID0gKHdpZHRoIC8gaW1nUmVmLmN1cnJlbnQubmF0dXJhbFdpZHRoKSAqIDQ7XG4gICAgcmV0dXJuIHBhcnNlSW50KGZsb29yZWQudG9GaXhlZCgwKSAqIDI1LCAxMCk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBhcHBseVNpemVEYXRhID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmICghbm9kZS5hdHRycy53aWR0aCB8fCAhaW1nUmVmLmN1cnJlbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHVwZGF0ZSA9IHtcbiAgICAgIC4uLm5vZGUuYXR0cnMsXG4gICAgICByZXNpemVQZXJjZW50OiBnZXRQZXJjZW50RnJvbVdpZHRoKG5vZGUuYXR0cnMud2lkdGgpLFxuICAgIH07XG5cbiAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgfVxuICB9LCBbZWRpdG9yLCBub2RlLmF0dHJzLCBnZXRQZXJjZW50RnJvbVdpZHRoXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRTaG93VG9vbGJhcihzZWxlY3RlZCk7XG4gIH0sIFtzZWxlY3RlZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgb3B0aW9ucy5pbWFnZUhhbmRsaW5nLmluc2VydEltYWdlUmVxdWVzdGVkKG5vZGUsIChmaW5pc2gpID0+IG5ldyBJbnNlcnRJbWFnZUhhbmRsZXIoZWRpdG9yLCBmaW5pc2gpKTtcbiAgICBhcHBseVNpemVEYXRhKCk7XG5cbiAgICBjb25zdCByZXNpemVIYW5kbGUgPSByZXNpemVSZWYuY3VycmVudDtcbiAgICBpZiAocmVzaXplSGFuZGxlKSB7XG4gICAgICByZXNpemVIYW5kbGUuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaW5pdFJlc2l6ZSwgZmFsc2UpO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJlc2l6ZUhhbmRsZSkgcmVzaXplSGFuZGxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGluaXRSZXNpemUsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhcHBseVNpemVEYXRhKCk7XG4gIH0pO1xuXG4gIGNvbnN0IGxvYWRJbWFnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBib3ggPSBpbWdSZWYuY3VycmVudDtcbiAgICBpZiAoIWJveCkgcmV0dXJuO1xuXG4gICAgaWYgKCFib3guc3R5bGUud2lkdGggfHwgYm94LnN0eWxlLndpZHRoID09PSAnY2FsYygyMHB4KScpIHtcbiAgICAgIGNvbnN0IHcgPSBNYXRoLm1pbihib3gubmF0dXJhbFdpZHRoLCBtYXhJbWFnZVdpZHRoKTtcbiAgICAgIGNvbnN0IGggPSBNYXRoLm1pbihib3gubmF0dXJhbEhlaWdodCwgbWF4SW1hZ2VIZWlnaHQpO1xuXG4gICAgICBib3guc3R5bGUud2lkdGggPSBgJHt3fXB4YDtcbiAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtofXB4YDtcblxuICAgICAgY29uc3QgdXBkYXRlID0geyB3aWR0aDogdywgaGVpZ2h0OiBoIH07XG4gICAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgICBlZGl0b3IuY29tbWFuZHMudXBkYXRlQXR0cmlidXRlcygnaW1hZ2VVcGxvYWROb2RlJywgdXBkYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtlZGl0b3IsIG5vZGUuYXR0cnMsIG1heEltYWdlV2lkdGgsIG1heEltYWdlSGVpZ2h0XSk7XG5cbiAgY29uc3QgdXBkYXRlQXNwZWN0ID0gKGluaXRpYWwsIG5leHQsIGtlZXBBc3BlY3QgPSB0cnVlLCByZXNpemVUeXBlKSA9PiB7XG4gICAgaWYgKGtlZXBBc3BlY3QpIHtcbiAgICAgIGNvbnN0IHJhdGlvID0gaW5pdGlhbC53aWR0aCAvIGluaXRpYWwuaGVpZ2h0O1xuICAgICAgaWYgKHJlc2l6ZVR5cGUgPT09ICdoZWlnaHQnKSByZXR1cm4geyB3aWR0aDogbmV4dC5oZWlnaHQgKiByYXRpbywgaGVpZ2h0OiBuZXh0LmhlaWdodCB9O1xuICAgICAgcmV0dXJuIHsgd2lkdGg6IG5leHQud2lkdGgsIGhlaWdodDogbmV4dC53aWR0aCAvIHJhdGlvIH07XG4gICAgfVxuICAgIHJldHVybiBuZXh0O1xuICB9O1xuXG4gIGNvbnN0IHN0YXJ0UmVzaXplID0gdXNlQ2FsbGJhY2soXG4gICAgKGUpID0+IHtcbiAgICAgIGNvbnN0IGJveCA9IGltZ1JlZi5jdXJyZW50O1xuICAgICAgaWYgKCFib3gpIHJldHVybjtcblxuICAgICAgY29uc3QgYm91bmRzID0gZS50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBjb25zdCBpbml0aWFsID0geyB3aWR0aDogYm94Lm5hdHVyYWxXaWR0aCwgaGVpZ2h0OiBib3gubmF0dXJhbEhlaWdodCB9O1xuXG4gICAgICBjb25zdCBuZXh0ID0gdXBkYXRlQXNwZWN0KGluaXRpYWwsIHtcbiAgICAgICAgd2lkdGg6IGUuY2xpZW50WCAtIGJvdW5kcy5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGUuY2xpZW50WSAtIGJvdW5kcy50b3AsXG4gICAgICB9KTtcblxuICAgICAgaWYgKG5leHQud2lkdGggPiA1MCAmJiBuZXh0LmhlaWdodCA+IDUwICYmIG5leHQud2lkdGggPD0gNzAwICYmIG5leHQuaGVpZ2h0IDw9IDkwMCkge1xuICAgICAgICBib3guc3R5bGUud2lkdGggPSBgJHtuZXh0LndpZHRofXB4YDtcbiAgICAgICAgYm94LnN0eWxlLmhlaWdodCA9IGAke25leHQuaGVpZ2h0fXB4YDtcblxuICAgICAgICBjb25zdCB1cGRhdGUgPSB7IHdpZHRoOiBuZXh0LndpZHRoLCBoZWlnaHQ6IG5leHQuaGVpZ2h0IH07XG4gICAgICAgIGlmICghaXNFcXVhbCh1cGRhdGUsIG5vZGUuYXR0cnMpKSB7XG4gICAgICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIFtlZGl0b3IsIG5vZGUuYXR0cnNdLFxuICApO1xuXG4gIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKG5ld1ZhbHVlcykgPT4ge1xuICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIG5ld1ZhbHVlcyk7XG4gICAgfSxcbiAgICBbZWRpdG9yXSxcbiAgKTtcblxuICBjb25zdCBzdG9wUmVzaXplID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBzdGFydFJlc2l6ZSk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBzdG9wUmVzaXplKTtcbiAgfSwgW3N0YXJ0UmVzaXplXSk7XG5cbiAgY29uc3QgaW5pdFJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc3RhcnRSZXNpemUpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6ZSk7XG4gIH0sIFtzdGFydFJlc2l6ZSwgc3RvcFJlc2l6ZV0pO1xuXG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHdpZHRoOiBzaXplUHgobm9kZS5hdHRycy53aWR0aCksXG4gICAgaGVpZ2h0OiBzaXplUHgobm9kZS5hdHRycy5oZWlnaHQpLFxuICAgIG9iamVjdEZpdDogJ2NvbnRhaW4nLFxuICB9O1xuXG4gIGNvbnN0IGZsZXhBbGlnbiA9IHsgbGVmdDogJ2ZsZXgtc3RhcnQnLCBjZW50ZXI6ICdjZW50ZXInLCByaWdodDogJ2ZsZXgtZW5kJyB9W25vZGUuYXR0cnMuYWxpZ25tZW50XSB8fCAnZmxleC1zdGFydCc7XG5cbiAgcmV0dXJuIChcbiAgICA8Tm9kZVZpZXdXcmFwcGVyPlxuICAgICAgPGRpdlxuICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgY2xhc3Nlcy5yb290LFxuICAgICAgICAgICFub2RlLmF0dHJzLmxvYWRlZCAmJiBjbGFzc2VzLmxvYWRpbmcsXG4gICAgICAgICAgbm9kZS5hdHRycy5kZWxldGVTdGF0dXMgPT09ICdwZW5kaW5nJyAmJiBjbGFzc2VzLnBlbmRpbmdEZWxldGUsXG4gICAgICAgICl9XG4gICAgICAgIHN0eWxlPXt7IGp1c3RpZnlDb250ZW50OiBmbGV4QWxpZ24gfX1cbiAgICAgID5cbiAgICAgICAgPExpbmVhclByb2dyZXNzXG4gICAgICAgICAgbW9kZT1cImRldGVybWluYXRlXCJcbiAgICAgICAgICB2YWx1ZT17bm9kZS5hdHRycy5wZXJjZW50IHx8IDB9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucHJvZ3Jlc3MsIG5vZGUuYXR0cnMubG9hZGVkICYmIGNsYXNzZXMuaGlkZVByb2dyZXNzKX1cbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nlcy5pbWFnZUNvbnRhaW5lcn0+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICAgICAgICByZWY9e2ltZ1JlZn1cbiAgICAgICAgICAgIHNyYz17bm9kZS5hdHRycy5zcmN9XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3Nlcy5pbWFnZSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcy5hY3RpdmUpfVxuICAgICAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAgICAgb25Mb2FkPXtsb2FkSW1hZ2V9XG4gICAgICAgICAgICBhbHQ9e25vZGUuYXR0cnMuYWx0fVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiByZWY9e3Jlc2l6ZVJlZn0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMucmVzaXplLCAncmVzaXplJyl9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93VG9vbGJhciAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgdG9wOiAnMTAwJScsXG4gICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgekluZGV4OiAyMCxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICd2YXIoLS1lZGl0YWJsZS1odG1sLXRvb2xiYXItYmcsICNlZmVmZWYpJyxcbiAgICAgICAgICAgIGJveFNoYWRvdzpcbiAgICAgICAgICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPEN1c3RvbVRvb2xiYXJXcmFwcGVyXG4gICAgICAgICAgICBzaG93RG9uZVxuICAgICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgICBvbkRvbmU9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0U2hvd1Rvb2xiYXIoZmFsc2UpO1xuICAgICAgICAgICAgICBwcm9wcy5pbWFnZUhhbmRsaW5nPy5vbkRvbmUoKTtcbiAgICAgICAgICAgICAgcHJvcHMuZWRpdG9yLmNvbW1hbmRzLmZvY3VzKCdlbmQnKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEltYWdlVG9vbGJhclxuICAgICAgICAgICAgICBkaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zPXtvcHRpb25zLmRpc2FibGVJbWFnZUFsaWdubWVudEJ1dHRvbnN9XG4gICAgICAgICAgICAgIGFsdD17bm9kZS5hdHRycy5hbHR9XG4gICAgICAgICAgICAgIGltYWdlTG9hZGVkPXtub2RlLmF0dHJzLmxvYWRlZH1cbiAgICAgICAgICAgICAgYWxpZ25tZW50PXtub2RlLmF0dHJzLmFsaWdubWVudCB8fCAnbGVmdCd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9DdXN0b21Ub29sYmFyV3JhcHBlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvTm9kZVZpZXdXcmFwcGVyPlxuICApO1xufVxuXG5JbWFnZUNvbXBvbmVudC5wcm9wVHlwZXMgPSB7XG4gIG5vZGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgZWRpdG9yOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgYXR0cmlidXRlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gIG1heEltYWdlV2lkdGg6IFByb3BUeXBlcy5udW1iZXIsXG4gIG1heEltYWdlSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcygodGhlbWUpID0+ICh7XG4gIHBvcnRhbDoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIG9wYWNpdHk6IDAsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZmxvYXRpbmdCdXR0b25Sb3c6IHtcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5wYXBlcixcbiAgICBib3JkZXJSYWRpdXM6ICcxcHgnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBwYWRkaW5nOiAnMTBweCcsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5ncmV5WzIwMF19YCxcbiAgICBib3hTaGFkb3c6XG4gICAgICAnMHB4IDFweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKSwgMHB4IDJweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gIH0sXG4gIHByb2dyZXNzOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbGVmdDogJzAnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIHRvcDogJzAlJyxcbiAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAyMDBtcyBsaW5lYXInLFxuICB9LFxuICBoaWRlUHJvZ3Jlc3M6IHtcbiAgICBvcGFjaXR5OiAwLFxuICB9LFxuICBsb2FkaW5nOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICBwZW5kaW5nRGVsZXRlOiB7XG4gICAgb3BhY2l0eTogMC4zLFxuICB9LFxuICByb290OiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5jb21tb24ud2hpdGV9YCxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgZGVsZXRlOiB7XG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgcmlnaHQ6IDAsXG4gIH0sXG4gIGltYWdlQ29udGFpbmVyOiB7XG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICdmaXQtY29udGVudCcsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuXG4gICAgJyYmOmhvdmVyID4gLnJlc2l6ZSc6IHtcbiAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgfSxcbiAgfSxcbiAgYWN0aXZlOiB7XG4gICAgYm9yZGVyOiBgc29saWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgfSxcbiAgcmVzaXplOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbixcbiAgICBjdXJzb3I6ICdjb2wtcmVzaXplJyxcbiAgICBoZWlnaHQ6ICczNXB4JyxcbiAgICB3aWR0aDogJzVweCcsXG4gICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgIG1hcmdpbkxlZnQ6ICc1cHgnLFxuICAgIG1hcmdpblJpZ2h0OiAnMTBweCcsXG4gICAgZGlzcGxheTogJ25vbmUnLFxuICB9LFxuICBkcmF3YWJsZUhlaWdodDoge1xuICAgIG1pbkhlaWdodDogMzUwLFxuICB9LFxufSkpKEltYWdlQ29tcG9uZW50KTtcbiJdfQ==
333
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL2NvbXBvbmVudC5qc3giXSwibmFtZXMiOlsibG9nIiwic2l6ZVB4IiwicyIsIkltYWdlQ29tcG9uZW50IiwicHJvcHMiLCJub2RlIiwiZWRpdG9yIiwiY2xhc3NlcyIsImF0dHJpYnV0ZXMiLCJvbkZvY3VzIiwic2VsZWN0ZWQiLCJvcHRpb25zIiwibWF4SW1hZ2VXaWR0aCIsIm1heEltYWdlSGVpZ2h0IiwibGF0ZXgiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVEb25lIiwiYWx0IiwiYXR0cnMiLCJzaG93VG9vbGJhciIsInNldFNob3dUb29sYmFyIiwiaW1nUmVmIiwicmVzaXplUmVmIiwidG9vbGJhclJlZiIsImdldFBlcmNlbnRGcm9tV2lkdGgiLCJ3aWR0aCIsImZsb29yZWQiLCJjdXJyZW50IiwibmF0dXJhbFdpZHRoIiwicGFyc2VJbnQiLCJ0b0ZpeGVkIiwiYXBwbHlTaXplRGF0YSIsInVwZGF0ZSIsInJlc2l6ZVBlcmNlbnQiLCJjb21tYW5kcyIsInVwZGF0ZUF0dHJpYnV0ZXMiLCJpbWFnZUhhbmRsaW5nIiwiaW5zZXJ0SW1hZ2VSZXF1ZXN0ZWQiLCJmaW5pc2giLCJJbnNlcnRJbWFnZUhhbmRsZXIiLCJyZXNpemVIYW5kbGUiLCJhZGRFdmVudExpc3RlbmVyIiwiaW5pdFJlc2l6ZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsb2FkSW1hZ2UiLCJib3giLCJzdHlsZSIsInciLCJNYXRoIiwibWluIiwiaCIsIm5hdHVyYWxIZWlnaHQiLCJoZWlnaHQiLCJ1cGRhdGVBc3BlY3QiLCJpbml0aWFsIiwibmV4dCIsImtlZXBBc3BlY3QiLCJyZXNpemVUeXBlIiwicmF0aW8iLCJzdGFydFJlc2l6ZSIsImUiLCJib3VuZHMiLCJ0YXJnZXQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJjbGllbnRYIiwibGVmdCIsImNsaWVudFkiLCJ0b3AiLCJvbkNoYW5nZSIsIm5ld1ZhbHVlcyIsInN0b3BSZXNpemUiLCJ3aW5kb3ciLCJvYmplY3RGaXQiLCJmbGV4QWxpZ24iLCJjZW50ZXIiLCJyaWdodCIsImFsaWdubWVudCIsInJvb3QiLCJsb2FkZWQiLCJsb2FkaW5nIiwiZGVsZXRlU3RhdHVzIiwicGVuZGluZ0RlbGV0ZSIsImp1c3RpZnlDb250ZW50IiwicGVyY2VudCIsInByb2dyZXNzIiwiaGlkZVByb2dyZXNzIiwiaW1hZ2VDb250YWluZXIiLCJzcmMiLCJpbWFnZSIsImFjdGl2ZSIsInJlc2l6ZSIsInBvc2l0aW9uIiwiekluZGV4IiwiYmFja2dyb3VuZCIsImJveFNoYWRvdyIsIm9uRG9uZSIsImZvY3VzIiwiZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIiwibnVtYmVyIiwidGhlbWUiLCJwb3J0YWwiLCJvcGFjaXR5IiwidHJhbnNpdGlvbiIsImZsb2F0aW5nQnV0dG9uUm93IiwiYmFja2dyb3VuZENvbG9yIiwicGFsZXR0ZSIsInBhcGVyIiwiYm9yZGVyUmFkaXVzIiwiZGlzcGxheSIsInBhZGRpbmciLCJib3JkZXIiLCJncmV5IiwiY29tbW9uIiwid2hpdGUiLCJhbGlnbkl0ZW1zIiwicHJpbWFyeSIsIm1haW4iLCJjdXJzb3IiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJkcmF3YWJsZUhlaWdodCIsIm1pbkhlaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxnREFBTixDQUFaOztBQUVBLElBQU1DLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLENBQUQ7QUFBQSxTQUFRQSxDQUFDLGFBQU1BLENBQU4sVUFBYyxZQUF2QjtBQUFBLENBQWY7O0FBRUEsU0FBU0MsY0FBVCxDQUF3QkMsS0FBeEIsRUFBK0I7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IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCwgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IExpbmVhclByb2dyZXNzIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0xpbmVhclByb2dyZXNzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IHsgTm9kZVZpZXdXcmFwcGVyIH0gZnJvbSAnQHRpcHRhcC9yZWFjdCc7XG5pbXBvcnQgSW5zZXJ0SW1hZ2VIYW5kbGVyIGZyb20gJy4uL2NvbXBvbmVudHMvaW1hZ2UvSW5zZXJ0SW1hZ2VIYW5kbGVyJztcbmltcG9ydCBJbWFnZVRvb2xiYXIgZnJvbSAnLi4vY29tcG9uZW50cy9pbWFnZS9JbWFnZVRvb2xiYXInO1xuaW1wb3J0IEN1c3RvbVRvb2xiYXJXcmFwcGVyIGZyb20gJy4vY3VzdG9tLXRvb2xiYXItd3JhcHBlcic7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjplZGl0YWJsZS1odG1sOnBsdWdpbnM6aW1hZ2U6Y29tcG9uZW50Jyk7XG5cbmNvbnN0IHNpemVQeCA9IChzKSA9PiAocyA/IGAke3N9cHhgIDogJ2NhbGMoMjBweCknKTtcblxuZnVuY3Rpb24gSW1hZ2VDb21wb25lbnQocHJvcHMpIHtcbiAgY29uc3Qge1xuICAgIG5vZGUsXG4gICAgZWRpdG9yLFxuICAgIGNsYXNzZXMsXG4gICAgYXR0cmlidXRlcyxcbiAgICBvbkZvY3VzLFxuICAgIHNlbGVjdGVkLFxuICAgIG9wdGlvbnMsXG4gICAgbWF4SW1hZ2VXaWR0aCA9IDcwMCxcbiAgICBtYXhJbWFnZUhlaWdodCA9IDkwMCxcbiAgICBsYXRleCxcbiAgICBoYW5kbGVDaGFuZ2UsXG4gICAgaGFuZGxlRG9uZSxcbiAgfSA9IHByb3BzO1xuICBjb25zdCB7IGFsdCB9ID0gbm9kZS5hdHRycztcblxuICBjb25zdCBbc2hvd1Rvb2xiYXIsIHNldFNob3dUb29sYmFyXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBpbWdSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IHJlc2l6ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgdG9vbGJhclJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBnZXRQZXJjZW50RnJvbVdpZHRoID0gdXNlQ2FsbGJhY2soKHdpZHRoKSA9PiB7XG4gICAgY29uc3QgZmxvb3JlZCA9ICh3aWR0aCAvIGltZ1JlZi5jdXJyZW50Lm5hdHVyYWxXaWR0aCkgKiA0O1xuICAgIHJldHVybiBwYXJzZUludChmbG9vcmVkLnRvRml4ZWQoMCkgKiAyNSwgMTApO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgYXBwbHlTaXplRGF0YSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIW5vZGUuYXR0cnMud2lkdGggfHwgIWltZ1JlZi5jdXJyZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB1cGRhdGUgPSB7XG4gICAgICAuLi5ub2RlLmF0dHJzLFxuICAgICAgcmVzaXplUGVyY2VudDogZ2V0UGVyY2VudEZyb21XaWR0aChub2RlLmF0dHJzLndpZHRoKSxcbiAgICB9O1xuXG4gICAgaWYgKCFpc0VxdWFsKHVwZGF0ZSwgbm9kZS5hdHRycykpIHtcbiAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCdpbWFnZVVwbG9hZE5vZGUnLCB1cGRhdGUpO1xuICAgIH1cbiAgfSwgW2VkaXRvciwgbm9kZS5hdHRycywgZ2V0UGVyY2VudEZyb21XaWR0aF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0U2hvd1Rvb2xiYXIoc2VsZWN0ZWQpO1xuICB9LCBbc2VsZWN0ZWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIG9wdGlvbnMuaW1hZ2VIYW5kbGluZy5pbnNlcnRJbWFnZVJlcXVlc3RlZChub2RlLCAoZmluaXNoKSA9PiBuZXcgSW5zZXJ0SW1hZ2VIYW5kbGVyKGVkaXRvciwgbm9kZSwgZmluaXNoKSk7XG4gICAgYXBwbHlTaXplRGF0YSgpO1xuXG4gICAgY29uc3QgcmVzaXplSGFuZGxlID0gcmVzaXplUmVmLmN1cnJlbnQ7XG4gICAgaWYgKHJlc2l6ZUhhbmRsZSkge1xuICAgICAgcmVzaXplSGFuZGxlLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGluaXRSZXNpemUsIGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChyZXNpemVIYW5kbGUpIHJlc2l6ZUhhbmRsZS5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBpbml0UmVzaXplLCBmYWxzZSk7XG4gICAgfTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgYXBwbHlTaXplRGF0YSgpO1xuICB9KTtcblxuICBjb25zdCBsb2FkSW1hZ2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgYm94ID0gaW1nUmVmLmN1cnJlbnQ7XG4gICAgaWYgKCFib3gpIHJldHVybjtcblxuICAgIGlmICghYm94LnN0eWxlLndpZHRoIHx8IGJveC5zdHlsZS53aWR0aCA9PT0gJ2NhbGMoMjBweCknKSB7XG4gICAgICBjb25zdCB3ID0gTWF0aC5taW4oYm94Lm5hdHVyYWxXaWR0aCwgbWF4SW1hZ2VXaWR0aCk7XG4gICAgICBjb25zdCBoID0gTWF0aC5taW4oYm94Lm5hdHVyYWxIZWlnaHQsIG1heEltYWdlSGVpZ2h0KTtcblxuICAgICAgYm94LnN0eWxlLndpZHRoID0gYCR7d31weGA7XG4gICAgICBib3guc3R5bGUuaGVpZ2h0ID0gYCR7aH1weGA7XG5cbiAgICAgIGNvbnN0IHVwZGF0ZSA9IHsgd2lkdGg6IHcsIGhlaWdodDogaCB9O1xuICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZSwgbm9kZS5hdHRycykpIHtcbiAgICAgICAgZWRpdG9yLmNvbW1hbmRzLnVwZGF0ZUF0dHJpYnV0ZXMoJ2ltYWdlVXBsb2FkTm9kZScsIHVwZGF0ZSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZWRpdG9yLCBub2RlLmF0dHJzLCBtYXhJbWFnZVdpZHRoLCBtYXhJbWFnZUhlaWdodF0pO1xuXG4gIGNvbnN0IHVwZGF0ZUFzcGVjdCA9IChpbml0aWFsLCBuZXh0LCBrZWVwQXNwZWN0ID0gdHJ1ZSwgcmVzaXplVHlwZSkgPT4ge1xuICAgIGlmIChrZWVwQXNwZWN0KSB7XG4gICAgICBjb25zdCByYXRpbyA9IGluaXRpYWwud2lkdGggLyBpbml0aWFsLmhlaWdodDtcbiAgICAgIGlmIChyZXNpemVUeXBlID09PSAnaGVpZ2h0JykgcmV0dXJuIHsgd2lkdGg6IG5leHQuaGVpZ2h0ICogcmF0aW8sIGhlaWdodDogbmV4dC5oZWlnaHQgfTtcbiAgICAgIHJldHVybiB7IHdpZHRoOiBuZXh0LndpZHRoLCBoZWlnaHQ6IG5leHQud2lkdGggLyByYXRpbyB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV4dDtcbiAgfTtcblxuICBjb25zdCBzdGFydFJlc2l6ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlKSA9PiB7XG4gICAgICBjb25zdCBib3ggPSBpbWdSZWYuY3VycmVudDtcbiAgICAgIGlmICghYm94KSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IGUudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaW5pdGlhbCA9IHsgd2lkdGg6IGJveC5uYXR1cmFsV2lkdGgsIGhlaWdodDogYm94Lm5hdHVyYWxIZWlnaHQgfTtcblxuICAgICAgY29uc3QgbmV4dCA9IHVwZGF0ZUFzcGVjdChpbml0aWFsLCB7XG4gICAgICAgIHdpZHRoOiBlLmNsaWVudFggLSBib3VuZHMubGVmdCxcbiAgICAgICAgaGVpZ2h0OiBlLmNsaWVudFkgLSBib3VuZHMudG9wLFxuICAgICAgfSk7XG5cbiAgICAgIGlmIChuZXh0LndpZHRoID4gNTAgJiYgbmV4dC5oZWlnaHQgPiA1MCAmJiBuZXh0LndpZHRoIDw9IDcwMCAmJiBuZXh0LmhlaWdodCA8PSA5MDApIHtcbiAgICAgICAgYm94LnN0eWxlLndpZHRoID0gYCR7bmV4dC53aWR0aH1weGA7XG4gICAgICAgIGJveC5zdHlsZS5oZWlnaHQgPSBgJHtuZXh0LmhlaWdodH1weGA7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlID0geyB3aWR0aDogbmV4dC53aWR0aCwgaGVpZ2h0OiBuZXh0LmhlaWdodCB9O1xuICAgICAgICBpZiAoIWlzRXF1YWwodXBkYXRlLCBub2RlLmF0dHJzKSkge1xuICAgICAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCdpbWFnZVVwbG9hZE5vZGUnLCB1cGRhdGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBbZWRpdG9yLCBub2RlLmF0dHJzXSxcbiAgKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXdWYWx1ZXMpID0+IHtcbiAgICAgIGVkaXRvci5jb21tYW5kcy51cGRhdGVBdHRyaWJ1dGVzKCdpbWFnZVVwbG9hZE5vZGUnLCBuZXdWYWx1ZXMpO1xuICAgIH0sXG4gICAgW2VkaXRvcl0sXG4gICk7XG5cbiAgY29uc3Qgc3RvcFJlc2l6ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgc3RhcnRSZXNpemUpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgc3RvcFJlc2l6ZSk7XG4gIH0sIFtzdGFydFJlc2l6ZV0pO1xuXG4gIGNvbnN0IGluaXRSZXNpemUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHN0YXJ0UmVzaXplKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHN0b3BSZXNpemUpO1xuICB9LCBbc3RhcnRSZXNpemUsIHN0b3BSZXNpemVdKTtcblxuICBjb25zdCBzdHlsZSA9IHtcbiAgICB3aWR0aDogc2l6ZVB4KG5vZGUuYXR0cnMud2lkdGgpLFxuICAgIGhlaWdodDogc2l6ZVB4KG5vZGUuYXR0cnMuaGVpZ2h0KSxcbiAgICBvYmplY3RGaXQ6ICdjb250YWluJyxcbiAgfTtcblxuICBjb25zdCBmbGV4QWxpZ24gPSB7IGxlZnQ6ICdmbGV4LXN0YXJ0JywgY2VudGVyOiAnY2VudGVyJywgcmlnaHQ6ICdmbGV4LWVuZCcgfVtub2RlLmF0dHJzLmFsaWdubWVudF0gfHwgJ2ZsZXgtc3RhcnQnO1xuXG4gIHJldHVybiAoXG4gICAgPE5vZGVWaWV3V3JhcHBlcj5cbiAgICAgIDxkaXZcbiAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgIGNsYXNzZXMucm9vdCxcbiAgICAgICAgICAhbm9kZS5hdHRycy5sb2FkZWQgJiYgY2xhc3Nlcy5sb2FkaW5nLFxuICAgICAgICAgIG5vZGUuYXR0cnMuZGVsZXRlU3RhdHVzID09PSAncGVuZGluZycgJiYgY2xhc3Nlcy5wZW5kaW5nRGVsZXRlLFxuICAgICAgICApfVxuICAgICAgICBzdHlsZT17eyBqdXN0aWZ5Q29udGVudDogZmxleEFsaWduIH19XG4gICAgICA+XG4gICAgICAgIDxMaW5lYXJQcm9ncmVzc1xuICAgICAgICAgIG1vZGU9XCJkZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgdmFsdWU9e25vZGUuYXR0cnMucGVyY2VudCB8fCAwfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLnByb2dyZXNzLCBub2RlLmF0dHJzLmxvYWRlZCAmJiBjbGFzc2VzLmhpZGVQcm9ncmVzcyl9XG4gICAgICAgIC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzZXMuaW1hZ2VDb250YWluZXJ9PlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgICAgICAgICAgcmVmPXtpbWdSZWZ9XG4gICAgICAgICAgICBzcmM9e25vZGUuYXR0cnMuc3JjfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzZXMuaW1hZ2UsIHNlbGVjdGVkICYmIGNsYXNzZXMuYWN0aXZlKX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIG9uTG9hZD17bG9hZEltYWdlfVxuICAgICAgICAgICAgYWx0PXtub2RlLmF0dHJzLmFsdH1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgcmVmPXtyZXNpemVSZWZ9IGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLnJlc2l6ZSwgJ3Jlc2l6ZScpfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7c2hvd1Rvb2xiYXIgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgcmVmPXt0b29sYmFyUmVmfVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHRvcDogJzEwMCUnLFxuICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgIHpJbmRleDogMjAsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAndmFyKC0tZWRpdGFibGUtaHRtbC10b29sYmFyLWJnLCAjZWZlZmVmKScsXG4gICAgICAgICAgICBib3hTaGFkb3c6XG4gICAgICAgICAgICAgICcwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpLCAwcHggMnB4IDJweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJyxcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxDdXN0b21Ub29sYmFyV3JhcHBlclxuICAgICAgICAgICAgc2hvd0RvbmVcbiAgICAgICAgICAgIHsuLi5vcHRpb25zfVxuICAgICAgICAgICAgb25Eb25lPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFNob3dUb29sYmFyKGZhbHNlKTtcbiAgICAgICAgICAgICAgcHJvcHMuaW1hZ2VIYW5kbGluZz8ub25Eb25lKCk7XG4gICAgICAgICAgICAgIHByb3BzLmVkaXRvci5jb21tYW5kcy5mb2N1cygnZW5kJyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxJbWFnZVRvb2xiYXJcbiAgICAgICAgICAgICAgZGlzYWJsZUltYWdlQWxpZ25tZW50QnV0dG9ucz17b3B0aW9ucy5kaXNhYmxlSW1hZ2VBbGlnbm1lbnRCdXR0b25zfVxuICAgICAgICAgICAgICBhbHQ9e25vZGUuYXR0cnMuYWx0fVxuICAgICAgICAgICAgICBpbWFnZUxvYWRlZD17bm9kZS5hdHRycy5sb2FkZWR9XG4gICAgICAgICAgICAgIGFsaWdubWVudD17bm9kZS5hdHRycy5hbGlnbm1lbnQgfHwgJ2xlZnQnfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ3VzdG9tVG9vbGJhcldyYXBwZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L05vZGVWaWV3V3JhcHBlcj5cbiAgKTtcbn1cblxuSW1hZ2VDb21wb25lbnQucHJvcFR5cGVzID0ge1xuICBub2RlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGVkaXRvcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIGF0dHJpYnV0ZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICBtYXhJbWFnZVdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBtYXhJbWFnZUhlaWdodDogUHJvcFR5cGVzLm51bWJlcixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoKHRoZW1lKSA9PiAoe1xuICBwb3J0YWw6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICBvcGFjaXR5OiAwLFxuICAgIHRyYW5zaXRpb246ICdvcGFjaXR5IDIwMG1zIGxpbmVhcicsXG4gIH0sXG4gIGZsb2F0aW5nQnV0dG9uUm93OiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQucGFwZXIsXG4gICAgYm9yZGVyUmFkaXVzOiAnMXB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgcGFkZGluZzogJzEwcHgnLFxuICAgIGJvcmRlcjogYHNvbGlkIDFweCAke3RoZW1lLnBhbGV0dGUuZ3JleVsyMDBdfWAsXG4gICAgYm94U2hhZG93OlxuICAgICAgJzBweCAxcHggNXB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMiksIDBweCAycHggMnB4IDBweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xMiknLFxuICB9LFxuICBwcm9ncmVzczoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIGxlZnQ6ICcwJyxcbiAgICB3aWR0aDogJ2ZpdC1jb250ZW50JyxcbiAgICB0b3A6ICcwJScsXG4gICAgdHJhbnNpdGlvbjogJ29wYWNpdHkgMjAwbXMgbGluZWFyJyxcbiAgfSxcbiAgaGlkZVByb2dyZXNzOiB7XG4gICAgb3BhY2l0eTogMCxcbiAgfSxcbiAgbG9hZGluZzoge1xuICAgIG9wYWNpdHk6IDAuMyxcbiAgfSxcbiAgcGVuZGluZ0RlbGV0ZToge1xuICAgIG9wYWNpdHk6IDAuMyxcbiAgfSxcbiAgcm9vdDoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIGJvcmRlcjogYHNvbGlkIDFweCAke3RoZW1lLnBhbGV0dGUuY29tbW9uLndoaXRlfWAsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIHRyYW5zaXRpb246ICdvcGFjaXR5IDIwMG1zIGxpbmVhcicsXG4gIH0sXG4gIGRlbGV0ZToge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHJpZ2h0OiAwLFxuICB9LFxuICBpbWFnZUNvbnRhaW5lcjoge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIHdpZHRoOiAnZml0LWNvbnRlbnQnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcblxuICAgICcmJjpob3ZlciA+IC5yZXNpemUnOiB7XG4gICAgICBkaXNwbGF5OiAnYmxvY2snLFxuICAgIH0sXG4gIH0sXG4gIGFjdGl2ZToge1xuICAgIGJvcmRlcjogYHNvbGlkIDFweCAke3RoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWlufWAsXG4gIH0sXG4gIHJlc2l6ZToge1xuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gICAgY3Vyc29yOiAnY29sLXJlc2l6ZScsXG4gICAgaGVpZ2h0OiAnMzVweCcsXG4gICAgd2lkdGg6ICc1cHgnLFxuICAgIGJvcmRlclJhZGl1czogOCxcbiAgICBtYXJnaW5MZWZ0OiAnNXB4JyxcbiAgICBtYXJnaW5SaWdodDogJzEwcHgnLFxuICAgIGRpc3BsYXk6ICdub25lJyxcbiAgfSxcbiAgZHJhd2FibGVIZWlnaHQ6IHtcbiAgICBtaW5IZWlnaHQ6IDM1MCxcbiAgfSxcbn0pKShJbWFnZUNvbXBvbmVudCk7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/editable-html-tip-tap",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "license": "ISC",
6
6
  "main": "lib/index.js",
@@ -11,8 +11,20 @@ const log = debug('@pie-lib:editable-html:image:insert-image-handler');
11
11
  * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
12
12
  */
13
13
  class InsertImageHandler {
14
- constructor(editor, onFinish, isPasted = false) {
14
+ constructor(editor, node, onFinish, isPasted = false) {
15
15
  this.editor = editor;
16
+ this.node = node;
17
+
18
+ let nodePos;
19
+
20
+ editor.state.doc.descendants((node, pos) => {
21
+ if (node === this.node) {
22
+ nodePos = pos;
23
+ return false
24
+ }
25
+ });
26
+
27
+ this.nodePos = nodePos;
16
28
  this.onFinish = onFinish;
17
29
  this.isPasted = isPasted;
18
30
  this.chosenFile = null;
@@ -22,13 +34,34 @@ class InsertImageHandler {
22
34
  log('insert cancelled');
23
35
 
24
36
  try {
25
- this.editor.commands.deleteNode('imageUploadNode');
37
+ this.deleteNode();
26
38
  this.onFinish(false);
27
39
  } catch (err) {
28
40
  //
29
41
  }
30
42
  }
31
43
 
44
+ updateNode(newAttrs) {
45
+ const { state, view } = this.editor;
46
+ const { tr } = state;
47
+ const node = state.doc.nodeAt(this.nodePos);
48
+
49
+ if (node) {
50
+ const transaction = tr.setNodeMarkup(this.nodePos, undefined, { ...node.attrs, ...newAttrs });
51
+
52
+ view.dispatch(transaction);
53
+ }
54
+ }
55
+
56
+ deleteNode() {
57
+ const { state, view } = this.editor;
58
+ const { tr } = state;
59
+
60
+ const transaction = tr.delete(this.nodePos, this.nodePos + this.node.nodeSize);
61
+
62
+ view.dispatch(transaction);
63
+ }
64
+
32
65
  done(err, src) {
33
66
  log('done: err:', err);
34
67
  if (err) {
@@ -36,7 +69,7 @@ class InsertImageHandler {
36
69
  console.log(err);
37
70
  this.onFinish(false);
38
71
  } else {
39
- this.editor.commands.updateAttributes('imageUploadNode', { loaded: true, src, percent: 100 });
72
+ this.updateNode({ loaded: true, src, percent: 100 });
40
73
  this.onFinish(true);
41
74
  }
42
75
  }
@@ -59,14 +92,14 @@ class InsertImageHandler {
59
92
  reader.onload = () => {
60
93
  const dataURL = reader.result;
61
94
 
62
- this.editor.commands.updateAttributes('imageUploadNode', { src: dataURL });
95
+ this.updateNode({ src: dataURL });
63
96
  };
64
97
  reader.readAsDataURL(file);
65
98
  }
66
99
 
67
100
  progress(percent, bytes, total) {
68
101
  log('progress: ', percent, bytes, total);
69
- this.editor.commands.updateAttributes('imageUploadNode', { percent });
102
+ this.updateNode({ percent });
70
103
  }
71
104
 
72
105
  // Add a getter method to retrieve the chosen file
@@ -60,7 +60,7 @@ function ImageComponent(props) {
60
60
  }, [selected]);
61
61
 
62
62
  useEffect(() => {
63
- options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, finish));
63
+ options.imageHandling.insertImageRequested(node, (finish) => new InsertImageHandler(editor, node, finish));
64
64
  applySizeData();
65
65
 
66
66
  const resizeHandle = resizeRef.current;