@pie-lib/graphing 2.6.3 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/lib/axis/arrow.js +15 -25
  3. package/lib/axis/arrow.js.map +1 -1
  4. package/lib/axis/axes.js +41 -73
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/axis/index.js +1 -1
  7. package/lib/bg.js +20 -31
  8. package/lib/bg.js.map +1 -1
  9. package/lib/container/index.js +27 -41
  10. package/lib/container/index.js.map +1 -1
  11. package/lib/container/reducer.js +2 -2
  12. package/lib/container/reducer.js.map +1 -1
  13. package/lib/coordinates-label.js +5 -5
  14. package/lib/coordinates-label.js.map +1 -1
  15. package/lib/graph-with-controls.js +116 -55
  16. package/lib/graph-with-controls.js.map +1 -1
  17. package/lib/graph.js +45 -69
  18. package/lib/graph.js.map +1 -1
  19. package/lib/grid-setup.js +72 -27
  20. package/lib/grid-setup.js.map +1 -1
  21. package/lib/grid.js +28 -46
  22. package/lib/grid.js.map +1 -1
  23. package/lib/index.js +3 -3
  24. package/lib/index.js.map +1 -1
  25. package/lib/labels.js +22 -38
  26. package/lib/labels.js.map +1 -1
  27. package/lib/mark-label.js +10 -20
  28. package/lib/mark-label.js.map +1 -1
  29. package/lib/toggle-bar.js +177 -45
  30. package/lib/toggle-bar.js.map +1 -1
  31. package/lib/tool-menu.js +49 -32
  32. package/lib/tool-menu.js.map +1 -1
  33. package/lib/tools/circle/bg-circle.js +27 -38
  34. package/lib/tools/circle/bg-circle.js.map +1 -1
  35. package/lib/tools/circle/component.js +36 -54
  36. package/lib/tools/circle/component.js.map +1 -1
  37. package/lib/tools/circle/index.js +5 -5
  38. package/lib/tools/circle/index.js.map +1 -1
  39. package/lib/tools/line/component.js +11 -25
  40. package/lib/tools/line/component.js.map +1 -1
  41. package/lib/tools/line/index.js +2 -2
  42. package/lib/tools/line/index.js.map +1 -1
  43. package/lib/tools/parabola/component.js +2 -2
  44. package/lib/tools/parabola/component.js.map +1 -1
  45. package/lib/tools/parabola/index.js +5 -5
  46. package/lib/tools/parabola/index.js.map +1 -1
  47. package/lib/tools/point/component.js +30 -47
  48. package/lib/tools/point/component.js.map +1 -1
  49. package/lib/tools/point/index.js +5 -5
  50. package/lib/tools/point/index.js.map +1 -1
  51. package/lib/tools/polygon/component.js +59 -107
  52. package/lib/tools/polygon/component.js.map +1 -1
  53. package/lib/tools/polygon/index.js +9 -19
  54. package/lib/tools/polygon/index.js.map +1 -1
  55. package/lib/tools/polygon/line.js +28 -41
  56. package/lib/tools/polygon/line.js.map +1 -1
  57. package/lib/tools/polygon/polygon.js +28 -42
  58. package/lib/tools/polygon/polygon.js.map +1 -1
  59. package/lib/tools/ray/component.js +11 -25
  60. package/lib/tools/ray/component.js.map +1 -1
  61. package/lib/tools/ray/index.js +2 -2
  62. package/lib/tools/ray/index.js.map +1 -1
  63. package/lib/tools/segment/component.js +8 -11
  64. package/lib/tools/segment/component.js.map +1 -1
  65. package/lib/tools/segment/index.js +2 -2
  66. package/lib/tools/segment/index.js.map +1 -1
  67. package/lib/tools/shared/arrow-head.js +2 -2
  68. package/lib/tools/shared/arrow-head.js.map +1 -1
  69. package/lib/tools/shared/line/index.js +43 -66
  70. package/lib/tools/shared/line/index.js.map +1 -1
  71. package/lib/tools/shared/line/line-path.js +29 -42
  72. package/lib/tools/shared/line/line-path.js.map +1 -1
  73. package/lib/tools/shared/line/with-root-edge.js +12 -14
  74. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  75. package/lib/tools/shared/point/arrow-point.js +24 -39
  76. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  77. package/lib/tools/shared/point/arrow.js +23 -37
  78. package/lib/tools/shared/point/arrow.js.map +1 -1
  79. package/lib/tools/shared/point/base-point.js +24 -38
  80. package/lib/tools/shared/point/base-point.js.map +1 -1
  81. package/lib/tools/shared/point/index.js +6 -6
  82. package/lib/tools/shared/point/index.js.map +1 -1
  83. package/lib/tools/shared/styles.js +7 -5
  84. package/lib/tools/shared/styles.js.map +1 -1
  85. package/lib/tools/shared/types.js +2 -2
  86. package/lib/tools/shared/types.js.map +1 -1
  87. package/lib/tools/sine/component.js +2 -2
  88. package/lib/tools/sine/component.js.map +1 -1
  89. package/lib/tools/sine/index.js +5 -5
  90. package/lib/tools/sine/index.js.map +1 -1
  91. package/lib/tools/vector/component.js +8 -11
  92. package/lib/tools/vector/component.js.map +1 -1
  93. package/lib/tools/vector/index.js +2 -2
  94. package/lib/tools/vector/index.js.map +1 -1
  95. package/lib/undo-redo.js +19 -31
  96. package/lib/undo-redo.js.map +1 -1
  97. package/lib/use-debounce.js +5 -13
  98. package/lib/use-debounce.js.map +1 -1
  99. package/lib/utils.js +2 -2
  100. package/lib/utils.js.map +1 -1
  101. package/package.json +4 -3
  102. package/src/graph-with-controls.jsx +100 -14
  103. package/src/graph.jsx +2 -0
  104. package/src/grid-setup.jsx +155 -88
  105. package/src/toggle-bar.jsx +143 -13
  106. package/src/tool-menu.jsx +15 -0
package/lib/toggle-bar.js CHANGED
@@ -1,50 +1,46 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.ToggleBar = exports.MiniButton = void 0;
8
+ exports["default"] = exports.ToggleBar = exports.MiniButton = exports.Item = void 0;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _styles = require("@material-ui/core/styles");
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
15
 
16
- var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
18
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
19
 
20
- var _renderUi = require("@pie-lib/render-ui");
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
21
 
22
- var _index = require("./tools/index");
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
23
 
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
+ var _react = _interopRequireDefault(require("react"));
25
25
 
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
26
+ var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
28
+ var _styles = require("@material-ui/core/styles");
29
29
 
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
32
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
33
33
 
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
+ var _renderUi = require("@pie-lib/render-ui");
35
35
 
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
36
+ var _index = require("./tools/index");
37
37
 
38
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
38
+ var _drag = require("@pie-lib/drag");
39
39
 
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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
41
 
42
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
43
 
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
-
48
44
  var buttonStyles = function buttonStyles() {
49
45
  return {
50
46
  root: {
@@ -95,6 +91,7 @@ var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
95
91
  exports.MiniButton = MiniButton;
96
92
  MiniButton.propTypes = {
97
93
  disabled: _propTypes["default"].bool,
94
+ classes: _propTypes["default"].object,
98
95
  className: _propTypes["default"].string,
99
96
  disabledClassName: _propTypes["default"].string,
100
97
  selected: _propTypes["default"].bool,
@@ -103,86 +100,221 @@ MiniButton.propTypes = {
103
100
  };
104
101
 
105
102
  var ToggleBar = /*#__PURE__*/function (_React$Component) {
106
- _inherits(ToggleBar, _React$Component);
103
+ (0, _inherits2["default"])(ToggleBar, _React$Component);
107
104
 
108
105
  var _super = _createSuper(ToggleBar);
109
106
 
110
107
  function ToggleBar() {
111
108
  var _this;
112
109
 
113
- _classCallCheck(this, ToggleBar);
110
+ (0, _classCallCheck2["default"])(this, ToggleBar);
114
111
 
115
112
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
116
113
  args[_key] = arguments[_key];
117
114
  }
118
115
 
119
116
  _this = _super.call.apply(_super, [this].concat(args));
120
-
121
- _defineProperty(_assertThisInitialized(_this), "select", function (e) {
117
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "select", function (e) {
122
118
  return _this.props.onChange(e.target.textContent);
123
119
  });
124
-
120
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveTool", function (dragIndex, hoverIndex) {
121
+ var _this$props = _this.props,
122
+ options = _this$props.options,
123
+ onChangeToolsOrder = _this$props.onChangeToolsOrder;
124
+ var dragged = options[dragIndex];
125
+ options.splice(dragIndex, 1);
126
+ options.splice(hoverIndex, 0, dragged);
127
+ onChangeToolsOrder(options);
128
+ });
125
129
  return _this;
126
130
  }
127
131
 
128
- _createClass(ToggleBar, [{
132
+ (0, _createClass2["default"])(ToggleBar, [{
129
133
  key: "render",
130
134
  value: function render() {
131
135
  var _this2 = this;
132
136
 
133
- var _this$props = this.props,
134
- classes = _this$props.classes,
135
- className = _this$props.className,
136
- disabled = _this$props.disabled,
137
- options = _this$props.options,
138
- selectedToolType = _this$props.selectedToolType;
137
+ var _this$props2 = this.props,
138
+ classes = _this$props2.classes,
139
+ className = _this$props2.className,
140
+ disabled = _this$props2.disabled,
141
+ options = _this$props2.options,
142
+ selectedToolType = _this$props2.selectedToolType,
143
+ draggableTools = _this$props2.draggableTools;
139
144
  return /*#__PURE__*/_react["default"].createElement("div", {
140
- className: (0, _classnames["default"])(className)
141
- }, (options || []).map(function (option) {
145
+ className: (0, _classnames["default"])(className, classes.toolsContainer)
146
+ }, (options || []).map(function (option, index) {
142
147
  if ((_index.allTools || []).includes(option)) {
143
148
  var isSelected = option === selectedToolType;
144
- return /*#__PURE__*/_react["default"].createElement(MiniButton, {
149
+
150
+ var toolRef = /*#__PURE__*/_react["default"].createRef();
151
+
152
+ return /*#__PURE__*/_react["default"].createElement(DragTool, {
145
153
  key: option,
154
+ index: index,
155
+ draggable: draggableTools,
156
+ moveTool: _this2.moveTool,
157
+ classes: classes,
158
+ toolRef: toolRef
159
+ }, /*#__PURE__*/_react["default"].createElement(MiniButton, {
146
160
  className: (0, _classnames["default"])(classes.button, isSelected && classes.selected),
147
161
  disabled: disabled,
148
162
  disableRipple: true,
149
163
  onClick: _this2.select,
150
164
  value: option,
151
165
  selected: isSelected
152
- });
166
+ }));
153
167
  }
154
168
  }));
155
169
  }
156
170
  }]);
157
-
158
171
  return ToggleBar;
159
172
  }(_react["default"].Component);
160
173
 
161
174
  exports.ToggleBar = ToggleBar;
162
-
163
- _defineProperty(ToggleBar, "propTypes", {
175
+ (0, _defineProperty2["default"])(ToggleBar, "propTypes", {
164
176
  classes: _propTypes["default"].object.isRequired,
165
177
  className: _propTypes["default"].string,
166
178
  options: _propTypes["default"].arrayOf(_propTypes["default"].string),
167
179
  selectedToolType: _propTypes["default"].string,
168
180
  disabled: _propTypes["default"].bool,
169
- onChange: _propTypes["default"].func
181
+ draggableTools: _propTypes["default"].bool,
182
+ onChange: _propTypes["default"].func,
183
+ onChangeToolsOrder: _propTypes["default"].func
170
184
  });
171
-
172
- _defineProperty(ToggleBar, "defaultProps", {});
185
+ (0, _defineProperty2["default"])(ToggleBar, "defaultProps", {});
173
186
 
174
187
  var styles = function styles(theme) {
175
188
  return {
189
+ toolsContainer: {
190
+ display: 'flex',
191
+ flexWrap: 'wrap'
192
+ },
176
193
  button: {
177
194
  marginRight: theme.spacing.unit / 2,
178
195
  marginBottom: theme.spacing.unit / 2,
179
196
  color: _renderUi.color.text(),
180
197
  backgroundColor: _renderUi.color.background()
198
+ },
199
+ under: {
200
+ position: 'absolute',
201
+ top: 0,
202
+ left: 0,
203
+ zIndex: -1,
204
+ pointerEvents: 'none'
205
+ },
206
+ wrapper: {
207
+ position: 'relative'
208
+ },
209
+ hidden: {
210
+ opacity: 0
181
211
  }
182
212
  };
183
213
  };
184
214
 
185
- var _default = (0, _styles.withStyles)(styles)(ToggleBar);
215
+ var _default = (0, _drag.withDragContext)((0, _styles.withStyles)(styles)(ToggleBar));
186
216
 
187
217
  exports["default"] = _default;
218
+ var DRAG_TYPE = 'tool';
219
+
220
+ var Item = /*#__PURE__*/function (_React$Component2) {
221
+ (0, _inherits2["default"])(Item, _React$Component2);
222
+
223
+ var _super2 = _createSuper(Item);
224
+
225
+ function Item() {
226
+ (0, _classCallCheck2["default"])(this, Item);
227
+ return _super2.apply(this, arguments);
228
+ }
229
+
230
+ (0, _createClass2["default"])(Item, [{
231
+ key: "render",
232
+ value: function render() {
233
+ var _this$props3 = this.props,
234
+ classes = _this$props3.classes,
235
+ children = _this$props3.children,
236
+ connectDragSource = _this$props3.connectDragSource,
237
+ connectDropTarget = _this$props3.connectDropTarget,
238
+ connectDragPreview = _this$props3.connectDragPreview,
239
+ isDragging = _this$props3.isDragging,
240
+ toolRef = _this$props3.toolRef;
241
+ return /*#__PURE__*/_react["default"].createElement("div", {
242
+ className: classes.wrapper,
243
+ ref: toolRef
244
+ }, connectDragSource(connectDropTarget( /*#__PURE__*/_react["default"].createElement("div", {
245
+ className: isDragging && classes.hidden
246
+ }, children))), connectDragPreview( /*#__PURE__*/_react["default"].createElement("div", {
247
+ className: classes.under
248
+ }, children)));
249
+ }
250
+ }]);
251
+ return Item;
252
+ }(_react["default"].Component);
253
+
254
+ exports.Item = Item;
255
+ (0, _defineProperty2["default"])(Item, "propTypes", {
256
+ classes: _propTypes["default"].object.isRequired,
257
+ className: _propTypes["default"].string,
258
+ children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
259
+ connectDragSource: _propTypes["default"].func.isRequired,
260
+ connectDragPreview: _propTypes["default"].func.isRequired,
261
+ connectDropTarget: _propTypes["default"].func.isRequired,
262
+ isDragging: _propTypes["default"].bool
263
+ });
264
+ (0, _defineProperty2["default"])(Item, "defaultProps", {});
265
+ var itemSource = {
266
+ canDrag: function canDrag(props) {
267
+ return props.draggable;
268
+ },
269
+ beginDrag: function beginDrag(props) {
270
+ return {
271
+ index: props.index
272
+ };
273
+ }
274
+ };
275
+ var itemTarget = {
276
+ hover: function hover(props, monitor) {
277
+ var _toolRef$current;
278
+
279
+ var dragIndex = monitor.getItem().index;
280
+ var toolRef = props.toolRef,
281
+ hoverIndex = props.index;
282
+
283
+ if (dragIndex === hoverIndex || !toolRef.current) {
284
+ return;
285
+ }
286
+
287
+ var hoverBoundingRect = (_toolRef$current = toolRef.current) === null || _toolRef$current === void 0 ? void 0 : _toolRef$current.getBoundingClientRect();
288
+ var hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;
289
+ var clientOffset = monitor.getClientOffset();
290
+ var hoverClientX = clientOffset.x - hoverBoundingRect.left;
291
+
292
+ if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {
293
+ return;
294
+ }
295
+
296
+ if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {
297
+ return;
298
+ }
299
+
300
+ props.moveTool(dragIndex, hoverIndex);
301
+ monitor.getItem().index = hoverIndex;
302
+ }
303
+ };
304
+
305
+ var collectTarget = function collectTarget(connect) {
306
+ return {
307
+ connectDropTarget: connect.dropTarget()
308
+ };
309
+ };
310
+
311
+ var collectSource = function collectSource(connect, monitor) {
312
+ return {
313
+ connectDragSource: connect.dragSource(),
314
+ connectDragPreview: connect.dragPreview(),
315
+ isDragging: monitor.isDragging()
316
+ };
317
+ };
318
+
319
+ var DragTool = (0, _drag.DropTarget)(DRAG_TYPE, itemTarget, collectTarget)((0, _drag.DragSource)(DRAG_TYPE, itemSource, collectSource)(Item));
188
320
  //# sourceMappingURL=toggle-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","props","classes","className","value","onClick","propTypes","PropTypes","bool","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","options","selectedToolType","map","option","allTools","includes","isSelected","button","select","React","Component","object","isRequired","arrayOf","styles","theme","marginRight","spacing","unit","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary()\n }\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func\n };\n\n static defaultProps = {};\n\n select = e => this.props.onChange(e.target.textContent);\n\n render() {\n const { classes, className, disabled, options, selectedToolType } = this.props;\n return (\n <div className={cn(className)}>\n {(options || []).map(option => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n\n return (\n <MiniButton\n key={option}\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background()\n }\n});\n\nexport default withStyles(styles)(ToggleBar);\n"],"file":"toggle-bar.js"}
1
+ {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","props","classes","className","value","onClick","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","dragIndex","hoverIndex","options","onChangeToolsOrder","dragged","splice","selectedToolType","draggableTools","toolsContainer","map","option","index","allTools","includes","isSelected","toolRef","React","createRef","moveTool","button","select","Component","isRequired","arrayOf","styles","theme","display","flexWrap","marginRight","spacing","unit","marginBottom","under","position","top","left","zIndex","pointerEvents","wrapper","hidden","opacity","DRAG_TYPE","Item","children","connectDragSource","connectDropTarget","connectDragPreview","isDragging","oneOfType","node","itemSource","canDrag","draggable","beginDrag","itemTarget","hover","monitor","getItem","current","hoverBoundingRect","getBoundingClientRect","hoverMiddleX","right","clientOffset","getClientOffset","hoverClientX","x","collectTarget","connect","dropTarget","collectSource","dragSource","dragPreview","DragTool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary()\n }\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeToolsOrder: PropTypes.func\n };\n\n static defaultProps = {};\n\n select = e => this.props.onChange(e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const dragged = options[dragIndex];\n\n options.splice(dragIndex, 1);\n options.splice(hoverIndex, 0, dragged);\n\n onChangeToolsOrder(options);\n };\n\n render() {\n const { classes, className, disabled, options, selectedToolType, draggableTools } = this.props;\n\n return (\n <div className={cn(className, classes.toolsContainer)}>\n {(options || []).map((option, index) => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n const toolRef = React.createRef();\n\n return (\n <DragTool\n key={option}\n index={index}\n draggable={draggableTools}\n moveTool={this.moveTool}\n classes={classes}\n toolRef={toolRef}\n >\n <MiniButton\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n </DragTool>\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n toolsContainer: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background()\n },\n under: {\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex: -1,\n pointerEvents: 'none'\n },\n wrapper: {\n position: 'relative'\n },\n hidden: {\n opacity: 0\n }\n});\n\nexport default withDragContext(withStyles(styles)(ToggleBar));\n\nconst DRAG_TYPE = 'tool';\n\nexport class Item extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n connectDragSource: PropTypes.func.isRequired,\n connectDragPreview: PropTypes.func.isRequired,\n connectDropTarget: PropTypes.func.isRequired,\n isDragging: PropTypes.bool\n };\n\n static defaultProps = {};\n\n render() {\n const {\n classes,\n children,\n connectDragSource,\n connectDropTarget,\n connectDragPreview,\n isDragging,\n toolRef\n } = this.props;\n\n return (\n <div className={classes.wrapper} ref={toolRef}>\n {connectDragSource(\n connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>)\n )}\n {connectDragPreview(<div className={classes.under}>{children}</div>)}\n </div>\n );\n }\n}\n\nconst itemSource = {\n canDrag(props) {\n return props.draggable;\n },\n beginDrag(props) {\n return {\n index: props.index\n };\n }\n};\n\nconst itemTarget = {\n hover(props, monitor) {\n const dragIndex = monitor.getItem().index;\n const { toolRef, index: hoverIndex } = props;\n\n if (dragIndex === hoverIndex || !toolRef.current) {\n return;\n }\n\n const hoverBoundingRect = toolRef.current?.getBoundingClientRect();\n const hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;\n const clientOffset = monitor.getClientOffset();\n const hoverClientX = clientOffset.x - hoverBoundingRect.left;\n\n if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {\n return;\n }\n\n if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {\n return;\n }\n\n props.moveTool(dragIndex, hoverIndex);\n monitor.getItem().index = hoverIndex;\n }\n};\n\nconst collectTarget = connect => ({ connectDropTarget: connect.dropTarget() });\n\nconst collectSource = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n connectDragPreview: connect.dragPreview(),\n isDragging: monitor.isDragging()\n});\n\nconst DragTool = DropTarget(\n DRAG_TYPE,\n itemTarget,\n collectTarget\n)(DragSource(DRAG_TYPE, itemSource, collectSource)(Item));\n"],"file":"toggle-bar.js"}
package/lib/tool-menu.js CHANGED
@@ -1,66 +1,81 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = exports.ToolMenu = void 0;
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
13
 
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
15
 
14
- var _classnames = _interopRequireDefault(require("classnames"));
16
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
17
 
16
- var _toggleBar = _interopRequireWildcard(require("./toggle-bar"));
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
19
 
18
- 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); }
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
21
 
20
- 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; }
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
23
 
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
25
 
24
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25
-
26
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
26
+ var _react = _interopRequireDefault(require("react"));
27
27
 
28
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
28
+ var _propTypes = _interopRequireDefault(require("prop-types"));
29
29
 
30
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
31
 
32
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
32
+ var _toggleBar = _interopRequireWildcard(require("./toggle-bar"));
33
33
 
34
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
34
+ 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); }
35
35
 
36
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
36
+ 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; }
37
37
 
38
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
38
+ 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); }; }
39
39
 
40
40
  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; } }
41
41
 
42
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
43
-
44
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
45
-
46
42
  var ToolMenu = /*#__PURE__*/function (_React$Component) {
47
- _inherits(ToolMenu, _React$Component);
43
+ (0, _inherits2["default"])(ToolMenu, _React$Component);
48
44
 
49
45
  var _super = _createSuper(ToolMenu);
50
46
 
51
47
  function ToolMenu() {
52
- _classCallCheck(this, ToolMenu);
48
+ var _this;
49
+
50
+ (0, _classCallCheck2["default"])(this, ToolMenu);
51
+
52
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53
+ args[_key] = arguments[_key];
54
+ }
55
+
56
+ _this = _super.call.apply(_super, [this].concat(args));
57
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateToolsOrder", function (tools, showLabel) {
58
+ var onChangeTools = _this.props.onChangeTools;
53
59
 
54
- return _super.apply(this, arguments);
60
+ if (showLabel) {
61
+ tools.push('label');
62
+ }
63
+
64
+ onChangeTools(tools);
65
+ });
66
+ return _this;
55
67
  }
56
68
 
57
- _createClass(ToolMenu, [{
69
+ (0, _createClass2["default"])(ToolMenu, [{
58
70
  key: "render",
59
71
  value: function render() {
72
+ var _this2 = this;
73
+
60
74
  var _this$props = this.props,
61
75
  className = _this$props.className,
62
76
  currentToolType = _this$props.currentToolType,
63
77
  disabled = _this$props.disabled,
78
+ draggableTools = _this$props.draggableTools,
64
79
  labelModeEnabled = _this$props.labelModeEnabled,
65
80
  onToggleLabelMode = _this$props.onToggleLabelMode,
66
81
  onChange = _this$props.onChange;
@@ -75,9 +90,13 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
75
90
  className: (0, _classnames["default"])(className)
76
91
  }, /*#__PURE__*/_react["default"].createElement(_toggleBar["default"], {
77
92
  disabled: disabled,
93
+ draggableTools: draggableTools,
78
94
  options: toolbarTools,
79
95
  selectedToolType: currentToolType,
80
- onChange: onChange
96
+ onChange: onChange,
97
+ onChangeToolsOrder: function onChangeToolsOrder(tools) {
98
+ return _this2.updateToolsOrder(tools, showLabel);
99
+ }
81
100
  }), showLabel && /*#__PURE__*/_react["default"].createElement(_toggleBar.MiniButton, {
82
101
  disabled: disabled,
83
102
  value: 'Label',
@@ -86,26 +105,24 @@ var ToolMenu = /*#__PURE__*/function (_React$Component) {
86
105
  }));
87
106
  }
88
107
  }]);
89
-
90
108
  return ToolMenu;
91
109
  }(_react["default"].Component);
92
110
 
93
111
  exports.ToolMenu = ToolMenu;
94
-
95
- _defineProperty(ToolMenu, "propTypes", {
112
+ (0, _defineProperty2["default"])(ToolMenu, "propTypes", {
96
113
  className: _propTypes["default"].string,
97
114
  currentToolType: _propTypes["default"].string,
98
115
  disabled: _propTypes["default"].bool,
116
+ draggableTools: _propTypes["default"].bool,
99
117
  labelModeEnabled: _propTypes["default"].bool,
100
118
  onChange: _propTypes["default"].func,
101
119
  onToggleLabelMode: _propTypes["default"].func,
120
+ onChangeTools: _propTypes["default"].func,
102
121
  toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string)
103
122
  });
104
-
105
- _defineProperty(ToolMenu, "defaultProps", {
123
+ (0, _defineProperty2["default"])(ToolMenu, "defaultProps", {
106
124
  toolbarTools: []
107
125
  });
108
-
109
126
  var _default = ToolMenu;
110
127
  exports["default"] = _default;
111
128
  //# sourceMappingURL=tool-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","props","className","currentToolType","disabled","labelModeEnabled","onToggleLabelMode","onChange","toolbarTools","showLabel","some","t","filter","tT","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;WAeX,kBAAS;AACP,wBAOI,KAAKC,KAPT;AAAA,UACEC,SADF,eACEA,SADF;AAAA,UAEEC,eAFF,eAEEA,eAFF;AAAA,UAGEC,QAHF,eAGEA,QAHF;AAAA,UAIEC,gBAJF,eAIEA,gBAJF;AAAA,UAKEC,iBALF,eAKEA,iBALF;AAAA,UAMEC,QANF,eAMEA,QANF;AAQA,UAAMC,YAAN,GAAuB,KAAKP,KAA5B,CAAMO,YAAN;AAEA,UAAMC,SAAS,GAAGD,YAAY,IAAIA,YAAY,CAACE,IAAb,CAAkB,UAAAC,CAAC;AAAA,eAAIA,CAAC,KAAK,OAAV;AAAA,OAAnB,CAAlC;AAEAH,MAAAA,YAAY,GAAG,CAACA,YAAY,IAAI,EAAjB,EAAqBI,MAArB,CAA4B,UAAAC,EAAE;AAAA,eAAIA,EAAE,KAAK,OAAX;AAAA,OAA9B,CAAf;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWX,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,OAAO,EAAEI,YAFX;AAGE,QAAA,gBAAgB,EAAEL,eAHpB;AAIE,QAAA,QAAQ,EAAEI;AAJZ,QADF,EAQGE,SAAS,iBACR,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEL,QADZ;AAEE,QAAA,KAAK,EAAE,OAFT;AAGE,QAAA,OAAO,EAAEE,iBAHX;AAIE,QAAA,QAAQ,EAAED;AAJZ,QATJ,CADF;AAmBD;;;;EAjD2BS,kBAAMC,S;;;;gBAAvBf,Q,eACQ;AACjBE,EAAAA,SAAS,EAAEc,sBAAUC,MADJ;AAEjBd,EAAAA,eAAe,EAAEa,sBAAUC,MAFV;AAGjBb,EAAAA,QAAQ,EAAEY,sBAAUE,IAHH;AAIjBb,EAAAA,gBAAgB,EAAEW,sBAAUE,IAJX;AAKjBX,EAAAA,QAAQ,EAAES,sBAAUG,IALH;AAMjBb,EAAAA,iBAAiB,EAAEU,sBAAUG,IANZ;AAOjBX,EAAAA,YAAY,EAAEQ,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B;AAPG,C;;gBADRjB,Q,kBAWW;AACpBQ,EAAAA,YAAY,EAAE;AADM,C;;eAyCTR,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onToggleLabelMode: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string)\n };\n\n static defaultProps = {\n toolbarTools: []\n };\n\n render() {\n const {\n className,\n currentToolType,\n disabled,\n labelModeEnabled,\n onToggleLabelMode,\n onChange\n } = this.props;\n let { toolbarTools } = this.props;\n\n const showLabel = toolbarTools && toolbarTools.some(t => t === 'label');\n\n toolbarTools = (toolbarTools || []).filter(tT => tT !== 'label');\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n />\n\n {showLabel && (\n <MiniButton\n disabled={disabled}\n value={'Label'}\n onClick={onToggleLabelMode}\n selected={labelModeEnabled}\n />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}
1
+ {"version":3,"sources":["../src/tool-menu.jsx"],"names":["ToolMenu","tools","showLabel","onChangeTools","props","push","className","currentToolType","disabled","draggableTools","labelModeEnabled","onToggleLabelMode","onChange","toolbarTools","some","t","filter","tT","updateToolsOrder","React","Component","PropTypes","string","bool","func","arrayOf"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,Q;;;;;;;;;;;;;;;yGAiBQ,UAACC,KAAD,EAAQC,SAAR,EAAsB;AACvC,UAAQC,aAAR,GAA0B,MAAKC,KAA/B,CAAQD,aAAR;;AAEA,UAAID,SAAJ,EAAe;AACbD,QAAAA,KAAK,CAACI,IAAN,CAAW,OAAX;AACD;;AAEDF,MAAAA,aAAa,CAACF,KAAD,CAAb;AACD,K;;;;;;WAED,kBAAS;AAAA;;AACP,wBAQI,KAAKG,KART;AAAA,UACEE,SADF,eACEA,SADF;AAAA,UAEEC,eAFF,eAEEA,eAFF;AAAA,UAGEC,QAHF,eAGEA,QAHF;AAAA,UAIEC,cAJF,eAIEA,cAJF;AAAA,UAKEC,gBALF,eAKEA,gBALF;AAAA,UAMEC,iBANF,eAMEA,iBANF;AAAA,UAOEC,QAPF,eAOEA,QAPF;AASA,UAAMC,YAAN,GAAuB,KAAKT,KAA5B,CAAMS,YAAN;AAEA,UAAMX,SAAS,GAAGW,YAAY,IAAIA,YAAY,CAACC,IAAb,CAAkB,UAAAC,CAAC;AAAA,eAAIA,CAAC,KAAK,OAAV;AAAA,OAAnB,CAAlC;AAEAF,MAAAA,YAAY,GAAG,CAACA,YAAY,IAAI,EAAjB,EAAqBG,MAArB,CAA4B,UAAAC,EAAE;AAAA,eAAIA,EAAE,KAAK,OAAX;AAAA,OAA9B,CAAf;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWX,SAAX;AAAhB,sBACE,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEE,QADZ;AAEE,QAAA,cAAc,EAAEC,cAFlB;AAGE,QAAA,OAAO,EAAEI,YAHX;AAIE,QAAA,gBAAgB,EAAEN,eAJpB;AAKE,QAAA,QAAQ,EAAEK,QALZ;AAME,QAAA,kBAAkB,EAAE,4BAAAX,KAAK;AAAA,iBAAI,MAAI,CAACiB,gBAAL,CAAsBjB,KAAtB,EAA6BC,SAA7B,CAAJ;AAAA;AAN3B,QADF,EAUGA,SAAS,iBACR,gCAAC,qBAAD;AACE,QAAA,QAAQ,EAAEM,QADZ;AAEE,QAAA,KAAK,EAAE,OAFT;AAGE,QAAA,OAAO,EAAEG,iBAHX;AAIE,QAAA,QAAQ,EAAED;AAJZ,QAXJ,CADF;AAqBD;;;EAhE2BS,kBAAMC,S;;;iCAAvBpB,Q,eACQ;AACjBM,EAAAA,SAAS,EAAEe,sBAAUC,MADJ;AAEjBf,EAAAA,eAAe,EAAEc,sBAAUC,MAFV;AAGjBd,EAAAA,QAAQ,EAAEa,sBAAUE,IAHH;AAIjBd,EAAAA,cAAc,EAAEY,sBAAUE,IAJT;AAKjBb,EAAAA,gBAAgB,EAAEW,sBAAUE,IALX;AAMjBX,EAAAA,QAAQ,EAAES,sBAAUG,IANH;AAOjBb,EAAAA,iBAAiB,EAAEU,sBAAUG,IAPZ;AAQjBrB,EAAAA,aAAa,EAAEkB,sBAAUG,IARR;AASjBX,EAAAA,YAAY,EAAEQ,sBAAUI,OAAV,CAAkBJ,sBAAUC,MAA5B;AATG,C;iCADRtB,Q,kBAaW;AACpBa,EAAAA,YAAY,EAAE;AADM,C;eAsDTb,Q","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport ToggleBar, { MiniButton } from './toggle-bar';\n\nexport class ToolMenu extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n currentToolType: PropTypes.string,\n disabled: PropTypes.bool,\n draggableTools: PropTypes.bool,\n labelModeEnabled: PropTypes.bool,\n onChange: PropTypes.func,\n onToggleLabelMode: PropTypes.func,\n onChangeTools: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string)\n };\n\n static defaultProps = {\n toolbarTools: []\n };\n\n updateToolsOrder = (tools, showLabel) => {\n const { onChangeTools } = this.props;\n\n if (showLabel) {\n tools.push('label');\n }\n\n onChangeTools(tools);\n };\n\n render() {\n const {\n className,\n currentToolType,\n disabled,\n draggableTools,\n labelModeEnabled,\n onToggleLabelMode,\n onChange\n } = this.props;\n let { toolbarTools } = this.props;\n\n const showLabel = toolbarTools && toolbarTools.some(t => t === 'label');\n\n toolbarTools = (toolbarTools || []).filter(tT => tT !== 'label');\n\n return (\n <div className={classNames(className)}>\n <ToggleBar\n disabled={disabled}\n draggableTools={draggableTools}\n options={toolbarTools}\n selectedToolType={currentToolType}\n onChange={onChange}\n onChangeToolsOrder={tools => this.updateToolsOrder(tools, showLabel)}\n />\n\n {showLabel && (\n <MiniButton\n disabled={disabled}\n value={'Label'}\n onClick={onToggleLabelMode}\n selected={labelModeEnabled}\n />\n )}\n </div>\n );\n }\n}\n\nexport default ToolMenu;\n"],"file":"tool-menu.js"}