@pie-lib/editable-html 7.17.18 → 7.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.json +120 -0
  2. package/CHANGELOG.md +41 -0
  3. package/lib/editor.js +30 -20
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +27 -21
  6. package/lib/index.js.map +1 -1
  7. package/lib/plugins/image/component.js +20 -18
  8. package/lib/plugins/image/component.js.map +1 -1
  9. package/lib/plugins/image/image-toolbar.js +21 -19
  10. package/lib/plugins/image/image-toolbar.js.map +1 -1
  11. package/lib/plugins/image/index.js +7 -7
  12. package/lib/plugins/image/index.js.map +1 -1
  13. package/lib/plugins/image/insert-image-handler.js +2 -4
  14. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  15. package/lib/plugins/index.js +7 -7
  16. package/lib/plugins/index.js.map +1 -1
  17. package/lib/plugins/list/index.js +7 -7
  18. package/lib/plugins/list/index.js.map +1 -1
  19. package/lib/plugins/math/index.js +13 -12
  20. package/lib/plugins/math/index.js.map +1 -1
  21. package/lib/plugins/media/index.js +16 -13
  22. package/lib/plugins/media/index.js.map +1 -1
  23. package/lib/plugins/media/media-dialog.js +27 -23
  24. package/lib/plugins/media/media-dialog.js.map +1 -1
  25. package/lib/plugins/media/media-toolbar.js +19 -15
  26. package/lib/plugins/media/media-toolbar.js.map +1 -1
  27. package/lib/plugins/media/media-wrapper.js +20 -14
  28. package/lib/plugins/media/media-wrapper.js.map +1 -1
  29. package/lib/plugins/respArea/drag-in-the-blank/choice.js +25 -19
  30. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  31. package/lib/plugins/respArea/drag-in-the-blank/index.js +6 -6
  32. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  33. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -3
  34. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  35. package/lib/plugins/respArea/icons/index.js +7 -7
  36. package/lib/plugins/respArea/icons/index.js.map +1 -1
  37. package/lib/plugins/respArea/index.js +36 -9
  38. package/lib/plugins/respArea/index.js.map +1 -1
  39. package/lib/plugins/respArea/inline-dropdown/index.js +4 -4
  40. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  41. package/lib/plugins/respArea/utils.js +3 -3
  42. package/lib/plugins/respArea/utils.js.map +1 -1
  43. package/lib/plugins/table/icons/index.js +8 -8
  44. package/lib/plugins/table/icons/index.js.map +1 -1
  45. package/lib/plugins/table/index.js +32 -24
  46. package/lib/plugins/table/index.js.map +1 -1
  47. package/lib/plugins/table/table-toolbar.js +26 -24
  48. package/lib/plugins/table/table-toolbar.js.map +1 -1
  49. package/lib/plugins/toolbar/default-toolbar.js +7 -7
  50. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  51. package/lib/plugins/toolbar/done-button.js +3 -3
  52. package/lib/plugins/toolbar/done-button.js.map +1 -1
  53. package/lib/plugins/toolbar/editor-and-toolbar.js +23 -19
  54. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  55. package/lib/plugins/toolbar/index.js +1 -1
  56. package/lib/plugins/toolbar/index.js.map +1 -1
  57. package/lib/plugins/toolbar/toolbar-buttons.js +22 -18
  58. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  59. package/lib/plugins/toolbar/toolbar.js +25 -21
  60. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  61. package/lib/plugins/utils.js +1 -1
  62. package/lib/serialization.js +4 -4
  63. package/lib/serialization.js.map +1 -1
  64. package/package.json +2 -2
  65. package/src/editor.jsx +8 -2
  66. package/src/plugins/respArea/explicit-constructed-response/index.jsx +1 -1
  67. package/src/plugins/respArea/index.jsx +28 -2
  68. package/src/plugins/table/index.jsx +11 -6
  69. package/src/plugins/toolbar/toolbar.jsx +1 -1
package/lib/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- Object.defineProperty(exports, "Editor", {
8
+ Object.defineProperty(exports, "ALL_PLUGINS", {
7
9
  enumerable: true,
8
10
  get: function get() {
9
- return _editor["default"];
11
+ return _editor.ALL_PLUGINS;
10
12
  }
11
13
  });
12
14
  Object.defineProperty(exports, "DEFAULT_PLUGINS", {
@@ -15,12 +17,13 @@ Object.defineProperty(exports, "DEFAULT_PLUGINS", {
15
17
  return _editor.DEFAULT_PLUGINS;
16
18
  }
17
19
  });
18
- Object.defineProperty(exports, "ALL_PLUGINS", {
20
+ Object.defineProperty(exports, "Editor", {
19
21
  enumerable: true,
20
22
  get: function get() {
21
- return _editor.ALL_PLUGINS;
23
+ return _editor["default"];
22
24
  }
23
25
  });
26
+ exports["default"] = void 0;
24
27
  Object.defineProperty(exports, "htmlToValue", {
25
28
  enumerable: true,
26
29
  get: function get() {
@@ -33,7 +36,6 @@ Object.defineProperty(exports, "valueToHtml", {
33
36
  return _serialization.valueToHtml;
34
37
  }
35
38
  });
36
- exports["default"] = void 0;
37
39
 
38
40
  var _react = _interopRequireDefault(require("react"));
39
41
 
@@ -47,33 +49,37 @@ var _parseHtml = require("./parse-html");
47
49
 
48
50
  var _debug = _interopRequireDefault(require("debug"));
49
51
 
50
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
52
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
53
 
52
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
54
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
55
 
54
- 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); }
56
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
55
57
 
56
58
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
57
59
 
58
- 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; }
60
+ 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; }
59
61
 
60
- 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; }
62
+ 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) { _defineProperty(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; }
61
63
 
62
64
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
63
65
 
64
66
  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); } }
65
67
 
66
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
68
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
67
69
 
68
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
70
+ 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 } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
69
71
 
70
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
72
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
73
+
74
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
75
+
76
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
71
77
 
72
78
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
73
79
 
74
- 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); }
80
+ 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; } }
75
81
 
76
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
82
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
77
83
 
78
84
  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; }
79
85
 
@@ -88,17 +94,17 @@ var log = (0, _debug["default"])('@pie-lib:editable-html');
88
94
  * compare it. TODO: This is an interim fix, we'll need to strip back `Editor` and look how best to maintain the
89
95
  * `markup` api whilst avoiding the serialization mismatch. We should be making better use of schemas w/ normalize.
90
96
  */
91
- var EditableHtml =
92
- /*#__PURE__*/
93
- function (_React$Component) {
97
+ var EditableHtml = /*#__PURE__*/function (_React$Component) {
94
98
  _inherits(EditableHtml, _React$Component);
95
99
 
100
+ var _super = _createSuper(EditableHtml);
101
+
96
102
  function EditableHtml(props) {
97
103
  var _this;
98
104
 
99
105
  _classCallCheck(this, EditableHtml);
100
106
 
101
- _this = _possibleConstructorReturn(this, _getPrototypeOf(EditableHtml).call(this, props));
107
+ _this = _super.call(this, props);
102
108
 
103
109
  _defineProperty(_assertThisInitialized(_this), "onChange", function (value, done) {
104
110
  var html = (0, _serialization.valueToHtml)(value);
@@ -174,14 +180,14 @@ function (_React$Component) {
174
180
 
175
181
  var value = this.state.value;
176
182
 
177
- var props = _objectSpread({}, this.props, {
183
+ var props = _objectSpread(_objectSpread({}, this.props), {}, {
178
184
  markup: null,
179
185
  value: value,
180
186
  onChange: this.onChange,
181
187
  focus: this.focus
182
188
  });
183
189
 
184
- return _react["default"].createElement(_editor["default"], _extends({
190
+ return /*#__PURE__*/_react["default"].createElement(_editor["default"], _extends({
185
191
  onRef: function onRef(ref) {
186
192
  if (ref) {
187
193
  _this2.rootRef = ref;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.jsx"],"names":["log","EditableHtml","props","value","done","html","htmlParsed","markup","onChange","onDone","position","node","editorRef","change","c","lastText","document","getNextText","key","getLastText","editorDOM","querySelector","activeElement","blur","focus","moveFocusTo","text","length","moveAnchorTo","onEditingDone","v","state","allowValidation","current","equals","setState","ref","rootRef","React","Component","PropTypes","func","isRequired","string","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Editor, { DEFAULT_PLUGINS, ALL_PLUGINS } from './editor';\nimport { htmlToValue, valueToHtml } from './serialization';\nimport { parseDegrees } from './parse-html';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html');\n/**\n * Export lower level Editor and serialization functions.\n */\nexport { htmlToValue, valueToHtml, Editor, DEFAULT_PLUGINS, ALL_PLUGINS };\n\n/**\n * Wrapper around the editor that exposes a `markup` and `onChange(markup:string)` api.\n * Because of the mismatch between the markup and the `Value` we need to convert the incoming markup to a value and\n * compare it. TODO: This is an interim fix, we'll need to strip back `Editor` and look how best to maintain the\n * `markup` api whilst avoiding the serialization mismatch. We should be making better use of schemas w/ normalize.\n */\nexport default class EditableHtml extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func,\n markup: PropTypes.string.isRequired,\n allowValidation: PropTypes.bool\n };\n\n static defaultProps = {\n onDone: () => {},\n allowValidation: false\n };\n\n constructor(props) {\n super(props);\n const v = htmlToValue(props.markup);\n this.state = {\n value: v\n };\n }\n\n // eslint-disable-next-line react/no-deprecated\n componentWillReceiveProps(props) {\n if (!props.allowValidation && props.markup === this.props.markup) {\n return;\n }\n\n const v = htmlToValue(props.markup);\n const current = htmlToValue(this.props.markup);\n\n if (!v.equals(current)) {\n this.setState({ value: v });\n }\n }\n\n onChange = (value, done) => {\n const html = valueToHtml(value);\n const htmlParsed = parseDegrees(html);\n\n log('value as html: ', html);\n\n if (html !== this.props.markup) {\n this.props.onChange(htmlParsed);\n }\n\n if (done) {\n this.props.onDone(htmlParsed);\n }\n };\n\n focus = (position, node) => {\n if (this.editorRef) {\n this.editorRef.change(c => {\n const lastText = node\n ? c.value.document.getNextText(node.key)\n : c.value.document.getLastText();\n const editorDOM = document.querySelector(\n `[data-key=\"${this.editorRef.value.document.key}\"]`\n );\n\n if (editorDOM !== document.activeElement) {\n document.activeElement.blur();\n }\n\n c.focus();\n\n if (position === 'end' && lastText) {\n c.moveFocusTo(lastText.key, lastText.text.length).moveAnchorTo(\n lastText.key,\n lastText.text.length\n );\n }\n\n if (position === 'beginning' && lastText) {\n c.moveFocusTo(lastText.key, 0).moveAnchorTo(lastText.key, 0);\n }\n });\n }\n };\n\n finishEditing = () => {\n if (this.editorRef) {\n this.editorRef.props.onEditingDone();\n }\n };\n\n render() {\n const { value } = this.state;\n const props = {\n ...this.props,\n markup: null,\n value,\n onChange: this.onChange,\n focus: this.focus\n };\n\n return (\n <Editor\n onRef={ref => {\n if (ref) {\n this.rootRef = ref;\n }\n }}\n editorRef={ref => ref && (this.editorRef = ref)}\n {...props}\n />\n );\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.jsx"],"names":["log","EditableHtml","props","value","done","html","htmlParsed","markup","onChange","onDone","position","node","editorRef","change","c","lastText","document","getNextText","key","getLastText","editorDOM","querySelector","activeElement","blur","focus","moveFocusTo","text","length","moveAnchorTo","onEditingDone","v","state","allowValidation","current","equals","setState","ref","rootRef","React","Component","PropTypes","func","isRequired","string","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Editor, { DEFAULT_PLUGINS, ALL_PLUGINS } from './editor';\nimport { htmlToValue, valueToHtml } from './serialization';\nimport { parseDegrees } from './parse-html';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html');\n/**\n * Export lower level Editor and serialization functions.\n */\nexport { htmlToValue, valueToHtml, Editor, DEFAULT_PLUGINS, ALL_PLUGINS };\n\n/**\n * Wrapper around the editor that exposes a `markup` and `onChange(markup:string)` api.\n * Because of the mismatch between the markup and the `Value` we need to convert the incoming markup to a value and\n * compare it. TODO: This is an interim fix, we'll need to strip back `Editor` and look how best to maintain the\n * `markup` api whilst avoiding the serialization mismatch. We should be making better use of schemas w/ normalize.\n */\nexport default class EditableHtml extends React.Component {\n static propTypes = {\n onChange: PropTypes.func.isRequired,\n onDone: PropTypes.func,\n markup: PropTypes.string.isRequired,\n allowValidation: PropTypes.bool\n };\n\n static defaultProps = {\n onDone: () => {},\n allowValidation: false\n };\n\n constructor(props) {\n super(props);\n const v = htmlToValue(props.markup);\n this.state = {\n value: v\n };\n }\n\n // eslint-disable-next-line react/no-deprecated\n componentWillReceiveProps(props) {\n if (!props.allowValidation && props.markup === this.props.markup) {\n return;\n }\n\n const v = htmlToValue(props.markup);\n const current = htmlToValue(this.props.markup);\n\n if (!v.equals(current)) {\n this.setState({ value: v });\n }\n }\n\n onChange = (value, done) => {\n const html = valueToHtml(value);\n const htmlParsed = parseDegrees(html);\n\n log('value as html: ', html);\n\n if (html !== this.props.markup) {\n this.props.onChange(htmlParsed);\n }\n\n if (done) {\n this.props.onDone(htmlParsed);\n }\n };\n\n focus = (position, node) => {\n if (this.editorRef) {\n this.editorRef.change(c => {\n const lastText = node\n ? c.value.document.getNextText(node.key)\n : c.value.document.getLastText();\n const editorDOM = document.querySelector(\n `[data-key=\"${this.editorRef.value.document.key}\"]`\n );\n\n if (editorDOM !== document.activeElement) {\n document.activeElement.blur();\n }\n\n c.focus();\n\n if (position === 'end' && lastText) {\n c.moveFocusTo(lastText.key, lastText.text.length).moveAnchorTo(\n lastText.key,\n lastText.text.length\n );\n }\n\n if (position === 'beginning' && lastText) {\n c.moveFocusTo(lastText.key, 0).moveAnchorTo(lastText.key, 0);\n }\n });\n }\n };\n\n finishEditing = () => {\n if (this.editorRef) {\n this.editorRef.props.onEditingDone();\n }\n };\n\n render() {\n const { value } = this.state;\n const props = {\n ...this.props,\n markup: null,\n value,\n onChange: this.onChange,\n focus: this.focus\n };\n\n return (\n <Editor\n onRef={ref => {\n if (ref) {\n this.rootRef = ref;\n }\n }}\n editorRef={ref => ref && (this.editorRef = ref)}\n {...props}\n />\n );\n }\n}\n"],"file":"index.js"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -21,25 +23,27 @@ var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
21
23
 
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23
25
 
24
- 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); }
25
-
26
26
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
27
 
28
28
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
29
 
30
30
  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); } }
31
31
 
32
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
32
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33
33
 
34
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
34
+ 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 } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
35
35
 
36
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
36
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
37
+
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
39
+
40
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
37
41
 
38
42
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
39
43
 
40
- 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); }
44
+ 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; } }
41
45
 
42
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
46
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
43
47
 
44
48
  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; }
45
49
 
@@ -49,14 +53,12 @@ var size = function size(s) {
49
53
  return s ? "".concat(s, "px") : 'auto';
50
54
  };
51
55
 
52
- var Component =
53
- /*#__PURE__*/
54
- function (_React$Component) {
56
+ var Component = /*#__PURE__*/function (_React$Component) {
55
57
  _inherits(Component, _React$Component);
56
58
 
57
- function Component() {
58
- var _getPrototypeOf2;
59
+ var _super = _createSuper(Component);
59
60
 
61
+ function Component() {
60
62
  var _this;
61
63
 
62
64
  _classCallCheck(this, Component);
@@ -65,7 +67,7 @@ function (_React$Component) {
65
67
  args[_key] = arguments[_key];
66
68
  }
67
69
 
68
- _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Component)).call.apply(_getPrototypeOf2, [this].concat(args)));
70
+ _this = _super.call.apply(_super, [this].concat(args));
69
71
 
70
72
  _defineProperty(_assertThisInitialized(_this), "getWidth", function (percent) {
71
73
  var multiplier = percent / 100;
@@ -155,24 +157,24 @@ function (_React$Component) {
155
157
  log('[render] style:', size);
156
158
  var className = (0, _classnames["default"])(classes.root, active && classes.active, !loaded && classes.loading, deleteStatus === 'pending' && classes.pendingDelete);
157
159
  var progressClasses = (0, _classnames["default"])(classes.progress, loaded && classes.hideProgress);
158
- return [_react["default"].createElement("span", {
160
+ return [/*#__PURE__*/_react["default"].createElement("span", {
159
161
  key: 'sp1'
160
- }, "\xA0"), _react["default"].createElement("div", {
162
+ }, "\xA0"), /*#__PURE__*/_react["default"].createElement("div", {
161
163
  key: 'comp',
162
164
  onFocus: onFocus,
163
165
  className: className
164
- }, _react["default"].createElement(_LinearProgress["default"], {
166
+ }, /*#__PURE__*/_react["default"].createElement(_LinearProgress["default"], {
165
167
  mode: "determinate",
166
168
  value: percent > 0 ? percent : 0,
167
169
  className: progressClasses
168
- }), _react["default"].createElement("img", _extends({
170
+ }), /*#__PURE__*/_react["default"].createElement("img", _extends({
169
171
  src: src
170
172
  }, attributes, {
171
173
  ref: function ref(r) {
172
174
  return _this2.img = r;
173
175
  },
174
176
  style: size
175
- }))), _react["default"].createElement("span", {
177
+ }))), /*#__PURE__*/_react["default"].createElement("span", {
176
178
  key: 'sp2'
177
179
  }, "\xA0")];
178
180
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","resizePercent","data","get","update","set","getWidth","getHeight","w","getPercentFromWidth","equals","change","c","setNodeByKey","key","applySizeData","height","objectFit","classes","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","r","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","borderRadius","display","padding","border","boxShadow","left","top","palette","primary","main","right"],"mappings":"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","sourcesContent":["import LinearProgress from '@material-ui/core/LinearProgress';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport SlatePropTypes from 'slate-prop-types';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = s => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: SlatePropTypes.node.isRequired,\n editor: PropTypes.shape({\n change: PropTypes.func.isRequired,\n value: PropTypes.object\n }).isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n };\n\n getWidth = percent => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = percent => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = width => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, editor } = this.props;\n\n const resizePercent = node.data.get('resizePercent');\n log('[applySizeData]: resizePercent: ', resizePercent);\n\n let update = node.data;\n\n if (resizePercent) {\n update = update.set('width', this.getWidth(resizePercent));\n update = update.set('height', this.getHeight(resizePercent));\n } else {\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\n }\n }\n\n log('[applySizeData] update: ', update);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n };\n\n componentDidMount() {\n this.applySizeData();\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.get('width')),\n height: size(data.get('height')),\n objectFit: 'contain'\n };\n }\n\n render() {\n const { node, editor, classes, attributes, onFocus } = this.props;\n const active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);\n const src = node.data.get('src');\n const percent = node.data.get('percent');\n const loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(\n classes.root,\n active && classes.active,\n !loaded && classes.loading,\n deleteStatus === 'pending' && classes.pendingDelete\n );\n\n const progressClasses = classNames(classes.progress, loaded && classes.hideProgress);\n\n return [\n <span key={'sp1'}>&nbsp;</span>,\n <div key={'comp'} onFocus={onFocus} className={className}>\n <LinearProgress\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\n <img src={src} {...attributes} ref={r => (this.img = r)} style={size} />\n </div>,\n <span key={'sp2'}>&nbsp;</span>\n ];\n }\n}\n\nconst styles = theme => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear'\n },\n floatingButtonRow: {\n backgroundColor: 'white',\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: 'solid 1px #eeeeee',\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 },\n progress: {\n position: 'absolute',\n left: '0',\n width: '100%',\n top: '0%',\n transition: 'opacity 200ms linear'\n },\n hideProgress: {\n opacity: 0\n },\n loading: {\n opacity: 0.3\n },\n pendingDelete: {\n opacity: 0.3\n },\n root: {\n position: 'relative',\n border: 'solid 1px white',\n display: 'inline-block',\n transition: 'opacity 200ms linear'\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n delete: {\n position: 'absolute',\n right: 0\n }\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
1
+ {"version":3,"sources":["../../../src/plugins/image/component.jsx"],"names":["log","size","s","Component","percent","multiplier","img","naturalWidth","naturalHeight","width","floored","parseInt","toFixed","props","node","editor","resizePercent","data","get","update","set","getWidth","getHeight","w","getPercentFromWidth","equals","change","c","setNodeByKey","key","applySizeData","height","objectFit","classes","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","r","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","borderRadius","display","padding","border","boxShadow","left","top","palette","primary","main","right"],"mappings":"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","sourcesContent":["import LinearProgress from '@material-ui/core/LinearProgress';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\nimport SlatePropTypes from 'slate-prop-types';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:component');\n\nconst size = s => (s ? `${s}px` : 'auto');\n\nexport class Component extends React.Component {\n static propTypes = {\n node: SlatePropTypes.node.isRequired,\n editor: PropTypes.shape({\n change: PropTypes.func.isRequired,\n value: PropTypes.object\n }).isRequired,\n classes: PropTypes.object.isRequired,\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func\n };\n\n getWidth = percent => {\n const multiplier = percent / 100;\n return this.img.naturalWidth * multiplier;\n };\n\n getHeight = percent => {\n const multiplier = percent / 100;\n return this.img.naturalHeight * multiplier;\n };\n\n getPercentFromWidth = width => {\n var floored = (width / this.img.naturalWidth) * 4;\n return parseInt(floored.toFixed(0) * 25, 10);\n };\n\n applySizeData = () => {\n const { node, editor } = this.props;\n\n const resizePercent = node.data.get('resizePercent');\n log('[applySizeData]: resizePercent: ', resizePercent);\n\n let update = node.data;\n\n if (resizePercent) {\n update = update.set('width', this.getWidth(resizePercent));\n update = update.set('height', this.getHeight(resizePercent));\n } else {\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\n }\n }\n\n log('[applySizeData] update: ', update);\n\n if (!update.equals(node.data)) {\n editor.change(c => c.setNodeByKey(node.key, { data: update }));\n }\n };\n\n componentDidMount() {\n this.applySizeData();\n }\n\n componentDidUpdate() {\n this.applySizeData();\n }\n\n getSize(data) {\n return {\n width: size(data.get('width')),\n height: size(data.get('height')),\n objectFit: 'contain'\n };\n }\n\n render() {\n const { node, editor, classes, attributes, onFocus } = this.props;\n const active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);\n const src = node.data.get('src');\n const percent = node.data.get('percent');\n const loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n const className = classNames(\n classes.root,\n active && classes.active,\n !loaded && classes.loading,\n deleteStatus === 'pending' && classes.pendingDelete\n );\n\n const progressClasses = classNames(classes.progress, loaded && classes.hideProgress);\n\n return [\n <span key={'sp1'}>&nbsp;</span>,\n <div key={'comp'} onFocus={onFocus} className={className}>\n <LinearProgress\n mode=\"determinate\"\n value={percent > 0 ? percent : 0}\n className={progressClasses}\n />\n <img src={src} {...attributes} ref={r => (this.img = r)} style={size} />\n </div>,\n <span key={'sp2'}>&nbsp;</span>\n ];\n }\n}\n\nconst styles = theme => ({\n portal: {\n position: 'absolute',\n opacity: 0,\n transition: 'opacity 200ms linear'\n },\n floatingButtonRow: {\n backgroundColor: 'white',\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: 'solid 1px #eeeeee',\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 },\n progress: {\n position: 'absolute',\n left: '0',\n width: '100%',\n top: '0%',\n transition: 'opacity 200ms linear'\n },\n hideProgress: {\n opacity: 0\n },\n loading: {\n opacity: 0.3\n },\n pendingDelete: {\n opacity: 0.3\n },\n root: {\n position: 'relative',\n border: 'solid 1px white',\n display: 'inline-block',\n transition: 'opacity 200ms linear'\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`\n },\n delete: {\n position: 'absolute',\n right: 0\n }\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -17,23 +19,25 @@ var _styles = require("@material-ui/core/styles");
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
20
- 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); }
21
-
22
22
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
23
 
24
24
  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); } }
25
25
 
26
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
26
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
27
27
 
28
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
28
+ 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 } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
29
29
 
30
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
30
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
31
+
32
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
33
+
34
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
31
35
 
32
36
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
33
37
 
34
- 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); }
38
+ 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; } }
35
39
 
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
40
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
37
41
 
38
42
  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; }
39
43
 
@@ -44,7 +48,7 @@ var PercentButton = function PercentButton(_ref) {
44
48
  active = _ref.active,
45
49
  onClick = _ref.onClick;
46
50
  var label = "".concat(percent, "%");
47
- return _react["default"].createElement(_toolbarButtons.MarkButton, {
51
+ return /*#__PURE__*/_react["default"].createElement(_toolbarButtons.MarkButton, {
48
52
  active: active,
49
53
  onToggle: function onToggle() {
50
54
  return onClick(percent);
@@ -59,14 +63,12 @@ PercentButton.propTypes = {
59
63
  onClick: _propTypes["default"].func.isRequired
60
64
  };
61
65
 
62
- var ImageToolbar =
63
- /*#__PURE__*/
64
- function (_React$Component) {
66
+ var ImageToolbar = /*#__PURE__*/function (_React$Component) {
65
67
  _inherits(ImageToolbar, _React$Component);
66
68
 
67
- function ImageToolbar() {
68
- var _getPrototypeOf2;
69
+ var _super = _createSuper(ImageToolbar);
69
70
 
71
+ function ImageToolbar() {
70
72
  var _this;
71
73
 
72
74
  _classCallCheck(this, ImageToolbar);
@@ -75,7 +77,7 @@ function (_React$Component) {
75
77
  args[_key] = arguments[_key];
76
78
  }
77
79
 
78
- _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ImageToolbar)).call.apply(_getPrototypeOf2, [this].concat(args)));
80
+ _this = _super.call.apply(_super, [this].concat(args));
79
81
 
80
82
  _defineProperty(_assertThisInitialized(_this), "onPercentClick", function (percent) {
81
83
  log('[onPercentClick]: percent:', percent);
@@ -92,21 +94,21 @@ function (_React$Component) {
92
94
  var _this$props = this.props,
93
95
  classes = _this$props.classes,
94
96
  percent = _this$props.percent;
95
- return _react["default"].createElement("div", {
97
+ return /*#__PURE__*/_react["default"].createElement("div", {
96
98
  className: classes.holder
97
- }, _react["default"].createElement(PercentButton, {
99
+ }, /*#__PURE__*/_react["default"].createElement(PercentButton, {
98
100
  percent: 25,
99
101
  active: percent === 25,
100
102
  onClick: this.onPercentClick
101
- }), _react["default"].createElement(PercentButton, {
103
+ }), /*#__PURE__*/_react["default"].createElement(PercentButton, {
102
104
  percent: 50,
103
105
  active: percent === 50,
104
106
  onClick: this.onPercentClick
105
- }), _react["default"].createElement(PercentButton, {
107
+ }), /*#__PURE__*/_react["default"].createElement(PercentButton, {
106
108
  active: percent === 75,
107
109
  percent: 75,
108
110
  onClick: this.onPercentClick
109
- }), _react["default"].createElement(PercentButton, {
111
+ }), /*#__PURE__*/_react["default"].createElement(PercentButton, {
110
112
  percent: 100,
111
113
  active: percent === 100 || !percent,
112
114
  onClick: this.onPercentClick
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/image-toolbar.jsx"],"names":["log","PercentButton","percent","active","onClick","label","propTypes","PropTypes","number","isRequired","bool","func","ImageToolbar","props","onChange","classes","holder","onPercentClick","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,oDAAN,CAAZ;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAAkC;AAAA,MAA/BC,OAA+B,QAA/BA,OAA+B;AAAA,MAAtBC,MAAsB,QAAtBA,MAAsB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AACtD,MAAMC,KAAK,aAAMH,OAAN,MAAX;AACA,SACE,gCAAC,0BAAD;AAAY,IAAA,MAAM,EAAEC,MAApB;AAA4B,IAAA,QAAQ,EAAE;AAAA,aAAMC,OAAO,CAACF,OAAD,CAAb;AAAA,KAAtC;AAA8D,IAAA,KAAK,EAAEG;AAArE,KACGA,KADH,CADF;AAKD,CAPD;;AASAJ,aAAa,CAACK,SAAd,GAA0B;AACxBJ,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADF;AAExBN,EAAAA,MAAM,EAAEI,sBAAUG,IAAV,CAAeD,UAFC;AAGxBL,EAAAA,OAAO,EAAEG,sBAAUI,IAAV,CAAeF;AAHA,CAA1B;;IAMaG,Y;;;;;;;;;;;;;;;;;;qEAOM,UAAAV,OAAO,EAAI;AAC1BF,MAAAA,GAAG,CAAC,4BAAD,EAA+BE,OAA/B,CAAH;;AACA,YAAKW,KAAL,CAAWC,QAAX,CAAoBZ,OAApB;AACD,K;;;;;;;6BAEQ;AAAA,wBACsB,KAAKW,KAD3B;AAAA,UACCE,OADD,eACCA,OADD;AAAA,UACUb,OADV,eACUA,OADV;AAEP,aACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACC;AAAxB,SACE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEd,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QADF,EAEE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAFF,EAGE,gCAAC,aAAD;AAAe,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAnC;AAAuC,QAAA,OAAO,EAAE,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAHF,EAIE,gCAAC,aAAD;AACE,QAAA,OAAO,EAAE,GADX;AAEE,QAAA,MAAM,EAAEf,OAAO,KAAK,GAAZ,IAAmB,CAACA,OAF9B;AAGE,QAAA,OAAO,EAAE,KAAKe;AAHhB,QAJF,CADF;AAYD;;;;EA1B+BC,kBAAMC,S;;;;gBAA3BP,Y,eACQ;AACjBV,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADT;AAEjBK,EAAAA,QAAQ,EAAEP,sBAAUI,IAAV,CAAeF,UAFR;AAGjBM,EAAAA,OAAO,EAAER,sBAAUa,MAAV,CAAiBX;AAHT,C;;AA4BrB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBN,IAAAA,MAAM,EAAE;AACNO,MAAAA,WAAW,EAAED,KAAK,CAACE,OAAN,CAAcC,IADrB;AAENC,MAAAA,OAAO,EAAE,MAFH;AAGNC,MAAAA,UAAU,EAAE;AAHN;AADe,GAAL;AAAA,CAApB;;eAQe,wBAAWN,MAAX,EAAmBT,YAAnB,C","sourcesContent":["import { MarkButton } from '../toolbar/toolbar-buttons';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst PercentButton = ({ percent, active, onClick }) => {\n const label = `${percent}%`;\n return (\n <MarkButton active={active} onToggle={() => onClick(percent)} label={label}>\n {label}\n </MarkButton>\n );\n};\n\nPercentButton.propTypes = {\n percent: PropTypes.number.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n percent: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n onPercentClick = percent => {\n log('[onPercentClick]: percent:', percent);\n this.props.onChange(percent);\n };\n\n render() {\n const { classes, percent } = this.props;\n return (\n <div className={classes.holder}>\n <PercentButton percent={25} active={percent === 25} onClick={this.onPercentClick} />\n <PercentButton percent={50} active={percent === 50} onClick={this.onPercentClick} />\n <PercentButton active={percent === 75} percent={75} onClick={this.onPercentClick} />\n <PercentButton\n percent={100}\n active={percent === 100 || !percent}\n onClick={this.onPercentClick}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n }\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"file":"image-toolbar.js"}
1
+ {"version":3,"sources":["../../../src/plugins/image/image-toolbar.jsx"],"names":["log","PercentButton","percent","active","onClick","label","propTypes","PropTypes","number","isRequired","bool","func","ImageToolbar","props","onChange","classes","holder","onPercentClick","React","Component","object","styles","theme","paddingLeft","spacing","unit","display","alignItems"],"mappings":";;;;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,oDAAN,CAAZ;;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAAkC;AAAA,MAA/BC,OAA+B,QAA/BA,OAA+B;AAAA,MAAtBC,MAAsB,QAAtBA,MAAsB;AAAA,MAAdC,OAAc,QAAdA,OAAc;AACtD,MAAMC,KAAK,aAAMH,OAAN,MAAX;AACA,sBACE,gCAAC,0BAAD;AAAY,IAAA,MAAM,EAAEC,MAApB;AAA4B,IAAA,QAAQ,EAAE;AAAA,aAAMC,OAAO,CAACF,OAAD,CAAb;AAAA,KAAtC;AAA8D,IAAA,KAAK,EAAEG;AAArE,KACGA,KADH,CADF;AAKD,CAPD;;AASAJ,aAAa,CAACK,SAAd,GAA0B;AACxBJ,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADF;AAExBN,EAAAA,MAAM,EAAEI,sBAAUG,IAAV,CAAeD,UAFC;AAGxBL,EAAAA,OAAO,EAAEG,sBAAUI,IAAV,CAAeF;AAHA,CAA1B;;IAMaG,Y;;;;;;;;;;;;;;;;qEAOM,UAAAV,OAAO,EAAI;AAC1BF,MAAAA,GAAG,CAAC,4BAAD,EAA+BE,OAA/B,CAAH;;AACA,YAAKW,KAAL,CAAWC,QAAX,CAAoBZ,OAApB;AACD,K;;;;;;;WAED,kBAAS;AACP,wBAA6B,KAAKW,KAAlC;AAAA,UAAQE,OAAR,eAAQA,OAAR;AAAA,UAAiBb,OAAjB,eAAiBA,OAAjB;AACA,0BACE;AAAK,QAAA,SAAS,EAAEa,OAAO,CAACC;AAAxB,sBACE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEd,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QADF,eAEE,gCAAC,aAAD;AAAe,QAAA,OAAO,EAAE,EAAxB;AAA4B,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAFF,eAGE,gCAAC,aAAD;AAAe,QAAA,MAAM,EAAEf,OAAO,KAAK,EAAnC;AAAuC,QAAA,OAAO,EAAE,EAAhD;AAAoD,QAAA,OAAO,EAAE,KAAKe;AAAlE,QAHF,eAIE,gCAAC,aAAD;AACE,QAAA,OAAO,EAAE,GADX;AAEE,QAAA,MAAM,EAAEf,OAAO,KAAK,GAAZ,IAAmB,CAACA,OAF9B;AAGE,QAAA,OAAO,EAAE,KAAKe;AAHhB,QAJF,CADF;AAYD;;;;EA1B+BC,kBAAMC,S;;;;gBAA3BP,Y,eACQ;AACjBV,EAAAA,OAAO,EAAEK,sBAAUC,MAAV,CAAiBC,UADT;AAEjBK,EAAAA,QAAQ,EAAEP,sBAAUI,IAAV,CAAeF,UAFR;AAGjBM,EAAAA,OAAO,EAAER,sBAAUa,MAAV,CAAiBX;AAHT,C;;AA4BrB,IAAMY,MAAM,GAAG,SAATA,MAAS,CAAAC,KAAK;AAAA,SAAK;AACvBN,IAAAA,MAAM,EAAE;AACNO,MAAAA,WAAW,EAAED,KAAK,CAACE,OAAN,CAAcC,IADrB;AAENC,MAAAA,OAAO,EAAE,MAFH;AAGNC,MAAAA,UAAU,EAAE;AAHN;AADe,GAAL;AAAA,CAApB;;eAQe,wBAAWN,MAAX,EAAmBT,YAAnB,C","sourcesContent":["import { MarkButton } from '../toolbar/toolbar-buttons';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst log = debug('@pie-lib:editable-html:plugins:image:image-toolbar');\n\nconst PercentButton = ({ percent, active, onClick }) => {\n const label = `${percent}%`;\n return (\n <MarkButton active={active} onToggle={() => onClick(percent)} label={label}>\n {label}\n </MarkButton>\n );\n};\n\nPercentButton.propTypes = {\n percent: PropTypes.number.isRequired,\n active: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired\n};\n\nexport class ImageToolbar extends React.Component {\n static propTypes = {\n percent: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired\n };\n\n onPercentClick = percent => {\n log('[onPercentClick]: percent:', percent);\n this.props.onChange(percent);\n };\n\n render() {\n const { classes, percent } = this.props;\n return (\n <div className={classes.holder}>\n <PercentButton percent={25} active={percent === 25} onClick={this.onPercentClick} />\n <PercentButton percent={50} active={percent === 50} onClick={this.onPercentClick} />\n <PercentButton active={percent === 75} percent={75} onClick={this.onPercentClick} />\n <PercentButton\n percent={100}\n active={percent === 100 || !percent}\n onClick={this.onPercentClick}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n holder: {\n paddingLeft: theme.spacing.unit,\n display: 'flex',\n alignItems: 'center'\n }\n});\n\nexport default withStyles(styles)(ImageToolbar);\n"],"file":"image-toolbar.js"}
@@ -22,9 +22,9 @@ var _debug = _interopRequireDefault(require("debug"));
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
24
 
25
- 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; }
25
+ 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; }
26
26
 
27
- 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; }
27
+ 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) { _defineProperty(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; }
28
28
 
29
29
  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; }
30
30
 
@@ -32,7 +32,7 @@ var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image');
32
32
 
33
33
  function ImagePlugin(opts) {
34
34
  var toolbar = opts.insertImageRequested && {
35
- icon: _react["default"].createElement(_Image["default"], null),
35
+ icon: /*#__PURE__*/_react["default"].createElement(_Image["default"], null),
36
36
  onClick: function onClick(value, onChange) {
37
37
  log('[toolbar] onClick');
38
38
 
@@ -58,7 +58,7 @@ function ImagePlugin(opts) {
58
58
  var percent = node.data.get('resizePercent');
59
59
 
60
60
  var onChange = function onChange(resizePercent) {
61
- var update = _objectSpread({}, node.data.toObject(), {
61
+ var update = _objectSpread(_objectSpread({}, node.data.toObject()), {}, {
62
62
  resizePercent: resizePercent
63
63
  });
64
64
 
@@ -69,7 +69,7 @@ function ImagePlugin(opts) {
69
69
  };
70
70
 
71
71
  var Tb = function Tb() {
72
- return _react["default"].createElement(_imageToolbar["default"], {
72
+ return /*#__PURE__*/_react["default"].createElement(_imageToolbar["default"], {
73
73
  percent: percent || 100,
74
74
  onChange: onChange
75
75
  });
@@ -130,7 +130,7 @@ function ImagePlugin(opts) {
130
130
  onFocus: opts.onFocus,
131
131
  onBlur: opts.onBlur
132
132
  }, props);
133
- return _react["default"].createElement(_component["default"], all);
133
+ return /*#__PURE__*/_react["default"].createElement(_component["default"], all);
134
134
  }
135
135
  },
136
136
  normalizeNode: function normalizeNode(node) {
@@ -212,7 +212,7 @@ var serialization = {
212
212
  src: src,
213
213
  style: style
214
214
  };
215
- return _react["default"].createElement("img", props);
215
+ return /*#__PURE__*/_react["default"].createElement("img", props);
216
216
  }
217
217
  };
218
218
  exports.serialization = serialization;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/image/index.jsx"],"names":["log","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","percent","get","resizePercent","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","parseInt","replace","out","getAttribute","serialize","objectFit"],"mappings":"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","sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const percent = node.data.get('resizePercent');\n\n const onChange = resizePercent => {\n const update = {\n ...node.data.toObject(),\n resizePercent\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => <ImageToolbar percent={percent || 100} onChange={onChange} />;\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style\n };\n\n return <img {...props} />;\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/plugins/image/index.jsx"],"names":["log","ImagePlugin","opts","toolbar","insertImageRequested","icon","onClick","value","onChange","inline","Inline","create","type","isVoid","data","loaded","src","undefined","change","insertInline","getValue","InsertImageHandler","supports","node","object","customToolbar","onToolbarDone","percent","get","resizePercent","update","toObject","setNodeByKey","key","Tb","showDone","name","deleteNode","e","preventDefault","onDelete","merge","Data","deleteStatus","err","v","removeNodeByKey","stopReset","imgPendingInsertion","document","findDescendant","n","renderNode","props","all","Object","assign","onFocus","onBlur","normalizeNode","textNodeMap","updateNodesArray","index","d","text","push","length","withoutNormalization","forEach","insertTextByKey","serialization","deserialize","el","tagName","toLowerCase","style","width","height","parseInt","replace","out","getAttribute","serialize","objectFit"],"mappings":"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","sourcesContent":["import { Data, Inline } from 'slate';\n\nimport Image from '@material-ui/icons/Image';\nimport ImageComponent from './component';\nimport ImageToolbar from './image-toolbar';\nimport InsertImageHandler from './insert-image-handler';\nimport React from 'react';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:editable-html:plugins:image');\n\nexport default function ImagePlugin(opts) {\n const toolbar = opts.insertImageRequested && {\n icon: <Image />,\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const inline = Inline.create({\n type: 'image',\n isVoid: true,\n data: {\n loaded: false,\n src: undefined\n }\n });\n\n const change = value.change().insertInline(inline);\n onChange(change);\n opts.insertImageRequested(getValue => new InsertImageHandler(inline, getValue, onChange));\n },\n supports: node => node.object === 'inline' && node.type === 'image',\n customToolbar: (node, value, onToolbarDone) => {\n const percent = node.data.get('resizePercent');\n\n const onChange = resizePercent => {\n const update = {\n ...node.data.toObject(),\n resizePercent\n };\n\n const change = value.change().setNodeByKey(node.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const Tb = () => <ImageToolbar percent={percent || 100} onChange={onChange} />;\n return Tb;\n },\n showDone: true\n };\n\n return {\n name: 'image',\n toolbar,\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n if (opts.onDelete) {\n const update = node.data.merge(Data.create({ deleteStatus: 'pending' }));\n\n let change = value.change().setNodeByKey(node.key, { data: update });\n\n onChange(change);\n opts.onDelete(node.data.get('src'), (err, v) => {\n if (!err) {\n change = v.change().removeNodeByKey(node.key);\n } else {\n log('[error]: ', err);\n change = v\n .change()\n .setNodeByKey(node.key, node.data.merge(Data.create({ deleteStatus: 'failed' })));\n }\n onChange(change);\n });\n } else {\n let change = value.change().removeNodeByKey(node.key);\n onChange(change);\n }\n },\n stopReset: value => {\n const imgPendingInsertion = value.document.findDescendant(n => {\n if (n.type !== 'image') {\n return;\n }\n return n.data.get('loaded') === false;\n });\n /** don't reset if there is an image pending insertion */\n return imgPendingInsertion !== undefined && imgPendingInsertion !== null;\n },\n renderNode(props) {\n if (props.node.type === 'image') {\n const all = Object.assign(\n {\n onDelete: opts.onDelete,\n onFocus: opts.onFocus,\n onBlur: opts.onBlur\n },\n props\n );\n return <ImageComponent {...all} />;\n }\n },\n normalizeNode: node => {\n const textNodeMap = {};\n const updateNodesArray = [];\n let index = 0;\n\n if (node.object !== 'document') return;\n\n node.findDescendant(d => {\n if (d.object === 'text') {\n textNodeMap[index] = d;\n }\n\n if (d.type === 'image') {\n if (index > 0 && textNodeMap[index - 1] && textNodeMap[index - 1].text === '') {\n updateNodesArray.push(textNodeMap[index - 1]);\n }\n }\n\n index++;\n });\n\n if (!updateNodesArray.length) return;\n\n return change => {\n change.withoutNormalization(() => {\n updateNodesArray.forEach(n => change.insertTextByKey(n.key, 0, ' '));\n });\n };\n }\n };\n}\n\nexport const serialization = {\n deserialize(el /*, next*/) {\n const name = el.tagName.toLowerCase();\n if (name !== 'img') return;\n\n log('deserialize: ', name);\n const style = el.style || { width: '', height: '' };\n const width = parseInt(style.width.replace('px', ''), 10) || null;\n const height = parseInt(style.height.replace('px', ''), 10) || null;\n\n const out = {\n object: 'inline',\n type: 'image',\n isVoid: true,\n data: {\n src: el.getAttribute('src'),\n width,\n height\n }\n };\n log('return object: ', out);\n return out;\n },\n serialize(object /*, children*/) {\n if (object.type !== 'image') return;\n\n const { data } = object;\n const src = data.get('src');\n const width = data.get('width');\n const height = data.get('height');\n const style = {};\n if (width) {\n style.width = `${width}px`;\n }\n\n if (height) {\n style.height = `${height}px`;\n }\n\n style.objectFit = 'contain';\n\n const props = {\n src,\n style\n };\n\n return <img {...props} />;\n }\n};\n"],"file":"index.js"}