@laerdal/life-react-components 1.8.0-dev.2 → 1.8.0-dev.4

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.
Files changed (46) hide show
  1. package/dist/Breadcrumb/Breadcrumb.cjs +1 -0
  2. package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -1
  3. package/dist/Breadcrumb/Breadcrumb.js +1 -0
  4. package/dist/Breadcrumb/Breadcrumb.js.map +1 -1
  5. package/dist/ChipsInput/ChipDropdownInput.cjs +4 -3
  6. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  7. package/dist/ChipsInput/ChipDropdownInput.d.ts +0 -1
  8. package/dist/ChipsInput/ChipDropdownInput.js +4 -3
  9. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  10. package/dist/ChipsInput/ChipInputField.cjs +5 -2
  11. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  12. package/dist/ChipsInput/ChipInputField.d.ts +1 -0
  13. package/dist/ChipsInput/ChipInputField.js +5 -2
  14. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  15. package/dist/ChipsInput/ChipInputTypes.d.ts +1 -0
  16. package/dist/Dropdown/CommonStyling.cjs +21 -9
  17. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  18. package/dist/Dropdown/CommonStyling.d.ts +5 -1
  19. package/dist/Dropdown/CommonStyling.js +7 -7
  20. package/dist/Dropdown/CommonStyling.js.map +1 -1
  21. package/dist/Dropdown/DropdownButton.cjs +76 -18
  22. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  23. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  24. package/dist/Dropdown/DropdownButton.js +73 -19
  25. package/dist/Dropdown/DropdownButton.js.map +1 -1
  26. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  27. package/dist/Dropdown/DropdownFilter.cjs +69 -139
  28. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  29. package/dist/Dropdown/DropdownFilter.d.ts +8 -14
  30. package/dist/Dropdown/DropdownFilter.js +69 -139
  31. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  32. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -1
  33. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -1
  34. package/dist/List/ListRow.cjs +1 -0
  35. package/dist/List/ListRow.cjs.map +1 -1
  36. package/dist/List/ListRow.js +1 -0
  37. package/dist/List/ListRow.js.map +1 -1
  38. package/dist/Table/TableFooter.cjs +12 -14
  39. package/dist/Table/TableFooter.cjs.map +1 -1
  40. package/dist/Table/TableFooter.js +13 -15
  41. package/dist/Table/TableFooter.js.map +1 -1
  42. package/dist/Table/TableHeaders.cjs +1 -0
  43. package/dist/Table/TableHeaders.cjs.map +1 -1
  44. package/dist/Table/TableHeaders.js +1 -0
  45. package/dist/Table/TableHeaders.js.map +1 -1
  46. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
3
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
4
+ var _excluded = ["items", "icon", "disabled", "onClick", "itemsType", "action", "actionLabel", "actionVariant", "actionIcon", "actionLoading", "size", "width", "alignLeft", "multiSelect", "scrollable", "pinTopItem", "maxHeight", "className", "value"];
3
5
 
4
6
  var _templateObject;
5
7
 
@@ -18,7 +20,9 @@ import styled from 'styled-components';
18
20
  * Import custom types.
19
21
  */
20
22
 
21
- import { useClickOutsideRef, useFocusOutsideRef } from '../common';
23
+ import { defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef } from '../common';
24
+ import { TextButtonDropdownArrow, TextButtonDropdownContent, TextButtonDropdownIcon, TextButtonDropdownText, TextButtonDropdownWrapper } from './CommonStyling';
25
+ import { ArrowDropDown, ArrowDropUp } from '../icons/systemicons/SystemIcons';
22
26
  import { jsx as _jsx } from "react/jsx-runtime";
23
27
  import { jsxs as _jsxs } from "react/jsx-runtime";
24
28
  var Wrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n"])));
@@ -36,8 +40,8 @@ var DropdownButton = function DropdownButton(_ref) {
36
40
  actionVariant = _ref.actionVariant,
37
41
  actionIcon = _ref.actionIcon,
38
42
  actionLoading = _ref.actionLoading,
39
- width = _ref.width,
40
43
  size = _ref.size,
44
+ width = _ref.width,
41
45
  alignLeft = _ref.alignLeft,
42
46
  _ref$multiSelect = _ref.multiSelect,
43
47
  multiSelect = _ref$multiSelect === void 0 ? false : _ref$multiSelect,
@@ -46,7 +50,9 @@ var DropdownButton = function DropdownButton(_ref) {
46
50
  _ref$pinTopItem = _ref.pinTopItem,
47
51
  pinTopItem = _ref$pinTopItem === void 0 ? false : _ref$pinTopItem,
48
52
  maxHeight = _ref.maxHeight,
49
- className = _ref.className;
53
+ className = _ref.className,
54
+ value = _ref.value,
55
+ rest = _objectWithoutProperties(_ref, _excluded);
50
56
 
51
57
  // Globally used variables within the view.
52
58
  var _React$useState = React.useState(false),
@@ -77,6 +83,12 @@ var DropdownButton = function DropdownButton(_ref) {
77
83
  React.useEffect(function () {
78
84
  !dropdownOpen && setKeyboardNavigated(false);
79
85
  }, [dropdownOpen]);
86
+ React.useEffect(function () {
87
+ disabled && setDropdownOpen(false);
88
+ }, [disabled]);
89
+ React.useEffect(function () {
90
+ setSelectedValues(value || []);
91
+ }, [value]);
80
92
 
81
93
  var handleValueSelect = function handleValueSelect(values) {
82
94
  // Do all required actions
@@ -88,26 +100,68 @@ var DropdownButton = function DropdownButton(_ref) {
88
100
  */
89
101
 
90
102
 
91
- var renderIconButton = function renderIconButton() {
92
- return /*#__PURE__*/_jsx(IconButton, {
93
- variant: "secondary",
94
- shape: "circular",
95
- action: function action(event) {
96
- setDropdownOpen(!dropdownOpen);
97
-
98
- if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
99
- setKeyboardNavigated(true);
100
- }
101
- },
102
- disabled: disabled,
103
- children: icon
104
- });
103
+ var renderButton = function renderButton() {
104
+ switch (rest.type) {
105
+ case 'icon':
106
+ return /*#__PURE__*/_jsx(IconButton, {
107
+ variant: "secondary",
108
+ shape: "circular",
109
+ action: function action(event) {
110
+ setDropdownOpen(!dropdownOpen);
111
+
112
+ if ((event === null || event === void 0 ? void 0 : event.detail) !== 1) {
113
+ setKeyboardNavigated(true);
114
+ }
115
+ },
116
+ disabled: disabled,
117
+ children: icon
118
+ });
119
+
120
+ case 'text':
121
+ var label = rest.keepLabel || !(selectedValues !== null && selectedValues !== void 0 && selectedValues.length) ? rest.label : items.filter(function (a) {
122
+ return selectedValues.includes(a.value);
123
+ }).map(function (a) {
124
+ var _a$displayLabel;
125
+
126
+ return (_a$displayLabel = a.displayLabel) !== null && _a$displayLabel !== void 0 ? _a$displayLabel : a.value;
127
+ }).join(', ');
128
+ var cls = "".concat(disabled && 'disabled', " ").concat(dropdownOpen && 'expanded', " ").concat(className);
129
+ return /*#__PURE__*/_jsx(TextButtonDropdownWrapper, {
130
+ tabIndex: !disabled ? 0 : -1,
131
+ className: cls,
132
+ onMouseDown: defaultOnMouseDownHandler,
133
+ onKeyDown: function onKeyDown(e) {
134
+ if (e.key === 'Enter' || e.key === ' ') {
135
+ e.preventDefault();
136
+ e.stopPropagation();
137
+ setDropdownOpen(!dropdownOpen);
138
+ setKeyboardNavigated(true);
139
+ }
140
+ },
141
+ onClick: function onClick() {
142
+ return !disabled && setDropdownOpen(!dropdownOpen);
143
+ },
144
+ children: /*#__PURE__*/_jsxs(TextButtonDropdownContent, {
145
+ children: [icon && /*#__PURE__*/_jsx(TextButtonDropdownIcon, {
146
+ children: icon
147
+ }), /*#__PURE__*/_jsx(TextButtonDropdownText, {
148
+ children: label
149
+ }), /*#__PURE__*/_jsx(TextButtonDropdownArrow, {
150
+ children: dropdownOpen ? /*#__PURE__*/_jsx(ArrowDropUp, {
151
+ size: "24px"
152
+ }) : /*#__PURE__*/_jsx(ArrowDropDown, {
153
+ size: "24px"
154
+ })
155
+ })]
156
+ })
157
+ });
158
+ }
105
159
  };
106
160
 
107
161
  return /*#__PURE__*/_jsxs(Wrapper, {
108
162
  className: className,
109
163
  ref: containerRef,
110
- children: [renderIconButton(), /*#__PURE__*/_jsx(DropdownContent, {
164
+ children: [renderButton(), /*#__PURE__*/_jsx(DropdownContent, {
111
165
  customizationProps: {
112
166
  itemsType: itemsType,
113
167
  action: action !== null && action !== void 0 ? action : function () {},
@@ -131,7 +185,7 @@ var DropdownButton = function DropdownButton(_ref) {
131
185
  setIsOpen: setDropdownOpen,
132
186
  outline: keyboardNavigated,
133
187
  filter: "",
134
- selectedValues: itemsType == 'normal' ? [] : selectedValues,
188
+ selectedValues: rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues,
135
189
  setSelectedValues: setSelectedValues,
136
190
  messageOnNoResults: "No results",
137
191
  isButton: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","useClickOutsideRef","useFocusOutsideRef","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderIconButton","event","detail","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {useClickOutsideRef, useFocusOutsideRef} from '../common';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","defaultOnMouseDownHandler","useClickOutsideRef","useFocusOutsideRef","TextButtonDropdownArrow","TextButtonDropdownContent","TextButtonDropdownIcon","TextButtonDropdownText","TextButtonDropdownWrapper","ArrowDropDown","ArrowDropUp","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","size","width","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","value","rest","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigated","setKeyboardNavigated","containerRef","useEffect","handleValueSelect","values","renderButton","type","event","detail","label","keepLabel","length","filter","a","includes","map","displayLabel","join","cls","e","key","preventDefault","stopPropagation","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\nimport {defaultOnMouseDownHandler, useClickOutsideRef, useFocusOutsideRef} from '../common';\nimport {\n TextButtonDropdownArrow,\n TextButtonDropdownContent,\n TextButtonDropdownIcon,\n TextButtonDropdownText,\n TextButtonDropdownWrapper\n} from './CommonStyling';\nimport {ArrowDropDown, ArrowDropUp} from '../icons/systemicons/SystemIcons';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n size,\n width,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className,\n value,\n ...rest\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigated, setKeyboardNavigated] = React.useState<boolean>(false);\n\n const containerRef = useClickOutsideRef(() => setDropdownOpen(false), [], useFocusOutsideRef(() => setDropdownOpen(false)));\n\n React.useEffect(() => {\n !dropdownOpen && setKeyboardNavigated(false)\n }, [dropdownOpen]);\n\n React.useEffect(() => {\n disabled && setDropdownOpen(false)\n }, [disabled]);\n\n React.useEffect(() => {\n setSelectedValues(value || []);\n }, [value]);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderButton = () => {\n switch (rest.type) {\n case 'icon':\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n action={(event: any) => {\n setDropdownOpen(!dropdownOpen);\n if (event?.detail !== 1) {\n setKeyboardNavigated(true);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n case 'text':\n const label = rest.keepLabel || !selectedValues?.length\n ? rest.label\n : items.filter(a => selectedValues.includes(a.value)).map(a => a.displayLabel ?? a.value).join(', ');\n const cls = `${disabled && 'disabled'} ${dropdownOpen && 'expanded'} ${className}`;\n return <TextButtonDropdownWrapper tabIndex={!disabled ? 0 : -1}\n className={cls}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n setDropdownOpen(!dropdownOpen);\n setKeyboardNavigated(true);\n }\n }}\n onClick={() => !disabled && setDropdownOpen(!dropdownOpen)}>\n <TextButtonDropdownContent>\n {icon && <TextButtonDropdownIcon>{icon}</TextButtonDropdownIcon>}\n <TextButtonDropdownText>{label}</TextButtonDropdownText>\n <TextButtonDropdownArrow>\n {\n dropdownOpen\n ? <ArrowDropUp size=\"24px\"/>\n : <ArrowDropDown size=\"24px\"/>\n }\n </TextButtonDropdownArrow>\n </TextButtonDropdownContent>\n </TextButtonDropdownWrapper>\n }\n };\n\n return (\n <Wrapper className={className} ref={containerRef}>\n {renderButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n outline={keyboardNavigated}\n filter=\"\"\n selectedValues={rest.type === 'icon' && itemsType === 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
@@ -1,10 +1,9 @@
1
1
  import { Size } from '../types';
2
2
  import { DropdownItem } from './DropdownContent';
3
- export interface DropdownButtonProps {
3
+ export interface DropdownButtonBaseProps {
4
4
  items: DropdownItem[];
5
+ value?: string[];
5
6
  onClick: (value: string[]) => void;
6
- icon?: React.ReactNode;
7
- width?: string;
8
7
  disabled?: boolean;
9
8
  size?: Size;
10
9
  itemsType?: 'normal' | 'radio' | 'checkbox';
@@ -15,8 +14,20 @@ export interface DropdownButtonProps {
15
14
  actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;
16
15
  multiSelect?: boolean;
17
16
  scrollable?: boolean;
18
- pinTopItem?: boolean;
19
- alignLeft?: boolean;
20
17
  maxHeight?: string;
18
+ pinTopItem?: boolean;
21
19
  className?: string;
20
+ icon?: React.ReactNode;
21
+ width?: string;
22
+ alignLeft?: boolean;
22
23
  }
24
+ export declare type IconDropdownButtonProps = DropdownButtonBaseProps & {
25
+ type: 'icon';
26
+ icon: React.ReactNode;
27
+ };
28
+ export declare type TextDropdownButtonProps = DropdownButtonBaseProps & {
29
+ type: 'text';
30
+ label?: string;
31
+ keepLabel?: boolean;
32
+ };
33
+ export declare type DropdownButtonProps = IconDropdownButtonProps | TextDropdownButtonProps;
@@ -47,47 +47,45 @@ var DropdownFilter = function DropdownFilter(_ref) {
47
47
  placeholder = _ref.placeholder,
48
48
  onSelect = _ref.onSelect,
49
49
  onInputChange = _ref.onInputChange,
50
- initalValue = _ref.initalValue,
50
+ value = _ref.value,
51
51
  required = _ref.required,
52
- disableSorting = _ref.disableSorting,
53
52
  messageOnNoResults = _ref.messageOnNoResults,
54
53
  disabled = _ref.disabled,
55
54
  locked = _ref.locked,
56
55
  scrollable = _ref.scrollable,
57
- isButton = _ref.isButton,
58
56
  activeValidationMessage = _ref.activeValidationMessage,
59
57
  autofilledMessage = _ref.autofilledMessage,
60
58
  size = _ref.size,
59
+ disableFiltering = _ref.disableFiltering,
61
60
  buttonFontSize = _ref.buttonFontSize,
62
- keepInitialValue = _ref.keepInitialValue,
63
- icon = _ref.icon,
64
61
  _ref$margin = _ref.margin,
65
- margin = _ref$margin === void 0 ? '4px 0' : _ref$margin;
62
+ margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
63
+ loading = _ref.loading;
66
64
 
67
65
  var _React$useState = React.useState(false),
68
66
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
69
67
  isOpen = _React$useState2[0],
70
68
  setIsOpen = _React$useState2[1];
71
69
 
72
- var _React$useState3 = React.useState(false),
70
+ var _React$useState3 = React.useState(value !== null && value !== void 0 ? value : ''),
73
71
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
74
- isLoading = _React$useState4[0],
75
- setIsLoading = _React$useState4[1];
72
+ input = _React$useState4[0],
73
+ setInput = _React$useState4[1];
76
74
 
77
- var _React$useState5 = React.useState(initalValue !== null && initalValue !== void 0 ? initalValue : ''),
75
+ var _React$useState5 = React.useState(placeholder || ''),
78
76
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
79
- input = _React$useState6[0],
80
- setInput = _React$useState6[1];
77
+ placeholderSearch = _React$useState6[0],
78
+ setPlaceholderSearch = _React$useState6[1];
81
79
 
82
- var _React$useState7 = React.useState(placeholder || ''),
80
+ var _React$useState7 = React.useState(false),
83
81
  _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
84
- placeholderSearch = _React$useState8[0],
85
- setPlaceholderSearch = _React$useState8[1];
82
+ restartFilter = _React$useState8[0],
83
+ setRestartFilter = _React$useState8[1];
86
84
 
87
- var _React$useState9 = React.useState(false),
85
+ var _React$useState9 = React.useState(),
88
86
  _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
89
- restartFilter = _React$useState10[0],
90
- setRestartFilter = _React$useState10[1];
87
+ selectedItem = _React$useState10[0],
88
+ setSelectedItem = _React$useState10[1];
91
89
 
92
90
  var _React$useState11 = React.useState([]),
93
91
  _React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
@@ -99,11 +97,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
99
97
  focused = _React$useState14[0],
100
98
  setFocused = _React$useState14[1];
101
99
 
102
- var _React$useState15 = React.useState(false),
103
- _React$useState16 = (0, _slicedToArray2.default)(_React$useState15, 2),
104
- keyboardNavigate = _React$useState16[0],
105
- setKeyboardNavigate = _React$useState16[1];
106
-
107
100
  var styledFieldRef = (0, _common.useFocusVisibleRef)();
108
101
  var inputRef = (0, _common.useFocusVisibleRef)([styledFieldRef]);
109
102
  var clearButtonRef = React.useRef(null);
@@ -115,6 +108,10 @@ var DropdownFilter = function DropdownFilter(_ref) {
115
108
  }));
116
109
 
117
110
  var handleInputKeyDown = function handleInputKeyDown(e) {
111
+ if (e.key === 'Esc' || e.key === 'Escape') {
112
+ e.preventDefault();
113
+ }
114
+
118
115
  if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {
119
116
  e.preventDefault();
120
117
 
@@ -124,55 +121,35 @@ var DropdownFilter = function DropdownFilter(_ref) {
124
121
  }
125
122
  };
126
123
 
127
- var handleButtonKeyPress = function handleButtonKeyPress(e) {
128
- if (e.key === 'Enter' || e.key === ' ') {
129
- var matches = list === null || list === void 0 ? void 0 : list.filter(function (c) {
130
- return c.label.toLowerCase() === input.toLowerCase();
131
- });
132
-
133
- if (matches.length === 1 && onSelect) {
134
- onSelect(matches[0].label);
135
- setInput(matches[0].label);
136
- }
137
-
138
- setIsOpen(!isOpen);
139
- setKeyboardNavigate(true);
140
-
141
- if (matches.length === 0) {
142
- setInput('');
143
- }
144
- }
145
- };
146
-
147
124
  React.useEffect(function () {
148
- if (initalValue || initalValue === '') {
149
- setInput(initalValue);
150
- setRestartFilter(true);
151
- }
152
- }, [initalValue]);
125
+ setSelectedValues(!!value ? [value] : []);
126
+ }, [value]);
153
127
  React.useEffect(function () {
154
- if (!isOpen && !list.some(function (x) {
155
- return x.label == input;
156
- })) {
128
+ if (selectedValues !== null && selectedValues !== void 0 && selectedValues.length) {
129
+ var _selectedValues$, _ref2, _item$displayLabel;
130
+
131
+ var val = (_selectedValues$ = selectedValues[0]) !== null && _selectedValues$ !== void 0 ? _selectedValues$ : '';
132
+ var item = list.find(function (a) {
133
+ return a.value === val;
134
+ });
135
+ setSelectedItem(item);
136
+ setInput((_ref2 = (_item$displayLabel = item === null || item === void 0 ? void 0 : item.displayLabel) !== null && _item$displayLabel !== void 0 ? _item$displayLabel : item === null || item === void 0 ? void 0 : item.value) !== null && _ref2 !== void 0 ? _ref2 : '');
137
+ } else {
138
+ setSelectedItem(undefined);
157
139
  setInput('');
158
- setPlaceholderSearch(placeholder || '');
159
140
  }
160
- }, [isOpen]);
141
+ }, [selectedValues]);
161
142
  React.useEffect(function () {
162
- setIsLoading(false);
163
- if (selectedValues.length > 0 && !list.some(function (x) {
164
- return x.label == input;
165
- })) setSelectedValues([]);
166
-
167
- if (list.some(function (x) {
168
- return x.label == input;
169
- })) {
170
- setSelectedValues([input]);
171
- onSelect && onSelect(input);
143
+ if (!isOpen) {
144
+ if (!input) {
145
+ setSelectedValues([]);
146
+ setPlaceholderSearch(placeholder || '');
147
+ } else if (!!selectedItem) {
148
+ var _ref3, _selectedItem$display;
149
+
150
+ setInput((_ref3 = (_selectedItem$display = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.displayLabel) !== null && _selectedItem$display !== void 0 ? _selectedItem$display : selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) !== null && _ref3 !== void 0 ? _ref3 : '');
151
+ }
172
152
  }
173
- }, [input]);
174
- React.useEffect(function () {
175
- !isOpen && setKeyboardNavigate(false);
176
153
  }, [isOpen]);
177
154
 
178
155
  var handleInputClear = function handleInputClear(e) {
@@ -186,7 +163,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
186
163
  });
187
164
  };
188
165
 
189
- var renderStandardDropdown = function renderStandardDropdown() {
166
+ var renderInput = function renderInput() {
190
167
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.StyledField, {
191
168
  ref: styledFieldRef,
192
169
  className: size ? size : '',
@@ -214,6 +191,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
214
191
  onMouseDown: _common.defaultOnMouseDownHandler,
215
192
  "data-testid": "otherdiv_".concat(id),
216
193
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.InputField, {
194
+ id: id,
217
195
  ref: inputRef,
218
196
  autoComplete: 'off-' + Math.floor(Math.random() * 999999999999),
219
197
  type: "search",
@@ -223,7 +201,6 @@ var DropdownFilter = function DropdownFilter(_ref) {
223
201
  onChange: function onChange(e) {
224
202
  if (!locked && !disabled) {
225
203
  setRestartFilter(false);
226
- setIsLoading(true);
227
204
  setIsOpen(true);
228
205
  setInput(e.target.value);
229
206
 
@@ -241,7 +218,7 @@ var DropdownFilter = function DropdownFilter(_ref) {
241
218
  required: required,
242
219
  tabIndex: disabled || locked ? -1 : 0,
243
220
  disabled: disabled || false
244
- }), input && !locked && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
221
+ }), input && !locked && !disabled && !loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
245
222
  action: handleInputClear,
246
223
  ref: clearButtonRef,
247
224
  useTransparentBackground: true,
@@ -251,10 +228,15 @@ var DropdownFilter = function DropdownFilter(_ref) {
251
228
  },
252
229
  variant: 'secondary',
253
230
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.SystemIcons.Clear, {})
254
- }), isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
255
- size: _types.Size.Small,
256
- color: _styles.COLORS.neutral_600
257
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
231
+ }), !disabled && !locked && loading && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
232
+ style: {
233
+ marginLeft: '-4xp'
234
+ },
235
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
236
+ size: _types.Size.Small,
237
+ color: _styles.COLORS.neutral_600
238
+ })
239
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
258
240
  className: 'dropdown-arrow',
259
241
  children: isOpen && !locked && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
260
242
  size: "24px",
@@ -267,84 +249,37 @@ var DropdownFilter = function DropdownFilter(_ref) {
267
249
  });
268
250
  };
269
251
 
270
- var renderButtonDropdown = function renderButtonDropdown() {
271
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_CommonStyling.ButtonDropdownWrapper, {
272
- onClick: function onClick(e) {
273
- e.stopPropagation();
274
- !locked && !disabled && setIsOpen(!isOpen);
275
- },
276
- disabled: disabled,
277
- locked: locked,
278
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.StyledField, {
279
- ref: styledFieldRef,
280
- className: (isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : ''),
281
- tabIndex: disabled || locked ? -1 : 0,
282
- onKeyPress: handleButtonKeyPress,
283
- onMouseDown: _common.defaultOnMouseDownHandler,
284
- disabled: disabled || false,
285
- locked: locked || false,
286
- showValidationMessage: !!activeValidationMessage,
287
- fontSize: buttonFontSize,
288
- children: [icon, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
289
- className: 'value',
290
- children: initalValue && keepInitialValue ? initalValue : input || placeholderSearch
291
- }), isLoading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {
292
- size: _types.Size.Small,
293
- color: _styles.COLORS.neutral_600
294
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
295
- className: 'dropdown-arrow',
296
- children: isOpen && !locked && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropUp, {
297
- size: "24px",
298
- className: size ? size : ''
299
- }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.ArrowDropDown, {
300
- size: "24px",
301
- className: size ? size : ''
302
- })
303
- })]
304
- })
305
- });
306
- };
307
-
308
252
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
309
253
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_CommonStyling.Dropdown, {
310
254
  ref: containerRef,
311
- isButton: isButton || false,
312
255
  disabled: disabled,
256
+ isButton: false,
313
257
  locked: locked,
314
258
  className: size ? size : '',
315
259
  margin: margin,
316
- children: [!isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
317
- isOpen: isOpen,
260
+ children: [renderInput(), !locked && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DropdownContent.default, {
261
+ isOpen: isOpen && !loading,
318
262
  messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
319
263
  selectedValues: selectedValues,
320
264
  setSelectedValues: setSelectedValues,
321
265
  size: size !== null && size !== void 0 ? size : _types.Size.Small,
322
266
  focused: focused,
323
267
  setFocused: setFocused,
324
- outline: keyboardNavigate && isButton,
268
+ outline: false,
325
269
  customizationProps: {
326
270
  itemsType: 'normal',
327
271
  scrollable: scrollable,
328
272
  multiSelect: false,
329
273
  action: function action() {},
330
274
  onValueUpdate: function onValueUpdate(values) {
331
- var _values$;
332
-
333
- var val = (_values$ = values[0]) !== null && _values$ !== void 0 ? _values$ : '';
334
275
  setRestartFilter(true);
335
- setInput(val);
336
276
  },
337
- items: list.map(function (x) {
338
- return {
339
- value: x.label,
340
- customContent: x.customContent
341
- };
342
- })
277
+ items: list
343
278
  },
344
- filter: !restartFilter ? input : '',
279
+ filter: !disableFiltering && !restartFilter ? input : '',
345
280
  setIsOpen: setIsOpen,
346
281
  alignLeft: false,
347
- isButton: isButton || false,
282
+ isButton: false,
348
283
  id: "".concat(id, "_dropdowncontent")
349
284
  })]
350
285
  }), activeValidationMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.WarningMessage, {
@@ -369,27 +304,22 @@ var DropdownFilter = function DropdownFilter(_ref) {
369
304
 
370
305
  DropdownFilter.propTypes = {
371
306
  id: _propTypes.default.string.isRequired,
372
- list: _propTypes.default.arrayOf(_propTypes.default.shape({
373
- label: _propTypes.default.string.isRequired,
374
- customContent: _propTypes.default.node
375
- })).isRequired,
307
+ list: _propTypes.default.array.isRequired,
376
308
  placeholder: _propTypes.default.string,
309
+ value: _propTypes.default.string,
377
310
  onSelect: _propTypes.default.func,
378
311
  onInputChange: _propTypes.default.func,
379
- initalValue: _propTypes.default.string,
380
312
  required: _propTypes.default.bool,
381
- disableSorting: _propTypes.default.bool,
382
- messageOnNoResults: _propTypes.default.string,
383
313
  disabled: _propTypes.default.bool,
384
314
  locked: _propTypes.default.bool,
385
- isButton: _propTypes.default.bool,
315
+ disableFiltering: _propTypes.default.bool,
316
+ messageOnNoResults: _propTypes.default.string,
386
317
  activeValidationMessage: _propTypes.default.string,
387
318
  autofilledMessage: _propTypes.default.string,
388
- scrollable: _propTypes.default.bool,
389
319
  buttonFontSize: _propTypes.default.string,
390
- keepInitialValue: _propTypes.default.bool,
391
- icon: _propTypes.default.node,
392
- margin: _propTypes.default.string
320
+ margin: _propTypes.default.string,
321
+ scrollable: _propTypes.default.bool,
322
+ loading: _propTypes.default.bool
393
323
  };
394
324
  var _default = DropdownFilter;
395
325
  exports.default = _default;