@entur/dropdown 5.0.0-beta.3 → 5.0.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/Dropdown.d.ts +38 -37
- package/dist/MultiSelect.d.ts +89 -32
- package/dist/NativeDropdown.d.ts +23 -9
- package/dist/SearchableDropdown.d.ts +63 -17
- package/dist/{beta/components → components}/DropdownList.d.ts +11 -10
- package/dist/{beta/components → components}/FieldComponents.d.ts +7 -3
- package/dist/{BaseDropdown.d.ts → deprecated/BaseDropdown.d.ts} +3 -3
- package/dist/{DownshiftProvider.d.ts → deprecated/DownshiftProvider.d.ts} +1 -1
- package/dist/deprecated/Dropdown.d.ts +72 -0
- package/dist/{DropdownInputGroup.d.ts → deprecated/DropdownInputGroup.d.ts} +2 -2
- package/dist/deprecated/DropdownList.d.ts +8 -0
- package/dist/{DropdownLoadingDots.d.ts → deprecated/DropdownLoadingDots.d.ts} +1 -1
- package/dist/deprecated/DropdownToggleButton.d.ts +3 -0
- package/dist/deprecated/MultiSelect.d.ts +64 -0
- package/dist/{RegularDropdown.d.ts → deprecated/RegularDropdown.d.ts} +3 -3
- package/dist/deprecated/SearchableDropdown.d.ts +34 -0
- package/dist/{beta → deprecated}/index.d.ts +1 -2
- package/dist/dropdown.cjs.development.js +588 -347
- 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 +586 -345
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/styles.css +254 -252
- package/dist/useNormalizedItems.d.ts +5 -6
- package/dist/{beta/utils.d.ts → utils.d.ts} +25 -4
- package/package.json +12 -12
- package/dist/DropdownList.d.ts +0 -8
- package/dist/DropdownToggleButton.d.ts +0 -3
- package/dist/beta/Dropdown.d.ts +0 -52
- package/dist/beta/MultiSelect.d.ts +0 -76
- package/dist/beta/SearchableDropdown.d.ts +0 -61
|
@@ -461,7 +461,7 @@ var useDownshift = function useDownshift() {
|
|
|
461
461
|
};
|
|
462
462
|
|
|
463
463
|
var _excluded$c = ["items"];
|
|
464
|
-
var
|
|
464
|
+
var DropdownListDeprecated = function DropdownListDeprecated(_ref) {
|
|
465
465
|
var items = _ref.items,
|
|
466
466
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
|
|
467
467
|
var _useDownshift = useDownshift(),
|
|
@@ -497,7 +497,7 @@ var DropdownList$1 = function DropdownList(_ref) {
|
|
|
497
497
|
}) : null);
|
|
498
498
|
};
|
|
499
499
|
|
|
500
|
-
var
|
|
500
|
+
var DropdownDeprecatedToggleButton = function DropdownDeprecatedToggleButton() {
|
|
501
501
|
var _useDownshift = useDownshift(),
|
|
502
502
|
getToggleButtonProps = _useDownshift.getToggleButtonProps,
|
|
503
503
|
isOpen = _useDownshift.isOpen;
|
|
@@ -512,7 +512,7 @@ var DropdownToggleButton$1 = function DropdownToggleButton() {
|
|
|
512
512
|
};
|
|
513
513
|
|
|
514
514
|
var _excluded$b = ["className", "children"];
|
|
515
|
-
var
|
|
515
|
+
var DropdownDeprecatedLoadingDots = function DropdownDeprecatedLoadingDots(_ref) {
|
|
516
516
|
var className = _ref.className,
|
|
517
517
|
children = _ref.children,
|
|
518
518
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
@@ -522,7 +522,7 @@ var DropdownLoadingDots = function DropdownLoadingDots(_ref) {
|
|
|
522
522
|
};
|
|
523
523
|
|
|
524
524
|
var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
|
|
525
|
-
var
|
|
525
|
+
var BaseDropdownDeprecated = function BaseDropdownDeprecated(_ref) {
|
|
526
526
|
var children = _ref.children,
|
|
527
527
|
className = _ref.className,
|
|
528
528
|
items = _ref.items,
|
|
@@ -555,7 +555,7 @@ var BaseDropdown = function BaseDropdown(_ref) {
|
|
|
555
555
|
isFilled: isFilled,
|
|
556
556
|
labelProps: getLabelProps(),
|
|
557
557
|
disableLabelAnimation: disableLabelAnimation
|
|
558
|
-
}, rest), children), React__default["default"].createElement(
|
|
558
|
+
}, rest), children), React__default["default"].createElement(DropdownListDeprecated, _extends({
|
|
559
559
|
items: items,
|
|
560
560
|
style: _extends({
|
|
561
561
|
position: 'absolute',
|
|
@@ -586,16 +586,16 @@ var Appendix$1 = function Appendix(_ref3) {
|
|
|
586
586
|
loadingText = _ref3.loadingText,
|
|
587
587
|
readOnly = _ref3.readOnly;
|
|
588
588
|
if (loading) {
|
|
589
|
-
return React__default["default"].createElement(
|
|
589
|
+
return React__default["default"].createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
590
590
|
}
|
|
591
591
|
if (readOnly) {
|
|
592
592
|
return null;
|
|
593
593
|
}
|
|
594
|
-
return clearable ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearButton$1, null), " ", React__default["default"].createElement(
|
|
594
|
+
return clearable ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearButton$1, null), " ", React__default["default"].createElement(DropdownDeprecatedToggleButton, null)) : React__default["default"].createElement(DropdownDeprecatedToggleButton, null);
|
|
595
595
|
};
|
|
596
596
|
|
|
597
597
|
var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
|
|
598
|
-
var
|
|
598
|
+
var RegularDropdownDeprecated = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
599
599
|
var disabled = _ref.disabled,
|
|
600
600
|
_ref$placeholder = _ref.placeholder,
|
|
601
601
|
placeholder = _ref$placeholder === void 0 ? 'Vennligst velg' : _ref$placeholder,
|
|
@@ -620,7 +620,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
620
620
|
isOpen = _useDownshift.isOpen,
|
|
621
621
|
highlightedIndex = _useDownshift.highlightedIndex,
|
|
622
622
|
setHighlightedIndex = _useDownshift.setHighlightedIndex;
|
|
623
|
-
return React__default["default"].createElement(
|
|
623
|
+
return React__default["default"].createElement(BaseDropdownDeprecated, _extends({
|
|
624
624
|
disabled: disabled,
|
|
625
625
|
listStyle: listStyle,
|
|
626
626
|
items: items,
|
|
@@ -681,7 +681,17 @@ function LowerCaseFilterTest(item, input) {
|
|
|
681
681
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
682
682
|
return inputRegex.test(item.label);
|
|
683
683
|
}
|
|
684
|
-
|
|
684
|
+
/**
|
|
685
|
+
* @deprecated
|
|
686
|
+
* New SearchableDropdown available
|
|
687
|
+
*
|
|
688
|
+
* migration guide to new dropdown:
|
|
689
|
+
* - change import from 'DropdownDeprecated' to 'Dropdown'
|
|
690
|
+
* - change from 'value' to 'selectedItem'
|
|
691
|
+
* + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
|
|
692
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
693
|
+
*/
|
|
694
|
+
var SearchableDropdownDeprecated = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
685
695
|
var _ref$disabled = _ref.disabled,
|
|
686
696
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
687
697
|
className = _ref.className,
|
|
@@ -722,7 +732,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
722
732
|
return itemFilter(item, inputValue);
|
|
723
733
|
});
|
|
724
734
|
}, [inputValue, items, itemFilter]);
|
|
725
|
-
return React__default["default"].createElement(
|
|
735
|
+
return React__default["default"].createElement(BaseDropdownDeprecated, {
|
|
726
736
|
items: filteredItems,
|
|
727
737
|
disabled: disabled,
|
|
728
738
|
readOnly: readOnly,
|
|
@@ -764,7 +774,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
764
774
|
})));
|
|
765
775
|
});
|
|
766
776
|
|
|
767
|
-
var
|
|
777
|
+
var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
|
|
768
778
|
var children = _ref.children,
|
|
769
779
|
feedback = _ref.feedback,
|
|
770
780
|
variant = _ref.variant,
|
|
@@ -902,7 +912,18 @@ debounceTimeout) {
|
|
|
902
912
|
};
|
|
903
913
|
|
|
904
914
|
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"];
|
|
905
|
-
|
|
915
|
+
/**
|
|
916
|
+
* @deprecated
|
|
917
|
+
* New Dropdown available
|
|
918
|
+
*
|
|
919
|
+
* migration guide to new dropdown:
|
|
920
|
+
* - change import from 'DropdownDeprecated' to 'Dropdown'
|
|
921
|
+
* + if 'searchable', switch to 'SearchableDropdown'
|
|
922
|
+
* - change from 'value' to 'selectedItem'
|
|
923
|
+
* + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
|
|
924
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
925
|
+
*/
|
|
926
|
+
var DropdownDeprecated = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
906
927
|
var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
|
|
907
928
|
debounceTimeout = _ref.debounceTimeout,
|
|
908
929
|
disabled = _ref.disabled,
|
|
@@ -937,7 +958,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
937
958
|
var selectedItem = value === undefined ? undefined : normalizedItems.find(function (item) {
|
|
938
959
|
return value === item.value;
|
|
939
960
|
}) || null;
|
|
940
|
-
var RenderedDropdown = searchable ?
|
|
961
|
+
var RenderedDropdown = searchable ? SearchableDropdownDeprecated : RegularDropdownDeprecated;
|
|
941
962
|
var searchAbleProps = searchable ? {
|
|
942
963
|
itemFilter: itemFilter,
|
|
943
964
|
name: rest.name,
|
|
@@ -955,7 +976,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
955
976
|
className: className,
|
|
956
977
|
style: style,
|
|
957
978
|
searchable: searchable
|
|
958
|
-
}, rest), React__default["default"].createElement(
|
|
979
|
+
}, rest), React__default["default"].createElement(DropdownInputGroupDeprecated, {
|
|
959
980
|
feedback: feedback,
|
|
960
981
|
variant: variant
|
|
961
982
|
}, React__default["default"].createElement(RenderedDropdown, _extends({
|
|
@@ -976,68 +997,10 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
976
997
|
}, searchAbleProps))));
|
|
977
998
|
});
|
|
978
999
|
|
|
979
|
-
var _excluded$6 = ["className", "disabled", "
|
|
980
|
-
var
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
984
|
-
_ref$readOnly = _ref.readOnly,
|
|
985
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
986
|
-
items = _ref.items,
|
|
987
|
-
loadingText = _ref.loadingText,
|
|
988
|
-
prepend = _ref.prepend,
|
|
989
|
-
style = _ref.style,
|
|
990
|
-
label = _ref.label,
|
|
991
|
-
variant = _ref.variant,
|
|
992
|
-
feedback = _ref.feedback,
|
|
993
|
-
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
994
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
995
|
-
var _useResolvedItems = useResolvedItems(items),
|
|
996
|
-
normalizedItems = _useResolvedItems.items,
|
|
997
|
-
loading = _useResolvedItems.loading;
|
|
998
|
-
var rightSideIcon = React__default["default"].createElement(icons.DownArrowIcon, {
|
|
999
|
-
inline: true,
|
|
1000
|
-
"aria-hidden": "true"
|
|
1001
|
-
});
|
|
1002
|
-
if (disabled || readOnly) {
|
|
1003
|
-
rightSideIcon = null;
|
|
1004
|
-
} else if (loading) {
|
|
1005
|
-
rightSideIcon = React__default["default"].createElement(DropdownLoadingDots, {
|
|
1006
|
-
"aria-hidden": "true"
|
|
1007
|
-
}, loadingText);
|
|
1008
|
-
}
|
|
1009
|
-
var nativeDropdownId = utils.useRandomId('eds-native-dropdown');
|
|
1010
|
-
return React__default["default"].createElement(form.BaseFormControl, {
|
|
1011
|
-
disabled: disabled,
|
|
1012
|
-
readOnly: readOnly,
|
|
1013
|
-
prepend: prepend,
|
|
1014
|
-
append: rightSideIcon,
|
|
1015
|
-
className: className,
|
|
1016
|
-
style: style,
|
|
1017
|
-
label: label,
|
|
1018
|
-
labelId: nativeDropdownId,
|
|
1019
|
-
variant: variant,
|
|
1020
|
-
feedback: feedback,
|
|
1021
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1022
|
-
isFilled: true
|
|
1023
|
-
}, React__default["default"].createElement("select", _extends({
|
|
1024
|
-
"aria-invalid": variant === 'error',
|
|
1025
|
-
"aria-labelledby": nativeDropdownId,
|
|
1026
|
-
"aria-busy": loading,
|
|
1027
|
-
className: "eds-form-control eds-dropdown",
|
|
1028
|
-
disabled: disabled || readOnly
|
|
1029
|
-
}, rest), normalizedItems.map(function (item) {
|
|
1030
|
-
return React__default["default"].createElement("option", {
|
|
1031
|
-
key: item.value,
|
|
1032
|
-
value: item.value
|
|
1033
|
-
}, item.label);
|
|
1034
|
-
})));
|
|
1035
|
-
};
|
|
1036
|
-
|
|
1037
|
-
var _excluded$5 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
|
|
1038
|
-
var MultiSelectContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
1039
|
-
var useMultiSelectContext = function useMultiSelectContext() {
|
|
1040
|
-
var context = React__default["default"].useContext(MultiSelectContext);
|
|
1000
|
+
var _excluded$6 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
|
|
1001
|
+
var MultiSelectOldContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
1002
|
+
var useMultiSelectOldContext = function useMultiSelectOldContext() {
|
|
1003
|
+
var context = React__default["default"].useContext(MultiSelectOldContext);
|
|
1041
1004
|
if (!context) {
|
|
1042
1005
|
throw new Error('You need to wrap your component in a DownshiftProvider');
|
|
1043
1006
|
}
|
|
@@ -1049,8 +1012,8 @@ actionAndChanges) {
|
|
|
1049
1012
|
var changes = actionAndChanges.changes,
|
|
1050
1013
|
type = actionAndChanges.type;
|
|
1051
1014
|
switch (type) {
|
|
1052
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
1053
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
1015
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
1016
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
|
|
1054
1017
|
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
1055
1018
|
return _extends({}, changes, {
|
|
1056
1019
|
isOpen: true,
|
|
@@ -1060,7 +1023,17 @@ actionAndChanges) {
|
|
|
1060
1023
|
return changes;
|
|
1061
1024
|
}
|
|
1062
1025
|
}
|
|
1063
|
-
|
|
1026
|
+
/**
|
|
1027
|
+
* @deprecated
|
|
1028
|
+
* New MultiSelect available
|
|
1029
|
+
*
|
|
1030
|
+
* migration guide to new dropdown:
|
|
1031
|
+
* - change import from 'MultiSelectDeprecated' to 'MultiSelect'
|
|
1032
|
+
* - add state containing selected items to 'selectedItems' prop
|
|
1033
|
+
* + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'
|
|
1034
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
1035
|
+
*/
|
|
1036
|
+
var MultiSelectDeprecated = function MultiSelectDeprecated(_ref) {
|
|
1064
1037
|
var className = _ref.className,
|
|
1065
1038
|
_ref$clearable = _ref.clearable,
|
|
1066
1039
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
@@ -1090,7 +1063,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1090
1063
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1091
1064
|
style = _ref.style,
|
|
1092
1065
|
variant = _ref.variant,
|
|
1093
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
1066
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
1094
1067
|
var _useResolvedItems = useResolvedItems(input, debounceTimeout),
|
|
1095
1068
|
items = _useResolvedItems.items;
|
|
1096
1069
|
var _useState = React.useState(initialSelectedItems),
|
|
@@ -1136,7 +1109,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1136
1109
|
openMenu = _useSelect.openMenu;
|
|
1137
1110
|
var buttonText = selectedItems.length ? itemsSelectedLabel(selectedItems) : '';
|
|
1138
1111
|
var multiSelectId = utils.useRandomId('eds-multiselect');
|
|
1139
|
-
return React__default["default"].createElement(
|
|
1112
|
+
return React__default["default"].createElement(MultiSelectOldContext.Provider, {
|
|
1140
1113
|
value: {
|
|
1141
1114
|
isOpen: isOpen,
|
|
1142
1115
|
reset: reset,
|
|
@@ -1212,8 +1185,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1212
1185
|
};
|
|
1213
1186
|
var ClearButton = function ClearButton(_ref3) {
|
|
1214
1187
|
var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
|
|
1215
|
-
var
|
|
1216
|
-
reset =
|
|
1188
|
+
var _useMultiSelectOldCon = useMultiSelectOldContext(),
|
|
1189
|
+
reset = _useMultiSelectOldCon.reset;
|
|
1217
1190
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("button", _extends({
|
|
1218
1191
|
className: "eds-dropdown__clear-button",
|
|
1219
1192
|
type: "button",
|
|
@@ -1231,7 +1204,7 @@ var Appendix = function Appendix(_ref4) {
|
|
|
1231
1204
|
readOnly = _ref4.readOnly,
|
|
1232
1205
|
hasSelected = _ref4.hasSelected;
|
|
1233
1206
|
if (loading) {
|
|
1234
|
-
return React__default["default"].createElement(
|
|
1207
|
+
return React__default["default"].createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
1235
1208
|
}
|
|
1236
1209
|
if (readOnly) {
|
|
1237
1210
|
return null;
|
|
@@ -1239,11 +1212,11 @@ var Appendix = function Appendix(_ref4) {
|
|
|
1239
1212
|
return hasSelected ? React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(ClearButton, null), React__default["default"].createElement(DropdownToggleButton, null)) : React__default["default"].createElement(DropdownToggleButton, null);
|
|
1240
1213
|
};
|
|
1241
1214
|
var DropdownToggleButton = function DropdownToggleButton() {
|
|
1242
|
-
var
|
|
1243
|
-
getToggleButtonProps =
|
|
1244
|
-
isOpen =
|
|
1245
|
-
openMenu =
|
|
1246
|
-
openOnFocus =
|
|
1215
|
+
var _useMultiSelectOldCon2 = useMultiSelectOldContext(),
|
|
1216
|
+
getToggleButtonProps = _useMultiSelectOldCon2.getToggleButtonProps,
|
|
1217
|
+
isOpen = _useMultiSelectOldCon2.isOpen,
|
|
1218
|
+
openMenu = _useMultiSelectOldCon2.openMenu,
|
|
1219
|
+
openOnFocus = _useMultiSelectOldCon2.openOnFocus;
|
|
1247
1220
|
return React__default["default"].createElement("button", _extends({}, getToggleButtonProps({
|
|
1248
1221
|
className: classNames__default["default"]('eds-dropdown__toggle-button', {
|
|
1249
1222
|
'eds-dropdown__toggle-button--open': isOpen
|
|
@@ -1275,33 +1248,51 @@ function SelectedItemsLabel(items) {
|
|
|
1275
1248
|
}).toString() : items.length + " elementer valgt";
|
|
1276
1249
|
}
|
|
1277
1250
|
|
|
1278
|
-
var _excluded$
|
|
1251
|
+
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1279
1252
|
var DropdownList = function DropdownList(_ref) {
|
|
1280
|
-
var
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1253
|
+
var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1254
|
+
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1255
|
+
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
1256
|
+
ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
|
|
1284
1257
|
getItemProps = _ref.getItemProps,
|
|
1258
|
+
getMenuProps = _ref.getMenuProps,
|
|
1259
|
+
isOpen = _ref.isOpen,
|
|
1285
1260
|
highlightedIndex = _ref.highlightedIndex,
|
|
1261
|
+
listItems = _ref.listItems,
|
|
1262
|
+
listStyle = _ref.listStyle,
|
|
1286
1263
|
_ref$loading = _ref.loading,
|
|
1287
1264
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1288
|
-
selectAllCheckboxState = _ref.selectAllCheckboxState,
|
|
1289
|
-
selectAllItem = _ref.selectAllItem,
|
|
1290
|
-
listStyle = _ref.listStyle,
|
|
1291
|
-
_ref$noMatchesText = _ref.noMatchesText,
|
|
1292
|
-
noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen treff for søket' : _ref$noMatchesText,
|
|
1293
1265
|
_ref$loadingText = _ref.loadingText,
|
|
1294
1266
|
loadingText = _ref$loadingText === void 0 ? 'Laster inn …' : _ref$loadingText,
|
|
1295
|
-
_ref$
|
|
1296
|
-
|
|
1297
|
-
|
|
1267
|
+
_ref$noMatchesText = _ref.noMatchesText,
|
|
1268
|
+
noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen treff for søket' : _ref$noMatchesText,
|
|
1269
|
+
selectAllCheckboxState = _ref.selectAllCheckboxState,
|
|
1270
|
+
selectAllItem = _ref.selectAllItem,
|
|
1271
|
+
selectedItems = _ref.selectedItems,
|
|
1272
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
1298
1273
|
var isMultiselect = selectAllItem !== undefined;
|
|
1299
1274
|
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
|
|
1300
|
-
var
|
|
1275
|
+
var isItemSelected = function isItemSelected(item) {
|
|
1301
1276
|
return selectedItems.some(function (selectedItem) {
|
|
1302
|
-
return selectedItem.value === item.value;
|
|
1277
|
+
return selectedItem.value === item.value && selectedItem.label === item.label;
|
|
1303
1278
|
});
|
|
1304
1279
|
};
|
|
1280
|
+
var ariaLabelSelectAll = function ariaLabelSelectAll() {
|
|
1281
|
+
switch (selectAllCheckboxState == null ? void 0 : selectAllCheckboxState()) {
|
|
1282
|
+
case 'indeterminate':
|
|
1283
|
+
{
|
|
1284
|
+
return (selectAllItem == null ? void 0 : selectAllItem.label) + ", delvis valgt";
|
|
1285
|
+
}
|
|
1286
|
+
case true:
|
|
1287
|
+
{
|
|
1288
|
+
return (selectAllItem == null ? void 0 : selectAllItem.label) + ", " + ariaLabelChosenSingular;
|
|
1289
|
+
}
|
|
1290
|
+
default:
|
|
1291
|
+
{
|
|
1292
|
+
return "" + (selectAllItem == null ? void 0 : selectAllItem.label);
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
};
|
|
1305
1296
|
var selectAllListItemContent = function selectAllListItemContent() {
|
|
1306
1297
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1307
1298
|
"aria-hidden": "true",
|
|
@@ -1312,13 +1303,14 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1312
1303
|
},
|
|
1313
1304
|
tabIndex: -1
|
|
1314
1305
|
}), React__default["default"].createElement("span", {
|
|
1315
|
-
className: "eds-dropdown__list__item__text"
|
|
1306
|
+
className: "eds-dropdown__list__item__text",
|
|
1307
|
+
"aria-label": ariaLabelSelectAll()
|
|
1316
1308
|
}, selectAllItem == null ? void 0 : selectAllItem.label));
|
|
1317
1309
|
};
|
|
1318
1310
|
var listItemContent = function listItemContent(item) {
|
|
1319
1311
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1320
1312
|
"aria-hidden": "true",
|
|
1321
|
-
checked:
|
|
1313
|
+
checked: isItemSelected(item),
|
|
1322
1314
|
className: "eds-dropdown__list__item__checkbox",
|
|
1323
1315
|
onChange: function onChange() {
|
|
1324
1316
|
return;
|
|
@@ -1329,7 +1321,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1329
1321
|
tabIndex: -1
|
|
1330
1322
|
}), React__default["default"].createElement("span", {
|
|
1331
1323
|
className: "eds-dropdown__list__item__text"
|
|
1332
|
-
}, item.label, React__default["default"].createElement(a11y.VisuallyHidden, null,
|
|
1324
|
+
}, item.label, React__default["default"].createElement(a11y.VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React__default["default"].createElement("span", null, item.icons.map(function (Icon, index) {
|
|
1333
1325
|
return React__default["default"].createElement(Icon, {
|
|
1334
1326
|
key: index,
|
|
1335
1327
|
inline: true,
|
|
@@ -1338,35 +1330,166 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1338
1330
|
})));
|
|
1339
1331
|
};
|
|
1340
1332
|
return (
|
|
1341
|
-
// use popover from @entur/tooltip when
|
|
1333
|
+
// use popover from @entur/tooltip when that package upgrades to floating-ui
|
|
1342
1334
|
React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
|
|
1343
|
-
className:
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
}),
|
|
1335
|
+
className: "eds-dropdown__list",
|
|
1336
|
+
style: _extends({
|
|
1337
|
+
display: isOpen ? 'inline-block' : 'none'
|
|
1338
|
+
}, rest.style, listStyle)
|
|
1339
|
+
}), listItems.length > 0 && listItems.map(function (item, index) {
|
|
1348
1340
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1349
|
-
if (itemIsSelectAll && listItems.length <= 2) return
|
|
1341
|
+
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1350
1342
|
return React__default["default"].createElement("li", _extends({
|
|
1351
|
-
key: item.
|
|
1343
|
+
key: item.label,
|
|
1352
1344
|
className: classNames__default["default"]('eds-dropdown__list__item', {
|
|
1353
1345
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1354
1346
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1355
|
-
'eds-dropdown__list__item--selected': !isMultiselect &&
|
|
1347
|
+
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1356
1348
|
})
|
|
1357
1349
|
}, getItemProps({
|
|
1358
|
-
key:
|
|
1350
|
+
key: item.label,
|
|
1359
1351
|
item: item,
|
|
1360
1352
|
index: index
|
|
1361
1353
|
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
1362
|
-
}),
|
|
1354
|
+
}), isNoMatches && React__default["default"].createElement("li", {
|
|
1355
|
+
key: "dropdown-list-no-match",
|
|
1363
1356
|
className: "eds-dropdown__list__item"
|
|
1364
|
-
}, noMatchesText),
|
|
1357
|
+
}, noMatchesText), loading && React__default["default"].createElement("li", {
|
|
1358
|
+
key: "dropdown-list-loading",
|
|
1365
1359
|
className: "eds-dropdown__list__item"
|
|
1366
1360
|
}, loadingText))
|
|
1367
1361
|
);
|
|
1368
1362
|
};
|
|
1369
1363
|
|
|
1364
|
+
var _excluded$4 = ["tabIndex"];
|
|
1365
|
+
var SelectedItemTag = function SelectedItemTag(_ref) {
|
|
1366
|
+
var _getSelectedItemProps;
|
|
1367
|
+
var ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected,
|
|
1368
|
+
_ref$ariaLabelChosen = _ref.ariaLabelChosen,
|
|
1369
|
+
ariaLabelChosen = _ref$ariaLabelChosen === void 0 ? 'valgt' : _ref$ariaLabelChosen,
|
|
1370
|
+
disabled = _ref.disabled,
|
|
1371
|
+
getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1372
|
+
index = _ref.index,
|
|
1373
|
+
readOnly = _ref.readOnly,
|
|
1374
|
+
removeSelectedItem = _ref.removeSelectedItem,
|
|
1375
|
+
selectedItem = _ref.selectedItem;
|
|
1376
|
+
var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
|
|
1377
|
+
selectedItem: selectedItem,
|
|
1378
|
+
index: index
|
|
1379
|
+
})) != null ? _getSelectedItemProps : {},
|
|
1380
|
+
selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
|
|
1381
|
+
return React__default["default"].createElement(chip.TagChip, _extends({
|
|
1382
|
+
className: classNames__default["default"]('eds-dropdown__selected-item-tag', {
|
|
1383
|
+
'eds-dropdown__selected-item-tag--readonly': readOnly,
|
|
1384
|
+
'eds-dropdown__selected-item-tag--disabled': disabled
|
|
1385
|
+
})
|
|
1386
|
+
}, selectedItemProps, {
|
|
1387
|
+
onClose: function onClose(e) {
|
|
1388
|
+
e.stopPropagation();
|
|
1389
|
+
removeSelectedItem(selectedItem);
|
|
1390
|
+
},
|
|
1391
|
+
closeButtonAriaLabel: selectedItem.label + " " + ariaLabelChosen + ", " + ariaLabelRemoveSelected + " ",
|
|
1392
|
+
key: selectedItem.value,
|
|
1393
|
+
"aria-live": "polite"
|
|
1394
|
+
}), React__default["default"].createElement("span", {
|
|
1395
|
+
"aria-hidden": "true"
|
|
1396
|
+
}, selectedItem.label));
|
|
1397
|
+
};
|
|
1398
|
+
var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
1399
|
+
var _ref3$ariaHiddenToggl = _ref3.ariaHiddenToggleButton,
|
|
1400
|
+
ariaHiddenToggleButton = _ref3$ariaHiddenToggl === void 0 ? false : _ref3$ariaHiddenToggl,
|
|
1401
|
+
ariaLabelCloseList = _ref3.ariaLabelCloseList,
|
|
1402
|
+
ariaLabelOpenList = _ref3.ariaLabelOpenList,
|
|
1403
|
+
_ref3$clearable = _ref3.clearable,
|
|
1404
|
+
clearable = _ref3$clearable === void 0 ? false : _ref3$clearable,
|
|
1405
|
+
labelClearSelectedItems = _ref3.labelClearSelectedItems,
|
|
1406
|
+
_ref3$disabled = _ref3.disabled,
|
|
1407
|
+
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
1408
|
+
_ref3$focusable = _ref3.focusable,
|
|
1409
|
+
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable,
|
|
1410
|
+
getToggleButtonProps = _ref3.getToggleButtonProps,
|
|
1411
|
+
isOpen = _ref3.isOpen,
|
|
1412
|
+
_ref3$loading = _ref3.loading,
|
|
1413
|
+
loading = _ref3$loading === void 0 ? false : _ref3$loading,
|
|
1414
|
+
_ref3$loadingText = _ref3.loadingText,
|
|
1415
|
+
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1416
|
+
onClear = _ref3.onClear,
|
|
1417
|
+
selectedItems = _ref3.selectedItems;
|
|
1418
|
+
if (loading) {
|
|
1419
|
+
return React__default["default"].createElement("div", {
|
|
1420
|
+
className: 'eds-dropdown-appendix__toggle-button--loading-dots'
|
|
1421
|
+
}, React__default["default"].createElement(loader.LoadingDots, {
|
|
1422
|
+
"aria-label": loadingText
|
|
1423
|
+
}));
|
|
1424
|
+
}
|
|
1425
|
+
if (disabled) {
|
|
1426
|
+
return null;
|
|
1427
|
+
}
|
|
1428
|
+
return React__default["default"].createElement("div", {
|
|
1429
|
+
className: "eds-dropdown-appendix"
|
|
1430
|
+
}, 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, {
|
|
1431
|
+
onClear: onClear,
|
|
1432
|
+
focusable: true,
|
|
1433
|
+
labelClearSelectedItems: labelClearSelectedItems
|
|
1434
|
+
}), React__default["default"].createElement("div", {
|
|
1435
|
+
className: "eds-dropdown-appendix__divider"
|
|
1436
|
+
})), React__default["default"].createElement(ToggleButton, {
|
|
1437
|
+
"aria-hidden": ariaHiddenToggleButton,
|
|
1438
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
1439
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1440
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
1441
|
+
isOpen: isOpen,
|
|
1442
|
+
focusable: focusable
|
|
1443
|
+
}));
|
|
1444
|
+
};
|
|
1445
|
+
var ClearableButton = function ClearableButton(_ref4) {
|
|
1446
|
+
var onClear = _ref4.onClear,
|
|
1447
|
+
_ref4$labelClearSelec = _ref4.labelClearSelectedItems,
|
|
1448
|
+
labelClearSelectedItems = _ref4$labelClearSelec === void 0 ? 'Fjern valgte' : _ref4$labelClearSelec,
|
|
1449
|
+
_ref4$focusable = _ref4.focusable,
|
|
1450
|
+
focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
|
|
1451
|
+
return React__default["default"].createElement(tooltip.Tooltip, {
|
|
1452
|
+
"aria-hidden": "true",
|
|
1453
|
+
placement: "top",
|
|
1454
|
+
content: labelClearSelectedItems,
|
|
1455
|
+
className: "eds-dropdown-appendix__clear-button__tooltip"
|
|
1456
|
+
}, React__default["default"].createElement(button.IconButton, {
|
|
1457
|
+
className: "eds-dropdown-appendix__clear-button",
|
|
1458
|
+
type: "button",
|
|
1459
|
+
tabIndex: focusable ? 0 : 1,
|
|
1460
|
+
onClick: onClear,
|
|
1461
|
+
"aria-label": labelClearSelectedItems
|
|
1462
|
+
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1463
|
+
"aria-hidden": "true"
|
|
1464
|
+
})));
|
|
1465
|
+
};
|
|
1466
|
+
var ToggleButton = function ToggleButton(_ref5) {
|
|
1467
|
+
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1468
|
+
isOpen = _ref5.isOpen,
|
|
1469
|
+
_ref5$ariaHidden = _ref5['aria-hidden'],
|
|
1470
|
+
ariaHidden = _ref5$ariaHidden === void 0 ? false : _ref5$ariaHidden,
|
|
1471
|
+
_ref5$ariaLabelCloseL = _ref5.ariaLabelCloseList,
|
|
1472
|
+
ariaLabelCloseList = _ref5$ariaLabelCloseL === void 0 ? 'Lukk liste med valg' : _ref5$ariaLabelCloseL,
|
|
1473
|
+
_ref5$ariaLabelOpenLi = _ref5.ariaLabelOpenList,
|
|
1474
|
+
ariaLabelOpenList = _ref5$ariaLabelOpenLi === void 0 ? 'Åpne liste med valg' : _ref5$ariaLabelOpenLi,
|
|
1475
|
+
_ref5$focusable = _ref5.focusable,
|
|
1476
|
+
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1477
|
+
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1478
|
+
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1479
|
+
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1480
|
+
}),
|
|
1481
|
+
'aria-labelledby': undefined
|
|
1482
|
+
}), {
|
|
1483
|
+
"aria-hidden": ariaHidden,
|
|
1484
|
+
"aria-label": ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList,
|
|
1485
|
+
tabIndex: focusable ? 0 : -1,
|
|
1486
|
+
type: "button"
|
|
1487
|
+
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1488
|
+
"aria-hidden": "true"
|
|
1489
|
+
}));
|
|
1490
|
+
};
|
|
1491
|
+
|
|
1492
|
+
/* start general utils */
|
|
1370
1493
|
var EMPTY_INPUT = '';
|
|
1371
1494
|
function lowerCaseFilterTest(item, input) {
|
|
1372
1495
|
if (!input) {
|
|
@@ -1382,10 +1505,10 @@ var itemToString = function itemToString(item) {
|
|
|
1382
1505
|
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1383
1506
|
var listItems = _ref.listItems,
|
|
1384
1507
|
selectedItems = _ref.selectedItems,
|
|
1385
|
-
|
|
1508
|
+
selectAll = _ref.selectAll;
|
|
1386
1509
|
var hasSelectedItems = selectedItems.length > 0;
|
|
1387
1510
|
var listItemsWithoutSelectAll = listItems.filter(function (item) {
|
|
1388
|
-
return item.value !==
|
|
1511
|
+
return item.value !== selectAll.value;
|
|
1389
1512
|
});
|
|
1390
1513
|
var allListItemsAreSelected = listItemsWithoutSelectAll.filter(function (item) {
|
|
1391
1514
|
return !selectedItems.includes(item);
|
|
@@ -1402,18 +1525,21 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1402
1525
|
});
|
|
1403
1526
|
};
|
|
1404
1527
|
var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
|
|
1405
|
-
return clickedItem.value ===
|
|
1528
|
+
return clickedItem.value === selectAll.value;
|
|
1406
1529
|
};
|
|
1407
1530
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1408
1531
|
var clickedItem = _ref2.clickedItem,
|
|
1409
|
-
onChange = _ref2.onChange
|
|
1532
|
+
onChange = _ref2.onChange,
|
|
1533
|
+
setLastRemovedItem = _ref2.setLastRemovedItem;
|
|
1410
1534
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1411
1535
|
if (allListItemsAreSelected) {
|
|
1536
|
+
setLastRemovedItem(selectAll);
|
|
1412
1537
|
return unselectAllListItems(onChange);
|
|
1413
1538
|
}
|
|
1414
1539
|
return selectAllUnselectedItemsInListItems(onChange);
|
|
1415
1540
|
}
|
|
1416
1541
|
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1542
|
+
setLastRemovedItem(clickedItem);
|
|
1417
1543
|
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1418
1544
|
}
|
|
1419
1545
|
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
@@ -1453,125 +1579,63 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1453
1579
|
unselectAllListItems: unselectAllListItems
|
|
1454
1580
|
};
|
|
1455
1581
|
};
|
|
1456
|
-
|
|
1457
|
-
var
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
selectedItem = _ref.selectedItem;
|
|
1467
|
-
var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
|
|
1468
|
-
selectedItem: selectedItem,
|
|
1469
|
-
index: index
|
|
1470
|
-
})) != null ? _getSelectedItemProps : {},
|
|
1471
|
-
selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
|
|
1472
|
-
return React__default["default"].createElement(chip.TagChip, _extends({
|
|
1473
|
-
className: classNames__default["default"]('eds-dropdown__selected-item-tag', {
|
|
1474
|
-
'eds-dropdown__selected-item-tag--readonly': readOnly,
|
|
1475
|
-
'eds-dropdown__selected-item-tag--disabled': disabled
|
|
1476
|
-
})
|
|
1477
|
-
}, selectedItemProps, {
|
|
1478
|
-
onClose: function onClose(e) {
|
|
1479
|
-
e.stopPropagation();
|
|
1480
|
-
removeSelectedItem(selectedItem);
|
|
1481
|
-
},
|
|
1482
|
-
closeButtonAriaLabel: selectedItem.label + ", " + ariaLabelRemoveSelected + " ",
|
|
1483
|
-
key: selectedItem.value
|
|
1484
|
-
}), React__default["default"].createElement("span", {
|
|
1485
|
-
"aria-hidden": "true"
|
|
1486
|
-
}, selectedItem.label));
|
|
1487
|
-
};
|
|
1488
|
-
var FieldAppend = function FieldAppend(_ref3) {
|
|
1489
|
-
var _ref3$clearable = _ref3.clearable,
|
|
1490
|
-
clearable = _ref3$clearable === void 0 ? false : _ref3$clearable,
|
|
1491
|
-
clearSelectedItemsLabel = _ref3.clearSelectedItemsLabel,
|
|
1492
|
-
_ref3$disabled = _ref3.disabled,
|
|
1493
|
-
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
1494
|
-
_ref3$focusable = _ref3.focusable,
|
|
1495
|
-
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable,
|
|
1496
|
-
getToggleButtonProps = _ref3.getToggleButtonProps,
|
|
1497
|
-
isOpen = _ref3.isOpen,
|
|
1498
|
-
_ref3$loading = _ref3.loading,
|
|
1499
|
-
loading = _ref3$loading === void 0 ? false : _ref3$loading,
|
|
1500
|
-
_ref3$loadingText = _ref3.loadingText,
|
|
1501
|
-
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1502
|
-
onClear = _ref3.onClear,
|
|
1503
|
-
selectedItems = _ref3.selectedItems;
|
|
1504
|
-
if (loading) {
|
|
1505
|
-
return React__default["default"].createElement(DropdownLoadingDots, null, loadingText);
|
|
1582
|
+
function getA11yStatusMessage(options) {
|
|
1583
|
+
var isOpen = options.isOpen,
|
|
1584
|
+
resultCount = options.resultCount,
|
|
1585
|
+
previousResultCount = options.previousResultCount,
|
|
1586
|
+
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1587
|
+
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1588
|
+
_options$ariaLabelNoR = options.ariaLabelNoResults,
|
|
1589
|
+
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1590
|
+
if (!isOpen) {
|
|
1591
|
+
return '';
|
|
1506
1592
|
}
|
|
1507
|
-
|
|
1508
|
-
|
|
1593
|
+
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1594
|
+
if (resultCountWithoutSelectAll === 0) {
|
|
1595
|
+
return ariaLabelNoResults;
|
|
1509
1596
|
}
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
onClick: onClear,
|
|
1542
|
-
"aria-label": clearSelectedItemsLabel
|
|
1543
|
-
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1544
|
-
"aria-hidden": "true"
|
|
1545
|
-
})));
|
|
1546
|
-
};
|
|
1547
|
-
var ToggleButton = function ToggleButton(_ref5) {
|
|
1548
|
-
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1549
|
-
isOpen = _ref5.isOpen,
|
|
1550
|
-
_ref5$closeAriaLabel = _ref5.closeAriaLabel,
|
|
1551
|
-
closeAriaLabel = _ref5$closeAriaLabel === void 0 ? 'Lukk liste med valg' : _ref5$closeAriaLabel,
|
|
1552
|
-
_ref5$openAriaLabel = _ref5.openAriaLabel,
|
|
1553
|
-
openAriaLabel = _ref5$openAriaLabel === void 0 ? 'Åpne liste med valg' : _ref5$openAriaLabel,
|
|
1554
|
-
_ref5$focusable = _ref5.focusable,
|
|
1555
|
-
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1556
|
-
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1557
|
-
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1558
|
-
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1559
|
-
})
|
|
1560
|
-
}), {
|
|
1561
|
-
"aria-label": isOpen ? closeAriaLabel : openAriaLabel,
|
|
1562
|
-
tabIndex: focusable ? 0 : -1,
|
|
1563
|
-
type: "button"
|
|
1564
|
-
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1565
|
-
"aria-hidden": "true"
|
|
1566
|
-
}));
|
|
1597
|
+
if (resultCount !== previousResultCount) {
|
|
1598
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1599
|
+
}
|
|
1600
|
+
return '';
|
|
1601
|
+
}
|
|
1602
|
+
function getA11ySelectionMessage(options) {
|
|
1603
|
+
var selectedItem = options.selectedItem,
|
|
1604
|
+
itemToStringLocal = options.itemToString,
|
|
1605
|
+
selectAllItem = options.selectAllItem;
|
|
1606
|
+
if ((selectedItem == null ? void 0 : selectedItem.value) === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen valgt.';
|
|
1607
|
+
return selectedItem ? itemToStringLocal(selectedItem) + " er valgt." : '';
|
|
1608
|
+
}
|
|
1609
|
+
function getA11yRemovalMessage(options) {
|
|
1610
|
+
var itemToString = options.itemToString,
|
|
1611
|
+
selectAllItem = options.selectAllItem,
|
|
1612
|
+
removedItem = options.removedItem;
|
|
1613
|
+
if (removedItem === undefined) return '';
|
|
1614
|
+
if (removedItem.value === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen fjernet fra valgte.';
|
|
1615
|
+
return itemToString(removedItem) + " fjernet fra valgte.";
|
|
1616
|
+
}
|
|
1617
|
+
/**A VoiceOver click is always preformed in the center of the clicked element.
|
|
1618
|
+
This functions expolits that to check if the performed click likely is
|
|
1619
|
+
made by VoiceOver. */
|
|
1620
|
+
var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
1621
|
+
var targetElementRect = clickEvent.currentTarget.getBoundingClientRect();
|
|
1622
|
+
var targetElementMiddleX = Math.floor(targetElementRect.x + targetElementRect.width / 2);
|
|
1623
|
+
var targetElementMiddleY = Math.floor(targetElementRect.y + targetElementRect.height / 2);
|
|
1624
|
+
var clickPositionX = clickEvent.clientX;
|
|
1625
|
+
var clickPositionY = clickEvent.clientY;
|
|
1626
|
+
console.log('targetX:', targetElementMiddleX, 'targetY:', targetElementMiddleY, 'clickX:', clickPositionX, 'clickY:', clickPositionY);
|
|
1627
|
+
return Math.abs(targetElementMiddleX - clickPositionX) <= 1 && Math.abs(targetElementMiddleY - clickPositionY) <= 1;
|
|
1567
1628
|
};
|
|
1629
|
+
/* end a11y utils */
|
|
1568
1630
|
|
|
1569
|
-
var _excluded$
|
|
1570
|
-
var
|
|
1631
|
+
var _excluded$3 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "debounceTimeout", "disabled", "disableLabelAnimation", "feedback", "itemFilter", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
1632
|
+
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1571
1633
|
var _selectedItem$label;
|
|
1572
|
-
var
|
|
1634
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1635
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1636
|
+
className = _ref.className,
|
|
1573
1637
|
_ref$clearable = _ref.clearable,
|
|
1574
|
-
clearable = _ref$clearable === void 0 ?
|
|
1638
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1575
1639
|
debounceTimeout = _ref.debounceTimeout,
|
|
1576
1640
|
_ref$disabled = _ref.disabled,
|
|
1577
1641
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
@@ -1582,11 +1646,11 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1582
1646
|
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1583
1647
|
initialItems = _ref.items,
|
|
1584
1648
|
label = _ref.label,
|
|
1649
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
1650
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
1585
1651
|
listStyle = _ref.listStyle,
|
|
1586
1652
|
loadingText = _ref.loadingText,
|
|
1587
1653
|
onChange = _ref.onChange,
|
|
1588
|
-
_ref$openOnFocus = _ref.openOnFocus,
|
|
1589
|
-
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1590
1654
|
placeholder = _ref.placeholder,
|
|
1591
1655
|
prepend = _ref.prepend,
|
|
1592
1656
|
_ref$readOnly = _ref.readOnly,
|
|
@@ -1597,7 +1661,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1597
1661
|
style = _ref.style,
|
|
1598
1662
|
_ref$variant = _ref.variant,
|
|
1599
1663
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1600
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
1664
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
1601
1665
|
var _useState = React.useState(false),
|
|
1602
1666
|
hideSelectedItem = _useState[0],
|
|
1603
1667
|
setHideSelectedItem = _useState[1];
|
|
@@ -1637,6 +1701,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1637
1701
|
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1638
1702
|
}
|
|
1639
1703
|
switch (type) {
|
|
1704
|
+
// empty input to show selected item and reset dropdown list on item selection
|
|
1640
1705
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1641
1706
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1642
1707
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
@@ -1646,21 +1711,21 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1646
1711
|
inputValue: EMPTY_INPUT
|
|
1647
1712
|
});
|
|
1648
1713
|
return _extends({}, changes, {
|
|
1649
|
-
inputValue: EMPTY_INPUT
|
|
1714
|
+
inputValue: EMPTY_INPUT
|
|
1650
1715
|
});
|
|
1651
1716
|
}
|
|
1652
|
-
|
|
1717
|
+
// remove leading whitespace, select element with spacebar on empty input, and filter list based on input
|
|
1653
1718
|
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1654
1719
|
{
|
|
1655
1720
|
var _changes$inputValue;
|
|
1656
1721
|
var leadingWhitespaceTest = /^\s+/g;
|
|
1657
|
-
var isSpacePressedOnEmptyInput = changes.inputValue
|
|
1722
|
+
var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
|
|
1658
1723
|
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
|
|
1659
1724
|
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
1660
1725
|
if (isSpacePressedOnEmptyInput) {
|
|
1661
1726
|
openMenu();
|
|
1662
1727
|
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
1663
|
-
onChange(listItems[changes.highlightedIndex]);
|
|
1728
|
+
onChange == null ? void 0 : onChange(listItems[changes.highlightedIndex]);
|
|
1664
1729
|
}
|
|
1665
1730
|
}
|
|
1666
1731
|
} else {
|
|
@@ -1689,8 +1754,15 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1689
1754
|
if (!selectOnBlur) break;
|
|
1690
1755
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1691
1756
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1692
|
-
onChange(clickedItem != null ? clickedItem : null);
|
|
1757
|
+
onChange == null ? void 0 : onChange(clickedItem != null ? clickedItem : null);
|
|
1693
1758
|
}
|
|
1759
|
+
},
|
|
1760
|
+
// Accessibility
|
|
1761
|
+
getA11yStatusMessage: getA11yStatusMessage,
|
|
1762
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
1763
|
+
// but is left here for when it is fixed
|
|
1764
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
1765
|
+
return getA11ySelectionMessage(options);
|
|
1694
1766
|
}
|
|
1695
1767
|
}, rest)),
|
|
1696
1768
|
isOpen = _useCombobox.isOpen,
|
|
@@ -1699,7 +1771,6 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1699
1771
|
getLabelProps = _useCombobox.getLabelProps,
|
|
1700
1772
|
getMenuProps = _useCombobox.getMenuProps,
|
|
1701
1773
|
getInputProps = _useCombobox.getInputProps,
|
|
1702
|
-
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1703
1774
|
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1704
1775
|
getItemProps = _useCombobox.getItemProps,
|
|
1705
1776
|
selectedItem = _useCombobox.selectedItem,
|
|
@@ -1707,7 +1778,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1707
1778
|
setInputValue = _useCombobox.setInputValue;
|
|
1708
1779
|
var handleOnClear = function handleOnClear() {
|
|
1709
1780
|
var _inputRef$current;
|
|
1710
|
-
onChange(null);
|
|
1781
|
+
onChange == null ? void 0 : onChange(null);
|
|
1711
1782
|
setInputValue(EMPTY_INPUT);
|
|
1712
1783
|
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
1713
1784
|
updateListItems({
|
|
@@ -1715,11 +1786,14 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1715
1786
|
});
|
|
1716
1787
|
};
|
|
1717
1788
|
return React__default["default"].createElement("div", {
|
|
1718
|
-
className: "eds-dropdown__wrapper
|
|
1789
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
1790
|
+
style: style
|
|
1719
1791
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1720
|
-
append: React__default["default"].createElement(FieldAppend, {
|
|
1792
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
1793
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
1794
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1721
1795
|
clearable: clearable,
|
|
1722
|
-
|
|
1796
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
1723
1797
|
disabled: readOnly || disabled,
|
|
1724
1798
|
focusable: false,
|
|
1725
1799
|
getToggleButtonProps: getToggleButtonProps,
|
|
@@ -1729,19 +1803,20 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1729
1803
|
onClear: handleOnClear,
|
|
1730
1804
|
selectedItems: [selectedItem]
|
|
1731
1805
|
}),
|
|
1732
|
-
className:
|
|
1806
|
+
className: "eds-dropdown",
|
|
1733
1807
|
disabled: disabled,
|
|
1734
1808
|
disableLabelAnimation: disableLabelAnimation,
|
|
1735
1809
|
feedback: feedback,
|
|
1736
|
-
isFilled: selectedItem || inputValue !== EMPTY_INPUT,
|
|
1810
|
+
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1737
1811
|
label: label,
|
|
1812
|
+
labelId: getLabelProps().id,
|
|
1738
1813
|
labelProps: getLabelProps(),
|
|
1739
1814
|
prepend: prepend,
|
|
1740
1815
|
readOnly: readOnly,
|
|
1741
|
-
style: style,
|
|
1742
1816
|
variant: variant
|
|
1743
|
-
},
|
|
1744
|
-
className: "eds-dropdown__selected-item__wrapper"
|
|
1817
|
+
}, rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
|
|
1818
|
+
className: "eds-dropdown__selected-item__wrapper",
|
|
1819
|
+
"aria-hidden": "true"
|
|
1745
1820
|
}, React__default["default"].createElement("span", {
|
|
1746
1821
|
className: "eds-dropdown__selected-item",
|
|
1747
1822
|
onClick: function onClick() {
|
|
@@ -1753,11 +1828,13 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1753
1828
|
disabled: readOnly || disabled,
|
|
1754
1829
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
|
|
1755
1830
|
}, getInputProps({
|
|
1831
|
+
onClick: function onClick(e) {
|
|
1832
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
1833
|
+
},
|
|
1756
1834
|
onBlur: function onBlur() {
|
|
1757
1835
|
setHideSelectedItem(false);
|
|
1758
1836
|
},
|
|
1759
1837
|
onFocus: function onFocus() {
|
|
1760
|
-
if (!isOpen && openOnFocus) openMenu();
|
|
1761
1838
|
setHideSelectedItem(true);
|
|
1762
1839
|
},
|
|
1763
1840
|
ref: inputRef
|
|
@@ -1774,71 +1851,91 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1774
1851
|
}));
|
|
1775
1852
|
};
|
|
1776
1853
|
|
|
1777
|
-
var _excluded$
|
|
1778
|
-
var
|
|
1779
|
-
var
|
|
1780
|
-
allItemsSelectedLabel = _ref$allItemsSelected === void 0 ? 'Alle valgt' : _ref$allItemsSelected,
|
|
1781
|
-
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1782
|
-
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1783
|
-
className = _ref.className,
|
|
1854
|
+
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "itemFilter", "items", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "listStyle", "loadingText", "maxChips", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
|
|
1855
|
+
var MultiSelect = function MultiSelect(_ref) {
|
|
1856
|
+
var className = _ref.className,
|
|
1784
1857
|
_ref$clearable = _ref.clearable,
|
|
1785
|
-
clearable = _ref$clearable === void 0 ?
|
|
1858
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1786
1859
|
_ref$clearInputOnSele = _ref.clearInputOnSelect,
|
|
1787
1860
|
clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
|
|
1861
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1788
1862
|
_ref$disabled = _ref.disabled,
|
|
1789
1863
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1790
1864
|
feedback = _ref.feedback,
|
|
1791
1865
|
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1792
1866
|
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1867
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1868
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1793
1869
|
initialItems = _ref.items,
|
|
1794
1870
|
label = _ref.label,
|
|
1871
|
+
_ref$labelAllItemsSel = _ref.labelAllItemsSelected,
|
|
1872
|
+
labelAllItemsSelected = _ref$labelAllItemsSel === void 0 ? 'Alle valgt' : _ref$labelAllItemsSel,
|
|
1873
|
+
_ref$labelClearAllIte = _ref.labelClearAllItems,
|
|
1874
|
+
labelClearAllItems = _ref$labelClearAllIte === void 0 ? 'Fjern valgte' : _ref$labelClearAllIte,
|
|
1875
|
+
_ref$labelSelectAll = _ref.labelSelectAll,
|
|
1876
|
+
labelSelectAll = _ref$labelSelectAll === void 0 ? 'Velg alle' : _ref$labelSelectAll,
|
|
1795
1877
|
listStyle = _ref.listStyle,
|
|
1796
1878
|
loadingText = _ref.loadingText,
|
|
1797
|
-
_ref$
|
|
1798
|
-
|
|
1799
|
-
onChange = _ref.onChange,
|
|
1800
|
-
_ref$
|
|
1801
|
-
|
|
1879
|
+
_ref$maxChips = _ref.maxChips,
|
|
1880
|
+
maxChips = _ref$maxChips === void 0 ? 10 : _ref$maxChips,
|
|
1881
|
+
_ref$onChange = _ref.onChange,
|
|
1882
|
+
onChange = _ref$onChange === void 0 ? function () {
|
|
1883
|
+
return undefined;
|
|
1884
|
+
} : _ref$onChange,
|
|
1802
1885
|
placeholder = _ref.placeholder,
|
|
1803
1886
|
_ref$readOnly = _ref.readOnly,
|
|
1804
1887
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1805
|
-
_ref$clearAllItemsAri = _ref.clearAllItemsAriaLabel,
|
|
1806
|
-
clearAllItemsAriaLabel = _ref$clearAllItemsAri === void 0 ? 'Fjern valgte' : _ref$clearAllItemsAri,
|
|
1807
|
-
_ref$selectAllLabel = _ref.selectAllLabel,
|
|
1808
|
-
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
|
|
1809
1888
|
selectedItems = _ref.selectedItems,
|
|
1810
1889
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1811
1890
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1812
1891
|
style = _ref.style,
|
|
1813
1892
|
_ref$variant = _ref.variant,
|
|
1814
1893
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1815
|
-
|
|
1894
|
+
_ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1895
|
+
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1896
|
+
_ref$ariaLabelChosenP = _ref.ariaLabelChosenPlural,
|
|
1897
|
+
ariaLabelChosenPlural = _ref$ariaLabelChosenP === void 0 ? 'valgte' : _ref$ariaLabelChosenP,
|
|
1898
|
+
ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1899
|
+
_ref$ariaLabelJumpToI = _ref.ariaLabelJumpToInput,
|
|
1900
|
+
ariaLabelJumpToInput = _ref$ariaLabelJumpToI === void 0 ? selectedItems.length + " valgte elementer, trykk for \xE5 hoppe til tekstfeltet" : _ref$ariaLabelJumpToI,
|
|
1901
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1902
|
+
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1903
|
+
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1904
|
+
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
1905
|
+
ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
|
|
1906
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1816
1907
|
var _React$useState = React__default["default"].useState(0),
|
|
1817
1908
|
lastHighlightedIndex = _React$useState[0],
|
|
1818
1909
|
setLastHighlightedIndex = _React$useState[1];
|
|
1910
|
+
var _React$useState2 = React__default["default"].useState(undefined),
|
|
1911
|
+
lastRemovedItem = _React$useState2[0],
|
|
1912
|
+
setLastRemovedItem = _React$useState2[1];
|
|
1819
1913
|
var inputRef = React.useRef(null);
|
|
1820
|
-
var _useResolvedItems = useResolvedItems(initialItems),
|
|
1914
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1821
1915
|
normalizedItems = _useResolvedItems.items,
|
|
1822
1916
|
loading = _useResolvedItems.loading,
|
|
1823
1917
|
fetchItems = _useResolvedItems.fetchItems;
|
|
1824
1918
|
var isAllNonAsyncItemsSelected = typeof initialItems !== 'function' && selectedItems.length === normalizedItems.length;
|
|
1919
|
+
// special 'item' used as Select All entry in the dropdown list
|
|
1825
1920
|
var selectAll = {
|
|
1826
1921
|
value: utils.useRandomId('select-all'),
|
|
1827
|
-
label:
|
|
1922
|
+
label: labelSelectAll
|
|
1828
1923
|
};
|
|
1924
|
+
// special 'item' used as a replacement selected item tag for when
|
|
1925
|
+
// there are more selected element than maxChips
|
|
1829
1926
|
var summarySelectedItems = React__default["default"].useMemo(function () {
|
|
1830
1927
|
return {
|
|
1831
1928
|
value: EMPTY_INPUT,
|
|
1832
|
-
label: isAllNonAsyncItemsSelected ?
|
|
1929
|
+
label: isAllNonAsyncItemsSelected ? labelAllItemsSelected : selectedItems.length + ' ' + ariaLabelChosenPlural
|
|
1833
1930
|
};
|
|
1834
|
-
}, [isAllNonAsyncItemsSelected, selectedItems,
|
|
1931
|
+
}, [isAllNonAsyncItemsSelected, selectedItems, labelAllItemsSelected, ariaLabelChosenPlural]);
|
|
1835
1932
|
var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1836
1933
|
listItems = _useState[0],
|
|
1837
1934
|
setListItems = _useState[1];
|
|
1838
1935
|
var filterListItems = function filterListItems(_ref2) {
|
|
1839
1936
|
var inputValue = _ref2.inputValue;
|
|
1840
1937
|
return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
|
|
1841
|
-
return
|
|
1938
|
+
return itemFilter(item, inputValue);
|
|
1842
1939
|
})));
|
|
1843
1940
|
};
|
|
1844
1941
|
var updateListItems = function updateListItems(_ref3) {
|
|
@@ -1853,32 +1950,49 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1853
1950
|
inputValue: inputValue
|
|
1854
1951
|
});
|
|
1855
1952
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1856
|
-
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1857
|
-
selectedItems: selectedItems,
|
|
1858
|
-
itemToString: itemToString,
|
|
1859
|
-
onSelectedItemsChange: function onSelectedItemsChange(changes) {
|
|
1860
|
-
var _changes$selectedItem;
|
|
1861
|
-
onChange((_changes$selectedItem = changes.selectedItems) != null ? _changes$selectedItem : []);
|
|
1862
|
-
}
|
|
1863
|
-
}),
|
|
1864
|
-
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1865
|
-
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1866
|
-
removeSelectedItem = _useMultipleSelection.removeSelectedItem;
|
|
1867
1953
|
var _useMultiselectUtils = useMultiselectUtils({
|
|
1868
1954
|
listItems: listItems,
|
|
1869
|
-
|
|
1955
|
+
selectAll: selectAll,
|
|
1870
1956
|
selectedItems: selectedItems
|
|
1871
1957
|
}),
|
|
1872
1958
|
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1873
1959
|
handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
|
|
1874
1960
|
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
1875
|
-
var
|
|
1876
|
-
|
|
1877
|
-
|
|
1961
|
+
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1962
|
+
selectedItems: selectedItems,
|
|
1963
|
+
itemToString: itemToString,
|
|
1964
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1965
|
+
var newSelectedItems = _ref4.selectedItems,
|
|
1966
|
+
type = _ref4.type;
|
|
1967
|
+
switch (type) {
|
|
1968
|
+
case Downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
|
|
1969
|
+
case Downshift.useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
|
|
1970
|
+
case Downshift.useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:
|
|
1971
|
+
case Downshift.useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
|
|
1972
|
+
{
|
|
1973
|
+
if (newSelectedItems !== undefined) onChange(newSelectedItems);
|
|
1974
|
+
break;
|
|
1975
|
+
}
|
|
1976
|
+
}
|
|
1977
|
+
},
|
|
1978
|
+
// Accessibility
|
|
1979
|
+
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
1980
|
+
return getA11yRemovalMessage(_extends({}, options, {
|
|
1981
|
+
selectAllItem: selectAll,
|
|
1982
|
+
removedItem: lastRemovedItem
|
|
1983
|
+
}));
|
|
1984
|
+
}
|
|
1985
|
+
}),
|
|
1986
|
+
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1987
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps;
|
|
1988
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref5) {
|
|
1989
|
+
var changes = _ref5.changes,
|
|
1990
|
+
type = _ref5.type;
|
|
1878
1991
|
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
1879
1992
|
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1880
1993
|
}
|
|
1881
1994
|
switch (type) {
|
|
1995
|
+
// keep menu open and edit input value on item selection
|
|
1882
1996
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1883
1997
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1884
1998
|
{
|
|
@@ -1893,6 +2007,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1893
2007
|
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val = inputRef == null ? void 0 : (_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.value) != null ? _inputRef$current$val : EMPTY_INPUT
|
|
1894
2008
|
});
|
|
1895
2009
|
}
|
|
2010
|
+
// edit input value when selected items is updated outside component
|
|
1896
2011
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1897
2012
|
{
|
|
1898
2013
|
var _inputRef$current$val2, _inputRef$current2;
|
|
@@ -1900,6 +2015,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1900
2015
|
inputValue: clearInputOnSelect ? EMPTY_INPUT : (_inputRef$current$val2 = inputRef == null ? void 0 : (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.value) != null ? _inputRef$current$val2 : EMPTY_INPUT
|
|
1901
2016
|
});
|
|
1902
2017
|
}
|
|
2018
|
+
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
1903
2019
|
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1904
2020
|
{
|
|
1905
2021
|
var _changes$inputValue;
|
|
@@ -1909,10 +2025,11 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1909
2025
|
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
1910
2026
|
if (isSpacePressedOnEmptyInput) {
|
|
1911
2027
|
openMenu();
|
|
1912
|
-
if (isOpen && changes.highlightedIndex) {
|
|
2028
|
+
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
1913
2029
|
handleListItemClicked({
|
|
1914
2030
|
clickedItem: listItems[changes.highlightedIndex],
|
|
1915
|
-
onChange: onChange
|
|
2031
|
+
onChange: onChange,
|
|
2032
|
+
setLastRemovedItem: setLastRemovedItem
|
|
1916
2033
|
});
|
|
1917
2034
|
}
|
|
1918
2035
|
}
|
|
@@ -1923,6 +2040,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1923
2040
|
}
|
|
1924
2041
|
return changes;
|
|
1925
2042
|
}
|
|
2043
|
+
// reset input value when leaving input field
|
|
1926
2044
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1927
2045
|
{
|
|
1928
2046
|
return _extends({}, changes, {
|
|
@@ -1939,9 +2057,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1939
2057
|
itemToString: itemToString,
|
|
1940
2058
|
selectedItem: null,
|
|
1941
2059
|
stateReducer: stateReducer,
|
|
1942
|
-
onStateChange: function onStateChange(
|
|
1943
|
-
var type =
|
|
1944
|
-
clickedItem =
|
|
2060
|
+
onStateChange: function onStateChange(_ref6) {
|
|
2061
|
+
var type = _ref6.type,
|
|
2062
|
+
clickedItem = _ref6.selectedItem;
|
|
1945
2063
|
// clickedItem means item chosen either via mouse or keyboard
|
|
1946
2064
|
if (!clickedItem) return;
|
|
1947
2065
|
switch (type) {
|
|
@@ -1950,14 +2068,29 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1950
2068
|
if (!selectOnBlur) break;
|
|
1951
2069
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1952
2070
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
2071
|
+
{
|
|
2072
|
+
handleListItemClicked({
|
|
2073
|
+
clickedItem: clickedItem,
|
|
2074
|
+
onChange: onChange,
|
|
2075
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2076
|
+
});
|
|
2077
|
+
}
|
|
1957
2078
|
}
|
|
2079
|
+
},
|
|
2080
|
+
// Accessibility
|
|
2081
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2082
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
2083
|
+
selectAllItemIncluded: !hideSelectAll
|
|
2084
|
+
}));
|
|
2085
|
+
},
|
|
2086
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
2087
|
+
// but is left here for when it is fixed
|
|
2088
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
2089
|
+
return getA11ySelectionMessage(_extends({}, options, {
|
|
2090
|
+
selectAllItem: selectAll
|
|
2091
|
+
}));
|
|
1958
2092
|
}
|
|
1959
2093
|
}, rest)),
|
|
1960
|
-
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1961
2094
|
getInputProps = _useCombobox.getInputProps,
|
|
1962
2095
|
getItemProps = _useCombobox.getItemProps,
|
|
1963
2096
|
getLabelProps = _useCombobox.getLabelProps,
|
|
@@ -1977,18 +2110,17 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1977
2110
|
inputValue: inputValue
|
|
1978
2111
|
});
|
|
1979
2112
|
};
|
|
1980
|
-
// role=combobox leads to strange VoiceOver behavior and is therefor omitted
|
|
1981
|
-
// const { role: _, ...comboboxProps } = getComboboxProps();
|
|
1982
|
-
var _getComboboxProps = getComboboxProps(),
|
|
1983
|
-
comboboxProps = _extends({}, (_objectDestructuringEmpty(_getComboboxProps), _getComboboxProps));
|
|
1984
2113
|
return React__default["default"].createElement("div", {
|
|
1985
|
-
className: "eds-dropdown__wrapper
|
|
2114
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
2115
|
+
style: style
|
|
1986
2116
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1987
|
-
append: React__default["default"].createElement(FieldAppend, {
|
|
2117
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
2118
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2119
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1988
2120
|
selectedItems: selectedItems,
|
|
1989
2121
|
isOpen: isOpen,
|
|
1990
2122
|
clearable: clearable,
|
|
1991
|
-
|
|
2123
|
+
labelClearSelectedItems: labelClearAllItems,
|
|
1992
2124
|
focusable: false,
|
|
1993
2125
|
loading: loading,
|
|
1994
2126
|
loadingText: loadingText,
|
|
@@ -1996,18 +2128,16 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1996
2128
|
onClear: handleOnClear,
|
|
1997
2129
|
getToggleButtonProps: getToggleButtonProps
|
|
1998
2130
|
}),
|
|
1999
|
-
className:
|
|
2131
|
+
className: "eds-dropdown",
|
|
2000
2132
|
disabled: disabled,
|
|
2001
2133
|
feedback: feedback,
|
|
2002
2134
|
isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
|
|
2003
2135
|
label: label,
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
}, getLabelProps()),
|
|
2136
|
+
labelId: getLabelProps().id,
|
|
2137
|
+
labelProps: getLabelProps(),
|
|
2007
2138
|
readOnly: readOnly,
|
|
2008
|
-
style: style,
|
|
2009
2139
|
variant: variant
|
|
2010
|
-
},
|
|
2140
|
+
}, rest), React__default["default"].createElement("div", {
|
|
2011
2141
|
className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
|
|
2012
2142
|
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
2013
2143
|
}),
|
|
@@ -2015,19 +2145,34 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2015
2145
|
var _inputRef$current4;
|
|
2016
2146
|
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
2017
2147
|
}
|
|
2018
|
-
}, selectedItems.length <
|
|
2148
|
+
}, selectedItems.length < maxChips ? React__default["default"].createElement(React__default["default"].Fragment, null, selectedItems.length > 1 ? React__default["default"].createElement(a11y.VisuallyHidden, {
|
|
2149
|
+
onClick: function onClick() {
|
|
2150
|
+
var _inputRef$current5;
|
|
2151
|
+
return (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.focus();
|
|
2152
|
+
}
|
|
2153
|
+
}, ariaLabelJumpToInput) : React__default["default"].createElement(React__default["default"].Fragment, null), selectedItems.map(function (selectedItem, index) {
|
|
2019
2154
|
return React__default["default"].createElement(SelectedItemTag, {
|
|
2155
|
+
ariaLabelChosen: ariaLabelChosenSingular,
|
|
2020
2156
|
ariaLabelRemoveSelected: ariaLabelRemoveSelected,
|
|
2021
2157
|
disabled: disabled,
|
|
2022
2158
|
getSelectedItemProps: getSelectedItemProps,
|
|
2023
2159
|
index: index,
|
|
2024
2160
|
key: selectedItem.value,
|
|
2025
2161
|
readOnly: readOnly,
|
|
2026
|
-
removeSelectedItem: removeSelectedItem
|
|
2162
|
+
removeSelectedItem: function removeSelectedItem() {
|
|
2163
|
+
var _inputRef$current6;
|
|
2164
|
+
handleListItemClicked({
|
|
2165
|
+
clickedItem: selectedItem,
|
|
2166
|
+
onChange: onChange,
|
|
2167
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2168
|
+
});
|
|
2169
|
+
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2170
|
+
},
|
|
2027
2171
|
selectedItem: selectedItem
|
|
2028
2172
|
});
|
|
2029
|
-
}) : React__default["default"].createElement(SelectedItemTag, {
|
|
2030
|
-
ariaLabelRemoveSelected:
|
|
2173
|
+
})) : React__default["default"].createElement(SelectedItemTag, {
|
|
2174
|
+
ariaLabelRemoveSelected: labelClearAllItems,
|
|
2175
|
+
ariaLabelChosen: "",
|
|
2031
2176
|
disabled: disabled,
|
|
2032
2177
|
readOnly: readOnly,
|
|
2033
2178
|
removeSelectedItem: handleOnClear,
|
|
@@ -2035,16 +2180,17 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2035
2180
|
}), React__default["default"].createElement("input", _extends({
|
|
2036
2181
|
placeholder: placeholder,
|
|
2037
2182
|
className: "eds-dropdown__input eds-form-control",
|
|
2038
|
-
disabled: readOnly || disabled
|
|
2039
|
-
role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
|
|
2183
|
+
disabled: readOnly || disabled
|
|
2040
2184
|
}, getInputProps(getDropdownProps({
|
|
2041
|
-
|
|
2042
|
-
|
|
2043
|
-
if (!isOpen && openOnFocus) openMenu();
|
|
2185
|
+
onClick: function onClick(e) {
|
|
2186
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
2044
2187
|
},
|
|
2188
|
+
preventKeyAction: isOpen,
|
|
2045
2189
|
ref: inputRef,
|
|
2046
2190
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2047
2191
|
})))))), React__default["default"].createElement(DropdownList, {
|
|
2192
|
+
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2193
|
+
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2048
2194
|
getItemProps: getItemProps,
|
|
2049
2195
|
getMenuProps: getMenuProps,
|
|
2050
2196
|
highlightedIndex: highlightedIndex,
|
|
@@ -2060,17 +2206,22 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2060
2206
|
}));
|
|
2061
2207
|
};
|
|
2062
2208
|
|
|
2063
|
-
var _excluded = ["className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "
|
|
2064
|
-
var
|
|
2209
|
+
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
2210
|
+
var Dropdown = function Dropdown(_ref) {
|
|
2065
2211
|
var _ref3, _selectedItem$label;
|
|
2066
|
-
var
|
|
2212
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
2213
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
2214
|
+
className = _ref.className,
|
|
2215
|
+
_ref$clearable = _ref.clearable,
|
|
2216
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
2067
2217
|
_ref$disabled = _ref.disabled,
|
|
2068
2218
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2069
2219
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2070
2220
|
feedback = _ref.feedback,
|
|
2071
2221
|
initialItems = _ref.items,
|
|
2072
2222
|
label = _ref.label,
|
|
2073
|
-
|
|
2223
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
2224
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
2074
2225
|
listStyle = _ref.listStyle,
|
|
2075
2226
|
loadingText = _ref.loadingText,
|
|
2076
2227
|
onChange = _ref.onChange,
|
|
@@ -2084,25 +2235,27 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2084
2235
|
style = _ref.style,
|
|
2085
2236
|
_ref$variant = _ref.variant,
|
|
2086
2237
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
2087
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2088
|
-
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
2238
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
2089
2239
|
var _useResolvedItems = useResolvedItems(initialItems),
|
|
2090
2240
|
normalizedItems = _useResolvedItems.items,
|
|
2091
2241
|
loading = _useResolvedItems.loading;
|
|
2092
2242
|
var isFilled = selectedItem !== null || placeholder !== undefined;
|
|
2093
2243
|
var _useSelect = Downshift.useSelect({
|
|
2094
2244
|
items: normalizedItems,
|
|
2245
|
+
defaultHighlightedIndex: selectedItem ? undefined : 0,
|
|
2095
2246
|
selectedItem: selectedItem,
|
|
2096
2247
|
onStateChange: function onStateChange(_ref2) {
|
|
2097
2248
|
var type = _ref2.type,
|
|
2098
2249
|
clickedItem = _ref2.selectedItem;
|
|
2099
2250
|
switch (type) {
|
|
2100
2251
|
// @ts-expect-error This falltrough is wanted
|
|
2101
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
2252
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
2102
2253
|
if (!selectOnBlur) break;
|
|
2103
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
2254
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
2104
2255
|
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
2105
|
-
|
|
2256
|
+
{
|
|
2257
|
+
onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
|
|
2258
|
+
}
|
|
2106
2259
|
}
|
|
2107
2260
|
},
|
|
2108
2261
|
itemToString: itemToString
|
|
@@ -2114,12 +2267,16 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2114
2267
|
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
2115
2268
|
highlightedIndex = _useSelect.highlightedIndex;
|
|
2116
2269
|
return React__default["default"].createElement("div", {
|
|
2117
|
-
className: "eds-dropdown__wrapper
|
|
2270
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
2271
|
+
style: style
|
|
2118
2272
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
2119
|
-
append: React__default["default"].createElement(FieldAppend, {
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2273
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
2274
|
+
ariaHiddenToggleButton: true,
|
|
2275
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2276
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
2277
|
+
clearable: clearable,
|
|
2278
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
2279
|
+
focusable: false,
|
|
2123
2280
|
getToggleButtonProps: getToggleButtonProps,
|
|
2124
2281
|
isOpen: isOpen,
|
|
2125
2282
|
loading: loading,
|
|
@@ -2130,7 +2287,7 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2130
2287
|
disabled: readOnly || disabled,
|
|
2131
2288
|
selectedItems: [selectedItem]
|
|
2132
2289
|
}),
|
|
2133
|
-
className: classNames__default["default"]('eds-dropdown',
|
|
2290
|
+
className: classNames__default["default"]('eds-dropdown', {
|
|
2134
2291
|
'eds-dropdown--not-filled': !isFilled
|
|
2135
2292
|
}),
|
|
2136
2293
|
disabled: disabled,
|
|
@@ -2140,14 +2297,14 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2140
2297
|
label: label,
|
|
2141
2298
|
labelId: getLabelProps().id,
|
|
2142
2299
|
labelProps: getLabelProps(),
|
|
2143
|
-
labelTooltip: labelTooltip,
|
|
2144
2300
|
prepend: prepend,
|
|
2145
2301
|
readOnly: readOnly,
|
|
2146
|
-
style: style,
|
|
2147
2302
|
variant: variant
|
|
2148
2303
|
}, rest), React__default["default"].createElement("div", _extends({
|
|
2149
2304
|
className: "eds-dropdown__selected-item-button"
|
|
2150
|
-
}, getToggleButtonProps(
|
|
2305
|
+
}, getToggleButtonProps({
|
|
2306
|
+
id: undefined
|
|
2307
|
+
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React__default["default"].createElement("span", {
|
|
2151
2308
|
className: classNames__default["default"]('eds-dropdown__selected-item-button__placeholder', {
|
|
2152
2309
|
'eds-dropdown__selected-item-button__placeholder--readonly': readOnly
|
|
2153
2310
|
})
|
|
@@ -2164,12 +2321,96 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2164
2321
|
}));
|
|
2165
2322
|
};
|
|
2166
2323
|
|
|
2324
|
+
var _excluded = ["className", "disabled", "disableLabelAnimation", "feedback", "items", "label", "loadingText", "onChange", "prepend", "readOnly", "selectedItem", "style", "value", "variant"];
|
|
2325
|
+
var NativeDropdown = function NativeDropdown(_ref) {
|
|
2326
|
+
var _ref2;
|
|
2327
|
+
var className = _ref.className,
|
|
2328
|
+
_ref$disabled = _ref.disabled,
|
|
2329
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2330
|
+
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2331
|
+
feedback = _ref.feedback,
|
|
2332
|
+
items = _ref.items,
|
|
2333
|
+
label = _ref.label,
|
|
2334
|
+
loadingText = _ref.loadingText,
|
|
2335
|
+
_onChange = _ref.onChange,
|
|
2336
|
+
prepend = _ref.prepend,
|
|
2337
|
+
_ref$readOnly = _ref.readOnly,
|
|
2338
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
2339
|
+
selectedItem = _ref.selectedItem,
|
|
2340
|
+
style = _ref.style,
|
|
2341
|
+
value = _ref.value,
|
|
2342
|
+
variant = _ref.variant,
|
|
2343
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2344
|
+
var _useResolvedItems = useResolvedItems(items),
|
|
2345
|
+
normalizedItems = _useResolvedItems.items,
|
|
2346
|
+
loading = _useResolvedItems.loading;
|
|
2347
|
+
var nativeDropdownId = utils.useRandomId('eds-dropdown-native');
|
|
2348
|
+
return React__default["default"].createElement(form.BaseFormControl, {
|
|
2349
|
+
disabled: disabled,
|
|
2350
|
+
readOnly: readOnly,
|
|
2351
|
+
prepend: prepend,
|
|
2352
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
2353
|
+
hidden: disabled || readOnly,
|
|
2354
|
+
loading: loading,
|
|
2355
|
+
loadingText: loadingText
|
|
2356
|
+
}),
|
|
2357
|
+
className: className,
|
|
2358
|
+
style: style,
|
|
2359
|
+
label: label,
|
|
2360
|
+
labelId: nativeDropdownId,
|
|
2361
|
+
variant: variant,
|
|
2362
|
+
feedback: feedback,
|
|
2363
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
2364
|
+
isFilled: true
|
|
2365
|
+
}, React__default["default"].createElement("select", _extends({
|
|
2366
|
+
"aria-invalid": variant === 'error',
|
|
2367
|
+
"aria-labelledby": nativeDropdownId,
|
|
2368
|
+
"aria-busy": loading,
|
|
2369
|
+
className: "eds-form-control eds-dropdown--native",
|
|
2370
|
+
disabled: disabled || readOnly,
|
|
2371
|
+
onChange: function onChange(event) {
|
|
2372
|
+
var _normalizedItems$find;
|
|
2373
|
+
_onChange == null ? void 0 : _onChange({
|
|
2374
|
+
value: event.target.value,
|
|
2375
|
+
selectedItem: (_normalizedItems$find = normalizedItems.find(function (item) {
|
|
2376
|
+
return item.value === event.target.value;
|
|
2377
|
+
})) != null ? _normalizedItems$find : null,
|
|
2378
|
+
target: event.target
|
|
2379
|
+
});
|
|
2380
|
+
},
|
|
2381
|
+
value: (_ref2 = value != null ? value : selectedItem == null ? void 0 : selectedItem.value) != null ? _ref2 : undefined
|
|
2382
|
+
}, rest), normalizedItems.map(function (item) {
|
|
2383
|
+
return React__default["default"].createElement("option", {
|
|
2384
|
+
key: item.value,
|
|
2385
|
+
value: item.value
|
|
2386
|
+
}, item.label);
|
|
2387
|
+
})));
|
|
2388
|
+
};
|
|
2389
|
+
var FieldAppend = function FieldAppend(_ref3) {
|
|
2390
|
+
var loading = _ref3.loading,
|
|
2391
|
+
loadingText = _ref3.loadingText,
|
|
2392
|
+
hidden = _ref3.hidden;
|
|
2393
|
+
if (loading) {
|
|
2394
|
+
return React__default["default"].createElement("div", {
|
|
2395
|
+
className: "eds-dropdown-native__loading-dots"
|
|
2396
|
+
}, React__default["default"].createElement(loader.LoadingDots, {
|
|
2397
|
+
"aria-label": loadingText
|
|
2398
|
+
}));
|
|
2399
|
+
}
|
|
2400
|
+
if (hidden) {
|
|
2401
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
2402
|
+
}
|
|
2403
|
+
return React__default["default"].createElement(icons.DownArrowIcon, {
|
|
2404
|
+
inline: true
|
|
2405
|
+
});
|
|
2406
|
+
};
|
|
2407
|
+
|
|
2167
2408
|
utils.warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
|
|
2168
2409
|
|
|
2169
2410
|
exports.Dropdown = Dropdown;
|
|
2170
|
-
exports.
|
|
2411
|
+
exports.DropdownDeprecated = DropdownDeprecated;
|
|
2171
2412
|
exports.MultiSelect = MultiSelect;
|
|
2172
|
-
exports.
|
|
2413
|
+
exports.MultiSelectDeprecated = MultiSelectDeprecated;
|
|
2173
2414
|
exports.NativeDropdown = NativeDropdown;
|
|
2174
|
-
exports.
|
|
2415
|
+
exports.SearchableDropdown = SearchableDropdown;
|
|
2175
2416
|
//# sourceMappingURL=dropdown.cjs.development.js.map
|