@pie-lib/tools 0.29.1 → 0.30.0-mui-update.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.
package/lib/rotatable.js CHANGED
@@ -1,63 +1,39 @@
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.Rotatable = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
14
  var _react = _interopRequireDefault(require("react"));
25
-
26
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
16
+ var _styles = require("@mui/material/styles");
30
17
  var _anchorUtils = require("./anchor-utils");
31
-
32
18
  var _reactPortal = require("react-portal");
33
-
34
19
  var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
35
-
36
20
  var _transformOrigin = require("./transform-origin");
37
-
38
- var _classnames = _interopRequireDefault(require("classnames"));
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
-
44
- var Anchor = (0, _styles.withStyles)({
45
- anchor: {
46
- position: 'absolute',
47
- zIndex: 100,
48
- width: '200px',
49
- height: '80px'
50
- }
51
- })(function (_ref) {
52
- var classes = _ref.classes,
53
- left = _ref.left,
54
- top = _ref.top,
55
- color = _ref.color,
56
- fill = _ref.fill;
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
+ var AnchorSvg = (0, _styles.styled)('svg')({
24
+ position: 'absolute',
25
+ zIndex: 100,
26
+ width: '200px',
27
+ height: '80px'
28
+ });
29
+ var Anchor = function Anchor(_ref) {
30
+ var left = _ref.left,
31
+ top = _ref.top,
32
+ color = _ref.color,
33
+ fill = _ref.fill;
57
34
  color = color || 'green';
58
35
  fill = fill || 'white';
59
- return /*#__PURE__*/_react["default"].createElement(_reactPortal.Portal, null, /*#__PURE__*/_react["default"].createElement("svg", {
60
- className: classes.anchor,
36
+ return /*#__PURE__*/_react["default"].createElement(_reactPortal.Portal, null, /*#__PURE__*/_react["default"].createElement(AnchorSvg, {
61
37
  style: {
62
38
  left: left - 10,
63
39
  top: top - 10
@@ -70,36 +46,32 @@ var Anchor = (0, _styles.withStyles)({
70
46
  stroke: color,
71
47
  fill: fill
72
48
  })));
73
- });
49
+ };
50
+
74
51
  /**
75
52
  * Tip o' the hat to:
76
53
  * https://bl.ocks.org/joyrexus/7207044
77
54
  */
78
-
79
- var Rotatable = /*#__PURE__*/function (_React$Component) {
80
- (0, _inherits2["default"])(Rotatable, _React$Component);
81
-
82
- var _super = _createSuper(Rotatable);
83
-
55
+ var RotatableContainer = (0, _styles.styled)('div')({
56
+ position: 'relative',
57
+ display: 'inline-block',
58
+ cursor: 'move'
59
+ });
60
+ var Rotatable = exports.Rotatable = /*#__PURE__*/function (_React$Component) {
84
61
  function Rotatable(props) {
85
62
  var _this;
86
-
87
63
  (0, _classCallCheck2["default"])(this, Rotatable);
88
- _this = _super.call(this, props);
89
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initHandles", function () {
64
+ _this = _callSuper(this, Rotatable, [props]);
65
+ (0, _defineProperty2["default"])(_this, "initHandles", function () {
90
66
  var handle = _this.props.handle;
91
-
92
67
  if (Array.isArray(handle)) {
93
68
  _this.handles = [];
94
69
  handle.forEach(function (h) {
95
70
  var el = _this.rotatable.querySelector(".".concat(h["class"]));
96
-
97
71
  if (el) {
98
72
  var mousedownHandler = _this.rotateStart(h.origin);
99
-
100
73
  el.addEventListener('mousedown', mousedownHandler);
101
74
  el.addEventListener('mouseup', _this.rotateStop);
102
-
103
75
  _this.handles.push({
104
76
  el: el,
105
77
  mousedownHandler: mousedownHandler
@@ -108,74 +80,66 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
108
80
  });
109
81
  }
110
82
  });
111
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addMouseUpHandler", function () {
83
+ (0, _defineProperty2["default"])(_this, "addMouseUpHandler", function () {
112
84
  document.addEventListener('mouseup', _this.rotateStop);
113
85
  });
114
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "originToXY", function (origin) {
86
+ (0, _defineProperty2["default"])(_this, "originToXY", function (origin) {
115
87
  var _this$rotatable = _this.rotatable,
116
- width = _this$rotatable.clientWidth,
117
- height = _this$rotatable.clientHeight;
88
+ width = _this$rotatable.clientWidth,
89
+ height = _this$rotatable.clientHeight;
118
90
  return (0, _transformOrigin.parse)({
119
91
  width: width,
120
92
  height: height
121
93
  }, origin);
122
94
  });
123
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAnchor", function (origin) {
95
+ /**
96
+ * Get the anchor point for the given element, origin and rotation.
97
+ * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.
98
+ */
99
+ (0, _defineProperty2["default"])(_this, "getAnchor", function (origin) {
124
100
  var rotation = _this.state.rotation;
125
101
  var _this$rotatable2 = _this.rotatable,
126
- clientWidth = _this$rotatable2.clientWidth,
127
- clientHeight = _this$rotatable2.clientHeight;
128
-
102
+ clientWidth = _this$rotatable2.clientWidth,
103
+ clientHeight = _this$rotatable2.clientHeight;
129
104
  var _this$rotatable$getBo = _this.rotatable.getBoundingClientRect(),
130
- top = _this$rotatable$getBo.top,
131
- left = _this$rotatable$getBo.left;
132
-
105
+ top = _this$rotatable$getBo.top,
106
+ left = _this$rotatable$getBo.left;
133
107
  var xy = _this.originToXY(origin);
134
-
135
108
  var _calcAnchor = (0, _anchorUtils.getAnchor)({
136
- width: clientWidth,
137
- height: clientHeight
138
- }, xy, rotation),
139
- anchorTop = _calcAnchor.top,
140
- anchorLeft = _calcAnchor.left;
141
-
109
+ width: clientWidth,
110
+ height: clientHeight
111
+ }, xy, rotation),
112
+ anchorTop = _calcAnchor.top,
113
+ anchorLeft = _calcAnchor.left;
142
114
  return {
143
115
  top: top + anchorTop,
144
116
  left: left + anchorLeft
145
117
  };
146
118
  });
147
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotateStart", function (origin) {
119
+ (0, _defineProperty2["default"])(_this, "rotateStart", function (origin) {
148
120
  return function (e) {
149
121
  var isRotating = _this.state.isRotating;
150
-
151
122
  if (isRotating) {
152
123
  return;
153
124
  }
154
-
155
125
  e.preventDefault();
156
-
157
126
  var anchor = _this.getAnchor(origin);
158
-
159
127
  var rotation = _this.state.rotation;
160
-
161
128
  var _this$getAngle = _this.getAngle(anchor, e),
162
- startAngle = _this$getAngle.angle;
163
-
129
+ startAngle = _this$getAngle.angle;
164
130
  var diff = {
165
131
  x: 0,
166
132
  y: 0
167
133
  };
168
-
169
134
  if (origin !== _this.state.origin) {
170
135
  var _this$rotatable3 = _this.rotatable,
171
- width = _this$rotatable3.clientWidth,
172
- height = _this$rotatable3.clientHeight;
136
+ width = _this$rotatable3.clientWidth,
137
+ height = _this$rotatable3.clientHeight;
173
138
  diff = (0, _anchorUtils.distanceBetween)({
174
139
  width: width,
175
140
  height: height
176
141
  }, rotation, _this.state.origin, origin);
177
142
  }
178
-
179
143
  _this.setState({
180
144
  origin: origin,
181
145
  isRotating: true,
@@ -190,15 +154,12 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
190
154
  });
191
155
  };
192
156
  });
193
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotateStop", function (e) {
157
+ (0, _defineProperty2["default"])(_this, "rotateStop", function (e) {
194
158
  var isRotating = _this.state.isRotating;
195
-
196
159
  if (!isRotating) {
197
160
  return;
198
161
  }
199
-
200
162
  e.preventDefault();
201
-
202
163
  _this.setState({
203
164
  isRotating: false,
204
165
  angle: _this.state.rotation,
@@ -209,31 +170,26 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
209
170
  document.removeEventListener('mousemove', _this.drag);
210
171
  });
211
172
  });
212
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotate", function (e) {
173
+ (0, _defineProperty2["default"])(_this, "rotate", function (e) {
213
174
  var isRotating = _this.state.isRotating;
214
-
215
175
  if (!isRotating) {
216
176
  return;
217
177
  }
218
-
219
178
  e.preventDefault();
220
179
  var _this$state = _this.state,
221
- startAngle = _this$state.startAngle,
222
- angle = _this$state.angle,
223
- anchor = _this$state.anchor;
224
-
180
+ startAngle = _this$state.startAngle,
181
+ angle = _this$state.angle,
182
+ anchor = _this$state.anchor;
225
183
  var _this$getAngle2 = _this.getAngle(anchor, e),
226
- current = _this$getAngle2.angle,
227
- x = _this$getAngle2.x,
228
- y = _this$getAngle2.y;
229
-
184
+ current = _this$getAngle2.angle,
185
+ x = _this$getAngle2.x,
186
+ y = _this$getAngle2.y;
230
187
  var computedAnchor = {
231
188
  x: x,
232
189
  y: y
233
190
  };
234
191
  var diff = current - startAngle;
235
192
  var rotation = angle + diff;
236
-
237
193
  _this.setState({
238
194
  rotation: rotation,
239
195
  diff: diff,
@@ -241,47 +197,42 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
241
197
  computedAnchor: computedAnchor
242
198
  });
243
199
  });
244
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseDown", function (e) {
200
+ (0, _defineProperty2["default"])(_this, "mouseDown", function (e) {
245
201
  var handle = _this.handles.find(function (h) {
246
202
  return h.el === e.target;
247
203
  });
248
-
249
204
  if (!handle) {
250
205
  _this.dragStart(e);
251
206
  }
252
207
  });
253
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragStart", function (e) {
208
+ (0, _defineProperty2["default"])(_this, "dragStart", function (e) {
254
209
  var dragPoint = new _pointGeometry["default"](e.pageX, e.pageY);
255
-
256
210
  _this.setState({
257
211
  dragPoint: dragPoint
258
212
  }, function () {
259
213
  document.addEventListener('mousemove', _this.drag);
260
214
  });
261
215
  });
262
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "drag", function (e) {
216
+ (0, _defineProperty2["default"])(_this, "drag", function (e) {
263
217
  e.preventDefault();
264
218
  var current = new _pointGeometry["default"](e.pageX, e.pageY);
265
219
  var translate = current.sub(_this.state.dragPoint);
266
-
267
220
  _this.setState({
268
221
  translate: translate
269
222
  });
270
223
  });
271
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseUp", function () {
224
+ (0, _defineProperty2["default"])(_this, "mouseUp", function () {
272
225
  if (!_this.state.translate) {
273
226
  return;
274
227
  }
275
-
276
228
  var _this$state2 = _this.state,
277
- lastPosition = _this$state2.position,
278
- translate = _this$state2.translate;
229
+ lastPosition = _this$state2.position,
230
+ translate = _this$state2.translate;
279
231
  var position = {
280
232
  left: lastPosition.left + translate.x,
281
233
  top: lastPosition.top + translate.y
282
234
  };
283
235
  document.removeEventListener('mousemove', _this.drag);
284
-
285
236
  _this.setState({
286
237
  position: position,
287
238
  dragPoint: null,
@@ -300,12 +251,11 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
300
251
  };
301
252
  return _this;
302
253
  }
303
-
304
- (0, _createClass2["default"])(Rotatable, [{
254
+ (0, _inherits2["default"])(Rotatable, _React$Component);
255
+ return (0, _createClass2["default"])(Rotatable, [{
305
256
  key: "componentWillUnmount",
306
257
  value: function componentWillUnmount() {
307
258
  var _this2 = this;
308
-
309
259
  document.removeEventListener('mouseup', this.rotateStop);
310
260
  document.removeEventListener('mousemove', this.drag);
311
261
  document.removeEventListener('mousemove', this.rotate);
@@ -335,18 +285,16 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
335
285
  key: "render",
336
286
  value: function render() {
337
287
  var _this3 = this;
338
-
339
288
  var _this$props = this.props,
340
- children = _this$props.children,
341
- classes = _this$props.classes,
342
- showAnchor = _this$props.showAnchor,
343
- className = _this$props.className;
289
+ children = _this$props.children,
290
+ showAnchor = _this$props.showAnchor,
291
+ className = _this$props.className;
344
292
  var _this$state3 = this.state,
345
- rotation = _this$state3.rotation,
346
- anchor = _this$state3.anchor,
347
- origin = _this$state3.origin,
348
- translate = _this$state3.translate,
349
- position = _this$state3.position;
293
+ rotation = _this$state3.rotation,
294
+ anchor = _this$state3.anchor,
295
+ origin = _this$state3.origin,
296
+ translate = _this$state3.translate,
297
+ position = _this$state3.position;
350
298
  var t = translate ? "translate(".concat(translate.x, "px, ").concat(translate.y, "px)") : '';
351
299
  var style = {
352
300
  left: position.left,
@@ -354,8 +302,8 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
354
302
  transformOrigin: origin,
355
303
  transform: "".concat(t, " rotate(").concat(rotation, "deg)")
356
304
  };
357
- return /*#__PURE__*/_react["default"].createElement("div", {
358
- className: (0, _classnames["default"])(classes.rotatable, className),
305
+ return /*#__PURE__*/_react["default"].createElement(RotatableContainer, {
306
+ className: className,
359
307
  style: style,
360
308
  ref: function ref(r) {
361
309
  return _this3.rotatable = r;
@@ -365,12 +313,8 @@ var Rotatable = /*#__PURE__*/function (_React$Component) {
365
313
  }, anchor && showAnchor && /*#__PURE__*/_react["default"].createElement(Anchor, anchor), children);
366
314
  }
367
315
  }]);
368
- return Rotatable;
369
316
  }(_react["default"].Component);
370
-
371
- exports.Rotatable = Rotatable;
372
317
  (0, _defineProperty2["default"])(Rotatable, "propTypes", {
373
- classes: _propTypes["default"].object.isRequired,
374
318
  children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
375
319
  showAnchor: _propTypes["default"].bool,
376
320
  handle: _propTypes["default"].arrayOf(_propTypes["default"].shape({
@@ -390,14 +334,5 @@ exports.Rotatable = Rotatable;
390
334
  top: 0
391
335
  }
392
336
  });
393
-
394
- var _default = (0, _styles.withStyles)({
395
- rotatable: {
396
- position: 'relative',
397
- display: 'inline-block',
398
- cursor: 'move'
399
- }
400
- })(Rotatable);
401
-
402
- exports["default"] = _default;
337
+ var _default = exports["default"] = Rotatable;
403
338
  //# sourceMappingURL=rotatable.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/rotatable.jsx"],"names":["Anchor","anchor","position","zIndex","width","height","classes","left","top","color","fill","Rotatable","props","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","document","clientWidth","clientHeight","rotation","state","getBoundingClientRect","xy","originToXY","anchorTop","anchorLeft","e","isRotating","preventDefault","getAnchor","getAngle","startAngle","angle","diff","x","y","setState","rotate","current","removeEventListener","drag","computedAnchor","find","target","dragStart","dragPoint","Point","pageX","pageY","translate","sub","lastPosition","startPosition","addMouseUpHandler","initHandles","clientX","clientY","children","showAnchor","className","t","style","transformOrigin","transform","r","mouseDown","mouseUp","React","Component","PropTypes","object","isRequired","oneOfType","arrayOf","node","bool","shape","string","number","display","cursor"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\nimport classNames from 'classnames';\n\nconst Anchor = withStyles({\n anchor: {\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n },\n})(({ classes, left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <svg\n className={classes.anchor}\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </svg>\n </Portal>\n );\n});\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nexport class Rotatable extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, classes, showAnchor, className } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <div\n className={classNames(classes.rotatable, className)}\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </div>\n );\n }\n}\n\nexport default withStyles({\n rotatable: {\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n },\n})(Rotatable);\n"],"file":"rotatable.js"}
1
+ {"version":3,"file":"rotatable.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_anchorUtils","_reactPortal","_pointGeometry","_transformOrigin","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","AnchorSvg","styled","position","zIndex","width","height","Anchor","_ref","left","top","color","fill","createElement","Portal","style","cx","cy","r","strokeWidth","stroke","RotatableContainer","display","cursor","Rotatable","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","concat","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","document","_this$rotatable","clientWidth","clientHeight","parseOrigin","rotation","state","_this$rotatable2","_this$rotatable$getBo","getBoundingClientRect","xy","originToXY","_calcAnchor","calcAnchor","anchorTop","anchorLeft","isRotating","preventDefault","anchor","getAnchor","_this$getAngle","getAngle","startAngle","angle","diff","x","y","_this$rotatable3","distanceBetween","setState","rotate","current","removeEventListener","drag","_this$state","_this$getAngle2","computedAnchor","find","target","dragStart","dragPoint","Point","pageX","pageY","translate","sub","_this$state2","lastPosition","startPosition","_inherits2","_createClass2","key","value","componentWillUnmount","_this2","componentDidMount","addMouseUpHandler","initHandles","clientX","clientY","arctangent","render","_this3","_this$props","children","showAnchor","className","_this$state3","transformOrigin","transform","ref","onMouseDown","mouseDown","onMouseUp","mouseUp","React","Component","PropTypes","oneOfType","arrayOf","node","isRequired","bool","shape","string","number","_default"],"sources":["../src/rotatable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\n\nconst AnchorSvg = styled('svg')({\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n});\n\nconst Anchor = ({ left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <AnchorSvg\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </AnchorSvg>\n </Portal>\n );\n};\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nconst RotatableContainer = styled('div')({\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n});\n\nexport class Rotatable extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, showAnchor, className } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <RotatableContainer\n className={className}\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </RotatableContainer>\n );\n }\n}\n\nexport default Rotatable;\n"],"mappings":"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","ignoreList":[]}
@@ -1,80 +1,61 @@
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.Graphic = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
10
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
11
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
20
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
14
  var _react = _interopRequireDefault(require("react"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _styles = require("@material-ui/core/styles");
27
-
16
+ var _styles = require("@mui/material/styles");
28
17
  var _unitType = _interopRequireDefault(require("./unit-type"));
29
-
30
18
  var _range = _interopRequireDefault(require("lodash/range"));
31
-
32
19
  var _unit = _interopRequireDefault(require("./unit"));
33
-
34
20
  var _styleUtils = require("../style-utils");
35
-
36
- 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); }; }
37
-
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; } }
39
-
40
- var Bg = function Bg(_ref) {
41
- var width = _ref.width,
42
- height = _ref.height,
43
- className = _ref.className;
44
- return /*#__PURE__*/_react["default"].createElement("rect", {
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
+ var StyledBg = (0, _styles.styled)('rect')(function (_ref) {
24
+ var theme = _ref.theme;
25
+ return {
26
+ stroke: (0, _styleUtils.strokeColor)(theme),
27
+ strokeWidth: '2px',
28
+ fill: (0, _styleUtils.fillColor)(theme)
29
+ };
30
+ });
31
+ var Bg = function Bg(_ref2) {
32
+ var width = _ref2.width,
33
+ height = _ref2.height;
34
+ return /*#__PURE__*/_react["default"].createElement(StyledBg, {
45
35
  width: width,
46
36
  height: height,
47
37
  cx: 0,
48
- cy: 0,
49
- className: className
38
+ cy: 0
50
39
  });
51
40
  };
52
-
53
41
  Bg.propTypes = {
54
42
  width: _propTypes["default"].number.isRequired,
55
- height: _propTypes["default"].number.isRequired,
56
- className: _propTypes["default"].string.isRequired
43
+ height: _propTypes["default"].number.isRequired
57
44
  };
58
-
59
- var Graphic = /*#__PURE__*/function (_React$PureComponent) {
60
- (0, _inherits2["default"])(Graphic, _React$PureComponent);
61
-
62
- var _super = _createSuper(Graphic);
63
-
45
+ var Graphic = exports.Graphic = /*#__PURE__*/function (_React$PureComponent) {
64
46
  function Graphic() {
65
47
  (0, _classCallCheck2["default"])(this, Graphic);
66
- return _super.apply(this, arguments);
48
+ return _callSuper(this, Graphic, arguments);
67
49
  }
68
-
69
- (0, _createClass2["default"])(Graphic, [{
50
+ (0, _inherits2["default"])(Graphic, _React$PureComponent);
51
+ return (0, _createClass2["default"])(Graphic, [{
70
52
  key: "render",
71
53
  value: function render() {
72
54
  var _this$props = this.props,
73
- width = _this$props.width,
74
- height = _this$props.height,
75
- classes = _this$props.classes,
76
- units = _this$props.units,
77
- unit = _this$props.unit;
55
+ width = _this$props.width,
56
+ height = _this$props.height,
57
+ units = _this$props.units,
58
+ unit = _this$props.unit;
78
59
  var viewBox = "0 0 ".concat(width, " ").concat(height);
79
60
  var unitWidth = width / units;
80
61
  var unitHeight = height;
@@ -82,8 +63,7 @@ var Graphic = /*#__PURE__*/function (_React$PureComponent) {
82
63
  viewBox: viewBox
83
64
  }, /*#__PURE__*/_react["default"].createElement(Bg, {
84
65
  width: width,
85
- height: height,
86
- className: classes.bg
66
+ height: height
87
67
  }), /*#__PURE__*/_react["default"].createElement(_unitType["default"], {
88
68
  label: unit.type
89
69
  }), (0, _range["default"])(1, units + 1).map(function (r) {
@@ -98,29 +78,12 @@ var Graphic = /*#__PURE__*/function (_React$PureComponent) {
98
78
  }));
99
79
  }
100
80
  }]);
101
- return Graphic;
102
81
  }(_react["default"].PureComponent);
103
-
104
- exports.Graphic = Graphic;
105
82
  (0, _defineProperty2["default"])(Graphic, "propTypes", {
106
83
  width: _propTypes["default"].number.isRequired,
107
84
  height: _propTypes["default"].number.isRequired,
108
85
  units: _propTypes["default"].number.isRequired,
109
- unit: _propTypes["default"].object.isRequired,
110
- classes: _propTypes["default"].object.isRequired
86
+ unit: _propTypes["default"].object.isRequired
111
87
  });
112
-
113
- var styles = function styles(theme) {
114
- return {
115
- bg: {
116
- stroke: (0, _styleUtils.strokeColor)(theme),
117
- strokeWidth: '2px',
118
- fill: (0, _styleUtils.fillColor)(theme)
119
- }
120
- };
121
- };
122
-
123
- var _default = (0, _styles.withStyles)(styles)(Graphic);
124
-
125
- exports["default"] = _default;
88
+ var _default = exports["default"] = Graphic;
126
89
  //# sourceMappingURL=graphic.js.map