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

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 (40) 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 +1 -2
  6. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  7. package/dist/ChipsInput/ChipDropdownInput.d.ts +0 -1
  8. package/dist/ChipsInput/ChipDropdownInput.js +1 -2
  9. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  10. package/dist/Dropdown/CommonStyling.cjs +21 -9
  11. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  12. package/dist/Dropdown/CommonStyling.d.ts +5 -1
  13. package/dist/Dropdown/CommonStyling.js +7 -7
  14. package/dist/Dropdown/CommonStyling.js.map +1 -1
  15. package/dist/Dropdown/DropdownButton.cjs +76 -18
  16. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  17. package/dist/Dropdown/DropdownButton.d.ts +1 -1
  18. package/dist/Dropdown/DropdownButton.js +73 -19
  19. package/dist/Dropdown/DropdownButton.js.map +1 -1
  20. package/dist/Dropdown/DropdownButtonTypes.d.ts +16 -5
  21. package/dist/Dropdown/DropdownFilter.cjs +69 -139
  22. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  23. package/dist/Dropdown/DropdownFilter.d.ts +8 -14
  24. package/dist/Dropdown/DropdownFilter.js +69 -139
  25. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  26. package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -1
  27. package/dist/GlobalNavigationBar/MainMenu.js.map +1 -1
  28. package/dist/List/ListRow.cjs +1 -0
  29. package/dist/List/ListRow.cjs.map +1 -1
  30. package/dist/List/ListRow.js +1 -0
  31. package/dist/List/ListRow.js.map +1 -1
  32. package/dist/Table/TableFooter.cjs +12 -14
  33. package/dist/Table/TableFooter.cjs.map +1 -1
  34. package/dist/Table/TableFooter.js +13 -15
  35. package/dist/Table/TableFooter.js.map +1 -1
  36. package/dist/Table/TableHeaders.cjs +1 -0
  37. package/dist/Table/TableHeaders.cjs.map +1 -1
  38. package/dist/Table/TableHeaders.js +1 -0
  39. package/dist/Table/TableHeaders.js.map +1 -1
  40. package/package.json +1 -1
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","scrollable","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","focused","setFocused","keyboardNavigate","setKeyboardNavigate","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","handleButtonKeyPress","matches","filter","c","label","toLowerCase","length","useEffect","some","x","handleInputClear","current","focus","focusVisible","detail","renderStandardDropdown","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","value","marginLeft","Size","Small","COLORS","neutral_600","renderButtonDropdown","concat","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","customContent","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {COLORS} from '../styles';\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport {StyledField, Dropdown, ButtonDropdownWrapper, InputField} from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport {Size} from '../types'\nimport {AutofilledMessage, WarningMessage} from '../InputFields/styling';\nimport {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\n\nexport interface DropdownFilterItem {\n label: string;\n customContent?: React.ReactNode;\n}\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownFilterItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n initalValue?: string;\n required?: boolean;\n disableSorting?: boolean;\n messageOnNoResults?: string;\n disabled?: boolean;\n locked?: boolean;\n isButton?: boolean;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n scrollable?: boolean;\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n initalValue,\n required,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\n buttonFontSize,\n keepInitialValue,\n icon,\n margin = '4px 0',\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>(initalValue ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [keyboardNavigate, setKeyboardNavigate] = React.useState<boolean>(false);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n const handleButtonKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n const matches = list?.filter((c) => c.label.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0].label);\n setInput(matches[0].label);\n }\n setIsOpen(!isOpen);\n setKeyboardNavigate(true);\n if (matches.length === 0) {\n setInput('');\n }\n }\n };\n\n React.useEffect(() => {\n if (initalValue || initalValue === '') {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\n\n React.useEffect(() => {\n if (!isOpen && !list.some(x => x.label == input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.some(x => x.label == input))\n setSelectedValues([]);\n\n if (list.some(x => x.label == input)) {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n React.useEffect(() => {\n !isOpen && setKeyboardNavigate(false)\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={size ? size : ''}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n if (isOpen) {\n inputRef.current?.blur();\n } else {\n inputRef.current?.focus();\n }\n }\n }}\n disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n onKeyDown={handleInputKeyDown}\n value={input}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsLoading(true);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\n }\n\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n );\n };\n\n const renderButtonDropdown = () => (\n <ButtonDropdownWrapper\n onClick={(e: any) => {\n e.stopPropagation();\n !locked && !disabled && setIsOpen(!isOpen);\n }}\n disabled={disabled}\n locked={locked}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size + ' ' : '').concat(isButton ? 'button' : '')}\n tabIndex={disabled || locked ? -1 : 0}\n onKeyPress={handleButtonKeyPress}\n onMouseDown={defaultOnMouseDownHandler}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}>\n {icon}\n <div className={'value'}>{initalValue && keepInitialValue ? initalValue : input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/> : null}\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown ref={containerRef}\n isButton={isButton || false}\n disabled={disabled}\n locked={locked}\n className={size ? size : ''}\n margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={keyboardNavigate && isButton}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({value: x.label, customContent: x.customContent}))\n }}\n filter={!restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={isButton || false}\n id={`${id}_dropdowncontent`}/>\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400}/>\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.cjs"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownFilter.tsx"],"names":["DropdownFilter","id","list","placeholder","onSelect","onInputChange","value","required","messageOnNoResults","disabled","locked","scrollable","activeValidationMessage","autofilledMessage","size","disableFiltering","buttonFontSize","margin","loading","React","useState","isOpen","setIsOpen","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedItem","setSelectedItem","selectedValues","setSelectedValues","focused","setFocused","styledFieldRef","inputRef","clearButtonRef","useRef","containerRef","handleInputKeyDown","e","key","preventDefault","useEffect","length","val","item","find","a","displayLabel","undefined","handleInputClear","current","focus","focusVisible","detail","renderInput","stopPropagation","blur","defaultOnMouseDownHandler","Math","floor","random","target","marginLeft","Size","Small","COLORS","neutral_600","itemsType","multiSelect","action","onValueUpdate","values","items","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {COLORS} from '../styles';\nimport {ArrowDropDown, ArrowDropUp, Information, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {LoadingIndicator} from '../LoadingIndicator';\nimport {StyledField, Dropdown, InputField} from './CommonStyling';\nimport DropdownContent, {DropdownItem} from './DropdownContent';\nimport {Size} from '../types'\nimport {AutofilledMessage, WarningMessage} from '../InputFields/styling';\nimport {\n defaultOnMouseDownHandler,\n useActionWithin,\n useClickOutsideRef,\n useFocusOutsideRef,\n useFocusVisibleRef\n} from '../common';\nimport {IconButton} from '../Button';\nimport {SystemIcons} from '../icons';\n\ninterface DropdownFilterProps {\n id: string;\n list: DropdownItem[];\n placeholder?: string;\n\n value?: string;\n onSelect?: (value: string) => void;\n onInputChange?: (input: string) => void;\n\n required?: boolean;\n disabled?: boolean;\n locked?: boolean;\n\n disableFiltering?: boolean;\n\n messageOnNoResults?: string;\n activeValidationMessage?: string;\n autofilledMessage?: string;\n size?: Size.Small | Size.Medium;\n\n buttonFontSize?: string;\n margin?: string;\n scrollable?: boolean;\n\n loading?: boolean;\n}\n\nconst DropdownFilter = ({\n id,\n list,\n placeholder,\n onSelect,\n onInputChange,\n value,\n required,\n messageOnNoResults,\n disabled,\n locked,\n scrollable,\n activeValidationMessage,\n autofilledMessage,\n size,\n disableFiltering,\n buttonFontSize,\n margin = '4px 0',\n loading\n }: DropdownFilterProps) => {\n const [isOpen, setIsOpen] = React.useState<boolean>(false);\n const [input, setInput] = React.useState<string>(value ?? '');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [selectedItem, setSelectedItem] = React.useState<DropdownItem>();\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const styledFieldRef = useFocusVisibleRef();\n const inputRef = useFocusVisibleRef([styledFieldRef]);\n const clearButtonRef = React.useRef<HTMLButtonElement>(null);\n\n useActionWithin(styledFieldRef, input && !locked && !disabled ? [clearButtonRef] : []);\n\n const containerRef = useClickOutsideRef(() => setIsOpen(false), [], useFocusOutsideRef(() => setIsOpen(false)));\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Esc' || e.key === 'Escape') {\n e.preventDefault();\n }\n if (e.key === 'ArrowDown' || e.key === 'Down' || e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n if (!isOpen) {\n setIsOpen(true);\n }\n }\n };\n\n React.useEffect(() => {\n setSelectedValues(!!value ? [value] : []);\n }, [value]);\n\n React.useEffect(() => {\n if (selectedValues?.length) {\n const val = selectedValues[0] ?? '';\n const item = list.find(a => a.value === val);\n setSelectedItem(item);\n setInput(item?.displayLabel ?? item?.value ?? '');\n } else {\n setSelectedItem(undefined);\n setInput('');\n }\n }, [selectedValues])\n\n React.useEffect(() => {\n if (!isOpen) {\n if (!input) {\n setSelectedValues([]);\n setPlaceholderSearch(placeholder || '');\n } else if (!!selectedItem) {\n setInput(selectedItem?.displayLabel ?? selectedItem?.value ?? '');\n }\n }\n }, [isOpen]);\n\n const handleInputClear = (e: any) => {\n setInput('');\n setSelectedValues([]);\n onSelect && onSelect('');\n inputRef.current?.focus({focusVisible: e?.detail !== 1} as any)\n };\n\n const renderInput = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={size ? size : ''}\n onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\n if (isOpen) {\n inputRef.current?.blur();\n } else {\n inputRef.current?.focus();\n }\n }\n }}\n disabled={disabled || false}\n locked={locked || false}\n isPlaceholder={!input}\n fontSize={buttonFontSize}\n showValidationMessage={!!activeValidationMessage}\n onMouseDown={defaultOnMouseDownHandler}\n data-testid={`otherdiv_${id}`}>\n <InputField\n id={id}\n ref={inputRef}\n autoComplete={'off-' + Math.floor(Math.random() * 999999999999)}\n type=\"search\"\n placeholder={placeholderSearch}\n onKeyDown={handleInputKeyDown}\n value={input}\n onChange={(e: any) => {\n if (!locked && !disabled) {\n setRestartFilter(false);\n setIsOpen(true);\n setInput(e.target.value);\n if (onInputChange) {\n onInputChange(e.target.value || '');\n }\n }\n }}\n onFocus={() => setPlaceholderSearch('')}\n onBlur={() => setPlaceholderSearch(placeholder || '')}\n required={required}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n />\n {\n input && !locked && !disabled && !loading &&\n <IconButton action={handleInputClear}\n ref={clearButtonRef}\n useTransparentBackground={true}\n shape={'circular'}\n style={{marginLeft: '-4px'}}\n variant={'secondary'}>\n <SystemIcons.Clear/>\n </IconButton>\n }\n\n {\n !disabled && !locked && loading &&\n <div style={{marginLeft: '-4xp'}}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/>\n </div>\n }\n\n <div className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''}/> :\n <ArrowDropDown size=\"24px\" className={size ? size : ''}/>}\n </div>\n </StyledField>\n );\n };\n\n return (\n <>\n <Dropdown ref={containerRef}\n disabled={disabled}\n isButton={false}\n locked={locked}\n className={size ? size : ''}\n margin={margin}>\n {renderInput()}\n {!locked && !disabled && (\n <DropdownContent\n isOpen={isOpen && !loading}\n messageOnNoResults={messageOnNoResults ?? ''}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n size={size ?? Size.Small}\n focused={focused}\n setFocused={setFocused}\n outline={false}\n customizationProps={{\n itemsType: 'normal',\n scrollable: scrollable,\n multiSelect: false,\n action: () => {\n },\n onValueUpdate: (values: string[]) => {\n setRestartFilter(true);\n },\n items: list,\n }}\n filter={!disableFiltering && !restartFilter ? input : ''}\n setIsOpen={setIsOpen}\n alignLeft={false}\n isButton={false}\n id={`${id}_dropdowncontent`}/>\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400}/>\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage className={size || ''}>\n <Information size=\"20px\" color={COLORS.neutral_600}/>\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.cjs"}
@@ -1,30 +1,24 @@
1
- import * as React from 'react';
1
+ import { DropdownItem } from './DropdownContent';
2
2
  import { Size } from '../types';
3
- export interface DropdownFilterItem {
4
- label: string;
5
- customContent?: React.ReactNode;
6
- }
7
3
  interface DropdownFilterProps {
8
4
  id: string;
9
- list: DropdownFilterItem[];
5
+ list: DropdownItem[];
10
6
  placeholder?: string;
7
+ value?: string;
11
8
  onSelect?: (value: string) => void;
12
9
  onInputChange?: (input: string) => void;
13
- initalValue?: string;
14
10
  required?: boolean;
15
- disableSorting?: boolean;
16
- messageOnNoResults?: string;
17
11
  disabled?: boolean;
18
12
  locked?: boolean;
19
- isButton?: boolean;
13
+ disableFiltering?: boolean;
14
+ messageOnNoResults?: string;
20
15
  activeValidationMessage?: string;
21
16
  autofilledMessage?: string;
22
17
  size?: Size.Small | Size.Medium;
23
- scrollable?: boolean;
24
18
  buttonFontSize?: string;
25
- keepInitialValue?: boolean;
26
- icon?: React.ReactNode;
27
19
  margin?: string;
20
+ scrollable?: boolean;
21
+ loading?: boolean;
28
22
  }
29
- declare const DropdownFilter: ({ id, list, placeholder, onSelect, onInputChange, initalValue, required, disableSorting, messageOnNoResults, disabled, locked, scrollable, isButton, activeValidationMessage, autofilledMessage, size, buttonFontSize, keepInitialValue, icon, margin, }: DropdownFilterProps) => JSX.Element;
23
+ declare const DropdownFilter: ({ id, list, placeholder, onSelect, onInputChange, value, required, messageOnNoResults, disabled, locked, scrollable, activeValidationMessage, autofilledMessage, size, disableFiltering, buttonFontSize, margin, loading }: DropdownFilterProps) => JSX.Element;
30
24
  export default DropdownFilter;