@entur/dropdown 4.0.10 → 5.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/beta/Dropdown.d.ts +56 -0
- package/dist/beta/MultiSelect.d.ts +67 -0
- package/dist/beta/SearchableDropdown.d.ts +18 -5
- package/dist/beta/components/DropdownList.d.ts +24 -0
- package/dist/beta/components/FieldComponents.d.ts +24 -0
- package/dist/beta/index.d.ts +2 -0
- package/dist/beta/utils.d.ts +22 -0
- package/dist/dropdown.cjs.development.js +707 -155
- package/dist/dropdown.cjs.development.js.map +1 -1
- package/dist/dropdown.cjs.production.min.js +1 -1
- package/dist/dropdown.cjs.production.min.js.map +1 -1
- package/dist/dropdown.esm.js +708 -158
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +160 -87
- package/package.json +7 -7
- package/dist/beta/DropdownList.d.ts +0 -17
|
@@ -12,6 +12,8 @@ var a11y = require('@entur/a11y');
|
|
|
12
12
|
var loader = require('@entur/loader');
|
|
13
13
|
var tokens = require('@entur/tokens');
|
|
14
14
|
var button = require('@entur/button');
|
|
15
|
+
var chip = require('@entur/chip');
|
|
16
|
+
var tooltip = require('@entur/tooltip');
|
|
15
17
|
|
|
16
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
19
|
|
|
@@ -380,7 +382,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
380
382
|
return target;
|
|
381
383
|
}
|
|
382
384
|
|
|
383
|
-
var _excluded$
|
|
385
|
+
var _excluded$d = ["children", "onChange", "onInputValueChange", "highlightFirstItemOnOpen", "className", "style", "searchable"];
|
|
384
386
|
var DownshiftContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
385
387
|
var DownshiftProvider = function DownshiftProvider(_ref) {
|
|
386
388
|
var children = _ref.children,
|
|
@@ -398,7 +400,7 @@ var DownshiftProvider = function DownshiftProvider(_ref) {
|
|
|
398
400
|
style = _ref.style,
|
|
399
401
|
_ref$searchable = _ref.searchable,
|
|
400
402
|
searchable = _ref$searchable === void 0 ? false : _ref$searchable,
|
|
401
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
403
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
|
|
402
404
|
var handleStateChange = function handleStateChange(changes, stateAndHelpers) {
|
|
403
405
|
if (changes.type === Downshift__default["default"].stateChangeTypes.controlledPropUpdatedSelectedItem) {
|
|
404
406
|
return;
|
|
@@ -458,10 +460,10 @@ var useDownshift = function useDownshift() {
|
|
|
458
460
|
return context;
|
|
459
461
|
};
|
|
460
462
|
|
|
461
|
-
var _excluded$
|
|
463
|
+
var _excluded$c = ["items"];
|
|
462
464
|
var DropdownList$1 = function DropdownList(_ref) {
|
|
463
465
|
var items = _ref.items,
|
|
464
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
466
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
|
|
465
467
|
var _useDownshift = useDownshift(),
|
|
466
468
|
highlightedIndex = _useDownshift.highlightedIndex,
|
|
467
469
|
isOpen = _useDownshift.isOpen,
|
|
@@ -509,17 +511,17 @@ var DropdownToggleButton$1 = function DropdownToggleButton() {
|
|
|
509
511
|
}), React__default["default"].createElement(icons.DownArrowIcon, null));
|
|
510
512
|
};
|
|
511
513
|
|
|
512
|
-
var _excluded$
|
|
514
|
+
var _excluded$b = ["className", "children"];
|
|
513
515
|
var DropdownLoadingDots = function DropdownLoadingDots(_ref) {
|
|
514
516
|
var className = _ref.className,
|
|
515
517
|
children = _ref.children,
|
|
516
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
518
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
517
519
|
return React__default["default"].createElement("div", _extends({
|
|
518
520
|
className: classNames__default["default"]('eds-inline-spinner', className)
|
|
519
521
|
}, rest), React__default["default"].createElement(loader.LoadingDots, null), React__default["default"].createElement(a11y.VisuallyHidden, null, children));
|
|
520
522
|
};
|
|
521
523
|
|
|
522
|
-
var _excluded$
|
|
524
|
+
var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
|
|
523
525
|
var BaseDropdown = function BaseDropdown(_ref) {
|
|
524
526
|
var children = _ref.children,
|
|
525
527
|
className = _ref.className,
|
|
@@ -535,14 +537,14 @@ var BaseDropdown = function BaseDropdown(_ref) {
|
|
|
535
537
|
_ref$isFilled = _ref.isFilled,
|
|
536
538
|
isFilled = _ref$isFilled === void 0 ? false : _ref$isFilled,
|
|
537
539
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
538
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
540
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
539
541
|
var _useDownshift = useDownshift(),
|
|
540
542
|
getLabelProps = _useDownshift.getLabelProps;
|
|
541
543
|
return React__default["default"].createElement("div", {
|
|
542
544
|
className: "eds-dropdown-wrapper",
|
|
543
545
|
style: style
|
|
544
546
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
545
|
-
append: React__default["default"].createElement(Appendix$
|
|
547
|
+
append: React__default["default"].createElement(Appendix$1, {
|
|
546
548
|
clearable: clearable,
|
|
547
549
|
loading: loading,
|
|
548
550
|
loadingText: loadingText,
|
|
@@ -578,7 +580,7 @@ var ClearButton$1 = function ClearButton(_ref2) {
|
|
|
578
580
|
className: "eds-dropdown__divider"
|
|
579
581
|
}));
|
|
580
582
|
};
|
|
581
|
-
var Appendix$
|
|
583
|
+
var Appendix$1 = function Appendix(_ref3) {
|
|
582
584
|
var clearable = _ref3.clearable,
|
|
583
585
|
loading = _ref3.loading,
|
|
584
586
|
loadingText = _ref3.loadingText,
|
|
@@ -592,7 +594,7 @@ var Appendix$2 = function Appendix(_ref3) {
|
|
|
592
594
|
return clearable ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearButton$1, null), " ", React__default["default"].createElement(DropdownToggleButton$1, null)) : React__default["default"].createElement(DropdownToggleButton$1, null);
|
|
593
595
|
};
|
|
594
596
|
|
|
595
|
-
var _excluded$
|
|
597
|
+
var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
|
|
596
598
|
var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
597
599
|
var disabled = _ref.disabled,
|
|
598
600
|
_ref$placeholder = _ref.placeholder,
|
|
@@ -609,7 +611,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
609
611
|
loadingText = _ref.loadingText,
|
|
610
612
|
className = _ref.className,
|
|
611
613
|
clearable = _ref.clearable,
|
|
612
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
614
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
613
615
|
var _useDownshift = useDownshift(),
|
|
614
616
|
getToggleButtonProps = _useDownshift.getToggleButtonProps,
|
|
615
617
|
selectedItem = _useDownshift.selectedItem,
|
|
@@ -670,7 +672,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
670
672
|
}), selectedItem ? selectedItem.label : placeholder));
|
|
671
673
|
});
|
|
672
674
|
|
|
673
|
-
var _excluded$
|
|
675
|
+
var _excluded$8 = ["disabled", "className", "items", "loading", "loadingText", "readOnly", "prepend", "selectOnTab", "openOnFocus", "listStyle", "clearable", "itemFilter", "label", "disableLabelAnimation", "placeholder"];
|
|
674
676
|
function LowerCaseFilterTest(item, input) {
|
|
675
677
|
if (!input) {
|
|
676
678
|
return true;
|
|
@@ -702,7 +704,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
702
704
|
label = _ref.label,
|
|
703
705
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
704
706
|
placeholder = _ref.placeholder,
|
|
705
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
707
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
706
708
|
var _useDownshift = useDownshift(),
|
|
707
709
|
getInputProps = _useDownshift.getInputProps,
|
|
708
710
|
inputValue = _useDownshift.inputValue,
|
|
@@ -891,7 +893,7 @@ debounceTimeout) {
|
|
|
891
893
|
if (isItemsFunction) {
|
|
892
894
|
fetchItems('');
|
|
893
895
|
}
|
|
894
|
-
}, [isItemsFunction
|
|
896
|
+
}, [isItemsFunction]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
895
897
|
return {
|
|
896
898
|
items: normalizedItems,
|
|
897
899
|
loading: isItemsFunction ? loading : false,
|
|
@@ -899,7 +901,7 @@ debounceTimeout) {
|
|
|
899
901
|
};
|
|
900
902
|
};
|
|
901
903
|
|
|
902
|
-
var _excluded$
|
|
904
|
+
var _excluded$7 = ["highlightFirstItemOnOpen", "debounceTimeout", "disabled", "feedback", "items", "label", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "searchable", "selectOnTab", "openOnFocus", "variant", "value", "clearable", "className", "style", "listStyle", "itemFilter", "disableLabelAnimation"];
|
|
903
905
|
var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
904
906
|
var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
|
|
905
907
|
debounceTimeout = _ref.debounceTimeout,
|
|
@@ -927,7 +929,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
927
929
|
listStyle = _ref.listStyle,
|
|
928
930
|
itemFilter = _ref.itemFilter,
|
|
929
931
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
930
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
932
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
931
933
|
var _useResolvedItems = useResolvedItems(items, debounceTimeout),
|
|
932
934
|
normalizedItems = _useResolvedItems.items,
|
|
933
935
|
loading = _useResolvedItems.loading,
|
|
@@ -974,7 +976,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
974
976
|
}, searchAbleProps))));
|
|
975
977
|
});
|
|
976
978
|
|
|
977
|
-
var _excluded$
|
|
979
|
+
var _excluded$6 = ["className", "disabled", "readOnly", "items", "loadingText", "prepend", "style", "label", "variant", "feedback", "disableLabelAnimation"];
|
|
978
980
|
var NativeDropdown = function NativeDropdown(_ref) {
|
|
979
981
|
var className = _ref.className,
|
|
980
982
|
_ref$disabled = _ref.disabled,
|
|
@@ -989,7 +991,7 @@ var NativeDropdown = function NativeDropdown(_ref) {
|
|
|
989
991
|
variant = _ref.variant,
|
|
990
992
|
feedback = _ref.feedback,
|
|
991
993
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
992
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
994
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
993
995
|
var _useResolvedItems = useResolvedItems(items),
|
|
994
996
|
normalizedItems = _useResolvedItems.items,
|
|
995
997
|
loading = _useResolvedItems.loading;
|
|
@@ -1032,7 +1034,7 @@ var NativeDropdown = function NativeDropdown(_ref) {
|
|
|
1032
1034
|
})));
|
|
1033
1035
|
};
|
|
1034
1036
|
|
|
1035
|
-
var _excluded$
|
|
1037
|
+
var _excluded$5 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
|
|
1036
1038
|
var MultiSelectContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
1037
1039
|
var useMultiSelectContext = function useMultiSelectContext() {
|
|
1038
1040
|
var context = React__default["default"].useContext(MultiSelectContext);
|
|
@@ -1059,36 +1061,36 @@ actionAndChanges) {
|
|
|
1059
1061
|
}
|
|
1060
1062
|
}
|
|
1061
1063
|
var MultiSelect = function MultiSelect(_ref) {
|
|
1062
|
-
var
|
|
1064
|
+
var className = _ref.className,
|
|
1065
|
+
_ref$clearable = _ref.clearable,
|
|
1066
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1067
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1068
|
+
disabled = _ref.disabled,
|
|
1069
|
+
feedback = _ref.feedback,
|
|
1070
|
+
_ref$initialSelectedI = _ref.initialSelectedItems,
|
|
1071
|
+
initialSelectedItems = _ref$initialSelectedI === void 0 ? [] : _ref$initialSelectedI,
|
|
1072
|
+
input = _ref.items,
|
|
1063
1073
|
_ref$itemsSelectedLab = _ref.itemsSelectedLabel,
|
|
1064
1074
|
itemsSelectedLabel = _ref$itemsSelectedLab === void 0 ? function (items) {
|
|
1065
1075
|
return SelectedItemsLabel(items);
|
|
1066
1076
|
} : _ref$itemsSelectedLab,
|
|
1067
1077
|
label = _ref.label,
|
|
1068
|
-
|
|
1069
|
-
variant = _ref.variant,
|
|
1070
|
-
disabled = _ref.disabled,
|
|
1071
|
-
_ref$readOnly = _ref.readOnly,
|
|
1072
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1073
|
-
_ref$onChange = _ref.onChange,
|
|
1074
|
-
onChange = _ref$onChange === void 0 ? function () {
|
|
1075
|
-
return undefined;
|
|
1076
|
-
} : _ref$onChange,
|
|
1077
|
-
className = _ref.className,
|
|
1078
|
-
_ref$clearable = _ref.clearable,
|
|
1079
|
-
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1078
|
+
listStyle = _ref.listStyle,
|
|
1080
1079
|
_ref$loading = _ref.loading,
|
|
1081
1080
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1082
1081
|
_ref$loadingText = _ref.loadingText,
|
|
1083
1082
|
loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
|
|
1083
|
+
_ref$onChange = _ref.onChange,
|
|
1084
|
+
onChange = _ref$onChange === void 0 ? function () {
|
|
1085
|
+
return undefined;
|
|
1086
|
+
} : _ref$onChange,
|
|
1084
1087
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1085
1088
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1089
|
+
_ref$readOnly = _ref.readOnly,
|
|
1090
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1086
1091
|
style = _ref.style,
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
initialSelectedItems = _ref$initialSelectedI === void 0 ? [] : _ref$initialSelectedI,
|
|
1090
|
-
debounceTimeout = _ref.debounceTimeout,
|
|
1091
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1092
|
+
variant = _ref.variant,
|
|
1093
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
1092
1094
|
var _useResolvedItems = useResolvedItems(input, debounceTimeout),
|
|
1093
1095
|
items = _useResolvedItems.items;
|
|
1094
1096
|
var _useState = React.useState(initialSelectedItems),
|
|
@@ -1154,7 +1156,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1154
1156
|
isFilled: selectedItems.length > 0 || isOpen,
|
|
1155
1157
|
disabled: disabled,
|
|
1156
1158
|
readOnly: readOnly,
|
|
1157
|
-
append: React__default["default"].createElement(Appendix
|
|
1159
|
+
append: React__default["default"].createElement(Appendix, {
|
|
1158
1160
|
hasSelected: clearable && selectedItems.length > 0,
|
|
1159
1161
|
loading: loading,
|
|
1160
1162
|
loadingText: loadingText,
|
|
@@ -1223,7 +1225,7 @@ var ClearButton = function ClearButton(_ref3) {
|
|
|
1223
1225
|
className: "eds-dropdown__divider"
|
|
1224
1226
|
}));
|
|
1225
1227
|
};
|
|
1226
|
-
var Appendix
|
|
1228
|
+
var Appendix = function Appendix(_ref4) {
|
|
1227
1229
|
var loading = _ref4.loading,
|
|
1228
1230
|
loadingText = _ref4.loadingText,
|
|
1229
1231
|
readOnly = _ref4.readOnly,
|
|
@@ -1273,46 +1275,91 @@ function SelectedItemsLabel(items) {
|
|
|
1273
1275
|
}).toString() : items.length + " elementer valgt";
|
|
1274
1276
|
}
|
|
1275
1277
|
|
|
1276
|
-
var _excluded$
|
|
1278
|
+
var _excluded$4 = ["selectedItems", "listItems", "inputValue", "isOpen", "getMenuProps", "getItemProps", "highlightedIndex", "showSelectAllInList", "loading", "selectAllCheckboxState", "selectAllItem", "listStyle", "noMatchesText", "loadingText", "selectedItemAriaLabel"];
|
|
1277
1279
|
var DropdownList = function DropdownList(_ref) {
|
|
1278
|
-
var
|
|
1280
|
+
var selectedItems = _ref.selectedItems,
|
|
1281
|
+
listItems = _ref.listItems,
|
|
1279
1282
|
isOpen = _ref.isOpen,
|
|
1280
1283
|
getMenuProps = _ref.getMenuProps,
|
|
1281
1284
|
getItemProps = _ref.getItemProps,
|
|
1282
|
-
filteredItems = _ref.filteredItems,
|
|
1283
1285
|
highlightedIndex = _ref.highlightedIndex,
|
|
1286
|
+
_ref$loading = _ref.loading,
|
|
1287
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1288
|
+
selectAllCheckboxState = _ref.selectAllCheckboxState,
|
|
1289
|
+
selectAllItem = _ref.selectAllItem,
|
|
1284
1290
|
listStyle = _ref.listStyle,
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
+
_ref$noMatchesText = _ref.noMatchesText,
|
|
1292
|
+
noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen treff for søket' : _ref$noMatchesText,
|
|
1293
|
+
_ref$loadingText = _ref.loadingText,
|
|
1294
|
+
loadingText = _ref$loadingText === void 0 ? 'Laster inn …' : _ref$loadingText,
|
|
1295
|
+
_ref$selectedItemAria = _ref.selectedItemAriaLabel,
|
|
1296
|
+
selectedItemAriaLabel = _ref$selectedItemAria === void 0 ? ', valgt element' : _ref$selectedItemAria,
|
|
1297
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
1298
|
+
var isMultiselect = selectAllItem !== undefined;
|
|
1299
|
+
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
|
|
1300
|
+
var itemIsSelected = function itemIsSelected(item) {
|
|
1301
|
+
return selectedItems.some(function (selectedItem) {
|
|
1302
|
+
return selectedItem.value === item.value;
|
|
1303
|
+
});
|
|
1304
|
+
};
|
|
1305
|
+
var selectAllListItemContent = function selectAllListItemContent() {
|
|
1306
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1307
|
+
checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
|
|
1308
|
+
"aria-hidden": "true",
|
|
1309
|
+
onChange: function onChange() {
|
|
1310
|
+
return;
|
|
1311
|
+
}
|
|
1312
|
+
}), React__default["default"].createElement("span", {
|
|
1313
|
+
className: "eds-dropdown__list__item-text"
|
|
1314
|
+
}, selectAllItem == null ? void 0 : selectAllItem.label));
|
|
1315
|
+
};
|
|
1316
|
+
var listItemContent = function listItemContent(item) {
|
|
1317
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1318
|
+
style: !isMultiselect ? {
|
|
1319
|
+
display: 'none'
|
|
1320
|
+
} : {},
|
|
1321
|
+
checked: itemIsSelected(item),
|
|
1322
|
+
"aria-hidden": "true",
|
|
1323
|
+
onChange: function onChange() {
|
|
1324
|
+
return;
|
|
1325
|
+
}
|
|
1326
|
+
}), React__default["default"].createElement("span", {
|
|
1327
|
+
className: "eds-dropdown__list__item-text"
|
|
1328
|
+
}, item.label, React__default["default"].createElement(a11y.VisuallyHidden, null, selectedItemAriaLabel)), item.icons && React__default["default"].createElement("span", null, item.icons.map(function (Icon, index) {
|
|
1329
|
+
return React__default["default"].createElement(Icon, {
|
|
1330
|
+
key: index,
|
|
1331
|
+
inline: true,
|
|
1332
|
+
className: "eds-dropdown__list__item-icon"
|
|
1333
|
+
});
|
|
1334
|
+
})));
|
|
1335
|
+
};
|
|
1336
|
+
return React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
|
|
1337
|
+
className: classNames__default["default"]('eds-dropdown__list', {
|
|
1338
|
+
'eds-dropdown__list--open': isOpen
|
|
1339
|
+
}),
|
|
1291
1340
|
style: _extends({}, rest.style, listStyle)
|
|
1292
|
-
}), isOpen
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
}) : null);
|
|
1341
|
+
}), isOpen && listItems.length > 0 && listItems.map(function (item, index) {
|
|
1342
|
+
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1343
|
+
if (itemIsSelectAll && listItems.length <= 2) return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
1344
|
+
return React__default["default"].createElement("li", _extends({
|
|
1345
|
+
key: item.value,
|
|
1346
|
+
className: classNames__default["default"]('eds-dropdown__list__item', {
|
|
1347
|
+
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1348
|
+
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1349
|
+
'eds-dropdown__list__item--selected': !isMultiselect && itemIsSelected(item)
|
|
1350
|
+
})
|
|
1351
|
+
}, getItemProps({
|
|
1352
|
+
key: "" + index + item.value,
|
|
1353
|
+
item: item,
|
|
1354
|
+
index: index
|
|
1355
|
+
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
1356
|
+
}), isOpen && isNoMatches && React__default["default"].createElement("li", {
|
|
1357
|
+
className: "eds-dropdown__list__item"
|
|
1358
|
+
}, noMatchesText), isOpen && loading && React__default["default"].createElement("li", {
|
|
1359
|
+
className: "eds-dropdown__list__item"
|
|
1360
|
+
}, loadingText));
|
|
1313
1361
|
};
|
|
1314
1362
|
|
|
1315
|
-
var _excluded = ["items", "selectedItem", "onChange", "label", "placeholder", "clearable", "openOnFocus", "readonly", "feedback", "variant", "className", "listStyle"];
|
|
1316
1363
|
function lowerCaseFilterTest(item, input) {
|
|
1317
1364
|
if (!input) {
|
|
1318
1365
|
return true;
|
|
@@ -1321,69 +1368,279 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1321
1368
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1322
1369
|
return inputRegex.test(item.label);
|
|
1323
1370
|
}
|
|
1371
|
+
var itemToString = function itemToString(item) {
|
|
1372
|
+
return item ? item.label : '';
|
|
1373
|
+
};
|
|
1374
|
+
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1375
|
+
var listItems = _ref.listItems,
|
|
1376
|
+
selectedItems = _ref.selectedItems,
|
|
1377
|
+
selectAllValue = _ref.selectAllValue;
|
|
1378
|
+
var hasSelectedItems = selectedItems.length > 0;
|
|
1379
|
+
var listItemsWithoutSelectAll = listItems.filter(function (item) {
|
|
1380
|
+
return item.value !== selectAllValue;
|
|
1381
|
+
});
|
|
1382
|
+
var allListItemsAreSelected = listItemsWithoutSelectAll.filter(function (item) {
|
|
1383
|
+
return !selectedItems.includes(item);
|
|
1384
|
+
}).length === 0;
|
|
1385
|
+
var someListItemsAreSelected = listItemsWithoutSelectAll.some(function (item) {
|
|
1386
|
+
return selectedItems.includes(item);
|
|
1387
|
+
});
|
|
1388
|
+
var addClickedItemToSelectedItems = function addClickedItemToSelectedItems(clickedItem, onChange) {
|
|
1389
|
+
return onChange([].concat(selectedItems, [clickedItem]));
|
|
1390
|
+
};
|
|
1391
|
+
var clickedItemIsInSelectedItems = function clickedItemIsInSelectedItems(clickedItem) {
|
|
1392
|
+
return selectedItems.some(function (selectedItem) {
|
|
1393
|
+
return selectedItem.value === clickedItem.value;
|
|
1394
|
+
});
|
|
1395
|
+
};
|
|
1396
|
+
var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
|
|
1397
|
+
return clickedItem.value === selectAllValue;
|
|
1398
|
+
};
|
|
1399
|
+
var removeClickedItemFromSelectedItems = function removeClickedItemFromSelectedItems(clickedItem, onChange) {
|
|
1400
|
+
return onChange(selectedItems.filter(function (selectedItem) {
|
|
1401
|
+
return selectedItem.value !== clickedItem.value;
|
|
1402
|
+
}));
|
|
1403
|
+
};
|
|
1404
|
+
var selectAllCheckboxState = function selectAllCheckboxState() {
|
|
1405
|
+
if (allListItemsAreSelected) return true;
|
|
1406
|
+
if (someListItemsAreSelected) return 'indeterminate';
|
|
1407
|
+
return false;
|
|
1408
|
+
};
|
|
1409
|
+
var selectAllUnselectedItemsInListItems = function selectAllUnselectedItemsInListItems(onChange) {
|
|
1410
|
+
onChange([].concat(selectedItems, listItemsWithoutSelectAll.filter(function (item) {
|
|
1411
|
+
return !selectedItems.includes(item);
|
|
1412
|
+
})));
|
|
1413
|
+
};
|
|
1414
|
+
var unselectAllListItems = function unselectAllListItems(onChange) {
|
|
1415
|
+
onChange(selectedItems.filter(function (item) {
|
|
1416
|
+
return !listItemsWithoutSelectAll.includes(item);
|
|
1417
|
+
}));
|
|
1418
|
+
};
|
|
1419
|
+
return {
|
|
1420
|
+
addClickedItemToSelectedItems: addClickedItemToSelectedItems,
|
|
1421
|
+
allListItemsAreSelected: allListItemsAreSelected,
|
|
1422
|
+
clickedItemIsInSelectedItems: clickedItemIsInSelectedItems,
|
|
1423
|
+
clickedItemIsSelectAll: clickedItemIsSelectAll,
|
|
1424
|
+
hasSelectedItems: hasSelectedItems,
|
|
1425
|
+
listItemsWithoutSelectAll: listItemsWithoutSelectAll,
|
|
1426
|
+
removeClickedItemFromSelectedItems: removeClickedItemFromSelectedItems,
|
|
1427
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
1428
|
+
selectAllUnselectedItemsInListItems: selectAllUnselectedItemsInListItems,
|
|
1429
|
+
someListItemsAreSelected: someListItemsAreSelected,
|
|
1430
|
+
unselectAllListItems: unselectAllListItems
|
|
1431
|
+
};
|
|
1432
|
+
};
|
|
1433
|
+
|
|
1434
|
+
var _excluded$3 = ["tabIndex"];
|
|
1435
|
+
var SelectedElementsTag = function SelectedElementsTag(_ref) {
|
|
1436
|
+
var getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1437
|
+
removeSelectedItem = _ref.removeSelectedItem,
|
|
1438
|
+
selectedItem = _ref.selectedItem,
|
|
1439
|
+
index = _ref.index,
|
|
1440
|
+
ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected;
|
|
1441
|
+
var _getSelectedItemProps = getSelectedItemProps({
|
|
1442
|
+
selectedItem: selectedItem,
|
|
1443
|
+
index: index
|
|
1444
|
+
}),
|
|
1445
|
+
selectedItemProps = _objectWithoutPropertiesLoose(_getSelectedItemProps, _excluded$3);
|
|
1446
|
+
return React__default["default"].createElement(chip.TagChip, _extends({
|
|
1447
|
+
className: classNames__default["default"]('eds-dropdown__selected-element-tag')
|
|
1448
|
+
}, selectedItemProps, {
|
|
1449
|
+
onClose: function onClose(e) {
|
|
1450
|
+
e.stopPropagation();
|
|
1451
|
+
removeSelectedItem(selectedItem);
|
|
1452
|
+
},
|
|
1453
|
+
closeButtonAriaLabel: selectedItem.label + ", " + ariaLabelRemoveSelected + " ",
|
|
1454
|
+
key: selectedItem.value
|
|
1455
|
+
}), React__default["default"].createElement("span", {
|
|
1456
|
+
"aria-hidden": "true"
|
|
1457
|
+
}, selectedItem.label));
|
|
1458
|
+
};
|
|
1459
|
+
var FieldAppend = function FieldAppend(_ref2) {
|
|
1460
|
+
var clearable = _ref2.clearable,
|
|
1461
|
+
readOnly = _ref2.readOnly,
|
|
1462
|
+
getToggleButtonProps = _ref2.getToggleButtonProps,
|
|
1463
|
+
selectedItems = _ref2.selectedItems,
|
|
1464
|
+
_ref2$loading = _ref2.loading,
|
|
1465
|
+
loading = _ref2$loading === void 0 ? false : _ref2$loading,
|
|
1466
|
+
_ref2$loadingText = _ref2.loadingText,
|
|
1467
|
+
loadingText = _ref2$loadingText === void 0 ? 'Laster resultater …' : _ref2$loadingText,
|
|
1468
|
+
ariaLabelClearItems = _ref2.ariaLabelClearItems,
|
|
1469
|
+
clearSelectedItemsLabel = _ref2.clearSelectedItemsLabel,
|
|
1470
|
+
isOpen = _ref2.isOpen,
|
|
1471
|
+
onClear = _ref2.onClear,
|
|
1472
|
+
_ref2$focusable = _ref2.focusable,
|
|
1473
|
+
focusable = _ref2$focusable === void 0 ? false : _ref2$focusable;
|
|
1474
|
+
if (loading) {
|
|
1475
|
+
return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
|
|
1476
|
+
}
|
|
1477
|
+
if (readOnly) {
|
|
1478
|
+
return null;
|
|
1479
|
+
}
|
|
1480
|
+
return React__default["default"].createElement("div", {
|
|
1481
|
+
className: "eds-dropdown-appendix"
|
|
1482
|
+
}, clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearableButton, {
|
|
1483
|
+
onClear: onClear,
|
|
1484
|
+
focusable: focusable,
|
|
1485
|
+
clearSelectedItemsLabel: clearSelectedItemsLabel,
|
|
1486
|
+
ariaLabelClearItems: ariaLabelClearItems
|
|
1487
|
+
}), React__default["default"].createElement("div", {
|
|
1488
|
+
className: "eds-dropdown-appendix__divider"
|
|
1489
|
+
})), React__default["default"].createElement(ToggleButton, {
|
|
1490
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
1491
|
+
isOpen: isOpen,
|
|
1492
|
+
focusable: focusable
|
|
1493
|
+
}));
|
|
1494
|
+
};
|
|
1495
|
+
var ClearableButton = function ClearableButton(_ref3) {
|
|
1496
|
+
var onClear = _ref3.onClear,
|
|
1497
|
+
_ref3$clearSelectedIt = _ref3.clearSelectedItemsLabel,
|
|
1498
|
+
clearSelectedItemsLabel = _ref3$clearSelectedIt === void 0 ? 'Fjern valgte' : _ref3$clearSelectedIt,
|
|
1499
|
+
_ref3$ariaLabelClearI = _ref3.ariaLabelClearItems,
|
|
1500
|
+
ariaLabelClearItems = _ref3$ariaLabelClearI === void 0 ? 'Fjern valgte' : _ref3$ariaLabelClearI,
|
|
1501
|
+
_ref3$focusable = _ref3.focusable,
|
|
1502
|
+
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable;
|
|
1503
|
+
return React__default["default"].createElement(tooltip.Tooltip, {
|
|
1504
|
+
"aria-hidden": "true",
|
|
1505
|
+
placement: "right",
|
|
1506
|
+
content: clearSelectedItemsLabel
|
|
1507
|
+
}, React__default["default"].createElement(button.IconButton, {
|
|
1508
|
+
className: "eds-dropdown-appendix__clear-button",
|
|
1509
|
+
type: "button",
|
|
1510
|
+
tabIndex: focusable ? 0 : 1,
|
|
1511
|
+
onClick: onClear,
|
|
1512
|
+
"aria-label": ariaLabelClearItems
|
|
1513
|
+
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1514
|
+
"aria-hidden": "true"
|
|
1515
|
+
})));
|
|
1516
|
+
};
|
|
1517
|
+
var ToggleButton = function ToggleButton(_ref4) {
|
|
1518
|
+
var getToggleButtonProps = _ref4.getToggleButtonProps,
|
|
1519
|
+
isOpen = _ref4.isOpen,
|
|
1520
|
+
_ref4$closeAriaLabel = _ref4.closeAriaLabel,
|
|
1521
|
+
closeAriaLabel = _ref4$closeAriaLabel === void 0 ? 'Lukk liste med valg' : _ref4$closeAriaLabel,
|
|
1522
|
+
_ref4$openAriaLabel = _ref4.openAriaLabel,
|
|
1523
|
+
openAriaLabel = _ref4$openAriaLabel === void 0 ? 'Åpne liste med valg' : _ref4$openAriaLabel,
|
|
1524
|
+
_ref4$focusable = _ref4.focusable,
|
|
1525
|
+
focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
|
|
1526
|
+
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1527
|
+
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1528
|
+
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1529
|
+
})
|
|
1530
|
+
}), {
|
|
1531
|
+
"aria-label": isOpen ? closeAriaLabel : openAriaLabel,
|
|
1532
|
+
tabIndex: focusable ? 0 : 1,
|
|
1533
|
+
type: "button"
|
|
1534
|
+
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1535
|
+
"aria-hidden": "true"
|
|
1536
|
+
}));
|
|
1537
|
+
};
|
|
1538
|
+
|
|
1539
|
+
var _excluded$2 = ["className", "clearable", "debounceTimeout", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "variant"];
|
|
1324
1540
|
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
1325
1541
|
// TODO Husk å generelt legge inn støtte for typeof value === string
|
|
1326
1542
|
var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
1327
1543
|
var _selectedItem$label;
|
|
1328
|
-
var
|
|
1329
|
-
value = _ref.selectedItem,
|
|
1330
|
-
onChange = _ref.onChange,
|
|
1331
|
-
label = _ref.label,
|
|
1332
|
-
placeholder = _ref.placeholder,
|
|
1544
|
+
var className = _ref.className,
|
|
1333
1545
|
_ref$clearable = _ref.clearable,
|
|
1334
1546
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1547
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1548
|
+
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1549
|
+
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1550
|
+
feedback = _ref.feedback,
|
|
1551
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1552
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1553
|
+
initialItems = _ref.items,
|
|
1554
|
+
label = _ref.label,
|
|
1555
|
+
listStyle = _ref.listStyle,
|
|
1556
|
+
onChange = _ref.onChange,
|
|
1335
1557
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1336
1558
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1559
|
+
placeholder = _ref.placeholder,
|
|
1337
1560
|
_ref$readonly = _ref.readonly,
|
|
1338
1561
|
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1339
|
-
|
|
1562
|
+
value = _ref.selectedItem,
|
|
1563
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1564
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1340
1565
|
_ref$variant = _ref.variant,
|
|
1341
1566
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1342
|
-
|
|
1343
|
-
listStyle = _ref.listStyle,
|
|
1344
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1345
|
-
var _React$useState = React__default["default"].useState(items),
|
|
1346
|
-
filteredItems = _React$useState[0],
|
|
1347
|
-
setFilteredItems = _React$useState[1];
|
|
1567
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1348
1568
|
var _useState = React.useState(false),
|
|
1349
1569
|
hideSelectedItem = _useState[0],
|
|
1350
1570
|
setHideSelectedItem = _useState[1];
|
|
1351
1571
|
var inputRef = React.useRef(null);
|
|
1352
|
-
var
|
|
1353
|
-
|
|
1354
|
-
|
|
1572
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1573
|
+
normalizedItems = _useResolvedItems.items,
|
|
1574
|
+
loading = _useResolvedItems.loading,
|
|
1575
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1576
|
+
var _React$useState = React__default["default"].useState(normalizedItems),
|
|
1577
|
+
listItems = _React$useState[0],
|
|
1578
|
+
setListItems = _React$useState[1];
|
|
1579
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1580
|
+
var inputValue = _ref2.inputValue;
|
|
1581
|
+
return setListItems(normalizedItems.filter(function (item) {
|
|
1582
|
+
return itemFilter(item, inputValue);
|
|
1583
|
+
}));
|
|
1584
|
+
};
|
|
1585
|
+
React__default["default"].useEffect(function () {
|
|
1586
|
+
filterListItems({
|
|
1587
|
+
inputValue: inputValue
|
|
1588
|
+
});
|
|
1589
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1590
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
|
|
1591
|
+
var type = _ref3.type,
|
|
1592
|
+
changes = _ref3.changes;
|
|
1355
1593
|
switch (type) {
|
|
1356
1594
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1357
1595
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1358
1596
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1359
1597
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1598
|
+
{
|
|
1599
|
+
filterListItems({
|
|
1600
|
+
inputValue: ''
|
|
1601
|
+
});
|
|
1602
|
+
return _extends({}, changes, {
|
|
1603
|
+
inputValue: '' // reset input value to show placeholder on focus
|
|
1604
|
+
});
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1608
|
+
{
|
|
1609
|
+
var _changes$inputValue;
|
|
1610
|
+
var leadingWhitespaceTest = /^\s+/g;
|
|
1611
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) setInputValue(changes.inputValue.replace(leadingWhitespaceTest, ''));else {
|
|
1612
|
+
var _changes$inputValue2, _changes$inputValue3;
|
|
1613
|
+
fetchItems((_changes$inputValue2 = changes.inputValue) != null ? _changes$inputValue2 : '');
|
|
1614
|
+
filterListItems({
|
|
1615
|
+
inputValue: (_changes$inputValue3 = changes.inputValue) != null ? _changes$inputValue3 : ''
|
|
1616
|
+
});
|
|
1617
|
+
}
|
|
1618
|
+
return changes;
|
|
1619
|
+
}
|
|
1363
1620
|
default:
|
|
1364
1621
|
return changes;
|
|
1365
1622
|
}
|
|
1366
|
-
}, []);
|
|
1623
|
+
}, [fetchItems, filterListItems]);
|
|
1367
1624
|
var _useCombobox = Downshift.useCombobox(_extends({
|
|
1368
|
-
|
|
1369
|
-
var inputValue = _ref2.inputValue;
|
|
1370
|
-
setFilteredItems(items.filter(function (item) {
|
|
1371
|
-
return lowerCaseFilterTest(item, inputValue);
|
|
1372
|
-
}));
|
|
1373
|
-
},
|
|
1374
|
-
items: filteredItems,
|
|
1375
|
-
itemToString: function itemToString(item) {
|
|
1376
|
-
if (item) return item.value;
|
|
1377
|
-
return '';
|
|
1378
|
-
},
|
|
1379
|
-
stateReducer: stateReducer,
|
|
1625
|
+
items: listItems,
|
|
1380
1626
|
selectedItem: value,
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1627
|
+
itemToString: itemToString,
|
|
1628
|
+
stateReducer: stateReducer,
|
|
1629
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1630
|
+
var type = _ref4.type,
|
|
1631
|
+
clickedItem = _ref4.selectedItem;
|
|
1632
|
+
switch (type) {
|
|
1633
|
+
// @ts-expect-error This falltrough is wanted
|
|
1634
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1635
|
+
if (!selectOnBlur) break;
|
|
1636
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1637
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1638
|
+
onChange(clickedItem != null ? clickedItem : null);
|
|
1639
|
+
}
|
|
1384
1640
|
}
|
|
1385
1641
|
}, rest)),
|
|
1386
1642
|
isOpen = _useCombobox.isOpen,
|
|
1643
|
+
openMenu = _useCombobox.openMenu,
|
|
1387
1644
|
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1388
1645
|
getLabelProps = _useCombobox.getLabelProps,
|
|
1389
1646
|
getMenuProps = _useCombobox.getMenuProps,
|
|
@@ -1392,39 +1649,46 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1392
1649
|
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1393
1650
|
getItemProps = _useCombobox.getItemProps,
|
|
1394
1651
|
selectedItem = _useCombobox.selectedItem,
|
|
1395
|
-
|
|
1396
|
-
|
|
1652
|
+
inputValue = _useCombobox.inputValue,
|
|
1653
|
+
setInputValue = _useCombobox.setInputValue;
|
|
1397
1654
|
return React__default["default"].createElement("div", {
|
|
1398
|
-
className: "eds-
|
|
1655
|
+
className: "eds-dropdown__wrapper"
|
|
1399
1656
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1400
|
-
append: React__default["default"].createElement(
|
|
1401
|
-
|
|
1657
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1658
|
+
selectedItems: [selectedItem],
|
|
1402
1659
|
isOpen: isOpen,
|
|
1403
1660
|
clearable: clearable,
|
|
1404
1661
|
loading: false,
|
|
1405
1662
|
loadingText: '',
|
|
1406
1663
|
readOnly: readonly,
|
|
1407
|
-
|
|
1664
|
+
onClear: function onClear() {
|
|
1665
|
+
var _inputRef$current;
|
|
1666
|
+
onChange(null);
|
|
1667
|
+
setInputValue('');
|
|
1668
|
+
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
1669
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
|
|
1670
|
+
},
|
|
1408
1671
|
getToggleButtonProps: getToggleButtonProps
|
|
1409
1672
|
}),
|
|
1410
|
-
|
|
1673
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1674
|
+
className: classNames__default["default"]('eds-dropdown', className),
|
|
1411
1675
|
label: label,
|
|
1412
|
-
isFilled: selectedItem
|
|
1676
|
+
isFilled: selectedItem || inputValue !== '',
|
|
1413
1677
|
feedback: feedback,
|
|
1414
1678
|
variant: variant,
|
|
1415
1679
|
readOnly: readonly,
|
|
1416
1680
|
labelProps: getLabelProps()
|
|
1417
1681
|
}, getComboboxProps(), rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
|
|
1418
|
-
className: "eds-
|
|
1682
|
+
className: "eds-dropdown__selected-item__wrapper"
|
|
1419
1683
|
}, React__default["default"].createElement("span", {
|
|
1420
|
-
className: "eds-
|
|
1684
|
+
className: "eds-dropdown__selected-item",
|
|
1421
1685
|
onClick: function onClick() {
|
|
1422
|
-
var _inputRef$
|
|
1423
|
-
return (_inputRef$
|
|
1686
|
+
var _inputRef$current2;
|
|
1687
|
+
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1424
1688
|
}
|
|
1425
1689
|
}, selectedItem.label)), React__default["default"].createElement("input", _extends({
|
|
1426
1690
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder,
|
|
1427
|
-
className: "eds-
|
|
1691
|
+
className: "eds-dropdown__input eds-form-control"
|
|
1428
1692
|
}, getInputProps({
|
|
1429
1693
|
onFocus: function onFocus() {
|
|
1430
1694
|
if (!isOpen && openOnFocus) openMenu();
|
|
@@ -1435,57 +1699,345 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1435
1699
|
},
|
|
1436
1700
|
ref: inputRef
|
|
1437
1701
|
})))), React__default["default"].createElement(DropdownList, {
|
|
1438
|
-
selectedItem:
|
|
1702
|
+
selectedItems: selectedItem !== null ? [selectedItem] : [],
|
|
1439
1703
|
isOpen: isOpen,
|
|
1440
|
-
|
|
1704
|
+
listItems: listItems,
|
|
1441
1705
|
highlightedIndex: highlightedIndex,
|
|
1442
1706
|
listStyle: listStyle,
|
|
1443
1707
|
getMenuProps: getMenuProps,
|
|
1444
|
-
getItemProps: getItemProps
|
|
1708
|
+
getItemProps: getItemProps,
|
|
1709
|
+
loading: loading
|
|
1445
1710
|
}));
|
|
1446
1711
|
};
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1712
|
+
|
|
1713
|
+
var _excluded$1 = ["ariaLabelRemoveSelected", "className", "clearable", "debounceTimeout", "feedback", "hideSelectAll", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectAllLabel", "selectedItems", "selectOnBlur", "style", "variant"];
|
|
1714
|
+
var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
1715
|
+
var _ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1716
|
+
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1717
|
+
className = _ref.className,
|
|
1718
|
+
_ref$clearable = _ref.clearable,
|
|
1719
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1720
|
+
feedback = _ref.feedback,
|
|
1721
|
+
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1722
|
+
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1723
|
+
initialItems = _ref.items,
|
|
1724
|
+
label = _ref.label,
|
|
1725
|
+
listStyle = _ref.listStyle,
|
|
1726
|
+
onChange = _ref.onChange,
|
|
1727
|
+
_ref$openOnFocus = _ref.openOnFocus,
|
|
1728
|
+
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1729
|
+
placeholder = _ref.placeholder,
|
|
1730
|
+
_ref$readonly = _ref.readonly,
|
|
1731
|
+
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1732
|
+
_ref$selectAllLabel = _ref.selectAllLabel,
|
|
1733
|
+
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
|
|
1734
|
+
selectedItems = _ref.selectedItems,
|
|
1735
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1736
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1737
|
+
style = _ref.style,
|
|
1738
|
+
_ref$variant = _ref.variant,
|
|
1739
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1740
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
1741
|
+
var _React$useState = React__default["default"].useState(0),
|
|
1742
|
+
lastHighlightedIndex = _React$useState[0],
|
|
1743
|
+
setLastHighlightedIndex = _React$useState[1];
|
|
1744
|
+
var inputRef = React.useRef(null);
|
|
1745
|
+
var _useResolvedItems = useResolvedItems(initialItems),
|
|
1746
|
+
normalizedItems = _useResolvedItems.items,
|
|
1747
|
+
loading = _useResolvedItems.loading,
|
|
1748
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1749
|
+
var selectAll = {
|
|
1750
|
+
value: utils.useRandomId('select-all'),
|
|
1751
|
+
label: selectAllLabel
|
|
1752
|
+
};
|
|
1753
|
+
var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1754
|
+
listItems = _useState[0],
|
|
1755
|
+
setListItems = _useState[1];
|
|
1756
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1757
|
+
var inputValue = _ref2.inputValue;
|
|
1758
|
+
return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
|
|
1759
|
+
return lowerCaseFilterTest(item, inputValue);
|
|
1760
|
+
})));
|
|
1761
|
+
};
|
|
1762
|
+
React__default["default"].useEffect(function () {
|
|
1763
|
+
filterListItems({
|
|
1764
|
+
inputValue: inputValue
|
|
1765
|
+
});
|
|
1766
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1767
|
+
var _useMultiselectUtils = useMultiselectUtils({
|
|
1768
|
+
listItems: listItems,
|
|
1769
|
+
selectAllValue: selectAll.value,
|
|
1770
|
+
selectedItems: selectedItems
|
|
1771
|
+
}),
|
|
1772
|
+
addClickedItemToSelectedItems = _useMultiselectUtils.addClickedItemToSelectedItems,
|
|
1773
|
+
allListItemsAreSelected = _useMultiselectUtils.allListItemsAreSelected,
|
|
1774
|
+
clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
|
|
1775
|
+
clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll,
|
|
1776
|
+
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1777
|
+
removeClickedItemFromSelectedItems = _useMultiselectUtils.removeClickedItemFromSelectedItems,
|
|
1778
|
+
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
|
|
1779
|
+
selectAllUnselectedItemsInListItems = _useMultiselectUtils.selectAllUnselectedItemsInListItems,
|
|
1780
|
+
unselectAllListItems = _useMultiselectUtils.unselectAllListItems;
|
|
1781
|
+
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1782
|
+
selectedItems: selectedItems,
|
|
1783
|
+
itemToString: itemToString,
|
|
1784
|
+
onSelectedItemsChange: function onSelectedItemsChange(changes) {
|
|
1785
|
+
var _changes$selectedItem;
|
|
1786
|
+
onChange((_changes$selectedItem = changes.selectedItems) != null ? _changes$selectedItem : []);
|
|
1787
|
+
}
|
|
1788
|
+
}),
|
|
1789
|
+
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1790
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1791
|
+
removeSelectedItem = _useMultipleSelection.removeSelectedItem;
|
|
1792
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
|
|
1793
|
+
var _inputRef$current$val, _inputRef$current, _inputRef$current$val2, _inputRef$current2, _changes$inputValue, _changes$inputValue2, _changes$inputValue3;
|
|
1794
|
+
var changes = _ref3.changes,
|
|
1795
|
+
type = _ref3.type;
|
|
1796
|
+
if (changes != null && changes.highlightedIndex && (changes == null ? void 0 : changes.highlightedIndex) >= 0) setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1797
|
+
switch (type) {
|
|
1798
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1799
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1800
|
+
return _extends({}, changes, {
|
|
1801
|
+
isOpen: true,
|
|
1802
|
+
inputValue: (_inputRef$current$val = inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : '' // don't reset input value on select
|
|
1803
|
+
});
|
|
1804
|
+
|
|
1805
|
+
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1806
|
+
return _extends({}, changes, {
|
|
1807
|
+
inputValue: (_inputRef$current$val2 = inputRef == null ? void 0 : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : '' // don't reset input value on select
|
|
1808
|
+
});
|
|
1809
|
+
|
|
1810
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1811
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(/^\s+/g)) {
|
|
1812
|
+
var _changes$inputValue$r;
|
|
1813
|
+
// remove leading whitespace if it exists
|
|
1814
|
+
return _extends({}, changes, {
|
|
1815
|
+
inputValue: (_changes$inputValue$r = changes.inputValue.replace(/^\s+/g, '')) != null ? _changes$inputValue$r : ''
|
|
1816
|
+
});
|
|
1817
|
+
}
|
|
1818
|
+
if (typeof initialItems === 'function') fetchItems((_changes$inputValue2 = changes.inputValue) != null ? _changes$inputValue2 : ''); // fetch items only if user provides a function as items
|
|
1819
|
+
filterListItems({
|
|
1820
|
+
inputValue: (_changes$inputValue3 = changes.inputValue) != null ? _changes$inputValue3 : ''
|
|
1821
|
+
});
|
|
1822
|
+
return changes;
|
|
1823
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1824
|
+
return _extends({}, changes, {
|
|
1825
|
+
inputValue: ''
|
|
1826
|
+
});
|
|
1827
|
+
default:
|
|
1828
|
+
return changes;
|
|
1465
1829
|
}
|
|
1466
|
-
},
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1830
|
+
}, [hideSelectAll, normalizedItems, filterListItems, initialItems]);
|
|
1831
|
+
var _useCombobox = Downshift.useCombobox(_extends({
|
|
1832
|
+
defaultHighlightedIndex: lastHighlightedIndex,
|
|
1833
|
+
items: listItems,
|
|
1834
|
+
itemToString: itemToString,
|
|
1835
|
+
selectedItem: null,
|
|
1836
|
+
stateReducer: stateReducer,
|
|
1837
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1838
|
+
var type = _ref4.type,
|
|
1839
|
+
clickedItem = _ref4.selectedItem;
|
|
1840
|
+
// clickedItem means item chosen either via mouse or keyboard
|
|
1841
|
+
if (!clickedItem) return;
|
|
1842
|
+
switch (type) {
|
|
1843
|
+
// @ts-expect-error This falltrough is wanted
|
|
1844
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1845
|
+
if (!selectOnBlur) break;
|
|
1846
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1847
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1848
|
+
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1849
|
+
if (allListItemsAreSelected) {
|
|
1850
|
+
return unselectAllListItems(onChange);
|
|
1851
|
+
}
|
|
1852
|
+
return selectAllUnselectedItemsInListItems(onChange);
|
|
1853
|
+
}
|
|
1854
|
+
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1855
|
+
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1856
|
+
}
|
|
1857
|
+
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
1858
|
+
}
|
|
1859
|
+
}
|
|
1860
|
+
}, rest)),
|
|
1861
|
+
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1862
|
+
getInputProps = _useCombobox.getInputProps,
|
|
1863
|
+
getItemProps = _useCombobox.getItemProps,
|
|
1864
|
+
getLabelProps = _useCombobox.getLabelProps,
|
|
1865
|
+
getMenuProps = _useCombobox.getMenuProps,
|
|
1866
|
+
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1867
|
+
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1868
|
+
inputValue = _useCombobox.inputValue,
|
|
1869
|
+
isOpen = _useCombobox.isOpen,
|
|
1870
|
+
openMenu = _useCombobox.openMenu,
|
|
1871
|
+
setInputValue = _useCombobox.setInputValue;
|
|
1872
|
+
// role=combobox leads to strange VoiceOver behavior and is therefor omitted
|
|
1873
|
+
// const { role: _, ...comboboxProps } = getComboboxProps();
|
|
1874
|
+
var _getComboboxProps = getComboboxProps(),
|
|
1875
|
+
comboboxProps = _extends({}, (_objectDestructuringEmpty(_getComboboxProps), _getComboboxProps));
|
|
1876
|
+
return React__default["default"].createElement("div", {
|
|
1877
|
+
className: "eds-dropdown__wrapper"
|
|
1878
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1879
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1880
|
+
selectedItems: selectedItems,
|
|
1881
|
+
isOpen: isOpen,
|
|
1882
|
+
clearable: clearable,
|
|
1883
|
+
loading: loading,
|
|
1884
|
+
loadingText: '',
|
|
1885
|
+
readOnly: readonly,
|
|
1886
|
+
onClear: function onClear() {
|
|
1887
|
+
var _inputRef$current3;
|
|
1888
|
+
onChange([]);
|
|
1889
|
+
setInputValue('');
|
|
1890
|
+
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
|
|
1891
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
|
|
1892
|
+
},
|
|
1893
|
+
getToggleButtonProps: getToggleButtonProps
|
|
1894
|
+
}),
|
|
1895
|
+
className: classNames__default["default"]('eds-dropdown', className),
|
|
1896
|
+
label: label,
|
|
1897
|
+
isFilled: hasSelectedItems || inputValue !== '',
|
|
1898
|
+
feedback: feedback,
|
|
1899
|
+
variant: variant,
|
|
1900
|
+
readOnly: readonly,
|
|
1901
|
+
style: style,
|
|
1902
|
+
labelProps: _extends({
|
|
1903
|
+
'aria-label': label + ", multiselect, " + selectedItems.length + " valgte elementer"
|
|
1904
|
+
}, getLabelProps())
|
|
1905
|
+
}, comboboxProps, rest), React__default["default"].createElement("div", {
|
|
1906
|
+
className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
|
|
1907
|
+
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
1908
|
+
}),
|
|
1909
|
+
onClick: function onClick(e) {
|
|
1910
|
+
var _inputRef$current4;
|
|
1911
|
+
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
1472
1912
|
}
|
|
1473
|
-
},
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
}), React__default["default"].createElement(
|
|
1913
|
+
}, selectedItems.map(function (selectedItem, index) {
|
|
1914
|
+
return React__default["default"].createElement(SelectedElementsTag, {
|
|
1915
|
+
index: index,
|
|
1916
|
+
key: selectedItem.value,
|
|
1917
|
+
getSelectedItemProps: getSelectedItemProps,
|
|
1918
|
+
selectedItem: selectedItem,
|
|
1919
|
+
removeSelectedItem: removeSelectedItem,
|
|
1920
|
+
ariaLabelRemoveSelected: ariaLabelRemoveSelected
|
|
1921
|
+
});
|
|
1922
|
+
}), React__default["default"].createElement("input", _extends({
|
|
1923
|
+
placeholder: placeholder,
|
|
1924
|
+
className: "eds-dropdown__input eds-form-control",
|
|
1925
|
+
role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
|
|
1926
|
+
}, getInputProps(getDropdownProps({
|
|
1927
|
+
preventKeyAction: isOpen,
|
|
1928
|
+
onFocus: function onFocus() {
|
|
1929
|
+
if (!isOpen && openOnFocus) openMenu();
|
|
1930
|
+
},
|
|
1931
|
+
ref: inputRef,
|
|
1932
|
+
value: inputValue != null ? inputValue : ''
|
|
1933
|
+
})))))), React__default["default"].createElement(DropdownList, {
|
|
1934
|
+
listItems: listItems,
|
|
1935
|
+
selectedItems: selectedItems,
|
|
1936
|
+
inputValue: inputValue,
|
|
1937
|
+
isOpen: isOpen,
|
|
1938
|
+
highlightedIndex: highlightedIndex,
|
|
1939
|
+
getMenuProps: getMenuProps,
|
|
1940
|
+
getItemProps: getItemProps,
|
|
1941
|
+
selectAllItem: selectAll,
|
|
1942
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
1943
|
+
listStyle: listStyle,
|
|
1944
|
+
loading: loading
|
|
1945
|
+
}));
|
|
1946
|
+
};
|
|
1947
|
+
|
|
1948
|
+
var _excluded = ["className", "clearable", "debounceTimeout", "feedback", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "selectOnTab", "variant"];
|
|
1949
|
+
var DropdownBeta = function DropdownBeta(_ref) {
|
|
1950
|
+
var _selectedItem$label;
|
|
1951
|
+
var className = _ref.className,
|
|
1952
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1953
|
+
feedback = _ref.feedback,
|
|
1954
|
+
initialItems = _ref.items,
|
|
1955
|
+
label = _ref.label,
|
|
1956
|
+
listStyle = _ref.listStyle,
|
|
1957
|
+
onChange = _ref.onChange,
|
|
1958
|
+
_ref$readonly = _ref.readonly,
|
|
1959
|
+
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1960
|
+
selectedItem = _ref.selectedItem,
|
|
1961
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1962
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1963
|
+
_ref$variant = _ref.variant,
|
|
1964
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1965
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1966
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1967
|
+
normalizedItems = _useResolvedItems.items,
|
|
1968
|
+
loading = _useResolvedItems.loading;
|
|
1969
|
+
var _useSelect = Downshift.useSelect({
|
|
1970
|
+
items: normalizedItems,
|
|
1971
|
+
selectedItem: selectedItem,
|
|
1972
|
+
onStateChange: function onStateChange(_ref2) {
|
|
1973
|
+
var type = _ref2.type,
|
|
1974
|
+
clickedItem = _ref2.selectedItem;
|
|
1975
|
+
switch (type) {
|
|
1976
|
+
// @ts-expect-error This falltrough is wanted
|
|
1977
|
+
case Downshift.useSelect.stateChangeTypes.InputBlur:
|
|
1978
|
+
if (!selectOnBlur) break;
|
|
1979
|
+
case Downshift.useSelect.stateChangeTypes.MenuKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1980
|
+
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
1981
|
+
onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
|
|
1982
|
+
}
|
|
1983
|
+
},
|
|
1984
|
+
itemToString: itemToString
|
|
1985
|
+
}),
|
|
1986
|
+
isOpen = _useSelect.isOpen,
|
|
1987
|
+
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
1988
|
+
getLabelProps = _useSelect.getLabelProps,
|
|
1989
|
+
getMenuProps = _useSelect.getMenuProps,
|
|
1990
|
+
highlightedIndex = _useSelect.highlightedIndex,
|
|
1991
|
+
getItemProps = _useSelect.getItemProps;
|
|
1992
|
+
return React__default["default"].createElement("div", {
|
|
1993
|
+
className: "eds-dropdown__wrapper"
|
|
1994
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1995
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1996
|
+
selectedItems: [selectedItem],
|
|
1997
|
+
isOpen: isOpen,
|
|
1998
|
+
clearable: true,
|
|
1999
|
+
loading: loading,
|
|
2000
|
+
loadingText: '',
|
|
2001
|
+
readOnly: readonly,
|
|
2002
|
+
onClear: function onClear() {
|
|
2003
|
+
onChange == null ? void 0 : onChange(null);
|
|
2004
|
+
},
|
|
2005
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
2006
|
+
clearSelectedItemsLabel: "Fjern valgt",
|
|
2007
|
+
ariaLabelClearItems: (selectedItem == null ? void 0 : selectedItem.label) + " valgt, trykk for \xE5 fjerne valget",
|
|
2008
|
+
focusable: true
|
|
2009
|
+
}),
|
|
2010
|
+
className: classNames__default["default"]('eds-dropdown', className, {
|
|
2011
|
+
'eds-dropdown--not-filled': selectedItem === null
|
|
2012
|
+
}),
|
|
2013
|
+
label: label,
|
|
2014
|
+
labelId: getLabelProps().id,
|
|
2015
|
+
labelProps: getLabelProps(),
|
|
2016
|
+
disableLabelAnimation: true,
|
|
2017
|
+
isFilled: selectedItem !== null,
|
|
2018
|
+
feedback: feedback,
|
|
2019
|
+
variant: variant,
|
|
2020
|
+
readOnly: readonly
|
|
2021
|
+
}, rest), React__default["default"].createElement("div", _extends({
|
|
2022
|
+
className: "eds-dropdown__selected-item-button"
|
|
2023
|
+
}, getToggleButtonProps()), (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : '')), React__default["default"].createElement(DropdownList, {
|
|
2024
|
+
selectedItems: selectedItem !== null ? [selectedItem] : [],
|
|
2025
|
+
isOpen: isOpen,
|
|
2026
|
+
listItems: normalizedItems,
|
|
2027
|
+
highlightedIndex: highlightedIndex,
|
|
2028
|
+
listStyle: listStyle,
|
|
2029
|
+
getMenuProps: getMenuProps,
|
|
2030
|
+
getItemProps: getItemProps,
|
|
2031
|
+
loading: loading
|
|
2032
|
+
}));
|
|
1483
2033
|
};
|
|
1484
2034
|
|
|
1485
2035
|
utils.warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
|
|
1486
2036
|
|
|
1487
2037
|
exports.Dropdown = Dropdown;
|
|
2038
|
+
exports.DropdownBeta = DropdownBeta;
|
|
1488
2039
|
exports.MultiSelect = MultiSelect;
|
|
2040
|
+
exports.MultiSelectBeta = MultiSelectBeta;
|
|
1489
2041
|
exports.NativeDropdown = NativeDropdown;
|
|
1490
2042
|
exports.SearchableDropdownBeta = SearchableDropdownBeta;
|
|
1491
2043
|
//# sourceMappingURL=dropdown.cjs.development.js.map
|