@pie-lib/editable-html 11.21.2 → 11.21.3-next.155

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 (159) hide show
  1. package/CHANGELOG.md +6 -76
  2. package/esm/package.json +3 -0
  3. package/lib/block-tags.js +2 -3
  4. package/lib/block-tags.js.map +1 -1
  5. package/lib/constants.js +3 -6
  6. package/lib/constants.js.map +1 -1
  7. package/lib/editor.js +350 -481
  8. package/lib/editor.js.map +1 -1
  9. package/lib/index.js +18 -79
  10. package/lib/index.js.map +1 -1
  11. package/lib/parse-html.js +7 -7
  12. package/lib/parse-html.js.map +1 -1
  13. package/lib/plugins/characters/custom-popper.js +28 -44
  14. package/lib/plugins/characters/custom-popper.js.map +1 -1
  15. package/lib/plugins/characters/index.js +23 -63
  16. package/lib/plugins/characters/index.js.map +1 -1
  17. package/lib/plugins/characters/utils.js +3 -6
  18. package/lib/plugins/characters/utils.js.map +1 -1
  19. package/lib/plugins/css/icons/index.js +13 -25
  20. package/lib/plugins/css/icons/index.js.map +1 -1
  21. package/lib/plugins/css/index.js +34 -93
  22. package/lib/plugins/css/index.js.map +1 -1
  23. package/lib/plugins/customPlugin/index.js +10 -26
  24. package/lib/plugins/customPlugin/index.js.map +1 -1
  25. package/lib/plugins/html/icons/index.js +17 -25
  26. package/lib/plugins/html/icons/index.js.map +1 -1
  27. package/lib/plugins/html/index.js +4 -13
  28. package/lib/plugins/html/index.js.map +1 -1
  29. package/lib/plugins/image/alt-dialog.js +20 -49
  30. package/lib/plugins/image/alt-dialog.js.map +1 -1
  31. package/lib/plugins/image/component.js +118 -194
  32. package/lib/plugins/image/component.js.map +1 -1
  33. package/lib/plugins/image/image-toolbar.js +48 -88
  34. package/lib/plugins/image/image-toolbar.js.map +1 -1
  35. package/lib/plugins/image/index.js +6 -46
  36. package/lib/plugins/image/index.js.map +1 -1
  37. package/lib/plugins/image/insert-image-handler.js +10 -31
  38. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  39. package/lib/plugins/index.js +46 -106
  40. package/lib/plugins/index.js.map +1 -1
  41. package/lib/plugins/list/index.js +27 -73
  42. package/lib/plugins/list/index.js.map +1 -1
  43. package/lib/plugins/math/index.js +64 -116
  44. package/lib/plugins/math/index.js.map +1 -1
  45. package/lib/plugins/media/index.js +27 -84
  46. package/lib/plugins/media/index.js.map +1 -1
  47. package/lib/plugins/media/media-dialog.js +192 -307
  48. package/lib/plugins/media/media-dialog.js.map +1 -1
  49. package/lib/plugins/media/media-toolbar.js +40 -65
  50. package/lib/plugins/media/media-toolbar.js.map +1 -1
  51. package/lib/plugins/media/media-wrapper.js +20 -49
  52. package/lib/plugins/media/media-wrapper.js.map +1 -1
  53. package/lib/plugins/rendering/index.js +5 -15
  54. package/lib/plugins/rendering/index.js.map +1 -1
  55. package/lib/plugins/respArea/drag-in-the-blank/choice.js +233 -251
  56. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  57. package/lib/plugins/respArea/drag-in-the-blank/index.js +17 -59
  58. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  59. package/lib/plugins/respArea/drag-in-the-blank/utils.js +38 -0
  60. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -0
  61. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -10
  62. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  63. package/lib/plugins/respArea/icons/index.js +22 -45
  64. package/lib/plugins/respArea/icons/index.js.map +1 -1
  65. package/lib/plugins/respArea/index.js +5 -59
  66. package/lib/plugins/respArea/index.js.map +1 -1
  67. package/lib/plugins/respArea/inline-dropdown/index.js +2 -10
  68. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  69. package/lib/plugins/respArea/math-templated/index.js +91 -109
  70. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  71. package/lib/plugins/respArea/utils.js +12 -42
  72. package/lib/plugins/respArea/utils.js.map +1 -1
  73. package/lib/plugins/table/CustomTablePlugin.js +24 -41
  74. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  75. package/lib/plugins/table/icons/index.js +21 -35
  76. package/lib/plugins/table/icons/index.js.map +1 -1
  77. package/lib/plugins/table/index.js +48 -118
  78. package/lib/plugins/table/index.js.map +1 -1
  79. package/lib/plugins/table/table-toolbar.js +37 -86
  80. package/lib/plugins/table/table-toolbar.js.map +1 -1
  81. package/lib/plugins/textAlign/icons/index.js +25 -64
  82. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  83. package/lib/plugins/textAlign/index.js +0 -8
  84. package/lib/plugins/textAlign/index.js.map +1 -1
  85. package/lib/plugins/toolbar/default-toolbar.js +30 -79
  86. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  87. package/lib/plugins/toolbar/done-button.js +16 -34
  88. package/lib/plugins/toolbar/done-button.js.map +1 -1
  89. package/lib/plugins/toolbar/editor-and-toolbar.js +174 -202
  90. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  91. package/lib/plugins/toolbar/index.js +0 -5
  92. package/lib/plugins/toolbar/index.js.map +1 -1
  93. package/lib/plugins/toolbar/toolbar-buttons.js +59 -108
  94. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  95. package/lib/plugins/toolbar/toolbar.js +93 -162
  96. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  97. package/lib/plugins/utils.js +5 -25
  98. package/lib/plugins/utils.js.map +1 -1
  99. package/lib/serialization.js +47 -153
  100. package/lib/serialization.js.map +1 -1
  101. package/lib/shared/alert-dialog.js +35 -42
  102. package/lib/theme.js +1 -2
  103. package/lib/theme.js.map +1 -1
  104. package/package.json +26 -14
  105. package/src/__tests__/editor-utils.test.js +162 -0
  106. package/src/__tests__/utils.js +1 -1
  107. package/src/editor.jsx +175 -153
  108. package/src/index.jsx +0 -3
  109. package/src/plugins/characters/custom-popper.js +25 -25
  110. package/src/plugins/characters/index.jsx +15 -5
  111. package/src/plugins/css/icons/index.jsx +11 -13
  112. package/src/plugins/css/index.jsx +16 -11
  113. package/src/plugins/html/icons/index.jsx +17 -14
  114. package/src/plugins/image/__tests__/component.test.jsx +61 -29
  115. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +69 -17
  116. package/src/plugins/image/__tests__/image-toolbar.test.jsx +6 -4
  117. package/src/plugins/image/alt-dialog.jsx +9 -8
  118. package/src/plugins/image/component.jsx +68 -92
  119. package/src/plugins/image/image-toolbar.jsx +31 -28
  120. package/src/plugins/image/index.jsx +1 -1
  121. package/src/plugins/index.jsx +12 -10
  122. package/src/plugins/math/__tests__/index.test.jsx +45 -26
  123. package/src/plugins/math/index.jsx +1 -1
  124. package/src/plugins/media/index.jsx +6 -5
  125. package/src/plugins/media/media-dialog.js +65 -76
  126. package/src/plugins/media/media-toolbar.jsx +32 -33
  127. package/src/plugins/media/media-wrapper.jsx +10 -13
  128. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +240 -167
  129. package/src/plugins/respArea/drag-in-the-blank/index.jsx +27 -56
  130. package/src/plugins/respArea/drag-in-the-blank/utils.js +14 -0
  131. package/src/plugins/respArea/icons/index.jsx +16 -16
  132. package/src/plugins/respArea/math-templated/index.jsx +88 -89
  133. package/src/plugins/respArea/utils.jsx +5 -3
  134. package/src/plugins/table/__tests__/table-toolbar.test.jsx +40 -7
  135. package/src/plugins/table/icons/index.jsx +16 -16
  136. package/src/plugins/table/index.jsx +35 -19
  137. package/src/plugins/table/table-toolbar.jsx +18 -19
  138. package/src/plugins/textAlign/icons/index.jsx +13 -4
  139. package/src/plugins/textAlign/index.jsx +0 -3
  140. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +102 -69
  141. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +14 -11
  142. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +81 -35
  143. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +44 -38
  144. package/src/plugins/toolbar/default-toolbar.jsx +18 -21
  145. package/src/plugins/toolbar/done-button.jsx +16 -22
  146. package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -158
  147. package/src/plugins/toolbar/toolbar-buttons.jsx +30 -46
  148. package/src/plugins/toolbar/toolbar.jsx +57 -79
  149. package/src/serialization.jsx +3 -3
  150. package/src/__tests__/editor.test.jsx +0 -363
  151. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
  152. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
  153. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
  154. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
  155. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
  156. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
  157. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
  158. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
  159. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
@@ -1,92 +1,116 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.Component = void 0;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
24
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _LinearProgress = _interopRequireDefault(require("@material-ui/core/LinearProgress"));
27
-
15
+ var _LinearProgress = _interopRequireDefault(require("@mui/material/LinearProgress"));
28
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
17
  var _react = _interopRequireDefault(require("react"));
31
-
32
- var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
18
  var _debug = _interopRequireDefault(require("debug"));
35
-
36
- var _styles = require("@material-ui/core/styles");
37
-
19
+ var _styles = require("@mui/material/styles");
38
20
  var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
39
-
40
- 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); }; }
41
-
42
- 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; } }
43
-
21
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
23
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
44
25
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:image:component');
45
-
46
26
  var size = function size(s) {
47
27
  return s ? "".concat(s, "px") : 'auto';
48
28
  };
49
-
50
- var Component = /*#__PURE__*/function (_React$Component) {
51
- (0, _inherits2["default"])(Component, _React$Component);
52
-
53
- var _super = _createSuper(Component);
54
-
29
+ var StyledImageRoot = (0, _styles.styled)('div')(function (_ref) {
30
+ var theme = _ref.theme,
31
+ loading = _ref.loading;
32
+ return _objectSpread({
33
+ position: 'relative',
34
+ border: "solid 1px ".concat(theme.palette.common.white),
35
+ display: 'flex',
36
+ transition: 'opacity 200ms linear'
37
+ }, loading && {
38
+ opacity: 0.3
39
+ });
40
+ });
41
+ var StyledProgress = (0, _styles.styled)(_LinearProgress["default"])(function (_ref2) {
42
+ var hide = _ref2.hide;
43
+ return _objectSpread({
44
+ position: 'absolute',
45
+ left: '0',
46
+ width: 'fit-content',
47
+ top: '0%',
48
+ transition: 'opacity 200ms linear'
49
+ }, hide && {
50
+ opacity: 0
51
+ });
52
+ });
53
+ var StyledImageContainer = (0, _styles.styled)('div')(function () {
54
+ return {
55
+ position: 'relative',
56
+ width: 'fit-content',
57
+ display: 'flex',
58
+ alignItems: 'center',
59
+ '&&:hover > .resize': {
60
+ display: 'block'
61
+ }
62
+ };
63
+ });
64
+ var StyledImage = (0, _styles.styled)('img')(function (_ref3) {
65
+ var theme = _ref3.theme,
66
+ active = _ref3.active;
67
+ return _objectSpread({}, active && {
68
+ border: "solid 1px ".concat(theme.palette.primary.main)
69
+ });
70
+ });
71
+ var StyledResize = (0, _styles.styled)('div')(function (_ref4) {
72
+ var theme = _ref4.theme;
73
+ return {
74
+ backgroundColor: theme.palette.primary.main,
75
+ cursor: 'col-resize',
76
+ height: '35px',
77
+ width: '5px',
78
+ borderRadius: 8,
79
+ marginLeft: '5px',
80
+ marginRight: '10px',
81
+ display: 'none'
82
+ };
83
+ });
84
+ var Component = exports.Component = /*#__PURE__*/function (_React$Component) {
55
85
  function Component() {
56
86
  var _this;
57
-
58
87
  (0, _classCallCheck2["default"])(this, Component);
59
-
60
88
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
61
89
  args[_key] = arguments[_key];
62
90
  }
63
-
64
- _this = _super.call.apply(_super, [this].concat(args));
65
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getWidth", function (percent) {
91
+ _this = _callSuper(this, Component, [].concat(args));
92
+ (0, _defineProperty2["default"])(_this, "getWidth", function (percent) {
66
93
  var multiplier = percent / 100;
67
94
  return _this.img.naturalWidth * multiplier;
68
95
  });
69
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getHeight", function (percent) {
96
+ (0, _defineProperty2["default"])(_this, "getHeight", function (percent) {
70
97
  var multiplier = percent / 100;
71
98
  return _this.img.naturalHeight * multiplier;
72
99
  });
73
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getPercentFromWidth", function (width) {
100
+ (0, _defineProperty2["default"])(_this, "getPercentFromWidth", function (width) {
74
101
  var floored = width / _this.img.naturalWidth * 4;
75
102
  return parseInt(floored.toFixed(0) * 25, 10);
76
103
  });
77
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "applySizeData", function () {
104
+ (0, _defineProperty2["default"])(_this, "applySizeData", function () {
78
105
  var _this$props = _this.props,
79
- node = _this$props.node,
80
- editor = _this$props.editor;
106
+ node = _this$props.node,
107
+ editor = _this$props.editor;
81
108
  var update = node.data;
82
109
  var w = update.get('width');
83
-
84
110
  if (w) {
85
111
  update = update.set('resizePercent', _this.getPercentFromWidth(w));
86
112
  }
87
-
88
113
  log('[applySizeData] update: ', update);
89
-
90
114
  if (!update.equals(node.data)) {
91
115
  editor.change(function (c) {
92
116
  return c.setNodeByKey(node.key, {
@@ -95,49 +119,44 @@ var Component = /*#__PURE__*/function (_React$Component) {
95
119
  });
96
120
  }
97
121
  });
98
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initialiseResize", function () {
122
+ (0, _defineProperty2["default"])(_this, "initialiseResize", function () {
99
123
  window.addEventListener('mousemove', _this.startResizing, false);
100
124
  window.addEventListener('mouseup', _this.stopResizing, false);
101
125
  });
102
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "loadImage", function () {
103
- var _ref = _this.props || {},
104
- maxImageWidth = _ref.maxImageWidth,
105
- maxImageHeight = _ref.maxImageHeight;
106
-
126
+ (0, _defineProperty2["default"])(_this, "loadImage", function () {
127
+ var _ref5 = _this.props || {},
128
+ maxImageWidth = _ref5.maxImageWidth,
129
+ maxImageHeight = _ref5.maxImageHeight;
107
130
  maxImageWidth = maxImageWidth || 700;
108
131
  maxImageHeight = maxImageHeight || 900;
109
- var box = _this.img; //on first load
132
+ var box = _this.img;
110
133
 
134
+ //on first load
111
135
  if (!box.style.width || box.style.width === 'auto') {
112
136
  var dimensions = {
113
137
  width: box && box.naturalWidth || 100,
114
138
  height: box && box.naturalHeight || 100
115
139
  };
116
-
117
140
  var _this$updateImageDime = _this.updateImageDimensions(dimensions, {
118
- width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,
119
- height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight
120
- }, true),
121
- width = _this$updateImageDime.width,
122
- height = _this$updateImageDime.height;
123
-
141
+ width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,
142
+ height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight
143
+ }, true),
144
+ width = _this$updateImageDime.width,
145
+ height = _this$updateImageDime.height;
124
146
  box.style.width = "".concat(width, "px");
125
147
  box.style.height = "".concat(height, "px");
126
-
127
148
  _this.setState({
128
149
  dimensions: {
129
150
  height: height,
130
151
  width: width
131
152
  }
132
153
  });
133
-
134
154
  var _this$props2 = _this.props,
135
- node = _this$props2.node,
136
- editor = _this$props2.editor;
155
+ node = _this$props2.node,
156
+ editor = _this$props2.editor;
137
157
  var update = node.data;
138
158
  update = update.set('width', width);
139
159
  update = update.set('height', height);
140
-
141
160
  if (!update.equals(node.data)) {
142
161
  editor.change(function (c) {
143
162
  return c.setNodeByKey(node.key, {
@@ -147,42 +166,36 @@ var Component = /*#__PURE__*/function (_React$Component) {
147
166
  }
148
167
  }
149
168
  });
150
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "startResizing", function (e) {
169
+ (0, _defineProperty2["default"])(_this, "startResizing", function (e) {
151
170
  var bounds = e.target.getBoundingClientRect();
152
171
  var box = _this.img;
153
172
  var dimensions = {
154
173
  width: box && box.naturalWidth || 100,
155
174
  height: box && box.naturalHeight || 100
156
175
  };
157
-
158
176
  var _this$updateImageDime2 = _this.updateImageDimensions(dimensions, {
159
- width: e.clientX - bounds.left,
160
- height: e.clientY - bounds.top
161
- }, true),
162
- width = _this$updateImageDime2.width,
163
- height = _this$updateImageDime2.height;
164
-
177
+ width: e.clientX - bounds.left,
178
+ height: e.clientY - bounds.top
179
+ }, true),
180
+ width = _this$updateImageDime2.width,
181
+ height = _this$updateImageDime2.height;
165
182
  var hasMinimumWidth = width > 50 && height > 50;
166
183
  var hasDimensionsConstraints = width <= 700 && height <= 900;
167
-
168
184
  if (hasMinimumWidth && hasDimensionsConstraints && box) {
169
185
  box.style.width = "".concat(width, "px");
170
186
  box.style.height = "".concat(height, "px");
171
-
172
187
  _this.setState({
173
188
  dimensions: {
174
189
  height: height,
175
190
  width: width
176
191
  }
177
192
  });
178
-
179
193
  var _this$props3 = _this.props,
180
- node = _this$props3.node,
181
- editor = _this$props3.editor;
194
+ node = _this$props3.node,
195
+ editor = _this$props3.editor;
182
196
  var update = node.data;
183
197
  update = update.set('width', width);
184
198
  update = update.set('height', height);
185
-
186
199
  if (!update.equals(node.data)) {
187
200
  editor.change(function (c) {
188
201
  return c.setNodeByKey(node.key, {
@@ -192,31 +205,30 @@ var Component = /*#__PURE__*/function (_React$Component) {
192
205
  }
193
206
  }
194
207
  });
195
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "stopResizing", function () {
208
+ (0, _defineProperty2["default"])(_this, "stopResizing", function () {
196
209
  window.removeEventListener('mousemove', _this.startResizing, false);
197
210
  window.removeEventListener('mouseup', _this.stopResizing, false);
198
211
  });
199
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateImageDimensions", function (initialDim, nextDim, keepAspectRatio, resizeType) {
212
+ (0, _defineProperty2["default"])(_this, "updateImageDimensions", function (initialDim, nextDim, keepAspectRatio, resizeType) {
200
213
  // if we want to keep image aspect ratio
201
214
  if (keepAspectRatio) {
202
215
  var imageAspectRatio = initialDim.width / initialDim.height;
203
-
204
216
  if (resizeType === 'height') {
205
217
  // if we want to change image height => we update the width accordingly
206
218
  return {
207
219
  width: nextDim.height * imageAspectRatio,
208
220
  height: nextDim.height
209
221
  };
210
- } // if we want to change image width => we update the height accordingly
211
-
222
+ }
212
223
 
224
+ // if we want to change image width => we update the height accordingly
213
225
  return {
214
226
  width: nextDim.width,
215
227
  height: nextDim.width / imageAspectRatio
216
228
  };
217
- } // if we don't want to keep aspect ratio, we just update both values
218
-
229
+ }
219
230
 
231
+ // if we don't want to keep aspect ratio, we just update both values
220
232
  return {
221
233
  width: nextDim.width,
222
234
  height: nextDim.height
@@ -224,13 +236,12 @@ var Component = /*#__PURE__*/function (_React$Component) {
224
236
  });
225
237
  return _this;
226
238
  }
227
-
228
- (0, _createClass2["default"])(Component, [{
239
+ (0, _inherits2["default"])(Component, _React$Component);
240
+ return (0, _createClass2["default"])(Component, [{
229
241
  key: "componentDidMount",
230
242
  value: function componentDidMount() {
231
243
  this.applySizeData();
232
244
  var resizeHandle = this.resize;
233
-
234
245
  if (resizeHandle) {
235
246
  resizeHandle.addEventListener('mousedown', this.initialiseResize, false);
236
247
  }
@@ -253,13 +264,11 @@ var Component = /*#__PURE__*/function (_React$Component) {
253
264
  key: "render",
254
265
  value: function render() {
255
266
  var _this2 = this;
256
-
257
267
  var _this$props4 = this.props,
258
- node = _this$props4.node,
259
- editor = _this$props4.editor,
260
- classes = _this$props4.classes,
261
- attributes = _this$props4.attributes,
262
- onFocus = _this$props4.onFocus;
268
+ node = _this$props4.node,
269
+ editor = _this$props4.editor,
270
+ attributes = _this$props4.attributes,
271
+ onFocus = _this$props4.onFocus;
263
272
  var active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);
264
273
  var src = node.data.get('src');
265
274
  var loaded = node.data.get('loaded') !== false;
@@ -268,152 +277,67 @@ var Component = /*#__PURE__*/function (_React$Component) {
268
277
  var percent = node.data.get('percent');
269
278
  var alt = node.data.get('alt');
270
279
  var justifyContent;
271
-
272
280
  switch (alignment) {
273
281
  case 'left':
274
282
  justifyContent = 'flex-start';
275
283
  break;
276
-
277
284
  case 'center':
278
285
  justifyContent = 'center';
279
286
  break;
280
-
281
287
  case 'right':
282
288
  justifyContent = 'flex-end';
283
289
  break;
284
-
285
290
  default:
286
291
  justifyContent = 'flex-start';
287
292
  break;
288
293
  }
289
-
290
294
  log('[render] node.data:', node.data);
291
295
  var size = this.getSize(node.data);
292
296
  log('[render] style:', size);
293
- var className = (0, _classnames["default"])(classes.root, !loaded && classes.loading, deleteStatus === 'pending' && classes.pendingDelete);
294
- var progressClasses = (0, _classnames["default"])(classes.progress, loaded && classes.hideProgress);
295
297
  return [/*#__PURE__*/_react["default"].createElement("span", {
296
298
  key: 'sp1'
297
- }, "\xA0"), /*#__PURE__*/_react["default"].createElement("div", {
299
+ }, "\xA0"), /*#__PURE__*/_react["default"].createElement(StyledImageRoot, {
298
300
  key: 'comp',
299
301
  onFocus: onFocus,
300
- className: className,
301
302
  style: {
302
303
  justifyContent: justifyContent
303
- }
304
- }, /*#__PURE__*/_react["default"].createElement(_LinearProgress["default"], {
304
+ },
305
+ loading: !loaded || deleteStatus === 'pending'
306
+ }, /*#__PURE__*/_react["default"].createElement(StyledProgress, {
305
307
  mode: "determinate",
306
308
  value: percent > 0 ? percent : 0,
307
- className: progressClasses
308
- }), /*#__PURE__*/_react["default"].createElement("div", {
309
- className: classes.imageContainer
310
- }, /*#__PURE__*/_react["default"].createElement("img", (0, _extends2["default"])({}, attributes, {
311
- className: (0, _classnames["default"])(classes.image, active && classes.active),
312
- ref: function ref(_ref2) {
313
- _this2.img = _ref2;
309
+ hide: loaded
310
+ }), /*#__PURE__*/_react["default"].createElement(StyledImageContainer, null, /*#__PURE__*/_react["default"].createElement(StyledImage, (0, _extends2["default"])({}, attributes, {
311
+ active: active,
312
+ ref: function ref(_ref6) {
313
+ _this2.img = _ref6;
314
314
  },
315
315
  src: src,
316
316
  style: size,
317
317
  onLoad: this.loadImage,
318
318
  alt: alt
319
- })), /*#__PURE__*/_react["default"].createElement("div", {
320
- ref: function ref(_ref3) {
321
- _this2.resize = _ref3;
319
+ })), /*#__PURE__*/_react["default"].createElement(StyledResize, {
320
+ ref: function ref(_ref7) {
321
+ _this2.resize = _ref7;
322
322
  },
323
- className: (0, _classnames["default"])(classes.resize, 'resize')
323
+ className: "resize"
324
324
  }))), /*#__PURE__*/_react["default"].createElement("span", {
325
325
  key: 'sp2'
326
326
  }, "\xA0")];
327
327
  }
328
328
  }]);
329
- return Component;
330
329
  }(_react["default"].Component);
331
-
332
- exports.Component = Component;
333
330
  (0, _defineProperty2["default"])(Component, "propTypes", {
334
331
  node: _slatePropTypes["default"].node.isRequired,
335
332
  editor: _propTypes["default"].shape({
336
333
  change: _propTypes["default"].func.isRequired,
337
334
  value: _propTypes["default"].object
338
335
  }).isRequired,
339
- classes: _propTypes["default"].object.isRequired,
340
336
  attributes: _propTypes["default"].object,
341
337
  onFocus: _propTypes["default"].func,
342
338
  onBlur: _propTypes["default"].func,
343
339
  maxImageWidth: _propTypes["default"].number,
344
340
  maxImageHeight: _propTypes["default"].number
345
341
  });
346
-
347
- var styles = function styles(theme) {
348
- return {
349
- portal: {
350
- position: 'absolute',
351
- opacity: 0,
352
- transition: 'opacity 200ms linear'
353
- },
354
- floatingButtonRow: {
355
- backgroundColor: theme.palette.background.paper,
356
- borderRadius: '1px',
357
- display: 'flex',
358
- padding: '10px',
359
- border: "solid 1px ".concat(theme.palette.grey[200]),
360
- boxShadow: '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)'
361
- },
362
- progress: {
363
- position: 'absolute',
364
- left: '0',
365
- width: 'fit-content',
366
- top: '0%',
367
- transition: 'opacity 200ms linear'
368
- },
369
- hideProgress: {
370
- opacity: 0
371
- },
372
- loading: {
373
- opacity: 0.3
374
- },
375
- pendingDelete: {
376
- opacity: 0.3
377
- },
378
- root: {
379
- position: 'relative',
380
- border: "solid 1px ".concat(theme.palette.common.white),
381
- display: 'flex',
382
- transition: 'opacity 200ms linear'
383
- },
384
- "delete": {
385
- position: 'absolute',
386
- right: 0
387
- },
388
- imageContainer: {
389
- position: 'relative',
390
- width: 'fit-content',
391
- display: 'flex',
392
- alignItems: 'center',
393
- '&&:hover > .resize': {
394
- display: 'block'
395
- }
396
- },
397
- active: {
398
- border: "solid 1px ".concat(theme.palette.primary.main)
399
- },
400
- resize: {
401
- backgroundColor: theme.palette.primary.main,
402
- cursor: 'col-resize',
403
- height: '35px',
404
- width: '5px',
405
- borderRadius: 8,
406
- marginLeft: '5px',
407
- marginRight: '10px',
408
- display: 'none'
409
- },
410
- drawableHeight: {
411
- minHeight: 350
412
- }
413
- };
414
- };
415
-
416
- var _default = (0, _styles.withStyles)(styles)(Component);
417
-
418
- exports["default"] = _default;
342
+ var _default = exports["default"] = Component;
419
343
  //# sourceMappingURL=component.js.map
@@ -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","update","data","w","get","set","getPercentFromWidth","equals","change","c","setNodeByKey","key","window","addEventListener","startResizing","stopResizing","maxImageWidth","maxImageHeight","box","style","dimensions","height","updateImageDimensions","setState","e","bounds","target","getBoundingClientRect","clientX","left","clientY","top","hasMinimumWidth","hasDimensionsConstraints","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","applySizeData","resizeHandle","resize","initialiseResize","objectFit","classes","attributes","onFocus","active","value","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","alignment","alt","justifyContent","getSize","className","root","loading","pendingDelete","progressClasses","progress","hideProgress","imageContainer","image","ref","loadImage","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","number","styles","theme","portal","position","opacity","transition","floatingButtonRow","backgroundColor","palette","background","paper","borderRadius","display","padding","border","grey","boxShadow","common","white","right","alignItems","primary","main","cursor","marginLeft","marginRight","drawableHeight","minHeight"],"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 maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\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 let update = node.data;\n\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\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 initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\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 loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight,\n },\n true,\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change((c) => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n startResizing = (e) => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n },\n true,\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change((c) => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height,\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio,\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height,\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 loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n const alignment = node.data.get('alignment');\n const percent = node.data.get('percent');\n const alt = node.data.get('alt');\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n break;\n\n case 'center':\n justifyContent = 'center';\n break;\n\n case 'right':\n justifyContent = 'flex-end';\n break;\n\n default:\n justifyContent = 'flex-start';\n break;\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 !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} style={{ justifyContent }}>\n <LinearProgress mode=\"determinate\" value={percent > 0 ? percent : 0} className={progressClasses} />\n <div className={classes.imageContainer}>\n <img\n {...attributes}\n className={classNames(classes.image, active && classes.active)}\n ref={(ref) => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <div\n ref={(ref) => {\n this.resize = ref;\n }}\n className={classNames(classes.resize, 'resize')}\n />\n </div>\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: theme.palette.background.paper,\n borderRadius: '1px',\n display: 'flex',\n padding: '10px',\n border: `solid 1px ${theme.palette.grey[200]}`,\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: 'fit-content',\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 ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n },\n delete: {\n position: 'absolute',\n right: 0,\n },\n imageContainer: {\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n\n '&&:hover > .resize': {\n display: 'block',\n },\n },\n active: {\n border: `solid 1px ${theme.palette.primary.main}`,\n },\n resize: {\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n },\n drawableHeight: {\n minHeight: 350,\n },\n});\n\nexport default withStyles(styles)(Component);\n"],"file":"component.js"}
1
+ {"version":3,"file":"component.js","names":["_LinearProgress","_interopRequireDefault","require","_propTypes","_react","_debug","_styles","_slatePropTypes","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","size","s","concat","StyledImageRoot","styled","_ref","theme","loading","position","border","palette","common","white","display","transition","opacity","StyledProgress","LinearProgress","_ref2","hide","left","width","top","StyledImageContainer","alignItems","StyledImage","_ref3","active","primary","main","StyledResize","_ref4","backgroundColor","cursor","height","borderRadius","marginLeft","marginRight","Component","exports","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","percent","multiplier","img","naturalWidth","naturalHeight","floored","parseInt","toFixed","_this$props","props","node","editor","update","data","w","get","set","getPercentFromWidth","equals","change","c","setNodeByKey","key","window","addEventListener","startResizing","stopResizing","_ref5","maxImageWidth","maxImageHeight","box","style","dimensions","_this$updateImageDime","updateImageDimensions","setState","_this$props2","bounds","target","getBoundingClientRect","_this$updateImageDime2","clientX","clientY","hasMinimumWidth","hasDimensionsConstraints","_this$props3","removeEventListener","initialDim","nextDim","keepAspectRatio","resizeType","imageAspectRatio","_inherits2","_createClass2","value","componentDidMount","applySizeData","resizeHandle","resize","initialiseResize","componentDidUpdate","getSize","objectFit","render","_this2","_this$props4","attributes","onFocus","isFocused","selection","hasEdgeIn","src","loaded","deleteStatus","alignment","alt","justifyContent","createElement","mode","_extends2","ref","onLoad","loadImage","className","React","SlatePropTypes","isRequired","PropTypes","shape","func","object","onBlur","number","_default"],"sources":["../../../src/plugins/image/component.jsx"],"sourcesContent":["import LinearProgress from '@mui/material/LinearProgress';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport debug from 'debug';\nimport { styled } from '@mui/material/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\nconst StyledImageRoot = styled('div')(({ theme, loading }) => ({\n position: 'relative',\n border: `solid 1px ${theme.palette.common.white}`,\n display: 'flex',\n transition: 'opacity 200ms linear',\n\n ...(loading && {\n opacity: 0.3,\n }),\n}));\n\nconst StyledProgress = styled(LinearProgress)(({ hide }) => ({\n position: 'absolute',\n left: '0',\n width: 'fit-content',\n top: '0%',\n transition: 'opacity 200ms linear',\n\n ...(hide && {\n opacity: 0,\n }),\n}));\n\nconst StyledImageContainer = styled('div')(() => ({\n position: 'relative',\n width: 'fit-content',\n display: 'flex',\n alignItems: 'center',\n '&&:hover > .resize': {\n display: 'block',\n },\n}));\n\nconst StyledImage = styled('img')(({ theme, active }) => ({\n ...(active && {\n border: `solid 1px ${theme.palette.primary.main}`,\n }),\n}));\n\nconst StyledResize = styled('div')(({ theme }) => ({\n backgroundColor: theme.palette.primary.main,\n cursor: 'col-resize',\n height: '35px',\n width: '5px',\n borderRadius: 8,\n marginLeft: '5px',\n marginRight: '10px',\n display: 'none',\n}));\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 attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n maxImageWidth: PropTypes.number,\n maxImageHeight: PropTypes.number,\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 let update = node.data;\n\n const w = update.get('width');\n if (w) {\n update = update.set('resizePercent', this.getPercentFromWidth(w));\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 initialiseResize = () => {\n window.addEventListener('mousemove', this.startResizing, false);\n window.addEventListener('mouseup', this.stopResizing, false);\n };\n\n componentDidMount() {\n this.applySizeData();\n\n const resizeHandle = this.resize;\n\n if (resizeHandle) {\n resizeHandle.addEventListener('mousedown', this.initialiseResize, false);\n }\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 loadImage = () => {\n let { maxImageWidth, maxImageHeight } = this.props || {};\n maxImageWidth = maxImageWidth || 700;\n maxImageHeight = maxImageHeight || 900;\n\n const box = this.img;\n\n //on first load\n if (!box.style.width || box.style.width === 'auto') {\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: dimensions.width < maxImageWidth ? dimensions.width : maxImageWidth,\n height: dimensions.height < maxImageHeight ? dimensions.height : maxImageHeight,\n },\n true,\n );\n\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change((c) => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n startResizing = (e) => {\n const bounds = e.target.getBoundingClientRect();\n const box = this.img;\n const dimensions = {\n width: (box && box.naturalWidth) || 100,\n height: (box && box.naturalHeight) || 100,\n };\n\n const { width, height } = this.updateImageDimensions(\n dimensions,\n {\n width: e.clientX - bounds.left,\n height: e.clientY - bounds.top,\n },\n true,\n );\n\n const hasMinimumWidth = width > 50 && height > 50;\n const hasDimensionsConstraints = width <= 700 && height <= 900;\n\n if (hasMinimumWidth && hasDimensionsConstraints && box) {\n box.style.width = `${width}px`;\n box.style.height = `${height}px`;\n\n this.setState({\n dimensions: { height: height, width: width },\n });\n\n const { node, editor } = this.props;\n\n let update = node.data;\n\n update = update.set('width', width);\n update = update.set('height', height);\n\n if (!update.equals(node.data)) {\n editor.change((c) => c.setNodeByKey(node.key, { data: update }));\n }\n }\n };\n\n stopResizing = () => {\n window.removeEventListener('mousemove', this.startResizing, false);\n window.removeEventListener('mouseup', this.stopResizing, false);\n };\n\n updateImageDimensions = (initialDim, nextDim, keepAspectRatio, resizeType) => {\n // if we want to keep image aspect ratio\n if (keepAspectRatio) {\n const imageAspectRatio = initialDim.width / initialDim.height;\n\n if (resizeType === 'height') {\n // if we want to change image height => we update the width accordingly\n return {\n width: nextDim.height * imageAspectRatio,\n height: nextDim.height,\n };\n }\n\n // if we want to change image width => we update the height accordingly\n return {\n width: nextDim.width,\n height: nextDim.width / imageAspectRatio,\n };\n }\n\n // if we don't want to keep aspect ratio, we just update both values\n return {\n width: nextDim.width,\n height: nextDim.height,\n };\n };\n\n render() {\n const { node, editor, attributes, onFocus } = this.props;\n const active = editor.value.isFocused && editor.value.selection.hasEdgeIn(node);\n const src = node.data.get('src');\n const loaded = node.data.get('loaded') !== false;\n const deleteStatus = node.data.get('deleteStatus');\n const alignment = node.data.get('alignment');\n const percent = node.data.get('percent');\n const alt = node.data.get('alt');\n let justifyContent;\n\n switch (alignment) {\n case 'left':\n justifyContent = 'flex-start';\n break;\n\n case 'center':\n justifyContent = 'center';\n break;\n\n case 'right':\n justifyContent = 'flex-end';\n break;\n\n default:\n justifyContent = 'flex-start';\n break;\n }\n log('[render] node.data:', node.data);\n\n const size = this.getSize(node.data);\n\n log('[render] style:', size);\n\n return [\n <span key={'sp1'}>&nbsp;</span>,\n <StyledImageRoot\n key={'comp'}\n onFocus={onFocus}\n style={{ justifyContent }}\n loading={!loaded || deleteStatus === 'pending'}\n >\n <StyledProgress mode=\"determinate\" value={percent > 0 ? percent : 0} hide={loaded} />\n <StyledImageContainer>\n <StyledImage\n {...attributes}\n active={active}\n ref={(ref) => {\n this.img = ref;\n }}\n src={src}\n style={size}\n onLoad={this.loadImage}\n alt={alt}\n />\n <StyledResize\n ref={(ref) => {\n this.resize = ref;\n }}\n className=\"resize\"\n />\n </StyledImageContainer>\n </StyledImageRoot>,\n <span key={'sp2'}>&nbsp;</span>,\n ];\n }\n}\n\nexport default Component;\n"],"mappings":"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","ignoreList":[]}