@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.es.js
CHANGED
|
@@ -4860,7 +4860,7 @@ function _templateObject11() {
|
|
|
4860
4860
|
}
|
|
4861
4861
|
|
|
4862
4862
|
function _templateObject10() {
|
|
4863
|
-
var data = taggedTemplateLiteral(["\n height:
|
|
4863
|
+
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"]);
|
|
4864
4864
|
|
|
4865
4865
|
_templateObject10 = function _templateObject10() {
|
|
4866
4866
|
return data;
|
|
@@ -5046,6 +5046,12 @@ var isOption = function isOption(item) {
|
|
|
5046
5046
|
return item.value !== undefined && item.value !== null;
|
|
5047
5047
|
};
|
|
5048
5048
|
|
|
5049
|
+
var scrollIntoView = function scrollIntoView(element) {
|
|
5050
|
+
return element && element.scrollIntoView({
|
|
5051
|
+
block: 'nearest'
|
|
5052
|
+
});
|
|
5053
|
+
};
|
|
5054
|
+
|
|
5049
5055
|
var flattenOptions = function flattenOptions(options) {
|
|
5050
5056
|
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
5051
5057
|
return (options || []).reduce(function (rows, item) {
|
|
@@ -5062,6 +5068,23 @@ var optionText = function optionText(node) {
|
|
|
5062
5068
|
if (typeof node === 'string' || typeof node === 'number') return node.toString();
|
|
5063
5069
|
if (Array.isArray(node)) return node.map(optionText).join('');
|
|
5064
5070
|
return node.props ? optionText(node.props.children) : '';
|
|
5071
|
+
};
|
|
5072
|
+
|
|
5073
|
+
var matchOptions = function matchOptions(items, text) {
|
|
5074
|
+
if (!text) return items;
|
|
5075
|
+
var query = text.toLowerCase();
|
|
5076
|
+
return items.map(function (item) {
|
|
5077
|
+
return {
|
|
5078
|
+
item: item,
|
|
5079
|
+
at: optionText(item.name).toLowerCase().indexOf(query)
|
|
5080
|
+
};
|
|
5081
|
+
}).filter(function (match) {
|
|
5082
|
+
return match.at >= 0;
|
|
5083
|
+
}).sort(function (a, b) {
|
|
5084
|
+
return (a.at > 0) - (b.at > 0);
|
|
5085
|
+
}).map(function (match) {
|
|
5086
|
+
return match.item;
|
|
5087
|
+
});
|
|
5065
5088
|
}; // rendered in document.body so overflow on any ancestor cannot clip it; popper flips and shifts it to stay in the viewport
|
|
5066
5089
|
// eslint-disable-next-line react/prop-types
|
|
5067
5090
|
|
|
@@ -5146,20 +5169,12 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5146
5169
|
}).map(function (row) {
|
|
5147
5170
|
return row.item;
|
|
5148
5171
|
});
|
|
5149
|
-
|
|
5150
|
-
var filterItems = function filterItems(text) {
|
|
5151
|
-
return text ? selectable.filter(function (item) {
|
|
5152
|
-
return optionText(item.name).toLowerCase().startsWith(text.toLowerCase());
|
|
5153
|
-
}) : selectable;
|
|
5154
|
-
};
|
|
5155
|
-
|
|
5156
|
-
var items = filterItems(search);
|
|
5172
|
+
var items = matchOptions(selectable, search);
|
|
5157
5173
|
var hasSelection = selectedOpt.value.length > 0;
|
|
5158
5174
|
var selectedText = optionText(selectedOpt.desc);
|
|
5159
5175
|
var selectedItem = selectable.find(function (item) {
|
|
5160
5176
|
return item.value.toString() === selectedOpt.value;
|
|
5161
5177
|
});
|
|
5162
|
-
var selectedColors = !search && selectedItem && selectedItem.color ? [selectedItem.color] : [];
|
|
5163
5178
|
|
|
5164
5179
|
var _useCombobox = useCombobox({
|
|
5165
5180
|
items: items,
|
|
@@ -5185,10 +5200,14 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5185
5200
|
feature: supercomplete({
|
|
5186
5201
|
onRequestItem: function onRequestItem(_ref6, res) {
|
|
5187
5202
|
var value = _ref6.value;
|
|
5188
|
-
|
|
5189
|
-
|
|
5203
|
+
|
|
5204
|
+
var _matchOptions = matchOptions(selectable, value),
|
|
5205
|
+
_matchOptions2 = slicedToArray(_matchOptions, 1),
|
|
5206
|
+
first = _matchOptions2[0];
|
|
5207
|
+
|
|
5208
|
+
if (first && optionText(first.name).toLowerCase().startsWith(value.toLowerCase())) res({
|
|
5190
5209
|
index: 0,
|
|
5191
|
-
item:
|
|
5210
|
+
item: first
|
|
5192
5211
|
});
|
|
5193
5212
|
},
|
|
5194
5213
|
select: true,
|
|
@@ -5206,17 +5225,23 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5206
5225
|
useEffect(function () {
|
|
5207
5226
|
if (startOpen) setOpen(true);
|
|
5208
5227
|
}, []);
|
|
5228
|
+
var inputProps = getInputProps();
|
|
5229
|
+
var shownText = inputProps.value.toLowerCase();
|
|
5230
|
+
var shownItem = shownText ? [items[focusIndex]].concat(toConsumableArray(selectable)).find(function (item) {
|
|
5231
|
+
return item && optionText(item.name).toLowerCase() === shownText;
|
|
5232
|
+
}) : selectedItem;
|
|
5233
|
+
var swatchColors = shownItem && shownItem.color ? [shownItem.color] : [];
|
|
5209
5234
|
var index = -1;
|
|
5210
5235
|
return /*#__PURE__*/React.createElement(SelectUi$1, _extends_1({
|
|
5211
5236
|
ref: setAnchor,
|
|
5212
5237
|
className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
|
|
5213
5238
|
}, props, {
|
|
5214
5239
|
title: selectedText
|
|
5215
|
-
}), renderSwatches(
|
|
5240
|
+
}), renderSwatches(swatchColors), /*#__PURE__*/React.createElement(SearchInput, _extends_1({
|
|
5216
5241
|
placeholder: hasSelection ? selectedText : placeholder,
|
|
5217
5242
|
hasSelection: hasSelection,
|
|
5218
|
-
hasSwatch:
|
|
5219
|
-
},
|
|
5243
|
+
hasSwatch: swatchColors.length > 0
|
|
5244
|
+
}, inputProps)), /*#__PURE__*/React.createElement(ToggleButton, getToggleProps(), open ? /*#__PURE__*/React.createElement(Icons.ArrowUp, {
|
|
5220
5245
|
size: "15px",
|
|
5221
5246
|
color: theme.colors.info.border
|
|
5222
5247
|
}) : /*#__PURE__*/React.createElement(Icons.ArrowDown, {
|
|
@@ -5254,7 +5279,8 @@ var AutocompleteSelect = function AutocompleteSelect(_ref5) {
|
|
|
5254
5279
|
className: item.divider ? 'alone' : '',
|
|
5255
5280
|
style: {
|
|
5256
5281
|
paddingLeft: 8 + depth * 16,
|
|
5257
|
-
|
|
5282
|
+
// overrides li:hover, so a resting mouse does not keep a second row lit
|
|
5283
|
+
background: focusIndex === index ? theme.colors.info.bg : 'transparent'
|
|
5258
5284
|
}
|
|
5259
5285
|
}, getItemProps({
|
|
5260
5286
|
item: item,
|
|
@@ -5300,22 +5326,30 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5300
5326
|
open = _useState10[0],
|
|
5301
5327
|
setOpen = _useState10[1];
|
|
5302
5328
|
|
|
5303
|
-
var _useState11 = useState(
|
|
5329
|
+
var _useState11 = useState(-1),
|
|
5304
5330
|
_useState12 = slicedToArray(_useState11, 2),
|
|
5305
|
-
|
|
5306
|
-
|
|
5331
|
+
focusIndex = _useState12[0],
|
|
5332
|
+
setFocusIndex = _useState12[1];
|
|
5333
|
+
|
|
5334
|
+
var _useState13 = useState(null),
|
|
5335
|
+
_useState14 = slicedToArray(_useState13, 2),
|
|
5336
|
+
anchor = _useState14[0],
|
|
5337
|
+
setAnchor = _useState14[1];
|
|
5307
5338
|
|
|
5308
5339
|
var nodeRef = useRef();
|
|
5309
5340
|
var listRef = useRef();
|
|
5310
5341
|
var setNode = useCallback(mergeRefs([nodeRef, setAnchor]), []);
|
|
5342
|
+
|
|
5343
|
+
var close = function close() {
|
|
5344
|
+
setOpen(false);
|
|
5345
|
+
setSearch('');
|
|
5346
|
+
setFocusIndex(-1);
|
|
5347
|
+
};
|
|
5348
|
+
|
|
5311
5349
|
useEffect(function () {
|
|
5312
5350
|
var closeOnOutsideClick = function closeOnOutsideClick(e) {
|
|
5313
5351
|
var inList = listRef.current && listRef.current.contains(e.target);
|
|
5314
|
-
|
|
5315
|
-
if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) {
|
|
5316
|
-
setOpen(false);
|
|
5317
|
-
setSearch('');
|
|
5318
|
-
}
|
|
5352
|
+
if (nodeRef.current && !nodeRef.current.contains(e.target) && !inList) close();
|
|
5319
5353
|
};
|
|
5320
5354
|
|
|
5321
5355
|
document.addEventListener('mousedown', closeOnOutsideClick);
|
|
@@ -5329,9 +5363,7 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5329
5363
|
}).map(function (row) {
|
|
5330
5364
|
return row.item;
|
|
5331
5365
|
});
|
|
5332
|
-
var items =
|
|
5333
|
-
return optionText(item.name).toLowerCase().startsWith(search.toLowerCase());
|
|
5334
|
-
}) : selectable;
|
|
5366
|
+
var items = matchOptions(selectable, search);
|
|
5335
5367
|
var selectedItems = selectable.filter(function (item) {
|
|
5336
5368
|
return selectedValues.includes(item.value.toString());
|
|
5337
5369
|
});
|
|
@@ -5343,6 +5375,7 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5343
5375
|
}).map(function (item) {
|
|
5344
5376
|
return item.color;
|
|
5345
5377
|
});
|
|
5378
|
+
var index = -1;
|
|
5346
5379
|
return /*#__PURE__*/React.createElement(SelectUi$1, _extends_1({
|
|
5347
5380
|
ref: setNode,
|
|
5348
5381
|
className: [open && 'open', error && 'error', valid && 'valid'].filter(Boolean).join(' ')
|
|
@@ -5360,11 +5393,29 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5360
5393
|
onChange: function onChange(e) {
|
|
5361
5394
|
setSearch(e.target.value);
|
|
5362
5395
|
setOpen(true);
|
|
5396
|
+
setFocusIndex(-1);
|
|
5363
5397
|
},
|
|
5364
5398
|
onKeyDown: function onKeyDown(e) {
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5399
|
+
switch (e.key) {
|
|
5400
|
+
case 'ArrowDown':
|
|
5401
|
+
case 'ArrowUp':
|
|
5402
|
+
{
|
|
5403
|
+
e.preventDefault();
|
|
5404
|
+
var last = items.length - 1;
|
|
5405
|
+
if (!open) setOpen(true);else if (e.key === 'ArrowDown') setFocusIndex(focusIndex >= last ? 0 : focusIndex + 1);else setFocusIndex(focusIndex <= 0 ? last : focusIndex - 1);
|
|
5406
|
+
break;
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
case 'Enter':
|
|
5410
|
+
if (open && items[focusIndex]) {
|
|
5411
|
+
e.preventDefault();
|
|
5412
|
+
onToggle(items[focusIndex]);
|
|
5413
|
+
}
|
|
5414
|
+
|
|
5415
|
+
break;
|
|
5416
|
+
|
|
5417
|
+
case 'Escape':
|
|
5418
|
+
close();
|
|
5368
5419
|
}
|
|
5369
5420
|
}
|
|
5370
5421
|
}), /*#__PURE__*/React.createElement(ToggleButton, {
|
|
@@ -5372,7 +5423,9 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5372
5423
|
tabIndex: -1,
|
|
5373
5424
|
onClick: function onClick(e) {
|
|
5374
5425
|
e.stopPropagation();
|
|
5375
|
-
if (
|
|
5426
|
+
if (props.disabled) return;
|
|
5427
|
+
setOpen(!open);
|
|
5428
|
+
setFocusIndex(-1);
|
|
5376
5429
|
}
|
|
5377
5430
|
}, open ? /*#__PURE__*/React.createElement(Icons.ArrowUp, {
|
|
5378
5431
|
size: "15px",
|
|
@@ -5407,11 +5460,18 @@ var MultiAutocompleteSelect = function MultiAutocompleteSelect(_ref8) {
|
|
|
5407
5460
|
}, item.name);
|
|
5408
5461
|
}
|
|
5409
5462
|
|
|
5463
|
+
var itemIndex = ++index;
|
|
5410
5464
|
return /*#__PURE__*/React.createElement("li", {
|
|
5411
5465
|
key: key,
|
|
5466
|
+
ref: itemIndex === focusIndex ? scrollIntoView : undefined,
|
|
5412
5467
|
style: {
|
|
5413
5468
|
paddingLeft: 8 + depth * 16,
|
|
5414
|
-
justifyContent: 'flex-start'
|
|
5469
|
+
justifyContent: 'flex-start',
|
|
5470
|
+
// overrides li:hover, so a resting mouse does not keep a second row lit
|
|
5471
|
+
background: itemIndex === focusIndex ? theme.colors.info.bg : 'transparent'
|
|
5472
|
+
},
|
|
5473
|
+
onPointerMove: function onPointerMove() {
|
|
5474
|
+
return setFocusIndex(itemIndex);
|
|
5415
5475
|
},
|
|
5416
5476
|
onMouseDown: function onMouseDown(e) {
|
|
5417
5477
|
return e.preventDefault();
|
|
@@ -5450,10 +5510,10 @@ var MultiDropdown = /*#__PURE__*/forwardRef(function (_ref10, ref) {
|
|
|
5450
5510
|
resetCallback = _ref10.resetCallback,
|
|
5451
5511
|
props = objectWithoutProperties(_ref10, ["name", "label", "help", "error", "valid", "options", "placeholder", "onChange", "defaultValue", "visibleOptionsQty", "openTo", "startOpen", "resetCallback"]);
|
|
5452
5512
|
|
|
5453
|
-
var
|
|
5454
|
-
|
|
5455
|
-
selectedValues =
|
|
5456
|
-
setSelectedValues =
|
|
5513
|
+
var _useState15 = useState([]),
|
|
5514
|
+
_useState16 = slicedToArray(_useState15, 2),
|
|
5515
|
+
selectedValues = _useState16[0],
|
|
5516
|
+
setSelectedValues = _useState16[1];
|
|
5457
5517
|
|
|
5458
5518
|
var valueRef = useRef();
|
|
5459
5519
|
var selectable = flattenOptions(options).filter(function (row) {
|
|
@@ -5561,10 +5621,10 @@ var SingleDropdown = /*#__PURE__*/forwardRef(function (_ref11, ref) {
|
|
|
5561
5621
|
desc: ''
|
|
5562
5622
|
};
|
|
5563
5623
|
|
|
5564
|
-
var
|
|
5565
|
-
|
|
5566
|
-
selectedOpt =
|
|
5567
|
-
setSelected =
|
|
5624
|
+
var _useState17 = useState(defaultSelected),
|
|
5625
|
+
_useState18 = slicedToArray(_useState17, 2),
|
|
5626
|
+
selectedOpt = _useState18[0],
|
|
5627
|
+
setSelected = _useState18[1];
|
|
5568
5628
|
|
|
5569
5629
|
var valueRef = useRef();
|
|
5570
5630
|
|
|
@@ -5756,15 +5816,15 @@ var CustomDropdown = /*#__PURE__*/forwardRef(function (_ref14, ref) {
|
|
|
5756
5816
|
openTo = _ref14.openTo,
|
|
5757
5817
|
props = objectWithoutProperties(_ref14, ["name", "label", "help", "error", "valid", "options", "placeholder", "defaultValue", "multiple", "type", "tooltip", "onChange", "visibleOptionsQty", "openTo"]);
|
|
5758
5818
|
|
|
5759
|
-
var
|
|
5760
|
-
_useState18 = slicedToArray(_useState17, 2),
|
|
5761
|
-
open = _useState18[0],
|
|
5762
|
-
setOpen = _useState18[1];
|
|
5763
|
-
|
|
5764
|
-
var _useState19 = useState([]),
|
|
5819
|
+
var _useState19 = useState(false),
|
|
5765
5820
|
_useState20 = slicedToArray(_useState19, 2),
|
|
5766
|
-
|
|
5767
|
-
|
|
5821
|
+
open = _useState20[0],
|
|
5822
|
+
setOpen = _useState20[1];
|
|
5823
|
+
|
|
5824
|
+
var _useState21 = useState([]),
|
|
5825
|
+
_useState22 = slicedToArray(_useState21, 2),
|
|
5826
|
+
selectedOpt = _useState22[0],
|
|
5827
|
+
setSelected = _useState22[1];
|
|
5768
5828
|
|
|
5769
5829
|
var nodeSelect = useRef();
|
|
5770
5830
|
var valueRef = useRef();
|