@entur/dropdown 4.0.10 → 5.0.0-beta.1
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 +709 -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 +710 -158
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/styles.css +199 -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,93 @@ 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
|
+
className: "eds-dropdown__list__item__checkbox",
|
|
1308
|
+
checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
|
|
1309
|
+
"aria-hidden": "true",
|
|
1310
|
+
onChange: function onChange() {
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1313
|
+
}), React__default["default"].createElement("span", {
|
|
1314
|
+
className: "eds-dropdown__list__item__text"
|
|
1315
|
+
}, selectAllItem == null ? void 0 : selectAllItem.label));
|
|
1316
|
+
};
|
|
1317
|
+
var listItemContent = function listItemContent(item) {
|
|
1318
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1319
|
+
style: !isMultiselect ? {
|
|
1320
|
+
display: 'none'
|
|
1321
|
+
} : {},
|
|
1322
|
+
className: "eds-dropdown__list__item__checkbox",
|
|
1323
|
+
checked: itemIsSelected(item),
|
|
1324
|
+
"aria-hidden": "true",
|
|
1325
|
+
onChange: function onChange() {
|
|
1326
|
+
return;
|
|
1327
|
+
}
|
|
1328
|
+
}), React__default["default"].createElement("span", {
|
|
1329
|
+
className: "eds-dropdown__list__item__text"
|
|
1330
|
+
}, item.label, React__default["default"].createElement(a11y.VisuallyHidden, null, selectedItemAriaLabel)), item.icons && React__default["default"].createElement("span", null, item.icons.map(function (Icon, index) {
|
|
1331
|
+
return React__default["default"].createElement(Icon, {
|
|
1332
|
+
key: index,
|
|
1333
|
+
inline: true,
|
|
1334
|
+
className: "eds-dropdown__list__item__icon"
|
|
1335
|
+
});
|
|
1336
|
+
})));
|
|
1337
|
+
};
|
|
1338
|
+
return React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
|
|
1339
|
+
className: classNames__default["default"]('eds-dropdown__list', {
|
|
1340
|
+
'eds-dropdown__list--open': isOpen
|
|
1341
|
+
}),
|
|
1291
1342
|
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);
|
|
1343
|
+
}), isOpen && listItems.length > 0 && listItems.map(function (item, index) {
|
|
1344
|
+
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1345
|
+
if (itemIsSelectAll && listItems.length <= 2) return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
1346
|
+
return React__default["default"].createElement("li", _extends({
|
|
1347
|
+
key: item.value,
|
|
1348
|
+
className: classNames__default["default"]('eds-dropdown__list__item', {
|
|
1349
|
+
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1350
|
+
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1351
|
+
'eds-dropdown__list__item--selected': !isMultiselect && itemIsSelected(item)
|
|
1352
|
+
})
|
|
1353
|
+
}, getItemProps({
|
|
1354
|
+
key: "" + index + item.value,
|
|
1355
|
+
item: item,
|
|
1356
|
+
index: index
|
|
1357
|
+
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
1358
|
+
}), isOpen && isNoMatches && React__default["default"].createElement("li", {
|
|
1359
|
+
className: "eds-dropdown__list__item"
|
|
1360
|
+
}, noMatchesText), isOpen && loading && React__default["default"].createElement("li", {
|
|
1361
|
+
className: "eds-dropdown__list__item"
|
|
1362
|
+
}, loadingText));
|
|
1313
1363
|
};
|
|
1314
1364
|
|
|
1315
|
-
var _excluded = ["items", "selectedItem", "onChange", "label", "placeholder", "clearable", "openOnFocus", "readonly", "feedback", "variant", "className", "listStyle"];
|
|
1316
1365
|
function lowerCaseFilterTest(item, input) {
|
|
1317
1366
|
if (!input) {
|
|
1318
1367
|
return true;
|
|
@@ -1321,69 +1370,279 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1321
1370
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1322
1371
|
return inputRegex.test(item.label);
|
|
1323
1372
|
}
|
|
1373
|
+
var itemToString = function itemToString(item) {
|
|
1374
|
+
return item ? item.label : '';
|
|
1375
|
+
};
|
|
1376
|
+
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1377
|
+
var listItems = _ref.listItems,
|
|
1378
|
+
selectedItems = _ref.selectedItems,
|
|
1379
|
+
selectAllValue = _ref.selectAllValue;
|
|
1380
|
+
var hasSelectedItems = selectedItems.length > 0;
|
|
1381
|
+
var listItemsWithoutSelectAll = listItems.filter(function (item) {
|
|
1382
|
+
return item.value !== selectAllValue;
|
|
1383
|
+
});
|
|
1384
|
+
var allListItemsAreSelected = listItemsWithoutSelectAll.filter(function (item) {
|
|
1385
|
+
return !selectedItems.includes(item);
|
|
1386
|
+
}).length === 0;
|
|
1387
|
+
var someListItemsAreSelected = listItemsWithoutSelectAll.some(function (item) {
|
|
1388
|
+
return selectedItems.includes(item);
|
|
1389
|
+
});
|
|
1390
|
+
var addClickedItemToSelectedItems = function addClickedItemToSelectedItems(clickedItem, onChange) {
|
|
1391
|
+
return onChange([].concat(selectedItems, [clickedItem]));
|
|
1392
|
+
};
|
|
1393
|
+
var clickedItemIsInSelectedItems = function clickedItemIsInSelectedItems(clickedItem) {
|
|
1394
|
+
return selectedItems.some(function (selectedItem) {
|
|
1395
|
+
return selectedItem.value === clickedItem.value;
|
|
1396
|
+
});
|
|
1397
|
+
};
|
|
1398
|
+
var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
|
|
1399
|
+
return clickedItem.value === selectAllValue;
|
|
1400
|
+
};
|
|
1401
|
+
var removeClickedItemFromSelectedItems = function removeClickedItemFromSelectedItems(clickedItem, onChange) {
|
|
1402
|
+
return onChange(selectedItems.filter(function (selectedItem) {
|
|
1403
|
+
return selectedItem.value !== clickedItem.value;
|
|
1404
|
+
}));
|
|
1405
|
+
};
|
|
1406
|
+
var selectAllCheckboxState = function selectAllCheckboxState() {
|
|
1407
|
+
if (allListItemsAreSelected) return true;
|
|
1408
|
+
if (someListItemsAreSelected) return 'indeterminate';
|
|
1409
|
+
return false;
|
|
1410
|
+
};
|
|
1411
|
+
var selectAllUnselectedItemsInListItems = function selectAllUnselectedItemsInListItems(onChange) {
|
|
1412
|
+
onChange([].concat(selectedItems, listItemsWithoutSelectAll.filter(function (item) {
|
|
1413
|
+
return !selectedItems.includes(item);
|
|
1414
|
+
})));
|
|
1415
|
+
};
|
|
1416
|
+
var unselectAllListItems = function unselectAllListItems(onChange) {
|
|
1417
|
+
onChange(selectedItems.filter(function (item) {
|
|
1418
|
+
return !listItemsWithoutSelectAll.includes(item);
|
|
1419
|
+
}));
|
|
1420
|
+
};
|
|
1421
|
+
return {
|
|
1422
|
+
addClickedItemToSelectedItems: addClickedItemToSelectedItems,
|
|
1423
|
+
allListItemsAreSelected: allListItemsAreSelected,
|
|
1424
|
+
clickedItemIsInSelectedItems: clickedItemIsInSelectedItems,
|
|
1425
|
+
clickedItemIsSelectAll: clickedItemIsSelectAll,
|
|
1426
|
+
hasSelectedItems: hasSelectedItems,
|
|
1427
|
+
listItemsWithoutSelectAll: listItemsWithoutSelectAll,
|
|
1428
|
+
removeClickedItemFromSelectedItems: removeClickedItemFromSelectedItems,
|
|
1429
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
1430
|
+
selectAllUnselectedItemsInListItems: selectAllUnselectedItemsInListItems,
|
|
1431
|
+
someListItemsAreSelected: someListItemsAreSelected,
|
|
1432
|
+
unselectAllListItems: unselectAllListItems
|
|
1433
|
+
};
|
|
1434
|
+
};
|
|
1435
|
+
|
|
1436
|
+
var _excluded$3 = ["tabIndex"];
|
|
1437
|
+
var SelectedElementsTag = function SelectedElementsTag(_ref) {
|
|
1438
|
+
var getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1439
|
+
removeSelectedItem = _ref.removeSelectedItem,
|
|
1440
|
+
selectedItem = _ref.selectedItem,
|
|
1441
|
+
index = _ref.index,
|
|
1442
|
+
ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected;
|
|
1443
|
+
var _getSelectedItemProps = getSelectedItemProps({
|
|
1444
|
+
selectedItem: selectedItem,
|
|
1445
|
+
index: index
|
|
1446
|
+
}),
|
|
1447
|
+
selectedItemProps = _objectWithoutPropertiesLoose(_getSelectedItemProps, _excluded$3);
|
|
1448
|
+
return React__default["default"].createElement(chip.TagChip, _extends({
|
|
1449
|
+
className: classNames__default["default"]('eds-dropdown__selected-element-tag')
|
|
1450
|
+
}, selectedItemProps, {
|
|
1451
|
+
onClose: function onClose(e) {
|
|
1452
|
+
e.stopPropagation();
|
|
1453
|
+
removeSelectedItem(selectedItem);
|
|
1454
|
+
},
|
|
1455
|
+
closeButtonAriaLabel: selectedItem.label + ", " + ariaLabelRemoveSelected + " ",
|
|
1456
|
+
key: selectedItem.value
|
|
1457
|
+
}), React__default["default"].createElement("span", {
|
|
1458
|
+
"aria-hidden": "true"
|
|
1459
|
+
}, selectedItem.label));
|
|
1460
|
+
};
|
|
1461
|
+
var FieldAppend = function FieldAppend(_ref2) {
|
|
1462
|
+
var clearable = _ref2.clearable,
|
|
1463
|
+
readOnly = _ref2.readOnly,
|
|
1464
|
+
getToggleButtonProps = _ref2.getToggleButtonProps,
|
|
1465
|
+
selectedItems = _ref2.selectedItems,
|
|
1466
|
+
_ref2$loading = _ref2.loading,
|
|
1467
|
+
loading = _ref2$loading === void 0 ? false : _ref2$loading,
|
|
1468
|
+
_ref2$loadingText = _ref2.loadingText,
|
|
1469
|
+
loadingText = _ref2$loadingText === void 0 ? 'Laster resultater …' : _ref2$loadingText,
|
|
1470
|
+
ariaLabelClearItems = _ref2.ariaLabelClearItems,
|
|
1471
|
+
clearSelectedItemsLabel = _ref2.clearSelectedItemsLabel,
|
|
1472
|
+
isOpen = _ref2.isOpen,
|
|
1473
|
+
onClear = _ref2.onClear,
|
|
1474
|
+
_ref2$focusable = _ref2.focusable,
|
|
1475
|
+
focusable = _ref2$focusable === void 0 ? false : _ref2$focusable;
|
|
1476
|
+
if (loading) {
|
|
1477
|
+
return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
|
|
1478
|
+
}
|
|
1479
|
+
if (readOnly) {
|
|
1480
|
+
return null;
|
|
1481
|
+
}
|
|
1482
|
+
return React__default["default"].createElement("div", {
|
|
1483
|
+
className: "eds-dropdown-appendix"
|
|
1484
|
+
}, 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, {
|
|
1485
|
+
onClear: onClear,
|
|
1486
|
+
focusable: focusable,
|
|
1487
|
+
clearSelectedItemsLabel: clearSelectedItemsLabel,
|
|
1488
|
+
ariaLabelClearItems: ariaLabelClearItems
|
|
1489
|
+
}), React__default["default"].createElement("div", {
|
|
1490
|
+
className: "eds-dropdown-appendix__divider"
|
|
1491
|
+
})), React__default["default"].createElement(ToggleButton, {
|
|
1492
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
1493
|
+
isOpen: isOpen,
|
|
1494
|
+
focusable: focusable
|
|
1495
|
+
}));
|
|
1496
|
+
};
|
|
1497
|
+
var ClearableButton = function ClearableButton(_ref3) {
|
|
1498
|
+
var onClear = _ref3.onClear,
|
|
1499
|
+
_ref3$clearSelectedIt = _ref3.clearSelectedItemsLabel,
|
|
1500
|
+
clearSelectedItemsLabel = _ref3$clearSelectedIt === void 0 ? 'Fjern valgte' : _ref3$clearSelectedIt,
|
|
1501
|
+
_ref3$ariaLabelClearI = _ref3.ariaLabelClearItems,
|
|
1502
|
+
ariaLabelClearItems = _ref3$ariaLabelClearI === void 0 ? 'Fjern valgte' : _ref3$ariaLabelClearI,
|
|
1503
|
+
_ref3$focusable = _ref3.focusable,
|
|
1504
|
+
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable;
|
|
1505
|
+
return React__default["default"].createElement(tooltip.Tooltip, {
|
|
1506
|
+
"aria-hidden": "true",
|
|
1507
|
+
placement: "right",
|
|
1508
|
+
content: clearSelectedItemsLabel
|
|
1509
|
+
}, React__default["default"].createElement(button.IconButton, {
|
|
1510
|
+
className: "eds-dropdown-appendix__clear-button",
|
|
1511
|
+
type: "button",
|
|
1512
|
+
tabIndex: focusable ? 0 : 1,
|
|
1513
|
+
onClick: onClear,
|
|
1514
|
+
"aria-label": ariaLabelClearItems
|
|
1515
|
+
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1516
|
+
"aria-hidden": "true"
|
|
1517
|
+
})));
|
|
1518
|
+
};
|
|
1519
|
+
var ToggleButton = function ToggleButton(_ref4) {
|
|
1520
|
+
var getToggleButtonProps = _ref4.getToggleButtonProps,
|
|
1521
|
+
isOpen = _ref4.isOpen,
|
|
1522
|
+
_ref4$closeAriaLabel = _ref4.closeAriaLabel,
|
|
1523
|
+
closeAriaLabel = _ref4$closeAriaLabel === void 0 ? 'Lukk liste med valg' : _ref4$closeAriaLabel,
|
|
1524
|
+
_ref4$openAriaLabel = _ref4.openAriaLabel,
|
|
1525
|
+
openAriaLabel = _ref4$openAriaLabel === void 0 ? 'Åpne liste med valg' : _ref4$openAriaLabel,
|
|
1526
|
+
_ref4$focusable = _ref4.focusable,
|
|
1527
|
+
focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
|
|
1528
|
+
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1529
|
+
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1530
|
+
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1531
|
+
})
|
|
1532
|
+
}), {
|
|
1533
|
+
"aria-label": isOpen ? closeAriaLabel : openAriaLabel,
|
|
1534
|
+
tabIndex: focusable ? 0 : 1,
|
|
1535
|
+
type: "button"
|
|
1536
|
+
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1537
|
+
"aria-hidden": "true"
|
|
1538
|
+
}));
|
|
1539
|
+
};
|
|
1540
|
+
|
|
1541
|
+
var _excluded$2 = ["className", "clearable", "debounceTimeout", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "variant"];
|
|
1324
1542
|
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
1325
1543
|
// TODO Husk å generelt legge inn støtte for typeof value === string
|
|
1326
1544
|
var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
1327
1545
|
var _selectedItem$label;
|
|
1328
|
-
var
|
|
1329
|
-
value = _ref.selectedItem,
|
|
1330
|
-
onChange = _ref.onChange,
|
|
1331
|
-
label = _ref.label,
|
|
1332
|
-
placeholder = _ref.placeholder,
|
|
1546
|
+
var className = _ref.className,
|
|
1333
1547
|
_ref$clearable = _ref.clearable,
|
|
1334
1548
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1549
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1550
|
+
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1551
|
+
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1552
|
+
feedback = _ref.feedback,
|
|
1553
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1554
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1555
|
+
initialItems = _ref.items,
|
|
1556
|
+
label = _ref.label,
|
|
1557
|
+
listStyle = _ref.listStyle,
|
|
1558
|
+
onChange = _ref.onChange,
|
|
1335
1559
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1336
1560
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1561
|
+
placeholder = _ref.placeholder,
|
|
1337
1562
|
_ref$readonly = _ref.readonly,
|
|
1338
1563
|
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1339
|
-
|
|
1564
|
+
value = _ref.selectedItem,
|
|
1565
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1566
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1340
1567
|
_ref$variant = _ref.variant,
|
|
1341
1568
|
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];
|
|
1569
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1348
1570
|
var _useState = React.useState(false),
|
|
1349
1571
|
hideSelectedItem = _useState[0],
|
|
1350
1572
|
setHideSelectedItem = _useState[1];
|
|
1351
1573
|
var inputRef = React.useRef(null);
|
|
1352
|
-
var
|
|
1353
|
-
|
|
1354
|
-
|
|
1574
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1575
|
+
normalizedItems = _useResolvedItems.items,
|
|
1576
|
+
loading = _useResolvedItems.loading,
|
|
1577
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1578
|
+
var _React$useState = React__default["default"].useState(normalizedItems),
|
|
1579
|
+
listItems = _React$useState[0],
|
|
1580
|
+
setListItems = _React$useState[1];
|
|
1581
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1582
|
+
var inputValue = _ref2.inputValue;
|
|
1583
|
+
return setListItems(normalizedItems.filter(function (item) {
|
|
1584
|
+
return itemFilter(item, inputValue);
|
|
1585
|
+
}));
|
|
1586
|
+
};
|
|
1587
|
+
React__default["default"].useEffect(function () {
|
|
1588
|
+
filterListItems({
|
|
1589
|
+
inputValue: inputValue
|
|
1590
|
+
});
|
|
1591
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1592
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
|
|
1593
|
+
var type = _ref3.type,
|
|
1594
|
+
changes = _ref3.changes;
|
|
1355
1595
|
switch (type) {
|
|
1356
1596
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1357
1597
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1358
1598
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1359
1599
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1600
|
+
{
|
|
1601
|
+
filterListItems({
|
|
1602
|
+
inputValue: ''
|
|
1603
|
+
});
|
|
1604
|
+
return _extends({}, changes, {
|
|
1605
|
+
inputValue: '' // reset input value to show placeholder on focus
|
|
1606
|
+
});
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1610
|
+
{
|
|
1611
|
+
var _changes$inputValue;
|
|
1612
|
+
var leadingWhitespaceTest = /^\s+/g;
|
|
1613
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) setInputValue(changes.inputValue.replace(leadingWhitespaceTest, ''));else {
|
|
1614
|
+
var _changes$inputValue2, _changes$inputValue3;
|
|
1615
|
+
fetchItems((_changes$inputValue2 = changes.inputValue) != null ? _changes$inputValue2 : '');
|
|
1616
|
+
filterListItems({
|
|
1617
|
+
inputValue: (_changes$inputValue3 = changes.inputValue) != null ? _changes$inputValue3 : ''
|
|
1618
|
+
});
|
|
1619
|
+
}
|
|
1620
|
+
return changes;
|
|
1621
|
+
}
|
|
1363
1622
|
default:
|
|
1364
1623
|
return changes;
|
|
1365
1624
|
}
|
|
1366
|
-
}, []);
|
|
1625
|
+
}, [fetchItems, filterListItems]);
|
|
1367
1626
|
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,
|
|
1627
|
+
items: listItems,
|
|
1380
1628
|
selectedItem: value,
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1629
|
+
itemToString: itemToString,
|
|
1630
|
+
stateReducer: stateReducer,
|
|
1631
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1632
|
+
var type = _ref4.type,
|
|
1633
|
+
clickedItem = _ref4.selectedItem;
|
|
1634
|
+
switch (type) {
|
|
1635
|
+
// @ts-expect-error This falltrough is wanted
|
|
1636
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1637
|
+
if (!selectOnBlur) break;
|
|
1638
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1639
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1640
|
+
onChange(clickedItem != null ? clickedItem : null);
|
|
1641
|
+
}
|
|
1384
1642
|
}
|
|
1385
1643
|
}, rest)),
|
|
1386
1644
|
isOpen = _useCombobox.isOpen,
|
|
1645
|
+
openMenu = _useCombobox.openMenu,
|
|
1387
1646
|
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1388
1647
|
getLabelProps = _useCombobox.getLabelProps,
|
|
1389
1648
|
getMenuProps = _useCombobox.getMenuProps,
|
|
@@ -1392,39 +1651,46 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1392
1651
|
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1393
1652
|
getItemProps = _useCombobox.getItemProps,
|
|
1394
1653
|
selectedItem = _useCombobox.selectedItem,
|
|
1395
|
-
|
|
1396
|
-
|
|
1654
|
+
inputValue = _useCombobox.inputValue,
|
|
1655
|
+
setInputValue = _useCombobox.setInputValue;
|
|
1397
1656
|
return React__default["default"].createElement("div", {
|
|
1398
|
-
className: "eds-
|
|
1657
|
+
className: "eds-dropdown__wrapper"
|
|
1399
1658
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1400
|
-
append: React__default["default"].createElement(
|
|
1401
|
-
|
|
1659
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1660
|
+
selectedItems: [selectedItem],
|
|
1402
1661
|
isOpen: isOpen,
|
|
1403
1662
|
clearable: clearable,
|
|
1404
1663
|
loading: false,
|
|
1405
1664
|
loadingText: '',
|
|
1406
1665
|
readOnly: readonly,
|
|
1407
|
-
|
|
1666
|
+
onClear: function onClear() {
|
|
1667
|
+
var _inputRef$current;
|
|
1668
|
+
onChange(null);
|
|
1669
|
+
setInputValue('');
|
|
1670
|
+
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
1671
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
|
|
1672
|
+
},
|
|
1408
1673
|
getToggleButtonProps: getToggleButtonProps
|
|
1409
1674
|
}),
|
|
1410
|
-
|
|
1675
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1676
|
+
className: classNames__default["default"]('eds-dropdown', className),
|
|
1411
1677
|
label: label,
|
|
1412
|
-
isFilled: selectedItem
|
|
1678
|
+
isFilled: selectedItem || inputValue !== '',
|
|
1413
1679
|
feedback: feedback,
|
|
1414
1680
|
variant: variant,
|
|
1415
1681
|
readOnly: readonly,
|
|
1416
1682
|
labelProps: getLabelProps()
|
|
1417
1683
|
}, getComboboxProps(), rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
|
|
1418
|
-
className: "eds-
|
|
1684
|
+
className: "eds-dropdown__selected-item__wrapper"
|
|
1419
1685
|
}, React__default["default"].createElement("span", {
|
|
1420
|
-
className: "eds-
|
|
1686
|
+
className: "eds-dropdown__selected-item",
|
|
1421
1687
|
onClick: function onClick() {
|
|
1422
|
-
var _inputRef$
|
|
1423
|
-
return (_inputRef$
|
|
1688
|
+
var _inputRef$current2;
|
|
1689
|
+
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1424
1690
|
}
|
|
1425
1691
|
}, selectedItem.label)), React__default["default"].createElement("input", _extends({
|
|
1426
1692
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder,
|
|
1427
|
-
className: "eds-
|
|
1693
|
+
className: "eds-dropdown__input eds-form-control"
|
|
1428
1694
|
}, getInputProps({
|
|
1429
1695
|
onFocus: function onFocus() {
|
|
1430
1696
|
if (!isOpen && openOnFocus) openMenu();
|
|
@@ -1435,57 +1701,345 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1435
1701
|
},
|
|
1436
1702
|
ref: inputRef
|
|
1437
1703
|
})))), React__default["default"].createElement(DropdownList, {
|
|
1438
|
-
selectedItem:
|
|
1704
|
+
selectedItems: selectedItem !== null ? [selectedItem] : [],
|
|
1439
1705
|
isOpen: isOpen,
|
|
1440
|
-
|
|
1706
|
+
listItems: listItems,
|
|
1441
1707
|
highlightedIndex: highlightedIndex,
|
|
1442
1708
|
listStyle: listStyle,
|
|
1443
1709
|
getMenuProps: getMenuProps,
|
|
1444
|
-
getItemProps: getItemProps
|
|
1710
|
+
getItemProps: getItemProps,
|
|
1711
|
+
loading: loading
|
|
1445
1712
|
}));
|
|
1446
1713
|
};
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1714
|
+
|
|
1715
|
+
var _excluded$1 = ["ariaLabelRemoveSelected", "className", "clearable", "debounceTimeout", "feedback", "hideSelectAll", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectAllLabel", "selectedItems", "selectOnBlur", "style", "variant"];
|
|
1716
|
+
var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
1717
|
+
var _ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1718
|
+
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1719
|
+
className = _ref.className,
|
|
1720
|
+
_ref$clearable = _ref.clearable,
|
|
1721
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1722
|
+
feedback = _ref.feedback,
|
|
1723
|
+
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1724
|
+
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1725
|
+
initialItems = _ref.items,
|
|
1726
|
+
label = _ref.label,
|
|
1727
|
+
listStyle = _ref.listStyle,
|
|
1728
|
+
onChange = _ref.onChange,
|
|
1729
|
+
_ref$openOnFocus = _ref.openOnFocus,
|
|
1730
|
+
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1731
|
+
placeholder = _ref.placeholder,
|
|
1732
|
+
_ref$readonly = _ref.readonly,
|
|
1733
|
+
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1734
|
+
_ref$selectAllLabel = _ref.selectAllLabel,
|
|
1735
|
+
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
|
|
1736
|
+
selectedItems = _ref.selectedItems,
|
|
1737
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1738
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1739
|
+
style = _ref.style,
|
|
1740
|
+
_ref$variant = _ref.variant,
|
|
1741
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1742
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
1743
|
+
var _React$useState = React__default["default"].useState(0),
|
|
1744
|
+
lastHighlightedIndex = _React$useState[0],
|
|
1745
|
+
setLastHighlightedIndex = _React$useState[1];
|
|
1746
|
+
var inputRef = React.useRef(null);
|
|
1747
|
+
var _useResolvedItems = useResolvedItems(initialItems),
|
|
1748
|
+
normalizedItems = _useResolvedItems.items,
|
|
1749
|
+
loading = _useResolvedItems.loading,
|
|
1750
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1751
|
+
var selectAll = {
|
|
1752
|
+
value: utils.useRandomId('select-all'),
|
|
1753
|
+
label: selectAllLabel
|
|
1754
|
+
};
|
|
1755
|
+
var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1756
|
+
listItems = _useState[0],
|
|
1757
|
+
setListItems = _useState[1];
|
|
1758
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1759
|
+
var inputValue = _ref2.inputValue;
|
|
1760
|
+
return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
|
|
1761
|
+
return lowerCaseFilterTest(item, inputValue);
|
|
1762
|
+
})));
|
|
1763
|
+
};
|
|
1764
|
+
React__default["default"].useEffect(function () {
|
|
1765
|
+
filterListItems({
|
|
1766
|
+
inputValue: inputValue
|
|
1767
|
+
});
|
|
1768
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1769
|
+
var _useMultiselectUtils = useMultiselectUtils({
|
|
1770
|
+
listItems: listItems,
|
|
1771
|
+
selectAllValue: selectAll.value,
|
|
1772
|
+
selectedItems: selectedItems
|
|
1773
|
+
}),
|
|
1774
|
+
addClickedItemToSelectedItems = _useMultiselectUtils.addClickedItemToSelectedItems,
|
|
1775
|
+
allListItemsAreSelected = _useMultiselectUtils.allListItemsAreSelected,
|
|
1776
|
+
clickedItemIsInSelectedItems = _useMultiselectUtils.clickedItemIsInSelectedItems,
|
|
1777
|
+
clickedItemIsSelectAll = _useMultiselectUtils.clickedItemIsSelectAll,
|
|
1778
|
+
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1779
|
+
removeClickedItemFromSelectedItems = _useMultiselectUtils.removeClickedItemFromSelectedItems,
|
|
1780
|
+
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState,
|
|
1781
|
+
selectAllUnselectedItemsInListItems = _useMultiselectUtils.selectAllUnselectedItemsInListItems,
|
|
1782
|
+
unselectAllListItems = _useMultiselectUtils.unselectAllListItems;
|
|
1783
|
+
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1784
|
+
selectedItems: selectedItems,
|
|
1785
|
+
itemToString: itemToString,
|
|
1786
|
+
onSelectedItemsChange: function onSelectedItemsChange(changes) {
|
|
1787
|
+
var _changes$selectedItem;
|
|
1788
|
+
onChange((_changes$selectedItem = changes.selectedItems) != null ? _changes$selectedItem : []);
|
|
1789
|
+
}
|
|
1790
|
+
}),
|
|
1791
|
+
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1792
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1793
|
+
removeSelectedItem = _useMultipleSelection.removeSelectedItem;
|
|
1794
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref3) {
|
|
1795
|
+
var _inputRef$current$val, _inputRef$current, _inputRef$current$val2, _inputRef$current2, _changes$inputValue, _changes$inputValue2, _changes$inputValue3;
|
|
1796
|
+
var changes = _ref3.changes,
|
|
1797
|
+
type = _ref3.type;
|
|
1798
|
+
if (changes != null && changes.highlightedIndex && (changes == null ? void 0 : changes.highlightedIndex) >= 0) setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1799
|
+
switch (type) {
|
|
1800
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1801
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1802
|
+
return _extends({}, changes, {
|
|
1803
|
+
isOpen: true,
|
|
1804
|
+
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
|
|
1805
|
+
});
|
|
1806
|
+
|
|
1807
|
+
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1808
|
+
return _extends({}, changes, {
|
|
1809
|
+
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
|
|
1810
|
+
});
|
|
1811
|
+
|
|
1812
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1813
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(/^\s+/g)) {
|
|
1814
|
+
var _changes$inputValue$r;
|
|
1815
|
+
// remove leading whitespace if it exists
|
|
1816
|
+
return _extends({}, changes, {
|
|
1817
|
+
inputValue: (_changes$inputValue$r = changes.inputValue.replace(/^\s+/g, '')) != null ? _changes$inputValue$r : ''
|
|
1818
|
+
});
|
|
1819
|
+
}
|
|
1820
|
+
if (typeof initialItems === 'function') fetchItems((_changes$inputValue2 = changes.inputValue) != null ? _changes$inputValue2 : ''); // fetch items only if user provides a function as items
|
|
1821
|
+
filterListItems({
|
|
1822
|
+
inputValue: (_changes$inputValue3 = changes.inputValue) != null ? _changes$inputValue3 : ''
|
|
1823
|
+
});
|
|
1824
|
+
return changes;
|
|
1825
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1826
|
+
return _extends({}, changes, {
|
|
1827
|
+
inputValue: ''
|
|
1828
|
+
});
|
|
1829
|
+
default:
|
|
1830
|
+
return changes;
|
|
1465
1831
|
}
|
|
1466
|
-
},
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1832
|
+
}, [hideSelectAll, normalizedItems, filterListItems, initialItems]);
|
|
1833
|
+
var _useCombobox = Downshift.useCombobox(_extends({
|
|
1834
|
+
defaultHighlightedIndex: lastHighlightedIndex,
|
|
1835
|
+
items: listItems,
|
|
1836
|
+
itemToString: itemToString,
|
|
1837
|
+
selectedItem: null,
|
|
1838
|
+
stateReducer: stateReducer,
|
|
1839
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1840
|
+
var type = _ref4.type,
|
|
1841
|
+
clickedItem = _ref4.selectedItem;
|
|
1842
|
+
// clickedItem means item chosen either via mouse or keyboard
|
|
1843
|
+
if (!clickedItem) return;
|
|
1844
|
+
switch (type) {
|
|
1845
|
+
// @ts-expect-error This falltrough is wanted
|
|
1846
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1847
|
+
if (!selectOnBlur) break;
|
|
1848
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1849
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1850
|
+
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1851
|
+
if (allListItemsAreSelected) {
|
|
1852
|
+
return unselectAllListItems(onChange);
|
|
1853
|
+
}
|
|
1854
|
+
return selectAllUnselectedItemsInListItems(onChange);
|
|
1855
|
+
}
|
|
1856
|
+
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1857
|
+
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1858
|
+
}
|
|
1859
|
+
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
1860
|
+
}
|
|
1861
|
+
}
|
|
1862
|
+
}, rest)),
|
|
1863
|
+
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1864
|
+
getInputProps = _useCombobox.getInputProps,
|
|
1865
|
+
getItemProps = _useCombobox.getItemProps,
|
|
1866
|
+
getLabelProps = _useCombobox.getLabelProps,
|
|
1867
|
+
getMenuProps = _useCombobox.getMenuProps,
|
|
1868
|
+
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1869
|
+
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1870
|
+
inputValue = _useCombobox.inputValue,
|
|
1871
|
+
isOpen = _useCombobox.isOpen,
|
|
1872
|
+
openMenu = _useCombobox.openMenu,
|
|
1873
|
+
setInputValue = _useCombobox.setInputValue;
|
|
1874
|
+
// role=combobox leads to strange VoiceOver behavior and is therefor omitted
|
|
1875
|
+
// const { role: _, ...comboboxProps } = getComboboxProps();
|
|
1876
|
+
var _getComboboxProps = getComboboxProps(),
|
|
1877
|
+
comboboxProps = _extends({}, (_objectDestructuringEmpty(_getComboboxProps), _getComboboxProps));
|
|
1878
|
+
return React__default["default"].createElement("div", {
|
|
1879
|
+
className: "eds-dropdown__wrapper"
|
|
1880
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1881
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1882
|
+
selectedItems: selectedItems,
|
|
1883
|
+
isOpen: isOpen,
|
|
1884
|
+
clearable: clearable,
|
|
1885
|
+
loading: loading,
|
|
1886
|
+
loadingText: '',
|
|
1887
|
+
readOnly: readonly,
|
|
1888
|
+
onClear: function onClear() {
|
|
1889
|
+
var _inputRef$current3;
|
|
1890
|
+
onChange([]);
|
|
1891
|
+
setInputValue('');
|
|
1892
|
+
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
|
|
1893
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : '');
|
|
1894
|
+
},
|
|
1895
|
+
getToggleButtonProps: getToggleButtonProps
|
|
1896
|
+
}),
|
|
1897
|
+
className: classNames__default["default"]('eds-dropdown', className),
|
|
1898
|
+
label: label,
|
|
1899
|
+
isFilled: hasSelectedItems || inputValue !== '',
|
|
1900
|
+
feedback: feedback,
|
|
1901
|
+
variant: variant,
|
|
1902
|
+
readOnly: readonly,
|
|
1903
|
+
style: style,
|
|
1904
|
+
labelProps: _extends({
|
|
1905
|
+
'aria-label': label + ", multiselect, " + selectedItems.length + " valgte elementer"
|
|
1906
|
+
}, getLabelProps())
|
|
1907
|
+
}, comboboxProps, rest), React__default["default"].createElement("div", {
|
|
1908
|
+
className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
|
|
1909
|
+
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
1910
|
+
}),
|
|
1911
|
+
onClick: function onClick(e) {
|
|
1912
|
+
var _inputRef$current4;
|
|
1913
|
+
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
1472
1914
|
}
|
|
1473
|
-
},
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
}), React__default["default"].createElement(
|
|
1915
|
+
}, selectedItems.map(function (selectedItem, index) {
|
|
1916
|
+
return React__default["default"].createElement(SelectedElementsTag, {
|
|
1917
|
+
index: index,
|
|
1918
|
+
key: selectedItem.value,
|
|
1919
|
+
getSelectedItemProps: getSelectedItemProps,
|
|
1920
|
+
selectedItem: selectedItem,
|
|
1921
|
+
removeSelectedItem: removeSelectedItem,
|
|
1922
|
+
ariaLabelRemoveSelected: ariaLabelRemoveSelected
|
|
1923
|
+
});
|
|
1924
|
+
}), React__default["default"].createElement("input", _extends({
|
|
1925
|
+
placeholder: placeholder,
|
|
1926
|
+
className: "eds-dropdown__input eds-form-control",
|
|
1927
|
+
role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
|
|
1928
|
+
}, getInputProps(getDropdownProps({
|
|
1929
|
+
preventKeyAction: isOpen,
|
|
1930
|
+
onFocus: function onFocus() {
|
|
1931
|
+
if (!isOpen && openOnFocus) openMenu();
|
|
1932
|
+
},
|
|
1933
|
+
ref: inputRef,
|
|
1934
|
+
value: inputValue != null ? inputValue : ''
|
|
1935
|
+
})))))), React__default["default"].createElement(DropdownList, {
|
|
1936
|
+
listItems: listItems,
|
|
1937
|
+
selectedItems: selectedItems,
|
|
1938
|
+
inputValue: inputValue,
|
|
1939
|
+
isOpen: isOpen,
|
|
1940
|
+
highlightedIndex: highlightedIndex,
|
|
1941
|
+
getMenuProps: getMenuProps,
|
|
1942
|
+
getItemProps: getItemProps,
|
|
1943
|
+
selectAllItem: selectAll,
|
|
1944
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
1945
|
+
listStyle: listStyle,
|
|
1946
|
+
loading: loading
|
|
1947
|
+
}));
|
|
1948
|
+
};
|
|
1949
|
+
|
|
1950
|
+
var _excluded = ["className", "clearable", "debounceTimeout", "feedback", "items", "label", "listStyle", "onChange", "openOnFocus", "placeholder", "readonly", "selectedItem", "selectOnBlur", "selectOnTab", "variant"];
|
|
1951
|
+
var DropdownBeta = function DropdownBeta(_ref) {
|
|
1952
|
+
var _selectedItem$label;
|
|
1953
|
+
var className = _ref.className,
|
|
1954
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1955
|
+
feedback = _ref.feedback,
|
|
1956
|
+
initialItems = _ref.items,
|
|
1957
|
+
label = _ref.label,
|
|
1958
|
+
listStyle = _ref.listStyle,
|
|
1959
|
+
onChange = _ref.onChange,
|
|
1960
|
+
_ref$readonly = _ref.readonly,
|
|
1961
|
+
readonly = _ref$readonly === void 0 ? false : _ref$readonly,
|
|
1962
|
+
selectedItem = _ref.selectedItem,
|
|
1963
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1964
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1965
|
+
_ref$variant = _ref.variant,
|
|
1966
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1967
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1968
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1969
|
+
normalizedItems = _useResolvedItems.items,
|
|
1970
|
+
loading = _useResolvedItems.loading;
|
|
1971
|
+
var _useSelect = Downshift.useSelect({
|
|
1972
|
+
items: normalizedItems,
|
|
1973
|
+
selectedItem: selectedItem,
|
|
1974
|
+
onStateChange: function onStateChange(_ref2) {
|
|
1975
|
+
var type = _ref2.type,
|
|
1976
|
+
clickedItem = _ref2.selectedItem;
|
|
1977
|
+
switch (type) {
|
|
1978
|
+
// @ts-expect-error This falltrough is wanted
|
|
1979
|
+
case Downshift.useSelect.stateChangeTypes.InputBlur:
|
|
1980
|
+
if (!selectOnBlur) break;
|
|
1981
|
+
case Downshift.useSelect.stateChangeTypes.MenuKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1982
|
+
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
1983
|
+
onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1986
|
+
itemToString: itemToString
|
|
1987
|
+
}),
|
|
1988
|
+
isOpen = _useSelect.isOpen,
|
|
1989
|
+
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
1990
|
+
getLabelProps = _useSelect.getLabelProps,
|
|
1991
|
+
getMenuProps = _useSelect.getMenuProps,
|
|
1992
|
+
highlightedIndex = _useSelect.highlightedIndex,
|
|
1993
|
+
getItemProps = _useSelect.getItemProps;
|
|
1994
|
+
return React__default["default"].createElement("div", {
|
|
1995
|
+
className: "eds-dropdown__wrapper"
|
|
1996
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1997
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
1998
|
+
selectedItems: [selectedItem],
|
|
1999
|
+
isOpen: isOpen,
|
|
2000
|
+
clearable: true,
|
|
2001
|
+
loading: loading,
|
|
2002
|
+
loadingText: '',
|
|
2003
|
+
readOnly: readonly,
|
|
2004
|
+
onClear: function onClear() {
|
|
2005
|
+
onChange == null ? void 0 : onChange(null);
|
|
2006
|
+
},
|
|
2007
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
2008
|
+
clearSelectedItemsLabel: "Fjern valgt",
|
|
2009
|
+
ariaLabelClearItems: (selectedItem == null ? void 0 : selectedItem.label) + " valgt, trykk for \xE5 fjerne valget",
|
|
2010
|
+
focusable: true
|
|
2011
|
+
}),
|
|
2012
|
+
className: classNames__default["default"]('eds-dropdown', className, {
|
|
2013
|
+
'eds-dropdown--not-filled': selectedItem === null
|
|
2014
|
+
}),
|
|
2015
|
+
label: label,
|
|
2016
|
+
labelId: getLabelProps().id,
|
|
2017
|
+
labelProps: getLabelProps(),
|
|
2018
|
+
disableLabelAnimation: true,
|
|
2019
|
+
isFilled: selectedItem !== null,
|
|
2020
|
+
feedback: feedback,
|
|
2021
|
+
variant: variant,
|
|
2022
|
+
readOnly: readonly
|
|
2023
|
+
}, rest), React__default["default"].createElement("div", _extends({
|
|
2024
|
+
className: "eds-dropdown__selected-item-button"
|
|
2025
|
+
}, getToggleButtonProps()), (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : '')), React__default["default"].createElement(DropdownList, {
|
|
2026
|
+
selectedItems: selectedItem !== null ? [selectedItem] : [],
|
|
2027
|
+
isOpen: isOpen,
|
|
2028
|
+
listItems: normalizedItems,
|
|
2029
|
+
highlightedIndex: highlightedIndex,
|
|
2030
|
+
listStyle: listStyle,
|
|
2031
|
+
getMenuProps: getMenuProps,
|
|
2032
|
+
getItemProps: getItemProps,
|
|
2033
|
+
loading: loading
|
|
2034
|
+
}));
|
|
1483
2035
|
};
|
|
1484
2036
|
|
|
1485
2037
|
utils.warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
|
|
1486
2038
|
|
|
1487
2039
|
exports.Dropdown = Dropdown;
|
|
2040
|
+
exports.DropdownBeta = DropdownBeta;
|
|
1488
2041
|
exports.MultiSelect = MultiSelect;
|
|
2042
|
+
exports.MultiSelectBeta = MultiSelectBeta;
|
|
1489
2043
|
exports.NativeDropdown = NativeDropdown;
|
|
1490
2044
|
exports.SearchableDropdownBeta = SearchableDropdownBeta;
|
|
1491
2045
|
//# sourceMappingURL=dropdown.cjs.development.js.map
|