@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
package/dist/dropdown.esm.js
CHANGED
|
@@ -451,7 +451,7 @@ var useDownshift = function useDownshift() {
|
|
|
451
451
|
};
|
|
452
452
|
|
|
453
453
|
var _excluded$c = ["items"];
|
|
454
|
-
var
|
|
454
|
+
var DropdownListDeprecated = function DropdownListDeprecated(_ref) {
|
|
455
455
|
var items = _ref.items,
|
|
456
456
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
|
|
457
457
|
var _useDownshift = useDownshift(),
|
|
@@ -487,7 +487,7 @@ var DropdownList$1 = function DropdownList(_ref) {
|
|
|
487
487
|
}) : null);
|
|
488
488
|
};
|
|
489
489
|
|
|
490
|
-
var
|
|
490
|
+
var DropdownDeprecatedToggleButton = function DropdownDeprecatedToggleButton() {
|
|
491
491
|
var _useDownshift = useDownshift(),
|
|
492
492
|
getToggleButtonProps = _useDownshift.getToggleButtonProps,
|
|
493
493
|
isOpen = _useDownshift.isOpen;
|
|
@@ -502,7 +502,7 @@ var DropdownToggleButton$1 = function DropdownToggleButton() {
|
|
|
502
502
|
};
|
|
503
503
|
|
|
504
504
|
var _excluded$b = ["className", "children"];
|
|
505
|
-
var
|
|
505
|
+
var DropdownDeprecatedLoadingDots = function DropdownDeprecatedLoadingDots(_ref) {
|
|
506
506
|
var className = _ref.className,
|
|
507
507
|
children = _ref.children,
|
|
508
508
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
@@ -512,7 +512,7 @@ var DropdownLoadingDots = function DropdownLoadingDots(_ref) {
|
|
|
512
512
|
};
|
|
513
513
|
|
|
514
514
|
var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
|
|
515
|
-
var
|
|
515
|
+
var BaseDropdownDeprecated = function BaseDropdownDeprecated(_ref) {
|
|
516
516
|
var children = _ref.children,
|
|
517
517
|
className = _ref.className,
|
|
518
518
|
items = _ref.items,
|
|
@@ -545,7 +545,7 @@ var BaseDropdown = function BaseDropdown(_ref) {
|
|
|
545
545
|
isFilled: isFilled,
|
|
546
546
|
labelProps: getLabelProps(),
|
|
547
547
|
disableLabelAnimation: disableLabelAnimation
|
|
548
|
-
}, rest), children), React.createElement(
|
|
548
|
+
}, rest), children), React.createElement(DropdownListDeprecated, _extends({
|
|
549
549
|
items: items,
|
|
550
550
|
style: _extends({
|
|
551
551
|
position: 'absolute',
|
|
@@ -576,16 +576,16 @@ var Appendix$1 = function Appendix(_ref3) {
|
|
|
576
576
|
loadingText = _ref3.loadingText,
|
|
577
577
|
readOnly = _ref3.readOnly;
|
|
578
578
|
if (loading) {
|
|
579
|
-
return React.createElement(
|
|
579
|
+
return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
580
580
|
}
|
|
581
581
|
if (readOnly) {
|
|
582
582
|
return null;
|
|
583
583
|
}
|
|
584
|
-
return clearable ? React.createElement(React.Fragment, null, React.createElement(ClearButton$1, null), " ", React.createElement(
|
|
584
|
+
return clearable ? React.createElement(React.Fragment, null, React.createElement(ClearButton$1, null), " ", React.createElement(DropdownDeprecatedToggleButton, null)) : React.createElement(DropdownDeprecatedToggleButton, null);
|
|
585
585
|
};
|
|
586
586
|
|
|
587
587
|
var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
|
|
588
|
-
var
|
|
588
|
+
var RegularDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
589
589
|
var disabled = _ref.disabled,
|
|
590
590
|
_ref$placeholder = _ref.placeholder,
|
|
591
591
|
placeholder = _ref$placeholder === void 0 ? 'Vennligst velg' : _ref$placeholder,
|
|
@@ -610,7 +610,7 @@ var RegularDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
610
610
|
isOpen = _useDownshift.isOpen,
|
|
611
611
|
highlightedIndex = _useDownshift.highlightedIndex,
|
|
612
612
|
setHighlightedIndex = _useDownshift.setHighlightedIndex;
|
|
613
|
-
return React.createElement(
|
|
613
|
+
return React.createElement(BaseDropdownDeprecated, _extends({
|
|
614
614
|
disabled: disabled,
|
|
615
615
|
listStyle: listStyle,
|
|
616
616
|
items: items,
|
|
@@ -671,7 +671,17 @@ function LowerCaseFilterTest(item, input) {
|
|
|
671
671
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
672
672
|
return inputRegex.test(item.label);
|
|
673
673
|
}
|
|
674
|
-
|
|
674
|
+
/**
|
|
675
|
+
* @deprecated
|
|
676
|
+
* New SearchableDropdown available
|
|
677
|
+
*
|
|
678
|
+
* migration guide to new dropdown:
|
|
679
|
+
* - change import from 'DropdownDeprecated' to 'Dropdown'
|
|
680
|
+
* - change from 'value' to 'selectedItem'
|
|
681
|
+
* + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
|
|
682
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
683
|
+
*/
|
|
684
|
+
var SearchableDropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
675
685
|
var _ref$disabled = _ref.disabled,
|
|
676
686
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
677
687
|
className = _ref.className,
|
|
@@ -712,7 +722,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
712
722
|
return itemFilter(item, inputValue);
|
|
713
723
|
});
|
|
714
724
|
}, [inputValue, items, itemFilter]);
|
|
715
|
-
return React.createElement(
|
|
725
|
+
return React.createElement(BaseDropdownDeprecated, {
|
|
716
726
|
items: filteredItems,
|
|
717
727
|
disabled: disabled,
|
|
718
728
|
readOnly: readOnly,
|
|
@@ -754,7 +764,7 @@ var SearchableDropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
754
764
|
})));
|
|
755
765
|
});
|
|
756
766
|
|
|
757
|
-
var
|
|
767
|
+
var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
|
|
758
768
|
var children = _ref.children,
|
|
759
769
|
feedback = _ref.feedback,
|
|
760
770
|
variant = _ref.variant,
|
|
@@ -892,7 +902,18 @@ debounceTimeout) {
|
|
|
892
902
|
};
|
|
893
903
|
|
|
894
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"];
|
|
895
|
-
|
|
905
|
+
/**
|
|
906
|
+
* @deprecated
|
|
907
|
+
* New Dropdown available
|
|
908
|
+
*
|
|
909
|
+
* migration guide to new dropdown:
|
|
910
|
+
* - change import from 'DropdownDeprecated' to 'Dropdown'
|
|
911
|
+
* + if 'searchable', switch to 'SearchableDropdown'
|
|
912
|
+
* - change from 'value' to 'selectedItem'
|
|
913
|
+
* + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
|
|
914
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
915
|
+
*/
|
|
916
|
+
var DropdownDeprecated = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
896
917
|
var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
|
|
897
918
|
debounceTimeout = _ref.debounceTimeout,
|
|
898
919
|
disabled = _ref.disabled,
|
|
@@ -927,7 +948,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
927
948
|
var selectedItem = value === undefined ? undefined : normalizedItems.find(function (item) {
|
|
928
949
|
return value === item.value;
|
|
929
950
|
}) || null;
|
|
930
|
-
var RenderedDropdown = searchable ?
|
|
951
|
+
var RenderedDropdown = searchable ? SearchableDropdownDeprecated : RegularDropdownDeprecated;
|
|
931
952
|
var searchAbleProps = searchable ? {
|
|
932
953
|
itemFilter: itemFilter,
|
|
933
954
|
name: rest.name,
|
|
@@ -945,7 +966,7 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
945
966
|
className: className,
|
|
946
967
|
style: style,
|
|
947
968
|
searchable: searchable
|
|
948
|
-
}, rest), React.createElement(
|
|
969
|
+
}, rest), React.createElement(DropdownInputGroupDeprecated, {
|
|
949
970
|
feedback: feedback,
|
|
950
971
|
variant: variant
|
|
951
972
|
}, React.createElement(RenderedDropdown, _extends({
|
|
@@ -966,68 +987,10 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
966
987
|
}, searchAbleProps))));
|
|
967
988
|
});
|
|
968
989
|
|
|
969
|
-
var _excluded$6 = ["className", "disabled", "
|
|
970
|
-
var
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
974
|
-
_ref$readOnly = _ref.readOnly,
|
|
975
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
976
|
-
items = _ref.items,
|
|
977
|
-
loadingText = _ref.loadingText,
|
|
978
|
-
prepend = _ref.prepend,
|
|
979
|
-
style = _ref.style,
|
|
980
|
-
label = _ref.label,
|
|
981
|
-
variant = _ref.variant,
|
|
982
|
-
feedback = _ref.feedback,
|
|
983
|
-
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
984
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
985
|
-
var _useResolvedItems = useResolvedItems(items),
|
|
986
|
-
normalizedItems = _useResolvedItems.items,
|
|
987
|
-
loading = _useResolvedItems.loading;
|
|
988
|
-
var rightSideIcon = React.createElement(DownArrowIcon, {
|
|
989
|
-
inline: true,
|
|
990
|
-
"aria-hidden": "true"
|
|
991
|
-
});
|
|
992
|
-
if (disabled || readOnly) {
|
|
993
|
-
rightSideIcon = null;
|
|
994
|
-
} else if (loading) {
|
|
995
|
-
rightSideIcon = React.createElement(DropdownLoadingDots, {
|
|
996
|
-
"aria-hidden": "true"
|
|
997
|
-
}, loadingText);
|
|
998
|
-
}
|
|
999
|
-
var nativeDropdownId = useRandomId('eds-native-dropdown');
|
|
1000
|
-
return React.createElement(BaseFormControl, {
|
|
1001
|
-
disabled: disabled,
|
|
1002
|
-
readOnly: readOnly,
|
|
1003
|
-
prepend: prepend,
|
|
1004
|
-
append: rightSideIcon,
|
|
1005
|
-
className: className,
|
|
1006
|
-
style: style,
|
|
1007
|
-
label: label,
|
|
1008
|
-
labelId: nativeDropdownId,
|
|
1009
|
-
variant: variant,
|
|
1010
|
-
feedback: feedback,
|
|
1011
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1012
|
-
isFilled: true
|
|
1013
|
-
}, React.createElement("select", _extends({
|
|
1014
|
-
"aria-invalid": variant === 'error',
|
|
1015
|
-
"aria-labelledby": nativeDropdownId,
|
|
1016
|
-
"aria-busy": loading,
|
|
1017
|
-
className: "eds-form-control eds-dropdown",
|
|
1018
|
-
disabled: disabled || readOnly
|
|
1019
|
-
}, rest), normalizedItems.map(function (item) {
|
|
1020
|
-
return React.createElement("option", {
|
|
1021
|
-
key: item.value,
|
|
1022
|
-
value: item.value
|
|
1023
|
-
}, item.label);
|
|
1024
|
-
})));
|
|
1025
|
-
};
|
|
1026
|
-
|
|
1027
|
-
var _excluded$5 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
|
|
1028
|
-
var MultiSelectContext = /*#__PURE__*/React.createContext(null);
|
|
1029
|
-
var useMultiSelectContext = function useMultiSelectContext() {
|
|
1030
|
-
var context = React.useContext(MultiSelectContext);
|
|
990
|
+
var _excluded$6 = ["className", "clearable", "debounceTimeout", "disabled", "feedback", "initialSelectedItems", "items", "itemsSelectedLabel", "label", "listStyle", "loading", "loadingText", "onChange", "openOnFocus", "readOnly", "style", "variant"];
|
|
991
|
+
var MultiSelectOldContext = /*#__PURE__*/React.createContext(null);
|
|
992
|
+
var useMultiSelectOldContext = function useMultiSelectOldContext() {
|
|
993
|
+
var context = React.useContext(MultiSelectOldContext);
|
|
1031
994
|
if (!context) {
|
|
1032
995
|
throw new Error('You need to wrap your component in a DownshiftProvider');
|
|
1033
996
|
}
|
|
@@ -1039,8 +1002,8 @@ actionAndChanges) {
|
|
|
1039
1002
|
var changes = actionAndChanges.changes,
|
|
1040
1003
|
type = actionAndChanges.type;
|
|
1041
1004
|
switch (type) {
|
|
1042
|
-
case useSelect.stateChangeTypes.
|
|
1043
|
-
case useSelect.stateChangeTypes.
|
|
1005
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
1006
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
|
|
1044
1007
|
case useSelect.stateChangeTypes.ItemClick:
|
|
1045
1008
|
return _extends({}, changes, {
|
|
1046
1009
|
isOpen: true,
|
|
@@ -1050,7 +1013,17 @@ actionAndChanges) {
|
|
|
1050
1013
|
return changes;
|
|
1051
1014
|
}
|
|
1052
1015
|
}
|
|
1053
|
-
|
|
1016
|
+
/**
|
|
1017
|
+
* @deprecated
|
|
1018
|
+
* New MultiSelect available
|
|
1019
|
+
*
|
|
1020
|
+
* migration guide to new dropdown:
|
|
1021
|
+
* - change import from 'MultiSelectDeprecated' to 'MultiSelect'
|
|
1022
|
+
* - add state containing selected items to 'selectedItems' prop
|
|
1023
|
+
* + type of 'selectedItems' is 'NormalizedDropdownType[]' and does not include 'string'
|
|
1024
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
1025
|
+
*/
|
|
1026
|
+
var MultiSelectDeprecated = function MultiSelectDeprecated(_ref) {
|
|
1054
1027
|
var className = _ref.className,
|
|
1055
1028
|
_ref$clearable = _ref.clearable,
|
|
1056
1029
|
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
@@ -1080,7 +1053,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1080
1053
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1081
1054
|
style = _ref.style,
|
|
1082
1055
|
variant = _ref.variant,
|
|
1083
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
1056
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
1084
1057
|
var _useResolvedItems = useResolvedItems(input, debounceTimeout),
|
|
1085
1058
|
items = _useResolvedItems.items;
|
|
1086
1059
|
var _useState = useState(initialSelectedItems),
|
|
@@ -1126,7 +1099,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1126
1099
|
openMenu = _useSelect.openMenu;
|
|
1127
1100
|
var buttonText = selectedItems.length ? itemsSelectedLabel(selectedItems) : '';
|
|
1128
1101
|
var multiSelectId = useRandomId('eds-multiselect');
|
|
1129
|
-
return React.createElement(
|
|
1102
|
+
return React.createElement(MultiSelectOldContext.Provider, {
|
|
1130
1103
|
value: {
|
|
1131
1104
|
isOpen: isOpen,
|
|
1132
1105
|
reset: reset,
|
|
@@ -1202,8 +1175,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1202
1175
|
};
|
|
1203
1176
|
var ClearButton = function ClearButton(_ref3) {
|
|
1204
1177
|
var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
|
|
1205
|
-
var
|
|
1206
|
-
reset =
|
|
1178
|
+
var _useMultiSelectOldCon = useMultiSelectOldContext(),
|
|
1179
|
+
reset = _useMultiSelectOldCon.reset;
|
|
1207
1180
|
return React.createElement(React.Fragment, null, React.createElement("button", _extends({
|
|
1208
1181
|
className: "eds-dropdown__clear-button",
|
|
1209
1182
|
type: "button",
|
|
@@ -1221,7 +1194,7 @@ var Appendix = function Appendix(_ref4) {
|
|
|
1221
1194
|
readOnly = _ref4.readOnly,
|
|
1222
1195
|
hasSelected = _ref4.hasSelected;
|
|
1223
1196
|
if (loading) {
|
|
1224
|
-
return React.createElement(
|
|
1197
|
+
return React.createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
1225
1198
|
}
|
|
1226
1199
|
if (readOnly) {
|
|
1227
1200
|
return null;
|
|
@@ -1229,11 +1202,11 @@ var Appendix = function Appendix(_ref4) {
|
|
|
1229
1202
|
return hasSelected ? React.createElement(React.Fragment, null, React.createElement(ClearButton, null), React.createElement(DropdownToggleButton, null)) : React.createElement(DropdownToggleButton, null);
|
|
1230
1203
|
};
|
|
1231
1204
|
var DropdownToggleButton = function DropdownToggleButton() {
|
|
1232
|
-
var
|
|
1233
|
-
getToggleButtonProps =
|
|
1234
|
-
isOpen =
|
|
1235
|
-
openMenu =
|
|
1236
|
-
openOnFocus =
|
|
1205
|
+
var _useMultiSelectOldCon2 = useMultiSelectOldContext(),
|
|
1206
|
+
getToggleButtonProps = _useMultiSelectOldCon2.getToggleButtonProps,
|
|
1207
|
+
isOpen = _useMultiSelectOldCon2.isOpen,
|
|
1208
|
+
openMenu = _useMultiSelectOldCon2.openMenu,
|
|
1209
|
+
openOnFocus = _useMultiSelectOldCon2.openOnFocus;
|
|
1237
1210
|
return React.createElement("button", _extends({}, getToggleButtonProps({
|
|
1238
1211
|
className: classNames('eds-dropdown__toggle-button', {
|
|
1239
1212
|
'eds-dropdown__toggle-button--open': isOpen
|
|
@@ -1265,33 +1238,51 @@ function SelectedItemsLabel(items) {
|
|
|
1265
1238
|
}).toString() : items.length + " elementer valgt";
|
|
1266
1239
|
}
|
|
1267
1240
|
|
|
1268
|
-
var _excluded$
|
|
1241
|
+
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1269
1242
|
var DropdownList = function DropdownList(_ref) {
|
|
1270
|
-
var
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1243
|
+
var _ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1244
|
+
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1245
|
+
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
1246
|
+
ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
|
|
1274
1247
|
getItemProps = _ref.getItemProps,
|
|
1248
|
+
getMenuProps = _ref.getMenuProps,
|
|
1249
|
+
isOpen = _ref.isOpen,
|
|
1275
1250
|
highlightedIndex = _ref.highlightedIndex,
|
|
1251
|
+
listItems = _ref.listItems,
|
|
1252
|
+
listStyle = _ref.listStyle,
|
|
1276
1253
|
_ref$loading = _ref.loading,
|
|
1277
1254
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1278
|
-
selectAllCheckboxState = _ref.selectAllCheckboxState,
|
|
1279
|
-
selectAllItem = _ref.selectAllItem,
|
|
1280
|
-
listStyle = _ref.listStyle,
|
|
1281
|
-
_ref$noMatchesText = _ref.noMatchesText,
|
|
1282
|
-
noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen treff for søket' : _ref$noMatchesText,
|
|
1283
1255
|
_ref$loadingText = _ref.loadingText,
|
|
1284
1256
|
loadingText = _ref$loadingText === void 0 ? 'Laster inn …' : _ref$loadingText,
|
|
1285
|
-
_ref$
|
|
1286
|
-
|
|
1287
|
-
|
|
1257
|
+
_ref$noMatchesText = _ref.noMatchesText,
|
|
1258
|
+
noMatchesText = _ref$noMatchesText === void 0 ? 'Ingen treff for søket' : _ref$noMatchesText,
|
|
1259
|
+
selectAllCheckboxState = _ref.selectAllCheckboxState,
|
|
1260
|
+
selectAllItem = _ref.selectAllItem,
|
|
1261
|
+
selectedItems = _ref.selectedItems,
|
|
1262
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$5);
|
|
1288
1263
|
var isMultiselect = selectAllItem !== undefined;
|
|
1289
1264
|
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
|
|
1290
|
-
var
|
|
1265
|
+
var isItemSelected = function isItemSelected(item) {
|
|
1291
1266
|
return selectedItems.some(function (selectedItem) {
|
|
1292
|
-
return selectedItem.value === item.value;
|
|
1267
|
+
return selectedItem.value === item.value && selectedItem.label === item.label;
|
|
1293
1268
|
});
|
|
1294
1269
|
};
|
|
1270
|
+
var ariaLabelSelectAll = function ariaLabelSelectAll() {
|
|
1271
|
+
switch (selectAllCheckboxState == null ? void 0 : selectAllCheckboxState()) {
|
|
1272
|
+
case 'indeterminate':
|
|
1273
|
+
{
|
|
1274
|
+
return (selectAllItem == null ? void 0 : selectAllItem.label) + ", delvis valgt";
|
|
1275
|
+
}
|
|
1276
|
+
case true:
|
|
1277
|
+
{
|
|
1278
|
+
return (selectAllItem == null ? void 0 : selectAllItem.label) + ", " + ariaLabelChosenSingular;
|
|
1279
|
+
}
|
|
1280
|
+
default:
|
|
1281
|
+
{
|
|
1282
|
+
return "" + (selectAllItem == null ? void 0 : selectAllItem.label);
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
};
|
|
1295
1286
|
var selectAllListItemContent = function selectAllListItemContent() {
|
|
1296
1287
|
return React.createElement(React.Fragment, null, React.createElement(Checkbox, {
|
|
1297
1288
|
"aria-hidden": "true",
|
|
@@ -1302,13 +1293,14 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1302
1293
|
},
|
|
1303
1294
|
tabIndex: -1
|
|
1304
1295
|
}), React.createElement("span", {
|
|
1305
|
-
className: "eds-dropdown__list__item__text"
|
|
1296
|
+
className: "eds-dropdown__list__item__text",
|
|
1297
|
+
"aria-label": ariaLabelSelectAll()
|
|
1306
1298
|
}, selectAllItem == null ? void 0 : selectAllItem.label));
|
|
1307
1299
|
};
|
|
1308
1300
|
var listItemContent = function listItemContent(item) {
|
|
1309
1301
|
return React.createElement(React.Fragment, null, React.createElement(Checkbox, {
|
|
1310
1302
|
"aria-hidden": "true",
|
|
1311
|
-
checked:
|
|
1303
|
+
checked: isItemSelected(item),
|
|
1312
1304
|
className: "eds-dropdown__list__item__checkbox",
|
|
1313
1305
|
onChange: function onChange() {
|
|
1314
1306
|
return;
|
|
@@ -1319,7 +1311,7 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1319
1311
|
tabIndex: -1
|
|
1320
1312
|
}), React.createElement("span", {
|
|
1321
1313
|
className: "eds-dropdown__list__item__text"
|
|
1322
|
-
}, item.label, React.createElement(VisuallyHidden, null,
|
|
1314
|
+
}, item.label, React.createElement(VisuallyHidden, null, isItemSelected(item) ? ariaLabelSelectedItem : '')), item.icons && React.createElement("span", null, item.icons.map(function (Icon, index) {
|
|
1323
1315
|
return React.createElement(Icon, {
|
|
1324
1316
|
key: index,
|
|
1325
1317
|
inline: true,
|
|
@@ -1328,35 +1320,166 @@ var DropdownList = function DropdownList(_ref) {
|
|
|
1328
1320
|
})));
|
|
1329
1321
|
};
|
|
1330
1322
|
return (
|
|
1331
|
-
// use popover from @entur/tooltip when
|
|
1323
|
+
// use popover from @entur/tooltip when that package upgrades to floating-ui
|
|
1332
1324
|
React.createElement("ul", _extends({}, getMenuProps(), {
|
|
1333
|
-
className:
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
}),
|
|
1325
|
+
className: "eds-dropdown__list",
|
|
1326
|
+
style: _extends({
|
|
1327
|
+
display: isOpen ? 'inline-block' : 'none'
|
|
1328
|
+
}, rest.style, listStyle)
|
|
1329
|
+
}), listItems.length > 0 && listItems.map(function (item, index) {
|
|
1338
1330
|
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1339
|
-
if (itemIsSelectAll && listItems.length <= 2) return
|
|
1331
|
+
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1340
1332
|
return React.createElement("li", _extends({
|
|
1341
|
-
key: item.
|
|
1333
|
+
key: item.label,
|
|
1342
1334
|
className: classNames('eds-dropdown__list__item', {
|
|
1343
1335
|
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1344
1336
|
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1345
|
-
'eds-dropdown__list__item--selected': !isMultiselect &&
|
|
1337
|
+
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1346
1338
|
})
|
|
1347
1339
|
}, getItemProps({
|
|
1348
|
-
key:
|
|
1340
|
+
key: item.label,
|
|
1349
1341
|
item: item,
|
|
1350
1342
|
index: index
|
|
1351
1343
|
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
1352
|
-
}),
|
|
1344
|
+
}), isNoMatches && React.createElement("li", {
|
|
1345
|
+
key: "dropdown-list-no-match",
|
|
1353
1346
|
className: "eds-dropdown__list__item"
|
|
1354
|
-
}, noMatchesText),
|
|
1347
|
+
}, noMatchesText), loading && React.createElement("li", {
|
|
1348
|
+
key: "dropdown-list-loading",
|
|
1355
1349
|
className: "eds-dropdown__list__item"
|
|
1356
1350
|
}, loadingText))
|
|
1357
1351
|
);
|
|
1358
1352
|
};
|
|
1359
1353
|
|
|
1354
|
+
var _excluded$4 = ["tabIndex"];
|
|
1355
|
+
var SelectedItemTag = function SelectedItemTag(_ref) {
|
|
1356
|
+
var _getSelectedItemProps;
|
|
1357
|
+
var ariaLabelRemoveSelected = _ref.ariaLabelRemoveSelected,
|
|
1358
|
+
_ref$ariaLabelChosen = _ref.ariaLabelChosen,
|
|
1359
|
+
ariaLabelChosen = _ref$ariaLabelChosen === void 0 ? 'valgt' : _ref$ariaLabelChosen,
|
|
1360
|
+
disabled = _ref.disabled,
|
|
1361
|
+
getSelectedItemProps = _ref.getSelectedItemProps,
|
|
1362
|
+
index = _ref.index,
|
|
1363
|
+
readOnly = _ref.readOnly,
|
|
1364
|
+
removeSelectedItem = _ref.removeSelectedItem,
|
|
1365
|
+
selectedItem = _ref.selectedItem;
|
|
1366
|
+
var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
|
|
1367
|
+
selectedItem: selectedItem,
|
|
1368
|
+
index: index
|
|
1369
|
+
})) != null ? _getSelectedItemProps : {},
|
|
1370
|
+
selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
|
|
1371
|
+
return React.createElement(TagChip, _extends({
|
|
1372
|
+
className: classNames('eds-dropdown__selected-item-tag', {
|
|
1373
|
+
'eds-dropdown__selected-item-tag--readonly': readOnly,
|
|
1374
|
+
'eds-dropdown__selected-item-tag--disabled': disabled
|
|
1375
|
+
})
|
|
1376
|
+
}, selectedItemProps, {
|
|
1377
|
+
onClose: function onClose(e) {
|
|
1378
|
+
e.stopPropagation();
|
|
1379
|
+
removeSelectedItem(selectedItem);
|
|
1380
|
+
},
|
|
1381
|
+
closeButtonAriaLabel: selectedItem.label + " " + ariaLabelChosen + ", " + ariaLabelRemoveSelected + " ",
|
|
1382
|
+
key: selectedItem.value,
|
|
1383
|
+
"aria-live": "polite"
|
|
1384
|
+
}), React.createElement("span", {
|
|
1385
|
+
"aria-hidden": "true"
|
|
1386
|
+
}, selectedItem.label));
|
|
1387
|
+
};
|
|
1388
|
+
var FieldAppend$1 = function FieldAppend(_ref3) {
|
|
1389
|
+
var _ref3$ariaHiddenToggl = _ref3.ariaHiddenToggleButton,
|
|
1390
|
+
ariaHiddenToggleButton = _ref3$ariaHiddenToggl === void 0 ? false : _ref3$ariaHiddenToggl,
|
|
1391
|
+
ariaLabelCloseList = _ref3.ariaLabelCloseList,
|
|
1392
|
+
ariaLabelOpenList = _ref3.ariaLabelOpenList,
|
|
1393
|
+
_ref3$clearable = _ref3.clearable,
|
|
1394
|
+
clearable = _ref3$clearable === void 0 ? false : _ref3$clearable,
|
|
1395
|
+
labelClearSelectedItems = _ref3.labelClearSelectedItems,
|
|
1396
|
+
_ref3$disabled = _ref3.disabled,
|
|
1397
|
+
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
1398
|
+
_ref3$focusable = _ref3.focusable,
|
|
1399
|
+
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable,
|
|
1400
|
+
getToggleButtonProps = _ref3.getToggleButtonProps,
|
|
1401
|
+
isOpen = _ref3.isOpen,
|
|
1402
|
+
_ref3$loading = _ref3.loading,
|
|
1403
|
+
loading = _ref3$loading === void 0 ? false : _ref3$loading,
|
|
1404
|
+
_ref3$loadingText = _ref3.loadingText,
|
|
1405
|
+
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1406
|
+
onClear = _ref3.onClear,
|
|
1407
|
+
selectedItems = _ref3.selectedItems;
|
|
1408
|
+
if (loading) {
|
|
1409
|
+
return React.createElement("div", {
|
|
1410
|
+
className: 'eds-dropdown-appendix__toggle-button--loading-dots'
|
|
1411
|
+
}, React.createElement(LoadingDots, {
|
|
1412
|
+
"aria-label": loadingText
|
|
1413
|
+
}));
|
|
1414
|
+
}
|
|
1415
|
+
if (disabled) {
|
|
1416
|
+
return null;
|
|
1417
|
+
}
|
|
1418
|
+
return React.createElement("div", {
|
|
1419
|
+
className: "eds-dropdown-appendix"
|
|
1420
|
+
}, clearable && (selectedItems == null ? void 0 : selectedItems.length) > 0 && selectedItems[0] !== null && React.createElement(React.Fragment, null, React.createElement(ClearableButton, {
|
|
1421
|
+
onClear: onClear,
|
|
1422
|
+
focusable: true,
|
|
1423
|
+
labelClearSelectedItems: labelClearSelectedItems
|
|
1424
|
+
}), React.createElement("div", {
|
|
1425
|
+
className: "eds-dropdown-appendix__divider"
|
|
1426
|
+
})), React.createElement(ToggleButton, {
|
|
1427
|
+
"aria-hidden": ariaHiddenToggleButton,
|
|
1428
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
1429
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1430
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
1431
|
+
isOpen: isOpen,
|
|
1432
|
+
focusable: focusable
|
|
1433
|
+
}));
|
|
1434
|
+
};
|
|
1435
|
+
var ClearableButton = function ClearableButton(_ref4) {
|
|
1436
|
+
var onClear = _ref4.onClear,
|
|
1437
|
+
_ref4$labelClearSelec = _ref4.labelClearSelectedItems,
|
|
1438
|
+
labelClearSelectedItems = _ref4$labelClearSelec === void 0 ? 'Fjern valgte' : _ref4$labelClearSelec,
|
|
1439
|
+
_ref4$focusable = _ref4.focusable,
|
|
1440
|
+
focusable = _ref4$focusable === void 0 ? false : _ref4$focusable;
|
|
1441
|
+
return React.createElement(Tooltip, {
|
|
1442
|
+
"aria-hidden": "true",
|
|
1443
|
+
placement: "top",
|
|
1444
|
+
content: labelClearSelectedItems,
|
|
1445
|
+
className: "eds-dropdown-appendix__clear-button__tooltip"
|
|
1446
|
+
}, React.createElement(IconButton, {
|
|
1447
|
+
className: "eds-dropdown-appendix__clear-button",
|
|
1448
|
+
type: "button",
|
|
1449
|
+
tabIndex: focusable ? 0 : 1,
|
|
1450
|
+
onClick: onClear,
|
|
1451
|
+
"aria-label": labelClearSelectedItems
|
|
1452
|
+
}, React.createElement(CloseSmallIcon, {
|
|
1453
|
+
"aria-hidden": "true"
|
|
1454
|
+
})));
|
|
1455
|
+
};
|
|
1456
|
+
var ToggleButton = function ToggleButton(_ref5) {
|
|
1457
|
+
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1458
|
+
isOpen = _ref5.isOpen,
|
|
1459
|
+
_ref5$ariaHidden = _ref5['aria-hidden'],
|
|
1460
|
+
ariaHidden = _ref5$ariaHidden === void 0 ? false : _ref5$ariaHidden,
|
|
1461
|
+
_ref5$ariaLabelCloseL = _ref5.ariaLabelCloseList,
|
|
1462
|
+
ariaLabelCloseList = _ref5$ariaLabelCloseL === void 0 ? 'Lukk liste med valg' : _ref5$ariaLabelCloseL,
|
|
1463
|
+
_ref5$ariaLabelOpenLi = _ref5.ariaLabelOpenList,
|
|
1464
|
+
ariaLabelOpenList = _ref5$ariaLabelOpenLi === void 0 ? 'Åpne liste med valg' : _ref5$ariaLabelOpenLi,
|
|
1465
|
+
_ref5$focusable = _ref5.focusable,
|
|
1466
|
+
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1467
|
+
return React.createElement(IconButton, _extends({}, getToggleButtonProps({
|
|
1468
|
+
className: classNames('eds-dropdown-appendix__toggle-button', {
|
|
1469
|
+
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1470
|
+
}),
|
|
1471
|
+
'aria-labelledby': undefined
|
|
1472
|
+
}), {
|
|
1473
|
+
"aria-hidden": ariaHidden,
|
|
1474
|
+
"aria-label": ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList,
|
|
1475
|
+
tabIndex: focusable ? 0 : -1,
|
|
1476
|
+
type: "button"
|
|
1477
|
+
}), React.createElement(DownArrowIcon, {
|
|
1478
|
+
"aria-hidden": "true"
|
|
1479
|
+
}));
|
|
1480
|
+
};
|
|
1481
|
+
|
|
1482
|
+
/* start general utils */
|
|
1360
1483
|
var EMPTY_INPUT = '';
|
|
1361
1484
|
function lowerCaseFilterTest(item, input) {
|
|
1362
1485
|
if (!input) {
|
|
@@ -1372,10 +1495,10 @@ var itemToString = function itemToString(item) {
|
|
|
1372
1495
|
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1373
1496
|
var listItems = _ref.listItems,
|
|
1374
1497
|
selectedItems = _ref.selectedItems,
|
|
1375
|
-
|
|
1498
|
+
selectAll = _ref.selectAll;
|
|
1376
1499
|
var hasSelectedItems = selectedItems.length > 0;
|
|
1377
1500
|
var listItemsWithoutSelectAll = listItems.filter(function (item) {
|
|
1378
|
-
return item.value !==
|
|
1501
|
+
return item.value !== selectAll.value;
|
|
1379
1502
|
});
|
|
1380
1503
|
var allListItemsAreSelected = listItemsWithoutSelectAll.filter(function (item) {
|
|
1381
1504
|
return !selectedItems.includes(item);
|
|
@@ -1392,18 +1515,21 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1392
1515
|
});
|
|
1393
1516
|
};
|
|
1394
1517
|
var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
|
|
1395
|
-
return clickedItem.value ===
|
|
1518
|
+
return clickedItem.value === selectAll.value;
|
|
1396
1519
|
};
|
|
1397
1520
|
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1398
1521
|
var clickedItem = _ref2.clickedItem,
|
|
1399
|
-
onChange = _ref2.onChange
|
|
1522
|
+
onChange = _ref2.onChange,
|
|
1523
|
+
setLastRemovedItem = _ref2.setLastRemovedItem;
|
|
1400
1524
|
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1401
1525
|
if (allListItemsAreSelected) {
|
|
1526
|
+
setLastRemovedItem(selectAll);
|
|
1402
1527
|
return unselectAllListItems(onChange);
|
|
1403
1528
|
}
|
|
1404
1529
|
return selectAllUnselectedItemsInListItems(onChange);
|
|
1405
1530
|
}
|
|
1406
1531
|
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1532
|
+
setLastRemovedItem(clickedItem);
|
|
1407
1533
|
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1408
1534
|
}
|
|
1409
1535
|
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
@@ -1443,125 +1569,63 @@ var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
|
1443
1569
|
unselectAllListItems: unselectAllListItems
|
|
1444
1570
|
};
|
|
1445
1571
|
};
|
|
1446
|
-
|
|
1447
|
-
var
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
selectedItem = _ref.selectedItem;
|
|
1457
|
-
var _ref2 = (_getSelectedItemProps = getSelectedItemProps == null ? void 0 : getSelectedItemProps({
|
|
1458
|
-
selectedItem: selectedItem,
|
|
1459
|
-
index: index
|
|
1460
|
-
})) != null ? _getSelectedItemProps : {},
|
|
1461
|
-
selectedItemProps = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
|
|
1462
|
-
return React.createElement(TagChip, _extends({
|
|
1463
|
-
className: classNames('eds-dropdown__selected-item-tag', {
|
|
1464
|
-
'eds-dropdown__selected-item-tag--readonly': readOnly,
|
|
1465
|
-
'eds-dropdown__selected-item-tag--disabled': disabled
|
|
1466
|
-
})
|
|
1467
|
-
}, selectedItemProps, {
|
|
1468
|
-
onClose: function onClose(e) {
|
|
1469
|
-
e.stopPropagation();
|
|
1470
|
-
removeSelectedItem(selectedItem);
|
|
1471
|
-
},
|
|
1472
|
-
closeButtonAriaLabel: selectedItem.label + ", " + ariaLabelRemoveSelected + " ",
|
|
1473
|
-
key: selectedItem.value
|
|
1474
|
-
}), React.createElement("span", {
|
|
1475
|
-
"aria-hidden": "true"
|
|
1476
|
-
}, selectedItem.label));
|
|
1477
|
-
};
|
|
1478
|
-
var FieldAppend = function FieldAppend(_ref3) {
|
|
1479
|
-
var _ref3$clearable = _ref3.clearable,
|
|
1480
|
-
clearable = _ref3$clearable === void 0 ? false : _ref3$clearable,
|
|
1481
|
-
clearSelectedItemsLabel = _ref3.clearSelectedItemsLabel,
|
|
1482
|
-
_ref3$disabled = _ref3.disabled,
|
|
1483
|
-
disabled = _ref3$disabled === void 0 ? false : _ref3$disabled,
|
|
1484
|
-
_ref3$focusable = _ref3.focusable,
|
|
1485
|
-
focusable = _ref3$focusable === void 0 ? false : _ref3$focusable,
|
|
1486
|
-
getToggleButtonProps = _ref3.getToggleButtonProps,
|
|
1487
|
-
isOpen = _ref3.isOpen,
|
|
1488
|
-
_ref3$loading = _ref3.loading,
|
|
1489
|
-
loading = _ref3$loading === void 0 ? false : _ref3$loading,
|
|
1490
|
-
_ref3$loadingText = _ref3.loadingText,
|
|
1491
|
-
loadingText = _ref3$loadingText === void 0 ? 'Laster resultater …' : _ref3$loadingText,
|
|
1492
|
-
onClear = _ref3.onClear,
|
|
1493
|
-
selectedItems = _ref3.selectedItems;
|
|
1494
|
-
if (loading) {
|
|
1495
|
-
return React.createElement(DropdownLoadingDots, null, loadingText);
|
|
1572
|
+
function getA11yStatusMessage(options) {
|
|
1573
|
+
var isOpen = options.isOpen,
|
|
1574
|
+
resultCount = options.resultCount,
|
|
1575
|
+
previousResultCount = options.previousResultCount,
|
|
1576
|
+
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1577
|
+
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1578
|
+
_options$ariaLabelNoR = options.ariaLabelNoResults,
|
|
1579
|
+
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1580
|
+
if (!isOpen) {
|
|
1581
|
+
return '';
|
|
1496
1582
|
}
|
|
1497
|
-
|
|
1498
|
-
|
|
1583
|
+
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1584
|
+
if (resultCountWithoutSelectAll === 0) {
|
|
1585
|
+
return ariaLabelNoResults;
|
|
1499
1586
|
}
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
onClick: onClear,
|
|
1532
|
-
"aria-label": clearSelectedItemsLabel
|
|
1533
|
-
}, React.createElement(CloseSmallIcon, {
|
|
1534
|
-
"aria-hidden": "true"
|
|
1535
|
-
})));
|
|
1536
|
-
};
|
|
1537
|
-
var ToggleButton = function ToggleButton(_ref5) {
|
|
1538
|
-
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1539
|
-
isOpen = _ref5.isOpen,
|
|
1540
|
-
_ref5$closeAriaLabel = _ref5.closeAriaLabel,
|
|
1541
|
-
closeAriaLabel = _ref5$closeAriaLabel === void 0 ? 'Lukk liste med valg' : _ref5$closeAriaLabel,
|
|
1542
|
-
_ref5$openAriaLabel = _ref5.openAriaLabel,
|
|
1543
|
-
openAriaLabel = _ref5$openAriaLabel === void 0 ? 'Åpne liste med valg' : _ref5$openAriaLabel,
|
|
1544
|
-
_ref5$focusable = _ref5.focusable,
|
|
1545
|
-
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1546
|
-
return React.createElement(IconButton, _extends({}, getToggleButtonProps({
|
|
1547
|
-
className: classNames('eds-dropdown-appendix__toggle-button', {
|
|
1548
|
-
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1549
|
-
})
|
|
1550
|
-
}), {
|
|
1551
|
-
"aria-label": isOpen ? closeAriaLabel : openAriaLabel,
|
|
1552
|
-
tabIndex: focusable ? 0 : -1,
|
|
1553
|
-
type: "button"
|
|
1554
|
-
}), React.createElement(DownArrowIcon, {
|
|
1555
|
-
"aria-hidden": "true"
|
|
1556
|
-
}));
|
|
1587
|
+
if (resultCount !== previousResultCount) {
|
|
1588
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1589
|
+
}
|
|
1590
|
+
return '';
|
|
1591
|
+
}
|
|
1592
|
+
function getA11ySelectionMessage(options) {
|
|
1593
|
+
var selectedItem = options.selectedItem,
|
|
1594
|
+
itemToStringLocal = options.itemToString,
|
|
1595
|
+
selectAllItem = options.selectAllItem;
|
|
1596
|
+
if ((selectedItem == null ? void 0 : selectedItem.value) === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen valgt.';
|
|
1597
|
+
return selectedItem ? itemToStringLocal(selectedItem) + " er valgt." : '';
|
|
1598
|
+
}
|
|
1599
|
+
function getA11yRemovalMessage(options) {
|
|
1600
|
+
var itemToString = options.itemToString,
|
|
1601
|
+
selectAllItem = options.selectAllItem,
|
|
1602
|
+
removedItem = options.removedItem;
|
|
1603
|
+
if (removedItem === undefined) return '';
|
|
1604
|
+
if (removedItem.value === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen fjernet fra valgte.';
|
|
1605
|
+
return itemToString(removedItem) + " fjernet fra valgte.";
|
|
1606
|
+
}
|
|
1607
|
+
/**A VoiceOver click is always preformed in the center of the clicked element.
|
|
1608
|
+
This functions expolits that to check if the performed click likely is
|
|
1609
|
+
made by VoiceOver. */
|
|
1610
|
+
var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
1611
|
+
var targetElementRect = clickEvent.currentTarget.getBoundingClientRect();
|
|
1612
|
+
var targetElementMiddleX = Math.floor(targetElementRect.x + targetElementRect.width / 2);
|
|
1613
|
+
var targetElementMiddleY = Math.floor(targetElementRect.y + targetElementRect.height / 2);
|
|
1614
|
+
var clickPositionX = clickEvent.clientX;
|
|
1615
|
+
var clickPositionY = clickEvent.clientY;
|
|
1616
|
+
console.log('targetX:', targetElementMiddleX, 'targetY:', targetElementMiddleY, 'clickX:', clickPositionX, 'clickY:', clickPositionY);
|
|
1617
|
+
return Math.abs(targetElementMiddleX - clickPositionX) <= 1 && Math.abs(targetElementMiddleY - clickPositionY) <= 1;
|
|
1557
1618
|
};
|
|
1619
|
+
/* end a11y utils */
|
|
1558
1620
|
|
|
1559
|
-
var _excluded$
|
|
1560
|
-
var
|
|
1621
|
+
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"];
|
|
1622
|
+
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1561
1623
|
var _selectedItem$label;
|
|
1562
|
-
var
|
|
1624
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1625
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1626
|
+
className = _ref.className,
|
|
1563
1627
|
_ref$clearable = _ref.clearable,
|
|
1564
|
-
clearable = _ref$clearable === void 0 ?
|
|
1628
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1565
1629
|
debounceTimeout = _ref.debounceTimeout,
|
|
1566
1630
|
_ref$disabled = _ref.disabled,
|
|
1567
1631
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
@@ -1572,11 +1636,11 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1572
1636
|
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1573
1637
|
initialItems = _ref.items,
|
|
1574
1638
|
label = _ref.label,
|
|
1639
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
1640
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
1575
1641
|
listStyle = _ref.listStyle,
|
|
1576
1642
|
loadingText = _ref.loadingText,
|
|
1577
1643
|
onChange = _ref.onChange,
|
|
1578
|
-
_ref$openOnFocus = _ref.openOnFocus,
|
|
1579
|
-
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1580
1644
|
placeholder = _ref.placeholder,
|
|
1581
1645
|
prepend = _ref.prepend,
|
|
1582
1646
|
_ref$readOnly = _ref.readOnly,
|
|
@@ -1587,7 +1651,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1587
1651
|
style = _ref.style,
|
|
1588
1652
|
_ref$variant = _ref.variant,
|
|
1589
1653
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1590
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
1654
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
1591
1655
|
var _useState = useState(false),
|
|
1592
1656
|
hideSelectedItem = _useState[0],
|
|
1593
1657
|
setHideSelectedItem = _useState[1];
|
|
@@ -1627,6 +1691,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1627
1691
|
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1628
1692
|
}
|
|
1629
1693
|
switch (type) {
|
|
1694
|
+
// empty input to show selected item and reset dropdown list on item selection
|
|
1630
1695
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1631
1696
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1632
1697
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
@@ -1636,21 +1701,21 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1636
1701
|
inputValue: EMPTY_INPUT
|
|
1637
1702
|
});
|
|
1638
1703
|
return _extends({}, changes, {
|
|
1639
|
-
inputValue: EMPTY_INPUT
|
|
1704
|
+
inputValue: EMPTY_INPUT
|
|
1640
1705
|
});
|
|
1641
1706
|
}
|
|
1642
|
-
|
|
1707
|
+
// remove leading whitespace, select element with spacebar on empty input, and filter list based on input
|
|
1643
1708
|
case useCombobox.stateChangeTypes.InputChange:
|
|
1644
1709
|
{
|
|
1645
1710
|
var _changes$inputValue;
|
|
1646
1711
|
var leadingWhitespaceTest = /^\s+/g;
|
|
1647
|
-
var isSpacePressedOnEmptyInput = changes.inputValue
|
|
1712
|
+
var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
|
|
1648
1713
|
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
|
|
1649
1714
|
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
1650
1715
|
if (isSpacePressedOnEmptyInput) {
|
|
1651
1716
|
openMenu();
|
|
1652
1717
|
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
1653
|
-
onChange(listItems[changes.highlightedIndex]);
|
|
1718
|
+
onChange == null ? void 0 : onChange(listItems[changes.highlightedIndex]);
|
|
1654
1719
|
}
|
|
1655
1720
|
}
|
|
1656
1721
|
} else {
|
|
@@ -1679,8 +1744,15 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1679
1744
|
if (!selectOnBlur) break;
|
|
1680
1745
|
case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1681
1746
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1682
|
-
onChange(clickedItem != null ? clickedItem : null);
|
|
1747
|
+
onChange == null ? void 0 : onChange(clickedItem != null ? clickedItem : null);
|
|
1683
1748
|
}
|
|
1749
|
+
},
|
|
1750
|
+
// Accessibility
|
|
1751
|
+
getA11yStatusMessage: getA11yStatusMessage,
|
|
1752
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
1753
|
+
// but is left here for when it is fixed
|
|
1754
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
1755
|
+
return getA11ySelectionMessage(options);
|
|
1684
1756
|
}
|
|
1685
1757
|
}, rest)),
|
|
1686
1758
|
isOpen = _useCombobox.isOpen,
|
|
@@ -1689,7 +1761,6 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1689
1761
|
getLabelProps = _useCombobox.getLabelProps,
|
|
1690
1762
|
getMenuProps = _useCombobox.getMenuProps,
|
|
1691
1763
|
getInputProps = _useCombobox.getInputProps,
|
|
1692
|
-
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1693
1764
|
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1694
1765
|
getItemProps = _useCombobox.getItemProps,
|
|
1695
1766
|
selectedItem = _useCombobox.selectedItem,
|
|
@@ -1697,7 +1768,7 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1697
1768
|
setInputValue = _useCombobox.setInputValue;
|
|
1698
1769
|
var handleOnClear = function handleOnClear() {
|
|
1699
1770
|
var _inputRef$current;
|
|
1700
|
-
onChange(null);
|
|
1771
|
+
onChange == null ? void 0 : onChange(null);
|
|
1701
1772
|
setInputValue(EMPTY_INPUT);
|
|
1702
1773
|
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
1703
1774
|
updateListItems({
|
|
@@ -1705,11 +1776,14 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1705
1776
|
});
|
|
1706
1777
|
};
|
|
1707
1778
|
return React.createElement("div", {
|
|
1708
|
-
className:
|
|
1779
|
+
className: classNames('eds-dropdown__wrapper', className),
|
|
1780
|
+
style: style
|
|
1709
1781
|
}, React.createElement(BaseFormControl, _extends({
|
|
1710
|
-
append: React.createElement(FieldAppend, {
|
|
1782
|
+
append: React.createElement(FieldAppend$1, {
|
|
1783
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
1784
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1711
1785
|
clearable: clearable,
|
|
1712
|
-
|
|
1786
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
1713
1787
|
disabled: readOnly || disabled,
|
|
1714
1788
|
focusable: false,
|
|
1715
1789
|
getToggleButtonProps: getToggleButtonProps,
|
|
@@ -1719,19 +1793,20 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1719
1793
|
onClear: handleOnClear,
|
|
1720
1794
|
selectedItems: [selectedItem]
|
|
1721
1795
|
}),
|
|
1722
|
-
className:
|
|
1796
|
+
className: "eds-dropdown",
|
|
1723
1797
|
disabled: disabled,
|
|
1724
1798
|
disableLabelAnimation: disableLabelAnimation,
|
|
1725
1799
|
feedback: feedback,
|
|
1726
|
-
isFilled: selectedItem || inputValue !== EMPTY_INPUT,
|
|
1800
|
+
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1727
1801
|
label: label,
|
|
1802
|
+
labelId: getLabelProps().id,
|
|
1728
1803
|
labelProps: getLabelProps(),
|
|
1729
1804
|
prepend: prepend,
|
|
1730
1805
|
readOnly: readOnly,
|
|
1731
|
-
style: style,
|
|
1732
1806
|
variant: variant
|
|
1733
|
-
},
|
|
1734
|
-
className: "eds-dropdown__selected-item__wrapper"
|
|
1807
|
+
}, rest), !hideSelectedItem && selectedItem && !inputValue && React.createElement("span", {
|
|
1808
|
+
className: "eds-dropdown__selected-item__wrapper",
|
|
1809
|
+
"aria-hidden": "true"
|
|
1735
1810
|
}, React.createElement("span", {
|
|
1736
1811
|
className: "eds-dropdown__selected-item",
|
|
1737
1812
|
onClick: function onClick() {
|
|
@@ -1743,11 +1818,13 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1743
1818
|
disabled: readOnly || disabled,
|
|
1744
1819
|
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
|
|
1745
1820
|
}, getInputProps({
|
|
1821
|
+
onClick: function onClick(e) {
|
|
1822
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
1823
|
+
},
|
|
1746
1824
|
onBlur: function onBlur() {
|
|
1747
1825
|
setHideSelectedItem(false);
|
|
1748
1826
|
},
|
|
1749
1827
|
onFocus: function onFocus() {
|
|
1750
|
-
if (!isOpen && openOnFocus) openMenu();
|
|
1751
1828
|
setHideSelectedItem(true);
|
|
1752
1829
|
},
|
|
1753
1830
|
ref: inputRef
|
|
@@ -1764,71 +1841,91 @@ var SearchableDropdownBeta = function SearchableDropdownBeta(_ref) {
|
|
|
1764
1841
|
}));
|
|
1765
1842
|
};
|
|
1766
1843
|
|
|
1767
|
-
var _excluded$
|
|
1768
|
-
var
|
|
1769
|
-
var
|
|
1770
|
-
allItemsSelectedLabel = _ref$allItemsSelected === void 0 ? 'Alle valgt' : _ref$allItemsSelected,
|
|
1771
|
-
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1772
|
-
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1773
|
-
className = _ref.className,
|
|
1844
|
+
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"];
|
|
1845
|
+
var MultiSelect = function MultiSelect(_ref) {
|
|
1846
|
+
var className = _ref.className,
|
|
1774
1847
|
_ref$clearable = _ref.clearable,
|
|
1775
|
-
clearable = _ref$clearable === void 0 ?
|
|
1848
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1776
1849
|
_ref$clearInputOnSele = _ref.clearInputOnSelect,
|
|
1777
1850
|
clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
|
|
1851
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1778
1852
|
_ref$disabled = _ref.disabled,
|
|
1779
1853
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1780
1854
|
feedback = _ref.feedback,
|
|
1781
1855
|
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1782
1856
|
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1857
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1858
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1783
1859
|
initialItems = _ref.items,
|
|
1784
1860
|
label = _ref.label,
|
|
1861
|
+
_ref$labelAllItemsSel = _ref.labelAllItemsSelected,
|
|
1862
|
+
labelAllItemsSelected = _ref$labelAllItemsSel === void 0 ? 'Alle valgt' : _ref$labelAllItemsSel,
|
|
1863
|
+
_ref$labelClearAllIte = _ref.labelClearAllItems,
|
|
1864
|
+
labelClearAllItems = _ref$labelClearAllIte === void 0 ? 'Fjern valgte' : _ref$labelClearAllIte,
|
|
1865
|
+
_ref$labelSelectAll = _ref.labelSelectAll,
|
|
1866
|
+
labelSelectAll = _ref$labelSelectAll === void 0 ? 'Velg alle' : _ref$labelSelectAll,
|
|
1785
1867
|
listStyle = _ref.listStyle,
|
|
1786
1868
|
loadingText = _ref.loadingText,
|
|
1787
|
-
_ref$
|
|
1788
|
-
|
|
1789
|
-
onChange = _ref.onChange,
|
|
1790
|
-
_ref$
|
|
1791
|
-
|
|
1869
|
+
_ref$maxChips = _ref.maxChips,
|
|
1870
|
+
maxChips = _ref$maxChips === void 0 ? 10 : _ref$maxChips,
|
|
1871
|
+
_ref$onChange = _ref.onChange,
|
|
1872
|
+
onChange = _ref$onChange === void 0 ? function () {
|
|
1873
|
+
return undefined;
|
|
1874
|
+
} : _ref$onChange,
|
|
1792
1875
|
placeholder = _ref.placeholder,
|
|
1793
1876
|
_ref$readOnly = _ref.readOnly,
|
|
1794
1877
|
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1795
|
-
_ref$clearAllItemsAri = _ref.clearAllItemsAriaLabel,
|
|
1796
|
-
clearAllItemsAriaLabel = _ref$clearAllItemsAri === void 0 ? 'Fjern valgte' : _ref$clearAllItemsAri,
|
|
1797
|
-
_ref$selectAllLabel = _ref.selectAllLabel,
|
|
1798
|
-
selectAllLabel = _ref$selectAllLabel === void 0 ? 'Velg alle' : _ref$selectAllLabel,
|
|
1799
1878
|
selectedItems = _ref.selectedItems,
|
|
1800
1879
|
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1801
1880
|
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1802
1881
|
style = _ref.style,
|
|
1803
1882
|
_ref$variant = _ref.variant,
|
|
1804
1883
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1805
|
-
|
|
1884
|
+
_ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1885
|
+
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1886
|
+
_ref$ariaLabelChosenP = _ref.ariaLabelChosenPlural,
|
|
1887
|
+
ariaLabelChosenPlural = _ref$ariaLabelChosenP === void 0 ? 'valgte' : _ref$ariaLabelChosenP,
|
|
1888
|
+
ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1889
|
+
_ref$ariaLabelJumpToI = _ref.ariaLabelJumpToInput,
|
|
1890
|
+
ariaLabelJumpToInput = _ref$ariaLabelJumpToI === void 0 ? selectedItems.length + " valgte elementer, trykk for \xE5 hoppe til tekstfeltet" : _ref$ariaLabelJumpToI,
|
|
1891
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1892
|
+
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1893
|
+
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1894
|
+
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
1895
|
+
ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
|
|
1896
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1806
1897
|
var _React$useState = React.useState(0),
|
|
1807
1898
|
lastHighlightedIndex = _React$useState[0],
|
|
1808
1899
|
setLastHighlightedIndex = _React$useState[1];
|
|
1900
|
+
var _React$useState2 = React.useState(undefined),
|
|
1901
|
+
lastRemovedItem = _React$useState2[0],
|
|
1902
|
+
setLastRemovedItem = _React$useState2[1];
|
|
1809
1903
|
var inputRef = useRef(null);
|
|
1810
|
-
var _useResolvedItems = useResolvedItems(initialItems),
|
|
1904
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1811
1905
|
normalizedItems = _useResolvedItems.items,
|
|
1812
1906
|
loading = _useResolvedItems.loading,
|
|
1813
1907
|
fetchItems = _useResolvedItems.fetchItems;
|
|
1814
1908
|
var isAllNonAsyncItemsSelected = typeof initialItems !== 'function' && selectedItems.length === normalizedItems.length;
|
|
1909
|
+
// special 'item' used as Select All entry in the dropdown list
|
|
1815
1910
|
var selectAll = {
|
|
1816
1911
|
value: useRandomId('select-all'),
|
|
1817
|
-
label:
|
|
1912
|
+
label: labelSelectAll
|
|
1818
1913
|
};
|
|
1914
|
+
// special 'item' used as a replacement selected item tag for when
|
|
1915
|
+
// there are more selected element than maxChips
|
|
1819
1916
|
var summarySelectedItems = React.useMemo(function () {
|
|
1820
1917
|
return {
|
|
1821
1918
|
value: EMPTY_INPUT,
|
|
1822
|
-
label: isAllNonAsyncItemsSelected ?
|
|
1919
|
+
label: isAllNonAsyncItemsSelected ? labelAllItemsSelected : selectedItems.length + ' ' + ariaLabelChosenPlural
|
|
1823
1920
|
};
|
|
1824
|
-
}, [isAllNonAsyncItemsSelected, selectedItems,
|
|
1921
|
+
}, [isAllNonAsyncItemsSelected, selectedItems, labelAllItemsSelected, ariaLabelChosenPlural]);
|
|
1825
1922
|
var _useState = useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1826
1923
|
listItems = _useState[0],
|
|
1827
1924
|
setListItems = _useState[1];
|
|
1828
1925
|
var filterListItems = function filterListItems(_ref2) {
|
|
1829
1926
|
var inputValue = _ref2.inputValue;
|
|
1830
1927
|
return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
|
|
1831
|
-
return
|
|
1928
|
+
return itemFilter(item, inputValue);
|
|
1832
1929
|
})));
|
|
1833
1930
|
};
|
|
1834
1931
|
var updateListItems = function updateListItems(_ref3) {
|
|
@@ -1843,32 +1940,49 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1843
1940
|
inputValue: inputValue
|
|
1844
1941
|
});
|
|
1845
1942
|
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1846
|
-
var _useMultipleSelection = useMultipleSelection({
|
|
1847
|
-
selectedItems: selectedItems,
|
|
1848
|
-
itemToString: itemToString,
|
|
1849
|
-
onSelectedItemsChange: function onSelectedItemsChange(changes) {
|
|
1850
|
-
var _changes$selectedItem;
|
|
1851
|
-
onChange((_changes$selectedItem = changes.selectedItems) != null ? _changes$selectedItem : []);
|
|
1852
|
-
}
|
|
1853
|
-
}),
|
|
1854
|
-
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1855
|
-
getDropdownProps = _useMultipleSelection.getDropdownProps,
|
|
1856
|
-
removeSelectedItem = _useMultipleSelection.removeSelectedItem;
|
|
1857
1943
|
var _useMultiselectUtils = useMultiselectUtils({
|
|
1858
1944
|
listItems: listItems,
|
|
1859
|
-
|
|
1945
|
+
selectAll: selectAll,
|
|
1860
1946
|
selectedItems: selectedItems
|
|
1861
1947
|
}),
|
|
1862
1948
|
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1863
1949
|
handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
|
|
1864
1950
|
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
1865
|
-
var
|
|
1866
|
-
|
|
1867
|
-
|
|
1951
|
+
var _useMultipleSelection = useMultipleSelection({
|
|
1952
|
+
selectedItems: selectedItems,
|
|
1953
|
+
itemToString: itemToString,
|
|
1954
|
+
onStateChange: function onStateChange(_ref4) {
|
|
1955
|
+
var newSelectedItems = _ref4.selectedItems,
|
|
1956
|
+
type = _ref4.type;
|
|
1957
|
+
switch (type) {
|
|
1958
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownBackspace:
|
|
1959
|
+
case useMultipleSelection.stateChangeTypes.SelectedItemKeyDownDelete:
|
|
1960
|
+
case useMultipleSelection.stateChangeTypes.DropdownKeyDownBackspace:
|
|
1961
|
+
case useMultipleSelection.stateChangeTypes.FunctionRemoveSelectedItem:
|
|
1962
|
+
{
|
|
1963
|
+
if (newSelectedItems !== undefined) onChange(newSelectedItems);
|
|
1964
|
+
break;
|
|
1965
|
+
}
|
|
1966
|
+
}
|
|
1967
|
+
},
|
|
1968
|
+
// Accessibility
|
|
1969
|
+
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
1970
|
+
return getA11yRemovalMessage(_extends({}, options, {
|
|
1971
|
+
selectAllItem: selectAll,
|
|
1972
|
+
removedItem: lastRemovedItem
|
|
1973
|
+
}));
|
|
1974
|
+
}
|
|
1975
|
+
}),
|
|
1976
|
+
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1977
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps;
|
|
1978
|
+
var stateReducer = React.useCallback(function (_, _ref5) {
|
|
1979
|
+
var changes = _ref5.changes,
|
|
1980
|
+
type = _ref5.type;
|
|
1868
1981
|
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
1869
1982
|
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1870
1983
|
}
|
|
1871
1984
|
switch (type) {
|
|
1985
|
+
// keep menu open and edit input value on item selection
|
|
1872
1986
|
case useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1873
1987
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1874
1988
|
{
|
|
@@ -1883,6 +1997,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1883
1997
|
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
|
|
1884
1998
|
});
|
|
1885
1999
|
}
|
|
2000
|
+
// edit input value when selected items is updated outside component
|
|
1886
2001
|
case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1887
2002
|
{
|
|
1888
2003
|
var _inputRef$current$val2, _inputRef$current2;
|
|
@@ -1890,6 +2005,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1890
2005
|
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
|
|
1891
2006
|
});
|
|
1892
2007
|
}
|
|
2008
|
+
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
1893
2009
|
case useCombobox.stateChangeTypes.InputChange:
|
|
1894
2010
|
{
|
|
1895
2011
|
var _changes$inputValue;
|
|
@@ -1899,10 +2015,11 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1899
2015
|
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
1900
2016
|
if (isSpacePressedOnEmptyInput) {
|
|
1901
2017
|
openMenu();
|
|
1902
|
-
if (isOpen && changes.highlightedIndex) {
|
|
2018
|
+
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
1903
2019
|
handleListItemClicked({
|
|
1904
2020
|
clickedItem: listItems[changes.highlightedIndex],
|
|
1905
|
-
onChange: onChange
|
|
2021
|
+
onChange: onChange,
|
|
2022
|
+
setLastRemovedItem: setLastRemovedItem
|
|
1906
2023
|
});
|
|
1907
2024
|
}
|
|
1908
2025
|
}
|
|
@@ -1913,6 +2030,7 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1913
2030
|
}
|
|
1914
2031
|
return changes;
|
|
1915
2032
|
}
|
|
2033
|
+
// reset input value when leaving input field
|
|
1916
2034
|
case useCombobox.stateChangeTypes.InputBlur:
|
|
1917
2035
|
{
|
|
1918
2036
|
return _extends({}, changes, {
|
|
@@ -1929,9 +2047,9 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1929
2047
|
itemToString: itemToString,
|
|
1930
2048
|
selectedItem: null,
|
|
1931
2049
|
stateReducer: stateReducer,
|
|
1932
|
-
onStateChange: function onStateChange(
|
|
1933
|
-
var type =
|
|
1934
|
-
clickedItem =
|
|
2050
|
+
onStateChange: function onStateChange(_ref6) {
|
|
2051
|
+
var type = _ref6.type,
|
|
2052
|
+
clickedItem = _ref6.selectedItem;
|
|
1935
2053
|
// clickedItem means item chosen either via mouse or keyboard
|
|
1936
2054
|
if (!clickedItem) return;
|
|
1937
2055
|
switch (type) {
|
|
@@ -1940,14 +2058,29 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1940
2058
|
if (!selectOnBlur) break;
|
|
1941
2059
|
case useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1942
2060
|
case useCombobox.stateChangeTypes.ItemClick:
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
2061
|
+
{
|
|
2062
|
+
handleListItemClicked({
|
|
2063
|
+
clickedItem: clickedItem,
|
|
2064
|
+
onChange: onChange,
|
|
2065
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2066
|
+
});
|
|
2067
|
+
}
|
|
1947
2068
|
}
|
|
2069
|
+
},
|
|
2070
|
+
// Accessibility
|
|
2071
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2072
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
2073
|
+
selectAllItemIncluded: !hideSelectAll
|
|
2074
|
+
}));
|
|
2075
|
+
},
|
|
2076
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
2077
|
+
// but is left here for when it is fixed
|
|
2078
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
2079
|
+
return getA11ySelectionMessage(_extends({}, options, {
|
|
2080
|
+
selectAllItem: selectAll
|
|
2081
|
+
}));
|
|
1948
2082
|
}
|
|
1949
2083
|
}, rest)),
|
|
1950
|
-
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1951
2084
|
getInputProps = _useCombobox.getInputProps,
|
|
1952
2085
|
getItemProps = _useCombobox.getItemProps,
|
|
1953
2086
|
getLabelProps = _useCombobox.getLabelProps,
|
|
@@ -1967,18 +2100,17 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1967
2100
|
inputValue: inputValue
|
|
1968
2101
|
});
|
|
1969
2102
|
};
|
|
1970
|
-
// role=combobox leads to strange VoiceOver behavior and is therefor omitted
|
|
1971
|
-
// const { role: _, ...comboboxProps } = getComboboxProps();
|
|
1972
|
-
var _getComboboxProps = getComboboxProps(),
|
|
1973
|
-
comboboxProps = _extends({}, (_objectDestructuringEmpty(_getComboboxProps), _getComboboxProps));
|
|
1974
2103
|
return React.createElement("div", {
|
|
1975
|
-
className:
|
|
2104
|
+
className: classNames('eds-dropdown__wrapper', className),
|
|
2105
|
+
style: style
|
|
1976
2106
|
}, React.createElement(BaseFormControl, _extends({
|
|
1977
|
-
append: React.createElement(FieldAppend, {
|
|
2107
|
+
append: React.createElement(FieldAppend$1, {
|
|
2108
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2109
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1978
2110
|
selectedItems: selectedItems,
|
|
1979
2111
|
isOpen: isOpen,
|
|
1980
2112
|
clearable: clearable,
|
|
1981
|
-
|
|
2113
|
+
labelClearSelectedItems: labelClearAllItems,
|
|
1982
2114
|
focusable: false,
|
|
1983
2115
|
loading: loading,
|
|
1984
2116
|
loadingText: loadingText,
|
|
@@ -1986,18 +2118,16 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
1986
2118
|
onClear: handleOnClear,
|
|
1987
2119
|
getToggleButtonProps: getToggleButtonProps
|
|
1988
2120
|
}),
|
|
1989
|
-
className:
|
|
2121
|
+
className: "eds-dropdown",
|
|
1990
2122
|
disabled: disabled,
|
|
1991
2123
|
feedback: feedback,
|
|
1992
2124
|
isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
|
|
1993
2125
|
label: label,
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
}, getLabelProps()),
|
|
2126
|
+
labelId: getLabelProps().id,
|
|
2127
|
+
labelProps: getLabelProps(),
|
|
1997
2128
|
readOnly: readOnly,
|
|
1998
|
-
style: style,
|
|
1999
2129
|
variant: variant
|
|
2000
|
-
},
|
|
2130
|
+
}, rest), React.createElement("div", {
|
|
2001
2131
|
className: classNames('eds-dropdown__selected-items-and-input', {
|
|
2002
2132
|
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
2003
2133
|
}),
|
|
@@ -2005,19 +2135,34 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2005
2135
|
var _inputRef$current4;
|
|
2006
2136
|
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
2007
2137
|
}
|
|
2008
|
-
}, selectedItems.length <
|
|
2138
|
+
}, selectedItems.length < maxChips ? React.createElement(React.Fragment, null, selectedItems.length > 1 ? React.createElement(VisuallyHidden, {
|
|
2139
|
+
onClick: function onClick() {
|
|
2140
|
+
var _inputRef$current5;
|
|
2141
|
+
return (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.focus();
|
|
2142
|
+
}
|
|
2143
|
+
}, ariaLabelJumpToInput) : React.createElement(React.Fragment, null), selectedItems.map(function (selectedItem, index) {
|
|
2009
2144
|
return React.createElement(SelectedItemTag, {
|
|
2145
|
+
ariaLabelChosen: ariaLabelChosenSingular,
|
|
2010
2146
|
ariaLabelRemoveSelected: ariaLabelRemoveSelected,
|
|
2011
2147
|
disabled: disabled,
|
|
2012
2148
|
getSelectedItemProps: getSelectedItemProps,
|
|
2013
2149
|
index: index,
|
|
2014
2150
|
key: selectedItem.value,
|
|
2015
2151
|
readOnly: readOnly,
|
|
2016
|
-
removeSelectedItem: removeSelectedItem
|
|
2152
|
+
removeSelectedItem: function removeSelectedItem() {
|
|
2153
|
+
var _inputRef$current6;
|
|
2154
|
+
handleListItemClicked({
|
|
2155
|
+
clickedItem: selectedItem,
|
|
2156
|
+
onChange: onChange,
|
|
2157
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2158
|
+
});
|
|
2159
|
+
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2160
|
+
},
|
|
2017
2161
|
selectedItem: selectedItem
|
|
2018
2162
|
});
|
|
2019
|
-
}) : React.createElement(SelectedItemTag, {
|
|
2020
|
-
ariaLabelRemoveSelected:
|
|
2163
|
+
})) : React.createElement(SelectedItemTag, {
|
|
2164
|
+
ariaLabelRemoveSelected: labelClearAllItems,
|
|
2165
|
+
ariaLabelChosen: "",
|
|
2021
2166
|
disabled: disabled,
|
|
2022
2167
|
readOnly: readOnly,
|
|
2023
2168
|
removeSelectedItem: handleOnClear,
|
|
@@ -2025,16 +2170,17 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2025
2170
|
}), React.createElement("input", _extends({
|
|
2026
2171
|
placeholder: placeholder,
|
|
2027
2172
|
className: "eds-dropdown__input eds-form-control",
|
|
2028
|
-
disabled: readOnly || disabled
|
|
2029
|
-
role: "combobox" // eslint-disable-line jsx-a11y/role-has-required-aria-props
|
|
2173
|
+
disabled: readOnly || disabled
|
|
2030
2174
|
}, getInputProps(getDropdownProps({
|
|
2031
|
-
|
|
2032
|
-
|
|
2033
|
-
if (!isOpen && openOnFocus) openMenu();
|
|
2175
|
+
onClick: function onClick(e) {
|
|
2176
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
2034
2177
|
},
|
|
2178
|
+
preventKeyAction: isOpen,
|
|
2035
2179
|
ref: inputRef,
|
|
2036
2180
|
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2037
2181
|
})))))), React.createElement(DropdownList, {
|
|
2182
|
+
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2183
|
+
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2038
2184
|
getItemProps: getItemProps,
|
|
2039
2185
|
getMenuProps: getMenuProps,
|
|
2040
2186
|
highlightedIndex: highlightedIndex,
|
|
@@ -2050,17 +2196,22 @@ var MultiSelectBeta = function MultiSelectBeta(_ref) {
|
|
|
2050
2196
|
}));
|
|
2051
2197
|
};
|
|
2052
2198
|
|
|
2053
|
-
var _excluded = ["className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "
|
|
2054
|
-
var
|
|
2199
|
+
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
2200
|
+
var Dropdown = function Dropdown(_ref) {
|
|
2055
2201
|
var _ref3, _selectedItem$label;
|
|
2056
|
-
var
|
|
2202
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
2203
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
2204
|
+
className = _ref.className,
|
|
2205
|
+
_ref$clearable = _ref.clearable,
|
|
2206
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
2057
2207
|
_ref$disabled = _ref.disabled,
|
|
2058
2208
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2059
2209
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2060
2210
|
feedback = _ref.feedback,
|
|
2061
2211
|
initialItems = _ref.items,
|
|
2062
2212
|
label = _ref.label,
|
|
2063
|
-
|
|
2213
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
2214
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
2064
2215
|
listStyle = _ref.listStyle,
|
|
2065
2216
|
loadingText = _ref.loadingText,
|
|
2066
2217
|
onChange = _ref.onChange,
|
|
@@ -2074,25 +2225,27 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2074
2225
|
style = _ref.style,
|
|
2075
2226
|
_ref$variant = _ref.variant,
|
|
2076
2227
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
2077
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2078
|
-
// TODO Husk å @deprecate searchable-prop-en til Dropdown når denne komponenten skal ha official release
|
|
2228
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
2079
2229
|
var _useResolvedItems = useResolvedItems(initialItems),
|
|
2080
2230
|
normalizedItems = _useResolvedItems.items,
|
|
2081
2231
|
loading = _useResolvedItems.loading;
|
|
2082
2232
|
var isFilled = selectedItem !== null || placeholder !== undefined;
|
|
2083
2233
|
var _useSelect = useSelect({
|
|
2084
2234
|
items: normalizedItems,
|
|
2235
|
+
defaultHighlightedIndex: selectedItem ? undefined : 0,
|
|
2085
2236
|
selectedItem: selectedItem,
|
|
2086
2237
|
onStateChange: function onStateChange(_ref2) {
|
|
2087
2238
|
var type = _ref2.type,
|
|
2088
2239
|
clickedItem = _ref2.selectedItem;
|
|
2089
2240
|
switch (type) {
|
|
2090
2241
|
// @ts-expect-error This falltrough is wanted
|
|
2091
|
-
case useSelect.stateChangeTypes.
|
|
2242
|
+
case useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
2092
2243
|
if (!selectOnBlur) break;
|
|
2093
|
-
case useSelect.stateChangeTypes.
|
|
2244
|
+
case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
2094
2245
|
case useSelect.stateChangeTypes.ItemClick:
|
|
2095
|
-
|
|
2246
|
+
{
|
|
2247
|
+
onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
|
|
2248
|
+
}
|
|
2096
2249
|
}
|
|
2097
2250
|
},
|
|
2098
2251
|
itemToString: itemToString
|
|
@@ -2104,12 +2257,16 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2104
2257
|
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
2105
2258
|
highlightedIndex = _useSelect.highlightedIndex;
|
|
2106
2259
|
return React.createElement("div", {
|
|
2107
|
-
className:
|
|
2260
|
+
className: classNames('eds-dropdown__wrapper', className),
|
|
2261
|
+
style: style
|
|
2108
2262
|
}, React.createElement(BaseFormControl, _extends({
|
|
2109
|
-
append: React.createElement(FieldAppend, {
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2263
|
+
append: React.createElement(FieldAppend$1, {
|
|
2264
|
+
ariaHiddenToggleButton: true,
|
|
2265
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2266
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
2267
|
+
clearable: clearable,
|
|
2268
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
2269
|
+
focusable: false,
|
|
2113
2270
|
getToggleButtonProps: getToggleButtonProps,
|
|
2114
2271
|
isOpen: isOpen,
|
|
2115
2272
|
loading: loading,
|
|
@@ -2120,7 +2277,7 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2120
2277
|
disabled: readOnly || disabled,
|
|
2121
2278
|
selectedItems: [selectedItem]
|
|
2122
2279
|
}),
|
|
2123
|
-
className: classNames('eds-dropdown',
|
|
2280
|
+
className: classNames('eds-dropdown', {
|
|
2124
2281
|
'eds-dropdown--not-filled': !isFilled
|
|
2125
2282
|
}),
|
|
2126
2283
|
disabled: disabled,
|
|
@@ -2130,14 +2287,14 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2130
2287
|
label: label,
|
|
2131
2288
|
labelId: getLabelProps().id,
|
|
2132
2289
|
labelProps: getLabelProps(),
|
|
2133
|
-
labelTooltip: labelTooltip,
|
|
2134
2290
|
prepend: prepend,
|
|
2135
2291
|
readOnly: readOnly,
|
|
2136
|
-
style: style,
|
|
2137
2292
|
variant: variant
|
|
2138
2293
|
}, rest), React.createElement("div", _extends({
|
|
2139
2294
|
className: "eds-dropdown__selected-item-button"
|
|
2140
|
-
}, getToggleButtonProps(
|
|
2295
|
+
}, getToggleButtonProps({
|
|
2296
|
+
id: undefined
|
|
2297
|
+
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React.createElement("span", {
|
|
2141
2298
|
className: classNames('eds-dropdown__selected-item-button__placeholder', {
|
|
2142
2299
|
'eds-dropdown__selected-item-button__placeholder--readonly': readOnly
|
|
2143
2300
|
})
|
|
@@ -2154,7 +2311,91 @@ var DropdownBeta = function DropdownBeta(_ref) {
|
|
|
2154
2311
|
}));
|
|
2155
2312
|
};
|
|
2156
2313
|
|
|
2314
|
+
var _excluded = ["className", "disabled", "disableLabelAnimation", "feedback", "items", "label", "loadingText", "onChange", "prepend", "readOnly", "selectedItem", "style", "value", "variant"];
|
|
2315
|
+
var NativeDropdown = function NativeDropdown(_ref) {
|
|
2316
|
+
var _ref2;
|
|
2317
|
+
var className = _ref.className,
|
|
2318
|
+
_ref$disabled = _ref.disabled,
|
|
2319
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2320
|
+
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2321
|
+
feedback = _ref.feedback,
|
|
2322
|
+
items = _ref.items,
|
|
2323
|
+
label = _ref.label,
|
|
2324
|
+
loadingText = _ref.loadingText,
|
|
2325
|
+
_onChange = _ref.onChange,
|
|
2326
|
+
prepend = _ref.prepend,
|
|
2327
|
+
_ref$readOnly = _ref.readOnly,
|
|
2328
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
2329
|
+
selectedItem = _ref.selectedItem,
|
|
2330
|
+
style = _ref.style,
|
|
2331
|
+
value = _ref.value,
|
|
2332
|
+
variant = _ref.variant,
|
|
2333
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2334
|
+
var _useResolvedItems = useResolvedItems(items),
|
|
2335
|
+
normalizedItems = _useResolvedItems.items,
|
|
2336
|
+
loading = _useResolvedItems.loading;
|
|
2337
|
+
var nativeDropdownId = useRandomId('eds-dropdown-native');
|
|
2338
|
+
return React.createElement(BaseFormControl, {
|
|
2339
|
+
disabled: disabled,
|
|
2340
|
+
readOnly: readOnly,
|
|
2341
|
+
prepend: prepend,
|
|
2342
|
+
append: React.createElement(FieldAppend, {
|
|
2343
|
+
hidden: disabled || readOnly,
|
|
2344
|
+
loading: loading,
|
|
2345
|
+
loadingText: loadingText
|
|
2346
|
+
}),
|
|
2347
|
+
className: className,
|
|
2348
|
+
style: style,
|
|
2349
|
+
label: label,
|
|
2350
|
+
labelId: nativeDropdownId,
|
|
2351
|
+
variant: variant,
|
|
2352
|
+
feedback: feedback,
|
|
2353
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
2354
|
+
isFilled: true
|
|
2355
|
+
}, React.createElement("select", _extends({
|
|
2356
|
+
"aria-invalid": variant === 'error',
|
|
2357
|
+
"aria-labelledby": nativeDropdownId,
|
|
2358
|
+
"aria-busy": loading,
|
|
2359
|
+
className: "eds-form-control eds-dropdown--native",
|
|
2360
|
+
disabled: disabled || readOnly,
|
|
2361
|
+
onChange: function onChange(event) {
|
|
2362
|
+
var _normalizedItems$find;
|
|
2363
|
+
_onChange == null ? void 0 : _onChange({
|
|
2364
|
+
value: event.target.value,
|
|
2365
|
+
selectedItem: (_normalizedItems$find = normalizedItems.find(function (item) {
|
|
2366
|
+
return item.value === event.target.value;
|
|
2367
|
+
})) != null ? _normalizedItems$find : null,
|
|
2368
|
+
target: event.target
|
|
2369
|
+
});
|
|
2370
|
+
},
|
|
2371
|
+
value: (_ref2 = value != null ? value : selectedItem == null ? void 0 : selectedItem.value) != null ? _ref2 : undefined
|
|
2372
|
+
}, rest), normalizedItems.map(function (item) {
|
|
2373
|
+
return React.createElement("option", {
|
|
2374
|
+
key: item.value,
|
|
2375
|
+
value: item.value
|
|
2376
|
+
}, item.label);
|
|
2377
|
+
})));
|
|
2378
|
+
};
|
|
2379
|
+
var FieldAppend = function FieldAppend(_ref3) {
|
|
2380
|
+
var loading = _ref3.loading,
|
|
2381
|
+
loadingText = _ref3.loadingText,
|
|
2382
|
+
hidden = _ref3.hidden;
|
|
2383
|
+
if (loading) {
|
|
2384
|
+
return React.createElement("div", {
|
|
2385
|
+
className: "eds-dropdown-native__loading-dots"
|
|
2386
|
+
}, React.createElement(LoadingDots, {
|
|
2387
|
+
"aria-label": loadingText
|
|
2388
|
+
}));
|
|
2389
|
+
}
|
|
2390
|
+
if (hidden) {
|
|
2391
|
+
return React.createElement(React.Fragment, null);
|
|
2392
|
+
}
|
|
2393
|
+
return React.createElement(DownArrowIcon, {
|
|
2394
|
+
inline: true
|
|
2395
|
+
});
|
|
2396
|
+
};
|
|
2397
|
+
|
|
2157
2398
|
warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
|
|
2158
2399
|
|
|
2159
|
-
export { Dropdown,
|
|
2400
|
+
export { Dropdown, DropdownDeprecated, MultiSelect, MultiSelectDeprecated, NativeDropdown, SearchableDropdown };
|
|
2160
2401
|
//# sourceMappingURL=dropdown.esm.js.map
|