@pie-lib/editable-html 7.17.4-next.50 → 7.17.4-next.501

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 (98) hide show
  1. package/CHANGELOG.json +165 -0
  2. package/CHANGELOG.md +421 -0
  3. package/lib/editor.js +395 -174
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +66 -53
  6. package/lib/index.js.map +1 -1
  7. package/lib/parse-html.js.map +1 -1
  8. package/lib/plugins/characters/custom-popper.js +73 -0
  9. package/lib/plugins/characters/custom-popper.js.map +1 -0
  10. package/lib/plugins/characters/index.js +285 -0
  11. package/lib/plugins/characters/index.js.map +1 -0
  12. package/lib/plugins/characters/utils.js +381 -0
  13. package/lib/plugins/characters/utils.js.map +1 -0
  14. package/lib/plugins/image/alt-dialog.js +119 -0
  15. package/lib/plugins/image/alt-dialog.js.map +1 -0
  16. package/lib/plugins/image/component.js +253 -77
  17. package/lib/plugins/image/component.js.map +1 -1
  18. package/lib/plugins/image/image-toolbar.js +95 -61
  19. package/lib/plugins/image/image-toolbar.js.map +1 -1
  20. package/lib/plugins/image/index.js +62 -20
  21. package/lib/plugins/image/index.js.map +1 -1
  22. package/lib/plugins/image/insert-image-handler.js +9 -15
  23. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  24. package/lib/plugins/index.js +20 -12
  25. package/lib/plugins/index.js.map +1 -1
  26. package/lib/plugins/list/index.js +82 -14
  27. package/lib/plugins/list/index.js.map +1 -1
  28. package/lib/plugins/math/index.js +50 -55
  29. package/lib/plugins/math/index.js.map +1 -1
  30. package/lib/plugins/media/index.js +26 -25
  31. package/lib/plugins/media/index.js.map +1 -1
  32. package/lib/plugins/media/media-dialog.js +45 -56
  33. package/lib/plugins/media/media-dialog.js.map +1 -1
  34. package/lib/plugins/media/media-toolbar.js +24 -30
  35. package/lib/plugins/media/media-toolbar.js.map +1 -1
  36. package/lib/plugins/media/media-wrapper.js +28 -35
  37. package/lib/plugins/media/media-wrapper.js.map +1 -1
  38. package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
  39. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  40. package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
  41. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  42. package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
  43. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  44. package/lib/plugins/respArea/icons/index.js +11 -11
  45. package/lib/plugins/respArea/icons/index.js.map +1 -1
  46. package/lib/plugins/respArea/index.js +58 -42
  47. package/lib/plugins/respArea/index.js.map +1 -1
  48. package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
  49. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  50. package/lib/plugins/respArea/utils.js +5 -5
  51. package/lib/plugins/respArea/utils.js.map +1 -1
  52. package/lib/plugins/table/icons/index.js +12 -12
  53. package/lib/plugins/table/icons/index.js.map +1 -1
  54. package/lib/plugins/table/index.js +83 -27
  55. package/lib/plugins/table/index.js.map +1 -1
  56. package/lib/plugins/table/table-toolbar.js +41 -50
  57. package/lib/plugins/table/table-toolbar.js.map +1 -1
  58. package/lib/plugins/toolbar/default-toolbar.js +19 -13
  59. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  60. package/lib/plugins/toolbar/done-button.js +5 -5
  61. package/lib/plugins/toolbar/done-button.js.map +1 -1
  62. package/lib/plugins/toolbar/editor-and-toolbar.js +55 -45
  63. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/index.js +5 -5
  65. package/lib/plugins/toolbar/index.js.map +1 -1
  66. package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
  67. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  68. package/lib/plugins/toolbar/toolbar.js +69 -63
  69. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  70. package/lib/plugins/utils.js +1 -1
  71. package/lib/plugins/utils.js.map +1 -1
  72. package/lib/serialization.js +32 -9
  73. package/lib/serialization.js.map +1 -1
  74. package/lib/theme.js.map +1 -1
  75. package/package.json +7 -6
  76. package/src/editor.jsx +225 -26
  77. package/src/index.jsx +22 -5
  78. package/src/plugins/characters/custom-popper.js +48 -0
  79. package/src/plugins/characters/index.jsx +268 -0
  80. package/src/plugins/characters/utils.js +447 -0
  81. package/src/plugins/image/alt-dialog.jsx +69 -0
  82. package/src/plugins/image/component.jsx +204 -21
  83. package/src/plugins/image/image-toolbar.jsx +68 -22
  84. package/src/plugins/image/index.jsx +47 -9
  85. package/src/plugins/index.jsx +4 -1
  86. package/src/plugins/list/index.jsx +67 -5
  87. package/src/plugins/math/index.jsx +31 -37
  88. package/src/plugins/media/index.jsx +3 -0
  89. package/src/plugins/media/media-dialog.js +1 -1
  90. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
  91. package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
  92. package/src/plugins/respArea/index.jsx +50 -31
  93. package/src/plugins/table/index.jsx +63 -14
  94. package/src/plugins/toolbar/default-toolbar.jsx +20 -2
  95. package/src/plugins/toolbar/editor-and-toolbar.jsx +39 -5
  96. package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
  97. package/src/plugins/toolbar/toolbar.jsx +22 -4
  98. package/src/serialization.jsx +19 -3
@@ -1,11 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = exports.Toolbar = void 0;
7
9
 
8
- var _doneButton = require("./done-button");
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _slate = require("slate");
9
27
 
10
28
  var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
11
29
 
@@ -13,8 +31,6 @@ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")
13
31
 
14
32
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
33
 
16
- var _react = _interopRequireDefault(require("react"));
17
-
18
34
  var _classnames = _interopRequireDefault(require("classnames"));
19
35
 
20
36
  var _debug = _interopRequireDefault(require("debug"));
@@ -23,37 +39,23 @@ var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
23
39
 
24
40
  var _debounce = _interopRequireDefault(require("lodash/debounce"));
25
41
 
42
+ var _doneButton = require("./done-button");
43
+
26
44
  var _utils = require("../utils");
27
45
 
28
46
  var _styles = require("@material-ui/core/styles");
29
47
 
30
48
  var _defaultToolbar = _interopRequireDefault(require("./default-toolbar"));
31
49
 
32
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
-
34
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
39
-
40
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
41
-
42
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
43
-
44
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
50
+ var _characters = require("../characters");
45
51
 
46
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
52
+ 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; }
47
53
 
48
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
54
+ 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; }
49
55
 
50
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
56
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
51
57
 
52
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
53
-
54
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
55
-
56
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
58
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
59
 
58
60
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:toolbar');
59
61
 
@@ -80,33 +82,29 @@ var getCustomToolbar = function getCustomToolbar(plugin, node, value, handleDone
80
82
  }
81
83
  };
82
84
 
83
- var Toolbar =
84
- /*#__PURE__*/
85
- function (_React$Component) {
86
- _inherits(Toolbar, _React$Component);
85
+ var Toolbar = /*#__PURE__*/function (_React$Component) {
86
+ (0, _inherits2["default"])(Toolbar, _React$Component);
87
+
88
+ var _super = _createSuper(Toolbar);
87
89
 
88
90
  function Toolbar(props) {
89
91
  var _this;
90
92
 
91
- _classCallCheck(this, Toolbar);
92
-
93
- _this = _possibleConstructorReturn(this, _getPrototypeOf(Toolbar).call(this, props));
94
-
95
- _defineProperty(_assertThisInitialized(_this), "hasMark", function (type) {
93
+ (0, _classCallCheck2["default"])(this, Toolbar);
94
+ _this = _super.call(this, props);
95
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hasMark", function (type) {
96
96
  var value = _this.props.value;
97
97
  return value.marks.some(function (mark) {
98
98
  return mark.type == type;
99
99
  });
100
100
  });
101
-
102
- _defineProperty(_assertThisInitialized(_this), "hasBlock", function (type) {
101
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "hasBlock", function (type) {
103
102
  var value = _this.props.value;
104
103
  return value.blocks.some(function (node) {
105
104
  return node.type == type;
106
105
  });
107
106
  });
108
-
109
- _defineProperty(_assertThisInitialized(_this), "onToggle", function (plugin) {
107
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onToggle", function (plugin) {
110
108
  var _this$props = _this.props,
111
109
  value = _this$props.value,
112
110
  onChange = _this$props.onChange;
@@ -114,20 +112,17 @@ function (_React$Component) {
114
112
  var change = plugin.onToggle(value.change());
115
113
  onChange(change);
116
114
  });
117
-
118
- _defineProperty(_assertThisInitialized(_this), "onClick", function (e) {
115
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClick", function (e) {
119
116
  log('[onClick]');
120
117
  e.preventDefault();
121
118
  });
122
-
123
- _defineProperty(_assertThisInitialized(_this), "onButtonClick", function (fn) {
119
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onButtonClick", function (fn) {
124
120
  return function (e) {
125
121
  e.preventDefault();
126
122
  fn();
127
123
  };
128
124
  });
129
-
130
- _defineProperty(_assertThisInitialized(_this), "onToolbarDone", function (change, finishEditing) {
125
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onToolbarDone", function (change, finishEditing) {
131
126
  log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);
132
127
  var _this$props2 = _this.props,
133
128
  onChange = _this$props2.onChange,
@@ -146,24 +141,26 @@ function (_React$Component) {
146
141
  }
147
142
  }
148
143
  });
149
-
150
- _defineProperty(_assertThisInitialized(_this), "onDeleteClick", (0, _debounce["default"])(function (e, plugin, node, value, onChange) {
144
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteClick", (0, _debounce["default"])(function (e, plugin, node, value, onChange) {
151
145
  return plugin.deleteNode(e, node, value, onChange);
152
146
  }, 500));
153
-
154
- _defineProperty(_assertThisInitialized(_this), "onDeleteMouseDown", function (e, plugin, node, value, onChange) {
147
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteMouseDown", function (e, plugin, node, value, onChange) {
155
148
  e.persist();
156
149
 
157
150
  _this.onDeleteClick(e, plugin, node, value, onChange);
158
151
  });
159
-
160
152
  _this.state = {
161
153
  change: null
162
154
  };
163
155
  return _this;
164
156
  }
165
157
 
166
- _createClass(Toolbar, [{
158
+ (0, _createClass2["default"])(Toolbar, [{
159
+ key: "componentWillUnmount",
160
+ value: function componentWillUnmount() {
161
+ (0, _characters.removeDialogs)();
162
+ }
163
+ }, {
167
164
  key: "render",
168
165
  value: function render() {
169
166
  var _this2 = this,
@@ -177,8 +174,10 @@ function (_React$Component) {
177
174
  value = _this$props3.value,
178
175
  autoWidth = _this$props3.autoWidth,
179
176
  onChange = _this$props3.onChange,
177
+ getFocusedValue = _this$props3.getFocusedValue,
180
178
  isFocused = _this$props3.isFocused,
181
- onDone = _this$props3.onDone;
179
+ onDone = _this$props3.onDone,
180
+ toolbarRef = _this$props3.toolbarRef;
182
181
  var node = (0, _utils.findSingleNode)(value);
183
182
  var parentNode = (0, _utils.findParentNode)(value, node);
184
183
  log(' --------------> [render] node: ', node);
@@ -204,6 +203,11 @@ function (_React$Component) {
204
203
  log('[render] plugin: ', plugin);
205
204
 
206
205
  var handleDone = function handleDone(change, done) {
206
+ // use handler only if this is an actual Slate Change
207
+ if (!(change instanceof _slate.Change)) {
208
+ return;
209
+ }
210
+
207
211
  var handler = onDone;
208
212
 
209
213
  if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {
@@ -227,35 +231,37 @@ function (_React$Component) {
227
231
  var parentExtraStyles = parentPlugin && parentPlugin.pluginStyles ? parentPlugin.pluginStyles(node, parentNode, plugin) : {};
228
232
  var pluginExtraStyles = plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};
229
233
 
230
- var extraStyles = _objectSpread({}, pluginExtraStyles, {}, parentExtraStyles);
234
+ var extraStyles = _objectSpread(_objectSpread({}, pluginExtraStyles), parentExtraStyles);
231
235
 
232
236
  var deletable = node && plugin && plugin.deleteNode;
233
237
  var customToolbarShowDone = node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible; // If there is a toolbarOpts we check if the showDone is not equal to false
234
238
 
235
239
  var defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;
236
240
  var hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;
237
- var names = (0, _classnames["default"])(classes.toolbar, (_classNames = {}, _defineProperty(_classNames, classes.toolbarWithNoDone, !hasDoneButton), _defineProperty(_classNames, classes.toolbarTop, toolbarOpts.position === 'top'), _defineProperty(_classNames, classes.toolbarRight, toolbarOpts.alignment === 'right'), _defineProperty(_classNames, classes.focused, toolbarOpts.alwaysVisible || isFocused), _defineProperty(_classNames, classes.autoWidth, autoWidth), _defineProperty(_classNames, classes.fullWidth, !autoWidth), _classNames));
238
- return _react["default"].createElement("div", {
241
+ var names = (0, _classnames["default"])(classes.toolbar, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.toolbarWithNoDone, !hasDoneButton), (0, _defineProperty2["default"])(_classNames, classes.toolbarTop, toolbarOpts.position === 'top'), (0, _defineProperty2["default"])(_classNames, classes.toolbarRight, toolbarOpts.alignment === 'right'), (0, _defineProperty2["default"])(_classNames, classes.focused, toolbarOpts.alwaysVisible || isFocused), (0, _defineProperty2["default"])(_classNames, classes.autoWidth, autoWidth), (0, _defineProperty2["default"])(_classNames, classes.fullWidth, !autoWidth), _classNames));
242
+ return /*#__PURE__*/_react["default"].createElement("div", {
239
243
  className: names,
240
244
  style: extraStyles,
241
- onClick: this.onClick
242
- }, CustomToolbar ? _react["default"].createElement(CustomToolbar, {
245
+ onClick: this.onClick,
246
+ ref: toolbarRef
247
+ }, CustomToolbar ? /*#__PURE__*/_react["default"].createElement(CustomToolbar, {
243
248
  node: node,
244
249
  value: value,
245
250
  onToolbarDone: this.onToolbarDone,
246
251
  onDataChange: handleDataChange,
247
252
  pluginProps: pluginProps
248
- }) : _react["default"].createElement(_defaultToolbar["default"], {
253
+ }) : /*#__PURE__*/_react["default"].createElement(_defaultToolbar["default"], {
249
254
  plugins: filteredPlugins,
250
255
  pluginProps: pluginProps,
251
256
  value: value,
252
257
  onChange: onChange,
258
+ getFocusedValue: getFocusedValue,
253
259
  showDone: defaultToolbarShowDone,
254
260
  onDone: handleDone,
255
261
  deletable: deletable
256
- }), _react["default"].createElement("div", {
262
+ }), /*#__PURE__*/_react["default"].createElement("div", {
257
263
  className: classes.shared
258
- }, deletable && _react["default"].createElement(_IconButton["default"], {
264
+ }, deletable && /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
259
265
  "aria-label": "Delete",
260
266
  className: classes.iconRoot,
261
267
  onMouseDown: function onMouseDown(e) {
@@ -264,38 +270,38 @@ function (_React$Component) {
264
270
  classes: {
265
271
  root: classes.iconRoot
266
272
  }
267
- }, _react["default"].createElement(_Delete["default"], null)), customToolbarShowDone && _react["default"].createElement(_doneButton.DoneButton, {
273
+ }, /*#__PURE__*/_react["default"].createElement(_Delete["default"], null)), customToolbarShowDone && /*#__PURE__*/_react["default"].createElement(_doneButton.DoneButton, {
268
274
  onClick: handleDone
269
275
  })));
270
276
  }
271
277
  }]);
272
-
273
278
  return Toolbar;
274
279
  }(_react["default"].Component);
275
280
 
276
281
  exports.Toolbar = Toolbar;
277
-
278
- _defineProperty(Toolbar, "propTypes", {
282
+ (0, _defineProperty2["default"])(Toolbar, "propTypes", {
279
283
  zIndex: _propTypes["default"].number,
280
284
  value: _slatePropTypes["default"].value.isRequired,
281
285
  plugins: _propTypes["default"].array,
282
286
  plugin: _propTypes["default"].object,
283
287
  onImageClick: _propTypes["default"].func,
284
288
  onDone: _propTypes["default"].func.isRequired,
289
+ toolbarRef: _propTypes["default"].func.isRequired,
285
290
  classes: _propTypes["default"].object.isRequired,
286
291
  isFocused: _propTypes["default"].bool,
287
292
  autoWidth: _propTypes["default"].bool,
288
293
  onChange: _propTypes["default"].func.isRequired,
294
+ getFocusedValue: _propTypes["default"].func.isRequired,
289
295
  pluginProps: _propTypes["default"].object,
290
296
  toolbarOpts: _propTypes["default"].shape({
291
297
  position: _propTypes["default"].oneOf(['bottom', 'top']),
292
298
  alignment: _propTypes["default"].oneOf(['left', 'right']),
293
299
  alwaysVisible: _propTypes["default"].bool,
300
+ ref: _propTypes["default"].func,
294
301
  showDone: _propTypes["default"].bool
295
302
  }),
296
303
  onDataChange: _propTypes["default"].func
297
304
  });
298
-
299
305
  var style = {
300
306
  toolbar: {
301
307
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/toolbar/toolbar.jsx"],"names":["log","getCustomToolbar","plugin","node","value","handleDone","onDataChange","toolbar","CustomToolbarComp","customToolbar","Toolbar","props","type","marks","some","mark","blocks","onChange","onToggle","change","e","preventDefault","fn","finishEditing","onDone","deleteNode","persist","onDeleteClick","state","classes","plugins","pluginProps","toolbarOpts","autoWidth","isFocused","parentNode","find","p","supports","parentPlugin","done","handler","onToolbarDone","handleDataChange","key","data","CustomToolbar","filteredPlugins","filterPlugins","parentExtraStyles","pluginStyles","pluginExtraStyles","extraStyles","deletable","customToolbarShowDone","showDone","alwaysVisible","defaultToolbarShowDone","hasDoneButton","names","toolbarWithNoDone","toolbarTop","position","toolbarRight","alignment","focused","fullWidth","onClick","shared","iconRoot","onDeleteMouseDown","root","React","Component","zIndex","PropTypes","number","SlatePropTypes","isRequired","array","object","onImageClick","func","bool","shape","oneOf","style","cursor","justifyContent","background","minWidth","margin","padding","boxShadow","boxSizing","display","top","right","width","height","verticalAlign","label","color","index"],"mappings":"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","sourcesContent":["import { DoneButton } from './done-button';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport debounce from 'lodash/debounce';\n\nimport { findSingleNode, findParentNode } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\nimport DefaultToolbar from './default-toolbar';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst getCustomToolbar = (plugin, node, value, handleDone, onDataChange) => {\n if (!plugin) {\n return;\n }\n if (!plugin.toolbar) {\n return;\n }\n if (plugin.toolbar.CustomToolbarComp) {\n /**\n * Using a pre-defined Component should be preferred\n * as the rendering of it (and it's children) can be optimized by React.\n * If you keep re-defining the comp with an inline function\n * then react will have to re-render.\n */\n return plugin.toolbar.CustomToolbarComp;\n } else if (typeof plugin.toolbar.customToolbar === 'function') {\n log('deprecated - use CustomToolbarComp');\n return plugin.toolbar.customToolbar(node, value, handleDone, onDataChange);\n }\n};\n\nexport class Toolbar extends React.Component {\n static propTypes = {\n zIndex: PropTypes.number,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array,\n plugin: PropTypes.object,\n onImageClick: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isFocused: PropTypes.bool,\n autoWidth: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n showDone: PropTypes.bool\n }),\n onDataChange: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n change: null\n };\n }\n\n hasMark = type => {\n const { value } = this.props;\n return value.marks.some(mark => mark.type == type);\n };\n\n hasBlock = type => {\n const { value } = this.props;\n return value.blocks.some(node => node.type == type);\n };\n\n onToggle = plugin => {\n const { value, onChange } = this.props;\n\n if (!plugin.onToggle) return;\n\n const change = plugin.onToggle(value.change());\n onChange(change);\n };\n\n onClick = e => {\n log('[onClick]');\n e.preventDefault();\n };\n\n onButtonClick = fn => {\n return e => {\n e.preventDefault();\n fn();\n };\n };\n\n onToolbarDone = (change, finishEditing) => {\n log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);\n const { onChange, onDone } = this.props;\n\n if (change) {\n onChange(change, () => {\n if (finishEditing) {\n onDone();\n }\n });\n } else {\n if (finishEditing) {\n log('[onToolbarChange] call onDone');\n onDone();\n }\n }\n };\n\n onDeleteClick = debounce(\n (e, plugin, node, value, onChange) => plugin.deleteNode(e, node, value, onChange),\n 500\n );\n\n onDeleteMouseDown = (e, plugin, node, value, onChange) => {\n e.persist();\n this.onDeleteClick(e, plugin, node, value, onChange);\n };\n\n render() {\n const {\n classes,\n plugins,\n pluginProps,\n toolbarOpts,\n value,\n autoWidth,\n onChange,\n isFocused,\n onDone\n } = this.props;\n\n const node = findSingleNode(value);\n const parentNode = findParentNode(value, node);\n\n log(' --------------> [render] node: ', node);\n log('[render] node: ', node);\n\n const plugin = plugins.find(p => {\n if (!node) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(node, value);\n }\n });\n const parentPlugin = plugins.find(p => {\n if (!parentNode) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(parentNode, value);\n }\n });\n\n log('[render] plugin: ', plugin);\n\n const handleDone = (change, done) => {\n let handler = onDone;\n\n if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {\n handler = this.onToolbarDone;\n }\n\n handler(change, done);\n\n if (parentPlugin && parentPlugin.handleDone) {\n parentPlugin.handleDone(value, node, plugin, onChange);\n }\n };\n\n const handleDataChange = (key, data) => {\n this.props.onDataChange(key, data);\n };\n\n const CustomToolbar = getCustomToolbar(\n plugin,\n node,\n value,\n handleDone,\n this.props.onDataChange\n );\n\n const filteredPlugins =\n plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;\n\n log('[render] CustomToolbar: ', CustomToolbar);\n const parentExtraStyles =\n parentPlugin && parentPlugin.pluginStyles\n ? parentPlugin.pluginStyles(node, parentNode, plugin)\n : {};\n const pluginExtraStyles =\n plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};\n const extraStyles = {\n ...pluginExtraStyles,\n ...parentExtraStyles\n };\n\n const deletable = node && plugin && plugin.deleteNode;\n const customToolbarShowDone =\n node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;\n\n // If there is a toolbarOpts we check if the showDone is not equal to false\n const defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;\n\n const hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;\n\n const names = classNames(classes.toolbar, {\n [classes.toolbarWithNoDone]: !hasDoneButton,\n [classes.toolbarTop]: toolbarOpts.position === 'top',\n [classes.toolbarRight]: toolbarOpts.alignment === 'right',\n [classes.focused]: toolbarOpts.alwaysVisible || isFocused,\n [classes.autoWidth]: autoWidth,\n [classes.fullWidth]: !autoWidth\n });\n\n return (\n <div className={names} style={extraStyles} onClick={this.onClick}>\n {CustomToolbar ? (\n <CustomToolbar\n node={node}\n value={value}\n onToolbarDone={this.onToolbarDone}\n onDataChange={handleDataChange}\n pluginProps={pluginProps}\n />\n ) : (\n <DefaultToolbar\n plugins={filteredPlugins}\n pluginProps={pluginProps}\n value={value}\n onChange={onChange}\n showDone={defaultToolbarShowDone}\n onDone={handleDone}\n deletable={deletable}\n />\n )}\n\n <div className={classes.shared}>\n {deletable && (\n <IconButton\n aria-label=\"Delete\"\n className={classes.iconRoot}\n onMouseDown={e => this.onDeleteMouseDown(e, plugin, node, value, onChange)}\n classes={{\n root: classes.iconRoot\n }}\n >\n <Delete />\n </IconButton>\n )}\n {customToolbarShowDone && <DoneButton onClick={handleDone} />}\n </div>\n </div>\n );\n }\n}\n\nconst style = {\n toolbar: {\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: '280px',\n margin: '5px 0 0 0',\n padding: '2px',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n boxSizing: 'border-box',\n display: 'none'\n },\n toolbarWithNoDone: {\n minWidth: '265px'\n },\n toolbarTop: {\n top: '-45px'\n },\n toolbarRight: {\n right: 0\n },\n fullWidth: {\n width: '100%'\n },\n autoWidth: {\n width: 'auto'\n },\n focused: {\n display: 'flex'\n },\n iconRoot: {\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top'\n },\n label: {\n color: 'var(--editable-html-toolbar-check, #00bb00)'\n },\n shared: {\n display: 'flex'\n }\n};\nexport default withStyles(style, { index: 1000 })(Toolbar);\n"],"file":"toolbar.js"}
1
+ {"version":3,"file":"toolbar.js","names":["log","debug","getCustomToolbar","plugin","node","value","handleDone","onDataChange","toolbar","CustomToolbarComp","customToolbar","Toolbar","props","type","marks","some","mark","blocks","onChange","onToggle","change","e","preventDefault","fn","finishEditing","onDone","debounce","deleteNode","persist","onDeleteClick","state","removeCharacterDialogs","classes","plugins","pluginProps","toolbarOpts","autoWidth","getFocusedValue","isFocused","toolbarRef","findSingleNode","parentNode","findParentNode","find","p","supports","parentPlugin","done","Change","handler","onToolbarDone","handleDataChange","key","data","CustomToolbar","filteredPlugins","filterPlugins","parentExtraStyles","pluginStyles","pluginExtraStyles","extraStyles","deletable","customToolbarShowDone","showDone","alwaysVisible","defaultToolbarShowDone","hasDoneButton","names","classNames","toolbarWithNoDone","toolbarTop","position","toolbarRight","alignment","focused","fullWidth","onClick","shared","iconRoot","onDeleteMouseDown","root","React","Component","zIndex","PropTypes","number","SlatePropTypes","isRequired","array","object","onImageClick","func","bool","shape","oneOf","ref","style","cursor","justifyContent","background","minWidth","margin","padding","boxShadow","boxSizing","display","top","right","width","height","verticalAlign","label","color","withStyles","index"],"sources":["../../../src/plugins/toolbar/toolbar.jsx"],"sourcesContent":["import React from 'react';\nimport { Change } from 'slate';\nimport Delete from '@material-ui/icons/Delete';\nimport IconButton from '@material-ui/core/IconButton';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport SlatePropTypes from 'slate-prop-types';\nimport debounce from 'lodash/debounce';\n\nimport { DoneButton } from './done-button';\n\nimport { findSingleNode, findParentNode } from '../utils';\nimport { withStyles } from '@material-ui/core/styles';\nimport DefaultToolbar from './default-toolbar';\nimport { removeDialogs as removeCharacterDialogs } from '../characters';\n\nconst log = debug('@pie-lib:editable-html:plugins:toolbar');\n\nconst getCustomToolbar = (plugin, node, value, handleDone, onDataChange) => {\n if (!plugin) {\n return;\n }\n if (!plugin.toolbar) {\n return;\n }\n if (plugin.toolbar.CustomToolbarComp) {\n /**\n * Using a pre-defined Component should be preferred\n * as the rendering of it (and it's children) can be optimized by React.\n * If you keep re-defining the comp with an inline function\n * then react will have to re-render.\n */\n return plugin.toolbar.CustomToolbarComp;\n } else if (typeof plugin.toolbar.customToolbar === 'function') {\n log('deprecated - use CustomToolbarComp');\n return plugin.toolbar.customToolbar(node, value, handleDone, onDataChange);\n }\n};\n\nexport class Toolbar extends React.Component {\n static propTypes = {\n zIndex: PropTypes.number,\n value: SlatePropTypes.value.isRequired,\n plugins: PropTypes.array,\n plugin: PropTypes.object,\n onImageClick: PropTypes.func,\n onDone: PropTypes.func.isRequired,\n toolbarRef: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n isFocused: PropTypes.bool,\n autoWidth: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n getFocusedValue: PropTypes.func.isRequired,\n pluginProps: PropTypes.object,\n toolbarOpts: PropTypes.shape({\n position: PropTypes.oneOf(['bottom', 'top']),\n alignment: PropTypes.oneOf(['left', 'right']),\n alwaysVisible: PropTypes.bool,\n ref: PropTypes.func,\n showDone: PropTypes.bool\n }),\n onDataChange: PropTypes.func\n };\n\n constructor(props) {\n super(props);\n this.state = {\n change: null\n };\n }\n\n componentWillUnmount() {\n removeCharacterDialogs();\n }\n\n hasMark = type => {\n const { value } = this.props;\n return value.marks.some(mark => mark.type == type);\n };\n\n hasBlock = type => {\n const { value } = this.props;\n return value.blocks.some(node => node.type == type);\n };\n\n onToggle = plugin => {\n const { value, onChange } = this.props;\n\n if (!plugin.onToggle) return;\n\n const change = plugin.onToggle(value.change());\n onChange(change);\n };\n\n onClick = e => {\n log('[onClick]');\n e.preventDefault();\n };\n\n onButtonClick = fn => {\n return e => {\n e.preventDefault();\n fn();\n };\n };\n\n onToolbarDone = (change, finishEditing) => {\n log('[onToolbarDone] change: ', change, 'finishEditing: ', finishEditing);\n const { onChange, onDone } = this.props;\n\n if (change) {\n onChange(change, () => {\n if (finishEditing) {\n onDone();\n }\n });\n } else {\n if (finishEditing) {\n log('[onToolbarChange] call onDone');\n onDone();\n }\n }\n };\n\n onDeleteClick = debounce(\n (e, plugin, node, value, onChange) => plugin.deleteNode(e, node, value, onChange),\n 500\n );\n\n onDeleteMouseDown = (e, plugin, node, value, onChange) => {\n e.persist();\n this.onDeleteClick(e, plugin, node, value, onChange);\n };\n\n render() {\n const {\n classes,\n plugins,\n pluginProps,\n toolbarOpts,\n value,\n autoWidth,\n onChange,\n getFocusedValue,\n isFocused,\n onDone,\n toolbarRef\n } = this.props;\n\n const node = findSingleNode(value);\n const parentNode = findParentNode(value, node);\n\n log(' --------------> [render] node: ', node);\n log('[render] node: ', node);\n\n const plugin = plugins.find(p => {\n if (!node) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(node, value);\n }\n });\n const parentPlugin = plugins.find(p => {\n if (!parentNode) {\n return;\n }\n\n if (p.toolbar) {\n return p.toolbar.supports && p.toolbar.supports(parentNode, value);\n }\n });\n\n log('[render] plugin: ', plugin);\n\n const handleDone = (change, done) => {\n // use handler only if this is an actual Slate Change\n if (!(change instanceof Change)) {\n return;\n }\n\n let handler = onDone;\n\n if (plugin && plugin.toolbar && plugin.toolbar.customToolbar) {\n handler = this.onToolbarDone;\n }\n\n handler(change, done);\n\n if (parentPlugin && parentPlugin.handleDone) {\n parentPlugin.handleDone(value, node, plugin, onChange);\n }\n };\n\n const handleDataChange = (key, data) => {\n this.props.onDataChange(key, data);\n };\n\n const CustomToolbar = getCustomToolbar(\n plugin,\n node,\n value,\n handleDone,\n this.props.onDataChange\n );\n\n const filteredPlugins =\n plugin && plugin.filterPlugins ? plugin.filterPlugins(node, plugins) : plugins;\n\n log('[render] CustomToolbar: ', CustomToolbar);\n const parentExtraStyles =\n parentPlugin && parentPlugin.pluginStyles\n ? parentPlugin.pluginStyles(node, parentNode, plugin)\n : {};\n const pluginExtraStyles =\n plugin && plugin.pluginStyles ? plugin.pluginStyles(node, parentNode, plugin) : {};\n const extraStyles = {\n ...pluginExtraStyles,\n ...parentExtraStyles\n };\n\n const deletable = node && plugin && plugin.deleteNode;\n const customToolbarShowDone =\n node && plugin && plugin.toolbar && plugin.toolbar.showDone && !toolbarOpts.alwaysVisible;\n\n // If there is a toolbarOpts we check if the showDone is not equal to false\n const defaultToolbarShowDone = !toolbarOpts || toolbarOpts.showDone !== false;\n\n const hasDoneButton = defaultToolbarShowDone || customToolbarShowDone;\n\n const names = classNames(classes.toolbar, {\n [classes.toolbarWithNoDone]: !hasDoneButton,\n [classes.toolbarTop]: toolbarOpts.position === 'top',\n [classes.toolbarRight]: toolbarOpts.alignment === 'right',\n [classes.focused]: toolbarOpts.alwaysVisible || isFocused,\n [classes.autoWidth]: autoWidth,\n [classes.fullWidth]: !autoWidth\n });\n\n return (\n <div className={names} style={extraStyles} onClick={this.onClick} ref={toolbarRef}>\n {CustomToolbar ? (\n <CustomToolbar\n node={node}\n value={value}\n onToolbarDone={this.onToolbarDone}\n onDataChange={handleDataChange}\n pluginProps={pluginProps}\n />\n ) : (\n <DefaultToolbar\n plugins={filteredPlugins}\n pluginProps={pluginProps}\n value={value}\n onChange={onChange}\n getFocusedValue={getFocusedValue}\n showDone={defaultToolbarShowDone}\n onDone={handleDone}\n deletable={deletable}\n />\n )}\n\n <div className={classes.shared}>\n {deletable && (\n <IconButton\n aria-label=\"Delete\"\n className={classes.iconRoot}\n onMouseDown={e => this.onDeleteMouseDown(e, plugin, node, value, onChange)}\n classes={{\n root: classes.iconRoot\n }}\n >\n <Delete />\n </IconButton>\n )}\n {customToolbarShowDone && <DoneButton onClick={handleDone} />}\n </div>\n </div>\n );\n }\n}\n\nconst style = {\n toolbar: {\n position: 'absolute',\n zIndex: 10,\n cursor: 'pointer',\n justifyContent: 'space-between',\n background: 'var(--editable-html-toolbar-bg, #efefef)',\n minWidth: '280px',\n margin: '5px 0 0 0',\n padding: '2px',\n boxShadow:\n '0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)',\n boxSizing: 'border-box',\n display: 'none'\n },\n toolbarWithNoDone: {\n minWidth: '265px'\n },\n toolbarTop: {\n top: '-45px'\n },\n toolbarRight: {\n right: 0\n },\n fullWidth: {\n width: '100%'\n },\n autoWidth: {\n width: 'auto'\n },\n focused: {\n display: 'flex'\n },\n iconRoot: {\n width: '28px',\n height: '28px',\n padding: '4px',\n verticalAlign: 'top'\n },\n label: {\n color: 'var(--editable-html-toolbar-check, #00bb00)'\n },\n shared: {\n display: 'flex'\n }\n};\nexport default withStyles(style, { index: 1000 })(Toolbar);\n"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.hasNode = exports.hasBlock = exports.hasMark = exports.findParentNode = exports.findSingleNode = void 0;
6
+ exports.hasNode = exports.hasMark = exports.hasBlock = exports.findSingleNode = exports.findParentNode = void 0;
7
7
 
8
8
  var findSingleNode = function findSingleNode(value) {
9
9
  if (!value || !value.isCollapsed || !value.startKey) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/utils.js"],"names":["findSingleNode","value","isCollapsed","startKey","inline","document","getClosestInline","block","getClosestBlock","findParentNode","node","getParent","key","hasMark","type","marks","some","mark","hasBlock","blocks","hasNode","nodes"],"mappings":";;;;;;;AAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;AACrC,MAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACC,WAAjB,IAAgC,CAACD,KAAK,CAACE,QAA3C,EAAqD;AACnD;AACD;;AAED,MAAMC,MAAM,GAAGH,KAAK,CAACI,QAAN,CAAeC,gBAAf,CAAgCL,KAAK,CAACE,QAAtC,CAAf;;AAEA,MAAIC,MAAJ,EAAY;AACV,WAAOA,MAAP;AACD;;AAED,MAAMG,KAAK,GAAGN,KAAK,CAACI,QAAN,CAAeG,eAAf,CAA+BP,KAAK,CAACE,QAArC,CAAd;;AAEA,MAAII,KAAJ,EAAW;AACT,WAAOA,KAAP;AACD;AACF,CAhBM;;;;AAkBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACR,KAAD,EAAQS,IAAR,EAAiB;AAC7C,MAAI,CAACT,KAAD,IAAU,CAACS,IAAf,EAAqB;AACnB;AACD;;AAED,SAAOT,KAAK,CAACI,QAAN,CAAeM,SAAf,CAAyBD,IAAI,CAACE,GAA9B,CAAP;AACD,CANM;;;;AAQA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACZ,KAAD,EAAQa,IAAR;AAAA,SAAiBb,KAAK,IAAIA,KAAK,CAACc,KAAN,CAAYC,IAAZ,CAAiB,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACH,IAAL,IAAaA,IAAjB;AAAA,GAArB,CAA1B;AAAA,CAAhB;;;;AAEA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,CAACjB,KAAD,EAAQa,IAAR;AAAA,SAAiBb,KAAK,IAAIA,KAAK,CAACkB,MAAN,CAAaH,IAAb,CAAkB,UAAAN,IAAI;AAAA,WAAIA,IAAI,CAACI,IAAL,IAAaA,IAAjB;AAAA,GAAtB,CAA1B;AAAA,CAAjB;;;;AAEA,IAAMM,OAAO,GAAG,SAAVA,OAAU,OAAeN,IAAf;AAAA,MAAGT,QAAH,QAAGA,QAAH;AAAA,SACrBA,QAAQ,IAAIA,QAAQ,CAACgB,KAAT,CAAeL,IAAf,CAAoB,UAAAN,IAAI;AAAA,WAAIA,IAAI,CAACI,IAAL,IAAaA,IAAjB;AAAA,GAAxB,CADS;AAAA,CAAhB","sourcesContent":["export const findSingleNode = value => {\n if (!value || !value.isCollapsed || !value.startKey) {\n return;\n }\n\n const inline = value.document.getClosestInline(value.startKey);\n\n if (inline) {\n return inline;\n }\n\n const block = value.document.getClosestBlock(value.startKey);\n\n if (block) {\n return block;\n }\n};\n\nexport const findParentNode = (value, node) => {\n if (!value || !node) {\n return;\n }\n\n return value.document.getParent(node.key);\n};\n\nexport const hasMark = (value, type) => value && value.marks.some(mark => mark.type == type);\n\nexport const hasBlock = (value, type) => value && value.blocks.some(node => node.type == type);\n\nexport const hasNode = ({ document }, type) =>\n document && document.nodes.some(node => node.type == type);\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["findSingleNode","value","isCollapsed","startKey","inline","document","getClosestInline","block","getClosestBlock","findParentNode","node","getParent","key","hasMark","type","marks","some","mark","hasBlock","blocks","hasNode","nodes"],"sources":["../../src/plugins/utils.js"],"sourcesContent":["export const findSingleNode = value => {\n if (!value || !value.isCollapsed || !value.startKey) {\n return;\n }\n\n const inline = value.document.getClosestInline(value.startKey);\n\n if (inline) {\n return inline;\n }\n\n const block = value.document.getClosestBlock(value.startKey);\n\n if (block) {\n return block;\n }\n};\n\nexport const findParentNode = (value, node) => {\n if (!value || !node) {\n return;\n }\n\n return value.document.getParent(node.key);\n};\n\nexport const hasMark = (value, type) => value && value.marks.some(mark => mark.type == type);\n\nexport const hasBlock = (value, type) => value && value.blocks.some(node => node.type == type);\n\nexport const hasNode = ({ document }, type) =>\n document && document.nodes.some(node => node.type == type);\n"],"mappings":";;;;;;;AAAO,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,KAAK,EAAI;EACrC,IAAI,CAACA,KAAD,IAAU,CAACA,KAAK,CAACC,WAAjB,IAAgC,CAACD,KAAK,CAACE,QAA3C,EAAqD;IACnD;EACD;;EAED,IAAMC,MAAM,GAAGH,KAAK,CAACI,QAAN,CAAeC,gBAAf,CAAgCL,KAAK,CAACE,QAAtC,CAAf;;EAEA,IAAIC,MAAJ,EAAY;IACV,OAAOA,MAAP;EACD;;EAED,IAAMG,KAAK,GAAGN,KAAK,CAACI,QAAN,CAAeG,eAAf,CAA+BP,KAAK,CAACE,QAArC,CAAd;;EAEA,IAAII,KAAJ,EAAW;IACT,OAAOA,KAAP;EACD;AACF,CAhBM;;;;AAkBA,IAAME,cAAc,GAAG,SAAjBA,cAAiB,CAACR,KAAD,EAAQS,IAAR,EAAiB;EAC7C,IAAI,CAACT,KAAD,IAAU,CAACS,IAAf,EAAqB;IACnB;EACD;;EAED,OAAOT,KAAK,CAACI,QAAN,CAAeM,SAAf,CAAyBD,IAAI,CAACE,GAA9B,CAAP;AACD,CANM;;;;AAQA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACZ,KAAD,EAAQa,IAAR;EAAA,OAAiBb,KAAK,IAAIA,KAAK,CAACc,KAAN,CAAYC,IAAZ,CAAiB,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACH,IAAL,IAAaA,IAAjB;EAAA,CAArB,CAA1B;AAAA,CAAhB;;;;AAEA,IAAMI,QAAQ,GAAG,SAAXA,QAAW,CAACjB,KAAD,EAAQa,IAAR;EAAA,OAAiBb,KAAK,IAAIA,KAAK,CAACkB,MAAN,CAAaH,IAAb,CAAkB,UAAAN,IAAI;IAAA,OAAIA,IAAI,CAACI,IAAL,IAAaA,IAAjB;EAAA,CAAtB,CAA1B;AAAA,CAAjB;;;;AAEA,IAAMM,OAAO,GAAG,SAAVA,OAAU,OAAeN,IAAf;EAAA,IAAGT,QAAH,QAAGA,QAAH;EAAA,OACrBA,QAAQ,IAAIA,QAAQ,CAACgB,KAAT,CAAeL,IAAf,CAAoB,UAAAN,IAAI;IAAA,OAAIA,IAAI,CAACI,IAAL,IAAaA,IAAjB;EAAA,CAAxB,CADS;AAAA,CAAhB"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.valueToHtml = exports.htmlToValue = exports.TEXT_RULE = exports.reactAttributes = exports.parseStyleString = exports.BLOCK_TAGS = void 0;
8
+ exports.valueToHtml = exports.reactAttributes = exports.parseStyleString = exports.htmlToValue = exports.getBase64 = exports.TEXT_RULE = exports.BLOCK_TAGS = void 0;
7
9
 
8
10
  var _slateHtmlSerializer = _interopRequireDefault(require("slate-html-serializer"));
9
11
 
@@ -27,8 +29,6 @@ var _respArea = require("./plugins/respArea");
27
29
 
28
30
  var _slate = require("slate");
29
31
 
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
-
32
32
  var log = (0, _debug["default"])('@pie-lib:editable-html:serialization');
33
33
  /**
34
34
  * Tags to blocks.
@@ -79,9 +79,27 @@ var parseStyleString = function parseStyleString(s) {
79
79
 
80
80
  exports.parseStyleString = parseStyleString;
81
81
 
82
+ var getBase64 = function getBase64(file) {
83
+ return new Promise(function (resolve, reject) {
84
+ var reader = new FileReader();
85
+ reader.readAsDataURL(file);
86
+
87
+ reader.onload = function () {
88
+ return resolve(reader.result);
89
+ };
90
+
91
+ reader.onerror = function (error) {
92
+ return reject(error);
93
+ };
94
+ });
95
+ };
96
+
97
+ exports.getBase64 = getBase64;
98
+
82
99
  var reactAttributes = function reactAttributes(o) {
83
100
  return (0, _toStyle.object)(o, {
84
- camelize: true
101
+ camelize: true,
102
+ addUnits: false
85
103
  });
86
104
  };
87
105
 
@@ -150,7 +168,7 @@ var blocks = {
150
168
  for (key in BLOCK_TAGS) {
151
169
  if (BLOCK_TAGS[key] === object.type) {
152
170
  var Tag = key;
153
- return _react["default"].createElement(Tag, jsonData.attributes, children);
171
+ return /*#__PURE__*/_react["default"].createElement(Tag, jsonData.attributes, children);
154
172
  }
155
173
  }
156
174
  }
@@ -171,7 +189,7 @@ var marks = {
171
189
  for (var key in MARK_TAGS) {
172
190
  if (MARK_TAGS[key] === object.type) {
173
191
  var Tag = key;
174
- return _react["default"].createElement(Tag, null, children);
192
+ return /*#__PURE__*/_react["default"].createElement(Tag, null, children);
175
193
  }
176
194
  }
177
195
  }
@@ -222,7 +240,7 @@ var TEXT_RULE = {
222
240
  serialize: function serialize(obj, children) {
223
241
  if (obj.object === 'string') {
224
242
  return children.split('\n').reduce(function (array, text, i) {
225
- if (i !== 0) array.push(_react["default"].createElement("br", null));
243
+ if (i !== 0) array.push( /*#__PURE__*/_react["default"].createElement("br", null));
226
244
  array.push(text);
227
245
  return array;
228
246
  }, []);
@@ -361,7 +379,7 @@ serializer.deserialize = function deserialize(html) {
361
379
  };
362
380
  var i;
363
381
 
364
- for (i = 0; i < 1000; i++) {
382
+ for (i = 0; i < 3000; i++) {
365
383
  json.schema.rules.push({
366
384
  match: {
367
385
  object: 'document'
@@ -384,7 +402,12 @@ serializer.deserialize = function deserialize(html) {
384
402
  };
385
403
 
386
404
  var htmlToValue = function htmlToValue(html) {
387
- return serializer.deserialize(html);
405
+ try {
406
+ return serializer.deserialize(html);
407
+ } catch (e) {
408
+ console.log("Couldn't parse html: ", e);
409
+ return {};
410
+ }
388
411
  };
389
412
 
390
413
  exports.htmlToValue = htmlToValue;