@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/CHANGELOG.md +9 -15
- package/lib/anchor-utils.js +18 -74
- package/lib/anchor-utils.js.map +1 -1
- package/lib/anchor.js +24 -28
- package/lib/anchor.js.map +1 -1
- package/lib/index.js +1 -11
- package/lib/index.js.map +1 -1
- package/lib/protractor/graphic.js +68 -105
- package/lib/protractor/graphic.js.map +1 -1
- package/lib/protractor/index.js +36 -63
- package/lib/protractor/index.js.map +1 -1
- package/lib/rotatable.js +75 -140
- package/lib/rotatable.js.map +1 -1
- package/lib/ruler/graphic.js +29 -66
- package/lib/ruler/graphic.js.map +1 -1
- package/lib/ruler/index.js +44 -72
- package/lib/ruler/index.js.map +1 -1
- package/lib/ruler/unit-type.js +19 -36
- package/lib/ruler/unit-type.js.map +1 -1
- package/lib/ruler/unit.js +51 -88
- package/lib/ruler/unit.js.map +1 -1
- package/lib/style-utils.js +2 -9
- package/lib/style-utils.js.map +1 -1
- package/lib/transform-origin.js +2 -13
- package/lib/transform-origin.js.map +1 -1
- package/package.json +12 -8
- package/src/anchor.jsx +15 -16
- package/src/protractor/graphic.jsx +49 -54
- package/src/protractor/index.jsx +23 -20
- package/src/rotatable.jsx +24 -27
- package/src/ruler/graphic.jsx +11 -14
- package/src/ruler/index.jsx +25 -25
- package/src/ruler/unit-type.jsx +10 -9
- package/src/ruler/unit.jsx +25 -29
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
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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(
|
|
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
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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 =
|
|
89
|
-
(0, _defineProperty2["default"])(
|
|
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"])(
|
|
83
|
+
(0, _defineProperty2["default"])(_this, "addMouseUpHandler", function () {
|
|
112
84
|
document.addEventListener('mouseup', _this.rotateStop);
|
|
113
85
|
});
|
|
114
|
-
(0, _defineProperty2["default"])(
|
|
86
|
+
(0, _defineProperty2["default"])(_this, "originToXY", function (origin) {
|
|
115
87
|
var _this$rotatable = _this.rotatable,
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
102
|
+
clientWidth = _this$rotatable2.clientWidth,
|
|
103
|
+
clientHeight = _this$rotatable2.clientHeight;
|
|
129
104
|
var _this$rotatable$getBo = _this.rotatable.getBoundingClientRect(),
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
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"])(
|
|
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
|
-
|
|
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
|
-
|
|
172
|
-
|
|
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"])(
|
|
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"])(
|
|
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
|
-
|
|
222
|
-
|
|
223
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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"])(
|
|
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"])(
|
|
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"])(
|
|
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"])(
|
|
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
|
-
|
|
278
|
-
|
|
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
|
-
|
|
341
|
-
|
|
342
|
-
|
|
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
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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(
|
|
358
|
-
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
|
package/lib/rotatable.js.map
CHANGED
|
@@ -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":[]}
|
package/lib/ruler/graphic.js
CHANGED
|
@@ -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
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|