@pie-lib/editable-html 9.5.13 → 10.0.0-beta.1

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.
Files changed (144) hide show
  1. package/CHANGELOG.md +0 -302
  2. package/lib/components.js +116 -0
  3. package/lib/components.js.map +1 -0
  4. package/lib/editor.js +418 -103
  5. package/lib/editor.js.map +1 -1
  6. package/lib/index.js +101 -155
  7. package/lib/index.js.map +1 -1
  8. package/lib/new-serialization.js +320 -0
  9. package/lib/new-serialization.js.map +1 -0
  10. package/lib/old-serialization.js +330 -0
  11. package/lib/parse-html.js +1 -1
  12. package/lib/parse-html.js.map +1 -1
  13. package/lib/plugins/characters/custom-popper.js +1 -1
  14. package/lib/plugins/characters/custom-popper.js.map +1 -1
  15. package/lib/plugins/characters/index.js +21 -19
  16. package/lib/plugins/characters/index.js.map +1 -1
  17. package/lib/plugins/characters/utils.js +1 -1
  18. package/lib/plugins/characters/utils.js.map +1 -1
  19. package/lib/plugins/hotKeys/index.js +67 -0
  20. package/lib/plugins/hotKeys/index.js.map +1 -0
  21. package/lib/plugins/image/alt-dialog.js +1 -6
  22. package/lib/plugins/image/alt-dialog.js.map +1 -1
  23. package/lib/plugins/image/component.js +70 -53
  24. package/lib/plugins/image/component.js.map +1 -1
  25. package/lib/plugins/image/image-toolbar.js +7 -9
  26. package/lib/plugins/image/image-toolbar.js.map +1 -1
  27. package/lib/plugins/image/index.js +83 -27
  28. package/lib/plugins/image/index.js.map +1 -1
  29. package/lib/plugins/image/insert-image-handler.js +72 -33
  30. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  31. package/lib/plugins/index.js +23 -41
  32. package/lib/plugins/index.js.map +1 -1
  33. package/lib/plugins/list/index.js +64 -100
  34. package/lib/plugins/list/index.js.map +1 -1
  35. package/lib/plugins/math/index.js +86 -60
  36. package/lib/plugins/math/index.js.map +1 -1
  37. package/lib/plugins/media/index.js +202 -132
  38. package/lib/plugins/media/index.js.map +1 -1
  39. package/lib/plugins/media/media-dialog.js +17 -16
  40. package/lib/plugins/media/media-dialog.js.map +1 -1
  41. package/lib/plugins/media/media-toolbar.js +3 -3
  42. package/lib/plugins/media/media-toolbar.js.map +1 -1
  43. package/lib/plugins/media/media-wrapper.js +21 -58
  44. package/lib/plugins/media/media-wrapper.js.map +1 -1
  45. package/lib/plugins/respArea/drag-in-the-blank/choice.js +3 -3
  46. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  47. package/lib/plugins/respArea/drag-in-the-blank/index.js +3 -2
  48. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  49. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -2
  50. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  51. package/lib/plugins/respArea/icons/index.js +13 -15
  52. package/lib/plugins/respArea/icons/index.js.map +1 -1
  53. package/lib/plugins/respArea/index.js +87 -53
  54. package/lib/plugins/respArea/index.js.map +1 -1
  55. package/lib/plugins/respArea/inline-dropdown/index.js +4 -3
  56. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  57. package/lib/plugins/respArea/utils.js +17 -20
  58. package/lib/plugins/respArea/utils.js.map +1 -1
  59. package/lib/plugins/table/icons/index.js +1 -1
  60. package/lib/plugins/table/icons/index.js.map +1 -1
  61. package/lib/plugins/table/index.js +381 -212
  62. package/lib/plugins/table/index.js.map +1 -1
  63. package/lib/plugins/table/table-toolbar.js +5 -6
  64. package/lib/plugins/table/table-toolbar.js.map +1 -1
  65. package/lib/plugins/toolbar/default-toolbar.js +55 -11
  66. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  67. package/lib/plugins/toolbar/done-button.js +1 -1
  68. package/lib/plugins/toolbar/done-button.js.map +1 -1
  69. package/lib/plugins/toolbar/editor-and-toolbar.js +186 -232
  70. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  71. package/lib/plugins/toolbar/index.js +1 -2
  72. package/lib/plugins/toolbar/index.js.map +1 -1
  73. package/lib/plugins/toolbar/toolbar-buttons.js +1 -1
  74. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  75. package/lib/plugins/toolbar/toolbar.js +253 -239
  76. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  77. package/lib/plugins/utils.js +27 -2
  78. package/lib/plugins/utils.js.map +1 -1
  79. package/lib/serialization.js +1 -1
  80. package/lib/serialization.js.map +1 -1
  81. package/lib/slate-editor.js +302 -0
  82. package/lib/test-serializer.js +189 -0
  83. package/lib/test-serializer.js.map +1 -0
  84. package/lib/theme.js +1 -1
  85. package/lib/theme.js.map +1 -1
  86. package/package.json +18 -14
  87. package/playground/image/data.js +20 -20
  88. package/playground/image/index.html +22 -20
  89. package/playground/image/index.jsx +12 -10
  90. package/playground/index.html +25 -23
  91. package/playground/mathquill/index.html +23 -20
  92. package/playground/mathquill/index.jsx +18 -22
  93. package/playground/prod-test/index.html +24 -20
  94. package/playground/prod-test/index.jsx +5 -3
  95. package/playground/schema-override/data.js +10 -10
  96. package/playground/schema-override/image-plugin.jsx +3 -4
  97. package/playground/schema-override/index.html +21 -19
  98. package/playground/schema-override/index.jsx +13 -14
  99. package/playground/serialization/data.js +10 -10
  100. package/playground/serialization/image-plugin.jsx +3 -4
  101. package/playground/serialization/index.html +22 -20
  102. package/playground/table-examples.html +5 -8
  103. package/playground/webpack.config.js +10 -10
  104. package/src/components.js +135 -0
  105. package/src/editor.jsx +478 -141
  106. package/src/index.jsx +71 -95
  107. package/src/new-serialization.jsx +291 -0
  108. package/src/parse-html.js +1 -1
  109. package/src/plugins/characters/custom-popper.js +7 -7
  110. package/src/plugins/characters/index.jsx +33 -34
  111. package/src/plugins/characters/utils.js +81 -81
  112. package/src/plugins/hotKeys/index.js +54 -0
  113. package/src/plugins/image/alt-dialog.jsx +4 -5
  114. package/src/plugins/image/component.jsx +106 -89
  115. package/src/plugins/image/image-toolbar.jsx +27 -19
  116. package/src/plugins/image/index.jsx +75 -43
  117. package/src/plugins/image/insert-image-handler.js +62 -27
  118. package/src/plugins/index.jsx +23 -41
  119. package/src/plugins/list/index.jsx +70 -95
  120. package/src/plugins/math/index.jsx +102 -82
  121. package/src/plugins/media/index.jsx +159 -124
  122. package/src/plugins/media/media-dialog.js +98 -71
  123. package/src/plugins/media/media-toolbar.jsx +8 -8
  124. package/src/plugins/media/media-wrapper.jsx +29 -30
  125. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +21 -19
  126. package/src/plugins/respArea/drag-in-the-blank/index.jsx +14 -11
  127. package/src/plugins/respArea/explicit-constructed-response/index.jsx +7 -6
  128. package/src/plugins/respArea/icons/index.jsx +11 -14
  129. package/src/plugins/respArea/index.jsx +92 -52
  130. package/src/plugins/respArea/inline-dropdown/index.jsx +9 -8
  131. package/src/plugins/respArea/utils.jsx +26 -35
  132. package/src/plugins/table/icons/index.jsx +17 -11
  133. package/src/plugins/table/index.jsx +288 -231
  134. package/src/plugins/table/table-toolbar.jsx +15 -11
  135. package/src/plugins/toolbar/default-toolbar.jsx +65 -19
  136. package/src/plugins/toolbar/done-button.jsx +4 -4
  137. package/src/plugins/toolbar/editor-and-toolbar.jsx +150 -145
  138. package/src/plugins/toolbar/index.jsx +2 -3
  139. package/src/plugins/toolbar/toolbar-buttons.jsx +11 -11
  140. package/src/plugins/toolbar/toolbar.jsx +244 -221
  141. package/src/plugins/utils.js +21 -4
  142. package/src/serialization.jsx +32 -32
  143. package/src/test-serializer.js +139 -0
  144. package/src/test-serializer.js.rej +20 -0
@@ -7,30 +7,36 @@ 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
- var _slate = require("slate");
16
+ var _omit = _interopRequireDefault(require("lodash/omit"));
15
17
 
16
18
  var _debug = _interopRequireDefault(require("debug"));
17
19
 
20
+ 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; }
21
+
22
+ 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; }
23
+
18
24
  var log = (0, _debug["default"])('@pie-lib:editable-html:image:insert-image-handler');
19
25
  /**
20
26
  * Handles user selection, insertion (or cancellation) of an image into the editor.
21
- * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image
27
+ * @param {Block} placeHolderPath - a block that has been added to the editor as a place holder for the image
22
28
  * @param {Function} getValue - a function to return the value of the editor
23
29
  * @param {Function} onChange - callback to notify changes applied by the handler
24
30
  * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted
25
31
  */
26
32
 
27
33
  var InsertImageHandler = /*#__PURE__*/function () {
28
- function InsertImageHandler(placeholderBlock, getValue, onChange) {
34
+ function InsertImageHandler(node, placeHolderPath, editor) {
29
35
  var isPasted = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
30
36
  (0, _classCallCheck2["default"])(this, InsertImageHandler);
31
- this.placeholderBlock = placeholderBlock;
32
- this.getValue = getValue;
33
- this.onChange = onChange;
37
+ this.node = node;
38
+ this.placeHolderPath = placeHolderPath;
39
+ this.editor = editor;
34
40
  this.isPasted = isPasted;
35
41
  }
36
42
 
@@ -38,13 +44,13 @@ var InsertImageHandler = /*#__PURE__*/function () {
38
44
  key: "getPlaceholderInDocument",
39
45
  value: function getPlaceholderInDocument(value) {
40
46
  var document = value.document;
41
- var directChild = document.getChild(this.placeholderBlock.key);
47
+ var directChild = document.getChild(this.placeHolderPath);
42
48
 
43
49
  if (directChild) {
44
50
  return directChild;
45
51
  }
46
52
 
47
- var child = document.getDescendant(this.placeholderBlock.key);
53
+ var child = document.getDescendant(this.placeHolderPath);
48
54
 
49
55
  if (child) {
50
56
  return child;
@@ -57,8 +63,10 @@ var InsertImageHandler = /*#__PURE__*/function () {
57
63
  key: "cancel",
58
64
  value: function cancel() {
59
65
  log('insert cancelled');
60
- var c = this.getValue().change().removeNodeByKey(this.placeholderBlock.key);
61
- this.onChange(c);
66
+ this.editor.apply({
67
+ type: 'remove_node',
68
+ path: this.placeHolderPath
69
+ });
62
70
  }
63
71
  }, {
64
72
  key: "done",
@@ -69,17 +77,30 @@ var InsertImageHandler = /*#__PURE__*/function () {
69
77
  //eslint-disable-next-line
70
78
  console.log(err);
71
79
  } else {
72
- var value = this.getValue();
73
- var child = this.getPlaceholderInDocument(value);
74
- var data = child.data.merge(_slate.Data.create({
75
- loaded: true,
80
+ this.editor.apply({
81
+ type: 'set_node',
82
+ path: this.placeHolderPath,
83
+ properties: {
84
+ data: this.node.data
85
+ },
86
+ newProperties: {
87
+ data: {
88
+ src: src,
89
+ loaded: true,
90
+ percent: 100
91
+ }
92
+ }
93
+ });
94
+
95
+ var newData = _objectSpread(_objectSpread({}, this.node.data), {}, {
76
96
  src: src,
97
+ loaded: true,
77
98
  percent: 100
78
- }));
79
- var change = value.change().setNodeByKey(this.placeholderBlock.key, {
80
- data: data
81
99
  });
82
- this.onChange(change);
100
+
101
+ this.node = Object.assign({}, this.node, {
102
+ data: (0, _omit["default"])(newData, 'newImage')
103
+ });
83
104
  }
84
105
  }
85
106
  /**
@@ -101,18 +122,26 @@ var InsertImageHandler = /*#__PURE__*/function () {
101
122
  var reader = new FileReader();
102
123
 
103
124
  reader.onload = function () {
104
- var value = _this.getValue();
105
-
106
125
  var dataURL = reader.result;
107
126
 
108
- var child = _this.getPlaceholderInDocument(value);
109
-
110
- var data = child.data.set('src', dataURL);
111
- var change = value.change().setNodeByKey(_this.placeholderBlock.key, {
112
- data: data
127
+ _this.editor.apply({
128
+ type: 'set_node',
129
+ path: _this.placeHolderPath,
130
+ properties: {
131
+ data: _this.node.data
132
+ },
133
+ newProperties: {
134
+ data: _objectSpread(_objectSpread({}, _this.node.data), {}, {
135
+ src: dataURL
136
+ })
137
+ }
113
138
  });
114
139
 
115
- _this.onChange(change);
140
+ _this.node = Object.assign({}, _this.node, {
141
+ data: {
142
+ src: dataURL
143
+ }
144
+ });
116
145
  };
117
146
 
118
147
  reader.readAsDataURL(file);
@@ -121,13 +150,23 @@ var InsertImageHandler = /*#__PURE__*/function () {
121
150
  key: "progress",
122
151
  value: function progress(percent, bytes, total) {
123
152
  log('progress: ', percent, bytes, total);
124
- var value = this.getValue();
125
- var child = this.getPlaceholderInDocument(value);
126
- var data = child.data.set('percent', percent);
127
- var change = value.change().setNodeByKey(this.placeholderBlock.key, {
128
- data: data
153
+ this.editor.apply({
154
+ type: 'set_node',
155
+ path: this.placeHolderPath,
156
+ properties: {
157
+ data: this.node.data
158
+ },
159
+ newProperties: {
160
+ data: _objectSpread(_objectSpread({}, this.node.data), {}, {
161
+ percent: percent
162
+ })
163
+ }
164
+ });
165
+ this.node = Object.assign({}, this.node, {
166
+ data: {
167
+ percent: percent
168
+ }
129
169
  });
130
- this.onChange(change);
131
170
  }
132
171
  }]);
133
172
  return InsertImageHandler;
@@ -135,4 +174,4 @@ var InsertImageHandler = /*#__PURE__*/function () {
135
174
 
136
175
  var _default = InsertImageHandler;
137
176
  exports["default"] = _default;
138
- //# sourceMappingURL=insert-image-handler.js.map
177
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIkluc2VydEltYWdlSGFuZGxlciIsIm5vZGUiLCJwbGFjZUhvbGRlclBhdGgiLCJlZGl0b3IiLCJpc1Bhc3RlZCIsInZhbHVlIiwiZG9jdW1lbnQiLCJkaXJlY3RDaGlsZCIsImdldENoaWxkIiwiY2hpbGQiLCJnZXREZXNjZW5kYW50IiwiRXJyb3IiLCJhcHBseSIsInR5cGUiLCJwYXRoIiwiZXJyIiwic3JjIiwiY29uc29sZSIsInByb3BlcnRpZXMiLCJkYXRhIiwibmV3UHJvcGVydGllcyIsImxvYWRlZCIsInBlcmNlbnQiLCJuZXdEYXRhIiwiT2JqZWN0IiwiYXNzaWduIiwib21pdCIsImZpbGUiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwib25sb2FkIiwiZGF0YVVSTCIsInJlc3VsdCIsInJlYWRBc0RhdGFVUkwiLCJieXRlcyIsInRvdGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvaW1hZ2UvaW5zZXJ0LWltYWdlLWhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6aW1hZ2U6aW5zZXJ0LWltYWdlLWhhbmRsZXInKTtcblxuLyoqXG4gKiBIYW5kbGVzIHVzZXIgc2VsZWN0aW9uLCBpbnNlcnRpb24gKG9yIGNhbmNlbGxhdGlvbikgb2YgYW4gaW1hZ2UgaW50byB0aGUgZWRpdG9yLlxuICogQHBhcmFtIHtCbG9ja30gcGxhY2VIb2xkZXJQYXRoIC0gYSBibG9jayB0aGF0IGhhcyBiZWVuIGFkZGVkIHRvIHRoZSBlZGl0b3IgYXMgYSBwbGFjZSBob2xkZXIgZm9yIHRoZSBpbWFnZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZ2V0VmFsdWUgLSBhIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVkaXRvclxuICogQHBhcmFtIHtGdW5jdGlvbn0gb25DaGFuZ2UgLSBjYWxsYmFjayB0byBub3RpZnkgY2hhbmdlcyBhcHBsaWVkIGJ5IHRoZSBoYW5kbGVyXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGlzUGFzdGVkIC0gYSBib29sZWFuIHRoYXQga2VlcHMgdHJhY2sgaWYgdGhlIGZpbGUgaXMgcGFzdGVkXG4gKi9cbmNsYXNzIEluc2VydEltYWdlSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHBsYWNlSG9sZGVyUGF0aCwgZWRpdG9yLCBpc1Bhc3RlZCA9IGZhbHNlKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnBsYWNlSG9sZGVyUGF0aCA9IHBsYWNlSG9sZGVyUGF0aDtcbiAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcbiAgICB0aGlzLmlzUGFzdGVkID0gaXNQYXN0ZWQ7XG4gIH1cblxuICBnZXRQbGFjZWhvbGRlckluRG9jdW1lbnQodmFsdWUpIHtcbiAgICBjb25zdCB7IGRvY3VtZW50IH0gPSB2YWx1ZTtcbiAgICBjb25zdCBkaXJlY3RDaGlsZCA9IGRvY3VtZW50LmdldENoaWxkKHRoaXMucGxhY2VIb2xkZXJQYXRoKTtcblxuICAgIGlmIChkaXJlY3RDaGlsZCkge1xuICAgICAgcmV0dXJuIGRpcmVjdENoaWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkID0gZG9jdW1lbnQuZ2V0RGVzY2VuZGFudCh0aGlzLnBsYWNlSG9sZGVyUGF0aCk7XG5cbiAgICBpZiAoY2hpbGQpIHtcbiAgICAgIHJldHVybiBjaGlsZDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImluc2VydC1pbWFnZTogQ2FuJ3QgZmluZCBwbGFjZWhvbGRlciFcIik7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIGxvZygnaW5zZXJ0IGNhbmNlbGxlZCcpO1xuICAgIHRoaXMuZWRpdG9yLmFwcGx5KHtcbiAgICAgIHR5cGU6ICdyZW1vdmVfbm9kZScsXG4gICAgICBwYXRoOiB0aGlzLnBsYWNlSG9sZGVyUGF0aFxuICAgIH0pO1xuICB9XG5cbiAgZG9uZShlcnIsIHNyYykge1xuICAgIGxvZygnZG9uZTogZXJyOicsIGVycik7XG4gICAgaWYgKGVycikge1xuICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZWRpdG9yLmFwcGx5KHtcbiAgICAgICAgdHlwZTogJ3NldF9ub2RlJyxcbiAgICAgICAgcGF0aDogdGhpcy5wbGFjZUhvbGRlclBhdGgsXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBkYXRhOiB0aGlzLm5vZGUuZGF0YVxuICAgICAgICB9LFxuICAgICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgcGVyY2VudDogMTAwXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSB7XG4gICAgICAgIC4uLnRoaXMubm9kZS5kYXRhLFxuICAgICAgICBzcmMsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgcGVyY2VudDogMTAwXG4gICAgICB9O1xuXG4gICAgICB0aGlzLm5vZGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm5vZGUsIHtcbiAgICAgICAgZGF0YTogb21pdChuZXdEYXRhLCAnbmV3SW1hZ2UnKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE5vdGlmeSBoYW5kbGVyIHRoYXQgdGhlIHVzZXIgY2hvc2UgYSBmaWxlIC0gd2lsbCBjcmVhdGUgYSBjaGFuZ2Ugd2l0aCBhIHByZXZpZXcgaW4gdGhlIGVkaXRvci5cbiAgICpcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlIC0gdGhlIGZpbGUgdGhhdCB0aGUgdXNlciBjaG9zZSB1c2luZyBhIGZpbGUgaW5wdXQuXG4gICAqL1xuICBmaWxlQ2hvc2VuKGZpbGUpIHtcbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsb2coJ1tmaWxlQ2hvc2VuXSBmaWxlOiAnLCBmaWxlKTtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhVVJMID0gcmVhZGVyLnJlc3VsdDtcblxuICAgICAgdGhpcy5lZGl0b3IuYXBwbHkoe1xuICAgICAgICB0eXBlOiAnc2V0X25vZGUnLFxuICAgICAgICBwYXRoOiB0aGlzLnBsYWNlSG9sZGVyUGF0aCxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGRhdGE6IHRoaXMubm9kZS5kYXRhXG4gICAgICAgIH0sXG4gICAgICAgIG5ld1Byb3BlcnRpZXM6IHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAuLi50aGlzLm5vZGUuZGF0YSxcbiAgICAgICAgICAgIHNyYzogZGF0YVVSTFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLm5vZGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm5vZGUsIHsgZGF0YTogeyBzcmM6IGRhdGFVUkwgfSB9KTtcbiAgICB9O1xuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICB9XG5cbiAgcHJvZ3Jlc3MocGVyY2VudCwgYnl0ZXMsIHRvdGFsKSB7XG4gICAgbG9nKCdwcm9ncmVzczogJywgcGVyY2VudCwgYnl0ZXMsIHRvdGFsKTtcblxuICAgIHRoaXMuZWRpdG9yLmFwcGx5KHtcbiAgICAgIHR5cGU6ICdzZXRfbm9kZScsXG4gICAgICBwYXRoOiB0aGlzLnBsYWNlSG9sZGVyUGF0aCxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgZGF0YTogdGhpcy5ub2RlLmRhdGFcbiAgICAgIH0sXG4gICAgICBuZXdQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGRhdGE6IHsgLi4udGhpcy5ub2RlLmRhdGEsIHBlcmNlbnQgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMubm9kZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMubm9kZSwgeyBkYXRhOiB7IHBlcmNlbnQgfSB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBJbnNlcnRJbWFnZUhhbmRsZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxtREFBTixDQUFaO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0lBQ01DLGtCO0VBQ0osNEJBQVlDLElBQVosRUFBa0JDLGVBQWxCLEVBQW1DQyxNQUFuQyxFQUE2RDtJQUFBLElBQWxCQyxRQUFrQix1RUFBUCxLQUFPO0lBQUE7SUFDM0QsS0FBS0gsSUFBTCxHQUFZQSxJQUFaO0lBQ0EsS0FBS0MsZUFBTCxHQUF1QkEsZUFBdkI7SUFDQSxLQUFLQyxNQUFMLEdBQWNBLE1BQWQ7SUFDQSxLQUFLQyxRQUFMLEdBQWdCQSxRQUFoQjtFQUNEOzs7O1dBRUQsa0NBQXlCQyxLQUF6QixFQUFnQztNQUM5QixJQUFRQyxRQUFSLEdBQXFCRCxLQUFyQixDQUFRQyxRQUFSO01BQ0EsSUFBTUMsV0FBVyxHQUFHRCxRQUFRLENBQUNFLFFBQVQsQ0FBa0IsS0FBS04sZUFBdkIsQ0FBcEI7O01BRUEsSUFBSUssV0FBSixFQUFpQjtRQUNmLE9BQU9BLFdBQVA7TUFDRDs7TUFFRCxJQUFNRSxLQUFLLEdBQUdILFFBQVEsQ0FBQ0ksYUFBVCxDQUF1QixLQUFLUixlQUE1QixDQUFkOztNQUVBLElBQUlPLEtBQUosRUFBVztRQUNULE9BQU9BLEtBQVA7TUFDRCxDQUZELE1BRU87UUFDTDtRQUNBLE1BQU0sSUFBSUUsS0FBSixDQUFVLHVDQUFWLENB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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/insert-image-handler.js"],"names":["log","InsertImageHandler","placeholderBlock","getValue","onChange","isPasted","value","document","directChild","getChild","key","child","getDescendant","Error","c","change","removeNodeByKey","err","src","console","getPlaceholderInDocument","data","merge","Data","create","loaded","percent","setNodeByKey","file","reader","FileReader","onload","dataURL","result","set","readAsDataURL","bytes","total"],"mappings":"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","sourcesContent":["import { Data } from 'slate';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeholderBlock - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(placeholderBlock, getValue, onChange, isPasted = false) {\n this.placeholderBlock = placeholderBlock;\n this.getValue = getValue;\n this.onChange = onChange;\n this.isPasted = isPasted;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeholderBlock.key);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeholderBlock.key);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n const c = this.getValue()\n .change()\n .removeNodeByKey(this.placeholderBlock.key);\n this.onChange(c);\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.merge(Data.create({ loaded: true, src, percent: 100 }));\n\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const value = this.getValue();\n const dataURL = reader.result;\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('src', dataURL);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n const value = this.getValue();\n const child = this.getPlaceholderInDocument(value);\n const data = child.data.set('percent', percent);\n const change = value.change().setNodeByKey(this.placeholderBlock.key, { data });\n this.onChange(change);\n }\n}\n\nexport default InsertImageHandler;\n"],"file":"insert-image-handler.js"}
1
+ {"version":3,"file":"insert-image-handler.js","names":["log","debug","InsertImageHandler","node","placeHolderPath","editor","isPasted","value","document","directChild","getChild","child","getDescendant","Error","apply","type","path","err","src","console","properties","data","newProperties","loaded","percent","newData","Object","assign","omit","file","reader","FileReader","onload","dataURL","result","readAsDataURL","bytes","total"],"sources":["../../../src/plugins/image/insert-image-handler.js"],"sourcesContent":["import omit from 'lodash/omit';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:image:insert-image-handler');\n\n/**\n * Handles user selection, insertion (or cancellation) of an image into the editor.\n * @param {Block} placeHolderPath - a block that has been added to the editor as a place holder for the image\n * @param {Function} getValue - a function to return the value of the editor\n * @param {Function} onChange - callback to notify changes applied by the handler\n * @param {Boolean} isPasted - a boolean that keeps track if the file is pasted\n */\nclass InsertImageHandler {\n constructor(node, placeHolderPath, editor, isPasted = false) {\n this.node = node;\n this.placeHolderPath = placeHolderPath;\n this.editor = editor;\n this.isPasted = isPasted;\n }\n\n getPlaceholderInDocument(value) {\n const { document } = value;\n const directChild = document.getChild(this.placeHolderPath);\n\n if (directChild) {\n return directChild;\n }\n\n const child = document.getDescendant(this.placeHolderPath);\n\n if (child) {\n return child;\n } else {\n //eslint-disable-next-line\n throw new Error(\"insert-image: Can't find placeholder!\");\n }\n }\n\n cancel() {\n log('insert cancelled');\n this.editor.apply({\n type: 'remove_node',\n path: this.placeHolderPath\n });\n }\n\n done(err, src) {\n log('done: err:', err);\n if (err) {\n //eslint-disable-next-line\n console.log(err);\n } else {\n this.editor.apply({\n type: 'set_node',\n path: this.placeHolderPath,\n properties: {\n data: this.node.data\n },\n newProperties: {\n data: {\n src,\n loaded: true,\n percent: 100\n }\n }\n });\n const newData = {\n ...this.node.data,\n src,\n loaded: true,\n percent: 100\n };\n\n this.node = Object.assign({}, this.node, {\n data: omit(newData, 'newImage')\n });\n }\n }\n\n /**\n * Notify handler that the user chose a file - will create a change with a preview in the editor.\n *\n * @param {File} file - the file that the user chose using a file input.\n */\n fileChosen(file) {\n if (!file) {\n return;\n }\n\n log('[fileChosen] file: ', file);\n const reader = new FileReader();\n reader.onload = () => {\n const dataURL = reader.result;\n\n this.editor.apply({\n type: 'set_node',\n path: this.placeHolderPath,\n properties: {\n data: this.node.data\n },\n newProperties: {\n data: {\n ...this.node.data,\n src: dataURL\n }\n }\n });\n this.node = Object.assign({}, this.node, { data: { src: dataURL } });\n };\n reader.readAsDataURL(file);\n }\n\n progress(percent, bytes, total) {\n log('progress: ', percent, bytes, total);\n\n this.editor.apply({\n type: 'set_node',\n path: this.placeHolderPath,\n properties: {\n data: this.node.data\n },\n newProperties: {\n data: { ...this.node.data, percent }\n }\n });\n this.node = Object.assign({}, this.node, { data: { percent } });\n }\n}\n\nexport default InsertImageHandler;\n"],"mappings":"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"}
@@ -5,10 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.buildPlugins = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
8
+ exports.withPlugins = exports.buildPlugins = exports.DEFAULT_PLUGINS = exports.ALL_PLUGINS = void 0;
9
9
 
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
 
12
+ var _slateHistory = require("slate-history");
13
+
14
+ var _slateReact = require("slate-react");
15
+
12
16
  var _FormatBold = _interopRequireDefault(require("@material-ui/icons/FormatBold"));
13
17
 
14
18
  var _FormatListBulleted = _interopRequireDefault(require("@material-ui/icons/FormatListBulleted"));
@@ -45,43 +49,10 @@ var _table = _interopRequireDefault(require("./table"));
45
49
 
46
50
  var _respArea = _interopRequireDefault(require("./respArea"));
47
51
 
52
+ var _hotKeys = _interopRequireDefault(require("./hotKeys"));
53
+
48
54
  // import Code from '@material-ui/icons/Code';
49
55
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins');
50
-
51
- function MarkHotkey(options) {
52
- var type = options.type,
53
- key = options.key,
54
- icon = options.icon,
55
- tag = options.tag; // Return our "plugin" object, containing the `onKeyDown` handler.
56
-
57
- return {
58
- toolbar: {
59
- isMark: true,
60
- type: type,
61
- icon: icon,
62
- onToggle: function onToggle(change) {
63
- log('[onToggleMark] type: ', type);
64
- return change.toggleMark(type);
65
- }
66
- },
67
- renderMark: function renderMark(props) {
68
- if (props.mark.type === type) {
69
- var K = tag || type;
70
- return /*#__PURE__*/_react["default"].createElement(K, null, props.children);
71
- }
72
- },
73
- onKeyDown: function onKeyDown(event, change) {
74
- // Check that the key pressed matches our `key` option.
75
- if (!event.metaKey || event.key != key) return; // Prevent the default characters from being inserted.
76
-
77
- event.preventDefault(); // Toggle the mark `type`.
78
-
79
- change.toggleMark(type);
80
- return true;
81
- }
82
- };
83
- }
84
-
85
56
  var ALL_PLUGINS = ['bold', // 'code',
86
57
  'italic', 'underline', 'strikethrough', 'bulleted-list', 'numbered-list', 'image', 'math', 'languageCharacters', 'table', 'video', 'audio', 'responseArea'];
87
58
  exports.ALL_PLUGINS = ALL_PLUGINS;
@@ -101,23 +72,23 @@ var buildPlugins = function buildPlugins(activePlugins, opts) {
101
72
  var imagePlugin = opts.image && opts.image.onDelete && (0, _image["default"])(opts.image);
102
73
  var mathPlugin = (0, _math["default"])(opts.math);
103
74
  var respAreaPlugin = opts.responseArea && opts.responseArea.type && (0, _respArea["default"])(opts.responseArea, (0, _compact["default"])([mathPlugin]));
104
- return (0, _compact["default"])([addIf('table', (0, _table["default"])(opts.table, (0, _compact["default"])([imagePlugin, mathPlugin, respAreaPlugin]))), addIf('bold', MarkHotkey({
75
+ return (0, _compact["default"])([addIf('table', (0, _table["default"])(opts.table, (0, _compact["default"])([imagePlugin, mathPlugin, respAreaPlugin]))), addIf('bold', (0, _hotKeys["default"])({
105
76
  key: 'b',
106
77
  type: 'bold',
107
78
  icon: /*#__PURE__*/_react["default"].createElement(_FormatBold["default"], null),
108
79
  tag: 'strong'
109
80
  })), // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),
110
- addIf('italic', MarkHotkey({
81
+ addIf('italic', (0, _hotKeys["default"])({
111
82
  key: 'i',
112
83
  type: 'italic',
113
84
  icon: /*#__PURE__*/_react["default"].createElement(_FormatItalic["default"], null),
114
85
  tag: 'em'
115
- })), addIf('strikethrough', MarkHotkey({
86
+ })), addIf('strikethrough', (0, _hotKeys["default"])({
116
87
  key: '~',
117
88
  type: 'strikethrough',
118
89
  icon: /*#__PURE__*/_react["default"].createElement(_FormatStrikethrough["default"], null),
119
90
  tag: 'del'
120
- })), addIf('underline', MarkHotkey({
91
+ })), addIf('underline', (0, _hotKeys["default"])({
121
92
  key: 'u',
122
93
  type: 'underline',
123
94
  icon: /*#__PURE__*/_react["default"].createElement(_FormatUnderlined["default"], null),
@@ -138,4 +109,15 @@ var buildPlugins = function buildPlugins(activePlugins, opts) {
138
109
  };
139
110
 
140
111
  exports.buildPlugins = buildPlugins;
141
- //# sourceMappingURL=index.js.map
112
+
113
+ var withPlugins = function withPlugins(editor, activePlugins) {
114
+ activePlugins.forEach(function (plugin) {
115
+ if (typeof plugin.rules === 'function') {
116
+ plugin.rules(editor);
117
+ }
118
+ });
119
+ return (0, _slateHistory.withHistory)((0, _slateReact.withReact)(editor));
120
+ };
121
+
122
+ exports.withPlugins = withPlugins;
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIkFMTF9QTFVHSU5TIiwiREVGQVVMVF9QTFVHSU5TIiwiZmlsdGVyIiwicGx1ZyIsImJ1aWxkUGx1Z2lucyIsImFjdGl2ZVBsdWdpbnMiLCJvcHRzIiwiYWRkSWYiLCJrZXkiLCJwIiwiaW5jbHVkZXMiLCJpbWFnZVBsdWdpbiIsImltYWdlIiwib25EZWxldGUiLCJJbWFnZVBsdWdpbiIsIm1hdGhQbHVnaW4iLCJNYXRoUGx1Z2luIiwibWF0aCIsInJlc3BBcmVhUGx1Z2luIiwicmVzcG9uc2VBcmVhIiwidHlwZSIsIlJlc3BBcmVhUGx1Z2luIiwiY29tcGFjdCIsIlRhYmxlUGx1Z2luIiwidGFibGUiLCJNYXJrSG90a2V5IiwiaWNvbiIsInRhZyIsIk1lZGlhUGx1Z2luIiwibWVkaWEiLCJsYW5ndWFnZUNoYXJhY3RlcnMiLCJtYXAiLCJjb25maWciLCJDaGFyYWN0ZXJzUGx1Z2luIiwiTGlzdCIsIlRvb2xiYXJQbHVnaW4iLCJ0b29sYmFyIiwiU29mdEJyZWFrUGx1Z2luIiwic2hpZnQiLCJ3aXRoUGx1Z2lucyIsImVkaXRvciIsImZvckVhY2giLCJwbHVnaW4iLCJydWxlcyIsIndpdGhIaXN0b3J5Iiwid2l0aFJlYWN0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbnMvaW5kZXguanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdpdGhIaXN0b3J5IH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyB3aXRoUmVhY3QgfSBmcm9tICdzbGF0ZS1yZWFjdCc7XG5cbmltcG9ydCBCb2xkIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRCb2xkJztcbi8vIGltcG9ydCBDb2RlIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Db2RlJztcbmltcG9ydCBCdWxsZXRlZExpc3RJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb3JtYXRMaXN0QnVsbGV0ZWQnO1xuaW1wb3J0IE51bWJlcmVkTGlzdEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdExpc3ROdW1iZXJlZCc7XG5pbXBvcnQgSW1hZ2VQbHVnaW4gZnJvbSAnLi9pbWFnZSc7XG5pbXBvcnQgTWVkaWFQbHVnaW4gZnJvbSAnLi9tZWRpYSc7XG5pbXBvcnQgQ2hhcmFjdGVyc1BsdWdpbiBmcm9tICcuL2NoYXJhY3RlcnMnO1xuaW1wb3J0IEl0YWxpYyBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRm9ybWF0SXRhbGljJztcbmltcG9ydCBNYXRoUGx1Z2luIGZyb20gJy4vbWF0aCc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFN0cmlrZXRocm91Z2ggZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFN0cmlrZXRocm91Z2gnO1xuaW1wb3J0IFRvb2xiYXJQbHVnaW4gZnJvbSAnLi90b29sYmFyJztcbmltcG9ydCBVbmRlcmxpbmUgZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0Zvcm1hdFVuZGVybGluZWQnO1xuaW1wb3J0IGNvbXBhY3QgZnJvbSAnbG9kYXNoL2NvbXBhY3QnO1xuaW1wb3J0IFNvZnRCcmVha1BsdWdpbiBmcm9tICdzbGF0ZS1zb2Z0LWJyZWFrJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgTGlzdCBmcm9tICcuL2xpc3QnO1xuaW1wb3J0IFRhYmxlUGx1Z2luIGZyb20gJy4vdGFibGUnO1xuaW1wb3J0IFJlc3BBcmVhUGx1Z2luIGZyb20gJy4vcmVzcEFyZWEnO1xuaW1wb3J0IE1hcmtIb3RrZXkgZnJvbSAnLi9ob3RLZXlzJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOmVkaXRhYmxlLWh0bWw6cGx1Z2lucycpO1xuXG5leHBvcnQgY29uc3QgQUxMX1BMVUdJTlMgPSBbXG4gICdib2xkJyxcbiAgLy8gJ2NvZGUnLFxuICAnaXRhbGljJyxcbiAgJ3VuZGVybGluZScsXG4gICdzdHJpa2V0aHJvdWdoJyxcbiAgJ2J1bGxldGVkLWxpc3QnLFxuICAnbnVtYmVyZWQtbGlzdCcsXG4gICdpbWFnZScsXG4gICdtYXRoJyxcbiAgJ2xhbmd1YWdlQ2hhcmFjdGVycycsXG4gICd0YWJsZScsXG4gICd2aWRlbycsXG4gICdhdWRpbycsXG4gICdyZXNwb25zZUFyZWEnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9QTFVHSU5TID0gQUxMX1BMVUdJTlMuZmlsdGVyKHBsdWcgPT4gcGx1ZyAhPT0gJ3Jlc3BvbnNlQXJlYScpO1xuXG5leHBvcnQgY29uc3QgYnVpbGRQbHVnaW5zID0gKGFjdGl2ZVBsdWdpbnMsIG9wdHMpID0+IHtcbiAgbG9nKCdbYnVpbGRQbHVnaW5zXSBvcHRzOiAnLCBvcHRzKTtcblxuICBhY3RpdmVQbHVnaW5zID0gYWN0aXZlUGx1Z2lucyB8fCBERUZBVUxUX1BMVUdJTlM7XG5cbiAgY29uc3QgYWRkSWYgPSAoa2V5LCBwKSA9PiBhY3RpdmVQbHVnaW5zLmluY2x1ZGVzKGtleSkgJiYgcDtcbiAgY29uc3QgaW1hZ2VQbHVnaW4gPSBvcHRzLmltYWdlICYmIG9wdHMuaW1hZ2Uub25EZWxldGUgJiYgSW1hZ2VQbHVnaW4ob3B0cy5pbWFnZSk7XG4gIGNvbnN0IG1hdGhQbHVnaW4gPSBNYXRoUGx1Z2luKG9wdHMubWF0aCk7XG4gIGNvbnN0IHJlc3BBcmVhUGx1Z2luID1cbiAgICBvcHRzLnJlc3BvbnNlQXJlYSAmJlxuICAgIG9wdHMucmVzcG9uc2VBcmVhLnR5cGUgJiZcbiAgICBSZXNwQXJlYVBsdWdpbihvcHRzLnJlc3BvbnNlQXJlYSwgY29tcGFjdChbbWF0aFBsdWdpbl0pKTtcblxuICByZXR1cm4gY29tcGFjdChbXG4gICAgYWRkSWYoJ3RhYmxlJywgVGFibGVQbHVnaW4ob3B0cy50YWJsZSwgY29tcGFjdChbaW1hZ2VQbHVnaW4sIG1hdGhQbHVnaW4sIHJlc3BBcmVhUGx1Z2luXSkpKSxcbiAgICBhZGRJZignYm9sZCcsIE1hcmtIb3RrZXkoeyBrZXk6ICdiJywgdHlwZTogJ2JvbGQnLCBpY29uOiA8Qm9sZCAvPiwgdGFnOiAnc3Ryb25nJyB9KSksXG4gICAgLy8gYWRkSWYoJ2NvZGUnLCBNYXJrSG90a2V5KHsga2V5OiAnYCcsIHR5cGU6ICdjb2RlJywgaWNvbjogPENvZGUgLz4gfSkpLFxuICAgIGFkZElmKCdpdGFsaWMnLCBNYXJrSG90a2V5KHsga2V5OiAnaScsIHR5cGU6ICdpdGFsaWMnLCBpY29uOiA8SXRhbGljIC8+LCB0YWc6ICdlbScgfSkpLFxuICAgIGFkZElmKFxuICAgICAgJ3N0cmlrZXRocm91Z2gnLFxuICAgICAgTWFya0hvdGtleSh7XG4gICAgICAgIGtleTogJ34nLFxuICAgICAgICB0eXBlOiAnc3RyaWtldGhyb3VnaCcsXG4gICAgICAgIGljb246IDxTdHJpa2V0aHJvdWdoIC8+LFxuICAgICAgICB0YWc6ICdkZWwnXG4gICAgICB9KVxuICAgICksXG4gICAgYWRkSWYoJ3VuZGVybGluZScsIE1hcmtIb3RrZXkoeyBrZXk6ICd1JywgdHlwZTogJ3VuZGVybGluZScsIGljb246IDxVbmRlcmxpbmUgLz4sIHRhZzogJ3UnIH0pKSxcbiAgICBhZGRJZignaW1hZ2UnLCBpbWFnZVBsdWdpbiksXG4gICAgYWRkSWYoJ3ZpZGVvJywgTWVkaWFQbHVnaW4oJ3ZpZGVvJywgb3B0cy5tZWRpYSkpLFxuICAgIGFkZElmKCdhdWRpbycsIE1lZGlhUGx1Z2luKCdhdWRpbycsIG9wdHMubWVkaWEpKSxcbiAgICBhZGRJZignbWF0aCcsIG1hdGhQbHVnaW4pLFxuICAgIC4uLm9wdHMubGFuZ3VhZ2VDaGFyYWN0ZXJzLm1hcChjb25maWcgPT4gYWRkSWYoJ2xhbmd1YWdlQ2hhcmFjdGVycycsIENoYXJhY3RlcnNQbHVnaW4oY29uZmlnKSkpLFxuICAgIGFkZElmKCdidWxsZXRlZC1saXN0JywgTGlzdCh7IGtleTogJ2wnLCB0eXBlOiAndWxfbGlzdCcsIGljb246IDxCdWxsZXRlZExpc3RJY29uIC8+IH0pKSxcbiAgICBhZGRJZignbnVtYmVyZWQtbGlzdCcsIExpc3QoeyBrZXk6ICduJywgdHlwZTogJ29sX2xpc3QnLCBpY29uOiA8TnVtYmVyZWRMaXN0SWNvbiAvPiB9KSksXG4gICAgVG9vbGJhclBsdWdpbihvcHRzLnRvb2xiYXIpLFxuICAgIFNvZnRCcmVha1BsdWdpbih7IHNoaWZ0OiB0cnVlIH0pLFxuICAgIGFkZElmKCdyZXNwb25zZUFyZWEnLCByZXNwQXJlYVBsdWdpbilcbiAgXSk7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aFBsdWdpbnMgPSAoZWRpdG9yLCBhY3RpdmVQbHVnaW5zKSA9PiB7XG4gIGFjdGl2ZVBsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgIGlmICh0eXBlb2YgcGx1Z2luLnJ1bGVzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwbHVnaW4ucnVsZXMoZWRpdG9yKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB3aXRoSGlzdG9yeSh3aXRoUmVhY3QoZWRpdG9yKSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQWxCQTtBQW9CQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxnQ0FBTixDQUFaO0FBRU8sSUFBTUMsV0FBVyxHQUFHLENBQ3pCLE1BRHlCLEVBRXpCO0FBQ0EsUUFIeUIsRUFJekIsV0FKeUIsRUFLekIsZUFMeUIsRUFNekIsZUFOeUIsRUFPekIsZUFQeUIsRUFRekIsT0FSeUIsRUFTekIsTUFUeUIsRUFVekIsb0JBVnlCLEVBV3pCLE9BWHlCLEVBWXpCLE9BWnlCLEVBYXpCLE9BYnlCLEVBY3pCLGNBZHlCLENBQXBCOztBQWlCQSxJQUFNQyxlQUFlLEdBQUdELFdBQVcsQ0FBQ0UsTUFBWixDQUFtQixVQUFBQyxJQUFJO0VBQUEsT0FBSUEsSUFBSSxLQUFLLGNBQWI7QUFBQSxDQUF2QixDQUF4Qjs7O0FBRUEsSUFBTUMsWUFBWSxHQUFHLFNBQWZBLFlBQWUsQ0FBQ0MsYUFBRCxFQUFnQkMsSUFBaEIsRUFBeUI7RUFDbkRSLEdBQUcsQ0FBQyx1QkFBRCxFQUEwQlEsSUFBMUIsQ0FBSDtFQUVBRCxhQUFhLEdBQUdBLGFBQWEsSUFBSUosZUFBakM7O0VBRUEsSUFBTU0sS0FBSyxHQUFHLFNBQVJBLEtBQVEsQ0FBQ0MsR0FBRCxFQUFNQyxDQUFOO0lBQUEsT0FBWUosYUFBYSxDQUFDSyxRQUFkLENBQXVCRixHQUF2QixLQUErQkMsQ0FBM0M7RUFBQSxDQUFkOztFQUNBLElBQU1FLFdBQVcsR0FBR0wsSUFBSSxDQUFDTSxLQUFMLElBQWNOLElBQUksQ0FBQ00sS0FBTCxDQUFXQyxRQUF6QixJQUFxQyxJQUFBQyxpQkFBQSxFQUFZUixJQUFJLENBQUNNLEtBQWpCLENBQXpEO0VBQ0EsSUFBTUcsVUFBVSxHQUFHLElBQUFDLGdCQUFBLEVBQVdWLElBQUksQ0FBQ1csSUFBaEIsQ0FBbkI7RUFDQSxJQUFNQyxjQUFjLEdBQ2xCWixJQUFJLENBQUNhLFlBQUwsSUFDQWIsSUFBSSxDQUFDYSxZQUFMLENBQWtCQyxJQURsQixJQUVBLElBQUFDLG9CQUFBLEVBQWVmLElBQUksQ0FBQ2EsWUFBcEIsRUFBa0MsSUFBQUcsbUJBQUEsRUFBUSxDQUFDUCxVQUFELENBQVIsQ0FBbEMsQ0FIRjtFQUtBLE9BQU8sSUFBQU8sbUJBQUEsR0FDTGYsS0FBSyxDQUFDLE9BQUQsRUFBVSxJQUFBZ0IsaUJBQUEsRUFBWWpCLElBQUksQ0FBQ2tCLEtBQWpCLEVBQXdCLElBQUFGLG1CQUFBLEVBQVEsQ0FBQ1gsV0FBRCxFQUFjSSxVQUFkLEVBQTBCRyxjQUExQixDQUFSLENBQXhCLENBQVYsQ0FEQSxFQUVMWCxLQUFLLENBQUMsTUFBRCxFQUFTLElBQUFrQixtQkFBQSxFQUFXO0lBQUVqQixHQUFHLEVBQUUsR0FBUDtJQUFZWSxJQUFJLEVBQUUsTUFBbEI7SUFBMEJNLElBQUksZUFBRSxnQ0FBQyxzQkFBRCxPQUFoQztJQUEwQ0MsR0FBRyxFQUFFO0VBQS9DLENBQVgsQ0FBVCxDQUZBLEVBR0w7RUFDQXBCLEtBQUssQ0FBQyxRQUFELEVBQVcsSUFBQWtCLG1CQUFBLEVBQVc7SUFBRWpCLEdBQUcsRUFBRSxHQUFQO0lBQVlZLElBQUksRUFBRSxRQUFsQjtJQUE0Qk0sSUFBSSxlQUFFLGdDQUFDLHdCQUFELE9BQWxDO0lBQThDQyxHQUFHLEVBQUU7RUFBbkQsQ0FBWCxDQUFYLENBSkEsRUFLTHBCLEtBQUssQ0FDSCxlQURHLEVBRUgsSUFBQWtCLG1CQUFBLEVBQVc7SUFDVGpCLEdBQUcsRUFBRSxHQURJO0lBRVRZLElBQUksRUFBRSxlQUZHO0lBR1RNLElBQUksZUFBRSxnQ0FBQywrQkFBRCxPQUhHO0lBSVRDLEdBQUcsRUFBRTtFQUpJLENBQVgsQ0FGRyxDQUxBLEVBY0xwQixLQUFLLENBQUMsV0FBRCxFQUFjLElBQUFrQixtQkFBQSxFQUFXO0lBQUVqQixHQUFHLEVBQUUsR0FBUDtJQUFZWSxJQUFJLEVBQUUsV0FBbEI7SUFBK0JNLElBQUksZUFBRSxnQ0FBQyw0QkFBRCxPQUFyQztJQUFvREMsR0FBRyxFQUFFO0VBQXpELENBQVgsQ0FBZCxDQWRBLEVBZUxwQixLQUFLLENBQUMsT0FBRCxFQUFVSSxXQUFWLENBZkEsRUFnQkxKLEtBQUssQ0FBQyxPQUFELEVBQVUsSUFBQXFCLGlCQUFBLEVBQVksT0FBWixFQUFxQnRCLElBQUksQ0FBQ3VCLEtBQTFCLENBQVYsQ0FoQkEsRUFpQkx0QixLQUFLLENBQUMsT0FBRCxFQUFVLElBQUFxQixpQkFBQSxFQUFZLE9BQVosRUFBcUJ0QixJQUFJLENBQUN1QixLQUExQixDQUFWLENBakJBLEVBa0JMdEIsS0FBSyxDQUFDLE1BQUQsRUFBU1EsVUFBVCxDQWxCQSw2Q0FtQkZULElBQUksQ0FBQ3dCLGtCQUFMLENBQXdCQyxHQUF4QixDQUE0QixVQUFBQyxNQUFNO0lBQUEsT0FBSXpCLEtBQUssQ0FBQyxvQkFBRCxFQUF1QixJQUFBMEIsc0JBQUEsRUFBaUJELE1BQWpCLENBQXZCLENBQVQ7RUFBQSxDQUFsQyxDQW5CRSxJQW9CTHpCLEtBQUssQ0FBQyxlQUFELEVBQWtCLElBQUEyQixnQkFBQSxFQUFLO0lBQUUxQixHQUFHLEVBQUUsR0FBUDtJQUFZWSxJQUFJLEVBQUUsU0FBbEI7SUFBNkJNLElBQUksZUFBRSxnQ0FBQyw4QkFBRDtFQUFuQyxDQUFMLENBQWxCLENBcEJBLEVBcUJMbkIsS0FBSyxDQUFDLGVBQUQsRUFBa0IsSUFBQTJCLGdCQUFBLEVBQUs7SUFBRTFCLEdBQUcsRUFBRSxHQUFQO0lBQVlZLElBQUksRUFBRSxTQUFsQjtJQUE2Qk0sSUFBSSxlQUFFLGdDQUFDLDhCQUFEO0VBQW5DLENBQUwsQ0FBbEIsQ0FyQkEsRUFzQkwsSUFBQVMsbUJBQUEsRUFBYzdCLElBQUksQ0FBQzhCLE9BQW5CLENBdEJLLEVBdUJMLElBQUFDLDBCQUFBLEVBQWdCO0lBQUVDLEtBQUssRUFBRTtFQUFULENBQWhCLENBdkJLLEVBd0JML0IsS0FBSyxDQUFDLGNBQUQsRUFBaUJXLGNBQWpCLENBeEJBLEdBQVA7QUEwQkQsQ0F2Q007Ozs7QUF5Q0EsSUFBTXFCLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLE1BQUQsRUFBU25DLGFBQVQsRUFBMkI7RUFDcERBLGFBQWEsQ0FBQ29DLE9BQWQsQ0FBc0IsVUFBQUMsTUFBTSxFQUFJO0lBQzlCLElBQUksT0FBT0EsTUFBTSxDQUFDQyxLQUFkLEtBQXdCLFVBQTVCLEVBQXdDO01BQ3RDRCxNQUFNLENBQUNDLEtBQVAsQ0FBYUgsTUFBYjtJQUNEO0VBQ0YsQ0FKRDtFQU1BLE9BQU8sSUFBQUkseUJBQUEsRUFBWSxJQUFBQyxxQkFBQSxFQUFVTCxNQUFWLENBQVosQ0FBUDtBQUNELENBUk0ifQ==
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/index.jsx"],"names":["log","MarkHotkey","options","type","key","icon","tag","toolbar","isMark","onToggle","change","toggleMark","renderMark","props","mark","K","children","onKeyDown","event","metaKey","preventDefault","ALL_PLUGINS","DEFAULT_PLUGINS","filter","plug","buildPlugins","activePlugins","opts","addIf","p","includes","imagePlugin","image","onDelete","mathPlugin","math","respAreaPlugin","responseArea","table","media","languageCharacters","map","config","shift"],"mappings":"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","sourcesContent":["import Bold from '@material-ui/icons/FormatBold';\n// import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@material-ui/icons/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@material-ui/icons/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@material-ui/icons/FormatUnderlined';\nimport compact from 'lodash/compact';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nfunction MarkHotkey(options) {\n const { type, key, icon, tag } = options;\n\n // Return our \"plugin\" object, containing the `onKeyDown` handler.\n return {\n toolbar: {\n isMark: true,\n type,\n icon,\n onToggle: (change) => {\n log('[onToggleMark] type: ', type);\n return change.toggleMark(type);\n },\n },\n renderMark(props) {\n if (props.mark.type === type) {\n const K = tag || type;\n return <K>{props.children}</K>;\n }\n },\n onKeyDown(event, change) {\n // Check that the key pressed matches our `key` option.\n if (!event.metaKey || event.key != key) return;\n\n // Prevent the default characters from being inserted.\n event.preventDefault();\n\n // Toggle the mark `type`.\n change.toggleMark(type);\n return true;\n },\n };\n}\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'table',\n 'video',\n 'audio',\n 'responseArea',\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter((plug) => plug !== 'responseArea');\n\nexport const buildPlugins = (activePlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea && opts.responseArea.type && RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact([imagePlugin, mathPlugin, respAreaPlugin]))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del',\n }),\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...opts.languageCharacters.map((config) => addIf('languageCharacters', CharactersPlugin(config))),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n addIf('responseArea', respAreaPlugin),\n ]);\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","ALL_PLUGINS","DEFAULT_PLUGINS","filter","plug","buildPlugins","activePlugins","opts","addIf","key","p","includes","imagePlugin","image","onDelete","ImagePlugin","mathPlugin","MathPlugin","math","respAreaPlugin","responseArea","type","RespAreaPlugin","compact","TablePlugin","table","MarkHotkey","icon","tag","MediaPlugin","media","languageCharacters","map","config","CharactersPlugin","List","ToolbarPlugin","toolbar","SoftBreakPlugin","shift","withPlugins","editor","forEach","plugin","rules","withHistory","withReact"],"sources":["../../src/plugins/index.jsx"],"sourcesContent":["import { withHistory } from 'slate-history';\nimport { withReact } from 'slate-react';\n\nimport Bold from '@material-ui/icons/FormatBold';\n// import Code from '@material-ui/icons/Code';\nimport BulletedListIcon from '@material-ui/icons/FormatListBulleted';\nimport NumberedListIcon from '@material-ui/icons/FormatListNumbered';\nimport ImagePlugin from './image';\nimport MediaPlugin from './media';\nimport CharactersPlugin from './characters';\nimport Italic from '@material-ui/icons/FormatItalic';\nimport MathPlugin from './math';\nimport React from 'react';\nimport Strikethrough from '@material-ui/icons/FormatStrikethrough';\nimport ToolbarPlugin from './toolbar';\nimport Underline from '@material-ui/icons/FormatUnderlined';\nimport compact from 'lodash/compact';\nimport SoftBreakPlugin from 'slate-soft-break';\nimport debug from 'debug';\nimport List from './list';\nimport TablePlugin from './table';\nimport RespAreaPlugin from './respArea';\nimport MarkHotkey from './hotKeys';\n\nconst log = debug('@pie-lib:editable-html:plugins');\n\nexport const ALL_PLUGINS = [\n 'bold',\n // 'code',\n 'italic',\n 'underline',\n 'strikethrough',\n 'bulleted-list',\n 'numbered-list',\n 'image',\n 'math',\n 'languageCharacters',\n 'table',\n 'video',\n 'audio',\n 'responseArea'\n];\n\nexport const DEFAULT_PLUGINS = ALL_PLUGINS.filter(plug => plug !== 'responseArea');\n\nexport const buildPlugins = (activePlugins, opts) => {\n log('[buildPlugins] opts: ', opts);\n\n activePlugins = activePlugins || DEFAULT_PLUGINS;\n\n const addIf = (key, p) => activePlugins.includes(key) && p;\n const imagePlugin = opts.image && opts.image.onDelete && ImagePlugin(opts.image);\n const mathPlugin = MathPlugin(opts.math);\n const respAreaPlugin =\n opts.responseArea &&\n opts.responseArea.type &&\n RespAreaPlugin(opts.responseArea, compact([mathPlugin]));\n\n return compact([\n addIf('table', TablePlugin(opts.table, compact([imagePlugin, mathPlugin, respAreaPlugin]))),\n addIf('bold', MarkHotkey({ key: 'b', type: 'bold', icon: <Bold />, tag: 'strong' })),\n // addIf('code', MarkHotkey({ key: '`', type: 'code', icon: <Code /> })),\n addIf('italic', MarkHotkey({ key: 'i', type: 'italic', icon: <Italic />, tag: 'em' })),\n addIf(\n 'strikethrough',\n MarkHotkey({\n key: '~',\n type: 'strikethrough',\n icon: <Strikethrough />,\n tag: 'del'\n })\n ),\n addIf('underline', MarkHotkey({ key: 'u', type: 'underline', icon: <Underline />, tag: 'u' })),\n addIf('image', imagePlugin),\n addIf('video', MediaPlugin('video', opts.media)),\n addIf('audio', MediaPlugin('audio', opts.media)),\n addIf('math', mathPlugin),\n ...opts.languageCharacters.map(config => addIf('languageCharacters', CharactersPlugin(config))),\n addIf('bulleted-list', List({ key: 'l', type: 'ul_list', icon: <BulletedListIcon /> })),\n addIf('numbered-list', List({ key: 'n', type: 'ol_list', icon: <NumberedListIcon /> })),\n ToolbarPlugin(opts.toolbar),\n SoftBreakPlugin({ shift: true }),\n addIf('responseArea', respAreaPlugin)\n ]);\n};\n\nexport const withPlugins = (editor, activePlugins) => {\n activePlugins.forEach(plugin => {\n if (typeof plugin.rules === 'function') {\n plugin.rules(editor);\n }\n });\n\n return withHistory(withReact(editor));\n};\n"],"mappings":"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"}