@equinor/eds-core-react 0.27.0 → 0.28.0-dev12052022
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/eds-core-react.cjs.js +100 -41
- package/dist/esm/components/Autocomplete/Autocomplete.js +53 -17
- package/dist/esm/components/Autocomplete/Autocomplete.tokens.js +20 -4
- package/dist/esm/components/Autocomplete/Option.js +18 -12
- package/dist/types/components/Slider/Slider.d.ts +4 -4
- package/package.json +6 -5
|
@@ -18,6 +18,7 @@ var reactDomInteractions = require('@floating-ui/react-dom-interactions');
|
|
|
18
18
|
var ReactDom = require('react-dom');
|
|
19
19
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
20
20
|
var downshift = require('downshift');
|
|
21
|
+
var reactVirtual = require('@tanstack/react-virtual');
|
|
21
22
|
|
|
22
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
24
|
|
|
@@ -1653,7 +1654,7 @@ var Text$2 = styled__default["default"].span.withConfig({
|
|
|
1653
1654
|
displayName: "Label__Text",
|
|
1654
1655
|
componentId: "sc-1gi2bcn-1"
|
|
1655
1656
|
})(["margin:0;"]);
|
|
1656
|
-
var Label$
|
|
1657
|
+
var Label$3 = /*#__PURE__*/react.forwardRef(function Label(props, ref) {
|
|
1657
1658
|
var _props$label = props.label,
|
|
1658
1659
|
label = _props$label === void 0 ? '' : _props$label,
|
|
1659
1660
|
meta = props.meta,
|
|
@@ -1908,7 +1909,7 @@ var HelperText = styled__default["default"](TextfieldHelperText).withConfig({
|
|
|
1908
1909
|
displayName: "InputWrapper__HelperText",
|
|
1909
1910
|
componentId: "sc-v6o9z1-1"
|
|
1910
1911
|
})(["margin-top:8px;margin-left:8px;"]);
|
|
1911
|
-
var Label$
|
|
1912
|
+
var Label$2 = styled__default["default"](Label$3).withConfig({
|
|
1912
1913
|
displayName: "InputWrapper__Label",
|
|
1913
1914
|
componentId: "sc-v6o9z1-2"
|
|
1914
1915
|
})(["margin-left:8px;margin-right:8px;"]);
|
|
@@ -1940,7 +1941,7 @@ var InputWrapper$2 = /*#__PURE__*/react.forwardRef(function InputWrapper(_ref, r
|
|
|
1940
1941
|
theme: token,
|
|
1941
1942
|
children: /*#__PURE__*/jsxRuntime.jsxs(Container$4, _objectSpread__default["default"](_objectSpread__default["default"]({}, other), {}, {
|
|
1942
1943
|
ref: ref,
|
|
1943
|
-
children: [hasLabel && /*#__PURE__*/jsxRuntime.jsx(Label$
|
|
1944
|
+
children: [hasLabel && /*#__PURE__*/jsxRuntime.jsx(Label$2, _objectSpread__default["default"]({}, _objectSpread__default["default"]({
|
|
1944
1945
|
label: label
|
|
1945
1946
|
}, labelProps))), children, hasHelperText && /*#__PURE__*/jsxRuntime.jsx(HelperText, _objectSpread__default["default"]({
|
|
1946
1947
|
color: helperTextColor
|
|
@@ -7244,7 +7245,7 @@ var NativeSelect = /*#__PURE__*/react.forwardRef(function NativeSelect(_ref2, re
|
|
|
7244
7245
|
return /*#__PURE__*/jsxRuntime.jsx(styled.ThemeProvider, {
|
|
7245
7246
|
theme: token,
|
|
7246
7247
|
children: /*#__PURE__*/jsxRuntime.jsxs(Container$2, _objectSpread__default["default"](_objectSpread__default["default"]({}, containerProps), {}, {
|
|
7247
|
-
children: [showLabel && /*#__PURE__*/jsxRuntime.jsx(Label$
|
|
7248
|
+
children: [showLabel && /*#__PURE__*/jsxRuntime.jsx(Label$3, _objectSpread__default["default"]({}, labelProps)), /*#__PURE__*/jsxRuntime.jsx(StyledSelect, _objectSpread__default["default"](_objectSpread__default["default"]({}, selectProps), {}, {
|
|
7248
7249
|
children: children
|
|
7249
7250
|
}))]
|
|
7250
7251
|
}))
|
|
@@ -7946,7 +7947,7 @@ var StyledLabel = styled__default["default"].label.withConfig({
|
|
|
7946
7947
|
var isDisabled = _ref.isDisabled;
|
|
7947
7948
|
return isDisabled ? 'not-allowed' : 'pointer';
|
|
7948
7949
|
});
|
|
7949
|
-
var Label = styled__default["default"].span.withConfig({
|
|
7950
|
+
var Label$1 = styled__default["default"].span.withConfig({
|
|
7950
7951
|
displayName: "Switch__Label",
|
|
7951
7952
|
componentId: "sc-sdaahx-1"
|
|
7952
7953
|
})(function (_ref2) {
|
|
@@ -7982,7 +7983,7 @@ var Switch = /*#__PURE__*/react.forwardRef(function Switch(_ref3, ref) {
|
|
|
7982
7983
|
disabled: disabled
|
|
7983
7984
|
}, rest), {}, {
|
|
7984
7985
|
ref: ref
|
|
7985
|
-
})), label && /*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
7986
|
+
})), label && /*#__PURE__*/jsxRuntime.jsx(Label$1, {
|
|
7986
7987
|
children: label
|
|
7987
7988
|
})]
|
|
7988
7989
|
}) : size === 'small' ? /*#__PURE__*/jsxRuntime.jsx(SwitchSmall, _objectSpread__default["default"](_objectSpread__default["default"]({
|
|
@@ -8019,9 +8020,9 @@ var selectTokens = {
|
|
|
8019
8020
|
boxShadow: boxShadow,
|
|
8020
8021
|
minHeight: straight.minHeight,
|
|
8021
8022
|
spacings: {
|
|
8022
|
-
top:
|
|
8023
|
+
top: '0',
|
|
8023
8024
|
right: spacingLarge,
|
|
8024
|
-
bottom:
|
|
8025
|
+
bottom: '0',
|
|
8025
8026
|
left: spacingLarge
|
|
8026
8027
|
},
|
|
8027
8028
|
typography: _objectSpread__default["default"](_objectSpread__default["default"]({}, typography.navigation.menu_title), {}, {
|
|
@@ -8053,6 +8054,14 @@ var selectTokens = {
|
|
|
8053
8054
|
right: spacingSmall,
|
|
8054
8055
|
top: '6px'
|
|
8055
8056
|
}
|
|
8057
|
+
},
|
|
8058
|
+
label: {
|
|
8059
|
+
spacings: {
|
|
8060
|
+
left: '0',
|
|
8061
|
+
right: '0',
|
|
8062
|
+
top: spacingMedium,
|
|
8063
|
+
bottom: spacingMedium
|
|
8064
|
+
}
|
|
8056
8065
|
}
|
|
8057
8066
|
},
|
|
8058
8067
|
modes: {
|
|
@@ -8060,8 +8069,8 @@ var selectTokens = {
|
|
|
8060
8069
|
spacings: {
|
|
8061
8070
|
left: spacingSmall,
|
|
8062
8071
|
right: spacingSmall,
|
|
8063
|
-
top:
|
|
8064
|
-
bottom:
|
|
8072
|
+
top: '0',
|
|
8073
|
+
bottom: '0'
|
|
8065
8074
|
},
|
|
8066
8075
|
entities: {
|
|
8067
8076
|
button: {
|
|
@@ -8070,6 +8079,14 @@ var selectTokens = {
|
|
|
8070
8079
|
right: spacingSmall,
|
|
8071
8080
|
top: '0'
|
|
8072
8081
|
}
|
|
8082
|
+
},
|
|
8083
|
+
label: {
|
|
8084
|
+
spacings: {
|
|
8085
|
+
left: '0',
|
|
8086
|
+
right: '0',
|
|
8087
|
+
top: spacingSmall,
|
|
8088
|
+
bottom: spacingSmall
|
|
8089
|
+
}
|
|
8073
8090
|
}
|
|
8074
8091
|
}
|
|
8075
8092
|
}
|
|
@@ -8093,7 +8110,7 @@ var multiSelect = mergeDeepRight$1(selectTokens, {
|
|
|
8093
8110
|
});
|
|
8094
8111
|
|
|
8095
8112
|
var _excluded$6 = ["value", "multiple", "isSelected", "isDisabled", "onClick", "aria-selected"];
|
|
8096
|
-
var StyledListItem = styled__default["default"]
|
|
8113
|
+
var StyledListItem = styled__default["default"].li.withConfig({
|
|
8097
8114
|
displayName: "Option__StyledListItem",
|
|
8098
8115
|
componentId: "sc-1ly11zu-0"
|
|
8099
8116
|
})(function (_ref) {
|
|
@@ -8102,16 +8119,23 @@ var StyledListItem = styled__default["default"](List$1.Item).withConfig({
|
|
|
8102
8119
|
active = _ref.active,
|
|
8103
8120
|
isdisabled = _ref.isdisabled;
|
|
8104
8121
|
var backgroundColor = highlighted === 'true' ? theme.states.hover.background : active === 'true' ? theme.states.active.background : theme.background;
|
|
8105
|
-
return styled.css(["display:flex;align-items:center;margin:0;list-style:none;background-color:", ";user-select:none;cursor:", ";", " ", " ", ""], backgroundColor, highlighted === 'true' ? 'pointer' : 'default', edsUtils.typographyTemplate(theme.typography), edsUtils.spacingsTemplate(theme.spacings), isdisabled === 'true' ? styled.css(["color:", ";"], theme.states.disabled.typography.color) : '');
|
|
8106
|
-
});
|
|
8107
|
-
var
|
|
8108
|
-
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8113
|
-
|
|
8114
|
-
|
|
8122
|
+
return styled.css(["display:flex;grid-area:1 / -1;align-items:center;align-self:start;margin:0;list-style:none;background-color:", ";user-select:none;word-break:break-word;cursor:", ";", " ", " ", ""], backgroundColor, highlighted === 'true' ? 'pointer' : 'default', edsUtils.typographyTemplate(theme.typography), edsUtils.spacingsTemplate(theme.spacings), isdisabled === 'true' ? styled.css(["color:", ";"], theme.states.disabled.typography.color) : '');
|
|
8123
|
+
});
|
|
8124
|
+
var Label = styled__default["default"].span.withConfig({
|
|
8125
|
+
displayName: "Option__Label",
|
|
8126
|
+
componentId: "sc-1ly11zu-1"
|
|
8127
|
+
})(function (_ref2) {
|
|
8128
|
+
var theme = _ref2.theme;
|
|
8129
|
+
return styled.css(["", ""], edsUtils.spacingsTemplate(theme.entities.label.spacings));
|
|
8130
|
+
});
|
|
8131
|
+
var AutocompleteOption = /*#__PURE__*/react.forwardRef(function AutocompleteOption(_ref3, ref) {
|
|
8132
|
+
var value = _ref3.value,
|
|
8133
|
+
multiple = _ref3.multiple,
|
|
8134
|
+
isSelected = _ref3.isSelected,
|
|
8135
|
+
isDisabled = _ref3.isDisabled,
|
|
8136
|
+
_onClick = _ref3.onClick,
|
|
8137
|
+
ariaSelected = _ref3['aria-selected'],
|
|
8138
|
+
other = _objectWithoutProperties__default["default"](_ref3, _excluded$6);
|
|
8115
8139
|
return /*#__PURE__*/jsxRuntime.jsxs(StyledListItem, _objectSpread__default["default"](_objectSpread__default["default"]({
|
|
8116
8140
|
ref: ref,
|
|
8117
8141
|
isdisabled: isDisabled ? 'true' : 'false',
|
|
@@ -8129,7 +8153,7 @@ var AutocompleteOption = /*#__PURE__*/react.forwardRef(function AutocompleteOpti
|
|
|
8129
8153
|
onChange: function onChange() {
|
|
8130
8154
|
return null;
|
|
8131
8155
|
}
|
|
8132
|
-
}), /*#__PURE__*/jsxRuntime.jsx(
|
|
8156
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
8133
8157
|
children: value
|
|
8134
8158
|
})]
|
|
8135
8159
|
}));
|
|
@@ -8145,7 +8169,7 @@ var StyledList = styled__default["default"](List$1).withConfig({
|
|
|
8145
8169
|
componentId: "sc-yvif0e-1"
|
|
8146
8170
|
})(function (_ref) {
|
|
8147
8171
|
var theme = _ref.theme;
|
|
8148
|
-
return styled.css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;max-height:300px;padding:0;"], theme.background, theme.boxShadow, edsUtils.bordersTemplate(theme.border));
|
|
8172
|
+
return styled.css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;overflow-x:hidden;max-height:300px;padding:0;display:grid;"], theme.background, theme.boxShadow, edsUtils.bordersTemplate(theme.border));
|
|
8149
8173
|
});
|
|
8150
8174
|
var StyledButton = styled__default["default"](Button).withConfig({
|
|
8151
8175
|
displayName: "Autocomplete__StyledButton",
|
|
@@ -8323,6 +8347,17 @@ function AutocompleteInner(props, ref) {
|
|
|
8323
8347
|
throw new Error('Unable to find label, make sure your are using options as documented');
|
|
8324
8348
|
}
|
|
8325
8349
|
}, [optionLabel]);
|
|
8350
|
+
var scrollContainer = react.useRef(null);
|
|
8351
|
+
var rowVirtualizer = reactVirtual.useVirtualizer({
|
|
8352
|
+
count: availableItems.length,
|
|
8353
|
+
getScrollElement: function getScrollElement() {
|
|
8354
|
+
return scrollContainer.current;
|
|
8355
|
+
},
|
|
8356
|
+
estimateSize: react.useCallback(function () {
|
|
8357
|
+
return 48;
|
|
8358
|
+
}, []),
|
|
8359
|
+
overscan: 10
|
|
8360
|
+
});
|
|
8326
8361
|
var comboBoxProps = {
|
|
8327
8362
|
items: availableItems,
|
|
8328
8363
|
initialSelectedItem: initialSelectedOptions[0],
|
|
@@ -8336,21 +8371,28 @@ function AutocompleteInner(props, ref) {
|
|
|
8336
8371
|
return getLabel(item).toLowerCase().includes(inputValue.toLowerCase());
|
|
8337
8372
|
}));
|
|
8338
8373
|
},
|
|
8339
|
-
|
|
8340
|
-
var
|
|
8374
|
+
onHighlightedIndexChange: function onHighlightedIndexChange(_ref7) {
|
|
8375
|
+
var highlightedIndex = _ref7.highlightedIndex,
|
|
8376
|
+
type = _ref7.type;
|
|
8377
|
+
if (type !== downshift.useCombobox.stateChangeTypes.ItemMouseMove && type !== downshift.useCombobox.stateChangeTypes.MenuMouseLeave && highlightedIndex >= 0) {
|
|
8378
|
+
rowVirtualizer.scrollToIndex(highlightedIndex);
|
|
8379
|
+
}
|
|
8380
|
+
},
|
|
8381
|
+
onIsOpenChange: function onIsOpenChange(_ref8) {
|
|
8382
|
+
var selectedItem = _ref8.selectedItem;
|
|
8341
8383
|
if (!multiple && selectedItem !== null) {
|
|
8342
8384
|
setAvailableItems(options);
|
|
8343
8385
|
}
|
|
8344
8386
|
},
|
|
8345
|
-
onStateChange: function onStateChange(
|
|
8346
|
-
var type =
|
|
8347
|
-
selectedItem =
|
|
8387
|
+
onStateChange: function onStateChange(_ref9) {
|
|
8388
|
+
var type = _ref9.type,
|
|
8389
|
+
selectedItem = _ref9.selectedItem;
|
|
8348
8390
|
switch (type) {
|
|
8349
8391
|
case downshift.useCombobox.stateChangeTypes.InputChange:
|
|
8392
|
+
case downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
8350
8393
|
break;
|
|
8351
8394
|
case downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
8352
8395
|
case downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
8353
|
-
case downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
8354
8396
|
if (selectedItem && !optionDisabled(selectedItem)) {
|
|
8355
8397
|
if (multiple) {
|
|
8356
8398
|
selectedItems.includes(selectedItem) ? removeSelectedItem(selectedItem) : addSelectedItem(selectedItem);
|
|
@@ -8480,10 +8522,10 @@ function AutocompleteInner(props, ref) {
|
|
|
8480
8522
|
middleware: [reactDomInteractions.offset(4), reactDomInteractions.flip(), reactDomInteractions.shift({
|
|
8481
8523
|
padding: 8
|
|
8482
8524
|
}), reactDomInteractions.size({
|
|
8483
|
-
apply: function apply(
|
|
8484
|
-
var rects =
|
|
8485
|
-
availableHeight =
|
|
8486
|
-
elements =
|
|
8525
|
+
apply: function apply(_ref10) {
|
|
8526
|
+
var rects = _ref10.rects,
|
|
8527
|
+
availableHeight = _ref10.availableHeight,
|
|
8528
|
+
elements = _ref10.elements;
|
|
8487
8529
|
var anchorWidth = "".concat(rects.reference.width, "px");
|
|
8488
8530
|
Object.assign(elements.floating.style, {
|
|
8489
8531
|
width: "".concat(autoWidth ? anchorWidth : 'auto'),
|
|
@@ -8528,27 +8570,44 @@ function AutocompleteInner(props, ref) {
|
|
|
8528
8570
|
zIndex: 1500
|
|
8529
8571
|
}
|
|
8530
8572
|
})), {}, {
|
|
8531
|
-
children: /*#__PURE__*/jsxRuntime.
|
|
8532
|
-
'aria-multiselectable': multiple ? 'true' : null
|
|
8573
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(StyledList, _objectSpread__default["default"](_objectSpread__default["default"]({}, getMenuProps({
|
|
8574
|
+
'aria-multiselectable': multiple ? 'true' : null,
|
|
8575
|
+
ref: scrollContainer
|
|
8533
8576
|
}, {
|
|
8534
8577
|
suppressRefError: true
|
|
8535
8578
|
})), {}, {
|
|
8536
|
-
children:
|
|
8579
|
+
children: [isOpen && /*#__PURE__*/jsxRuntime.jsx("li", {
|
|
8580
|
+
role: "presentation",
|
|
8581
|
+
style: {
|
|
8582
|
+
height: "".concat(rowVirtualizer.getTotalSize(), "px"),
|
|
8583
|
+
margin: '0',
|
|
8584
|
+
gridArea: '1 / -1'
|
|
8585
|
+
}
|
|
8586
|
+
}, "total-size"), !isOpen ? null : rowVirtualizer.getVirtualItems().map(function (virtualItem) {
|
|
8587
|
+
var index = virtualItem.index;
|
|
8588
|
+
var item = availableItems[index];
|
|
8537
8589
|
var label = getLabel(item);
|
|
8538
8590
|
var isDisabled = optionDisabled(item);
|
|
8539
8591
|
var isSelected = selectedItemsLabels.includes(label);
|
|
8540
8592
|
return /*#__PURE__*/jsxRuntime.jsx(AutocompleteOption, _objectSpread__default["default"]({
|
|
8593
|
+
"data-index": virtualItem.index,
|
|
8594
|
+
"aria-setsize": availableItems.length,
|
|
8595
|
+
"aria-posinset": index + 1,
|
|
8541
8596
|
value: label,
|
|
8542
8597
|
multiple: multiple,
|
|
8543
8598
|
highlighted: highlightedIndex === index && !isDisabled ? 'true' : 'false',
|
|
8544
8599
|
isSelected: isSelected,
|
|
8545
8600
|
isDisabled: isDisabled
|
|
8546
8601
|
}, getItemProps({
|
|
8602
|
+
ref: rowVirtualizer.measureElement,
|
|
8547
8603
|
item: item,
|
|
8548
8604
|
index: index,
|
|
8549
|
-
disabled: disabled
|
|
8550
|
-
|
|
8551
|
-
|
|
8605
|
+
disabled: disabled,
|
|
8606
|
+
style: {
|
|
8607
|
+
transform: "translateY(".concat(virtualItem.start, "px)")
|
|
8608
|
+
}
|
|
8609
|
+
})), virtualItem.key);
|
|
8610
|
+
})]
|
|
8552
8611
|
}))
|
|
8553
8612
|
}));
|
|
8554
8613
|
return /*#__PURE__*/jsxRuntime.jsx(styled.ThemeProvider, {
|
|
@@ -8557,7 +8616,7 @@ function AutocompleteInner(props, ref) {
|
|
|
8557
8616
|
className: className,
|
|
8558
8617
|
style: style,
|
|
8559
8618
|
ref: ref,
|
|
8560
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Label$
|
|
8619
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label$3, _objectSpread__default["default"](_objectSpread__default["default"]({}, getLabelProps()), {}, {
|
|
8561
8620
|
label: label,
|
|
8562
8621
|
meta: meta,
|
|
8563
8622
|
disabled: disabled
|
|
@@ -9088,7 +9147,7 @@ exports.EdsProvider = EdsProvider;
|
|
|
9088
9147
|
exports.Icon = Icon$1;
|
|
9089
9148
|
exports.Input = Input$4;
|
|
9090
9149
|
exports.InputWrapper = InputWrapper$2;
|
|
9091
|
-
exports.Label = Label$
|
|
9150
|
+
exports.Label = Label$3;
|
|
9092
9151
|
exports.LinearProgress = LinearProgress;
|
|
9093
9152
|
exports.List = List$1;
|
|
9094
9153
|
exports.Menu = Menu;
|
|
@@ -4,6 +4,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
|
|
|
4
4
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
5
5
|
import { forwardRef, useRef, useState, useEffect, useMemo, useCallback } from 'react';
|
|
6
6
|
import { useMultipleSelection, useCombobox } from 'downshift';
|
|
7
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
7
8
|
import styled, { css, ThemeProvider } from 'styled-components';
|
|
8
9
|
import { Button } from '../Button/index.js';
|
|
9
10
|
import { List } from '../List/index.js';
|
|
@@ -28,7 +29,7 @@ var StyledList = styled(List).withConfig({
|
|
|
28
29
|
componentId: "sc-yvif0e-1"
|
|
29
30
|
})(function (_ref) {
|
|
30
31
|
var theme = _ref.theme;
|
|
31
|
-
return css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;max-height:300px;padding:0;"], theme.background, theme.boxShadow, bordersTemplate(theme.border));
|
|
32
|
+
return css(["background-color:", ";box-shadow:", ";", " overflow-y:auto;overflow-x:hidden;max-height:300px;padding:0;display:grid;"], theme.background, theme.boxShadow, bordersTemplate(theme.border));
|
|
32
33
|
});
|
|
33
34
|
var StyledButton = styled(Button).withConfig({
|
|
34
35
|
displayName: "Autocomplete__StyledButton",
|
|
@@ -206,6 +207,17 @@ function AutocompleteInner(props, ref) {
|
|
|
206
207
|
throw new Error('Unable to find label, make sure your are using options as documented');
|
|
207
208
|
}
|
|
208
209
|
}, [optionLabel]);
|
|
210
|
+
var scrollContainer = useRef(null);
|
|
211
|
+
var rowVirtualizer = useVirtualizer({
|
|
212
|
+
count: availableItems.length,
|
|
213
|
+
getScrollElement: function getScrollElement() {
|
|
214
|
+
return scrollContainer.current;
|
|
215
|
+
},
|
|
216
|
+
estimateSize: useCallback(function () {
|
|
217
|
+
return 48;
|
|
218
|
+
}, []),
|
|
219
|
+
overscan: 10
|
|
220
|
+
});
|
|
209
221
|
var comboBoxProps = {
|
|
210
222
|
items: availableItems,
|
|
211
223
|
initialSelectedItem: initialSelectedOptions[0],
|
|
@@ -219,21 +231,28 @@ function AutocompleteInner(props, ref) {
|
|
|
219
231
|
return getLabel(item).toLowerCase().includes(inputValue.toLowerCase());
|
|
220
232
|
}));
|
|
221
233
|
},
|
|
222
|
-
|
|
223
|
-
var
|
|
234
|
+
onHighlightedIndexChange: function onHighlightedIndexChange(_ref7) {
|
|
235
|
+
var highlightedIndex = _ref7.highlightedIndex,
|
|
236
|
+
type = _ref7.type;
|
|
237
|
+
if (type !== useCombobox.stateChangeTypes.ItemMouseMove && type !== useCombobox.stateChangeTypes.MenuMouseLeave && highlightedIndex >= 0) {
|
|
238
|
+
rowVirtualizer.scrollToIndex(highlightedIndex);
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
onIsOpenChange: function onIsOpenChange(_ref8) {
|
|
242
|
+
var selectedItem = _ref8.selectedItem;
|
|
224
243
|
if (!multiple && selectedItem !== null) {
|
|
225
244
|
setAvailableItems(options);
|
|
226
245
|
}
|
|
227
246
|
},
|
|
228
|
-
onStateChange: function onStateChange(
|
|
229
|
-
var type =
|
|
230
|
-
selectedItem =
|
|
247
|
+
onStateChange: function onStateChange(_ref9) {
|
|
248
|
+
var type = _ref9.type,
|
|
249
|
+
selectedItem = _ref9.selectedItem;
|
|
231
250
|
switch (type) {
|
|
232
251
|
case useCombobox.stateChangeTypes.InputChange:
|
|
252
|
+
case useCombobox.stateChangeTypes.InputBlur:
|
|
233
253
|
break;
|
|
234
254
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
235
255
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
236
|
-
case useCombobox.stateChangeTypes.InputBlur:
|
|
237
256
|
if (selectedItem && !optionDisabled(selectedItem)) {
|
|
238
257
|
if (multiple) {
|
|
239
258
|
selectedItems.includes(selectedItem) ? removeSelectedItem(selectedItem) : addSelectedItem(selectedItem);
|
|
@@ -363,10 +382,10 @@ function AutocompleteInner(props, ref) {
|
|
|
363
382
|
middleware: [offset(4), flip(), shift({
|
|
364
383
|
padding: 8
|
|
365
384
|
}), size({
|
|
366
|
-
apply: function apply(
|
|
367
|
-
var rects =
|
|
368
|
-
availableHeight =
|
|
369
|
-
elements =
|
|
385
|
+
apply: function apply(_ref10) {
|
|
386
|
+
var rects = _ref10.rects,
|
|
387
|
+
availableHeight = _ref10.availableHeight,
|
|
388
|
+
elements = _ref10.elements;
|
|
370
389
|
var anchorWidth = "".concat(rects.reference.width, "px");
|
|
371
390
|
Object.assign(elements.floating.style, {
|
|
372
391
|
width: "".concat(autoWidth ? anchorWidth : 'auto'),
|
|
@@ -411,27 +430,44 @@ function AutocompleteInner(props, ref) {
|
|
|
411
430
|
zIndex: 1500
|
|
412
431
|
}
|
|
413
432
|
})), {}, {
|
|
414
|
-
children: /*#__PURE__*/
|
|
415
|
-
'aria-multiselectable': multiple ? 'true' : null
|
|
433
|
+
children: /*#__PURE__*/jsxs(StyledList, _objectSpread(_objectSpread({}, getMenuProps({
|
|
434
|
+
'aria-multiselectable': multiple ? 'true' : null,
|
|
435
|
+
ref: scrollContainer
|
|
416
436
|
}, {
|
|
417
437
|
suppressRefError: true
|
|
418
438
|
})), {}, {
|
|
419
|
-
children:
|
|
439
|
+
children: [isOpen && /*#__PURE__*/jsx("li", {
|
|
440
|
+
role: "presentation",
|
|
441
|
+
style: {
|
|
442
|
+
height: "".concat(rowVirtualizer.getTotalSize(), "px"),
|
|
443
|
+
margin: '0',
|
|
444
|
+
gridArea: '1 / -1'
|
|
445
|
+
}
|
|
446
|
+
}, "total-size"), !isOpen ? null : rowVirtualizer.getVirtualItems().map(function (virtualItem) {
|
|
447
|
+
var index = virtualItem.index;
|
|
448
|
+
var item = availableItems[index];
|
|
420
449
|
var label = getLabel(item);
|
|
421
450
|
var isDisabled = optionDisabled(item);
|
|
422
451
|
var isSelected = selectedItemsLabels.includes(label);
|
|
423
452
|
return /*#__PURE__*/jsx(AutocompleteOption, _objectSpread({
|
|
453
|
+
"data-index": virtualItem.index,
|
|
454
|
+
"aria-setsize": availableItems.length,
|
|
455
|
+
"aria-posinset": index + 1,
|
|
424
456
|
value: label,
|
|
425
457
|
multiple: multiple,
|
|
426
458
|
highlighted: highlightedIndex === index && !isDisabled ? 'true' : 'false',
|
|
427
459
|
isSelected: isSelected,
|
|
428
460
|
isDisabled: isDisabled
|
|
429
461
|
}, getItemProps({
|
|
462
|
+
ref: rowVirtualizer.measureElement,
|
|
430
463
|
item: item,
|
|
431
464
|
index: index,
|
|
432
|
-
disabled: disabled
|
|
433
|
-
|
|
434
|
-
|
|
465
|
+
disabled: disabled,
|
|
466
|
+
style: {
|
|
467
|
+
transform: "translateY(".concat(virtualItem.start, "px)")
|
|
468
|
+
}
|
|
469
|
+
})), virtualItem.key);
|
|
470
|
+
})]
|
|
435
471
|
}))
|
|
436
472
|
}));
|
|
437
473
|
return /*#__PURE__*/jsx(ThemeProvider, {
|
|
@@ -19,9 +19,9 @@ var selectTokens = {
|
|
|
19
19
|
boxShadow: boxShadow,
|
|
20
20
|
minHeight: straight.minHeight,
|
|
21
21
|
spacings: {
|
|
22
|
-
top:
|
|
22
|
+
top: '0',
|
|
23
23
|
right: spacingLarge,
|
|
24
|
-
bottom:
|
|
24
|
+
bottom: '0',
|
|
25
25
|
left: spacingLarge
|
|
26
26
|
},
|
|
27
27
|
typography: _objectSpread(_objectSpread({}, typography.navigation.menu_title), {}, {
|
|
@@ -53,6 +53,14 @@ var selectTokens = {
|
|
|
53
53
|
right: spacingSmall,
|
|
54
54
|
top: '6px'
|
|
55
55
|
}
|
|
56
|
+
},
|
|
57
|
+
label: {
|
|
58
|
+
spacings: {
|
|
59
|
+
left: '0',
|
|
60
|
+
right: '0',
|
|
61
|
+
top: spacingMedium,
|
|
62
|
+
bottom: spacingMedium
|
|
63
|
+
}
|
|
56
64
|
}
|
|
57
65
|
},
|
|
58
66
|
modes: {
|
|
@@ -60,8 +68,8 @@ var selectTokens = {
|
|
|
60
68
|
spacings: {
|
|
61
69
|
left: spacingSmall,
|
|
62
70
|
right: spacingSmall,
|
|
63
|
-
top:
|
|
64
|
-
bottom:
|
|
71
|
+
top: '0',
|
|
72
|
+
bottom: '0'
|
|
65
73
|
},
|
|
66
74
|
entities: {
|
|
67
75
|
button: {
|
|
@@ -70,6 +78,14 @@ var selectTokens = {
|
|
|
70
78
|
right: spacingSmall,
|
|
71
79
|
top: '0'
|
|
72
80
|
}
|
|
81
|
+
},
|
|
82
|
+
label: {
|
|
83
|
+
spacings: {
|
|
84
|
+
left: '0',
|
|
85
|
+
right: '0',
|
|
86
|
+
top: spacingSmall,
|
|
87
|
+
bottom: spacingSmall
|
|
88
|
+
}
|
|
73
89
|
}
|
|
74
90
|
}
|
|
75
91
|
}
|
|
@@ -2,13 +2,12 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
|
2
2
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
|
-
import { List } from '../List/index.js';
|
|
6
5
|
import { typographyTemplate, spacingsTemplate } from '@equinor/eds-utils';
|
|
7
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
7
|
import { Checkbox } from '../Checkbox/Checkbox.js';
|
|
9
8
|
|
|
10
9
|
var _excluded = ["value", "multiple", "isSelected", "isDisabled", "onClick", "aria-selected"];
|
|
11
|
-
var StyledListItem = styled
|
|
10
|
+
var StyledListItem = styled.li.withConfig({
|
|
12
11
|
displayName: "Option__StyledListItem",
|
|
13
12
|
componentId: "sc-1ly11zu-0"
|
|
14
13
|
})(function (_ref) {
|
|
@@ -17,16 +16,23 @@ var StyledListItem = styled(List.Item).withConfig({
|
|
|
17
16
|
active = _ref.active,
|
|
18
17
|
isdisabled = _ref.isdisabled;
|
|
19
18
|
var backgroundColor = highlighted === 'true' ? theme.states.hover.background : active === 'true' ? theme.states.active.background : theme.background;
|
|
20
|
-
return css(["display:flex;align-items:center;margin:0;list-style:none;background-color:", ";user-select:none;cursor:", ";", " ", " ", ""], backgroundColor, highlighted === 'true' ? 'pointer' : 'default', typographyTemplate(theme.typography), spacingsTemplate(theme.spacings), isdisabled === 'true' ? css(["color:", ";"], theme.states.disabled.typography.color) : '');
|
|
19
|
+
return css(["display:flex;grid-area:1 / -1;align-items:center;align-self:start;margin:0;list-style:none;background-color:", ";user-select:none;word-break:break-word;cursor:", ";", " ", " ", ""], backgroundColor, highlighted === 'true' ? 'pointer' : 'default', typographyTemplate(theme.typography), spacingsTemplate(theme.spacings), isdisabled === 'true' ? css(["color:", ";"], theme.states.disabled.typography.color) : '');
|
|
21
20
|
});
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
var Label = styled.span.withConfig({
|
|
22
|
+
displayName: "Option__Label",
|
|
23
|
+
componentId: "sc-1ly11zu-1"
|
|
24
|
+
})(function (_ref2) {
|
|
25
|
+
var theme = _ref2.theme;
|
|
26
|
+
return css(["", ""], spacingsTemplate(theme.entities.label.spacings));
|
|
27
|
+
});
|
|
28
|
+
var AutocompleteOption = /*#__PURE__*/forwardRef(function AutocompleteOption(_ref3, ref) {
|
|
29
|
+
var value = _ref3.value,
|
|
30
|
+
multiple = _ref3.multiple,
|
|
31
|
+
isSelected = _ref3.isSelected,
|
|
32
|
+
isDisabled = _ref3.isDisabled,
|
|
33
|
+
_onClick = _ref3.onClick,
|
|
34
|
+
ariaSelected = _ref3['aria-selected'],
|
|
35
|
+
other = _objectWithoutProperties(_ref3, _excluded);
|
|
30
36
|
return /*#__PURE__*/jsxs(StyledListItem, _objectSpread(_objectSpread({
|
|
31
37
|
ref: ref,
|
|
32
38
|
isdisabled: isDisabled ? 'true' : 'false',
|
|
@@ -44,7 +50,7 @@ var AutocompleteOption = /*#__PURE__*/forwardRef(function AutocompleteOption(_re
|
|
|
44
50
|
onChange: function onChange() {
|
|
45
51
|
return null;
|
|
46
52
|
}
|
|
47
|
-
}), /*#__PURE__*/jsx(
|
|
53
|
+
}), /*#__PURE__*/jsx(Label, {
|
|
48
54
|
children: value
|
|
49
55
|
})]
|
|
50
56
|
}));
|
|
@@ -11,8 +11,8 @@ export declare type SliderProps = {
|
|
|
11
11
|
onChange?: (event: ChangeEvent<HTMLInputElement>, newValue: number[] | number) => void;
|
|
12
12
|
/** Function to be called when value is committed by mouseup event */
|
|
13
13
|
onChangeCommitted?: (event: MouseEvent | KeyboardEvent, newValue: number[] | number) => void;
|
|
14
|
-
/** Function for formatting the
|
|
15
|
-
outputFunction?: (
|
|
14
|
+
/** Function for formatting the displayed value. E.g. formatting dates, or adding a unit suffix */
|
|
15
|
+
outputFunction?: (value: number) => string;
|
|
16
16
|
/** Max value */
|
|
17
17
|
max?: number;
|
|
18
18
|
/** Min value */
|
|
@@ -38,8 +38,8 @@ export declare const Slider: import("react").ForwardRefExoticComponent<{
|
|
|
38
38
|
onChange?: (event: ChangeEvent<HTMLInputElement>, newValue: number[] | number) => void;
|
|
39
39
|
/** Function to be called when value is committed by mouseup event */
|
|
40
40
|
onChangeCommitted?: (event: MouseEvent | KeyboardEvent, newValue: number[] | number) => void;
|
|
41
|
-
/** Function for formatting the
|
|
42
|
-
outputFunction?: (
|
|
41
|
+
/** Function for formatting the displayed value. E.g. formatting dates, or adding a unit suffix */
|
|
42
|
+
outputFunction?: (value: number) => string;
|
|
43
43
|
/** Max value */
|
|
44
44
|
max?: number;
|
|
45
45
|
/** Min value */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@equinor/eds-core-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0-dev12052022",
|
|
4
4
|
"description": "The React implementation of the Equinor Design System",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"**/*.css"
|
|
@@ -79,11 +79,12 @@
|
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"@babel/runtime": "^7.19.0",
|
|
82
|
-
"@equinor/eds-icons": "0.16.0",
|
|
83
|
-
"@equinor/eds-tokens": "0.9.0",
|
|
84
|
-
"@equinor/eds-utils": "0.7.0",
|
|
85
82
|
"@floating-ui/react-dom-interactions": "^0.10.1",
|
|
86
|
-
"
|
|
83
|
+
"@tanstack/react-virtual": "3.0.0-beta.30",
|
|
84
|
+
"downshift": "^7.0.1",
|
|
85
|
+
"@equinor/eds-icons": "0.17.0",
|
|
86
|
+
"@equinor/eds-tokens": "0.9.0",
|
|
87
|
+
"@equinor/eds-utils": "0.7.0"
|
|
87
88
|
},
|
|
88
89
|
"engines": {
|
|
89
90
|
"pnpm": ">=4",
|