@pie-lib/graphing 2.34.1 → 2.35.0-mui-update.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +10 -8
  2. package/lib/axis/arrow.js +19 -55
  3. package/lib/axis/arrow.js.map +1 -1
  4. package/lib/axis/axes.js +104 -186
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/axis/index.js +1 -6
  7. package/lib/axis/index.js.map +1 -1
  8. package/lib/bg.js +21 -49
  9. package/lib/bg.js.map +1 -1
  10. package/lib/container/actions.js +2 -8
  11. package/lib/container/actions.js.map +1 -1
  12. package/lib/container/index.js +14 -59
  13. package/lib/container/index.js.map +1 -1
  14. package/lib/container/marks.js +1 -6
  15. package/lib/container/marks.js.map +1 -1
  16. package/lib/container/middleware.js +2 -8
  17. package/lib/container/middleware.js.map +1 -1
  18. package/lib/container/reducer.js +1 -8
  19. package/lib/container/reducer.js.map +1 -1
  20. package/lib/coordinates-label.js +23 -55
  21. package/lib/coordinates-label.js.map +1 -1
  22. package/lib/graph-with-controls.js +113 -183
  23. package/lib/graph-with-controls.js.map +1 -1
  24. package/lib/graph.js +59 -116
  25. package/lib/graph.js.map +1 -1
  26. package/lib/grid-setup.js +161 -223
  27. package/lib/grid-setup.js.map +1 -1
  28. package/lib/grid.js +28 -73
  29. package/lib/grid.js.map +1 -1
  30. package/lib/index.js +1 -13
  31. package/lib/index.js.map +1 -1
  32. package/lib/key-legend.js +41 -85
  33. package/lib/key-legend.js.map +1 -1
  34. package/lib/label-svg-icon.js +1 -7
  35. package/lib/label-svg-icon.js.map +1 -1
  36. package/lib/labels.js +61 -119
  37. package/lib/labels.js.map +1 -1
  38. package/lib/mark-label.js +113 -163
  39. package/lib/mark-label.js.map +1 -1
  40. package/lib/toggle-bar.js +158 -242
  41. package/lib/toggle-bar.js.map +1 -1
  42. package/lib/tool-menu.js +16 -48
  43. package/lib/tool-menu.js.map +1 -1
  44. package/lib/tools/absolute/component.js +4 -10
  45. package/lib/tools/absolute/component.js.map +1 -1
  46. package/lib/tools/absolute/index.js +3 -16
  47. package/lib/tools/absolute/index.js.map +1 -1
  48. package/lib/tools/circle/bg-circle.js +42 -92
  49. package/lib/tools/circle/bg-circle.js.map +1 -1
  50. package/lib/tools/circle/component.js +79 -165
  51. package/lib/tools/circle/component.js.map +1 -1
  52. package/lib/tools/circle/index.js +3 -13
  53. package/lib/tools/circle/index.js.map +1 -1
  54. package/lib/tools/exponential/component.js +4 -10
  55. package/lib/tools/exponential/component.js.map +1 -1
  56. package/lib/tools/exponential/index.js +3 -18
  57. package/lib/tools/exponential/index.js.map +1 -1
  58. package/lib/tools/index.js +3 -16
  59. package/lib/tools/index.js.map +1 -1
  60. package/lib/tools/line/component.js +27 -48
  61. package/lib/tools/line/component.js.map +1 -1
  62. package/lib/tools/line/index.js +1 -6
  63. package/lib/tools/line/index.js.map +1 -1
  64. package/lib/tools/parabola/component.js +4 -10
  65. package/lib/tools/parabola/component.js.map +1 -1
  66. package/lib/tools/parabola/index.js +3 -16
  67. package/lib/tools/parabola/index.js.map +1 -1
  68. package/lib/tools/point/component.js +24 -71
  69. package/lib/tools/point/component.js.map +1 -1
  70. package/lib/tools/point/index.js +3 -11
  71. package/lib/tools/point/index.js.map +1 -1
  72. package/lib/tools/polygon/component.js +82 -183
  73. package/lib/tools/polygon/component.js.map +1 -1
  74. package/lib/tools/polygon/index.js +6 -23
  75. package/lib/tools/polygon/index.js.map +1 -1
  76. package/lib/tools/polygon/line.js +48 -91
  77. package/lib/tools/polygon/line.js.map +1 -1
  78. package/lib/tools/polygon/polygon.js +65 -98
  79. package/lib/tools/polygon/polygon.js.map +1 -1
  80. package/lib/tools/ray/component.js +41 -60
  81. package/lib/tools/ray/component.js.map +1 -1
  82. package/lib/tools/ray/index.js +1 -6
  83. package/lib/tools/ray/index.js.map +1 -1
  84. package/lib/tools/segment/component.js +25 -43
  85. package/lib/tools/segment/component.js.map +1 -1
  86. package/lib/tools/segment/index.js +1 -6
  87. package/lib/tools/segment/index.js.map +1 -1
  88. package/lib/tools/shared/arrow-head.js +69 -28
  89. package/lib/tools/shared/arrow-head.js.map +1 -1
  90. package/lib/tools/shared/icons/CorrectSVG.js +3 -8
  91. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -1
  92. package/lib/tools/shared/icons/IncorrectSVG.js +3 -8
  93. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -1
  94. package/lib/tools/shared/icons/MissingSVG.js +3 -8
  95. package/lib/tools/shared/icons/MissingSVG.js.map +1 -1
  96. package/lib/tools/shared/line/index.js +126 -187
  97. package/lib/tools/shared/line/index.js.map +1 -1
  98. package/lib/tools/shared/line/line-path.js +70 -100
  99. package/lib/tools/shared/line/line-path.js.map +1 -1
  100. package/lib/tools/shared/line/with-root-edge.js +21 -55
  101. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  102. package/lib/tools/shared/point/arrow-point.js +23 -62
  103. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  104. package/lib/tools/shared/point/arrow.js +24 -52
  105. package/lib/tools/shared/point/arrow.js.map +1 -1
  106. package/lib/tools/shared/point/base-point.js +54 -72
  107. package/lib/tools/shared/point/base-point.js.map +1 -1
  108. package/lib/tools/shared/point/index.js +22 -57
  109. package/lib/tools/shared/point/index.js.map +1 -1
  110. package/lib/tools/shared/styles.js +10 -38
  111. package/lib/tools/shared/styles.js.map +1 -1
  112. package/lib/tools/shared/types.js +2 -9
  113. package/lib/tools/shared/types.js.map +1 -1
  114. package/lib/tools/sine/component.js +8 -19
  115. package/lib/tools/sine/component.js.map +1 -1
  116. package/lib/tools/sine/index.js +3 -16
  117. package/lib/tools/sine/index.js.map +1 -1
  118. package/lib/tools/vector/component.js +24 -44
  119. package/lib/tools/vector/component.js.map +1 -1
  120. package/lib/tools/vector/index.js +1 -6
  121. package/lib/tools/vector/index.js.map +1 -1
  122. package/lib/undo-redo.js +29 -69
  123. package/lib/undo-redo.js.map +1 -1
  124. package/lib/use-debounce.js +4 -11
  125. package/lib/use-debounce.js.map +1 -1
  126. package/lib/utils.js +51 -128
  127. package/lib/utils.js.map +1 -1
  128. package/package.json +15 -13
  129. package/src/axis/arrow.jsx +7 -12
  130. package/src/axis/axes.jsx +40 -45
  131. package/src/coordinates-label.jsx +13 -18
  132. package/src/graph-with-controls.jsx +52 -59
  133. package/src/grid-setup.jsx +204 -206
  134. package/src/grid.jsx +1 -3
  135. package/src/key-legend.jsx +52 -56
  136. package/src/labels.jsx +21 -30
  137. package/src/mark-label.jsx +83 -81
  138. package/src/toggle-bar.jsx +155 -166
  139. package/src/tools/circle/bg-circle.jsx +20 -28
  140. package/src/tools/circle/component.jsx +28 -63
  141. package/src/tools/line/component.jsx +22 -15
  142. package/src/tools/polygon/component.jsx +1 -2
  143. package/src/tools/polygon/line.jsx +28 -32
  144. package/src/tools/polygon/polygon.jsx +52 -45
  145. package/src/tools/ray/component.jsx +38 -25
  146. package/src/tools/segment/component.jsx +19 -18
  147. package/src/tools/shared/arrow-head.jsx +60 -7
  148. package/src/tools/shared/line/index.jsx +39 -2
  149. package/src/tools/shared/line/line-path.jsx +54 -58
  150. package/src/tools/shared/point/arrow-point.jsx +10 -24
  151. package/src/tools/shared/point/arrow.jsx +5 -11
  152. package/src/tools/shared/point/base-point.jsx +42 -19
  153. package/src/tools/shared/point/index.jsx +27 -44
  154. package/src/tools/vector/component.jsx +11 -16
  155. package/src/undo-redo.jsx +19 -21
package/lib/toggle-bar.js CHANGED
@@ -1,94 +1,69 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.ToggleBar = exports.MiniButton = exports.Item = void 0;
9
-
7
+ exports["default"] = exports.ToggleBar = exports.MiniButton = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
10
  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
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _react = _interopRequireDefault(require("react"));
25
-
26
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
33
-
17
+ var _styles = require("@mui/material/styles");
18
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
34
19
  var _renderUi = require("@pie-lib/render-ui");
35
-
36
20
  var _tools = require("./tools");
37
-
38
21
  var _drag = require("@pie-lib/drag");
39
-
22
+ var _core = require("@dnd-kit/core");
23
+ var _utilities = require("@dnd-kit/utilities");
24
+ var _sortable = require("@dnd-kit/sortable");
40
25
  var _translator = _interopRequireDefault(require("@pie-lib/translator"));
41
-
42
- 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); }; }
43
-
44
- 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; } }
45
-
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
47
-
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
49
-
26
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
27
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
28
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
50
30
  var translator = _translator["default"].translator;
51
-
52
- var buttonStyles = function buttonStyles() {
53
- return {
54
- root: {
55
- color: _renderUi.color.text()
56
- },
57
- selected: {
58
- backgroundColor: _renderUi.color.background(),
59
- border: "1px solid ".concat(_renderUi.color.secondary())
60
- },
61
- notSelected: {
62
- '& span': {
63
- color: _renderUi.color.primary()
64
- },
65
- backgroundColor: _renderUi.color.background()
66
- },
67
- disabled: {
68
- '& span': {
69
- color: _renderUi.color.primary()
70
- },
71
- backgroundColor: _renderUi.color.disabled()
31
+ var StyledMiniButton = (0, _styles.styled)(_Button["default"], {
32
+ shouldForwardProp: function shouldForwardProp(prop) {
33
+ return !['selected'].includes(prop);
34
+ }
35
+ })(function (_ref) {
36
+ var selected = _ref.selected,
37
+ disabled = _ref.disabled;
38
+ return _objectSpread(_objectSpread(_objectSpread({
39
+ color: _renderUi.color.text(),
40
+ backgroundColor: _renderUi.color.background()
41
+ }, selected && {
42
+ border: "1px solid ".concat(_renderUi.color.secondary())
43
+ }), !selected && {
44
+ '& span': {
45
+ color: _renderUi.color.primary()
72
46
  }
73
- };
74
- };
75
-
76
- var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
47
+ }), disabled && {
48
+ '& span': {
49
+ color: _renderUi.color.primary()
50
+ },
51
+ backgroundColor: _renderUi.color.disabled()
52
+ });
53
+ });
54
+ var MiniButton = exports.MiniButton = function MiniButton(props) {
77
55
  var disabled = props.disabled,
78
- classes = props.classes,
79
- className = props.className,
80
- selected = props.selected,
81
- value = props.value,
82
- _onClick = props.onClick,
83
- language = props.language;
56
+ className = props.className,
57
+ selected = props.selected,
58
+ value = props.value,
59
+ _onClick = props.onClick,
60
+ language = props.language;
84
61
  var translatorKey = value.toLowerCase();
85
- return /*#__PURE__*/_react["default"].createElement(_Button["default"], {
62
+ return /*#__PURE__*/_react["default"].createElement(StyledMiniButton, {
86
63
  size: "small",
87
64
  disabled: disabled,
88
- className: (0, _classnames["default"])(classes.root, selected && classes.selected, className),
89
- classes: {
90
- disabled: (0, _classnames["default"])(disabled && classes.disabled)
91
- },
65
+ className: className,
66
+ selected: selected,
92
67
  value: value,
93
68
  key: value,
94
69
  variant: "outlined",
@@ -100,78 +75,97 @@ var MiniButton = (0, _styles.withStyles)(buttonStyles)(function (props) {
100
75
  }, translator.t("graphing.".concat(translatorKey), {
101
76
  lng: language
102
77
  }));
103
- });
104
- exports.MiniButton = MiniButton;
78
+ };
105
79
  MiniButton.propTypes = {
106
80
  disabled: _propTypes["default"].bool,
107
- classes: _propTypes["default"].object,
108
81
  className: _propTypes["default"].string,
109
82
  disabledClassName: _propTypes["default"].string,
110
83
  selected: _propTypes["default"].bool,
111
84
  value: _propTypes["default"].string,
112
85
  onClick: _propTypes["default"].func
113
86
  };
114
-
115
- var ToggleBar = /*#__PURE__*/function (_React$Component) {
116
- (0, _inherits2["default"])(ToggleBar, _React$Component);
117
-
118
- var _super = _createSuper(ToggleBar);
119
-
87
+ var StyledToolsContainer = (0, _styles.styled)('div')(function (_ref2) {
88
+ var theme = _ref2.theme;
89
+ return {
90
+ display: 'flex',
91
+ flexWrap: 'wrap'
92
+ };
93
+ });
94
+ var StyledButton = (0, _styles.styled)(MiniButton)(function (_ref3) {
95
+ var theme = _ref3.theme;
96
+ return {
97
+ marginRight: theme.spacing(0.5),
98
+ marginBottom: theme.spacing(0.5),
99
+ color: _renderUi.color.text()
100
+ };
101
+ });
102
+ var StyledWrapper = (0, _styles.styled)('div')({
103
+ position: 'relative'
104
+ });
105
+ var ToggleBar = exports.ToggleBar = /*#__PURE__*/function (_React$Component) {
120
106
  function ToggleBar() {
121
107
  var _this;
122
-
123
108
  (0, _classCallCheck2["default"])(this, ToggleBar);
124
-
125
109
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
126
110
  args[_key] = arguments[_key];
127
111
  }
128
-
129
- _this = _super.call.apply(_super, [this].concat(args));
130
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "select", function (e) {
112
+ _this = _callSuper(this, ToggleBar, [].concat(args));
113
+ (0, _defineProperty2["default"])(_this, "select", function (e) {
131
114
  return _this.props.onChange(e.buttonValue || e.target.textContent);
132
115
  });
133
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveTool", function (dragIndex, hoverIndex) {
116
+ (0, _defineProperty2["default"])(_this, "moveTool", function (dragIndex, hoverIndex) {
134
117
  var _this$props = _this.props,
135
- options = _this$props.options,
136
- onChangeToolsOrder = _this$props.onChangeToolsOrder;
137
- var dragged = options[dragIndex];
138
- options.splice(dragIndex, 1);
139
- options.splice(hoverIndex, 0, dragged);
140
- onChangeToolsOrder(options);
118
+ options = _this$props.options,
119
+ onChangeToolsOrder = _this$props.onChangeToolsOrder;
120
+ var newOptions = (0, _sortable.arrayMove)(options, dragIndex, hoverIndex);
121
+ console.log('New Options Order:', newOptions);
122
+ onChangeToolsOrder(newOptions);
123
+ });
124
+ (0, _defineProperty2["default"])(_this, "handleDragEnd", function (event) {
125
+ var active = event.active,
126
+ over = event.over;
127
+ console.log('Drag End Event:', event);
128
+ if (!over || !active) return;
129
+ var activeData = active.data.current;
130
+ var overData = over.data.current;
131
+ if ((activeData === null || activeData === void 0 ? void 0 : activeData.type) === 'tool' && (overData === null || overData === void 0 ? void 0 : overData.type) === 'tool') {
132
+ var dragIndex = activeData.index;
133
+ var hoverIndex = overData.index;
134
+ if (dragIndex !== hoverIndex) {
135
+ _this.moveTool(dragIndex, hoverIndex);
136
+ }
137
+ }
141
138
  });
142
139
  return _this;
143
140
  }
144
-
145
- (0, _createClass2["default"])(ToggleBar, [{
141
+ (0, _inherits2["default"])(ToggleBar, _React$Component);
142
+ return (0, _createClass2["default"])(ToggleBar, [{
146
143
  key: "render",
147
144
  value: function render() {
148
145
  var _this2 = this;
149
-
150
146
  var _this$props2 = this.props,
151
- classes = _this$props2.classes,
152
- className = _this$props2.className,
153
- disabled = _this$props2.disabled,
154
- options = _this$props2.options,
155
- selectedToolType = _this$props2.selectedToolType,
156
- draggableTools = _this$props2.draggableTools,
157
- language = _this$props2.language;
158
- return /*#__PURE__*/_react["default"].createElement("div", {
159
- className: (0, _classnames["default"])(className, classes.toolsContainer)
147
+ className = _this$props2.className,
148
+ disabled = _this$props2.disabled,
149
+ options = _this$props2.options,
150
+ selectedToolType = _this$props2.selectedToolType,
151
+ draggableTools = _this$props2.draggableTools,
152
+ language = _this$props2.language;
153
+ return /*#__PURE__*/_react["default"].createElement(_drag.DragProvider, {
154
+ onDragEnd: this.handleDragEnd
155
+ }, /*#__PURE__*/_react["default"].createElement(StyledToolsContainer, {
156
+ className: className
160
157
  }, (options || []).map(function (option, index) {
161
158
  if ((_tools.allTools || []).includes(option)) {
162
159
  var isSelected = option === selectedToolType;
163
-
164
160
  var toolRef = /*#__PURE__*/_react["default"].createRef();
165
-
166
161
  return /*#__PURE__*/_react["default"].createElement(DragTool, {
167
162
  key: option,
168
163
  index: index,
164
+ value: option,
169
165
  draggable: draggableTools,
170
166
  moveTool: _this2.moveTool,
171
- classes: classes,
172
167
  toolRef: toolRef
173
- }, /*#__PURE__*/_react["default"].createElement(MiniButton, {
174
- className: (0, _classnames["default"])(classes.button, isSelected && classes.selected),
168
+ }, /*#__PURE__*/_react["default"].createElement(StyledButton, {
175
169
  disabled: disabled,
176
170
  disableRipple: true,
177
171
  onClick: _this2.select,
@@ -180,15 +174,11 @@ var ToggleBar = /*#__PURE__*/function (_React$Component) {
180
174
  language: language
181
175
  }));
182
176
  }
183
- }));
177
+ })));
184
178
  }
185
179
  }]);
186
- return ToggleBar;
187
- }(_react["default"].Component);
188
-
189
- exports.ToggleBar = ToggleBar;
180
+ }(_react["default"].Component); // DragTool functional component using @dnd-kit hooks
190
181
  (0, _defineProperty2["default"])(ToggleBar, "propTypes", {
191
- classes: _propTypes["default"].object.isRequired,
192
182
  className: _propTypes["default"].string,
193
183
  options: _propTypes["default"].arrayOf(_propTypes["default"].string),
194
184
  selectedToolType: _propTypes["default"].string,
@@ -199,138 +189,64 @@ exports.ToggleBar = ToggleBar;
199
189
  language: _propTypes["default"].string
200
190
  });
201
191
  (0, _defineProperty2["default"])(ToggleBar, "defaultProps", {});
202
-
203
- var styles = function styles(theme) {
204
- return {
205
- toolsContainer: {
206
- display: 'flex',
207
- flexWrap: 'wrap'
208
- },
209
- button: {
210
- marginRight: theme.spacing.unit / 2,
211
- marginBottom: theme.spacing.unit / 2,
212
- color: _renderUi.color.text()
213
- },
214
- under: {
215
- position: 'absolute',
216
- top: 0,
217
- left: 0,
218
- zIndex: -1,
219
- pointerEvents: 'none'
220
- },
221
- wrapper: {
222
- position: 'relative'
223
- },
224
- hidden: {
225
- opacity: 0
192
+ function DragTool(_ref4) {
193
+ var children = _ref4.children,
194
+ index = _ref4.index,
195
+ draggable = _ref4.draggable,
196
+ moveTool = _ref4.moveTool,
197
+ toolRef = _ref4.toolRef,
198
+ value = _ref4.value;
199
+ var _useDraggable = (0, _core.useDraggable)({
200
+ id: "tool-".concat(value, "-").concat(index),
201
+ disabled: !draggable,
202
+ data: {
203
+ type: 'tool',
204
+ index: index,
205
+ value: value
206
+ }
207
+ }),
208
+ attributes = _useDraggable.attributes,
209
+ listeners = _useDraggable.listeners,
210
+ setDragNodeRef = _useDraggable.setNodeRef,
211
+ transform = _useDraggable.transform,
212
+ transition = _useDraggable.transition,
213
+ isDragging = _useDraggable.isDragging;
214
+ var _useDroppable = (0, _core.useDroppable)({
215
+ id: "drop-tool-".concat(value, "-").concat(index),
216
+ data: {
217
+ type: 'tool',
218
+ index: index,
219
+ accepts: ['tool']
220
+ }
221
+ }),
222
+ setDropNodeRef = _useDroppable.setNodeRef,
223
+ isOver = _useDroppable.isOver;
224
+
225
+ // Combine refs
226
+ var setNodeRef = function setNodeRef(node) {
227
+ setDragNodeRef(node);
228
+ setDropNodeRef(node);
229
+ if (toolRef !== null && toolRef !== void 0 && toolRef.current) {
230
+ toolRef.current = node;
226
231
  }
227
232
  };
228
- };
229
-
230
- var _default = (0, _drag.withDragContext)((0, _styles.withStyles)(styles)(ToggleBar));
231
-
232
- exports["default"] = _default;
233
- var DRAG_TYPE = 'tool';
234
-
235
- var Item = /*#__PURE__*/function (_React$Component2) {
236
- (0, _inherits2["default"])(Item, _React$Component2);
237
-
238
- var _super2 = _createSuper(Item);
239
-
240
- function Item() {
241
- (0, _classCallCheck2["default"])(this, Item);
242
- return _super2.apply(this, arguments);
243
- }
244
-
245
- (0, _createClass2["default"])(Item, [{
246
- key: "render",
247
- value: function render() {
248
- var _this$props3 = this.props,
249
- classes = _this$props3.classes,
250
- children = _this$props3.children,
251
- connectDragSource = _this$props3.connectDragSource,
252
- connectDropTarget = _this$props3.connectDropTarget,
253
- connectDragPreview = _this$props3.connectDragPreview,
254
- isDragging = _this$props3.isDragging,
255
- toolRef = _this$props3.toolRef;
256
- return /*#__PURE__*/_react["default"].createElement("div", {
257
- className: classes.wrapper,
258
- ref: toolRef
259
- }, connectDragSource(connectDropTarget( /*#__PURE__*/_react["default"].createElement("div", {
260
- className: isDragging && classes.hidden
261
- }, children))), connectDragPreview( /*#__PURE__*/_react["default"].createElement("div", {
262
- className: classes.under
263
- }, children)));
264
- }
265
- }]);
266
- return Item;
267
- }(_react["default"].Component);
268
-
269
- exports.Item = Item;
270
- (0, _defineProperty2["default"])(Item, "propTypes", {
271
- classes: _propTypes["default"].object.isRequired,
272
- className: _propTypes["default"].string,
273
- children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]),
274
- connectDragSource: _propTypes["default"].func.isRequired,
275
- connectDragPreview: _propTypes["default"].func.isRequired,
276
- connectDropTarget: _propTypes["default"].func.isRequired,
277
- isDragging: _propTypes["default"].bool,
278
- toolRef: _propTypes["default"].any
279
- });
280
- (0, _defineProperty2["default"])(Item, "defaultProps", {});
281
- var itemSource = {
282
- canDrag: function canDrag(props) {
283
- return props.draggable;
284
- },
285
- beginDrag: function beginDrag(props) {
286
- return {
287
- index: props.index
288
- };
289
- }
290
- };
291
- var itemTarget = {
292
- hover: function hover(props, monitor) {
293
- var _toolRef$current;
294
-
295
- var dragIndex = monitor.getItem().index;
296
- var toolRef = props.toolRef,
297
- hoverIndex = props.index;
298
-
299
- if (dragIndex === hoverIndex || !toolRef.current) {
300
- return;
301
- }
302
-
303
- var hoverBoundingRect = (_toolRef$current = toolRef.current) === null || _toolRef$current === void 0 ? void 0 : _toolRef$current.getBoundingClientRect();
304
- var hoverMiddleX = (hoverBoundingRect.right - hoverBoundingRect.left) / 2;
305
- var clientOffset = monitor.getClientOffset();
306
- var hoverClientX = clientOffset.x - hoverBoundingRect.left;
307
-
308
- if (dragIndex < hoverIndex && hoverClientX < hoverMiddleX) {
309
- return;
310
- }
311
-
312
- if (dragIndex > hoverIndex && hoverClientX > hoverMiddleX) {
313
- return;
314
- }
315
-
316
- props.moveTool(dragIndex, hoverIndex);
317
- monitor.getItem().index = hoverIndex;
318
- }
319
- };
320
-
321
- var collectTarget = function collectTarget(connect) {
322
- return {
323
- connectDropTarget: connect.dropTarget()
324
- };
325
- };
326
-
327
- var collectSource = function collectSource(connect, monitor) {
328
- return {
329
- connectDragSource: connect.dragSource(),
330
- connectDragPreview: connect.dragPreview(),
331
- isDragging: monitor.isDragging()
233
+ var style = {
234
+ transform: _utilities.CSS.Transform.toString(transform),
235
+ transition: transition,
236
+ opacity: isDragging ? 0.5 : 1
332
237
  };
238
+ return /*#__PURE__*/_react["default"].createElement(StyledWrapper, {
239
+ ref: setNodeRef,
240
+ style: style
241
+ }, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({}, attributes, listeners), children));
242
+ }
243
+ DragTool.propTypes = {
244
+ children: _propTypes["default"].node,
245
+ index: _propTypes["default"].number,
246
+ draggable: _propTypes["default"].bool,
247
+ moveTool: _propTypes["default"].func,
248
+ toolRef: _propTypes["default"].object,
249
+ value: _propTypes["default"].string
333
250
  };
334
-
335
- var DragTool = (0, _drag.DropTarget)(DRAG_TYPE, itemTarget, collectTarget)((0, _drag.DragSource)(DRAG_TYPE, itemSource, collectSource)(Item));
251
+ var _default = exports["default"] = ToggleBar;
336
252
  //# sourceMappingURL=toggle-bar.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["translator","Translator","buttonStyles","root","color","text","selected","backgroundColor","background","border","secondary","notSelected","primary","disabled","MiniButton","props","classes","className","value","onClick","language","translatorKey","toLowerCase","e","buttonValue","t","lng","propTypes","PropTypes","bool","object","string","disabledClassName","func","ToggleBar","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","any","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';\nimport { withDragContext, DragSource, DropTarget } from '@pie-lib/drag';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\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, language } = props;\n const translatorKey = value.toLowerCase();\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={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\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 language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || 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, language } = 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 language={language}\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 },\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 toolRef: PropTypes.any,\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(connectDropTarget(<div className={isDragging && classes.hidden}>{children}</div>))}\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"}
1
+ {"version":3,"file":"toggle-bar.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_Button","_renderUi","_tools","_drag","_core","_utilities","_sortable","_translator","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ownKeys","r","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","translator","Translator","StyledMiniButton","styled","Button","shouldForwardProp","prop","includes","_ref","selected","disabled","color","text","backgroundColor","background","border","concat","secondary","primary","MiniButton","exports","props","className","value","onClick","language","translatorKey","toLowerCase","createElement","size","key","variant","buttonValue","lng","propTypes","PropTypes","bool","string","disabledClassName","func","StyledToolsContainer","_ref2","theme","display","flexWrap","StyledButton","_ref3","marginRight","spacing","marginBottom","StyledWrapper","position","ToggleBar","_React$Component","_this","_classCallCheck2","_len","args","Array","_key","onChange","target","textContent","dragIndex","hoverIndex","_this$props","options","onChangeToolsOrder","newOptions","arrayMove","console","log","event","active","over","activeData","data","current","overData","type","index","moveTool","_inherits2","_createClass2","render","_this2","_this$props2","selectedToolType","draggableTools","DragProvider","onDragEnd","handleDragEnd","map","option","allTools","isSelected","toolRef","React","createRef","DragTool","draggable","disableRipple","select","Component","arrayOf","_ref4","children","_useDraggable","useDraggable","id","attributes","listeners","setDragNodeRef","setNodeRef","transform","transition","isDragging","_useDroppable","useDroppable","accepts","setDropNodeRef","isOver","node","style","CSS","Transform","toString","opacity","ref","_extends2","number","object","_default"],"sources":["../src/toggle-bar.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Button from '@mui/material/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools';\nimport { DragProvider } from '@pie-lib/drag';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { CSS } from '@dnd-kit/utilities';\nimport { arrayMove } from '@dnd-kit/sortable';\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nconst StyledMiniButton = styled(Button, {\n shouldForwardProp: (prop) => !['selected'].includes(prop),\n})(({ selected, disabled }) => ({\n color: color.text(),\n backgroundColor: color.background(),\n ...(selected && {\n border: `1px solid ${color.secondary()}`,\n }),\n ...(!selected && {\n '& span': {\n color: color.primary(),\n },\n }),\n ...(disabled && {\n '& span': {\n color: color.primary(),\n },\n backgroundColor: color.disabled(),\n }),\n}));\n\nexport const MiniButton = (props) => {\n const { disabled, className, selected, value, onClick, language } = props;\n const translatorKey = value.toLowerCase();\n\n return (\n <StyledMiniButton\n size=\"small\"\n disabled={disabled}\n className={className}\n selected={selected}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={(e) => onClick({ ...e, buttonValue: value })}\n >\n {translator.t(`graphing.${translatorKey}`, { lng: language })}\n </StyledMiniButton>\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\nconst StyledToolsContainer = styled('div')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n}));\n\nconst StyledButton = styled(MiniButton)(({ theme }) => ({\n marginRight: theme.spacing(0.5),\n marginBottom: theme.spacing(0.5),\n color: color.text(),\n}));\n\nconst StyledWrapper = styled('div')({\n position: 'relative',\n});\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\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 language: PropTypes.string,\n };\n\n static defaultProps = {};\n\n select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);\n\n moveTool = (dragIndex, hoverIndex) => {\n const { options, onChangeToolsOrder } = this.props;\n const newOptions = arrayMove(options, dragIndex, hoverIndex);\n console.log('New Options Order:', newOptions);\n onChangeToolsOrder(newOptions);\n };\n\n handleDragEnd = (event) => {\n const { active, over } = event;\n \n console.log('Drag End Event:', event);\n if (!over || !active) return;\n\n const activeData = active.data.current;\n const overData = over.data.current;\n\n if (activeData?.type === 'tool' && overData?.type === 'tool') {\n const dragIndex = activeData.index;\n const hoverIndex = overData.index;\n \n if (dragIndex !== hoverIndex) {\n this.moveTool(dragIndex, hoverIndex);\n }\n }\n };\n\n render() {\n const { className, disabled, options, selectedToolType, draggableTools, language } = this.props;\n\n return (\n <DragProvider onDragEnd={this.handleDragEnd}>\n <StyledToolsContainer className={className}>\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 value={option}\n draggable={draggableTools}\n moveTool={this.moveTool}\n toolRef={toolRef}\n >\n <StyledButton\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n language={language}\n />\n </DragTool>\n );\n }\n })}\n </StyledToolsContainer>\n </DragProvider>\n );\n }\n}\n\n// DragTool functional component using @dnd-kit hooks\nfunction DragTool({ \n children, \n index, \n draggable, \n moveTool, \n toolRef, \n value \n}) {\n const {\n attributes,\n listeners,\n setNodeRef: setDragNodeRef,\n transform,\n transition,\n isDragging,\n } = useDraggable({\n id: `tool-${value}-${index}`,\n disabled: !draggable,\n data: {\n type: 'tool',\n index,\n value,\n },\n });\n\n const {\n setNodeRef: setDropNodeRef,\n isOver,\n } = useDroppable({\n id: `drop-tool-${value}-${index}`,\n data: {\n type: 'tool',\n index,\n accepts: ['tool'],\n },\n });\n\n // Combine refs\n const setNodeRef = (node) => {\n setDragNodeRef(node);\n setDropNodeRef(node);\n if (toolRef?.current) {\n toolRef.current = node;\n }\n };\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <StyledWrapper ref={setNodeRef} style={style}>\n <div {...attributes} {...listeners}>\n {children}\n </div>\n </StyledWrapper>\n );\n}\n\nDragTool.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number,\n draggable: PropTypes.bool,\n moveTool: PropTypes.func,\n toolRef: PropTypes.object,\n value: PropTypes.string,\n};\n\nexport default ToggleBar;\n"],"mappings":"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","ignoreList":[]}