@pie-lib/plot 2.10.0 → 2.12.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 +24 -52
- package/package.json +4 -4
- package/lib/draggable.js +0 -65
- package/lib/draggable.js.map +0 -1
- package/lib/graph-props.js +0 -53
- package/lib/graph-props.js.map +0 -1
- package/lib/grid-draggable.js +0 -381
- package/lib/grid-draggable.js.map +0 -1
- package/lib/index.js +0 -59
- package/lib/index.js.map +0 -1
- package/lib/label.js +0 -176
- package/lib/label.js.map +0 -1
- package/lib/root.js +0 -422
- package/lib/root.js.map +0 -1
- package/lib/trig.js +0 -196
- package/lib/trig.js.map +0 -1
- package/lib/types.js +0 -68
- package/lib/types.js.map +0 -1
- package/lib/utils.js +0 -232
- package/lib/utils.js.map +0 -1
package/lib/grid-draggable.js
DELETED
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.gridDraggable = exports.deltaFn = void 0;
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
-
|
|
16
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
-
|
|
24
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
-
|
|
26
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
27
|
-
|
|
28
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
29
|
-
|
|
30
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
|
-
|
|
32
|
-
var _react = _interopRequireDefault(require("react"));
|
|
33
|
-
|
|
34
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
|
-
var _types = require("./types");
|
|
37
|
-
|
|
38
|
-
var _draggable = require("./draggable");
|
|
39
|
-
|
|
40
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
41
|
-
|
|
42
|
-
var utils = _interopRequireWildcard(require("./utils"));
|
|
43
|
-
|
|
44
|
-
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
45
|
-
|
|
46
|
-
var _invariant = _interopRequireDefault(require("invariant"));
|
|
47
|
-
|
|
48
|
-
var _d3Selection = require("d3-selection");
|
|
49
|
-
|
|
50
|
-
var _excluded = ["disabled"];
|
|
51
|
-
|
|
52
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
53
|
-
|
|
54
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
55
|
-
|
|
56
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
57
|
-
|
|
58
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
59
|
-
|
|
60
|
-
var log = (0, _debug["default"])('pie-lib:plot:grid-draggable');
|
|
61
|
-
|
|
62
|
-
var deltaFn = function deltaFn(scale, snap, val) {
|
|
63
|
-
return function (delta) {
|
|
64
|
-
var normalized = delta + scale(0);
|
|
65
|
-
var inverted = scale.invert(normalized);
|
|
66
|
-
var fixDecimalsArithmetic = snap(val + inverted).toFixed(4) * 1000 / 1000;
|
|
67
|
-
return fixDecimalsArithmetic;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Creates a Component that is draggable, within a bounded grid.
|
|
72
|
-
* @param {*} opts
|
|
73
|
-
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
exports.deltaFn = deltaFn;
|
|
77
|
-
|
|
78
|
-
var gridDraggable = function gridDraggable(opts) {
|
|
79
|
-
return function (Comp) {
|
|
80
|
-
var _class;
|
|
81
|
-
|
|
82
|
-
(0, _invariant["default"])(!!opts && (0, _isFunction["default"])(opts.fromDelta) && (0, _isFunction["default"])(opts.bounds) && (0, _isFunction["default"])(opts.anchorPoint), 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }');
|
|
83
|
-
return _class = /*#__PURE__*/function (_React$Component) {
|
|
84
|
-
(0, _inherits2["default"])(GridDraggable, _React$Component);
|
|
85
|
-
|
|
86
|
-
var _super = _createSuper(GridDraggable);
|
|
87
|
-
|
|
88
|
-
function GridDraggable() {
|
|
89
|
-
var _this;
|
|
90
|
-
|
|
91
|
-
(0, _classCallCheck2["default"])(this, GridDraggable);
|
|
92
|
-
|
|
93
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
94
|
-
args[_key] = arguments[_key];
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
98
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "grid", function () {
|
|
99
|
-
var graphProps = _this.props.graphProps;
|
|
100
|
-
var scale = graphProps.scale,
|
|
101
|
-
domain = graphProps.domain,
|
|
102
|
-
range = graphProps.range;
|
|
103
|
-
return {
|
|
104
|
-
x: scale.x(domain.step) - scale.x(0),
|
|
105
|
-
y: scale.y(range.step) - scale.y(0)
|
|
106
|
-
};
|
|
107
|
-
});
|
|
108
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStart", function (e) {
|
|
109
|
-
var onDragStart = _this.props.onDragStart;
|
|
110
|
-
|
|
111
|
-
if (document.activeElement) {
|
|
112
|
-
document.activeElement.blur();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
_this.setState({
|
|
116
|
-
startX: e.clientX,
|
|
117
|
-
startY: e.clientY
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
if (onDragStart) {
|
|
121
|
-
onDragStart();
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "position", function () {
|
|
125
|
-
var _opts$anchorPoint = opts.anchorPoint(_this.props),
|
|
126
|
-
x = _opts$anchorPoint.x,
|
|
127
|
-
y = _opts$anchorPoint.y;
|
|
128
|
-
|
|
129
|
-
var graphProps = _this.props.graphProps;
|
|
130
|
-
var scale = graphProps.scale,
|
|
131
|
-
snap = graphProps.snap;
|
|
132
|
-
return {
|
|
133
|
-
anchorPoint: {
|
|
134
|
-
x: x,
|
|
135
|
-
y: y
|
|
136
|
-
},
|
|
137
|
-
x: deltaFn(scale.x, snap.x, x),
|
|
138
|
-
y: deltaFn(scale.y, snap.y, y)
|
|
139
|
-
};
|
|
140
|
-
});
|
|
141
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "tiny", function (key, event) {
|
|
142
|
-
var K = key.toUpperCase();
|
|
143
|
-
var end = event["client".concat(K)];
|
|
144
|
-
|
|
145
|
-
var start = _this.state["start".concat(K)];
|
|
146
|
-
|
|
147
|
-
var delta = Math.abs(end - start);
|
|
148
|
-
var out = delta < Math.abs(_this.grid()[key]) / 10;
|
|
149
|
-
log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);
|
|
150
|
-
return out;
|
|
151
|
-
});
|
|
152
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getScaledBounds", function () {
|
|
153
|
-
var bounds = opts.bounds(_this.props, _this.props.graphProps);
|
|
154
|
-
log('bounds: ', bounds);
|
|
155
|
-
|
|
156
|
-
var grid = _this.grid();
|
|
157
|
-
|
|
158
|
-
var scaled = {
|
|
159
|
-
left: bounds.left / grid.interval * grid.x,
|
|
160
|
-
right: bounds.right / grid.interval * grid.x,
|
|
161
|
-
top: bounds.top / grid.interval * grid.y,
|
|
162
|
-
bottom: bounds.bottom / grid.interval * grid.y
|
|
163
|
-
};
|
|
164
|
-
log('[getScaledBounds]: ', scaled);
|
|
165
|
-
return scaled;
|
|
166
|
-
});
|
|
167
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClientPoint", function (node, event) {
|
|
168
|
-
if (!node || !event) {
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
var svg = node.ownerSVGElement || node;
|
|
173
|
-
|
|
174
|
-
if (svg && svg.createSVGPoint) {
|
|
175
|
-
var point = svg.createSVGPoint(); // Check if it's a touch event and use the first touch point
|
|
176
|
-
|
|
177
|
-
if (event.touches && event.touches.length > 0) {
|
|
178
|
-
var touch = event.touches[0];
|
|
179
|
-
point.x = touch.clientX;
|
|
180
|
-
point.y = touch.clientY;
|
|
181
|
-
} else {
|
|
182
|
-
// Fall back to mouse event properties
|
|
183
|
-
point.x = event.clientX;
|
|
184
|
-
point.y = event.clientY;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
if (node.getScreenCTM) {
|
|
188
|
-
point = point.matrixTransform(node.getScreenCTM().inverse());
|
|
189
|
-
return [point.x, point.y];
|
|
190
|
-
} else {
|
|
191
|
-
return null;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
var rect = node.getBoundingClientRect();
|
|
196
|
-
|
|
197
|
-
if (rect) {
|
|
198
|
-
return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
|
|
199
|
-
} else {
|
|
200
|
-
return null;
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "skipDragOutsideOfBounds", function (dd, e, graphProps) {
|
|
204
|
-
// Ignore drag movement outside of the domain and range.
|
|
205
|
-
var rootNode = graphProps.getRootNode();
|
|
206
|
-
|
|
207
|
-
var clientPoint = _this.getClientPoint(rootNode, e);
|
|
208
|
-
|
|
209
|
-
if (clientPoint === null) {
|
|
210
|
-
return true; // Indicate that the drag is outside of bounds
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
var _clientPoint = (0, _slicedToArray2["default"])(clientPoint, 2),
|
|
214
|
-
rawX = _clientPoint[0],
|
|
215
|
-
rawY = _clientPoint[1];
|
|
216
|
-
|
|
217
|
-
var scale = graphProps.scale,
|
|
218
|
-
domain = graphProps.domain,
|
|
219
|
-
range = graphProps.range;
|
|
220
|
-
var x = scale.x.invert(rawX);
|
|
221
|
-
var y = scale.y.invert(rawY);
|
|
222
|
-
var xOutside = dd.deltaX > 0 && x < domain.min || dd.deltaX < 0 && x > domain.max;
|
|
223
|
-
var yOutside = dd.deltaY > 0 && y > range.max || dd.deltaY < 0 && y < range.min;
|
|
224
|
-
return xOutside || yOutside;
|
|
225
|
-
});
|
|
226
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDrag", function (e, dd) {
|
|
227
|
-
var _this$props = _this.props,
|
|
228
|
-
onDrag = _this$props.onDrag,
|
|
229
|
-
graphProps = _this$props.graphProps;
|
|
230
|
-
|
|
231
|
-
if (!onDrag) {
|
|
232
|
-
return;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
var bounds = _this.getScaledBounds();
|
|
236
|
-
|
|
237
|
-
if (dd.deltaX < 0 && dd.deltaX < bounds.left) {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
if (dd.deltaX > 0 && dd.deltaX > bounds.right) {
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
if (dd.deltaY < 0 && dd.deltaY < bounds.top) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
if (_this.skipDragOutsideOfBounds(dd, e, graphProps)) {
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
var dragArg = _this.applyDelta({
|
|
258
|
-
x: dd.deltaX,
|
|
259
|
-
y: dd.deltaY
|
|
260
|
-
});
|
|
261
|
-
|
|
262
|
-
if (dragArg !== undefined || dragArg !== null) {
|
|
263
|
-
onDrag(dragArg);
|
|
264
|
-
}
|
|
265
|
-
});
|
|
266
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getDelta", function (point) {
|
|
267
|
-
var pos = _this.position();
|
|
268
|
-
|
|
269
|
-
var p = {
|
|
270
|
-
x: pos.x(point.x),
|
|
271
|
-
y: pos.y(point.y)
|
|
272
|
-
};
|
|
273
|
-
return utils.getDelta(pos.anchorPoint, p);
|
|
274
|
-
});
|
|
275
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "applyDelta", function (point) {
|
|
276
|
-
var delta = _this.getDelta(point);
|
|
277
|
-
|
|
278
|
-
log('[applyDelta] delta:', delta);
|
|
279
|
-
return opts.fromDelta(_this.props, delta);
|
|
280
|
-
});
|
|
281
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onStop", function (e, dd) {
|
|
282
|
-
log('[onStop] dd:', dd);
|
|
283
|
-
var _this$props2 = _this.props,
|
|
284
|
-
onDragStop = _this$props2.onDragStop,
|
|
285
|
-
onClick = _this$props2.onClick;
|
|
286
|
-
|
|
287
|
-
if (onDragStop) {
|
|
288
|
-
onDragStop();
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);
|
|
292
|
-
|
|
293
|
-
var isClick = _this.tiny('x', e) && _this.tiny('y', e);
|
|
294
|
-
|
|
295
|
-
if (isClick) {
|
|
296
|
-
if (onClick) {
|
|
297
|
-
log('call onClick');
|
|
298
|
-
|
|
299
|
-
_this.setState({
|
|
300
|
-
startX: null
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
var graphProps = _this.props.graphProps;
|
|
304
|
-
var scale = graphProps.scale,
|
|
305
|
-
snap = graphProps.snap;
|
|
306
|
-
|
|
307
|
-
var _clientPoint2 = (0, _d3Selection.clientPoint)(e.target, e),
|
|
308
|
-
_clientPoint3 = (0, _slicedToArray2["default"])(_clientPoint2, 2),
|
|
309
|
-
rawX = _clientPoint3[0],
|
|
310
|
-
rawY = _clientPoint3[1];
|
|
311
|
-
|
|
312
|
-
var x = scale.x.invert(rawX);
|
|
313
|
-
var y = scale.y.invert(rawY);
|
|
314
|
-
x = snap.x(x);
|
|
315
|
-
y = snap.y(y);
|
|
316
|
-
onClick({
|
|
317
|
-
x: x,
|
|
318
|
-
y: y
|
|
319
|
-
});
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
_this.setState({
|
|
325
|
-
startX: null,
|
|
326
|
-
startY: null
|
|
327
|
-
}); // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
return false;
|
|
331
|
-
});
|
|
332
|
-
return _this;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
(0, _createClass2["default"])(GridDraggable, [{
|
|
336
|
-
key: "render",
|
|
337
|
-
value: function render() {
|
|
338
|
-
var _this$props3 = this.props,
|
|
339
|
-
disabled = _this$props3.disabled,
|
|
340
|
-
rest = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
|
|
341
|
-
var grid = this.grid(); // prevent the text select icon from rendering.
|
|
342
|
-
|
|
343
|
-
var onMouseDown = function onMouseDown(e) {
|
|
344
|
-
return e.nativeEvent.preventDefault();
|
|
345
|
-
};
|
|
346
|
-
/**
|
|
347
|
-
* TODO: This shouldnt be necessary, we should be able to use the r-d classnames.
|
|
348
|
-
* But they aren't being unset. If we continue with this lib, we'll have to fix this.
|
|
349
|
-
*/
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
var isDragging = this.state ? !!this.state.startX : false;
|
|
353
|
-
return /*#__PURE__*/_react["default"].createElement(_draggable.DraggableCore, {
|
|
354
|
-
disabled: disabled,
|
|
355
|
-
onMouseDown: onMouseDown,
|
|
356
|
-
onStart: this.onStart,
|
|
357
|
-
onDrag: this.onDrag,
|
|
358
|
-
onStop: this.onStop,
|
|
359
|
-
axis: opts.axis || 'both',
|
|
360
|
-
grid: [grid.x, grid.y]
|
|
361
|
-
}, /*#__PURE__*/_react["default"].createElement(Comp, (0, _extends2["default"])({}, rest, {
|
|
362
|
-
disabled: disabled,
|
|
363
|
-
isDragging: isDragging
|
|
364
|
-
})));
|
|
365
|
-
}
|
|
366
|
-
}]);
|
|
367
|
-
return GridDraggable;
|
|
368
|
-
}(_react["default"].Component), (0, _defineProperty2["default"])(_class, "propTypes", {
|
|
369
|
-
disabled: _propTypes["default"].bool,
|
|
370
|
-
onDragStart: _propTypes["default"].func,
|
|
371
|
-
onDrag: _propTypes["default"].func,
|
|
372
|
-
onDragStop: _propTypes["default"].func,
|
|
373
|
-
onClick: _propTypes["default"].func,
|
|
374
|
-
onMove: _propTypes["default"].func,
|
|
375
|
-
graphProps: _types.GraphPropsType.isRequired
|
|
376
|
-
}), _class;
|
|
377
|
-
};
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
exports.gridDraggable = gridDraggable;
|
|
381
|
-
//# sourceMappingURL=grid-draggable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/grid-draggable.jsx"],"names":["log","deltaFn","scale","snap","val","delta","normalized","inverted","invert","fixDecimalsArithmetic","toFixed","gridDraggable","opts","Comp","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","node","svg","ownerSVGElement","createSVGPoint","point","touches","length","touch","getScreenCTM","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","dd","rootNode","getRootNode","clientPoint","getClientPoint","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\n\nconst log = debug('pie-lib:plot:grid-draggable');\n\nexport const deltaFn = (scale, snap, val) => (delta) => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n\n const fixDecimalsArithmetic = (snap(val + inverted).toFixed(4) * 1000) / 1000;\n\n return fixDecimalsArithmetic;\n};\n\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = (opts) => (Comp) => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }',\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired,\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0),\n };\n };\n onStart = (e) => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n\n return {\n anchorPoint: {\n x,\n y,\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y),\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y,\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n /**\n * Retrieves the coordinates of a mouse or touch event relative to an SVG element.\n * This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.\n * @param {Element} node - The SVG element.\n * @param {Event} event - The mouse or touch event.\n * @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.\n */\n getClientPoint = (node, event) => {\n if (!node || !event) {\n return null;\n }\n const svg = node.ownerSVGElement || node;\n\n if (svg && svg.createSVGPoint) {\n let point = svg.createSVGPoint();\n // Check if it's a touch event and use the first touch point\n if (event.touches && event.touches.length > 0) {\n const touch = event.touches[0];\n point.x = touch.clientX;\n point.y = touch.clientY;\n } else {\n // Fall back to mouse event properties\n point.x = event.clientX;\n point.y = event.clientY;\n }\n if (node.getScreenCTM) {\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n } else {\n return null;\n }\n }\n\n const rect = node.getBoundingClientRect();\n if (rect) {\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n } else {\n return null;\n }\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // Ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const clientPoint = this.getClientPoint(rootNode, e);\n\n if (clientPoint === null) {\n return true; // Indicate that the drag is outside of bounds\n }\n\n const [rawX, rawY] = clientPoint;\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = (point) => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y),\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = (point) => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n const { disabled, ...rest } = this.props;\n const grid = this.grid();\n\n // prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"file":"grid-draggable.js"}
|
package/lib/index.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
Object.defineProperty(exports, "Draggable", {
|
|
11
|
-
enumerable: true,
|
|
12
|
-
get: function get() {
|
|
13
|
-
return _draggable["default"];
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(exports, "Root", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
get: function get() {
|
|
19
|
-
return _root["default"];
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(exports, "createGraphProps", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
get: function get() {
|
|
25
|
-
return _graphProps.create;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(exports, "gridDraggable", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
get: function get() {
|
|
31
|
-
return _gridDraggable.gridDraggable;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
exports.utils = exports.types = exports.trig = void 0;
|
|
35
|
-
|
|
36
|
-
var _root = _interopRequireDefault(require("./root"));
|
|
37
|
-
|
|
38
|
-
var _draggable = _interopRequireDefault(require("./draggable"));
|
|
39
|
-
|
|
40
|
-
var _gridDraggable = require("./grid-draggable");
|
|
41
|
-
|
|
42
|
-
var utils = _interopRequireWildcard(require("./utils"));
|
|
43
|
-
|
|
44
|
-
exports.utils = utils;
|
|
45
|
-
|
|
46
|
-
var trig = _interopRequireWildcard(require("./trig"));
|
|
47
|
-
|
|
48
|
-
exports.trig = trig;
|
|
49
|
-
|
|
50
|
-
var types = _interopRequireWildcard(require("./types"));
|
|
51
|
-
|
|
52
|
-
exports.types = types;
|
|
53
|
-
|
|
54
|
-
var _graphProps = require("./graph-props");
|
|
55
|
-
|
|
56
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
57
|
-
|
|
58
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
59
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA","sourcesContent":["import Root from './root';\nimport Draggable from './draggable';\nimport { gridDraggable } from './grid-draggable';\nimport * as utils from './utils';\nimport * as trig from './trig';\nimport * as types from './types';\nimport { create as createGraphProps } from './graph-props';\n\nexport { Root, Draggable, gridDraggable, utils, trig, types, createGraphProps };\n"],"file":"index.js"}
|
package/lib/label.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports["default"] = void 0;
|
|
11
|
-
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
-
|
|
18
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
19
|
-
|
|
20
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
|
-
|
|
22
|
-
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
23
|
-
|
|
24
|
-
var _styles = require("@material-ui/core/styles");
|
|
25
|
-
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
|
-
var _utils = require("./utils");
|
|
29
|
-
|
|
30
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
-
|
|
32
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
-
|
|
34
|
-
var LabelComponent = function LabelComponent(props) {
|
|
35
|
-
var _cn;
|
|
36
|
-
|
|
37
|
-
var classes = props.classes,
|
|
38
|
-
disabledLabel = props.disabledLabel,
|
|
39
|
-
graphHeight = props.graphHeight,
|
|
40
|
-
graphWidth = props.graphWidth,
|
|
41
|
-
isChartBottomLabel = props.isChartBottomLabel,
|
|
42
|
-
isDefineChartBottomLabel = props.isDefineChartBottomLabel,
|
|
43
|
-
isChartLeftLabel = props.isChartLeftLabel,
|
|
44
|
-
isDefineChartLeftLabel = props.isDefineChartLeftLabel,
|
|
45
|
-
placeholder = props.placeholder,
|
|
46
|
-
text = props.text,
|
|
47
|
-
side = props.side,
|
|
48
|
-
onChange = props.onChange,
|
|
49
|
-
_props$mathMlOptions = props.mathMlOptions,
|
|
50
|
-
mathMlOptions = _props$mathMlOptions === void 0 ? {} : _props$mathMlOptions,
|
|
51
|
-
charactersLimit = props.charactersLimit,
|
|
52
|
-
titleHeight = props.titleHeight;
|
|
53
|
-
|
|
54
|
-
var _useState = (0, _react.useState)(false),
|
|
55
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
56
|
-
rotatedToHorizontal = _useState2[0],
|
|
57
|
-
setRotatedToHorizontal = _useState2[1];
|
|
58
|
-
|
|
59
|
-
var activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math' // 'languageCharacters'
|
|
60
|
-
];
|
|
61
|
-
var isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;
|
|
62
|
-
var chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;
|
|
63
|
-
var defaultStyle = {
|
|
64
|
-
width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),
|
|
65
|
-
top: chartValue || isChartLeftLabel && "".concat(graphHeight - 70, "px") || side === 'left' && "".concat(graphHeight - 8, "px") || isChartBottomLabel && "".concat(graphHeight - 60 + titleHeight, "px") || side === 'bottom' && "".concat(graphHeight - 120 + titleHeight, "px") || 0,
|
|
66
|
-
left: side === 'right' && "".concat(graphWidth - 8, "px") || (isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px' || isChartBottomLabel && '-10px' || 0
|
|
67
|
-
};
|
|
68
|
-
var rotatedStyle = {
|
|
69
|
-
width: graphWidth - 8,
|
|
70
|
-
top: side === 'right' && "".concat(graphHeight - 22, "px") || 0,
|
|
71
|
-
left: 0
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
var rotateLabel = function rotateLabel() {
|
|
75
|
-
return !disabledLabel && (side === 'left' || side === 'right') && setRotatedToHorizontal(true);
|
|
76
|
-
};
|
|
77
|
-
|
|
78
|
-
return /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
|
|
79
|
-
"false": true
|
|
80
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
81
|
-
className: (0, _classnames["default"])(isChart ? classes.chartLabel : classes.axisLabel, (_cn = {}, (0, _defineProperty2["default"])(_cn, classes.rotateLeftLabel, side === 'left' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.rotateRightLabel, side === 'right' && !rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.editLabel, rotatedToHorizontal), (0, _defineProperty2["default"])(_cn, classes.customBottom, isChartBottomLabel || isDefineChartBottomLabel), (0, _defineProperty2["default"])(_cn, classes.displayNone, disabledLabel && !isChart && (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(text))), _cn)),
|
|
82
|
-
style: rotatedToHorizontal ? rotatedStyle : defaultStyle,
|
|
83
|
-
onClick: rotateLabel
|
|
84
|
-
}, disabledLabel ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
85
|
-
className: classes.disabledLabel,
|
|
86
|
-
dangerouslySetInnerHTML: {
|
|
87
|
-
__html: text || ''
|
|
88
|
-
}
|
|
89
|
-
}) : /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
90
|
-
markup: text || '',
|
|
91
|
-
onChange: onChange,
|
|
92
|
-
placeholder: !disabledLabel && placeholder,
|
|
93
|
-
toolbarOpts: {
|
|
94
|
-
position: side === 'bottom' ? 'top' : 'bottom',
|
|
95
|
-
noPadding: true,
|
|
96
|
-
noBorder: true
|
|
97
|
-
},
|
|
98
|
-
disableScrollbar: true,
|
|
99
|
-
activePlugins: activePlugins,
|
|
100
|
-
onDone: function onDone() {
|
|
101
|
-
return setRotatedToHorizontal(false);
|
|
102
|
-
},
|
|
103
|
-
mathMlOptions: mathMlOptions,
|
|
104
|
-
charactersLimit: charactersLimit
|
|
105
|
-
})));
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
LabelComponent.propTypes = {
|
|
109
|
-
classes: _propTypes["default"].object,
|
|
110
|
-
disabledLabel: _propTypes["default"].bool,
|
|
111
|
-
graphHeight: _propTypes["default"].number,
|
|
112
|
-
graphWidth: _propTypes["default"].number,
|
|
113
|
-
isChartBottomLabel: _propTypes["default"].bool,
|
|
114
|
-
isDefineChartBottomLabel: _propTypes["default"].bool,
|
|
115
|
-
isChartLeftLabel: _propTypes["default"].bool,
|
|
116
|
-
isDefineChartLeftLabel: _propTypes["default"].bool,
|
|
117
|
-
placeholder: _propTypes["default"].string,
|
|
118
|
-
text: _propTypes["default"].string,
|
|
119
|
-
side: _propTypes["default"].string,
|
|
120
|
-
onChange: _propTypes["default"].func,
|
|
121
|
-
mathMlOptions: _propTypes["default"].object,
|
|
122
|
-
charactersLimit: _propTypes["default"].number,
|
|
123
|
-
titleHeight: _propTypes["default"].number
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
var _default = (0, _styles.withStyles)(function (theme) {
|
|
127
|
-
return {
|
|
128
|
-
label: {
|
|
129
|
-
fill: _renderUi.color.secondary()
|
|
130
|
-
},
|
|
131
|
-
axisLabel: {
|
|
132
|
-
fontSize: theme.typography.fontSize - 2,
|
|
133
|
-
textAlign: 'center',
|
|
134
|
-
margin: theme.spacing.unit / 2,
|
|
135
|
-
padding: "".concat(theme.spacing.unit / 2, "px 0")
|
|
136
|
-
},
|
|
137
|
-
chartLabel: {
|
|
138
|
-
fontSize: theme.typography.fontSize + 2,
|
|
139
|
-
textAlign: 'center',
|
|
140
|
-
margin: theme.spacing.unit / 2,
|
|
141
|
-
padding: "".concat(theme.spacing.unit / 2, "px 0")
|
|
142
|
-
},
|
|
143
|
-
disabledLabel: {
|
|
144
|
-
pointerEvents: 'none',
|
|
145
|
-
width: '100%'
|
|
146
|
-
},
|
|
147
|
-
editLabel: {
|
|
148
|
-
position: 'absolute',
|
|
149
|
-
backgroundColor: 'white',
|
|
150
|
-
borderRadius: '4px',
|
|
151
|
-
boxShadow: '0px 5px 8px rgba(0, 0, 0, 0.15)',
|
|
152
|
-
zIndex: 10
|
|
153
|
-
},
|
|
154
|
-
rotateLeftLabel: {
|
|
155
|
-
'-webkit-transform': 'rotate(-90deg)',
|
|
156
|
-
transformOrigin: '0 0',
|
|
157
|
-
transformStyle: 'preserve-3d',
|
|
158
|
-
position: 'absolute'
|
|
159
|
-
},
|
|
160
|
-
rotateRightLabel: {
|
|
161
|
-
'-webkit-transform': 'rotate(90deg)',
|
|
162
|
-
transformOrigin: '0 0',
|
|
163
|
-
transformStyle: 'preserve-3d',
|
|
164
|
-
position: 'absolute'
|
|
165
|
-
},
|
|
166
|
-
customBottom: {
|
|
167
|
-
position: 'absolute'
|
|
168
|
-
},
|
|
169
|
-
displayNone: {
|
|
170
|
-
display: 'none'
|
|
171
|
-
}
|
|
172
|
-
};
|
|
173
|
-
})(LabelComponent);
|
|
174
|
-
|
|
175
|
-
exports["default"] = _default;
|
|
176
|
-
//# sourceMappingURL=label.js.map
|