zds-pickers 3.8.3 → 3.8.7

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "CCPicker", { enumerable: true, get: function get() {return _CCPicker["default"];} });Object.defineProperty(exports, "ChannelMappingPicker", { enumerable: true, get: function get() {return _ChannelMappingPicker["default"];} });Object.defineProperty(exports, "ChannelPicker", { enumerable: true, get: function get() {return _ChannelPicker["default"];} });Object.defineProperty(exports, "Knob", { enumerable: true, get: function get() {return _Knob["default"];} });Object.defineProperty(exports, "KnobPicker", { enumerable: true, get: function get() {return _KnobPicker["default"];} });Object.defineProperty(exports, "LatchPicker", { enumerable: true, get: function get() {return _LatchPicker["default"];} });Object.defineProperty(exports, "MappingPicker", { enumerable: true, get: function get() {return _MappingPicker["default"];} });Object.defineProperty(exports, "NotePicker", { enumerable: true, get: function get() {return _NotePicker["default"];} });Object.defineProperty(exports, "PolarityPicker", { enumerable: true, get: function get() {return _PolarityPicker["default"];} });Object.defineProperty(exports, "ResponseCurvePicker", { enumerable: true, get: function get() {return _ResponseCurvePicker["default"];} });Object.defineProperty(exports, "Select", { enumerable: true, get: function get() {return _Select["default"];} });Object.defineProperty(exports, "StatusPicker", { enumerable: true, get: function get() {return _StatusPicker["default"];} });Object.defineProperty(exports, "SVGText", { enumerable: true, get: function get() {return _SVGText["default"];} });Object.defineProperty(exports, "ValuePicker", { enumerable: true, get: function get() {return _ValuePicker["default"];} });Object.defineProperty(exports, "statuses", { enumerable: true, get: function get() {return _statuses["default"];} });Object.defineProperty(exports, "getStatusLabel", { enumerable: true, get: function get() {return _statuses.getStatusLabel;} });Object.defineProperty(exports, "combineStatus", { enumerable: true, get: function get() {return _statuses.combineStatus;} });Object.defineProperty(exports, "extractStatus", { enumerable: true, get: function get() {return _statuses.extractStatus;} });Object.defineProperty(exports, "STATUS_NOTE_OFF", { enumerable: true, get: function get() {return _statuses.STATUS_NOTE_OFF;} });Object.defineProperty(exports, "STATUS_NOTE_ON", { enumerable: true, get: function get() {return _statuses.STATUS_NOTE_ON;} });Object.defineProperty(exports, "STATUS_AFTER_TOUCH", { enumerable: true, get: function get() {return _statuses.STATUS_AFTER_TOUCH;} });Object.defineProperty(exports, "STATUS_CONTROL_CHANGE", { enumerable: true, get: function get() {return _statuses.STATUS_CONTROL_CHANGE;} });Object.defineProperty(exports, "STATUS_PROGRAM_CHANGE", { enumerable: true, get: function get() {return _statuses.STATUS_PROGRAM_CHANGE;} });Object.defineProperty(exports, "STATUS_CHANNEL_PRESSURE", { enumerable: true, get: function get() {return _statuses.STATUS_CHANNEL_PRESSURE;} });Object.defineProperty(exports, "STATUS_PITCH_WHEEL", { enumerable: true, get: function get() {return _statuses.STATUS_PITCH_WHEEL;} });Object.defineProperty(exports, "MASK_CHANNEL", { enumerable: true, get: function get() {return _statuses.MASK_CHANNEL;} });Object.defineProperty(exports, "MASK_STATUS", { enumerable: true, get: function get() {return _statuses.MASK_STATUS;} });Object.defineProperty(exports, "ResponseCurve", { enumerable: true, get: function get() {return _ResponseCurve["default"];} });Object.defineProperty(exports, "RESPONSE_CURVES", { enumerable: true, get: function get() {return _ResponseCurve.RESPONSE_CURVES;} });Object.defineProperty(exports, "ccValues", { enumerable: true, get: function get() {return _ccValues["default"];} });Object.defineProperty(exports, "getStringWidth", { enumerable: true, get: function get() {return _getStringWidth["default"];} });Object.defineProperty(exports, "assertRange", { enumerable: true, get: function get() {return _utils.assertRange;} });Object.defineProperty(exports, "memoize", { enumerable: true, get: function get() {return _utils.memoize;} });
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });Object.defineProperty(exports, "CCPicker", { enumerable: true, get: function get() {return _CCPicker["default"];} });Object.defineProperty(exports, "ChannelMappingPicker", { enumerable: true, get: function get() {return _ChannelMappingPicker["default"];} });Object.defineProperty(exports, "ChannelPicker", { enumerable: true, get: function get() {return _ChannelPicker["default"];} });Object.defineProperty(exports, "Knob", { enumerable: true, get: function get() {return _Knob["default"];} });Object.defineProperty(exports, "KnobPicker", { enumerable: true, get: function get() {return _KnobPicker["default"];} });Object.defineProperty(exports, "LatchPicker", { enumerable: true, get: function get() {return _LatchPicker["default"];} });Object.defineProperty(exports, "MappingPicker", { enumerable: true, get: function get() {return _MappingPicker["default"];} });Object.defineProperty(exports, "NotePicker", { enumerable: true, get: function get() {return _NotePicker["default"];} });Object.defineProperty(exports, "PolarityPicker", { enumerable: true, get: function get() {return _PolarityPicker["default"];} });Object.defineProperty(exports, "ResponseCurvePicker", { enumerable: true, get: function get() {return _ResponseCurvePicker["default"];} });Object.defineProperty(exports, "Select", { enumerable: true, get: function get() {return _Select["default"];} });Object.defineProperty(exports, "StatusPicker", { enumerable: true, get: function get() {return _StatusPicker["default"];} });Object.defineProperty(exports, "SVGText", { enumerable: true, get: function get() {return _SVGText["default"];} });Object.defineProperty(exports, "ValuePicker", { enumerable: true, get: function get() {return _ValuePicker["default"];} });Object.defineProperty(exports, "statuses", { enumerable: true, get: function get() {return _statuses["default"];} });Object.defineProperty(exports, "getStatusLabel", { enumerable: true, get: function get() {return _statuses.getStatusLabel;} });Object.defineProperty(exports, "combineStatus", { enumerable: true, get: function get() {return _statuses.combineStatus;} });Object.defineProperty(exports, "extractStatus", { enumerable: true, get: function get() {return _statuses.extractStatus;} });Object.defineProperty(exports, "STATUS_NOTE_OFF", { enumerable: true, get: function get() {return _statuses.STATUS_NOTE_OFF;} });Object.defineProperty(exports, "STATUS_NOTE_ON", { enumerable: true, get: function get() {return _statuses.STATUS_NOTE_ON;} });Object.defineProperty(exports, "STATUS_AFTER_TOUCH", { enumerable: true, get: function get() {return _statuses.STATUS_AFTER_TOUCH;} });Object.defineProperty(exports, "STATUS_CONTROL_CHANGE", { enumerable: true, get: function get() {return _statuses.STATUS_CONTROL_CHANGE;} });Object.defineProperty(exports, "STATUS_PROGRAM_CHANGE", { enumerable: true, get: function get() {return _statuses.STATUS_PROGRAM_CHANGE;} });Object.defineProperty(exports, "STATUS_CHANNEL_PRESSURE", { enumerable: true, get: function get() {return _statuses.STATUS_CHANNEL_PRESSURE;} });Object.defineProperty(exports, "STATUS_PITCH_WHEEL", { enumerable: true, get: function get() {return _statuses.STATUS_PITCH_WHEEL;} });Object.defineProperty(exports, "MASK_CHANNEL", { enumerable: true, get: function get() {return _statuses.MASK_CHANNEL;} });Object.defineProperty(exports, "MASK_STATUS", { enumerable: true, get: function get() {return _statuses.MASK_STATUS;} });Object.defineProperty(exports, "ResponseCurve", { enumerable: true, get: function get() {return _ResponseCurve["default"];} });Object.defineProperty(exports, "RESPONSE_CURVES", { enumerable: true, get: function get() {return _ResponseCurve.RESPONSE_CURVES;} });Object.defineProperty(exports, "ccValues", { enumerable: true, get: function get() {return _ccValues["default"];} });Object.defineProperty(exports, "assertRange", { enumerable: true, get: function get() {return _utils.assertRange;} });Object.defineProperty(exports, "memoize", { enumerable: true, get: function get() {return _utils.memoize;} });
2
2
  var _CCPicker = _interopRequireDefault(require("./pickers/CCPicker"));
3
3
  var _ChannelMappingPicker = _interopRequireDefault(require("./pickers/ChannelMappingPicker"));
4
4
  var _ChannelPicker = _interopRequireDefault(require("./pickers/ChannelPicker"));
@@ -37,6 +37,5 @@ var _ResponseCurve = _interopRequireWildcard(require("./pickers/ResponseCurve"))
37
37
 
38
38
 
39
39
  var _ccValues = _interopRequireDefault(require("./midi/ccValues"));
40
- var _getStringWidth = _interopRequireDefault(require("./other/getStringWidth"));
41
40
 
42
41
  var _utils = require("./utils");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);}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;}
@@ -1,153 +1,88 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
2
-
3
-
4
- var _react = _interopRequireWildcard(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react = _interopRequireWildcard(require("react"));
5
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
6
- var _reduceCssCalc = _interopRequireDefault(require("reduce-css-calc"));
7
- var _getStringWidth = _interopRequireDefault(require("./getStringWidth"));var _excluded = ["angle", "capHeight", "children", "dx", "dy", "lineHeight", "scaleToFit", "style", "textAnchor", "verticalAnchor", "width"];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);}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;}
8
-
9
- var calculateWordWidths = function calculateWordWidths(_ref) {var children = _ref.children,style = _ref.style;
10
- try {
11
- var words = children ? children.toString().split(/\s+/) : [];
12
- var wordsWithComputedWidth = words.map(function (word) {return (
13
- { word: word, width: (0, _getStringWidth["default"])(word, style) });});
14
-
15
-
16
- var spaceWidth = (0, _getStringWidth["default"])("\xA0", style);
17
-
18
- return { wordsWithComputedWidth: wordsWithComputedWidth, spaceWidth: spaceWidth };
19
- } catch (e) {
20
- return null;
21
- }
22
- };
3
+ var _utils = require("./utils");var _excluded = ["children", "maxHeight", "maxWidth", "verticalAnchor"];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);}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;}
23
4
 
24
5
  var Text = function Text(props) {
25
- var _useState = (0, _react.useState)([]),_useState2 = (0, _slicedToArray2["default"])(_useState, 2),wordsByLines = _useState2[0],setWordsByLines = _useState2[1];
26
- var _useState3 = (0, _react.useState)(0),_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),spaceWidth = _useState4[0],setSpaceWidth = _useState4[1];
27
- var _useState5 = (0, _react.useState)([]),_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),wordsWithComputedWidth = _useState6[0],setWordsWithComputedWidth = _useState6[1];
28
-
29
- var
30
- angle =
31
-
32
-
33
-
34
-
35
-
6
+ var children = props.children,maxHeight = props.maxHeight,maxWidth = props.maxWidth,verticalAnchor = props.verticalAnchor,rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
7
+ var _useState = (0, _react.useState)(),_useState2 = (0, _slicedToArray2["default"])(_useState, 2),wordWidths = _useState2[0],setWordWidths = _useState2[1];
8
+ var _useState3 = (0, _react.useState)([]),_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),textLines = _useState4[0],setTextLines = _useState4[1];
9
+ var _useState5 = (0, _react.useState)(),_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),style = _useState6[0],setComputedStyle = _useState6[1];
10
+ var measureRef = (0, _react.useRef)();
11
+ var displayedLines = (0, _react.useMemo)(
12
+ function () {return textLines.filter(function (_ref) {var showLine = _ref.showLine;return showLine;});},
13
+ [textLines]);
14
+
15
+ var ref = (0, _react.useCallback)(function (node) {
16
+ setComputedStyle(node !== null ? window.getComputedStyle(node) : '');
17
+ }, []);
36
18
 
19
+ (0, _react.useEffect)(function () {
20
+ var el = document.getElementById(_utils.MEASUREMENT_ELEMENT_ID);
21
+ if (el === null) {
22
+ var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
23
+ svg.setAttribute('id', _utils.MEASUREMENT_ELEMENT_ID);
24
+ document.body.appendChild(svg);
25
+ svg.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'text'));
26
+ measureRef.current = svg;
27
+ } else {
28
+ measureRef.current = el;
29
+ }
30
+ return function () {return el && document.body.contains(el) ? document.body.removeChild(el) : null;};
31
+ }, []);
37
32
 
33
+ (0, _react.useEffect)(function () {
34
+ var wordWithWidths = (0, _utils.calculateWordWidths)(style, measureRef.current.firstElementChild, children);
35
+ setWordWidths(wordWithWidths);
36
+ }, [children, style]);
38
37
 
38
+ (0, _react.useEffect)(function () {
39
+ if (maxWidth && wordWidths) {
40
+ var lines = (0, _utils.calculateWordsByLines)(children, wordWidths, maxWidth, maxHeight);
41
+ setTextLines(lines);
42
+ }
43
+ }, [maxHeight, maxWidth, wordWidths, children]);
39
44
 
45
+ var startDy = (0, _react.useMemo)(function () {
46
+ if (wordWidths !== null && wordWidths !== void 0 && wordWidths.lineHeight) {
47
+ switch (verticalAnchor) {
48
+ case 'start':
49
+ return wordWidths.lineHeight;
40
50
 
51
+ case 'middle':
52
+ return -((displayedLines.length - 1) * wordWidths.lineHeight / 2);
41
53
 
42
- props.angle,capHeight = props.capHeight,children = props.children,dx = props.dx,dy = props.dy,lineHeight = props.lineHeight,scaleToFit = props.scaleToFit,style = props.style,textAnchor = props.textAnchor,verticalAnchor = props.verticalAnchor,width = props.width,textProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
43
-
44
- var x = textProps.x + dx;
45
- var y = textProps.y + dy;
46
-
47
- var calculateWordsByLines = (0, _react.useCallback)(
48
- function (
49
- www,
50
- sw,
51
- lineWidth) {return (
52
- www.reduce(function (result, _ref2) {var word = _ref2.word,w = _ref2.width;
53
- var currentLine = result[result.length - 1];
54
-
55
- if (currentLine && (lineWidth == null || scaleToFit ||
56
- currentLine.width + w + sw < lineWidth)) {
57
- // Word can be added to an existing line
58
- currentLine.words.push(word);
59
- currentLine.width += w + sw;
60
- } else {
61
- // Add first word to line or word is too long to scaleToFit on existing line
62
- var newLine = { words: [word], width: w };
63
- result.push(newLine);
64
- }
65
-
66
- return result;
67
- }, []));},
68
- [scaleToFit]);
69
-
54
+ default:
55
+ return -(displayedLines.length - 1) * wordWidths.lineHeight;}
70
56
 
71
- (0, _react.useEffect)(function () {
72
- var updateWordsWithoutCalculate = function updateWordsWithoutCalculate() {
73
- var words = children ? children.toString().split(/\s+/) : [];
74
- setWordsByLines([{ words: words }]);
75
- };
76
-
77
- var updateWordsByLines = function updateWordsByLines() {
78
- // Only perform calculations if using features that require them (multiline, scaleToFit)
79
- if (width || scaleToFit) {
80
- var wordWidths = calculateWordWidths({ children: children, style: style });
81
-
82
- if (wordWidths) {
83
- var sw = wordWidths.spaceWidth,www = wordWidths.wordsWithComputedWidth;
84
- setSpaceWidth(sw);
85
- setWordsWithComputedWidth(www);
86
- } else {
87
- updateWordsWithoutCalculate();
88
-
89
- return;
90
- }
91
-
92
- var newWordsByLines = calculateWordsByLines(
93
- wordsWithComputedWidth,
94
- spaceWidth,
95
- width);
96
-
97
-
98
- setWordsByLines(newWordsByLines);
99
- } else {
100
- updateWordsWithoutCalculate();
101
- }
102
- };
103
-
104
- updateWordsByLines(true);
105
- }, [calculateWordsByLines, children, scaleToFit, spaceWidth, style, width, wordsWithComputedWidth]);
106
-
107
- var startDy;
108
- switch (verticalAnchor) {
109
- case 'start':
110
- startDy = (0, _reduceCssCalc["default"])("calc(".concat(capHeight, ")"));
111
- break;
112
- case 'middle':
113
- startDy = (0, _reduceCssCalc["default"])("calc(".concat((wordsByLines.length - 1) / 2, " * -").concat(lineHeight, " + (").concat(capHeight, " / 2))"));
114
- break;
115
- default:
116
- startDy = (0, _reduceCssCalc["default"])("calc(".concat(wordsByLines.length - 1, " * -").concat(lineHeight, ")"));
117
- break;}
118
-
119
-
120
- var transforms = [];
121
- if (scaleToFit && wordsByLines.length) {
122
- var lineWidth = wordsByLines[0].width;
123
- var sx = width / lineWidth;
124
- var sy = sx;
125
- var originX = x - sx * x;
126
- var originY = y - sy * y;
127
- transforms.push("matrix(".concat(sx, ", 0, 0, ").concat(sy, ", ").concat(originX, ", ").concat(originY, ")"));
128
- }
129
- if (angle) {
130
- transforms.push("rotate(".concat(angle, ", ").concat(x, ", ").concat(y, ")"));
131
- }
132
- if (transforms.length) {
133
- textProps.transform = transforms.join(' ');
134
- }
57
+ } else {
58
+ return 0;
59
+ }
60
+ }, [displayedLines.length, verticalAnchor, wordWidths === null || wordWidths === void 0 ? void 0 : wordWidths.lineHeight]);
135
61
 
136
62
  return /*#__PURE__*/(
137
63
  _react["default"].createElement("text", (0, _extends2["default"])({
138
- textAnchor: textAnchor,
139
- x: x,
140
- y: y },
141
- textProps),
64
+ ref: ref },
65
+ rest),
142
66
 
67
+ textLines.length <= 1 ?
68
+ children : /*#__PURE__*/
143
69
 
144
- wordsByLines.map(function (line, index) {return /*#__PURE__*/(
70
+ _react["default"].createElement(_react["default"].Fragment, null,
71
+ displayedLines.map(function (line, idx) {return /*#__PURE__*/(
145
72
  _react["default"].createElement("tspan", {
146
- dy: index === 0 ? startDy : lineHeight,
147
- key: index,
148
- x: x },
73
+ dx: props.x + props.dx,
74
+ dy: idx === 0 ? startDy + props.dy : wordWidths.lineHeight,
75
+ key: idx,
76
+ x: 0 },
77
+
78
+ line.words.join(' ')));}),
79
+
80
+
81
+ displayedLines.length !== textLines.length && /*#__PURE__*/
82
+ _react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/
83
+ _react["default"].createElement("tspan", null, "..."), /*#__PURE__*/
84
+ _react["default"].createElement("title", null, children)))));
149
85
 
150
- line.words.join(' ')));})));
151
86
 
152
87
 
153
88
 
@@ -156,35 +91,22 @@ var Text = function Text(props) {
156
91
  };
157
92
 
158
93
  Text.propTypes = {
159
- angle: _propTypes["default"].number,
160
- capHeight: _propTypes["default"].string,
161
- children: _propTypes["default"].oneOfType([_propTypes["default"].node, _propTypes["default"].elementType]),
94
+ children: _propTypes["default"].node.isRequired,
162
95
  dx: _propTypes["default"].number,
163
96
  dy: _propTypes["default"].number,
164
- lineHeight: _propTypes["default"].string,
165
- scaleToFit: _propTypes["default"].bool,
166
- style: _propTypes["default"].object,
167
- textAnchor: _propTypes["default"].oneOf(['start', 'middle', 'end', 'inherit']),
97
+ maxHeight: _propTypes["default"].number,
98
+ maxWidth: _propTypes["default"].number,
168
99
  verticalAnchor: _propTypes["default"].oneOf(['start', 'middle', 'end']),
169
- width: _propTypes["default"].number,
170
- x: _propTypes["default"].number,
171
- y: _propTypes["default"].number };
100
+ x: _propTypes["default"].number };
172
101
 
173
102
 
174
103
  Text.defaultProps = {
175
- angle: undefined,
176
- capHeight: '0.71em', // Magic number from d3
177
- children: undefined,
178
104
  dx: 0,
179
105
  dy: 0,
180
- lineHeight: '1em',
181
- scaleToFit: false,
182
- style: undefined,
183
- textAnchor: 'start',
184
- verticalAnchor: 'end', // default SVG behavior
185
- width: undefined,
186
- x: 0,
187
- y: 0 };var _default =
106
+ maxHeight: undefined,
107
+ maxWidth: undefined,
108
+ verticalAnchor: 'start',
109
+ x: 0 };var _default =
188
110
 
189
111
 
190
112
  Text;exports["default"] = _default;
@@ -0,0 +1,48 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.MEASUREMENT_ELEMENT_ID = exports.calculateWordsByLines = exports.calculateWordWidths = void 0;var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) {symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});}keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {(0, _defineProperty2["default"])(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;} /* eslint-disable no-param-reassign */
2
+ var MEASUREMENT_ELEMENT_ID = '__react_svg_text_measurement_id';exports.MEASUREMENT_ELEMENT_ID = MEASUREMENT_ELEMENT_ID;
3
+
4
+ var calculateWordsByLines = function calculateWordsByLines(words, wordWidths, maxWidth, maxHeight) {
5
+ var lineHeight = wordWidths.lineHeight,spaceWidth = wordWidths.spaceWidth,wordsWithComputedWidth = wordWidths.wordsWithComputedWidth;
6
+
7
+ return words.toString().split(/\s+/).reduce(function (result, word) {
8
+ var wordWidth = wordsWithComputedWidth[word];
9
+ var currentLine = result[result.length - 1];
10
+ if (currentLine && currentLine.width + wordWidth + spaceWidth < maxWidth) {
11
+ // Word can be added to an existing line
12
+ currentLine.words.push(word);
13
+ currentLine.width += wordWidth + spaceWidth;
14
+ } else {
15
+ // Add first word to line or word is too long to scaleToFit on existing line
16
+ var newLine = {
17
+ words: [word],
18
+ width: wordWidth,
19
+ showLine: maxHeight ?
20
+ lineHeight * (result.length + 1) < maxHeight :
21
+ true };
22
+
23
+ result.push(newLine);
24
+ }
25
+ return result;
26
+ }, []);
27
+ };exports.calculateWordsByLines = calculateWordsByLines;
28
+
29
+ var calculateWordWidths = function calculateWordWidths(style, textNode, words) {
30
+ if (style && textNode) {
31
+ Array.from(style).forEach(function (key) {return textNode.style.setProperty(
32
+ key,
33
+ style.getPropertyValue(key),
34
+ style.getPropertyPriority(key));});
35
+
36
+ var wordArray = (0, _toConsumableArray2["default"])(new Set(words.toString().split(/\s+/)));
37
+ var wordsWithComputedWidth = wordArray.reduce(function (wordMap, word) {
38
+ textNode.textContent = word;
39
+ return _objectSpread(_objectSpread({}, wordMap), {}, (0, _defineProperty2["default"])({}, word, textNode.getBBox().width));
40
+ }, {});
41
+ textNode.textContent = "\xA0";
42
+ var spaceWidth = textNode.getComputedTextLength();
43
+ var lineHeight = textNode.getBBox().height;
44
+ textNode.setAttribute('style', '');
45
+ return { wordsWithComputedWidth: wordsWithComputedWidth, spaceWidth: spaceWidth, lineHeight: lineHeight };
46
+ }
47
+ return null;
48
+ };exports.calculateWordWidths = calculateWordWidths;
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react = _interopRequireWildcard(require("react"));
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _typeof = require("@babel/runtime/helpers/typeof");Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react = _interopRequireWildcard(require("react"));
2
2
  var _propTypes = _interopRequireDefault(require("prop-types"));
3
3
  var _reactSelect = _interopRequireWildcard(require("react-select"));var _excluded = ["children"],_excluded2 = ["disabled", "label", "onChange", "options", "shrinkLabel", "value"];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);}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;}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) {symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});}keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {(0, _defineProperty2["default"])(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}
4
4
 
@@ -40,9 +40,12 @@ var Select = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
40
40
  }, [onChange]);
41
41
 
42
42
  var selectedOption = (0, _react.useMemo)(
43
- function () {return options && options.find ?
44
- options === null || options === void 0 ? void 0 : options.find(function (option) {return value === option.value;}) :
45
- undefined;},
43
+ function () {
44
+ var flatOptionsList = options.reduce(function (acc, entry) {return entry.options ? [].concat((0, _toConsumableArray2["default"])(
45
+ acc), (0, _toConsumableArray2["default"])(entry.options)) : [].concat((0, _toConsumableArray2["default"])(
46
+ acc), [entry]);}, []);
47
+ return flatOptionsList.find(function (option) {return value === option.value;}) || undefined;
48
+ },
46
49
  [options, value]);
47
50
 
48
51
 
@@ -110,7 +113,7 @@ Select.propTypes = {
110
113
  Select.defaultProps = {
111
114
  disabled: false,
112
115
  label: undefined,
113
- options: undefined,
116
+ options: [],
114
117
  shrinkLabel: false,
115
118
  value: undefined };var _default =
116
119
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zds-pickers",
3
- "version": "3.8.3",
3
+ "version": "3.8.7",
4
4
  "homepage": "https://github.com/dkadrios/zds-pickers#readme",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -1,26 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports["default"] = void 0;var _utils = require("../utils");
2
-
3
- var MEASUREMENT_ELEMENT_ID = '__react_svg_text_measurement_id';
4
-
5
- var getStringWidth = function getStringWidth(str, style) {
6
- try {
7
- // Calculate length of each word to be used to determine number of words per line
8
- var textEl = document.getElementById(MEASUREMENT_ELEMENT_ID);
9
- if (!textEl) {
10
- var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
11
- textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text');
12
- textEl.setAttribute('id', MEASUREMENT_ELEMENT_ID);
13
- svg.appendChild(textEl);
14
- document.body.appendChild(svg);
15
- }
16
-
17
- Object.assign(textEl.style, style);
18
- textEl.textContent = str;
19
- return textEl.getComputedTextLength();
20
- } catch (e) {
21
- return null;
22
- }
23
- };
24
- var getStringWidthMemoized = (0, _utils.memoize)(getStringWidth);var _default =
25
-
26
- getStringWidthMemoized;exports["default"] = _default;