@pie-element/drawing-response 10.3.4-next.3 → 11.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CHANGELOG.md +0 -11
  2. package/configure/CHANGELOG.md +0 -11
  3. package/configure/lib/button.js +23 -47
  4. package/configure/lib/button.js.map +1 -1
  5. package/configure/lib/defaults.js +2 -3
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/image-container.js +238 -327
  8. package/configure/lib/image-container.js.map +1 -1
  9. package/configure/lib/index.js +115 -182
  10. package/configure/lib/index.js.map +1 -1
  11. package/configure/lib/root.js +195 -261
  12. package/configure/lib/root.js.map +1 -1
  13. package/configure/package.json +9 -7
  14. package/configure/src/__tests__/image-container.test.jsx +101 -37
  15. package/configure/src/__tests__/index.test.js +27 -5
  16. package/configure/src/__tests__/root.test.jsx +37 -21
  17. package/configure/src/button.jsx +14 -24
  18. package/configure/src/image-container.jsx +73 -77
  19. package/configure/src/index.js +12 -2
  20. package/configure/src/root.jsx +25 -26
  21. package/controller/lib/defaults.js +2 -3
  22. package/controller/lib/defaults.js.map +1 -1
  23. package/controller/lib/index.js +39 -65
  24. package/controller/lib/index.js.map +1 -1
  25. package/controller/package.json +1 -1
  26. package/lib/drawing-response/button.js +35 -60
  27. package/lib/drawing-response/button.js.map +1 -1
  28. package/lib/drawing-response/constants.js +2 -3
  29. package/lib/drawing-response/constants.js.map +1 -1
  30. package/lib/drawing-response/container.js +270 -351
  31. package/lib/drawing-response/container.js.map +1 -1
  32. package/lib/drawing-response/drawable-circle.js +65 -104
  33. package/lib/drawing-response/drawable-circle.js.map +1 -1
  34. package/lib/drawing-response/drawable-eraser.js +50 -86
  35. package/lib/drawing-response/drawable-eraser.js.map +1 -1
  36. package/lib/drawing-response/drawable-free-path.js +56 -97
  37. package/lib/drawing-response/drawable-free-path.js.map +1 -1
  38. package/lib/drawing-response/drawable-helper.js +16 -28
  39. package/lib/drawing-response/drawable-helper.js.map +1 -1
  40. package/lib/drawing-response/drawable-image.js +30 -49
  41. package/lib/drawing-response/drawable-image.js.map +1 -1
  42. package/lib/drawing-response/drawable-line.js +60 -99
  43. package/lib/drawing-response/drawable-line.js.map +1 -1
  44. package/lib/drawing-response/drawable-main.js +273 -345
  45. package/lib/drawing-response/drawable-main.js.map +1 -1
  46. package/lib/drawing-response/drawable-palette.js +123 -166
  47. package/lib/drawing-response/drawable-palette.js.map +1 -1
  48. package/lib/drawing-response/drawable-rectangle.js +65 -104
  49. package/lib/drawing-response/drawable-rectangle.js.map +1 -1
  50. package/lib/drawing-response/drawable-text.js +201 -313
  51. package/lib/drawing-response/drawable-text.js.map +1 -1
  52. package/lib/drawing-response/drawable-transformer.js +36 -79
  53. package/lib/drawing-response/drawable-transformer.js.map +1 -1
  54. package/lib/drawing-response/factory.js +6 -19
  55. package/lib/drawing-response/factory.js.map +1 -1
  56. package/lib/drawing-response/icon.js +8 -24
  57. package/lib/drawing-response/icon.js.map +1 -1
  58. package/lib/drawing-response/index.js +74 -116
  59. package/lib/drawing-response/index.js.map +1 -1
  60. package/lib/index.js +51 -102
  61. package/lib/index.js.map +1 -1
  62. package/package.json +13 -12
  63. package/src/__tests__/drawing-index-test.jsx +90 -27
  64. package/src/drawing-response/__tests__/container.test.jsx +56 -36
  65. package/src/drawing-response/__tests__/drawing-main.test.jsx +158 -139
  66. package/src/drawing-response/button.jsx +23 -34
  67. package/src/drawing-response/container.jsx +39 -40
  68. package/src/drawing-response/drawable-image.jsx +17 -20
  69. package/src/drawing-response/drawable-main.jsx +67 -60
  70. package/src/drawing-response/drawable-palette.jsx +48 -54
  71. package/src/drawing-response/drawable-text.jsx +26 -38
  72. package/src/drawing-response/index.jsx +21 -20
  73. package/src/index.js +17 -2
  74. package/configure/src/__tests__/__snapshots__/image-container.test.jsx.snap +0 -45
  75. package/configure/src/__tests__/__snapshots__/root.test.jsx.snap +0 -185
  76. package/esm/configure.js +0 -16151
  77. package/esm/configure.js.map +0 -1
  78. package/esm/controller.js +0 -814
  79. package/esm/controller.js.map +0 -1
  80. package/esm/element.js +0 -54130
  81. package/esm/element.js.map +0 -1
  82. package/esm/package.json +0 -3
  83. package/src/__tests__/__snapshots__/drawing-index-test.jsx.snap +0 -23
  84. package/src/drawing-response/__tests__/__snapshots__/container.test.jsx.snap +0 -396
  85. package/src/drawing-response/__tests__/__snapshots__/drawing-main.test.jsx.snap +0 -247
@@ -1,419 +1,347 @@
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
- exports["default"] = exports.DrawableMain = void 0;
9
-
7
+ exports.default = exports.DrawableMain = void 0;
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
10
  var _react = _interopRequireDefault(require("react"));
29
-
30
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
12
  var _omit = _interopRequireDefault(require("lodash/omit"));
33
-
34
13
  var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
35
-
36
14
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
37
-
38
- var _classnames2 = _interopRequireDefault(require("classnames"));
39
-
40
15
  var _reactKonva = require("react-konva");
41
-
42
- var _styles = require("@material-ui/core/styles");
43
-
16
+ var _styles = require("@mui/material/styles");
44
17
  var _translator = _interopRequireDefault(require("@pie-lib/translator"));
45
-
46
18
  var _drawableImage = _interopRequireDefault(require("./drawable-image"));
47
-
48
19
  var _button = _interopRequireDefault(require("./button"));
49
-
50
20
  var _factory = _interopRequireDefault(require("./factory"));
51
-
52
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
53
-
54
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
55
-
56
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
57
-
58
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
59
-
60
- var translator = _translator["default"].translator;
61
-
62
- var DrawableMain = /*#__PURE__*/function (_React$Component) {
63
- (0, _inherits2["default"])(DrawableMain, _React$Component);
64
-
65
- var _super = _createSuper(DrawableMain);
66
-
67
- function DrawableMain(props) {
68
- var _this;
69
-
70
- (0, _classCallCheck2["default"])(this, DrawableMain);
71
- _this = _super.call(this, props);
72
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleSessionChange", function () {
73
- var _this$props = _this.props,
74
- onSessionChange = _this$props.onSessionChange,
75
- session = _this$props.session,
76
- TextEntry = _this$props.TextEntry,
77
- drawableDimensions = _this$props.drawableDimensions;
78
- var drawables = _this.state.drawables;
79
- var newSession = {
21
+ const {
22
+ translator
23
+ } = _translator.default;
24
+ const Wrapper = (0, _styles.styled)('div')({
25
+ display: 'flex',
26
+ flexWrap: 'wrap',
27
+ justifyContent: 'flex-end'
28
+ });
29
+ const Base = (0, _styles.styled)('div')({
30
+ position: 'relative',
31
+ width: '100%'
32
+ });
33
+ const UndoControls = (0, _styles.styled)('div')({
34
+ marginTop: -43,
35
+ marginRight: 10,
36
+ position: 'absolute'
37
+ });
38
+ class DrawableMain extends _react.default.Component {
39
+ constructor(props) {
40
+ super(props);
41
+ (0, _defineProperty2.default)(this, "handleSessionChange", () => {
42
+ const {
43
+ onSessionChange,
44
+ session,
45
+ TextEntry,
46
+ drawableDimensions
47
+ } = this.props;
48
+ const {
49
+ drawables
50
+ } = this.state;
51
+ const newSession = {
80
52
  width: drawableDimensions.width,
81
- drawables: drawables.map(function (d) {
82
- return d.toJson();
83
- }),
84
- texts: TextEntry.all.map(function (text) {
85
- return _objectSpread(_objectSpread(_objectSpread({}, text), TextEntry["text_".concat(text.id)] && TextEntry["text_".concat(text.id)].attrs), {}, {
86
- value: TextEntry["textarea_".concat(text.id)] && TextEntry["textarea_".concat(text.id)].value
87
- });
88
- })
53
+ drawables: drawables.map(d => d.toJson()),
54
+ texts: TextEntry.all.map(text => ({
55
+ ...text,
56
+ ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),
57
+ value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
58
+ }))
89
59
  };
90
-
91
- if (!(0, _isEqual["default"])(newSession, session)) {
92
- onSessionChange(_objectSpread(_objectSpread({}, session), newSession));
60
+ if (!(0, _isEqual.default)(newSession, session)) {
61
+ onSessionChange({
62
+ ...session,
63
+ ...newSession
64
+ });
93
65
  }
94
66
  });
95
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseOverElement", function () {
96
- return _this.setState({
97
- isOver: true
98
- });
99
- });
100
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMouseOutElement", function () {
101
- return _this.setState({
102
- isOver: false
103
- });
104
- });
105
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseDown", function (e) {
67
+ (0, _defineProperty2.default)(this, "onMouseOverElement", () => this.setState({
68
+ isOver: true
69
+ }));
70
+ (0, _defineProperty2.default)(this, "onMouseOutElement", () => this.setState({
71
+ isOver: false
72
+ }));
73
+ (0, _defineProperty2.default)(this, "handleMouseDown", e => {
106
74
  // ONLY IF MOBILE?
107
75
  document.body.style.overflow = 'hidden';
108
- var _this$state = _this.state,
109
- newDrawable = _this$state.newDrawable,
110
- textIsSelected = _this$state.textIsSelected;
111
- var _this$props2 = _this.props,
112
- toolActive = _this$props2.toolActive,
113
- fillColor = _this$props2.fillColor,
114
- outlineColor = _this$props2.outlineColor,
115
- scale = _this$props2.scale;
116
-
76
+ const {
77
+ newDrawable,
78
+ textIsSelected
79
+ } = this.state;
80
+ const {
81
+ toolActive,
82
+ fillColor,
83
+ outlineColor,
84
+ scale
85
+ } = this.props;
117
86
  if (newDrawable.length === 0 && !textIsSelected) {
118
- var _e$target$getStage$ge = e.target.getStage().getPointerPosition(),
119
- x = _e$target$getStage$ge.x,
120
- y = _e$target$getStage$ge.y;
121
-
122
- var _newDrawable = (0, _factory["default"])(toolActive.type, {
87
+ const stage = e.target.getStage();
88
+ if (!stage) return;
89
+ const {
90
+ x,
91
+ y
92
+ } = stage.getPointerPosition();
93
+ const newDrawable = (0, _factory.default)(toolActive.type, {
123
94
  startx: x / scale,
124
95
  starty: y / scale,
125
- fillColor: fillColor,
126
- outlineColor: outlineColor,
96
+ fillColor,
97
+ outlineColor,
127
98
  createdAt: new Date()
128
99
  });
129
-
130
- _this.setState({
131
- newDrawable: [_newDrawable]
100
+ this.setState({
101
+ newDrawable: [newDrawable]
132
102
  });
133
103
  }
134
104
  });
135
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseUp", function (e) {
105
+ (0, _defineProperty2.default)(this, "handleMouseUp", e => {
136
106
  // ONLY IF MOBILE?
137
107
  document.body.style.overflow = 'initial';
138
- var _this$state2 = _this.state,
139
- newDrawable = _this$state2.newDrawable,
140
- drawables = _this$state2.drawables;
141
- var scale = _this.props.scale;
142
-
108
+ const {
109
+ newDrawable,
110
+ drawables
111
+ } = this.state;
112
+ const {
113
+ scale
114
+ } = this.props;
143
115
  if (newDrawable.length === 1) {
144
- var _e$target$getStage$ge2 = e.target.getStage().getPointerPosition(),
145
- x = _e$target$getStage$ge2.x,
146
- y = _e$target$getStage$ge2.y;
147
-
148
- var drawableToAdd = newDrawable[0];
116
+ const stage = e.target.getStage();
117
+ if (!stage) return;
118
+ const {
119
+ x,
120
+ y
121
+ } = stage.getPointerPosition();
122
+ const drawableToAdd = newDrawable[0];
149
123
  drawableToAdd.registerMovement(x / scale, y / scale);
150
124
  drawables.push(drawableToAdd);
151
-
152
- _this.setState({
125
+ this.setState({
153
126
  newDrawable: [],
154
- drawables: drawables
155
- }, _this.handleSessionChange.bind((0, _assertThisInitialized2["default"])(_this), drawableToAdd));
127
+ drawables
128
+ }, this.handleSessionChange.bind(this, drawableToAdd));
156
129
  }
157
130
  });
158
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseMove", function (e) {
159
- var newDrawable = _this.state.newDrawable;
160
- var scale = _this.props.scale;
161
-
131
+ (0, _defineProperty2.default)(this, "handleMouseMove", e => {
132
+ const {
133
+ newDrawable
134
+ } = this.state;
135
+ const {
136
+ scale
137
+ } = this.props;
162
138
  if (newDrawable.length === 1) {
163
- var _e$target$getStage$ge3 = e.target.getStage().getPointerPosition(),
164
- x = _e$target$getStage$ge3.x,
165
- y = _e$target$getStage$ge3.y;
166
-
167
- var updatedNewDrawable = newDrawable[0];
139
+ const stage = e.target.getStage();
140
+ if (!stage) return;
141
+ const {
142
+ x,
143
+ y
144
+ } = stage.getPointerPosition();
145
+ const updatedNewDrawable = newDrawable[0];
168
146
  updatedNewDrawable.registerMovement(x / scale, y / scale);
169
-
170
- _this.setState({
147
+ this.setState({
171
148
  newDrawable: [updatedNewDrawable]
172
149
  });
173
150
  }
174
151
  });
175
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleUndo", function () {
176
- var drawables = _this.state.drawables;
177
- var TextEntry = _this.props.TextEntry;
178
- var newDrawables = (0, _toConsumableArray2["default"])(drawables);
179
- var allData = [].concat((0, _toConsumableArray2["default"])(drawables), (0, _toConsumableArray2["default"])(TextEntry.all));
180
- allData.sort(function (a, b) {
181
- return new Date(a.createdAt) - new Date(b.createdAt);
182
- });
183
- var lastElement = allData[allData.length - 1];
184
-
152
+ (0, _defineProperty2.default)(this, "handleUndo", () => {
153
+ const {
154
+ drawables
155
+ } = this.state;
156
+ const {
157
+ TextEntry
158
+ } = this.props;
159
+ const newDrawables = [...drawables];
160
+ const allData = [...drawables, ...TextEntry.all];
161
+ allData.sort((a, b) => new Date(a.createdAt) - new Date(b.createdAt));
162
+ const lastElement = allData[allData.length - 1];
185
163
  if (lastElement && lastElement.type === 'text-entry') {
186
164
  TextEntry.all.pop();
187
-
188
- _this.setState({
165
+ this.setState({
189
166
  updatedAt: new Date()
190
- }, _this.handleSessionChange);
167
+ }, this.handleSessionChange);
191
168
  } else {
192
169
  newDrawables.pop();
193
-
194
- _this.setState({
170
+ this.setState({
195
171
  drawables: newDrawables
196
- }, _this.handleSessionChange);
172
+ }, this.handleSessionChange);
197
173
  }
198
174
  });
199
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClearAll", function () {
200
- var TextEntry = _this.props.TextEntry;
175
+ (0, _defineProperty2.default)(this, "handleClearAll", () => {
176
+ const {
177
+ TextEntry
178
+ } = this.props;
201
179
  TextEntry.all = [];
202
-
203
- _this.setState({
180
+ this.setState({
204
181
  drawables: [],
205
182
  updatedAt: new Date()
206
- }, _this.handleSessionChange);
183
+ }, this.handleSessionChange);
207
184
  });
208
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleTextSelected", function (textIsSelected) {
209
- return _this.setState({
210
- textIsSelected: textIsSelected
211
- });
212
- });
213
- _this.state = {
185
+ (0, _defineProperty2.default)(this, "toggleTextSelected", textIsSelected => this.setState({
186
+ textIsSelected
187
+ }));
188
+ this.state = {
214
189
  drawables: [],
215
190
  newDrawable: [],
216
191
  textIsSelected: false
217
192
  };
218
- return _this;
193
+ this.stage = null;
194
+ this.layer = null;
219
195
  }
220
-
221
- (0, _createClass2["default"])(DrawableMain, [{
222
- key: "UNSAFE_componentWillReceiveProps",
223
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
224
- if (nextProps.session) {
225
- var TextEntry = nextProps.TextEntry;
226
- var currentDrawables = this.state.drawables;
227
-
228
- if (nextProps.session.drawables) {
229
- var newDrawables = (0, _cloneDeep["default"])(nextProps.session.drawables);
230
- var drawablesString = JSON.stringify(currentDrawables);
231
- var sessionDrawableString = JSON.stringify((newDrawables || []).map(function (drawable) {
232
- return (0, _omit["default"])(drawable, 'type');
233
- }));
234
-
235
- if (drawablesString !== sessionDrawableString) {
236
- var drawableArray = nextProps.session.drawables;
237
- this.setState({
238
- drawables: drawableArray.map(function (drawable) {
239
- return (0, _factory["default"])(drawable.type, drawable);
240
- })
241
- });
242
- }
243
-
244
- var currentTexts = TextEntry.all.map(function (text) {
245
- return _objectSpread(_objectSpread(_objectSpread({}, text), TextEntry["text_".concat(text.id)] && TextEntry["text_".concat(text.id)].attrs), {}, {
246
- value: TextEntry["textarea_".concat(text.id)] && TextEntry["textarea_".concat(text.id)].value
247
- });
196
+ componentWillUnmount() {
197
+ // Clean up refs to prevent React Konva errors
198
+ this.stage = null;
199
+ this.layer = null;
200
+ }
201
+ UNSAFE_componentWillReceiveProps(nextProps) {
202
+ if (nextProps.session) {
203
+ const {
204
+ TextEntry
205
+ } = nextProps;
206
+ const {
207
+ drawables: currentDrawables
208
+ } = this.state;
209
+ if (nextProps.session.drawables) {
210
+ const newDrawables = (0, _cloneDeep.default)(nextProps.session.drawables);
211
+ const drawablesString = JSON.stringify(currentDrawables);
212
+ const sessionDrawableString = JSON.stringify((newDrawables || []).map(drawable => (0, _omit.default)(drawable, 'type')));
213
+ if (drawablesString !== sessionDrawableString) {
214
+ const drawableArray = nextProps.session.drawables;
215
+ this.setState({
216
+ drawables: drawableArray.map(drawable => (0, _factory.default)(drawable.type, drawable))
248
217
  });
249
-
250
- if (!(0, _isEqual["default"])(currentTexts, nextProps.session.texts)) {
251
- TextEntry.setAll(nextProps.session.texts || []);
252
- }
253
218
  }
254
- } else {
255
- this.handleSessionChange();
219
+ const currentTexts = TextEntry.all.map(text => ({
220
+ ...text,
221
+ ...(TextEntry[`text_${text.id}`] && TextEntry[`text_${text.id}`].attrs),
222
+ value: TextEntry[`textarea_${text.id}`] && TextEntry[`textarea_${text.id}`].value
223
+ }));
224
+ if (!(0, _isEqual.default)(currentTexts, nextProps.session.texts)) {
225
+ TextEntry.setAll(nextProps.session.texts || []);
226
+ }
256
227
  }
228
+ } else {
229
+ this.handleSessionChange();
257
230
  }
258
- }, {
259
- key: "render",
260
- value: function render() {
261
- var _this2 = this;
262
-
263
- var _this$props3 = this.props,
264
- classes = _this$props3.classes,
265
- disabled = _this$props3.disabled,
266
- drawableDimensions = _this$props3.drawableDimensions,
267
- fillColor = _this$props3.fillColor,
268
- imageDimensions = _this$props3.imageDimensions,
269
- imageUrl = _this$props3.imageUrl,
270
- paintColor = _this$props3.paintColor,
271
- outlineColor = _this$props3.outlineColor,
272
- TextEntry = _this$props3.TextEntry,
273
- _this$props3$backgrou = _this$props3.backgroundImageEnabled,
274
- backgroundImageEnabled = _this$props3$backgrou === void 0 ? true : _this$props3$backgrou,
275
- type = _this$props3.toolActive.type,
276
- scale = _this$props3.scale,
277
- language = _this$props3.language;
278
- var _this$state3 = this.state,
279
- isOver = _this$state3.isOver,
280
- newDrawable = _this$state3.newDrawable;
281
- var draggable = type === 'Select';
282
- var paint = type === 'PaintBucket';
283
- var drawables = [].concat((0, _toConsumableArray2["default"])(this.state.drawables), (0, _toConsumableArray2["default"])(this.state.newDrawable));
284
- var drawableProps = {
285
- draggable: draggable && !disabled,
286
- disabled: disabled,
287
- paint: paint,
288
- fillColor: fillColor,
289
- forceUpdate: function forceUpdate() {
290
- return _this2.setState({
291
- updatedAt: new Date()
292
- });
293
- },
294
- paintColor: paintColor,
295
- outlineColor: outlineColor,
296
- toggleTextSelected: this.toggleTextSelected,
297
- handleSessionChange: this.handleSessionChange,
298
- stage: this.stage,
299
- onMouseOverElement: this.onMouseOverElement,
300
- onMouseOutElement: this.onMouseOutElement,
301
- scale: scale
231
+ }
232
+ render() {
233
+ const {
234
+ disabled,
235
+ drawableDimensions,
236
+ fillColor,
237
+ imageDimensions,
238
+ imageUrl,
239
+ paintColor,
240
+ outlineColor,
241
+ TextEntry,
242
+ backgroundImageEnabled = true,
243
+ toolActive: {
244
+ type
245
+ },
246
+ scale,
247
+ language
248
+ } = this.props;
249
+ const {
250
+ isOver,
251
+ newDrawable
252
+ } = this.state;
253
+ const draggable = type === 'Select';
254
+ const paint = type === 'PaintBucket';
255
+ const drawables = [...this.state.drawables, ...this.state.newDrawable];
256
+ const drawableProps = {
257
+ draggable: draggable && !disabled,
258
+ disabled,
259
+ paint,
260
+ fillColor,
261
+ forceUpdate: () => this.setState({
262
+ updatedAt: new Date()
263
+ }),
264
+ paintColor,
265
+ outlineColor,
266
+ toggleTextSelected: this.toggleTextSelected,
267
+ handleSessionChange: this.handleSessionChange,
268
+ stage: this.stage,
269
+ onMouseOverElement: this.onMouseOverElement,
270
+ onMouseOutElement: this.onMouseOutElement,
271
+ scale
272
+ };
273
+ let listeners = {};
274
+ if (!disabled) {
275
+ listeners = {
276
+ onMouseUp: this.handleMouseUp,
277
+ onTouchEnd: this.handleMouseUp,
278
+ onMouseMove: this.handleMouseMove,
279
+ onTouchMove: this.handleMouseMove
302
280
  };
303
- var listeners = {};
304
-
305
- if (!disabled) {
306
- listeners = {
307
- onMouseUp: this.handleMouseUp,
308
- onTouchEnd: this.handleMouseUp,
309
- onMouseMove: this.handleMouseMove,
310
- onTouchMove: this.handleMouseMove
311
- };
312
-
313
- if (!draggable) {
314
- listeners.onMouseDown = this.handleMouseDown;
315
- listeners.onTouchStart = this.handleMouseDown;
316
- }
281
+ if (!draggable) {
282
+ listeners.onMouseDown = this.handleMouseDown;
283
+ listeners.onTouchStart = this.handleMouseDown;
317
284
  }
318
-
319
- var imageHeight = (imageDimensions === null || imageDimensions === void 0 ? void 0 : imageDimensions.height) * scale;
320
- var imageWidth = (imageDimensions === null || imageDimensions === void 0 ? void 0 : imageDimensions.width) * scale;
321
- return /*#__PURE__*/_react["default"].createElement("div", {
322
- className: classes.wrapper
323
- }, /*#__PURE__*/_react["default"].createElement("div", {
324
- className: classes.undoControls
325
- }, /*#__PURE__*/_react["default"].createElement(_button["default"], {
326
- disabled: disabled,
327
- onClick: this.handleUndo,
328
- label: translator.t('common:undo', {
329
- lng: language
330
- })
331
- }), /*#__PURE__*/_react["default"].createElement(_button["default"], {
332
- disabled: disabled,
333
- onClick: this.handleClearAll,
334
- label: translator.t('common:clearAll', {
335
- lng: language
336
- })
337
- })), /*#__PURE__*/_react["default"].createElement("div", {
338
- className: classes.base
339
- }, backgroundImageEnabled && imageUrl && /*#__PURE__*/_react["default"].createElement(_drawableImage["default"], {
340
- dimensions: {
341
- height: imageHeight,
342
- width: imageWidth
343
- },
344
- url: imageUrl
345
- }), TextEntry.renderTextareas(), /*#__PURE__*/_react["default"].createElement(_reactKonva.Stage, (0, _extends2["default"])({
346
- scaleX: scale,
347
- scaleY: scale,
348
- ref: function ref(_ref2) {
349
- _this2.stage = _ref2;
350
- },
351
- className: (0, _classnames2["default"])(classes.stage, (0, _defineProperty2["default"])({}, classes.active, draggable && (isOver || newDrawable && newDrawable.length === 1))),
352
- height: drawableDimensions.height,
353
- width: drawableDimensions.width
354
- }, listeners), /*#__PURE__*/_react["default"].createElement(_reactKonva.Layer, {
355
- ref: function ref(_ref) {
356
- _this2.layer = _ref;
357
- }
358
- }, drawables.map(function (drawable, key) {
359
- return drawable.render(_objectSpread(_objectSpread({}, drawableProps), {}, {
360
- key: key
361
- }));
362
- }), TextEntry.render(drawableProps)))));
363
285
  }
364
- }]);
365
- return DrawableMain;
366
- }(_react["default"].Component);
367
-
286
+ const imageHeight = imageDimensions?.height * scale;
287
+ const imageWidth = imageDimensions?.width * scale;
288
+ return /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(UndoControls, null, /*#__PURE__*/_react.default.createElement(_button.default, {
289
+ disabled: disabled,
290
+ onClick: this.handleUndo,
291
+ label: translator.t('common:undo', {
292
+ lng: language
293
+ })
294
+ }), /*#__PURE__*/_react.default.createElement(_button.default, {
295
+ disabled: disabled,
296
+ onClick: this.handleClearAll,
297
+ label: translator.t('common:clearAll', {
298
+ lng: language
299
+ })
300
+ })), /*#__PURE__*/_react.default.createElement(Base, null, backgroundImageEnabled && imageUrl && /*#__PURE__*/_react.default.createElement(_drawableImage.default, {
301
+ dimensions: {
302
+ height: imageHeight,
303
+ width: imageWidth
304
+ },
305
+ url: imageUrl
306
+ }), TextEntry.renderTextareas(), /*#__PURE__*/_react.default.createElement("div", {
307
+ style: {
308
+ position: 'absolute',
309
+ left: 0,
310
+ top: 0,
311
+ touchAction: 'none',
312
+ cursor: draggable && (isOver || newDrawable.length === 1) ? 'pointer' : 'default'
313
+ }
314
+ }, /*#__PURE__*/_react.default.createElement(_reactKonva.Stage, (0, _extends2.default)({
315
+ key: "drawing-stage",
316
+ scaleX: scale,
317
+ scaleY: scale,
318
+ ref: ref => this.stage = ref,
319
+ height: drawableDimensions.height,
320
+ width: drawableDimensions.width
321
+ }, listeners), /*#__PURE__*/_react.default.createElement(_reactKonva.Layer, {
322
+ ref: ref => this.layer = ref
323
+ }, drawables.map((drawable, key) => drawable.render({
324
+ ...drawableProps,
325
+ key
326
+ })), TextEntry.render(drawableProps))))));
327
+ }
328
+ }
368
329
  exports.DrawableMain = DrawableMain;
369
-
370
- var styles = function styles() {
371
- return {
372
- wrapper: {
373
- display: 'flex',
374
- flexWrap: 'wrap',
375
- justifyContent: 'flex-end'
376
- },
377
- base: {
378
- position: 'relative',
379
- width: '100%'
380
- },
381
- stage: {
382
- left: 0,
383
- position: 'absolute',
384
- touchAction: 'none',
385
- top: 0
386
- },
387
- active: {
388
- cursor: 'pointer'
389
- },
390
- undoControls: {
391
- marginTop: -43,
392
- marginRight: 10,
393
- position: 'absolute'
394
- }
395
- };
396
- };
397
-
398
330
  DrawableMain.propTypes = {
399
- classes: _propTypes["default"].object.isRequired,
400
- disabled: _propTypes["default"].bool,
401
- drawableDimensions: _propTypes["default"].object.isRequired,
402
- imageDimensions: _propTypes["default"].object.isRequired,
403
- fillColor: _propTypes["default"].string.isRequired,
404
- onSessionChange: _propTypes["default"].func.isRequired,
405
- paintColor: _propTypes["default"].string.isRequired,
406
- outlineColor: _propTypes["default"].string.isRequired,
407
- imageUrl: _propTypes["default"].string.isRequired,
408
- TextEntry: _propTypes["default"].object.isRequired,
409
- toolActive: _propTypes["default"].object.isRequired,
410
- session: _propTypes["default"].object.isRequired,
411
- backgroundImageEnabled: _propTypes["default"].bool.isRequired,
412
- scale: _propTypes["default"].number.isRequired,
413
- language: _propTypes["default"].string
331
+ disabled: _propTypes.default.bool,
332
+ drawableDimensions: _propTypes.default.object.isRequired,
333
+ imageDimensions: _propTypes.default.object.isRequired,
334
+ fillColor: _propTypes.default.string.isRequired,
335
+ onSessionChange: _propTypes.default.func.isRequired,
336
+ paintColor: _propTypes.default.string.isRequired,
337
+ outlineColor: _propTypes.default.string.isRequired,
338
+ imageUrl: _propTypes.default.string.isRequired,
339
+ TextEntry: _propTypes.default.object.isRequired,
340
+ toolActive: _propTypes.default.object.isRequired,
341
+ session: _propTypes.default.object.isRequired,
342
+ backgroundImageEnabled: _propTypes.default.bool.isRequired,
343
+ scale: _propTypes.default.number.isRequired,
344
+ language: _propTypes.default.string
414
345
  };
415
-
416
- var _default = (0, _styles.withStyles)(styles)(DrawableMain);
417
-
418
- exports["default"] = _default;
346
+ var _default = exports.default = DrawableMain;
419
347
  //# sourceMappingURL=drawable-main.js.map