zds-pickers 3.9.18 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hooks/useComponentSize.js +28 -28
- package/dist/hooks/useStateWithDynamicDefault.js +5 -5
- package/dist/index.js +43 -42
- package/dist/midi/ccValues.js +8 -3
- package/dist/midi/statuses.js +18 -18
- package/dist/other/DefaultTooltip.js +5 -5
- package/dist/other/OctavePlayer.js +121 -0
- package/dist/other/SVGText.js +47 -47
- package/dist/other/SoundFontProvider.js +29 -29
- package/dist/other/utils.js +12 -12
- package/dist/pickers/CCPicker.js +14 -14
- package/dist/pickers/ChannelMappingPicker.js +42 -42
- package/dist/pickers/ChannelPicker.js +22 -22
- package/dist/pickers/Knob.js +22 -22
- package/dist/pickers/KnobPicker.js +42 -42
- package/dist/pickers/LatchPicker.js +12 -12
- package/dist/pickers/MappingPicker.js +36 -36
- package/dist/pickers/NotePicker.js +23 -23
- package/dist/pickers/PianoPicker.js +33 -33
- package/dist/pickers/PolarityPicker.js +13 -13
- package/dist/pickers/ResponseCurve.js +56 -56
- package/dist/pickers/ResponseCurvePicker.js +28 -28
- package/dist/pickers/Select.js +58 -58
- package/dist/pickers/StatusPicker.js +13 -13
- package/dist/pickers/ValuePicker.js +33 -33
- package/dist/pickers/knobSkin10.js +5 -5
- package/dist/shapes.js +8 -8
- package/dist/stories/assets/General MIDI.js +4 -3
- package/dist/stories/assets/mapper.js +11 -11
- package/dist/stories/assets/utils.js +3 -3
- package/dist/temp/acoustic_grand_piano-mp3.js +1 -1
- package/dist/utils.js +18 -18
- package/package.json +35 -28
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";import PropTypes from 'prop-types';
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import Select from './Select';
|
|
4
4
|
|
|
5
5
|
var options = [
|
|
6
6
|
{ value: 0, label: 'Momentary' },
|
|
7
7
|
{ value: 1, label: 'Latching' }];
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var LatchPicker = /*#__PURE__*/
|
|
11
|
-
|
|
10
|
+
var LatchPicker = /*#__PURE__*/forwardRef(function (props, ref) {return /*#__PURE__*/(
|
|
11
|
+
React.createElement(Select, _extends({},
|
|
12
12
|
props, {
|
|
13
13
|
options: options,
|
|
14
|
-
ref: ref })
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
ref: ref })
|
|
15
|
+
));}
|
|
16
|
+
);
|
|
17
17
|
|
|
18
18
|
LatchPicker.propTypes = {
|
|
19
|
-
onChange:
|
|
20
|
-
value:
|
|
21
|
-
};
|
|
19
|
+
onChange: PropTypes.func.isRequired,
|
|
20
|
+
value: PropTypes.number.isRequired
|
|
21
|
+
};
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
export default LatchPicker;
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";var _excluded = ["allowClearing"];import React, { forwardRef, useMemo } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { getStockNames, getUserMappingNames } from 'zds-mappings';
|
|
4
|
+
import Select from './Select';
|
|
5
5
|
|
|
6
|
-
var MappingPicker = /*#__PURE__*/
|
|
7
|
-
var stockMappings =
|
|
8
|
-
var userMappings =
|
|
6
|
+
var MappingPicker = /*#__PURE__*/forwardRef(function (_ref, ref) {var allowClearing = _ref.allowClearing,rest = _objectWithoutProperties(_ref, _excluded);
|
|
7
|
+
var stockMappings = getStockNames();
|
|
8
|
+
var userMappings = getUserMappingNames();
|
|
9
9
|
|
|
10
|
-
var options =
|
|
10
|
+
var options = useMemo(function () {
|
|
11
11
|
var result = allowClearing ?
|
|
12
12
|
[{
|
|
13
13
|
value: 'No Mapping',
|
|
14
|
-
label: /*#__PURE__*/
|
|
14
|
+
label: /*#__PURE__*/React.createElement("span", { className: "zds-mappings-clear-mapping" }, "No Mapping")
|
|
15
15
|
}] :
|
|
16
16
|
[];
|
|
17
17
|
|
|
18
18
|
return [].concat(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
19
|
+
result, [
|
|
20
|
+
|
|
21
|
+
{
|
|
22
|
+
label: allowClearing ? /*#__PURE__*/React.createElement("hr", null) : '',
|
|
23
|
+
options: userMappings.map(function (label) {return {
|
|
24
|
+
value: label,
|
|
25
|
+
label: /*#__PURE__*/React.createElement("span", { className: "zds-mappings-user-mapping" }, label)
|
|
26
|
+
};})
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
{
|
|
30
|
+
label: userMappings.length ? /*#__PURE__*/
|
|
31
|
+
React.createElement("hr", null) :
|
|
32
|
+
allowClearing ? /*#__PURE__*/React.createElement("hr", null) : '',
|
|
33
|
+
options: stockMappings.map(function (label) {return {
|
|
34
|
+
label: label,
|
|
35
|
+
value: label
|
|
36
|
+
};})
|
|
37
|
+
}]);
|
|
38
38
|
|
|
39
39
|
}, [allowClearing, stockMappings, userMappings]);
|
|
40
40
|
|
|
41
41
|
return /*#__PURE__*/(
|
|
42
|
-
|
|
42
|
+
React.createElement(Select, _extends({},
|
|
43
43
|
rest, {
|
|
44
44
|
options: options,
|
|
45
|
-
ref: ref })
|
|
46
|
-
|
|
45
|
+
ref: ref })
|
|
46
|
+
));
|
|
47
47
|
|
|
48
48
|
});
|
|
49
49
|
|
|
50
50
|
MappingPicker.propTypes = {
|
|
51
|
-
allowClearing:
|
|
52
|
-
onChange:
|
|
53
|
-
value:
|
|
51
|
+
allowClearing: PropTypes.bool,
|
|
52
|
+
onChange: PropTypes.func.isRequired,
|
|
53
|
+
value: PropTypes.string
|
|
54
54
|
};
|
|
55
55
|
|
|
56
56
|
MappingPicker.defaultProps = {
|
|
57
57
|
allowClearing: true,
|
|
58
58
|
value: 'General MIDI'
|
|
59
|
-
};
|
|
59
|
+
};
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
export default MappingPicker;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";import _slicedToArray from "@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";var _excluded = ["channel", "disabled", "mapping", "onChange", "value"];import React, { forwardRef, useCallback } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { emptyMapping } from 'zds-mappings';
|
|
4
|
+
import { mappingShape } from '../shapes';
|
|
5
|
+
import { assertRange } from '../utils';
|
|
6
|
+
import useStateWithDynamicDefault from '../hooks/useStateWithDynamicDefault';
|
|
7
|
+
import Select from './Select';
|
|
8
8
|
|
|
9
9
|
var formattedMapEntry = function formattedMapEntry(_ref) {var note = _ref.note,name = _ref.name;return "".concat(note, " ").concat(name.length ? '-' : '', " ").concat(name);};
|
|
10
10
|
var formattedListEntry = function formattedListEntry(label, idx) {return { label: label, value: idx + 1 };};
|
|
11
11
|
|
|
12
|
-
var NotePicker = /*#__PURE__*/
|
|
13
|
-
var channel = props.channel,disabled = props.disabled,mapping = props.mapping,onChange = props.onChange,initialValue = props.value,rest = (
|
|
14
|
-
var options = (mapping ||
|
|
15
|
-
var _useStateWithDynamicD = (
|
|
12
|
+
var NotePicker = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
13
|
+
var channel = props.channel,disabled = props.disabled,mapping = props.mapping,onChange = props.onChange,initialValue = props.value,rest = _objectWithoutProperties(props, _excluded);
|
|
14
|
+
var options = (mapping || emptyMapping()).map(formattedMapEntry).map(formattedListEntry);
|
|
15
|
+
var _useStateWithDynamicD = useStateWithDynamicDefault(initialValue),_useStateWithDynamicD2 = _slicedToArray(_useStateWithDynamicD, 2),value = _useStateWithDynamicD2[0],setValue = _useStateWithDynamicD2[1];
|
|
16
16
|
|
|
17
|
-
var handleChange =
|
|
18
|
-
var possibleNoteNumber =
|
|
17
|
+
var handleChange = useCallback(function (v) {
|
|
18
|
+
var possibleNoteNumber = assertRange(v, 128, 0);
|
|
19
19
|
|
|
20
20
|
if (possibleNoteNumber > 0) {
|
|
21
21
|
onChange(possibleNoteNumber);
|
|
@@ -24,30 +24,30 @@ var NotePicker = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
24
24
|
}, [onChange, setValue]);
|
|
25
25
|
|
|
26
26
|
return /*#__PURE__*/(
|
|
27
|
-
|
|
27
|
+
React.createElement(Select, _extends({},
|
|
28
28
|
rest, {
|
|
29
29
|
disabled: disabled,
|
|
30
30
|
isDisabled: disabled,
|
|
31
31
|
onChange: handleChange,
|
|
32
32
|
options: options,
|
|
33
33
|
ref: ref,
|
|
34
|
-
value: value })
|
|
35
|
-
|
|
34
|
+
value: value })
|
|
35
|
+
));
|
|
36
36
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
NotePicker.propTypes = {
|
|
40
|
-
mapping:
|
|
41
|
-
onChange:
|
|
42
|
-
disabled:
|
|
43
|
-
value:
|
|
44
|
-
channel:
|
|
40
|
+
mapping: PropTypes.arrayOf(mappingShape),
|
|
41
|
+
onChange: PropTypes.func.isRequired,
|
|
42
|
+
disabled: PropTypes.bool,
|
|
43
|
+
value: PropTypes.number,
|
|
44
|
+
channel: PropTypes.number.isRequired
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
NotePicker.defaultProps = {
|
|
48
48
|
disabled: false,
|
|
49
49
|
mapping: undefined,
|
|
50
50
|
value: undefined
|
|
51
|
-
};
|
|
51
|
+
};
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
export default NotePicker;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";var _excluded = ["height", "width"];import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { Piano as ReactPiano } from 'zds-react-piano';
|
|
4
|
+
import SoundfontProvider from '../other/SoundFontProvider';
|
|
5
|
+
import DefaultTooltip from '../other/DefaultTooltip';
|
|
6
6
|
|
|
7
7
|
var firstNote = 21;
|
|
8
8
|
var lastNote = 108;
|
|
@@ -12,19 +12,19 @@ var whiteNotes = numNotes * 0.7; // approx
|
|
|
12
12
|
|
|
13
13
|
var audioContext = new (window.AudioContext || window.webkitAudioContext)();
|
|
14
14
|
|
|
15
|
-
var PianoPicker = function PianoPicker(_ref) {var height = _ref.height,width = _ref.width,rest = (
|
|
15
|
+
var PianoPicker = function PianoPicker(_ref) {var height = _ref.height,width = _ref.width,rest = _objectWithoutProperties(_ref, _excluded);
|
|
16
16
|
var keyWidth = width / whiteNotes + 2;
|
|
17
17
|
var keyWidthToHeight = keyWidth / height;
|
|
18
18
|
|
|
19
19
|
return /*#__PURE__*/(
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
React.createElement("div", null, /*#__PURE__*/
|
|
21
|
+
React.createElement(ReactPiano, _extends({
|
|
22
22
|
keyWidthToHeight: keyWidthToHeight,
|
|
23
23
|
noteRange: { first: firstNote, last: lastNote },
|
|
24
24
|
width: width },
|
|
25
|
-
rest)
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
rest)
|
|
26
|
+
)
|
|
27
|
+
));
|
|
28
28
|
|
|
29
29
|
};
|
|
30
30
|
|
|
@@ -41,7 +41,7 @@ var WithProvider = function WithProvider(_ref2) {var
|
|
|
41
41
|
soundfont = _ref2.soundfont,
|
|
42
42
|
width = _ref2.width;return /*#__PURE__*/(
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
React.createElement(SoundfontProvider, {
|
|
45
45
|
|
|
46
46
|
audioContext: audioContext,
|
|
47
47
|
format: format,
|
|
@@ -51,7 +51,7 @@ var WithProvider = function WithProvider(_ref2) {var
|
|
|
51
51
|
soundfont: soundfont,
|
|
52
52
|
|
|
53
53
|
render: function render(_ref3) {var isLoading = _ref3.isLoading,playNote = _ref3.playNote,stopNote = _ref3.stopNote;return /*#__PURE__*/(
|
|
54
|
-
|
|
54
|
+
React.createElement(PianoPicker, {
|
|
55
55
|
disabled: isLoading,
|
|
56
56
|
|
|
57
57
|
height: height,
|
|
@@ -61,31 +61,31 @@ var WithProvider = function WithProvider(_ref2) {var
|
|
|
61
61
|
onKeyMouseLeave: onKeyMouseLeave,
|
|
62
62
|
playNote: playNote,
|
|
63
63
|
stopNote: stopNote,
|
|
64
|
-
width: width }
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
width: width }
|
|
67
65
|
|
|
66
|
+
));} }
|
|
68
67
|
|
|
68
|
+
));};
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
PianoPicker.propTypes = {
|
|
72
|
-
height:
|
|
73
|
-
width:
|
|
72
|
+
height: PropTypes.number.isRequired,
|
|
73
|
+
width: PropTypes.number.isRequired
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
WithProvider.propTypes = {
|
|
77
|
-
format:
|
|
78
|
-
height:
|
|
79
|
-
hostname:
|
|
80
|
-
instrumentName:
|
|
81
|
-
onChange:
|
|
82
|
-
onClick:
|
|
83
|
-
onDoubleClick:
|
|
84
|
-
onKeyMouseEnter:
|
|
85
|
-
onKeyMouseLeave:
|
|
86
|
-
soundfont:
|
|
87
|
-
Tooltip:
|
|
88
|
-
width:
|
|
77
|
+
format: PropTypes.oneOf(['mp3', 'ogg']),
|
|
78
|
+
height: PropTypes.number.isRequired,
|
|
79
|
+
hostname: PropTypes.string,
|
|
80
|
+
instrumentName: PropTypes.string,
|
|
81
|
+
onChange: PropTypes.func,
|
|
82
|
+
onClick: PropTypes.func,
|
|
83
|
+
onDoubleClick: PropTypes.func,
|
|
84
|
+
onKeyMouseEnter: PropTypes.func,
|
|
85
|
+
onKeyMouseLeave: PropTypes.func,
|
|
86
|
+
soundfont: PropTypes.oneOf(['MusyngKite', 'FluidR3_GM']),
|
|
87
|
+
Tooltip: PropTypes.elementType,
|
|
88
|
+
width: PropTypes.number.isRequired
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
WithProvider.defaultProps = {
|
|
@@ -98,7 +98,7 @@ WithProvider.defaultProps = {
|
|
|
98
98
|
onKeyMouseEnter: undefined,
|
|
99
99
|
onKeyMouseLeave: undefined,
|
|
100
100
|
soundfont: undefined, // 'MusyngKite',
|
|
101
|
-
Tooltip:
|
|
102
|
-
};
|
|
101
|
+
Tooltip: DefaultTooltip
|
|
102
|
+
};
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
export default WithProvider;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";var _excluded = ["labelOff", "labelOn"];import PropTypes from 'prop-types';
|
|
2
|
+
import React, { forwardRef } from 'react';
|
|
3
|
+
import Select from './Select';
|
|
4
4
|
|
|
5
|
-
var PolarityPicker = /*#__PURE__*/
|
|
5
|
+
var PolarityPicker = /*#__PURE__*/forwardRef(function (_ref, ref) {var labelOff = _ref.labelOff,labelOn = _ref.labelOn,rest = _objectWithoutProperties(_ref, _excluded);
|
|
6
6
|
var options = [
|
|
7
7
|
{ value: 0, label: labelOff },
|
|
8
8
|
{ value: 1, label: labelOn }];
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
return /*#__PURE__*/(
|
|
12
|
-
|
|
12
|
+
React.createElement(Select, _extends({},
|
|
13
13
|
rest, {
|
|
14
14
|
options: options,
|
|
15
|
-
ref: ref })
|
|
16
|
-
|
|
15
|
+
ref: ref })
|
|
16
|
+
));
|
|
17
17
|
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
PolarityPicker.propTypes = {
|
|
21
|
-
labelOff:
|
|
22
|
-
labelOn:
|
|
23
|
-
onChange:
|
|
24
|
-
value:
|
|
21
|
+
labelOff: PropTypes.string,
|
|
22
|
+
labelOn: PropTypes.string,
|
|
23
|
+
onChange: PropTypes.func.isRequired,
|
|
24
|
+
value: PropTypes.number.isRequired
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
PolarityPicker.defaultProps = {
|
|
28
28
|
labelOn: 'Normally On',
|
|
29
29
|
labelOff: 'Normally Off'
|
|
30
|
-
};
|
|
30
|
+
};
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
export default PolarityPicker;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import useComponentSize from '../hooks/useComponentSize';
|
|
4
|
+
import SVGText from '../other/SVGText';
|
|
5
|
+
import DefaultTooltip from '../other/DefaultTooltip';
|
|
6
6
|
|
|
7
7
|
var RESPONSE_CURVE_0 = 0;
|
|
8
8
|
var RESPONSE_CURVE_1 = 1;
|
|
@@ -13,7 +13,7 @@ var RESPONSE_CURVE_5 = 5;
|
|
|
13
13
|
var RESPONSE_CURVE_6 = 6;
|
|
14
14
|
var RESPONSE_CURVE_7 = 7;
|
|
15
15
|
|
|
16
|
-
var RESPONSE_CURVES = [
|
|
16
|
+
export var RESPONSE_CURVES = [
|
|
17
17
|
{
|
|
18
18
|
value: RESPONSE_CURVE_7,
|
|
19
19
|
label: 'Always maxed out.'
|
|
@@ -50,7 +50,7 @@ var RESPONSE_CURVES = [
|
|
|
50
50
|
|
|
51
51
|
// const width = 218
|
|
52
52
|
// const height = 150
|
|
53
|
-
|
|
53
|
+
var axisOffset = 20;
|
|
54
54
|
var buttonSize = 15;
|
|
55
55
|
|
|
56
56
|
var axisX1 = axisOffset;
|
|
@@ -59,9 +59,9 @@ var axisY1 = axisOffset;
|
|
|
59
59
|
var ResponseCurve = function ResponseCurve(props) {
|
|
60
60
|
var Tooltip = props.Tooltip,autosize = props.autosize,disabled = props.disabled,inverted = props.inverted,onChange = props.onChange,responseCurve = props.value;
|
|
61
61
|
|
|
62
|
-
var ref =
|
|
63
|
-
var svgRef =
|
|
64
|
-
var _useComponentSize = (
|
|
62
|
+
var ref = useRef(null);
|
|
63
|
+
var svgRef = useRef(null);
|
|
64
|
+
var _useComponentSize = useComponentSize(ref),ourHeight = _useComponentSize.height,ourWidth = _useComponentSize.width;
|
|
65
65
|
|
|
66
66
|
var width = autosize ? ourWidth || 218 : 218;
|
|
67
67
|
var height = autosize ? ourHeight || 150 : 150;
|
|
@@ -144,8 +144,8 @@ var ResponseCurve = function ResponseCurve(props) {
|
|
|
144
144
|
break;
|
|
145
145
|
|
|
146
146
|
default:
|
|
147
|
-
break;
|
|
148
|
-
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
149
|
return {
|
|
150
150
|
value: value,
|
|
151
151
|
label: label,
|
|
@@ -161,103 +161,103 @@ var ResponseCurve = function ResponseCurve(props) {
|
|
|
161
161
|
});
|
|
162
162
|
|
|
163
163
|
return /*#__PURE__*/(
|
|
164
|
-
|
|
164
|
+
React.createElement("div", {
|
|
165
165
|
className: "response-curve-picker",
|
|
166
166
|
ref: ref }, /*#__PURE__*/
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
React.createElement("svg", svgProps, /*#__PURE__*/
|
|
169
|
+
React.createElement("rect", {
|
|
170
170
|
className: "container",
|
|
171
171
|
height: height,
|
|
172
172
|
rx: 3,
|
|
173
173
|
ry: 3,
|
|
174
174
|
width: width,
|
|
175
175
|
x: 0,
|
|
176
|
-
y: 0 }
|
|
177
|
-
|
|
176
|
+
y: 0 }
|
|
177
|
+
), /*#__PURE__*/
|
|
178
178
|
|
|
179
|
-
|
|
179
|
+
React.createElement(SVGText, {
|
|
180
180
|
className: "axis",
|
|
181
181
|
textAnchor: "middle",
|
|
182
182
|
transform: "translate(".concat(axisX1 - 14, " ").concat(height / 2, ") rotate(90)"),
|
|
183
183
|
x: 0,
|
|
184
|
-
y: 0 },
|
|
185
|
-
|
|
186
|
-
|
|
184
|
+
y: 0 },
|
|
185
|
+
"Applied force"
|
|
187
186
|
|
|
188
|
-
|
|
187
|
+
), /*#__PURE__*/
|
|
188
|
+
React.createElement(SVGText, {
|
|
189
189
|
className: "axis",
|
|
190
190
|
textAnchor: "middle",
|
|
191
191
|
transform: "translate(".concat(width / 2, " ").concat(axisY2 + 13, ")"),
|
|
192
192
|
x: 0,
|
|
193
|
-
y: 0 },
|
|
193
|
+
y: 0 },
|
|
194
|
+
"Output (velocity)"
|
|
194
195
|
|
|
196
|
+
), /*#__PURE__*/
|
|
195
197
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
_react["default"].createElement("line", {
|
|
198
|
+
React.createElement("line", {
|
|
199
199
|
className: "axis",
|
|
200
200
|
x1: axisX1,
|
|
201
201
|
x2: axisX1,
|
|
202
202
|
y1: axisY1,
|
|
203
|
-
y2: axisY2 }
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
y2: axisY2 }
|
|
204
|
+
), /*#__PURE__*/
|
|
205
|
+
React.createElement("line", {
|
|
206
206
|
className: "axis",
|
|
207
207
|
x1: axisX1,
|
|
208
208
|
x2: axisX2,
|
|
209
209
|
y1: axisY2,
|
|
210
|
-
y2: axisY2 }
|
|
211
|
-
|
|
210
|
+
y2: axisY2 }
|
|
211
|
+
),
|
|
212
212
|
|
|
213
213
|
responseCurves.map(function (_ref2) {var value = _ref2.value,label = _ref2.label,x1 = _ref2.x1,y1 = _ref2.y1,x2 = _ref2.x2,y2 = _ref2.y2,c1 = _ref2.c1,c2 = _ref2.c2,labelX = _ref2.labelX,labelY = _ref2.labelY;return /*#__PURE__*/(
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
React.createElement("g", { key: value }, /*#__PURE__*/
|
|
215
|
+
React.createElement("path", {
|
|
216
216
|
className: value === responseCurve ? 'curve-selected' : 'curve',
|
|
217
|
-
d: "M".concat(x1, " ").concat(y1, " C ").concat(c1, " ").concat(c2, ", ").concat(c1, " ").concat(c2, ", ").concat(x2, " ").concat(y2) }
|
|
217
|
+
d: "M".concat(x1, " ").concat(y1, " C ").concat(c1, " ").concat(c2, ", ").concat(c1, " ").concat(c2, ", ").concat(x2, " ").concat(y2) }
|
|
218
|
+
), /*#__PURE__*/
|
|
218
219
|
|
|
219
|
-
|
|
220
|
-
_react["default"].createElement(Tooltip, {
|
|
220
|
+
React.createElement(Tooltip, {
|
|
221
221
|
placement: "left",
|
|
222
222
|
title: label }, /*#__PURE__*/
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
React.createElement("rect", {
|
|
225
225
|
className: value === responseCurve ? 'button-selected' : 'button',
|
|
226
226
|
height: buttonSize,
|
|
227
227
|
onClick: disabled ? null : function () {return onChange({ target: { value: value } });},
|
|
228
228
|
transform: "translate(".concat(labelX + 3, " ").concat(labelY - buttonSize / 1.05, ") rotate(45)"),
|
|
229
|
-
width: buttonSize }
|
|
230
|
-
|
|
231
|
-
|
|
229
|
+
width: buttonSize }
|
|
230
|
+
)
|
|
231
|
+
), /*#__PURE__*/
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
React.createElement("text", {
|
|
234
234
|
className: value === responseCurve ? 'button-selected' : 'button',
|
|
235
235
|
transform: "translate(".concat(labelX, " ").concat(labelY, ")") },
|
|
236
236
|
|
|
237
237
|
value, /*#__PURE__*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
238
|
+
React.createElement("title", null, label)
|
|
239
|
+
)
|
|
240
|
+
));}
|
|
241
|
+
)
|
|
242
|
+
)
|
|
243
|
+
));
|
|
244
244
|
|
|
245
245
|
};
|
|
246
246
|
|
|
247
247
|
ResponseCurve.propTypes = {
|
|
248
|
-
autosize:
|
|
249
|
-
disabled:
|
|
250
|
-
inverted:
|
|
251
|
-
onChange:
|
|
252
|
-
Tooltip:
|
|
253
|
-
value:
|
|
248
|
+
autosize: PropTypes.bool,
|
|
249
|
+
disabled: PropTypes.bool,
|
|
250
|
+
inverted: PropTypes.bool,
|
|
251
|
+
onChange: PropTypes.func.isRequired,
|
|
252
|
+
Tooltip: PropTypes.elementType,
|
|
253
|
+
value: PropTypes.number.isRequired
|
|
254
254
|
};
|
|
255
255
|
|
|
256
256
|
ResponseCurve.defaultProps = {
|
|
257
257
|
autosize: false,
|
|
258
258
|
disabled: false,
|
|
259
259
|
inverted: false,
|
|
260
|
-
Tooltip:
|
|
261
|
-
};
|
|
260
|
+
Tooltip: DefaultTooltip
|
|
261
|
+
};
|
|
262
262
|
|
|
263
|
-
|
|
263
|
+
export default ResponseCurve;
|