@dspworkplace/ui 2.1.4 → 2.1.5
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.es.js +109 -49
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +109 -49
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4868,7 +4868,7 @@ function _templateObject11() {
|
|
|
4868
4868
|
}
|
|
4869
4869
|
|
|
4870
4870
|
function _templateObject10() {
|
|
4871
|
-
var data = taggedTemplateLiteral(["\n height:
|
|
4871
|
+
var data = taggedTemplateLiteral(["\n height: 16px;\n width: 16px;\n box-sizing: border-box;\n border-radius: 100%;\n border: 2px solid white;\n background: ", ";\n z-index: ", ";\n margin-left: ", "\n margin-right: 8px;\n margin-top: 8px;\n margin-bottom: 8px;\n display: inline-block;\n"]);
|
|
4872
4872
|
|
|
4873
4873
|
_templateObject10 = function _templateObject10() {
|
|
4874
4874
|
return data;
|
|
@@ -5054,6 +5054,12 @@ var isOption = function isOption(item) {
|
|
|
5054
5054
|
return item.value !== undefined && item.value !== null;
|
|
5055
5055
|
};
|
|
5056
5056
|
|
|
5057
|
+
var scrollIntoView = function scrollIntoView(element) {
|
|
5058
|
+
return element && element.scrollIntoView({
|
|
5059
|
+
block: 'nearest'
|
|
5060
|
+
});
|
|
5061
|
+
};
|
|
5062
|
+
|
|
5057
5063
|
var flattenOptions = function flattenOptions(options) {
|
|
5058
5064
|
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
5059
5065
|
return (options || []).reduce(function (rows, item) {
|
|
@@ -5070,6 +5076,23 @@ var optionText = function optionText(node) {
|
|
|
5070
5076
|
if (typeof node === 'string' || typeof node === 'number') return node.toString();
|
|
5071
5077
|
if (Array.isArray(node)) return node.map(optionText).join('');
|
|
5072
5078
|
return node.props ? optionText(node.props.children) : '';
|
|
5079
|
+
};
|
|
5080
|
+
|
|
5081
|
+
var matchOptions = function matchOptions(items, text) {
|
|
5082
|
+
if (!text) return items;
|
|
5083
|
+
var query = text.toLowerCase();
|
|
5084
|
+
return items.map(function (item) {
|
|
5085
|
+
return {
|
|
5086
|
+
item: item,
|
|
5087
|
+
at: optionText(item.name).toLowerCase().indexOf(query)
|
|
5088
|
+
};
|
|
5089
|
+
}).filter(function (match) {
|
|
5090
|
+
return match.at >= 0;
|
|
5091
|
+
}).sort(function (a, b) {
|
|
5092
|
+
return (a.at > 0) - (b.at > 0);
|
|
5093
|
+
}).map(function (match) {
|
|
5094
|
+
return match.item;
|
|
5095
|
+
});
|
|
5073
5096
|
}; // rendered in document.body so overflow on any ancestor cannot clip it; popper flips and shifts it to stay in the viewport
|
|
5074
5097
|
// eslint-disable-next-line react/prop-types
|
|
5075
5098
|
|
|
@@ -5154,20 +5177,12 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5154
5177
|
}).map(function (row) {
|
|
5155
5178
|
return row.item;
|
|
5156
5179
|
});
|
|
5157
|
-
|
|
5158
|
-
var filterItems = function filterItems(text) {
|
|
5159
|
-
return text ? selectable.filter(function (item) {
|
|
5160
|
-
return optionText(item.name).toLowerCase().startsWith(text.toLowerCase());
|
|
5161
|
-
}) : selectable;
|
|
5162
|
-
};
|
|
5163
|
-
|
|
5164
|
-
var items = filterItems(search);
|
|
5180
|
+
var items = matchOptions(selectable, search);
|
|
5165
5181
|
var hasSelection = selectedOpt.value.length > 0;
|
|
5166
5182
|
var selectedText = optionText(selectedOpt.desc);
|
|
5167
5183
|
var selectedItem = selectable.find(function (item) {
|
|
5168
5184
|
return item.value.toString() === selectedOpt.value;
|
|
5169
5185
|
});
|
|
5170
|
-
var selectedColors = !search && selectedItem && selectedItem.color ? [selectedItem.color] : [];
|
|
5171
5186
|
|
|
5172
5187
|
var _useCombobox = reactAutocomplete.useCombobox({
|
|
5173
5188
|
items: items,
|
|
@@ -5193,10 +5208,14 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5193
5208
|
feature: reactAutocomplete.supercomplete({
|
|
5194
5209
|
onRequestItem: function onRequestItem(_ref6, res) {
|
|
5195
5210
|
var value = _ref6.value;
|
|
5196
|
-
|
|
5197
|
-
|
|
5211
|
+
|
|
5212
|
+
var _matchOptions = matchOptions(selectable, value),
|
|
5213
|
+
_matchOptions2 = slicedToArray(_matchOptions, 1),
|
|
5214
|
+
first = _matchOptions2[0];
|
|
5215
|
+
|
|
5216
|
+
if (first && optionText(first.name).toLowerCase().startsWith(value.toLowerCase())) res({
|
|
5198
5217
|
index: 0,
|
|
5199
|
-
item:
|
|
5218
|
+
item: first
|
|
5200
5219
|
});
|
|
5201
5220
|
},
|
|
5202
5221
|
select: true,
|
|
@@ -5214,17 +5233,23 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5214
5233
|
React.useEffect(function () {
|
|
5215
5234
|
if (startOpen) setOpen(true);
|
|
5216
5235
|
}, []);
|
|
5236
|
+
var inputProps = getInputProps();
|
|
5237
|
+
var shownText = inputProps.value.toLowerCase();
|
|
5238
|
+
var shownItem = shownText ? [items[focusIndex]].concat(toConsumableArray(selectable)).find(function (item) {
|
|
5239
|
+
return item && optionText(item.name).toLowerCase() === shownText;
|
|
5240
|
+
}) : selectedItem;
|
|
5241
|
+
var swatchColors = shownItem && shownItem.color ? [shownItem.color] : [];
|
|
5217
5242
|
var index = -1;
|
|
5218
5243
|
return /*#__PURE__*/React__default.createElement(SelectUi$1, _extends_1({
|
|
5219
5244
|
ref: setAnchor,
|
|
5220
5245
|
className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
|
|
5221
5246
|
}, props, {
|
|
5222
5247
|
title: selectedText
|
|
5223
|
-
}), renderSwatches(
|
|
5248
|
+
}), renderSwatches(swatchColors), /*#__PURE__*/React__default.createElement(SearchInput, _extends_1({
|
|
5224
5249
|
placeholder: hasSelection ? selectedText : placeholder,
|
|
5225
5250
|
hasSelection: hasSelection,
|
|
5226
|
-
hasSwatch:
|
|
5227
|
-
},
|
|
5251
|
+
hasSwatch: swatchColors.length > 0
|
|
5252
|
+
}, inputProps)), /*#__PURE__*/React__default.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React__default.createElement(Icons.ArrowUp, {
|
|
5228
5253
|
size: "15px",
|
|
5229
5254
|
color: theme.colors.info.border
|
|
5230
5255
|
}) : /*#__PURE__*/React__default.createElement(Icons.ArrowDown, {
|
|
@@ -5262,7 +5287,8 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5262
5287
|
className: item.divider ? 'alone' : '',
|
|
5263
5288
|
style: {
|
|
5264
5289
|
paddingLeft: 8 + depth * 16,
|
|
5265
|
-
|
|
5290
|
+
// overrides li:hover, so a resting mouse does not keep a second row lit
|
|
5291
|
+
background: focusIndex === index ? theme.colors.info.bg : 'transparent'
|
|
5266
5292
|
}
|
|
5267
5293
|
}, getItemProps({
|
|
5268
5294
|
item: item,
|
|
@@ -5308,22 +5334,30 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5308
5334
|
open = _useState10[0],
|
|
5309
5335
|
setOpen = _useState10[1];
|
|
5310
5336
|
|
|
5311
|
-
var _useState11 = React.useState(
|
|
5337
|
+
var _useState11 = React.useState(-1),
|
|
5312
5338
|
_useState12 = slicedToArray(_useState11, 2),
|
|
5313
|
-
|
|
5314
|
-
|
|
5339
|
+
focusIndex = _useState12[0],
|
|
5340
|
+
setFocusIndex = _useState12[1];
|
|
5341
|
+
|
|
5342
|
+
var _useState13 = React.useState(null),
|
|
5343
|
+
_useState14 = slicedToArray(_useState13, 2),
|
|
5344
|
+
anchor = _useState14[0],
|
|
5345
|
+
setAnchor = _useState14[1];
|
|
5315
5346
|
|
|
5316
5347
|
var nodeRef = React.useRef();
|
|
5317
5348
|
var listRef = React.useRef();
|
|
5318
5349
|
var setNode = React.useCallback(mergeRefs([nodeRef, setAnchor]), []);
|
|
5350
|
+
|
|
5351
|
+
var close = function close() {
|
|
5352
|
+
setOpen(false);
|
|
5353
|
+
setSearch('');
|
|
5354
|
+
setFocusIndex(-1);
|
|
5355
|
+
};
|
|
5356
|
+
|
|
5319
5357
|
React.useEffect(function () {
|
|
5320
5358
|
var closeOnOutsideClick = function closeOnOutsideClick(e) {
|
|
5321
5359
|
var inList = listRef.current && listRef.current.contains(e.target);
|
|
5322
|
-
|
|
5323
|
-
if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) {
|
|
5324
|
-
setOpen(false);
|
|
5325
|
-
setSearch('');
|
|
5326
|
-
}
|
|
5360
|
+
if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) close();
|
|
5327
5361
|
};
|
|
5328
5362
|
|
|
5329
5363
|
document.addEventListener('mousedown', closeOnOutsideClick);
|
|
@@ -5337,9 +5371,7 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5337
5371
|
}).map(function (row) {
|
|
5338
5372
|
return row.item;
|
|
5339
5373
|
});
|
|
5340
|
-
var items =
|
|
5341
|
-
return optionText(item.name).toLowerCase().startsWith(search.toLowerCase());
|
|
5342
|
-
}) : selectable;
|
|
5374
|
+
var items = matchOptions(selectable, search);
|
|
5343
5375
|
var selectedItems = selectable.filter(function (item) {
|
|
5344
5376
|
return selectedValues.includes(item.value.toString());
|
|
5345
5377
|
});
|
|
@@ -5351,6 +5383,7 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5351
5383
|
}).map(function (item) {
|
|
5352
5384
|
return item.color;
|
|
5353
5385
|
});
|
|
5386
|
+
var index = -1;
|
|
5354
5387
|
return /*#__PURE__*/React__default.createElement(SelectUi$1, _extends_1({
|
|
5355
5388
|
ref: setNode,
|
|
5356
5389
|
className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
|
|
@@ -5368,11 +5401,29 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5368
5401
|
onChange: function onChange(e) {
|
|
5369
5402
|
setSearch(e.target.value);
|
|
5370
5403
|
setOpen(true);
|
|
5404
|
+
setFocusIndex(-1);
|
|
5371
5405
|
},
|
|
5372
5406
|
onKeyDown: function onKeyDown(e) {
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5407
|
+
switch (e.key) {
|
|
5408
|
+
case 'ArrowDown':
|
|
5409
|
+
case 'ArrowUp':
|
|
5410
|
+
{
|
|
5411
|
+
e.preventDefault();
|
|
5412
|
+
var last = items.length - 1;
|
|
5413
|
+
if (!open) setOpen(true);else if (e.key === 'ArrowDown') setFocusIndex(focusIndex >= last ? 0 : focusIndex + 1);else setFocusIndex(focusIndex <= 0 ? last : focusIndex - 1);
|
|
5414
|
+
break;
|
|
5415
|
+
}
|
|
5416
|
+
|
|
5417
|
+
case 'Enter':
|
|
5418
|
+
if (open && items[focusIndex]) {
|
|
5419
|
+
e.preventDefault();
|
|
5420
|
+
onToggle(items[focusIndex]);
|
|
5421
|
+
}
|
|
5422
|
+
|
|
5423
|
+
break;
|
|
5424
|
+
|
|
5425
|
+
case 'Escape':
|
|
5426
|
+
close();
|
|
5376
5427
|
}
|
|
5377
5428
|
}
|
|
5378
5429
|
}), /*#__PURE__*/React__default.createElement(ToggleButton, {
|
|
@@ -5380,7 +5431,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5380
5431
|
tabIndex: -1,
|
|
5381
5432
|
onClick: function onClick(e) {
|
|
5382
5433
|
e.stopPropagation();
|
|
5383
|
-
if (
|
|
5434
|
+
if (props.disabled) return;
|
|
5435
|
+
setOpen(!open);
|
|
5436
|
+
setFocusIndex(-1);
|
|
5384
5437
|
}
|
|
5385
5438
|
}, open ? /*#__PURE__*/React__default.createElement(Icons.ArrowUp, {
|
|
5386
5439
|
size: "15px",
|
|
@@ -5415,11 +5468,18 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5415
5468
|
}, item.name);
|
|
5416
5469
|
}
|
|
5417
5470
|
|
|
5471
|
+
var itemIndex = ++index;
|
|
5418
5472
|
return /*#__PURE__*/React__default.createElement("li", {
|
|
5419
5473
|
key: key,
|
|
5474
|
+
ref: itemIndex === focusIndex ? scrollIntoView : undefined,
|
|
5420
5475
|
style: {
|
|
5421
5476
|
paddingLeft: 8 + depth * 16,
|
|
5422
|
-
justifyContent: 'flex-start'
|
|
5477
|
+
justifyContent: 'flex-start',
|
|
5478
|
+
// overrides li:hover, so a resting mouse does not keep a second row lit
|
|
5479
|
+
background: itemIndex === focusIndex ? theme.colors.info.bg : 'transparent'
|
|
5480
|
+
},
|
|
5481
|
+
onPointerMove: function onPointerMove() {
|
|
5482
|
+
return setFocusIndex(itemIndex);
|
|
5423
5483
|
},
|
|
5424
5484
|
onMouseDown: function onMouseDown(e) {
|
|
5425
5485
|
return e.preventDefault();
|
|
@@ -5458,10 +5518,10 @@ var MultiDropdown = /*#__PURE__*/React.forwardRef(function (_ref10, ref) {
|
|
|
5458
5518
|
resetCallback = _ref10.resetCallback,
|
|
5459
5519
|
props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
|
|
5460
5520
|
|
|
5461
|
-
var
|
|
5462
|
-
|
|
5463
|
-
selectedValues =
|
|
5464
|
-
setSelectedValues =
|
|
5521
|
+
var _useState15 = React.useState([]),
|
|
5522
|
+
_useState16 = slicedToArray(_useState15, 2),
|
|
5523
|
+
selectedValues = _useState16[0],
|
|
5524
|
+
setSelectedValues = _useState16[1];
|
|
5465
5525
|
|
|
5466
5526
|
var valueRef = React.useRef();
|
|
5467
5527
|
var selectable = flattenOptions(options).filter(function (row) {
|
|
@@ -5569,10 +5629,10 @@ var SingleDropdown = /*#__PURE__*/React.forwardRef(function (_ref11, ref) {
|
|
|
5569
5629
|
desc: ''
|
|
5570
5630
|
};
|
|
5571
5631
|
|
|
5572
|
-
var
|
|
5573
|
-
|
|
5574
|
-
selectedOpt =
|
|
5575
|
-
setSelected =
|
|
5632
|
+
var _useState17 = React.useState(defaultSelected),
|
|
5633
|
+
_useState18 = slicedToArray(_useState17, 2),
|
|
5634
|
+
selectedOpt = _useState18[0],
|
|
5635
|
+
setSelected = _useState18[1];
|
|
5576
5636
|
|
|
5577
5637
|
var valueRef = React.useRef();
|
|
5578
5638
|
|
|
@@ -5764,15 +5824,15 @@ var CustomDropdown = /*#__PURE__*/React.forwardRef(function (_ref14, ref) {
|
|
|
5764
5824
|
openTo = _ref14.openTo,
|
|
5765
5825
|
props = objectWithoutProperties(_ref14, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
|
|
5766
5826
|
|
|
5767
|
-
var
|
|
5768
|
-
_useState18 = slicedToArray(_useState17, 2),
|
|
5769
|
-
open = _useState18[0],
|
|
5770
|
-
setOpen = _useState18[1];
|
|
5771
|
-
|
|
5772
|
-
var _useState19 = React.useState([]),
|
|
5827
|
+
var _useState19 = React.useState(false),
|
|
5773
5828
|
_useState20 = slicedToArray(_useState19, 2),
|
|
5774
|
-
|
|
5775
|
-
|
|
5829
|
+
open = _useState20[0],
|
|
5830
|
+
setOpen = _useState20[1];
|
|
5831
|
+
|
|
5832
|
+
var _useState21 = React.useState([]),
|
|
5833
|
+
_useState22 = slicedToArray(_useState21, 2),
|
|
5834
|
+
selectedOpt = _useState22[0],
|
|
5835
|
+
setSelected = _useState22[1];
|
|
5776
5836
|
|
|
5777
5837
|
var nodeSelect = React.useRef();
|
|
5778
5838
|
var valueRef = React.useRef();
|