@pie-lib/tools 0.12.0 → 0.13.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 DELETED
@@ -1,403 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.Rotatable = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- 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
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
30
- var _anchorUtils = require("./anchor-utils");
31
-
32
- var _reactPortal = require("react-portal");
33
-
34
- var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
35
-
36
- 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;
57
- color = color || 'green';
58
- fill = fill || 'white';
59
- return /*#__PURE__*/_react["default"].createElement(_reactPortal.Portal, null, /*#__PURE__*/_react["default"].createElement("svg", {
60
- className: classes.anchor,
61
- style: {
62
- left: left - 10,
63
- top: top - 10
64
- }
65
- }, /*#__PURE__*/_react["default"].createElement("circle", {
66
- cx: 10,
67
- cy: 10,
68
- r: 8,
69
- strokeWidth: 1,
70
- stroke: color,
71
- fill: fill
72
- })));
73
- });
74
- /**
75
- * Tip o' the hat to:
76
- * https://bl.ocks.org/joyrexus/7207044
77
- */
78
-
79
- var Rotatable = /*#__PURE__*/function (_React$Component) {
80
- (0, _inherits2["default"])(Rotatable, _React$Component);
81
-
82
- var _super = _createSuper(Rotatable);
83
-
84
- function Rotatable(props) {
85
- var _this;
86
-
87
- (0, _classCallCheck2["default"])(this, Rotatable);
88
- _this = _super.call(this, props);
89
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "initHandles", function () {
90
- var handle = _this.props.handle;
91
-
92
- if (Array.isArray(handle)) {
93
- _this.handles = [];
94
- handle.forEach(function (h) {
95
- var el = _this.rotatable.querySelector(".".concat(h["class"]));
96
-
97
- if (el) {
98
- var mousedownHandler = _this.rotateStart(h.origin);
99
-
100
- el.addEventListener('mousedown', mousedownHandler);
101
- el.addEventListener('mouseup', _this.rotateStop);
102
-
103
- _this.handles.push({
104
- el: el,
105
- mousedownHandler: mousedownHandler
106
- });
107
- }
108
- });
109
- }
110
- });
111
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addMouseUpHandler", function () {
112
- document.addEventListener('mouseup', _this.rotateStop);
113
- });
114
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "originToXY", function (origin) {
115
- var _this$rotatable = _this.rotatable,
116
- width = _this$rotatable.clientWidth,
117
- height = _this$rotatable.clientHeight;
118
- return (0, _transformOrigin.parse)({
119
- width: width,
120
- height: height
121
- }, origin);
122
- });
123
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAnchor", function (origin) {
124
- var rotation = _this.state.rotation;
125
- var _this$rotatable2 = _this.rotatable,
126
- clientWidth = _this$rotatable2.clientWidth,
127
- clientHeight = _this$rotatable2.clientHeight;
128
-
129
- var _this$rotatable$getBo = _this.rotatable.getBoundingClientRect(),
130
- top = _this$rotatable$getBo.top,
131
- left = _this$rotatable$getBo.left;
132
-
133
- var xy = _this.originToXY(origin);
134
-
135
- var _calcAnchor = (0, _anchorUtils.getAnchor)({
136
- width: clientWidth,
137
- height: clientHeight
138
- }, xy, rotation),
139
- anchorTop = _calcAnchor.top,
140
- anchorLeft = _calcAnchor.left;
141
-
142
- return {
143
- top: top + anchorTop,
144
- left: left + anchorLeft
145
- };
146
- });
147
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotateStart", function (origin) {
148
- return function (e) {
149
- var isRotating = _this.state.isRotating;
150
-
151
- if (isRotating) {
152
- return;
153
- }
154
-
155
- e.preventDefault();
156
-
157
- var anchor = _this.getAnchor(origin);
158
-
159
- var rotation = _this.state.rotation;
160
-
161
- var _this$getAngle = _this.getAngle(anchor, e),
162
- startAngle = _this$getAngle.angle;
163
-
164
- var diff = {
165
- x: 0,
166
- y: 0
167
- };
168
-
169
- if (origin !== _this.state.origin) {
170
- var _this$rotatable3 = _this.rotatable,
171
- width = _this$rotatable3.clientWidth,
172
- height = _this$rotatable3.clientHeight;
173
- diff = (0, _anchorUtils.distanceBetween)({
174
- width: width,
175
- height: height
176
- }, rotation, _this.state.origin, origin);
177
- }
178
-
179
- _this.setState({
180
- origin: origin,
181
- isRotating: true,
182
- startAngle: startAngle,
183
- anchor: anchor,
184
- position: {
185
- left: _this.state.position.left + diff.x,
186
- top: _this.state.position.top + diff.y
187
- }
188
- }, function () {
189
- document.addEventListener('mousemove', _this.rotate);
190
- });
191
- };
192
- });
193
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotateStop", function (e) {
194
- var isRotating = _this.state.isRotating;
195
-
196
- if (!isRotating) {
197
- return;
198
- }
199
-
200
- e.preventDefault();
201
-
202
- _this.setState({
203
- isRotating: false,
204
- angle: _this.state.rotation,
205
- anchor: null,
206
- current: null
207
- }, function () {
208
- document.removeEventListener('mousemove', _this.rotate);
209
- document.removeEventListener('mousemove', _this.drag);
210
- });
211
- });
212
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "rotate", function (e) {
213
- var isRotating = _this.state.isRotating;
214
-
215
- if (!isRotating) {
216
- return;
217
- }
218
-
219
- e.preventDefault();
220
- var _this$state = _this.state,
221
- startAngle = _this$state.startAngle,
222
- angle = _this$state.angle,
223
- anchor = _this$state.anchor;
224
-
225
- var _this$getAngle2 = _this.getAngle(anchor, e),
226
- current = _this$getAngle2.angle,
227
- x = _this$getAngle2.x,
228
- y = _this$getAngle2.y;
229
-
230
- var computedAnchor = {
231
- x: x,
232
- y: y
233
- };
234
- var diff = current - startAngle;
235
- var rotation = angle + diff;
236
-
237
- _this.setState({
238
- rotation: rotation,
239
- diff: diff,
240
- current: current,
241
- computedAnchor: computedAnchor
242
- });
243
- });
244
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseDown", function (e) {
245
- var handle = _this.handles.find(function (h) {
246
- return h.el === e.target;
247
- });
248
-
249
- if (!handle) {
250
- _this.dragStart(e);
251
- }
252
- });
253
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragStart", function (e) {
254
- var dragPoint = new _pointGeometry["default"](e.pageX, e.pageY);
255
-
256
- _this.setState({
257
- dragPoint: dragPoint
258
- }, function () {
259
- document.addEventListener('mousemove', _this.drag);
260
- });
261
- });
262
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "drag", function (e) {
263
- e.preventDefault();
264
- var current = new _pointGeometry["default"](e.pageX, e.pageY);
265
- var translate = current.sub(_this.state.dragPoint);
266
-
267
- _this.setState({
268
- translate: translate
269
- });
270
- });
271
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseUp", function () {
272
- if (!_this.state.translate) {
273
- return;
274
- }
275
-
276
- var _this$state2 = _this.state,
277
- lastPosition = _this$state2.position,
278
- translate = _this$state2.translate;
279
- var position = {
280
- left: lastPosition.left + translate.x,
281
- top: lastPosition.top + translate.y
282
- };
283
- document.removeEventListener('mousemove', _this.drag);
284
-
285
- _this.setState({
286
- position: position,
287
- dragPoint: null,
288
- translate: null
289
- });
290
- });
291
- _this.state = {
292
- isRotating: false,
293
- rotation: 0,
294
- startAngle: 0,
295
- angle: 0,
296
- position: {
297
- left: props.startPosition.left,
298
- top: props.startPosition.top
299
- }
300
- };
301
- return _this;
302
- }
303
-
304
- (0, _createClass2["default"])(Rotatable, [{
305
- key: "componentWillUnmount",
306
- value: function componentWillUnmount() {
307
- var _this2 = this;
308
-
309
- document.removeEventListener('mouseup', this.rotateStop);
310
- document.removeEventListener('mousemove', this.drag);
311
- document.removeEventListener('mousemove', this.rotate);
312
- this.handles.forEach(function (h) {
313
- h.el.removeEventListener('mousedown', h.mousedownHandler);
314
- h.el.removeEventListener('mouseup', _this2.rotateStop);
315
- });
316
- }
317
- }, {
318
- key: "componentDidMount",
319
- value: function componentDidMount() {
320
- this.addMouseUpHandler();
321
- this.initHandles();
322
- }
323
- }, {
324
- key: "getAngle",
325
- value: function getAngle(anchor, e) {
326
- var x = e.clientX - anchor.left;
327
- var y = (e.clientY - anchor.top) * -1;
328
- return {
329
- angle: (0, _anchorUtils.arctangent)(x, y),
330
- x: x,
331
- y: y
332
- };
333
- }
334
- }, {
335
- key: "render",
336
- value: function render() {
337
- var _this3 = this;
338
-
339
- 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;
344
- 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;
350
- var t = translate ? "translate(".concat(translate.x, "px, ").concat(translate.y, "px)") : '';
351
- var style = {
352
- left: position.left,
353
- top: position.top,
354
- transformOrigin: origin,
355
- transform: "".concat(t, " rotate(").concat(rotation, "deg)")
356
- };
357
- return /*#__PURE__*/_react["default"].createElement("div", {
358
- className: (0, _classnames["default"])(classes.rotatable, className),
359
- style: style,
360
- ref: function ref(r) {
361
- return _this3.rotatable = r;
362
- },
363
- onMouseDown: this.mouseDown,
364
- onMouseUp: this.mouseUp
365
- }, anchor && showAnchor && /*#__PURE__*/_react["default"].createElement(Anchor, anchor), children);
366
- }
367
- }]);
368
- return Rotatable;
369
- }(_react["default"].Component);
370
-
371
- exports.Rotatable = Rotatable;
372
- (0, _defineProperty2["default"])(Rotatable, "propTypes", {
373
- classes: _propTypes["default"].object.isRequired,
374
- children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired,
375
- showAnchor: _propTypes["default"].bool,
376
- handle: _propTypes["default"].arrayOf(_propTypes["default"].shape({
377
- "class": _propTypes["default"].string.isRequired,
378
- origin: _propTypes["default"].string
379
- })),
380
- className: _propTypes["default"].string,
381
- startPosition: _propTypes["default"].shape({
382
- left: _propTypes["default"].number,
383
- top: _propTypes["default"].number
384
- })
385
- });
386
- (0, _defineProperty2["default"])(Rotatable, "defaultProps", {
387
- showAnchor: false,
388
- startPosition: {
389
- left: 0,
390
- top: 0
391
- }
392
- });
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;
403
- //# sourceMappingURL=rotatable.js.map
@@ -1 +0,0 @@
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,126 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.Graphic = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _react = _interopRequireDefault(require("react"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _styles = require("@material-ui/core/styles");
27
-
28
- var _unitType = _interopRequireDefault(require("./unit-type"));
29
-
30
- var _range = _interopRequireDefault(require("lodash/range"));
31
-
32
- var _unit = _interopRequireDefault(require("./unit"));
33
-
34
- 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", {
45
- width: width,
46
- height: height,
47
- cx: 0,
48
- cy: 0,
49
- className: className
50
- });
51
- };
52
-
53
- Bg.propTypes = {
54
- width: _propTypes["default"].number.isRequired,
55
- height: _propTypes["default"].number.isRequired,
56
- className: _propTypes["default"].string.isRequired
57
- };
58
-
59
- var Graphic = /*#__PURE__*/function (_React$PureComponent) {
60
- (0, _inherits2["default"])(Graphic, _React$PureComponent);
61
-
62
- var _super = _createSuper(Graphic);
63
-
64
- function Graphic() {
65
- (0, _classCallCheck2["default"])(this, Graphic);
66
- return _super.apply(this, arguments);
67
- }
68
-
69
- (0, _createClass2["default"])(Graphic, [{
70
- key: "render",
71
- value: function render() {
72
- 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;
78
- var viewBox = "0 0 ".concat(width, " ").concat(height);
79
- var unitWidth = width / units;
80
- var unitHeight = height;
81
- return /*#__PURE__*/_react["default"].createElement("svg", {
82
- viewBox: viewBox
83
- }, /*#__PURE__*/_react["default"].createElement(Bg, {
84
- width: width,
85
- height: height,
86
- className: classes.bg
87
- }), /*#__PURE__*/_react["default"].createElement(_unitType["default"], {
88
- label: unit.type
89
- }), (0, _range["default"])(1, units + 1).map(function (r) {
90
- return /*#__PURE__*/_react["default"].createElement(_unit["default"], {
91
- width: unitWidth,
92
- height: unitHeight,
93
- key: r,
94
- index: r,
95
- config: unit,
96
- last: r === units
97
- });
98
- }));
99
- }
100
- }]);
101
- return Graphic;
102
- }(_react["default"].PureComponent);
103
-
104
- exports.Graphic = Graphic;
105
- (0, _defineProperty2["default"])(Graphic, "propTypes", {
106
- width: _propTypes["default"].number.isRequired,
107
- height: _propTypes["default"].number.isRequired,
108
- units: _propTypes["default"].number.isRequired,
109
- unit: _propTypes["default"].object.isRequired,
110
- classes: _propTypes["default"].object.isRequired
111
- });
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;
126
- //# sourceMappingURL=graphic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ruler/graphic.jsx"],"names":["Bg","width","height","className","propTypes","PropTypes","number","isRequired","string","Graphic","props","classes","units","unit","viewBox","unitWidth","unitHeight","bg","type","map","r","React","PureComponent","object","styles","theme","stroke","strokeWidth","fill"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,EAAE,GAAG,SAALA,EAAK;AAAA,MAAGC,KAAH,QAAGA,KAAH;AAAA,MAAUC,MAAV,QAAUA,MAAV;AAAA,MAAkBC,SAAlB,QAAkBA,SAAlB;AAAA,sBAAkC;AAAM,IAAA,KAAK,EAAEF,KAAb;AAAoB,IAAA,MAAM,EAAEC,MAA5B;AAAoC,IAAA,EAAE,EAAE,CAAxC;AAA2C,IAAA,EAAE,EAAE,CAA/C;AAAkD,IAAA,SAAS,EAAEC;AAA7D,IAAlC;AAAA,CAAX;;AAEAH,EAAE,CAACI,SAAH,GAAe;AACbH,EAAAA,KAAK,EAAEI,sBAAUC,MAAV,CAAiBC,UADX;AAEbL,EAAAA,MAAM,EAAEG,sBAAUC,MAAV,CAAiBC,UAFZ;AAGbJ,EAAAA,SAAS,EAAEE,sBAAUG,MAAV,CAAiBD;AAHf,CAAf;;IAMaE,O;;;;;;;;;;;;WASX,kBAAS;AACP,wBAAgD,KAAKC,KAArD;AAAA,UAAQT,KAAR,eAAQA,KAAR;AAAA,UAAeC,MAAf,eAAeA,MAAf;AAAA,UAAuBS,OAAvB,eAAuBA,OAAvB;AAAA,UAAgCC,KAAhC,eAAgCA,KAAhC;AAAA,UAAuCC,IAAvC,eAAuCA,IAAvC;AACA,UAAMC,OAAO,iBAAUb,KAAV,cAAmBC,MAAnB,CAAb;AACA,UAAMa,SAAS,GAAGd,KAAK,GAAGW,KAA1B;AACA,UAAMI,UAAU,GAAGd,MAAnB;AAEA,0BACE;AAAK,QAAA,OAAO,EAAEY;AAAd,sBACE,gCAAC,EAAD;AAAI,QAAA,KAAK,EAAEb,KAAX;AAAkB,QAAA,MAAM,EAAEC,MAA1B;AAAkC,QAAA,SAAS,EAAES,OAAO,CAACM;AAArD,QADF,eAEE,gCAAC,oBAAD;AAAU,QAAA,KAAK,EAAEJ,IAAI,CAACK;AAAtB,QAFF,EAGG,uBAAM,CAAN,EAASN,KAAK,GAAG,CAAjB,EAAoBO,GAApB,CAAwB,UAACC,CAAD;AAAA,4BACvB,gCAAC,gBAAD;AAAM,UAAA,KAAK,EAAEL,SAAb;AAAwB,UAAA,MAAM,EAAEC,UAAhC;AAA4C,UAAA,GAAG,EAAEI,CAAjD;AAAoD,UAAA,KAAK,EAAEA,CAA3D;AAA8D,UAAA,MAAM,EAAEP,IAAtE;AAA4E,UAAA,IAAI,EAAEO,CAAC,KAAKR;AAAxF,UADuB;AAAA,OAAxB,CAHH,CADF;AASD;;;EAxB0BS,kBAAMC,a;;;iCAAtBb,O,eACQ;AACjBR,EAAAA,KAAK,EAAEI,sBAAUC,MAAV,CAAiBC,UADP;AAEjBL,EAAAA,MAAM,EAAEG,sBAAUC,MAAV,CAAiBC,UAFR;AAGjBK,EAAAA,KAAK,EAAEP,sBAAUC,MAAV,CAAiBC,UAHP;AAIjBM,EAAAA,IAAI,EAAER,sBAAUkB,MAAV,CAAiBhB,UAJN;AAKjBI,EAAAA,OAAO,EAAEN,sBAAUkB,MAAV,CAAiBhB;AALT,C;;AAyBrB,IAAMiB,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBR,IAAAA,EAAE,EAAE;AACFS,MAAAA,MAAM,EAAE,6BAAYD,KAAZ,CADN;AAEFE,MAAAA,WAAW,EAAE,KAFX;AAGFC,MAAAA,IAAI,EAAE,2BAAUH,KAAV;AAHJ;AADqB,GAAZ;AAAA,CAAf;;eAQe,wBAAWD,MAAX,EAAmBf,OAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport UnitType from './unit-type';\nimport range from 'lodash/range';\nimport Unit from './unit';\nimport { strokeColor, fillColor } from '../style-utils';\n\nconst Bg = ({ width, height, className }) => <rect width={width} height={height} cx={0} cy={0} className={className} />;\n\nBg.propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n className: PropTypes.string.isRequired,\n};\n\nexport class Graphic extends React.PureComponent {\n static propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n units: PropTypes.number.isRequired,\n unit: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n render() {\n const { width, height, classes, units, unit } = this.props;\n const viewBox = `0 0 ${width} ${height}`;\n const unitWidth = width / units;\n const unitHeight = height;\n\n return (\n <svg viewBox={viewBox}>\n <Bg width={width} height={height} className={classes.bg} />\n <UnitType label={unit.type} />\n {range(1, units + 1).map((r) => (\n <Unit width={unitWidth} height={unitHeight} key={r} index={r} config={unit} last={r === units} />\n ))}\n </svg>\n );\n }\n}\nconst styles = (theme) => ({\n bg: {\n stroke: strokeColor(theme),\n strokeWidth: '2px',\n fill: fillColor(theme),\n },\n});\n\nexport default withStyles(styles)(Graphic);\n"],"file":"graphic.js"}