@entur/dropdown 4.0.13 → 5.0.0-RC.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Dropdown.d.ts +37 -36
- package/dist/MultiSelect.d.ts +86 -29
- package/dist/NativeDropdown.d.ts +23 -9
- package/dist/SearchableDropdown.d.ts +62 -16
- package/dist/components/DropdownList.d.ts +25 -0
- package/dist/components/FieldComponents.d.ts +29 -0
- 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/deprecated/index.d.ts +2 -0
- package/dist/dropdown.cjs.development.js +1171 -261
- 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 +1171 -263
- package/dist/dropdown.esm.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/styles.css +326 -160
- package/dist/useNormalizedItems.d.ts +5 -6
- package/dist/utils.d.ts +48 -0
- package/package.json +10 -10
- package/dist/DropdownList.d.ts +0 -8
- package/dist/DropdownToggleButton.d.ts +0 -3
- package/dist/beta/DropdownList.d.ts +0 -17
- package/dist/beta/SearchableDropdown.d.ts +0 -42
- package/dist/beta/index.d.ts +0 -1
|
@@ -12,6 +12,8 @@ var a11y = require('@entur/a11y');
|
|
|
12
12
|
var loader = require('@entur/loader');
|
|
13
13
|
var tokens = require('@entur/tokens');
|
|
14
14
|
var button = require('@entur/button');
|
|
15
|
+
var chip = require('@entur/chip');
|
|
16
|
+
var tooltip = require('@entur/tooltip');
|
|
15
17
|
|
|
16
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
19
|
|
|
@@ -380,7 +382,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
|
|
|
380
382
|
return target;
|
|
381
383
|
}
|
|
382
384
|
|
|
383
|
-
var _excluded$
|
|
385
|
+
var _excluded$d = ["children", "onChange", "onInputValueChange", "highlightFirstItemOnOpen", "className", "style", "searchable"];
|
|
384
386
|
var DownshiftContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
385
387
|
var DownshiftProvider = function DownshiftProvider(_ref) {
|
|
386
388
|
var children = _ref.children,
|
|
@@ -398,7 +400,7 @@ var DownshiftProvider = function DownshiftProvider(_ref) {
|
|
|
398
400
|
style = _ref.style,
|
|
399
401
|
_ref$searchable = _ref.searchable,
|
|
400
402
|
searchable = _ref$searchable === void 0 ? false : _ref$searchable,
|
|
401
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
403
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);
|
|
402
404
|
var handleStateChange = function handleStateChange(changes, stateAndHelpers) {
|
|
403
405
|
if (changes.type === Downshift__default["default"].stateChangeTypes.controlledPropUpdatedSelectedItem) {
|
|
404
406
|
return;
|
|
@@ -458,10 +460,10 @@ var useDownshift = function useDownshift() {
|
|
|
458
460
|
return context;
|
|
459
461
|
};
|
|
460
462
|
|
|
461
|
-
var _excluded$
|
|
462
|
-
var
|
|
463
|
+
var _excluded$c = ["items"];
|
|
464
|
+
var DropdownListDeprecated = function DropdownListDeprecated(_ref) {
|
|
463
465
|
var items = _ref.items,
|
|
464
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
466
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$c);
|
|
465
467
|
var _useDownshift = useDownshift(),
|
|
466
468
|
highlightedIndex = _useDownshift.highlightedIndex,
|
|
467
469
|
isOpen = _useDownshift.isOpen,
|
|
@@ -495,7 +497,7 @@ var DropdownList$1 = function DropdownList(_ref) {
|
|
|
495
497
|
}) : null);
|
|
496
498
|
};
|
|
497
499
|
|
|
498
|
-
var
|
|
500
|
+
var DropdownDeprecatedToggleButton = function DropdownDeprecatedToggleButton() {
|
|
499
501
|
var _useDownshift = useDownshift(),
|
|
500
502
|
getToggleButtonProps = _useDownshift.getToggleButtonProps,
|
|
501
503
|
isOpen = _useDownshift.isOpen;
|
|
@@ -509,18 +511,18 @@ var DropdownToggleButton$1 = function DropdownToggleButton() {
|
|
|
509
511
|
}), React__default["default"].createElement(icons.DownArrowIcon, null));
|
|
510
512
|
};
|
|
511
513
|
|
|
512
|
-
var _excluded$
|
|
513
|
-
var
|
|
514
|
+
var _excluded$b = ["className", "children"];
|
|
515
|
+
var DropdownDeprecatedLoadingDots = function DropdownDeprecatedLoadingDots(_ref) {
|
|
514
516
|
var className = _ref.className,
|
|
515
517
|
children = _ref.children,
|
|
516
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
518
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$b);
|
|
517
519
|
return React__default["default"].createElement("div", _extends({
|
|
518
520
|
className: classNames__default["default"]('eds-inline-spinner', className)
|
|
519
521
|
}, rest), React__default["default"].createElement(loader.LoadingDots, null), React__default["default"].createElement(a11y.VisuallyHidden, null, children));
|
|
520
522
|
};
|
|
521
523
|
|
|
522
|
-
var _excluded$
|
|
523
|
-
var
|
|
524
|
+
var _excluded$a = ["children", "className", "items", "loading", "loadingText", "placeholder", "style", "listStyle", "clearable", "label", "isFilled", "disableLabelAnimation"];
|
|
525
|
+
var BaseDropdownDeprecated = function BaseDropdownDeprecated(_ref) {
|
|
524
526
|
var children = _ref.children,
|
|
525
527
|
className = _ref.className,
|
|
526
528
|
items = _ref.items,
|
|
@@ -535,14 +537,14 @@ var BaseDropdown = function BaseDropdown(_ref) {
|
|
|
535
537
|
_ref$isFilled = _ref.isFilled,
|
|
536
538
|
isFilled = _ref$isFilled === void 0 ? false : _ref$isFilled,
|
|
537
539
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
538
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
540
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$a);
|
|
539
541
|
var _useDownshift = useDownshift(),
|
|
540
542
|
getLabelProps = _useDownshift.getLabelProps;
|
|
541
543
|
return React__default["default"].createElement("div", {
|
|
542
544
|
className: "eds-dropdown-wrapper",
|
|
543
545
|
style: style
|
|
544
546
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
545
|
-
append: React__default["default"].createElement(Appendix$
|
|
547
|
+
append: React__default["default"].createElement(Appendix$1, {
|
|
546
548
|
clearable: clearable,
|
|
547
549
|
loading: loading,
|
|
548
550
|
loadingText: loadingText,
|
|
@@ -553,7 +555,7 @@ var BaseDropdown = function BaseDropdown(_ref) {
|
|
|
553
555
|
isFilled: isFilled,
|
|
554
556
|
labelProps: getLabelProps(),
|
|
555
557
|
disableLabelAnimation: disableLabelAnimation
|
|
556
|
-
}, rest), children), React__default["default"].createElement(
|
|
558
|
+
}, rest), children), React__default["default"].createElement(DropdownListDeprecated, _extends({
|
|
557
559
|
items: items,
|
|
558
560
|
style: _extends({
|
|
559
561
|
position: 'absolute',
|
|
@@ -578,22 +580,22 @@ var ClearButton$1 = function ClearButton(_ref2) {
|
|
|
578
580
|
className: "eds-dropdown__divider"
|
|
579
581
|
}));
|
|
580
582
|
};
|
|
581
|
-
var Appendix$
|
|
583
|
+
var Appendix$1 = function Appendix(_ref3) {
|
|
582
584
|
var clearable = _ref3.clearable,
|
|
583
585
|
loading = _ref3.loading,
|
|
584
586
|
loadingText = _ref3.loadingText,
|
|
585
587
|
readOnly = _ref3.readOnly;
|
|
586
588
|
if (loading) {
|
|
587
|
-
return React__default["default"].createElement(
|
|
589
|
+
return React__default["default"].createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
588
590
|
}
|
|
589
591
|
if (readOnly) {
|
|
590
592
|
return null;
|
|
591
593
|
}
|
|
592
|
-
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);
|
|
593
595
|
};
|
|
594
596
|
|
|
595
|
-
var _excluded$
|
|
596
|
-
var
|
|
597
|
+
var _excluded$9 = ["disabled", "placeholder", "selectOnTab", "openOnFocus", "listStyle", "items", "label", "disableLabelAnimation", "loading", "loadingText", "className", "clearable"];
|
|
598
|
+
var RegularDropdownDeprecated = /*#__PURE__*/React__default["default"].forwardRef(function (_ref, ref) {
|
|
597
599
|
var disabled = _ref.disabled,
|
|
598
600
|
_ref$placeholder = _ref.placeholder,
|
|
599
601
|
placeholder = _ref$placeholder === void 0 ? 'Vennligst velg' : _ref$placeholder,
|
|
@@ -609,7 +611,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
609
611
|
loadingText = _ref.loadingText,
|
|
610
612
|
className = _ref.className,
|
|
611
613
|
clearable = _ref.clearable,
|
|
612
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
614
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$9);
|
|
613
615
|
var _useDownshift = useDownshift(),
|
|
614
616
|
getToggleButtonProps = _useDownshift.getToggleButtonProps,
|
|
615
617
|
selectedItem = _useDownshift.selectedItem,
|
|
@@ -618,7 +620,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
618
620
|
isOpen = _useDownshift.isOpen,
|
|
619
621
|
highlightedIndex = _useDownshift.highlightedIndex,
|
|
620
622
|
setHighlightedIndex = _useDownshift.setHighlightedIndex;
|
|
621
|
-
return React__default["default"].createElement(
|
|
623
|
+
return React__default["default"].createElement(BaseDropdownDeprecated, _extends({
|
|
622
624
|
disabled: disabled,
|
|
623
625
|
listStyle: listStyle,
|
|
624
626
|
items: items,
|
|
@@ -670,7 +672,7 @@ var RegularDropdown = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
670
672
|
}), selectedItem ? selectedItem.label : placeholder));
|
|
671
673
|
});
|
|
672
674
|
|
|
673
|
-
var _excluded$
|
|
675
|
+
var _excluded$8 = ["disabled", "className", "items", "loading", "loadingText", "readOnly", "prepend", "selectOnTab", "openOnFocus", "listStyle", "clearable", "itemFilter", "label", "disableLabelAnimation", "placeholder"];
|
|
674
676
|
function LowerCaseFilterTest(item, input) {
|
|
675
677
|
if (!input) {
|
|
676
678
|
return true;
|
|
@@ -679,7 +681,17 @@ function LowerCaseFilterTest(item, input) {
|
|
|
679
681
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
680
682
|
return inputRegex.test(item.label);
|
|
681
683
|
}
|
|
682
|
-
|
|
684
|
+
/**
|
|
685
|
+
* @deprecated
|
|
686
|
+
* New SearchableDropdown available
|
|
687
|
+
*
|
|
688
|
+
* migration guide to new dropdown:
|
|
689
|
+
* - change import from 'DropdownOld' 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) {
|
|
683
695
|
var _ref$disabled = _ref.disabled,
|
|
684
696
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
685
697
|
className = _ref.className,
|
|
@@ -702,7 +714,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
702
714
|
label = _ref.label,
|
|
703
715
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
704
716
|
placeholder = _ref.placeholder,
|
|
705
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
717
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$8);
|
|
706
718
|
var _useDownshift = useDownshift(),
|
|
707
719
|
getInputProps = _useDownshift.getInputProps,
|
|
708
720
|
inputValue = _useDownshift.inputValue,
|
|
@@ -720,7 +732,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
720
732
|
return itemFilter(item, inputValue);
|
|
721
733
|
});
|
|
722
734
|
}, [inputValue, items, itemFilter]);
|
|
723
|
-
return React__default["default"].createElement(
|
|
735
|
+
return React__default["default"].createElement(BaseDropdownDeprecated, {
|
|
724
736
|
items: filteredItems,
|
|
725
737
|
disabled: disabled,
|
|
726
738
|
readOnly: readOnly,
|
|
@@ -762,7 +774,7 @@ var SearchableDropdown = /*#__PURE__*/React__default["default"].forwardRef(funct
|
|
|
762
774
|
})));
|
|
763
775
|
});
|
|
764
776
|
|
|
765
|
-
var
|
|
777
|
+
var DropdownInputGroupDeprecated = function DropdownInputGroupDeprecated(_ref) {
|
|
766
778
|
var children = _ref.children,
|
|
767
779
|
feedback = _ref.feedback,
|
|
768
780
|
variant = _ref.variant,
|
|
@@ -891,7 +903,7 @@ debounceTimeout) {
|
|
|
891
903
|
if (isItemsFunction) {
|
|
892
904
|
fetchItems('');
|
|
893
905
|
}
|
|
894
|
-
}, [isItemsFunction
|
|
906
|
+
}, [isItemsFunction]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
895
907
|
return {
|
|
896
908
|
items: normalizedItems,
|
|
897
909
|
loading: isItemsFunction ? loading : false,
|
|
@@ -899,8 +911,19 @@ debounceTimeout) {
|
|
|
899
911
|
};
|
|
900
912
|
};
|
|
901
913
|
|
|
902
|
-
var _excluded$
|
|
903
|
-
|
|
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"];
|
|
915
|
+
/**
|
|
916
|
+
* @deprecated
|
|
917
|
+
* New Dropdown available
|
|
918
|
+
*
|
|
919
|
+
* migration guide to new dropdown:
|
|
920
|
+
* - change import from 'DropdownOld' 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) {
|
|
904
927
|
var highlightFirstItemOnOpen = _ref.highlightFirstItemOnOpen,
|
|
905
928
|
debounceTimeout = _ref.debounceTimeout,
|
|
906
929
|
disabled = _ref.disabled,
|
|
@@ -927,7 +950,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
927
950
|
listStyle = _ref.listStyle,
|
|
928
951
|
itemFilter = _ref.itemFilter,
|
|
929
952
|
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
930
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$
|
|
953
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$7);
|
|
931
954
|
var _useResolvedItems = useResolvedItems(items, debounceTimeout),
|
|
932
955
|
normalizedItems = _useResolvedItems.items,
|
|
933
956
|
loading = _useResolvedItems.loading,
|
|
@@ -935,7 +958,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
935
958
|
var selectedItem = value === undefined ? undefined : normalizedItems.find(function (item) {
|
|
936
959
|
return value === item.value;
|
|
937
960
|
}) || null;
|
|
938
|
-
var RenderedDropdown = searchable ?
|
|
961
|
+
var RenderedDropdown = searchable ? SearchableDropdownDeprecated : RegularDropdownDeprecated;
|
|
939
962
|
var searchAbleProps = searchable ? {
|
|
940
963
|
itemFilter: itemFilter,
|
|
941
964
|
name: rest.name,
|
|
@@ -953,7 +976,7 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
953
976
|
className: className,
|
|
954
977
|
style: style,
|
|
955
978
|
searchable: searchable
|
|
956
|
-
}, rest), React__default["default"].createElement(
|
|
979
|
+
}, rest), React__default["default"].createElement(DropdownInputGroupDeprecated, {
|
|
957
980
|
feedback: feedback,
|
|
958
981
|
variant: variant
|
|
959
982
|
}, React__default["default"].createElement(RenderedDropdown, _extends({
|
|
@@ -974,68 +997,10 @@ var Dropdown = /*#__PURE__*/React__default["default"].forwardRef(function (_ref,
|
|
|
974
997
|
}, searchAbleProps))));
|
|
975
998
|
});
|
|
976
999
|
|
|
977
|
-
var _excluded$
|
|
978
|
-
var
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
982
|
-
_ref$readOnly = _ref.readOnly,
|
|
983
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
984
|
-
items = _ref.items,
|
|
985
|
-
loadingText = _ref.loadingText,
|
|
986
|
-
prepend = _ref.prepend,
|
|
987
|
-
style = _ref.style,
|
|
988
|
-
label = _ref.label,
|
|
989
|
-
variant = _ref.variant,
|
|
990
|
-
feedback = _ref.feedback,
|
|
991
|
-
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
992
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
993
|
-
var _useResolvedItems = useResolvedItems(items),
|
|
994
|
-
normalizedItems = _useResolvedItems.items,
|
|
995
|
-
loading = _useResolvedItems.loading;
|
|
996
|
-
var rightSideIcon = React__default["default"].createElement(icons.DownArrowIcon, {
|
|
997
|
-
inline: true,
|
|
998
|
-
"aria-hidden": "true"
|
|
999
|
-
});
|
|
1000
|
-
if (disabled || readOnly) {
|
|
1001
|
-
rightSideIcon = null;
|
|
1002
|
-
} else if (loading) {
|
|
1003
|
-
rightSideIcon = React__default["default"].createElement(DropdownLoadingDots, {
|
|
1004
|
-
"aria-hidden": "true"
|
|
1005
|
-
}, loadingText);
|
|
1006
|
-
}
|
|
1007
|
-
var nativeDropdownId = utils.useRandomId('eds-native-dropdown');
|
|
1008
|
-
return React__default["default"].createElement(form.BaseFormControl, {
|
|
1009
|
-
disabled: disabled,
|
|
1010
|
-
readOnly: readOnly,
|
|
1011
|
-
prepend: prepend,
|
|
1012
|
-
append: rightSideIcon,
|
|
1013
|
-
className: className,
|
|
1014
|
-
style: style,
|
|
1015
|
-
label: label,
|
|
1016
|
-
labelId: nativeDropdownId,
|
|
1017
|
-
variant: variant,
|
|
1018
|
-
feedback: feedback,
|
|
1019
|
-
disableLabelAnimation: disableLabelAnimation,
|
|
1020
|
-
isFilled: true
|
|
1021
|
-
}, React__default["default"].createElement("select", _extends({
|
|
1022
|
-
"aria-invalid": variant === 'error',
|
|
1023
|
-
"aria-labelledby": nativeDropdownId,
|
|
1024
|
-
"aria-busy": loading,
|
|
1025
|
-
className: "eds-form-control eds-dropdown",
|
|
1026
|
-
disabled: disabled || readOnly
|
|
1027
|
-
}, rest), normalizedItems.map(function (item) {
|
|
1028
|
-
return React__default["default"].createElement("option", {
|
|
1029
|
-
key: item.value,
|
|
1030
|
-
value: item.value
|
|
1031
|
-
}, item.label);
|
|
1032
|
-
})));
|
|
1033
|
-
};
|
|
1034
|
-
|
|
1035
|
-
var _excluded$2 = ["items", "itemsSelectedLabel", "label", "feedback", "variant", "disabled", "readOnly", "onChange", "className", "clearable", "loading", "loadingText", "openOnFocus", "style", "listStyle", "initialSelectedItems", "debounceTimeout"];
|
|
1036
|
-
var MultiSelectContext = /*#__PURE__*/React__default["default"].createContext(null);
|
|
1037
|
-
var useMultiSelectContext = function useMultiSelectContext() {
|
|
1038
|
-
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);
|
|
1039
1004
|
if (!context) {
|
|
1040
1005
|
throw new Error('You need to wrap your component in a DownshiftProvider');
|
|
1041
1006
|
}
|
|
@@ -1047,8 +1012,8 @@ actionAndChanges) {
|
|
|
1047
1012
|
var changes = actionAndChanges.changes,
|
|
1048
1013
|
type = actionAndChanges.type;
|
|
1049
1014
|
switch (type) {
|
|
1050
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
1051
|
-
case Downshift.useSelect.stateChangeTypes.
|
|
1015
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:
|
|
1016
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
|
|
1052
1017
|
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
1053
1018
|
return _extends({}, changes, {
|
|
1054
1019
|
isOpen: true,
|
|
@@ -1058,37 +1023,47 @@ actionAndChanges) {
|
|
|
1058
1023
|
return changes;
|
|
1059
1024
|
}
|
|
1060
1025
|
}
|
|
1061
|
-
|
|
1062
|
-
|
|
1026
|
+
/**
|
|
1027
|
+
* @deprecated
|
|
1028
|
+
* New MultiSelect available
|
|
1029
|
+
*
|
|
1030
|
+
* migration guide to new dropdown:
|
|
1031
|
+
* - change import from 'DropdownOld' to 'Dropdown'
|
|
1032
|
+
* - change from 'value' to 'selectedItem'
|
|
1033
|
+
* + type of 'selectedItem' is 'NormalizedDropdownType' and does not include 'string'
|
|
1034
|
+
* - 'onChange' must update value of 'selectedItem'
|
|
1035
|
+
*/
|
|
1036
|
+
var MultiSelectDeprecated = function MultiSelectDeprecated(_ref) {
|
|
1037
|
+
var className = _ref.className,
|
|
1038
|
+
_ref$clearable = _ref.clearable,
|
|
1039
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1040
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1041
|
+
disabled = _ref.disabled,
|
|
1042
|
+
feedback = _ref.feedback,
|
|
1043
|
+
_ref$initialSelectedI = _ref.initialSelectedItems,
|
|
1044
|
+
initialSelectedItems = _ref$initialSelectedI === void 0 ? [] : _ref$initialSelectedI,
|
|
1045
|
+
input = _ref.items,
|
|
1063
1046
|
_ref$itemsSelectedLab = _ref.itemsSelectedLabel,
|
|
1064
1047
|
itemsSelectedLabel = _ref$itemsSelectedLab === void 0 ? function (items) {
|
|
1065
1048
|
return SelectedItemsLabel(items);
|
|
1066
1049
|
} : _ref$itemsSelectedLab,
|
|
1067
1050
|
label = _ref.label,
|
|
1068
|
-
|
|
1069
|
-
variant = _ref.variant,
|
|
1070
|
-
disabled = _ref.disabled,
|
|
1071
|
-
_ref$readOnly = _ref.readOnly,
|
|
1072
|
-
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1073
|
-
_ref$onChange = _ref.onChange,
|
|
1074
|
-
onChange = _ref$onChange === void 0 ? function () {
|
|
1075
|
-
return undefined;
|
|
1076
|
-
} : _ref$onChange,
|
|
1077
|
-
className = _ref.className,
|
|
1078
|
-
_ref$clearable = _ref.clearable,
|
|
1079
|
-
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
1051
|
+
listStyle = _ref.listStyle,
|
|
1080
1052
|
_ref$loading = _ref.loading,
|
|
1081
1053
|
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1082
1054
|
_ref$loadingText = _ref.loadingText,
|
|
1083
1055
|
loadingText = _ref$loadingText === void 0 ? '' : _ref$loadingText,
|
|
1056
|
+
_ref$onChange = _ref.onChange,
|
|
1057
|
+
onChange = _ref$onChange === void 0 ? function () {
|
|
1058
|
+
return undefined;
|
|
1059
|
+
} : _ref$onChange,
|
|
1084
1060
|
_ref$openOnFocus = _ref.openOnFocus,
|
|
1085
1061
|
openOnFocus = _ref$openOnFocus === void 0 ? false : _ref$openOnFocus,
|
|
1062
|
+
_ref$readOnly = _ref.readOnly,
|
|
1063
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1086
1064
|
style = _ref.style,
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
initialSelectedItems = _ref$initialSelectedI === void 0 ? [] : _ref$initialSelectedI,
|
|
1090
|
-
debounceTimeout = _ref.debounceTimeout,
|
|
1091
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1065
|
+
variant = _ref.variant,
|
|
1066
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$6);
|
|
1092
1067
|
var _useResolvedItems = useResolvedItems(input, debounceTimeout),
|
|
1093
1068
|
items = _useResolvedItems.items;
|
|
1094
1069
|
var _useState = React.useState(initialSelectedItems),
|
|
@@ -1134,7 +1109,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1134
1109
|
openMenu = _useSelect.openMenu;
|
|
1135
1110
|
var buttonText = selectedItems.length ? itemsSelectedLabel(selectedItems) : '';
|
|
1136
1111
|
var multiSelectId = utils.useRandomId('eds-multiselect');
|
|
1137
|
-
return React__default["default"].createElement(
|
|
1112
|
+
return React__default["default"].createElement(MultiSelectOldContext.Provider, {
|
|
1138
1113
|
value: {
|
|
1139
1114
|
isOpen: isOpen,
|
|
1140
1115
|
reset: reset,
|
|
@@ -1154,7 +1129,7 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1154
1129
|
isFilled: selectedItems.length > 0 || isOpen,
|
|
1155
1130
|
disabled: disabled,
|
|
1156
1131
|
readOnly: readOnly,
|
|
1157
|
-
append: React__default["default"].createElement(Appendix
|
|
1132
|
+
append: React__default["default"].createElement(Appendix, {
|
|
1158
1133
|
hasSelected: clearable && selectedItems.length > 0,
|
|
1159
1134
|
loading: loading,
|
|
1160
1135
|
loadingText: loadingText,
|
|
@@ -1210,8 +1185,8 @@ var MultiSelect = function MultiSelect(_ref) {
|
|
|
1210
1185
|
};
|
|
1211
1186
|
var ClearButton = function ClearButton(_ref3) {
|
|
1212
1187
|
var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
|
|
1213
|
-
var
|
|
1214
|
-
reset =
|
|
1188
|
+
var _useMultiSelectOldCon = useMultiSelectOldContext(),
|
|
1189
|
+
reset = _useMultiSelectOldCon.reset;
|
|
1215
1190
|
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement("button", _extends({
|
|
1216
1191
|
className: "eds-dropdown__clear-button",
|
|
1217
1192
|
type: "button",
|
|
@@ -1223,13 +1198,13 @@ var ClearButton = function ClearButton(_ref3) {
|
|
|
1223
1198
|
className: "eds-dropdown__divider"
|
|
1224
1199
|
}));
|
|
1225
1200
|
};
|
|
1226
|
-
var Appendix
|
|
1201
|
+
var Appendix = function Appendix(_ref4) {
|
|
1227
1202
|
var loading = _ref4.loading,
|
|
1228
1203
|
loadingText = _ref4.loadingText,
|
|
1229
1204
|
readOnly = _ref4.readOnly,
|
|
1230
1205
|
hasSelected = _ref4.hasSelected;
|
|
1231
1206
|
if (loading) {
|
|
1232
|
-
return React__default["default"].createElement(
|
|
1207
|
+
return React__default["default"].createElement(DropdownDeprecatedLoadingDots, null, loadingText);
|
|
1233
1208
|
}
|
|
1234
1209
|
if (readOnly) {
|
|
1235
1210
|
return null;
|
|
@@ -1237,11 +1212,11 @@ var Appendix$1 = function Appendix(_ref4) {
|
|
|
1237
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);
|
|
1238
1213
|
};
|
|
1239
1214
|
var DropdownToggleButton = function DropdownToggleButton() {
|
|
1240
|
-
var
|
|
1241
|
-
getToggleButtonProps =
|
|
1242
|
-
isOpen =
|
|
1243
|
-
openMenu =
|
|
1244
|
-
openOnFocus =
|
|
1215
|
+
var _useMultiSelectOldCon2 = useMultiSelectOldContext(),
|
|
1216
|
+
getToggleButtonProps = _useMultiSelectOldCon2.getToggleButtonProps,
|
|
1217
|
+
isOpen = _useMultiSelectOldCon2.isOpen,
|
|
1218
|
+
openMenu = _useMultiSelectOldCon2.openMenu,
|
|
1219
|
+
openOnFocus = _useMultiSelectOldCon2.openOnFocus;
|
|
1245
1220
|
return React__default["default"].createElement("button", _extends({}, getToggleButtonProps({
|
|
1246
1221
|
className: classNames__default["default"]('eds-dropdown__toggle-button', {
|
|
1247
1222
|
'eds-dropdown__toggle-button--open': isOpen
|
|
@@ -1273,46 +1248,248 @@ function SelectedItemsLabel(items) {
|
|
|
1273
1248
|
}).toString() : items.length + " elementer valgt";
|
|
1274
1249
|
}
|
|
1275
1250
|
|
|
1276
|
-
var _excluded$
|
|
1251
|
+
var _excluded$5 = ["ariaLabelChosenSingular", "ariaLabelSelectedItem", "getItemProps", "getMenuProps", "inputValue", "isOpen", "highlightedIndex", "listItems", "listStyle", "loading", "loadingText", "noMatchesText", "selectAllCheckboxState", "selectAllItem", "selectedItems", "showSelectAllInList"];
|
|
1277
1252
|
var DropdownList = function DropdownList(_ref) {
|
|
1278
|
-
var
|
|
1279
|
-
|
|
1280
|
-
|
|
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,
|
|
1281
1257
|
getItemProps = _ref.getItemProps,
|
|
1282
|
-
|
|
1258
|
+
getMenuProps = _ref.getMenuProps,
|
|
1259
|
+
isOpen = _ref.isOpen,
|
|
1283
1260
|
highlightedIndex = _ref.highlightedIndex,
|
|
1261
|
+
listItems = _ref.listItems,
|
|
1284
1262
|
listStyle = _ref.listStyle,
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1263
|
+
_ref$loading = _ref.loading,
|
|
1264
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
1265
|
+
_ref$loadingText = _ref.loadingText,
|
|
1266
|
+
loadingText = _ref$loadingText === void 0 ? 'Laster inn …' : _ref$loadingText,
|
|
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);
|
|
1273
|
+
var isMultiselect = selectAllItem !== undefined;
|
|
1274
|
+
var isNoMatches = !loading && (listItems.length === 0 || listItems.length === 1 && listItems[0].value === (selectAllItem == null ? void 0 : selectAllItem.value));
|
|
1275
|
+
var isItemSelected = function isItemSelected(item) {
|
|
1276
|
+
return selectedItems.some(function (selectedItem) {
|
|
1277
|
+
return selectedItem.value === item.value && selectedItem.label === item.label;
|
|
1278
|
+
});
|
|
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
|
+
};
|
|
1296
|
+
var selectAllListItemContent = function selectAllListItemContent() {
|
|
1297
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1298
|
+
"aria-hidden": "true",
|
|
1299
|
+
checked: selectAllCheckboxState == null ? void 0 : selectAllCheckboxState(),
|
|
1300
|
+
className: "eds-dropdown__list__item__checkbox",
|
|
1301
|
+
onChange: function onChange() {
|
|
1302
|
+
return;
|
|
1303
|
+
},
|
|
1304
|
+
tabIndex: -1
|
|
1305
|
+
}), React__default["default"].createElement("span", {
|
|
1306
|
+
className: "eds-dropdown__list__item__text",
|
|
1307
|
+
"aria-label": ariaLabelSelectAll()
|
|
1308
|
+
}, selectAllItem == null ? void 0 : selectAllItem.label));
|
|
1309
|
+
};
|
|
1310
|
+
var listItemContent = function listItemContent(item) {
|
|
1311
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null, React__default["default"].createElement(form.Checkbox, {
|
|
1312
|
+
"aria-hidden": "true",
|
|
1313
|
+
checked: isItemSelected(item),
|
|
1314
|
+
className: "eds-dropdown__list__item__checkbox",
|
|
1315
|
+
onChange: function onChange() {
|
|
1316
|
+
return;
|
|
1317
|
+
},
|
|
1318
|
+
style: !isMultiselect ? {
|
|
1319
|
+
display: 'none'
|
|
1320
|
+
} : {},
|
|
1321
|
+
tabIndex: -1
|
|
1322
|
+
}), React__default["default"].createElement("span", {
|
|
1323
|
+
className: "eds-dropdown__list__item__text"
|
|
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) {
|
|
1325
|
+
return React__default["default"].createElement(Icon, {
|
|
1326
|
+
key: index,
|
|
1327
|
+
inline: true,
|
|
1328
|
+
className: "eds-dropdown__list__item__icon"
|
|
1329
|
+
});
|
|
1330
|
+
})));
|
|
1331
|
+
};
|
|
1332
|
+
return (
|
|
1333
|
+
// use popover from @entur/tooltip when that package upgrades to floating-ui
|
|
1334
|
+
React__default["default"].createElement("ul", _extends({}, getMenuProps(), {
|
|
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) {
|
|
1340
|
+
var itemIsSelectAll = item.value === (selectAllItem == null ? void 0 : selectAllItem.value);
|
|
1341
|
+
if (itemIsSelectAll && listItems.length <= 2) return null;
|
|
1342
|
+
return React__default["default"].createElement("li", _extends({
|
|
1343
|
+
key: item.label,
|
|
1344
|
+
className: classNames__default["default"]('eds-dropdown__list__item', {
|
|
1345
|
+
'eds-dropdown__list__item--select-all': itemIsSelectAll,
|
|
1346
|
+
'eds-dropdown__list__item--highlighted': highlightedIndex === index,
|
|
1347
|
+
'eds-dropdown__list__item--selected': !isMultiselect && isItemSelected(item)
|
|
1299
1348
|
})
|
|
1300
1349
|
}, getItemProps({
|
|
1301
|
-
key:
|
|
1350
|
+
key: item.label,
|
|
1302
1351
|
item: item,
|
|
1303
1352
|
index: index
|
|
1304
|
-
})),
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
)
|
|
1312
|
-
|
|
1353
|
+
})), itemIsSelectAll ? selectAllListItemContent() : listItemContent(item));
|
|
1354
|
+
}), isNoMatches && React__default["default"].createElement("li", {
|
|
1355
|
+
key: "dropdown-list-no-match",
|
|
1356
|
+
className: "eds-dropdown__list__item"
|
|
1357
|
+
}, noMatchesText), loading && React__default["default"].createElement("li", {
|
|
1358
|
+
key: "dropdown-list-loading",
|
|
1359
|
+
className: "eds-dropdown__list__item"
|
|
1360
|
+
}, loadingText))
|
|
1361
|
+
);
|
|
1362
|
+
};
|
|
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: "right",
|
|
1454
|
+
content: labelClearSelectedItems
|
|
1455
|
+
}, React__default["default"].createElement(button.IconButton, {
|
|
1456
|
+
className: "eds-dropdown-appendix__clear-button",
|
|
1457
|
+
type: "button",
|
|
1458
|
+
tabIndex: focusable ? 0 : 1,
|
|
1459
|
+
onClick: onClear,
|
|
1460
|
+
"aria-label": labelClearSelectedItems
|
|
1461
|
+
}, React__default["default"].createElement(icons.CloseSmallIcon, {
|
|
1462
|
+
"aria-hidden": "true"
|
|
1463
|
+
})));
|
|
1464
|
+
};
|
|
1465
|
+
var ToggleButton = function ToggleButton(_ref5) {
|
|
1466
|
+
var getToggleButtonProps = _ref5.getToggleButtonProps,
|
|
1467
|
+
isOpen = _ref5.isOpen,
|
|
1468
|
+
_ref5$ariaHidden = _ref5['aria-hidden'],
|
|
1469
|
+
ariaHidden = _ref5$ariaHidden === void 0 ? false : _ref5$ariaHidden,
|
|
1470
|
+
_ref5$ariaLabelCloseL = _ref5.ariaLabelCloseList,
|
|
1471
|
+
ariaLabelCloseList = _ref5$ariaLabelCloseL === void 0 ? 'Lukk liste med valg' : _ref5$ariaLabelCloseL,
|
|
1472
|
+
_ref5$ariaLabelOpenLi = _ref5.ariaLabelOpenList,
|
|
1473
|
+
ariaLabelOpenList = _ref5$ariaLabelOpenLi === void 0 ? 'Åpne liste med valg' : _ref5$ariaLabelOpenLi,
|
|
1474
|
+
_ref5$focusable = _ref5.focusable,
|
|
1475
|
+
focusable = _ref5$focusable === void 0 ? false : _ref5$focusable;
|
|
1476
|
+
return React__default["default"].createElement(button.IconButton, _extends({}, getToggleButtonProps({
|
|
1477
|
+
className: classNames__default["default"]('eds-dropdown-appendix__toggle-button', {
|
|
1478
|
+
'eds-dropdown-appendix__toggle-button--open': isOpen
|
|
1479
|
+
}),
|
|
1480
|
+
'aria-labelledby': undefined
|
|
1481
|
+
}), {
|
|
1482
|
+
"aria-hidden": ariaHidden,
|
|
1483
|
+
"aria-label": ariaHidden ? undefined : isOpen ? ariaLabelCloseList : ariaLabelOpenList,
|
|
1484
|
+
tabIndex: focusable ? 0 : -1,
|
|
1485
|
+
type: "button"
|
|
1486
|
+
}), React__default["default"].createElement(icons.DownArrowIcon, {
|
|
1487
|
+
"aria-hidden": "true"
|
|
1488
|
+
}));
|
|
1313
1489
|
};
|
|
1314
1490
|
|
|
1315
|
-
|
|
1491
|
+
/* start general utils */
|
|
1492
|
+
var EMPTY_INPUT = '';
|
|
1316
1493
|
function lowerCaseFilterTest(item, input) {
|
|
1317
1494
|
if (!input) {
|
|
1318
1495
|
return true;
|
|
@@ -1321,171 +1498,904 @@ function lowerCaseFilterTest(item, input) {
|
|
|
1321
1498
|
var inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');
|
|
1322
1499
|
return inputRegex.test(item.label);
|
|
1323
1500
|
}
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1501
|
+
var itemToString = function itemToString(item) {
|
|
1502
|
+
return item ? item.label : '';
|
|
1503
|
+
};
|
|
1504
|
+
var useMultiselectUtils = function useMultiselectUtils(_ref) {
|
|
1505
|
+
var listItems = _ref.listItems,
|
|
1506
|
+
selectedItems = _ref.selectedItems,
|
|
1507
|
+
selectAll = _ref.selectAll;
|
|
1508
|
+
var hasSelectedItems = selectedItems.length > 0;
|
|
1509
|
+
var listItemsWithoutSelectAll = listItems.filter(function (item) {
|
|
1510
|
+
return item.value !== selectAll.value;
|
|
1511
|
+
});
|
|
1512
|
+
var allListItemsAreSelected = listItemsWithoutSelectAll.filter(function (item) {
|
|
1513
|
+
return !selectedItems.includes(item);
|
|
1514
|
+
}).length === 0;
|
|
1515
|
+
var someListItemsAreSelected = listItemsWithoutSelectAll.some(function (item) {
|
|
1516
|
+
return selectedItems.includes(item);
|
|
1517
|
+
});
|
|
1518
|
+
var addClickedItemToSelectedItems = function addClickedItemToSelectedItems(clickedItem, onChange) {
|
|
1519
|
+
return onChange([].concat(selectedItems, [clickedItem]));
|
|
1520
|
+
};
|
|
1521
|
+
var clickedItemIsInSelectedItems = function clickedItemIsInSelectedItems(clickedItem) {
|
|
1522
|
+
return selectedItems.some(function (selectedItem) {
|
|
1523
|
+
return selectedItem.value === clickedItem.value;
|
|
1524
|
+
});
|
|
1525
|
+
};
|
|
1526
|
+
var clickedItemIsSelectAll = function clickedItemIsSelectAll(clickedItem) {
|
|
1527
|
+
return clickedItem.value === selectAll.value;
|
|
1528
|
+
};
|
|
1529
|
+
var handleListItemClicked = function handleListItemClicked(_ref2) {
|
|
1530
|
+
var clickedItem = _ref2.clickedItem,
|
|
1531
|
+
onChange = _ref2.onChange,
|
|
1532
|
+
setLastRemovedItem = _ref2.setLastRemovedItem;
|
|
1533
|
+
if (clickedItemIsSelectAll(clickedItem)) {
|
|
1534
|
+
if (allListItemsAreSelected) {
|
|
1535
|
+
setLastRemovedItem(selectAll);
|
|
1536
|
+
return unselectAllListItems(onChange);
|
|
1537
|
+
}
|
|
1538
|
+
return selectAllUnselectedItemsInListItems(onChange);
|
|
1539
|
+
}
|
|
1540
|
+
if (clickedItemIsInSelectedItems(clickedItem)) {
|
|
1541
|
+
setLastRemovedItem(clickedItem);
|
|
1542
|
+
return removeClickedItemFromSelectedItems(clickedItem, onChange);
|
|
1543
|
+
}
|
|
1544
|
+
addClickedItemToSelectedItems(clickedItem, onChange);
|
|
1545
|
+
};
|
|
1546
|
+
var removeClickedItemFromSelectedItems = function removeClickedItemFromSelectedItems(clickedItem, onChange) {
|
|
1547
|
+
return onChange(selectedItems.filter(function (selectedItem) {
|
|
1548
|
+
return selectedItem.value !== clickedItem.value;
|
|
1549
|
+
}));
|
|
1550
|
+
};
|
|
1551
|
+
var selectAllCheckboxState = function selectAllCheckboxState() {
|
|
1552
|
+
if (allListItemsAreSelected) return true;
|
|
1553
|
+
if (someListItemsAreSelected) return 'indeterminate';
|
|
1554
|
+
return false;
|
|
1555
|
+
};
|
|
1556
|
+
var selectAllUnselectedItemsInListItems = function selectAllUnselectedItemsInListItems(onChange) {
|
|
1557
|
+
onChange([].concat(selectedItems, listItemsWithoutSelectAll.filter(function (item) {
|
|
1558
|
+
return !selectedItems.includes(item);
|
|
1559
|
+
})));
|
|
1560
|
+
};
|
|
1561
|
+
var unselectAllListItems = function unselectAllListItems(onChange) {
|
|
1562
|
+
onChange(selectedItems.filter(function (item) {
|
|
1563
|
+
return !listItemsWithoutSelectAll.includes(item);
|
|
1564
|
+
}));
|
|
1565
|
+
};
|
|
1566
|
+
return {
|
|
1567
|
+
addClickedItemToSelectedItems: addClickedItemToSelectedItems,
|
|
1568
|
+
allListItemsAreSelected: allListItemsAreSelected,
|
|
1569
|
+
clickedItemIsInSelectedItems: clickedItemIsInSelectedItems,
|
|
1570
|
+
clickedItemIsSelectAll: clickedItemIsSelectAll,
|
|
1571
|
+
handleListItemClicked: handleListItemClicked,
|
|
1572
|
+
hasSelectedItems: hasSelectedItems,
|
|
1573
|
+
listItemsWithoutSelectAll: listItemsWithoutSelectAll,
|
|
1574
|
+
removeClickedItemFromSelectedItems: removeClickedItemFromSelectedItems,
|
|
1575
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
1576
|
+
selectAllUnselectedItemsInListItems: selectAllUnselectedItemsInListItems,
|
|
1577
|
+
someListItemsAreSelected: someListItemsAreSelected,
|
|
1578
|
+
unselectAllListItems: unselectAllListItems
|
|
1579
|
+
};
|
|
1580
|
+
};
|
|
1581
|
+
function getA11yStatusMessage(options) {
|
|
1582
|
+
var isOpen = options.isOpen,
|
|
1583
|
+
resultCount = options.resultCount,
|
|
1584
|
+
previousResultCount = options.previousResultCount,
|
|
1585
|
+
_options$selectAllIte = options.selectAllItemIncluded,
|
|
1586
|
+
selectAllItemIncluded = _options$selectAllIte === void 0 ? false : _options$selectAllIte,
|
|
1587
|
+
_options$ariaLabelNoR = options.ariaLabelNoResults,
|
|
1588
|
+
ariaLabelNoResults = _options$ariaLabelNoR === void 0 ? 'Ingen resultater' : _options$ariaLabelNoR;
|
|
1589
|
+
if (!isOpen) {
|
|
1590
|
+
return '';
|
|
1591
|
+
}
|
|
1592
|
+
var resultCountWithoutSelectAll = selectAllItemIncluded ? resultCount - 1 : resultCount;
|
|
1593
|
+
if (resultCountWithoutSelectAll === 0) {
|
|
1594
|
+
return ariaLabelNoResults;
|
|
1595
|
+
}
|
|
1596
|
+
if (resultCount !== previousResultCount) {
|
|
1597
|
+
return resultCountWithoutSelectAll + " resultat" + (resultCountWithoutSelectAll === 1 ? '' : 'er') + " tilgjengelig, naviger med pil opp eller ned, velg elementer med enter.";
|
|
1598
|
+
}
|
|
1599
|
+
return '';
|
|
1600
|
+
}
|
|
1601
|
+
function getA11ySelectionMessage(options) {
|
|
1602
|
+
var selectedItem = options.selectedItem,
|
|
1603
|
+
itemToStringLocal = options.itemToString,
|
|
1604
|
+
selectAllItem = options.selectAllItem;
|
|
1605
|
+
if ((selectedItem == null ? void 0 : selectedItem.value) === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen valgt.';
|
|
1606
|
+
return selectedItem ? itemToStringLocal(selectedItem) + " er valgt." : '';
|
|
1607
|
+
}
|
|
1608
|
+
function getA11yRemovalMessage(options) {
|
|
1609
|
+
var itemToString = options.itemToString,
|
|
1610
|
+
selectAllItem = options.selectAllItem,
|
|
1611
|
+
removedItem = options.removedItem;
|
|
1612
|
+
if (removedItem === undefined) return '';
|
|
1613
|
+
if (removedItem.value === (selectAllItem == null ? void 0 : selectAllItem.value)) return 'Alle elementer i listen fjernet fra valgte.';
|
|
1614
|
+
return itemToString(removedItem) + " fjernet fra valgte.";
|
|
1615
|
+
}
|
|
1616
|
+
/**A VoiceOver click is always preformed in the center of the clicked element.
|
|
1617
|
+
This functions expolits that to check if the performed click likely is
|
|
1618
|
+
made by VoiceOver. */
|
|
1619
|
+
var isVoiceOverClick = function isVoiceOverClick(clickEvent) {
|
|
1620
|
+
var targetElementRect = clickEvent.currentTarget.getBoundingClientRect();
|
|
1621
|
+
var targetElementMiddleX = Math.floor(targetElementRect.x + targetElementRect.width / 2);
|
|
1622
|
+
var targetElementMiddleY = Math.floor(targetElementRect.y + targetElementRect.height / 2);
|
|
1623
|
+
var clickPositionX = clickEvent.clientX;
|
|
1624
|
+
var clickPositionY = clickEvent.clientY;
|
|
1625
|
+
console.log('targetX:', targetElementMiddleX, 'targetY:', targetElementMiddleY, 'clickX:', clickPositionX, 'clickY:', clickPositionY);
|
|
1626
|
+
return Math.abs(targetElementMiddleX - clickPositionX) <= 1 && Math.abs(targetElementMiddleY - clickPositionY) <= 1;
|
|
1627
|
+
};
|
|
1628
|
+
/* end a11y utils */
|
|
1629
|
+
|
|
1630
|
+
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"];
|
|
1631
|
+
var SearchableDropdown = function SearchableDropdown(_ref) {
|
|
1327
1632
|
var _selectedItem$label;
|
|
1328
|
-
var
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
label = _ref.label,
|
|
1332
|
-
placeholder = _ref.placeholder,
|
|
1633
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1634
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1635
|
+
className = _ref.className,
|
|
1333
1636
|
_ref$clearable = _ref.clearable,
|
|
1334
|
-
clearable = _ref$clearable === void 0 ?
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
_ref$
|
|
1338
|
-
|
|
1637
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1638
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1639
|
+
_ref$disabled = _ref.disabled,
|
|
1640
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1641
|
+
_ref$disableLabelAnim = _ref.disableLabelAnimation,
|
|
1642
|
+
disableLabelAnimation = _ref$disableLabelAnim === void 0 ? false : _ref$disableLabelAnim,
|
|
1339
1643
|
feedback = _ref.feedback,
|
|
1644
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1645
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1646
|
+
initialItems = _ref.items,
|
|
1647
|
+
label = _ref.label,
|
|
1648
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
1649
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
1650
|
+
listStyle = _ref.listStyle,
|
|
1651
|
+
loadingText = _ref.loadingText,
|
|
1652
|
+
onChange = _ref.onChange,
|
|
1653
|
+
placeholder = _ref.placeholder,
|
|
1654
|
+
prepend = _ref.prepend,
|
|
1655
|
+
_ref$readOnly = _ref.readOnly,
|
|
1656
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1657
|
+
value = _ref.selectedItem,
|
|
1658
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1659
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1660
|
+
style = _ref.style,
|
|
1340
1661
|
_ref$variant = _ref.variant,
|
|
1341
1662
|
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1342
|
-
|
|
1343
|
-
listStyle = _ref.listStyle,
|
|
1344
|
-
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
1345
|
-
var _React$useState = React__default["default"].useState(items),
|
|
1346
|
-
filteredItems = _React$useState[0],
|
|
1347
|
-
setFilteredItems = _React$useState[1];
|
|
1663
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
1348
1664
|
var _useState = React.useState(false),
|
|
1349
1665
|
hideSelectedItem = _useState[0],
|
|
1350
1666
|
setHideSelectedItem = _useState[1];
|
|
1667
|
+
var _React$useState = React__default["default"].useState(0),
|
|
1668
|
+
lastHighlightedIndex = _React$useState[0],
|
|
1669
|
+
setLastHighlightedIndex = _React$useState[1];
|
|
1351
1670
|
var inputRef = React.useRef(null);
|
|
1352
|
-
var
|
|
1353
|
-
|
|
1354
|
-
|
|
1671
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1672
|
+
normalizedItems = _useResolvedItems.items,
|
|
1673
|
+
loading = _useResolvedItems.loading,
|
|
1674
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1675
|
+
var _React$useState2 = React__default["default"].useState(normalizedItems),
|
|
1676
|
+
listItems = _React$useState2[0],
|
|
1677
|
+
setListItems = _React$useState2[1];
|
|
1678
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1679
|
+
var inputValue = _ref2.inputValue;
|
|
1680
|
+
return setListItems(normalizedItems.filter(function (item) {
|
|
1681
|
+
return itemFilter(item, inputValue);
|
|
1682
|
+
}));
|
|
1683
|
+
};
|
|
1684
|
+
var updateListItems = function updateListItems(_ref3) {
|
|
1685
|
+
var inputValue = _ref3.inputValue;
|
|
1686
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : EMPTY_INPUT); // fetch items only if user provides a function as items
|
|
1687
|
+
filterListItems({
|
|
1688
|
+
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1689
|
+
});
|
|
1690
|
+
};
|
|
1691
|
+
React__default["default"].useEffect(function () {
|
|
1692
|
+
filterListItems({
|
|
1693
|
+
inputValue: inputValue
|
|
1694
|
+
});
|
|
1695
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1696
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref4) {
|
|
1697
|
+
var type = _ref4.type,
|
|
1698
|
+
changes = _ref4.changes;
|
|
1699
|
+
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
1700
|
+
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1701
|
+
}
|
|
1355
1702
|
switch (type) {
|
|
1703
|
+
// empty input to show selected item and reset dropdown list on item selection
|
|
1356
1704
|
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1357
1705
|
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1358
1706
|
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1359
1707
|
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1708
|
+
{
|
|
1709
|
+
filterListItems({
|
|
1710
|
+
inputValue: EMPTY_INPUT
|
|
1711
|
+
});
|
|
1712
|
+
return _extends({}, changes, {
|
|
1713
|
+
inputValue: EMPTY_INPUT
|
|
1714
|
+
});
|
|
1715
|
+
}
|
|
1716
|
+
// remove leading whitespace, select element with spacebar on empty input, and filter list based on input
|
|
1717
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
1718
|
+
{
|
|
1719
|
+
var _changes$inputValue;
|
|
1720
|
+
var leadingWhitespaceTest = /^\s+/g;
|
|
1721
|
+
var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
|
|
1722
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
|
|
1723
|
+
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
1724
|
+
if (isSpacePressedOnEmptyInput) {
|
|
1725
|
+
openMenu();
|
|
1726
|
+
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
1727
|
+
onChange == null ? void 0 : onChange(listItems[changes.highlightedIndex]);
|
|
1728
|
+
}
|
|
1729
|
+
}
|
|
1730
|
+
} else {
|
|
1731
|
+
updateListItems({
|
|
1732
|
+
inputValue: changes.inputValue
|
|
1733
|
+
});
|
|
1734
|
+
}
|
|
1735
|
+
return changes;
|
|
1736
|
+
}
|
|
1363
1737
|
default:
|
|
1364
1738
|
return changes;
|
|
1365
1739
|
}
|
|
1366
|
-
}, []);
|
|
1740
|
+
}, [fetchItems, filterListItems]);
|
|
1367
1741
|
var _useCombobox = Downshift.useCombobox(_extends({
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
return lowerCaseFilterTest(item, inputValue);
|
|
1372
|
-
}));
|
|
1373
|
-
},
|
|
1374
|
-
items: filteredItems,
|
|
1375
|
-
itemToString: function itemToString(item) {
|
|
1376
|
-
if (item) return item.value;
|
|
1377
|
-
return '';
|
|
1378
|
-
},
|
|
1379
|
-
stateReducer: stateReducer,
|
|
1742
|
+
defaultHighlightedIndex: lastHighlightedIndex,
|
|
1743
|
+
items: listItems,
|
|
1744
|
+
itemToString: itemToString,
|
|
1380
1745
|
selectedItem: value,
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1746
|
+
stateReducer: stateReducer,
|
|
1747
|
+
onStateChange: function onStateChange(_ref5) {
|
|
1748
|
+
var type = _ref5.type,
|
|
1749
|
+
clickedItem = _ref5.selectedItem;
|
|
1750
|
+
switch (type) {
|
|
1751
|
+
// @ts-expect-error This falltrough is wanted
|
|
1752
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
1753
|
+
if (!selectOnBlur) break;
|
|
1754
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
1755
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1756
|
+
onChange == null ? void 0 : onChange(clickedItem != null ? clickedItem : null);
|
|
1757
|
+
}
|
|
1758
|
+
},
|
|
1759
|
+
// Accessibility
|
|
1760
|
+
getA11yStatusMessage: getA11yStatusMessage,
|
|
1761
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
1762
|
+
// but is left here for when it is fixed
|
|
1763
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
1764
|
+
return getA11ySelectionMessage(options);
|
|
1384
1765
|
}
|
|
1385
1766
|
}, rest)),
|
|
1386
1767
|
isOpen = _useCombobox.isOpen,
|
|
1768
|
+
openMenu = _useCombobox.openMenu,
|
|
1387
1769
|
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
1388
1770
|
getLabelProps = _useCombobox.getLabelProps,
|
|
1389
1771
|
getMenuProps = _useCombobox.getMenuProps,
|
|
1390
1772
|
getInputProps = _useCombobox.getInputProps,
|
|
1391
|
-
getComboboxProps = _useCombobox.getComboboxProps,
|
|
1392
1773
|
highlightedIndex = _useCombobox.highlightedIndex,
|
|
1393
1774
|
getItemProps = _useCombobox.getItemProps,
|
|
1394
1775
|
selectedItem = _useCombobox.selectedItem,
|
|
1395
|
-
|
|
1396
|
-
|
|
1776
|
+
inputValue = _useCombobox.inputValue,
|
|
1777
|
+
setInputValue = _useCombobox.setInputValue;
|
|
1778
|
+
var handleOnClear = function handleOnClear() {
|
|
1779
|
+
var _inputRef$current;
|
|
1780
|
+
onChange == null ? void 0 : onChange(null);
|
|
1781
|
+
setInputValue(EMPTY_INPUT);
|
|
1782
|
+
(_inputRef$current = inputRef.current) == null ? void 0 : _inputRef$current.focus();
|
|
1783
|
+
updateListItems({
|
|
1784
|
+
inputValue: inputValue
|
|
1785
|
+
});
|
|
1786
|
+
};
|
|
1397
1787
|
return React__default["default"].createElement("div", {
|
|
1398
|
-
className: "eds-
|
|
1788
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
1789
|
+
style: style
|
|
1399
1790
|
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
1400
|
-
append: React__default["default"].createElement(
|
|
1401
|
-
|
|
1402
|
-
|
|
1791
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
1792
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
1793
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
1403
1794
|
clearable: clearable,
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1795
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
1796
|
+
disabled: readOnly || disabled,
|
|
1797
|
+
focusable: false,
|
|
1798
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
1799
|
+
isOpen: isOpen,
|
|
1800
|
+
loading: loading,
|
|
1801
|
+
loadingText: loadingText,
|
|
1802
|
+
onClear: handleOnClear,
|
|
1803
|
+
selectedItems: [selectedItem]
|
|
1409
1804
|
}),
|
|
1410
|
-
className:
|
|
1411
|
-
|
|
1412
|
-
|
|
1805
|
+
className: "eds-dropdown",
|
|
1806
|
+
disabled: disabled,
|
|
1807
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
1413
1808
|
feedback: feedback,
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1809
|
+
isFilled: selectedItem !== null || inputValue !== EMPTY_INPUT,
|
|
1810
|
+
label: label,
|
|
1811
|
+
labelId: getLabelProps().id,
|
|
1812
|
+
labelProps: getLabelProps(),
|
|
1813
|
+
prepend: prepend,
|
|
1814
|
+
readOnly: readOnly,
|
|
1815
|
+
variant: variant
|
|
1816
|
+
}, rest), !hideSelectedItem && selectedItem && !inputValue && React__default["default"].createElement("span", {
|
|
1817
|
+
className: "eds-dropdown__selected-item__wrapper",
|
|
1818
|
+
"aria-hidden": "true"
|
|
1419
1819
|
}, React__default["default"].createElement("span", {
|
|
1420
|
-
className: "eds-
|
|
1820
|
+
className: "eds-dropdown__selected-item",
|
|
1421
1821
|
onClick: function onClick() {
|
|
1422
|
-
var _inputRef$
|
|
1423
|
-
return (_inputRef$
|
|
1822
|
+
var _inputRef$current2;
|
|
1823
|
+
return (_inputRef$current2 = inputRef.current) == null ? void 0 : _inputRef$current2.focus();
|
|
1424
1824
|
}
|
|
1425
1825
|
}, selectedItem.label)), React__default["default"].createElement("input", _extends({
|
|
1426
|
-
|
|
1427
|
-
|
|
1826
|
+
className: "eds-dropdown__input eds-form-control",
|
|
1827
|
+
disabled: readOnly || disabled,
|
|
1828
|
+
placeholder: (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : placeholder
|
|
1428
1829
|
}, getInputProps({
|
|
1429
|
-
|
|
1430
|
-
if (!isOpen &&
|
|
1431
|
-
setHideSelectedItem(true);
|
|
1830
|
+
onClick: function onClick(e) {
|
|
1831
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
1432
1832
|
},
|
|
1433
1833
|
onBlur: function onBlur() {
|
|
1434
1834
|
setHideSelectedItem(false);
|
|
1435
1835
|
},
|
|
1836
|
+
onFocus: function onFocus() {
|
|
1837
|
+
setHideSelectedItem(true);
|
|
1838
|
+
},
|
|
1436
1839
|
ref: inputRef
|
|
1437
1840
|
})))), React__default["default"].createElement(DropdownList, {
|
|
1438
|
-
selectedItem: selectedItem,
|
|
1439
1841
|
isOpen: isOpen,
|
|
1440
|
-
|
|
1441
|
-
highlightedIndex: highlightedIndex,
|
|
1842
|
+
listItems: listItems,
|
|
1442
1843
|
listStyle: listStyle,
|
|
1844
|
+
loading: loading,
|
|
1845
|
+
loadingText: loadingText,
|
|
1846
|
+
getItemProps: getItemProps,
|
|
1443
1847
|
getMenuProps: getMenuProps,
|
|
1444
|
-
|
|
1848
|
+
highlightedIndex: highlightedIndex,
|
|
1849
|
+
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
1445
1850
|
}));
|
|
1446
1851
|
};
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1852
|
+
|
|
1853
|
+
var _excluded$2 = ["className", "clearable", "clearInputOnSelect", "debounceTimeout", "disabled", "feedback", "hideSelectAll", "itemFilter", "items", "label", "labelAllItemsSelected", "labelClearAllItems", "labelSelectAll", "listStyle", "loadingText", "maxTags", "noMatchesText", "onChange", "placeholder", "readOnly", "selectedItems", "selectOnBlur", "style", "variant", "ariaLabelChosenSingular", "ariaLabelChosenPlural", "ariaLabelCloseList", "ariaLabelJumpToInput", "ariaLabelOpenList", "ariaLabelRemoveSelected", "ariaLabelSelectedItem"];
|
|
1854
|
+
var MultiSelect = function MultiSelect(_ref) {
|
|
1855
|
+
var className = _ref.className,
|
|
1856
|
+
_ref$clearable = _ref.clearable,
|
|
1857
|
+
clearable = _ref$clearable === void 0 ? true : _ref$clearable,
|
|
1858
|
+
_ref$clearInputOnSele = _ref.clearInputOnSelect,
|
|
1859
|
+
clearInputOnSelect = _ref$clearInputOnSele === void 0 ? false : _ref$clearInputOnSele,
|
|
1860
|
+
debounceTimeout = _ref.debounceTimeout,
|
|
1861
|
+
_ref$disabled = _ref.disabled,
|
|
1862
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
1863
|
+
feedback = _ref.feedback,
|
|
1864
|
+
_ref$hideSelectAll = _ref.hideSelectAll,
|
|
1865
|
+
hideSelectAll = _ref$hideSelectAll === void 0 ? false : _ref$hideSelectAll,
|
|
1866
|
+
_ref$itemFilter = _ref.itemFilter,
|
|
1867
|
+
itemFilter = _ref$itemFilter === void 0 ? lowerCaseFilterTest : _ref$itemFilter,
|
|
1868
|
+
initialItems = _ref.items,
|
|
1869
|
+
label = _ref.label,
|
|
1870
|
+
_ref$labelAllItemsSel = _ref.labelAllItemsSelected,
|
|
1871
|
+
labelAllItemsSelected = _ref$labelAllItemsSel === void 0 ? 'Alle valgt' : _ref$labelAllItemsSel,
|
|
1872
|
+
_ref$labelClearAllIte = _ref.labelClearAllItems,
|
|
1873
|
+
labelClearAllItems = _ref$labelClearAllIte === void 0 ? 'Fjern valgte' : _ref$labelClearAllIte,
|
|
1874
|
+
_ref$labelSelectAll = _ref.labelSelectAll,
|
|
1875
|
+
labelSelectAll = _ref$labelSelectAll === void 0 ? 'Velg alle' : _ref$labelSelectAll,
|
|
1876
|
+
listStyle = _ref.listStyle,
|
|
1877
|
+
loadingText = _ref.loadingText,
|
|
1878
|
+
_ref$maxTags = _ref.maxTags,
|
|
1879
|
+
maxTags = _ref$maxTags === void 0 ? 10 : _ref$maxTags,
|
|
1880
|
+
_ref$onChange = _ref.onChange,
|
|
1881
|
+
onChange = _ref$onChange === void 0 ? function () {
|
|
1882
|
+
return undefined;
|
|
1883
|
+
} : _ref$onChange,
|
|
1884
|
+
placeholder = _ref.placeholder,
|
|
1885
|
+
_ref$readOnly = _ref.readOnly,
|
|
1886
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
1887
|
+
selectedItems = _ref.selectedItems,
|
|
1888
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
1889
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
1890
|
+
style = _ref.style,
|
|
1891
|
+
_ref$variant = _ref.variant,
|
|
1892
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
1893
|
+
_ref$ariaLabelChosenS = _ref.ariaLabelChosenSingular,
|
|
1894
|
+
ariaLabelChosenSingular = _ref$ariaLabelChosenS === void 0 ? 'valgt' : _ref$ariaLabelChosenS,
|
|
1895
|
+
_ref$ariaLabelChosenP = _ref.ariaLabelChosenPlural,
|
|
1896
|
+
ariaLabelChosenPlural = _ref$ariaLabelChosenP === void 0 ? 'valgte' : _ref$ariaLabelChosenP,
|
|
1897
|
+
ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
1898
|
+
_ref$ariaLabelJumpToI = _ref.ariaLabelJumpToInput,
|
|
1899
|
+
ariaLabelJumpToInput = _ref$ariaLabelJumpToI === void 0 ? selectedItems.length + " valgte elementer, trykk for \xE5 hoppe til tekstfeltet" : _ref$ariaLabelJumpToI,
|
|
1900
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
1901
|
+
_ref$ariaLabelRemoveS = _ref.ariaLabelRemoveSelected,
|
|
1902
|
+
ariaLabelRemoveSelected = _ref$ariaLabelRemoveS === void 0 ? 'trykk for å fjerne valg' : _ref$ariaLabelRemoveS,
|
|
1903
|
+
_ref$ariaLabelSelecte = _ref.ariaLabelSelectedItem,
|
|
1904
|
+
ariaLabelSelectedItem = _ref$ariaLabelSelecte === void 0 ? ', valgt element, trykk for å fjerne' : _ref$ariaLabelSelecte,
|
|
1905
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);
|
|
1906
|
+
var _React$useState = React__default["default"].useState(0),
|
|
1907
|
+
lastHighlightedIndex = _React$useState[0],
|
|
1908
|
+
setLastHighlightedIndex = _React$useState[1];
|
|
1909
|
+
var _React$useState2 = React__default["default"].useState(undefined),
|
|
1910
|
+
lastRemovedItem = _React$useState2[0],
|
|
1911
|
+
setLastRemovedItem = _React$useState2[1];
|
|
1912
|
+
var inputRef = React.useRef(null);
|
|
1913
|
+
var _useResolvedItems = useResolvedItems(initialItems, debounceTimeout),
|
|
1914
|
+
normalizedItems = _useResolvedItems.items,
|
|
1915
|
+
loading = _useResolvedItems.loading,
|
|
1916
|
+
fetchItems = _useResolvedItems.fetchItems;
|
|
1917
|
+
var isAllNonAsyncItemsSelected = typeof initialItems !== 'function' && selectedItems.length === normalizedItems.length;
|
|
1918
|
+
// special 'item' used as Select All entry in the dropdown list
|
|
1919
|
+
var selectAll = {
|
|
1920
|
+
value: utils.useRandomId('select-all'),
|
|
1921
|
+
label: labelSelectAll
|
|
1922
|
+
};
|
|
1923
|
+
// special 'item' used as a replacement selected item tag for when
|
|
1924
|
+
// there are more selected element than maxTags
|
|
1925
|
+
var summarySelectedItems = React__default["default"].useMemo(function () {
|
|
1926
|
+
return {
|
|
1927
|
+
value: EMPTY_INPUT,
|
|
1928
|
+
label: isAllNonAsyncItemsSelected ? labelAllItemsSelected : selectedItems.length + ' ' + ariaLabelChosenPlural
|
|
1929
|
+
};
|
|
1930
|
+
}, [isAllNonAsyncItemsSelected, selectedItems, labelAllItemsSelected, ariaLabelChosenPlural]);
|
|
1931
|
+
var _useState = React.useState([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems)),
|
|
1932
|
+
listItems = _useState[0],
|
|
1933
|
+
setListItems = _useState[1];
|
|
1934
|
+
var filterListItems = function filterListItems(_ref2) {
|
|
1935
|
+
var inputValue = _ref2.inputValue;
|
|
1936
|
+
return setListItems([].concat(!hideSelectAll ? [selectAll] : [], normalizedItems.filter(function (item) {
|
|
1937
|
+
return itemFilter(item, inputValue);
|
|
1938
|
+
})));
|
|
1939
|
+
};
|
|
1940
|
+
var updateListItems = function updateListItems(_ref3) {
|
|
1941
|
+
var inputValue = _ref3.inputValue;
|
|
1942
|
+
if (typeof initialItems === 'function') fetchItems(inputValue != null ? inputValue : EMPTY_INPUT); // fetch items only if user provides a function as items
|
|
1943
|
+
filterListItems({
|
|
1944
|
+
inputValue: inputValue != null ? inputValue : EMPTY_INPUT
|
|
1945
|
+
});
|
|
1946
|
+
};
|
|
1947
|
+
React__default["default"].useEffect(function () {
|
|
1948
|
+
filterListItems({
|
|
1949
|
+
inputValue: inputValue
|
|
1950
|
+
});
|
|
1951
|
+
}, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1952
|
+
var _useMultiselectUtils = useMultiselectUtils({
|
|
1953
|
+
listItems: listItems,
|
|
1954
|
+
selectAll: selectAll,
|
|
1955
|
+
selectedItems: selectedItems
|
|
1956
|
+
}),
|
|
1957
|
+
hasSelectedItems = _useMultiselectUtils.hasSelectedItems,
|
|
1958
|
+
handleListItemClicked = _useMultiselectUtils.handleListItemClicked,
|
|
1959
|
+
selectAllCheckboxState = _useMultiselectUtils.selectAllCheckboxState;
|
|
1960
|
+
var _useMultipleSelection = Downshift.useMultipleSelection({
|
|
1961
|
+
selectedItems: selectedItems,
|
|
1962
|
+
itemToString: itemToString,
|
|
1963
|
+
// Accessibility
|
|
1964
|
+
getA11yRemovalMessage: function getA11yRemovalMessage$1(options) {
|
|
1965
|
+
return getA11yRemovalMessage(_extends({}, options, {
|
|
1966
|
+
selectAllItem: selectAll,
|
|
1967
|
+
removedItem: lastRemovedItem
|
|
1968
|
+
}));
|
|
1969
|
+
}
|
|
1970
|
+
}),
|
|
1971
|
+
getSelectedItemProps = _useMultipleSelection.getSelectedItemProps,
|
|
1972
|
+
getDropdownProps = _useMultipleSelection.getDropdownProps;
|
|
1973
|
+
var stateReducer = React__default["default"].useCallback(function (_, _ref4) {
|
|
1974
|
+
var changes = _ref4.changes,
|
|
1975
|
+
type = _ref4.type;
|
|
1976
|
+
if (changes.highlightedIndex !== undefined && (changes == null ? void 0 : changes.highlightedIndex) >= 0) {
|
|
1977
|
+
setLastHighlightedIndex(changes == null ? void 0 : changes.highlightedIndex);
|
|
1978
|
+
}
|
|
1979
|
+
switch (type) {
|
|
1980
|
+
// keep menu open and edit input value on item selection
|
|
1981
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter:
|
|
1982
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
1983
|
+
{
|
|
1984
|
+
var _inputRef$current$val, _inputRef$current;
|
|
1985
|
+
if (clearInputOnSelect) {
|
|
1986
|
+
updateListItems({
|
|
1987
|
+
inputValue: EMPTY_INPUT
|
|
1988
|
+
});
|
|
1989
|
+
}
|
|
1990
|
+
return _extends({}, changes, {
|
|
1991
|
+
isOpen: true,
|
|
1992
|
+
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
|
|
1993
|
+
});
|
|
1994
|
+
}
|
|
1995
|
+
// edit input value when selected items is updated outside component
|
|
1996
|
+
case Downshift.useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:
|
|
1997
|
+
{
|
|
1998
|
+
var _inputRef$current$val2, _inputRef$current2;
|
|
1999
|
+
return _extends({}, changes, {
|
|
2000
|
+
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
|
|
2001
|
+
});
|
|
2002
|
+
}
|
|
2003
|
+
// remove leading whitespace, select item with spacebar if input is empty and filter list items
|
|
2004
|
+
case Downshift.useCombobox.stateChangeTypes.InputChange:
|
|
2005
|
+
{
|
|
2006
|
+
var _changes$inputValue;
|
|
2007
|
+
var leadingWhitespaceTest = /^\s+/g;
|
|
2008
|
+
var isSpacePressedOnEmptyInput = changes.inputValue === ' ';
|
|
2009
|
+
if ((_changes$inputValue = changes.inputValue) != null && _changes$inputValue.match(leadingWhitespaceTest)) {
|
|
2010
|
+
setInputValue(changes.inputValue.replace(leadingWhitespaceTest, EMPTY_INPUT));
|
|
2011
|
+
if (isSpacePressedOnEmptyInput) {
|
|
2012
|
+
openMenu();
|
|
2013
|
+
if (isOpen && changes.highlightedIndex !== undefined) {
|
|
2014
|
+
handleListItemClicked({
|
|
2015
|
+
clickedItem: listItems[changes.highlightedIndex],
|
|
2016
|
+
onChange: onChange,
|
|
2017
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2018
|
+
});
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
} else {
|
|
2022
|
+
updateListItems({
|
|
2023
|
+
inputValue: changes.inputValue
|
|
2024
|
+
});
|
|
2025
|
+
}
|
|
2026
|
+
return changes;
|
|
2027
|
+
}
|
|
2028
|
+
// reset input value when leaving input field
|
|
2029
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
2030
|
+
{
|
|
2031
|
+
return _extends({}, changes, {
|
|
2032
|
+
inputValue: EMPTY_INPUT
|
|
2033
|
+
});
|
|
2034
|
+
}
|
|
2035
|
+
default:
|
|
2036
|
+
return changes;
|
|
2037
|
+
}
|
|
2038
|
+
}, [hideSelectAll, normalizedItems, filterListItems, initialItems]);
|
|
2039
|
+
var _useCombobox = Downshift.useCombobox(_extends({
|
|
2040
|
+
defaultHighlightedIndex: lastHighlightedIndex,
|
|
2041
|
+
items: listItems,
|
|
2042
|
+
itemToString: itemToString,
|
|
2043
|
+
selectedItem: null,
|
|
2044
|
+
stateReducer: stateReducer,
|
|
2045
|
+
onStateChange: function onStateChange(_ref5) {
|
|
2046
|
+
var type = _ref5.type,
|
|
2047
|
+
clickedItem = _ref5.selectedItem;
|
|
2048
|
+
// clickedItem means item chosen either via mouse or keyboard
|
|
2049
|
+
if (!clickedItem) return;
|
|
2050
|
+
switch (type) {
|
|
2051
|
+
// @ts-expect-error This falltrough is wanted
|
|
2052
|
+
case Downshift.useCombobox.stateChangeTypes.InputBlur:
|
|
2053
|
+
if (!selectOnBlur) break;
|
|
2054
|
+
case Downshift.useCombobox.stateChangeTypes.InputKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
2055
|
+
case Downshift.useCombobox.stateChangeTypes.ItemClick:
|
|
2056
|
+
{
|
|
2057
|
+
handleListItemClicked({
|
|
2058
|
+
clickedItem: clickedItem,
|
|
2059
|
+
onChange: onChange,
|
|
2060
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2061
|
+
});
|
|
2062
|
+
}
|
|
2063
|
+
}
|
|
2064
|
+
},
|
|
2065
|
+
// Accessibility
|
|
2066
|
+
getA11yStatusMessage: function getA11yStatusMessage$1(options) {
|
|
2067
|
+
return getA11yStatusMessage(_extends({}, options, {
|
|
2068
|
+
selectAllItemIncluded: !hideSelectAll
|
|
2069
|
+
}));
|
|
2070
|
+
},
|
|
2071
|
+
// The following A11y-helper does not work due to a bug (https://github.com/downshift-js/downshift/issues/1227)
|
|
2072
|
+
// but is left here for when it is fixed
|
|
2073
|
+
getA11ySelectionMessage: function getA11ySelectionMessage$1(options) {
|
|
2074
|
+
return getA11ySelectionMessage(_extends({}, options, {
|
|
2075
|
+
selectAllItem: selectAll
|
|
2076
|
+
}));
|
|
2077
|
+
}
|
|
2078
|
+
}, rest)),
|
|
2079
|
+
getInputProps = _useCombobox.getInputProps,
|
|
2080
|
+
getItemProps = _useCombobox.getItemProps,
|
|
2081
|
+
getLabelProps = _useCombobox.getLabelProps,
|
|
2082
|
+
getMenuProps = _useCombobox.getMenuProps,
|
|
2083
|
+
getToggleButtonProps = _useCombobox.getToggleButtonProps,
|
|
2084
|
+
highlightedIndex = _useCombobox.highlightedIndex,
|
|
2085
|
+
inputValue = _useCombobox.inputValue,
|
|
2086
|
+
isOpen = _useCombobox.isOpen,
|
|
2087
|
+
openMenu = _useCombobox.openMenu,
|
|
2088
|
+
setInputValue = _useCombobox.setInputValue;
|
|
2089
|
+
var handleOnClear = function handleOnClear() {
|
|
2090
|
+
var _inputRef$current3;
|
|
2091
|
+
onChange([]);
|
|
2092
|
+
setInputValue(EMPTY_INPUT);
|
|
2093
|
+
(_inputRef$current3 = inputRef.current) == null ? void 0 : _inputRef$current3.focus();
|
|
2094
|
+
updateListItems({
|
|
2095
|
+
inputValue: inputValue
|
|
2096
|
+
});
|
|
2097
|
+
};
|
|
1461
2098
|
return React__default["default"].createElement("div", {
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
2099
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
2100
|
+
style: style
|
|
2101
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
2102
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
2103
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2104
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
2105
|
+
selectedItems: selectedItems,
|
|
2106
|
+
isOpen: isOpen,
|
|
2107
|
+
clearable: clearable,
|
|
2108
|
+
labelClearSelectedItems: labelClearAllItems,
|
|
2109
|
+
focusable: false,
|
|
2110
|
+
loading: loading,
|
|
2111
|
+
loadingText: loadingText,
|
|
2112
|
+
disabled: readOnly || disabled,
|
|
2113
|
+
onClear: handleOnClear,
|
|
2114
|
+
getToggleButtonProps: getToggleButtonProps
|
|
2115
|
+
}),
|
|
2116
|
+
className: "eds-dropdown",
|
|
2117
|
+
disabled: disabled,
|
|
2118
|
+
feedback: feedback,
|
|
2119
|
+
isFilled: hasSelectedItems || inputValue !== EMPTY_INPUT,
|
|
2120
|
+
label: label,
|
|
2121
|
+
labelId: getLabelProps().id,
|
|
2122
|
+
labelProps: getLabelProps(),
|
|
2123
|
+
readOnly: readOnly,
|
|
2124
|
+
variant: variant
|
|
2125
|
+
}, rest), React__default["default"].createElement("div", {
|
|
2126
|
+
className: classNames__default["default"]('eds-dropdown__selected-items-and-input', {
|
|
2127
|
+
'eds-dropdown__selected-items-and-input--filled': hasSelectedItems
|
|
2128
|
+
}),
|
|
2129
|
+
onClick: function onClick(e) {
|
|
2130
|
+
var _inputRef$current4;
|
|
2131
|
+
if (e.target === e.currentTarget) (_inputRef$current4 = inputRef.current) == null ? void 0 : _inputRef$current4.focus();
|
|
1465
2132
|
}
|
|
1466
|
-
},
|
|
1467
|
-
className: "eds-searchable-dropdown-appendix__clear-button",
|
|
1468
|
-
type: "button",
|
|
1469
|
-
tabIndex: -1,
|
|
2133
|
+
}, selectedItems.length < maxTags ? React__default["default"].createElement(React__default["default"].Fragment, null, selectedItems.length > 1 ? React__default["default"].createElement(a11y.VisuallyHidden, {
|
|
1470
2134
|
onClick: function onClick() {
|
|
1471
|
-
|
|
2135
|
+
var _inputRef$current5;
|
|
2136
|
+
return (_inputRef$current5 = inputRef.current) == null ? void 0 : _inputRef$current5.focus();
|
|
1472
2137
|
}
|
|
1473
|
-
}, React__default["default"].createElement(
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
2138
|
+
}, ariaLabelJumpToInput) : React__default["default"].createElement(React__default["default"].Fragment, null), selectedItems.map(function (selectedItem, index) {
|
|
2139
|
+
return React__default["default"].createElement(SelectedItemTag, {
|
|
2140
|
+
ariaLabelChosen: ariaLabelChosenSingular,
|
|
2141
|
+
ariaLabelRemoveSelected: ariaLabelRemoveSelected,
|
|
2142
|
+
disabled: disabled,
|
|
2143
|
+
getSelectedItemProps: getSelectedItemProps,
|
|
2144
|
+
index: index,
|
|
2145
|
+
key: selectedItem.value,
|
|
2146
|
+
readOnly: readOnly,
|
|
2147
|
+
removeSelectedItem: function removeSelectedItem() {
|
|
2148
|
+
var _inputRef$current6;
|
|
2149
|
+
handleListItemClicked({
|
|
2150
|
+
clickedItem: selectedItem,
|
|
2151
|
+
onChange: onChange,
|
|
2152
|
+
setLastRemovedItem: setLastRemovedItem
|
|
2153
|
+
});
|
|
2154
|
+
inputRef == null ? void 0 : (_inputRef$current6 = inputRef.current) == null ? void 0 : _inputRef$current6.focus();
|
|
2155
|
+
},
|
|
2156
|
+
selectedItem: selectedItem
|
|
2157
|
+
});
|
|
2158
|
+
})) : React__default["default"].createElement(SelectedItemTag, {
|
|
2159
|
+
ariaLabelRemoveSelected: labelClearAllItems,
|
|
2160
|
+
ariaLabelChosen: "",
|
|
2161
|
+
disabled: disabled,
|
|
2162
|
+
readOnly: readOnly,
|
|
2163
|
+
removeSelectedItem: handleOnClear,
|
|
2164
|
+
selectedItem: summarySelectedItems
|
|
2165
|
+
}), React__default["default"].createElement("input", _extends({
|
|
2166
|
+
placeholder: placeholder,
|
|
2167
|
+
className: "eds-dropdown__input eds-form-control",
|
|
2168
|
+
disabled: readOnly || disabled
|
|
2169
|
+
}, getInputProps(getDropdownProps({
|
|
2170
|
+
onClick: function onClick(e) {
|
|
2171
|
+
if (!isOpen && isVoiceOverClick(e)) openMenu();
|
|
2172
|
+
},
|
|
2173
|
+
preventKeyAction: isOpen,
|
|
2174
|
+
ref: inputRef,
|
|
2175
|
+
value: inputValue != null ? inputValue : EMPTY_INPUT
|
|
2176
|
+
})))))), React__default["default"].createElement(DropdownList, {
|
|
2177
|
+
ariaLabelChosenSingular: ariaLabelChosenSingular,
|
|
2178
|
+
ariaLabelSelectedItem: ariaLabelSelectedItem,
|
|
2179
|
+
getItemProps: getItemProps,
|
|
2180
|
+
getMenuProps: getMenuProps,
|
|
2181
|
+
highlightedIndex: highlightedIndex,
|
|
2182
|
+
inputValue: inputValue,
|
|
2183
|
+
isOpen: isOpen,
|
|
2184
|
+
listItems: listItems,
|
|
2185
|
+
listStyle: listStyle,
|
|
2186
|
+
loading: loading,
|
|
2187
|
+
loadingText: loadingText,
|
|
2188
|
+
selectAllCheckboxState: selectAllCheckboxState,
|
|
2189
|
+
selectAllItem: selectAll,
|
|
2190
|
+
selectedItems: selectedItems
|
|
2191
|
+
}));
|
|
2192
|
+
};
|
|
2193
|
+
|
|
2194
|
+
var _excluded$1 = ["ariaLabelCloseList", "ariaLabelOpenList", "className", "clearable", "disabled", "disableLabelAnimation", "feedback", "items", "label", "labelClearSelectedItem", "listStyle", "loadingText", "onChange", "placeholder", "prepend", "readOnly", "selectedItem", "selectOnBlur", "style", "variant"];
|
|
2195
|
+
var Dropdown = function Dropdown(_ref) {
|
|
2196
|
+
var _ref3, _selectedItem$label;
|
|
2197
|
+
var ariaLabelCloseList = _ref.ariaLabelCloseList,
|
|
2198
|
+
ariaLabelOpenList = _ref.ariaLabelOpenList,
|
|
2199
|
+
className = _ref.className,
|
|
2200
|
+
_ref$clearable = _ref.clearable,
|
|
2201
|
+
clearable = _ref$clearable === void 0 ? false : _ref$clearable,
|
|
2202
|
+
_ref$disabled = _ref.disabled,
|
|
2203
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2204
|
+
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2205
|
+
feedback = _ref.feedback,
|
|
2206
|
+
initialItems = _ref.items,
|
|
2207
|
+
label = _ref.label,
|
|
2208
|
+
_ref$labelClearSelect = _ref.labelClearSelectedItem,
|
|
2209
|
+
labelClearSelectedItem = _ref$labelClearSelect === void 0 ? 'fjern valgt' : _ref$labelClearSelect,
|
|
2210
|
+
listStyle = _ref.listStyle,
|
|
2211
|
+
loadingText = _ref.loadingText,
|
|
2212
|
+
onChange = _ref.onChange,
|
|
2213
|
+
placeholder = _ref.placeholder,
|
|
2214
|
+
prepend = _ref.prepend,
|
|
2215
|
+
_ref$readOnly = _ref.readOnly,
|
|
2216
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
2217
|
+
selectedItem = _ref.selectedItem,
|
|
2218
|
+
_ref$selectOnBlur = _ref.selectOnBlur,
|
|
2219
|
+
selectOnBlur = _ref$selectOnBlur === void 0 ? false : _ref$selectOnBlur,
|
|
2220
|
+
style = _ref.style,
|
|
2221
|
+
_ref$variant = _ref.variant,
|
|
2222
|
+
variant = _ref$variant === void 0 ? 'info' : _ref$variant,
|
|
2223
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);
|
|
2224
|
+
var _useResolvedItems = useResolvedItems(initialItems),
|
|
2225
|
+
normalizedItems = _useResolvedItems.items,
|
|
2226
|
+
loading = _useResolvedItems.loading;
|
|
2227
|
+
var isFilled = selectedItem !== null || placeholder !== undefined;
|
|
2228
|
+
var _useSelect = Downshift.useSelect({
|
|
2229
|
+
items: normalizedItems,
|
|
2230
|
+
defaultHighlightedIndex: selectedItem ? undefined : 0,
|
|
2231
|
+
selectedItem: selectedItem,
|
|
2232
|
+
onStateChange: function onStateChange(_ref2) {
|
|
2233
|
+
var type = _ref2.type,
|
|
2234
|
+
clickedItem = _ref2.selectedItem;
|
|
2235
|
+
switch (type) {
|
|
2236
|
+
// @ts-expect-error This falltrough is wanted
|
|
2237
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonBlur:
|
|
2238
|
+
if (!selectOnBlur) break;
|
|
2239
|
+
case Downshift.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter: // eslint-disable-line no-fallthrough
|
|
2240
|
+
case Downshift.useSelect.stateChangeTypes.ItemClick:
|
|
2241
|
+
{
|
|
2242
|
+
onChange == null ? void 0 : onChange(clickedItem !== undefined ? clickedItem : null);
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
},
|
|
2246
|
+
itemToString: itemToString
|
|
2247
|
+
}),
|
|
2248
|
+
isOpen = _useSelect.isOpen,
|
|
2249
|
+
getItemProps = _useSelect.getItemProps,
|
|
2250
|
+
getLabelProps = _useSelect.getLabelProps,
|
|
2251
|
+
getMenuProps = _useSelect.getMenuProps,
|
|
2252
|
+
getToggleButtonProps = _useSelect.getToggleButtonProps,
|
|
2253
|
+
highlightedIndex = _useSelect.highlightedIndex;
|
|
2254
|
+
return React__default["default"].createElement("div", {
|
|
2255
|
+
className: classNames__default["default"]('eds-dropdown__wrapper', className),
|
|
2256
|
+
style: style
|
|
2257
|
+
}, React__default["default"].createElement(form.BaseFormControl, _extends({
|
|
2258
|
+
append: React__default["default"].createElement(FieldAppend$1, {
|
|
2259
|
+
ariaHiddenToggleButton: true,
|
|
2260
|
+
ariaLabelCloseList: ariaLabelCloseList,
|
|
2261
|
+
ariaLabelOpenList: ariaLabelOpenList,
|
|
2262
|
+
clearable: clearable,
|
|
2263
|
+
labelClearSelectedItems: labelClearSelectedItem,
|
|
2264
|
+
focusable: false,
|
|
2265
|
+
getToggleButtonProps: getToggleButtonProps,
|
|
2266
|
+
isOpen: isOpen,
|
|
2267
|
+
loading: loading,
|
|
2268
|
+
loadingText: loadingText,
|
|
2269
|
+
onClear: function onClear() {
|
|
2270
|
+
onChange == null ? void 0 : onChange(null);
|
|
2271
|
+
},
|
|
2272
|
+
disabled: readOnly || disabled,
|
|
2273
|
+
selectedItems: [selectedItem]
|
|
2274
|
+
}),
|
|
2275
|
+
className: classNames__default["default"]('eds-dropdown', {
|
|
2276
|
+
'eds-dropdown--not-filled': !isFilled
|
|
2277
|
+
}),
|
|
2278
|
+
disabled: disabled,
|
|
2279
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
2280
|
+
feedback: feedback,
|
|
2281
|
+
isFilled: isFilled,
|
|
2282
|
+
label: label,
|
|
2283
|
+
labelId: getLabelProps().id,
|
|
2284
|
+
labelProps: getLabelProps(),
|
|
2285
|
+
prepend: prepend,
|
|
2286
|
+
readOnly: readOnly,
|
|
2287
|
+
variant: variant
|
|
2288
|
+
}, rest), React__default["default"].createElement("div", _extends({
|
|
2289
|
+
className: "eds-dropdown__selected-item-button"
|
|
2290
|
+
}, getToggleButtonProps({
|
|
2291
|
+
id: undefined
|
|
2292
|
+
})), (_ref3 = (_selectedItem$label = selectedItem == null ? void 0 : selectedItem.label) != null ? _selectedItem$label : React__default["default"].createElement("span", {
|
|
2293
|
+
className: classNames__default["default"]('eds-dropdown__selected-item-button__placeholder', {
|
|
2294
|
+
'eds-dropdown__selected-item-button__placeholder--readonly': readOnly
|
|
1478
2295
|
})
|
|
1479
|
-
}), {
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
2296
|
+
}, placeholder)) != null ? _ref3 : '')), React__default["default"].createElement(DropdownList, {
|
|
2297
|
+
getItemProps: getItemProps,
|
|
2298
|
+
getMenuProps: getMenuProps,
|
|
2299
|
+
highlightedIndex: highlightedIndex,
|
|
2300
|
+
isOpen: isOpen,
|
|
2301
|
+
listItems: normalizedItems,
|
|
2302
|
+
listStyle: listStyle,
|
|
2303
|
+
loading: loading,
|
|
2304
|
+
loadingText: loadingText,
|
|
2305
|
+
selectedItems: selectedItem !== null ? [selectedItem] : []
|
|
2306
|
+
}));
|
|
2307
|
+
};
|
|
2308
|
+
|
|
2309
|
+
var _excluded = ["className", "disabled", "disableLabelAnimation", "feedback", "items", "label", "loadingText", "onChange", "prepend", "readOnly", "selectedItem", "style", "value", "variant"];
|
|
2310
|
+
var NativeDropdown = function NativeDropdown(_ref) {
|
|
2311
|
+
var _ref2;
|
|
2312
|
+
var className = _ref.className,
|
|
2313
|
+
_ref$disabled = _ref.disabled,
|
|
2314
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
2315
|
+
disableLabelAnimation = _ref.disableLabelAnimation,
|
|
2316
|
+
feedback = _ref.feedback,
|
|
2317
|
+
items = _ref.items,
|
|
2318
|
+
label = _ref.label,
|
|
2319
|
+
loadingText = _ref.loadingText,
|
|
2320
|
+
_onChange = _ref.onChange,
|
|
2321
|
+
prepend = _ref.prepend,
|
|
2322
|
+
_ref$readOnly = _ref.readOnly,
|
|
2323
|
+
readOnly = _ref$readOnly === void 0 ? false : _ref$readOnly,
|
|
2324
|
+
selectedItem = _ref.selectedItem,
|
|
2325
|
+
style = _ref.style,
|
|
2326
|
+
value = _ref.value,
|
|
2327
|
+
variant = _ref.variant,
|
|
2328
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2329
|
+
var _useResolvedItems = useResolvedItems(items),
|
|
2330
|
+
normalizedItems = _useResolvedItems.items,
|
|
2331
|
+
loading = _useResolvedItems.loading;
|
|
2332
|
+
var nativeDropdownId = utils.useRandomId('eds-dropdown-native');
|
|
2333
|
+
return React__default["default"].createElement(form.BaseFormControl, {
|
|
2334
|
+
disabled: disabled,
|
|
2335
|
+
readOnly: readOnly,
|
|
2336
|
+
prepend: prepend,
|
|
2337
|
+
append: React__default["default"].createElement(FieldAppend, {
|
|
2338
|
+
hidden: disabled || readOnly,
|
|
2339
|
+
loading: loading,
|
|
2340
|
+
loadingText: loadingText
|
|
2341
|
+
}),
|
|
2342
|
+
className: className,
|
|
2343
|
+
style: style,
|
|
2344
|
+
label: label,
|
|
2345
|
+
labelId: nativeDropdownId,
|
|
2346
|
+
variant: variant,
|
|
2347
|
+
feedback: feedback,
|
|
2348
|
+
disableLabelAnimation: disableLabelAnimation,
|
|
2349
|
+
isFilled: true
|
|
2350
|
+
}, React__default["default"].createElement("select", _extends({
|
|
2351
|
+
"aria-invalid": variant === 'error',
|
|
2352
|
+
"aria-labelledby": nativeDropdownId,
|
|
2353
|
+
"aria-busy": loading,
|
|
2354
|
+
className: "eds-form-control eds-dropdown--native",
|
|
2355
|
+
disabled: disabled || readOnly,
|
|
2356
|
+
onChange: function onChange(event) {
|
|
2357
|
+
var _normalizedItems$find;
|
|
2358
|
+
_onChange == null ? void 0 : _onChange({
|
|
2359
|
+
value: event.target.value,
|
|
2360
|
+
selectedItem: (_normalizedItems$find = normalizedItems.find(function (item) {
|
|
2361
|
+
return item.value === event.target.value;
|
|
2362
|
+
})) != null ? _normalizedItems$find : null,
|
|
2363
|
+
target: event.target
|
|
2364
|
+
});
|
|
2365
|
+
},
|
|
2366
|
+
value: (_ref2 = value != null ? value : selectedItem == null ? void 0 : selectedItem.value) != null ? _ref2 : undefined
|
|
2367
|
+
}, rest), normalizedItems.map(function (item) {
|
|
2368
|
+
return React__default["default"].createElement("option", {
|
|
2369
|
+
key: item.value,
|
|
2370
|
+
value: item.value
|
|
2371
|
+
}, item.label);
|
|
2372
|
+
})));
|
|
2373
|
+
};
|
|
2374
|
+
var FieldAppend = function FieldAppend(_ref3) {
|
|
2375
|
+
var loading = _ref3.loading,
|
|
2376
|
+
loadingText = _ref3.loadingText,
|
|
2377
|
+
hidden = _ref3.hidden;
|
|
2378
|
+
if (loading) {
|
|
2379
|
+
return React__default["default"].createElement("div", {
|
|
2380
|
+
className: "eds-dropdown-native__loading-dots"
|
|
2381
|
+
}, React__default["default"].createElement(loader.LoadingDots, {
|
|
2382
|
+
"aria-label": loadingText
|
|
2383
|
+
}));
|
|
2384
|
+
}
|
|
2385
|
+
if (hidden) {
|
|
2386
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
2387
|
+
}
|
|
2388
|
+
return React__default["default"].createElement(icons.DownArrowIcon, {
|
|
2389
|
+
inline: true
|
|
2390
|
+
});
|
|
1483
2391
|
};
|
|
1484
2392
|
|
|
1485
2393
|
utils.warnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');
|
|
1486
2394
|
|
|
1487
2395
|
exports.Dropdown = Dropdown;
|
|
2396
|
+
exports.DropdownDeprecated = DropdownDeprecated;
|
|
1488
2397
|
exports.MultiSelect = MultiSelect;
|
|
2398
|
+
exports.MultiSelectDeprecated = MultiSelectDeprecated;
|
|
1489
2399
|
exports.NativeDropdown = NativeDropdown;
|
|
1490
|
-
exports.
|
|
2400
|
+
exports.SearchableDropdown = SearchableDropdown;
|
|
1491
2401
|
//# sourceMappingURL=dropdown.cjs.development.js.map
|