@mailstep/design-system 0.8.16-beta.10 → 0.8.16-beta.12

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 (67) hide show
  1. package/package.json +1 -1
  2. package/ui/Blocks/CommonGrid/CommonGridContainer.js +9 -3
  3. package/ui/Blocks/CommonGrid/HoC/withReduxActions.js +1 -0
  4. package/ui/Blocks/CommonGrid/components/ColumnTitle.js +4 -2
  5. package/ui/Blocks/CommonGrid/components/ControlButtons/ControlButtons.d.ts +3 -0
  6. package/ui/Blocks/CommonGrid/components/ControlButtons/ControlButtons.js +16 -8
  7. package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.d.ts +2 -1
  8. package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.js +30 -9
  9. package/ui/Blocks/CommonGrid/components/Filters/DatePickerRange/DatePickerRange.d.ts +1 -0
  10. package/ui/Blocks/CommonGrid/components/Filters/DatePickerRange/DatePickerRange.js +17 -6
  11. package/ui/Blocks/CommonGrid/components/Filters/GridSelect/GridSelect.js +3 -2
  12. package/ui/Blocks/CommonGrid/components/GridInfo/index.js +3 -1
  13. package/ui/Blocks/CommonGrid/components/MobileFilterModal.d.ts +20 -0
  14. package/ui/Blocks/CommonGrid/components/MobileFilterModal.js +69 -0
  15. package/ui/Blocks/CommonGrid/components/MobileOverlayWrapper.d.ts +1 -0
  16. package/ui/Blocks/CommonGrid/components/MobileOverlayWrapper.js +7 -0
  17. package/ui/Blocks/CommonGrid/components/MobileSortModal.d.ts +13 -0
  18. package/ui/Blocks/CommonGrid/components/MobileSortModal.js +34 -0
  19. package/ui/Blocks/CommonGrid/components/QuickFilter/QuickFilter.d.ts +1 -1
  20. package/ui/Blocks/CommonGrid/components/QuickFilter/QuickFilter.js +2 -5
  21. package/ui/Blocks/CommonGrid/store/index.d.ts +4 -6
  22. package/ui/Blocks/CommonGrid/store/index.js +9 -2
  23. package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.d.ts +30 -0
  24. package/ui/Blocks/CommonGrid/storybook/stories/complexWithPaginationAndRedux.stories.js +59 -9
  25. package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.d.ts +2 -0
  26. package/ui/Blocks/CommonGrid/storybook/utils/columnDefinition.js +19 -9
  27. package/ui/Blocks/CommonGrid/styles.d.ts +1 -0
  28. package/ui/Blocks/CommonGrid/styles.js +11 -11
  29. package/ui/Blocks/CommonGrid/types.d.ts +1 -0
  30. package/ui/Blocks/CommonGrid/utils/index.d.ts +2 -0
  31. package/ui/Blocks/CommonGrid/utils/index.js +10 -0
  32. package/ui/Blocks/Header/components/MenuItems/styles.js +1 -1
  33. package/ui/Blocks/Header/hooks/useChangeLanguage.js +0 -1
  34. package/ui/Blocks/Header/styles.js +2 -2
  35. package/ui/Blocks/LanguageSwitch/LanguageSwitch.js +10 -5
  36. package/ui/Blocks/LanguageSwitch/styles.d.ts +0 -5
  37. package/ui/Blocks/LanguageSwitch/styles.js +3 -11
  38. package/ui/Blocks/Modal/styles.js +2 -2
  39. package/ui/Blocks/SideMenu/components/HamburgerMenu.js +2 -3
  40. package/ui/Elements/DropdownMenu/components/DefaultItem.js +1 -1
  41. package/ui/Elements/DropdownMenu/components/MenuItem.js +1 -1
  42. package/ui/Elements/Icon/icons/Filter.d.ts +4 -0
  43. package/ui/Elements/Icon/icons/Filter.js +13 -0
  44. package/ui/Elements/Icon/icons/FlagHU.js +1 -1
  45. package/ui/Elements/Icon/icons/Sort.d.ts +4 -0
  46. package/ui/Elements/Icon/icons/Sort.js +13 -0
  47. package/ui/Elements/Icon/icons/index.d.ts +2 -0
  48. package/ui/Elements/Icon/icons/index.js +2 -0
  49. package/ui/Elements/Select/Select.js +4 -4
  50. package/ui/Elements/Select/components/ConnectedMenu.js +2 -3
  51. package/ui/Elements/Select/components/CountMultiValue.d.ts +10 -1
  52. package/ui/Elements/Select/components/CountMultiValue.js +15 -6
  53. package/ui/Elements/Select/components/DropdownIndicator.d.ts +6 -1
  54. package/ui/Elements/Select/components/DropdownIndicator.js +3 -2
  55. package/ui/Elements/Select/components/IconValueContainer.js +1 -1
  56. package/ui/Elements/Select/themes/index.d.ts +1 -1
  57. package/ui/Elements/Select/themes/index.js +4 -14
  58. package/ui/Elements/Select/themes/selectStyles.js +6 -10
  59. package/ui/Elements/Select/types.d.ts +6 -6
  60. package/ui/Elements/SingleSelect/SingleSelect.d.ts +2 -2
  61. package/ui/Elements/SingleSelect/SingleSelect.js +11 -20
  62. package/ui/ThemeProvider/themes/default.js +9 -9
  63. package/ui/index.es.js +14101 -13953
  64. package/ui/index.umd.js +535 -516
  65. package/ui/utils/translations.js +1 -1
  66. package/ui/Elements/Select/components/ResetAll.d.ts +0 -5
  67. package/ui/Elements/Select/components/ResetAll.js +0 -15
@@ -69,7 +69,7 @@ var emptyOptions = [];
69
69
  var noOptionsMessage = function () { return i18n._({ id: 'select.noOptions', message: 'no options' }); };
70
70
  var loadingMessage = function () { return i18n._({ id: 'components.dropdown.loading', message: 'Loading...' }); };
71
71
  var Select = function (_a) {
72
- var label = _a.label, name = _a.name, _b = _a.value, value = _b === void 0 ? '' : _b, _c = _a.options, options = _c === void 0 ? emptyOptions : _c, defaultOptions = _a.defaultOptions, loadOptions = _a.loadOptions, onChange = _a.onChange, onBlur = _a.onBlur, error = _a.error, isInvalid = _a.isInvalid, isLoading = _a.isLoading, isDarkPlaceholderText = _a.isDarkPlaceholderText, _d = _a.spaceAround, spaceAround = _d === void 0 ? false : _d, disabled = _a.disabled, onInputChange = _a.onInputChange, isSearchable = _a.isSearchable, isMulti = _a.isMulti, className = _a.className, _e = _a.useSimplifiedOptions, useSimplifiedOptions = _e === void 0 ? false : _e, _f = _a.showSelectAllButton, showSelectAllButton = _f === void 0 ? false : _f, _g = _a.showResetGridButton, showResetGridButton = _g === void 0 ? false : _g, _h = _a.shortValues, shortValues = _h === void 0 ? true : _h, style = _a.style, optionVariant = _a.optionVariant, multiLabelVariant = _a.multiLabelVariant, containerVariant = _a.containerVariant, placeholder = _a.placeholder, placeholderIcon = _a.placeholderIcon, innerRef = _a.innerRef, maxMenuHeight = _a.maxMenuHeight, getOptionValue = _a.getOptionValue, resetGrid = _a.resetGrid, onIconClick = _a.onIconClick, passTroughProps = __rest(_a, ["label", "name", "value", "options", "defaultOptions", "loadOptions", "onChange", "onBlur", "error", "isInvalid", "isLoading", "isDarkPlaceholderText", "spaceAround", "disabled", "onInputChange", "isSearchable", "isMulti", "className", "useSimplifiedOptions", "showSelectAllButton", "showResetGridButton", "shortValues", "style", "optionVariant", "multiLabelVariant", "containerVariant", "placeholder", "placeholderIcon", "innerRef", "maxMenuHeight", "getOptionValue", "resetGrid", "onIconClick"]);
72
+ var label = _a.label, name = _a.name, _b = _a.value, value = _b === void 0 ? '' : _b, _c = _a.options, options = _c === void 0 ? emptyOptions : _c, defaultOptions = _a.defaultOptions, loadOptions = _a.loadOptions, onChange = _a.onChange, onBlur = _a.onBlur, error = _a.error, isInvalid = _a.isInvalid, isLoading = _a.isLoading, isDarkPlaceholderText = _a.isDarkPlaceholderText, _d = _a.spaceAround, spaceAround = _d === void 0 ? false : _d, disabled = _a.disabled, onInputChange = _a.onInputChange, isSearchable = _a.isSearchable, isMulti = _a.isMulti, className = _a.className, _e = _a.useSimplifiedOptions, useSimplifiedOptions = _e === void 0 ? false : _e, _f = _a.showSelectAllButton, showSelectAllButton = _f === void 0 ? false : _f, _g = _a.shortValues, shortValues = _g === void 0 ? true : _g, _h = _a.shortVariant, shortVariant = _h === void 0 ? 'block' : _h, style = _a.style, optionVariant = _a.optionVariant, multiLabelVariant = _a.multiLabelVariant, containerVariant = _a.containerVariant, placeholder = _a.placeholder, placeholderIcon = _a.placeholderIcon, innerRef = _a.innerRef, maxMenuHeight = _a.maxMenuHeight, getOptionValue = _a.getOptionValue, onIconClick = _a.onIconClick, passTroughProps = __rest(_a, ["label", "name", "value", "options", "defaultOptions", "loadOptions", "onChange", "onBlur", "error", "isInvalid", "isLoading", "isDarkPlaceholderText", "spaceAround", "disabled", "onInputChange", "isSearchable", "isMulti", "className", "useSimplifiedOptions", "showSelectAllButton", "shortValues", "shortVariant", "style", "optionVariant", "multiLabelVariant", "containerVariant", "placeholder", "placeholderIcon", "innerRef", "maxMenuHeight", "getOptionValue", "onIconClick"]);
73
73
  var isAsync = !!loadOptions;
74
74
  if (showSelectAllButton && !isMulti) {
75
75
  console.error('CheckboxSelect incompatible props');
@@ -84,8 +84,8 @@ var Select = function (_a) {
84
84
  }
85
85
  }, [onChange]);
86
86
  var icon = containerVariant === 'search' && !placeholderIcon && placeholderIcon !== null ? 'search' : placeholderIcon || undefined;
87
- var modifiedMaxMenuHeight = showResetGridButton && showSelectAllButton && maxMenuHeight ? maxMenuHeight - 30 : maxMenuHeight;
88
- var _j = useStylesAndComponents(style, optionVariant, multiLabelVariant, containerVariant, useSimplifiedOptions, showSelectAllButton, showResetGridButton), customComponents = _j[0], customTheme = _j[1], customStyles = _j[2];
87
+ var modifiedMaxMenuHeight = showSelectAllButton && maxMenuHeight ? maxMenuHeight - 30 : maxMenuHeight;
88
+ var _j = useStylesAndComponents(style, optionVariant, multiLabelVariant, containerVariant, useSimplifiedOptions, showSelectAllButton), customComponents = _j[0], customTheme = _j[1], customStyles = _j[2];
89
89
  var RenderComponent = isAsync ? StyledAsyncSelect : StyledReactSelect;
90
90
  var selectedOption;
91
91
  var localGetOptionValue = useMemo(function () { return getOptionValue || (function (option) { return option === null || option === void 0 ? void 0 : option.value; }); }, [getOptionValue]);
@@ -106,6 +106,6 @@ var Select = function (_a) {
106
106
  }
107
107
  }); }); } : undefined;
108
108
  }, [loadOptions]);
109
- return (_jsxs(SpaceAroundWrap, { spaceAround: spaceAround, className: className, children: [_jsxs(Wrapper, { children: [label && _jsx(FieldLabel, { htmlFor: name, children: label }), _jsx(RenderComponent, __assign({ id: name, name: name, options: options, loadOptions: handleLoadOptions, defaultOptions: defaultOptions, value: selectedOption, onChange: onChange, onBlur: onBlur, isDisabled: disabled || isLoading, isLoading: isLoading, isInvalid: isInvalid !== undefined ? isInvalid : !!error, isDarkPlaceholderText: isDarkPlaceholderText, placeholder: placeholder || i18n._({ id: 'components.dropdown.placeholder', message: 'Select...' }), styles: customStyles, theme: customTheme, icon: icon, onIconClick: onIconClick, hideSelectedOptions: !!(isMulti && multiLabelVariant != 'count'), onInputChange: onInputChange, isSearchable: isAsync || isSearchable, isMulti: isMulti, classNamePrefix: "react-select", components: customComponents, closeMenuOnSelect: isMulti ? false : undefined, noOptionsMessage: noOptionsMessage }, passTroughProps, { ref: innerRef, tabIndex: null, systemTheme: theme, resetGrid: resetGrid, onCustomSelectAll: setAllOptions, onCustomDeselectAll: unsetAllOptions, selectAllButton: showSelectAllButton, resetGridButton: showResetGridButton, maxMenuHeight: modifiedMaxMenuHeight, getOptionValue: getOptionValue, loadingMessage: loadingMessage, shortValues: shortValues }))] }), error && _jsx(ErrorMessage, { children: error })] }));
109
+ return (_jsxs(SpaceAroundWrap, { spaceAround: spaceAround, className: className, children: [_jsxs(Wrapper, { children: [label && _jsx(FieldLabel, { htmlFor: name, children: label }), _jsx(RenderComponent, __assign({ id: name, name: name, options: options, loadOptions: handleLoadOptions, defaultOptions: defaultOptions, value: selectedOption, onChange: onChange, onBlur: onBlur, isDisabled: disabled || isLoading, isLoading: isLoading, isInvalid: isInvalid !== undefined ? isInvalid : !!error, isDarkPlaceholderText: isDarkPlaceholderText, placeholder: placeholder || i18n._({ id: 'components.dropdown.placeholder', message: 'Select...' }), styles: customStyles, theme: customTheme, icon: icon, onIconClick: onIconClick, hideSelectedOptions: !!(isMulti && multiLabelVariant !== 'count'), onInputChange: onInputChange, isSearchable: isAsync || isSearchable, isMulti: isMulti, classNamePrefix: "react-select", components: customComponents, closeMenuOnSelect: isMulti ? false : undefined, noOptionsMessage: noOptionsMessage }, passTroughProps, { ref: innerRef, tabIndex: null, systemTheme: theme, onCustomSelectAll: setAllOptions, onCustomDeselectAll: unsetAllOptions, selectAllButton: showSelectAllButton, maxMenuHeight: modifiedMaxMenuHeight, getOptionValue: getOptionValue, loadingMessage: loadingMessage, shortValues: shortValues, shortVariant: shortVariant, containerVariant: containerVariant }))] }), error && _jsx(ErrorMessage, { children: error })] }));
110
110
  };
111
111
  export default Select;
@@ -12,17 +12,16 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useMemo } from 'react';
14
14
  import { components as selectComponents } from 'react-select';
15
- import ResetAll from '../components/ResetAll';
16
15
  import SelectAll from '../components/SelectAll';
17
16
  var ConnectedMenu = function (props) {
18
17
  var theme = props.theme;
19
- var _a = props.selectProps, resetGrid = _a.resetGrid, onCustomSelectAll = _a.onCustomSelectAll, onCustomDeselectAll = _a.onCustomDeselectAll, value = _a.value, resetGridButton = _a.resetGridButton, selectAllButton = _a.selectAllButton, maxMenuHeight = _a.maxMenuHeight, isLoading = _a.isLoading;
18
+ var _a = props.selectProps, onCustomSelectAll = _a.onCustomSelectAll, onCustomDeselectAll = _a.onCustomDeselectAll, value = _a.value, selectAllButton = _a.selectAllButton, maxMenuHeight = _a.maxMenuHeight, isLoading = _a.isLoading;
20
19
  // because the filterd options (filterd by the search input) are not passed to the menu list (there are all options),
21
20
  // we need to specify them here by children
22
21
  var filteredOptions = useMemo(function () { var _a, _b; return (_b = (_a = props.children) === null || _a === void 0 ? void 0 : _a.map) === null || _b === void 0 ? void 0 : _b.call(_a, function (_a) {
23
22
  var _b = _a.props, value = _b.value, label = _b.label;
24
23
  return ({ label: label, value: value });
25
24
  }); }, [props.children]);
26
- return (_jsxs(selectComponents.MenuList, __assign({}, props, { children: [selectAllButton && !isLoading && (_jsx(SelectAll, { theme: theme, onCustomSelectAll: onCustomSelectAll, onCustomDeselectAll: onCustomDeselectAll, value: value, options: filteredOptions, maxMenuHeight: maxMenuHeight })), props.children, resetGridButton && _jsx(ResetAll, { onReset: resetGrid })] })));
25
+ return (_jsxs(selectComponents.MenuList, __assign({}, props, { children: [selectAllButton && !isLoading && (_jsx(SelectAll, { theme: theme, onCustomSelectAll: onCustomSelectAll, onCustomDeselectAll: onCustomDeselectAll, value: value, options: filteredOptions, maxMenuHeight: maxMenuHeight })), props.children] })));
27
26
  };
28
27
  export default ConnectedMenu;
@@ -1,2 +1,11 @@
1
- declare const CountMultiValue: (props: any) => any;
1
+ import { MultiValueProps } from 'react-select';
2
+
3
+ type CountMultiValueProps = MultiValueProps & {
4
+ data: unknown;
5
+ selectProps: MultiValueProps<unknown, boolean, any>['selectProps'] & {
6
+ shortValues?: boolean;
7
+ shortVariant?: 'block' | 'join';
8
+ };
9
+ };
10
+ declare const CountMultiValue: (props: CountMultiValueProps) => React.ReactNode;
2
11
  export default CountMultiValue;
@@ -18,20 +18,29 @@ import { components as selectComponents } from 'react-select';
18
18
  import styled, { th } from '@xstyled/styled-components';
19
19
  // MultiValue container with count of selected options
20
20
  var StyledNumber = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n height: 25px;\n justify-content: center;\n align-items: center;\n display: flex;\n border-radius: md;\n padding: 2px 6px;\n"], ["\n background-color: ", ";\n height: 25px;\n justify-content: center;\n align-items: center;\n display: flex;\n border-radius: md;\n padding: 2px 6px;\n"])), th.color('lightGray7'));
21
+ var JoinedMultiValue = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n white-space: nowrap;\n position: absolute;\n color: gray3;\n padding-left: ", ";\n"], ["\n white-space: nowrap;\n position: absolute;\n color: gray3;\n padding-left: ", ";\n"])), function (_a) {
22
+ var isFocused = _a.isFocused;
23
+ return (isFocused ? '8px' : '0');
24
+ });
21
25
  var CountMultiValue = function (props) {
22
- var _a, _b;
26
+ var _a;
23
27
  var shortValues = props.selectProps.shortValues;
24
28
  var selectVal = props.selectProps.value;
25
29
  var inputVal = props.selectProps.inputValue;
30
+ var shortVariant = props.selectProps.shortVariant;
31
+ var data = props.data;
32
+ var isFirst = (data === null || data === void 0 ? void 0 : data.value) === ((_a = selectVal[0]) === null || _a === void 0 ? void 0 : _a.value);
33
+ var menuIsOpen = props.selectProps.menuIsOpen;
26
34
  if (!shortValues) {
27
35
  return _jsx(selectComponents.MultiValue, __assign({}, props, { children: props.children }));
28
36
  }
29
- if (!inputVal && ((_a = props.data) === null || _a === void 0 ? void 0 : _a.value) === ((_b = selectVal[0]) === null || _b === void 0 ? void 0 : _b.value)) {
30
- return (_jsxs(_Fragment, { children: [_jsx(selectComponents.MultiValue, __assign({}, props, { children: props.children })), selectVal.length > 1 ? _jsxs(StyledNumber, { children: ["+", selectVal.length - 1] }) : null] }));
31
- }
32
- else {
37
+ if (!isFirst || inputVal) {
33
38
  return null;
34
39
  }
40
+ if (shortVariant === 'join') {
41
+ return (_jsxs(JoinedMultiValue, { isFocused: menuIsOpen, children: [selectVal.length > 1 ? "(".concat(Number(selectVal.length), ") ") : '', selectVal.map(function (option) { return option.label; }).join(', ')] }));
42
+ }
43
+ return (_jsxs(_Fragment, { children: [_jsx(selectComponents.MultiValue, __assign({}, props, { children: props.children })), selectVal.length > 1 ? _jsxs(StyledNumber, { children: ["+", selectVal.length - 1] }) : null] }));
35
44
  };
36
45
  export default CountMultiValue;
37
- var templateObject_1;
46
+ var templateObject_1, templateObject_2;
@@ -1,2 +1,7 @@
1
- export declare const DropdownIndicator: (props: any) => any;
1
+ import { DropdownIndicatorProps } from 'react-select';
2
+
3
+ type DropdownIndicatorCustomProps = DropdownIndicatorProps & {
4
+ theme: any;
5
+ };
6
+ export declare const DropdownIndicator: (props: DropdownIndicatorCustomProps) => any;
2
7
  export default DropdownIndicator;
@@ -15,14 +15,15 @@ var __assign = (this && this.__assign) || function () {
15
15
  };
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { components as selectComponents } from 'react-select';
18
- import styled from '@xstyled/styled-components';
19
18
  import { ArrowDown } from '../../Icon/icons/ArrowDown';
20
19
  import { ArrowUp } from '../../Icon/icons/ArrowUp';
20
+ import styled from '@xstyled/styled-components';
21
21
  // Option with chevron form new design
22
22
  var ChevronDiv = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-self: center;\n display: flex;\n"], ["\n align-self: center;\n display: flex;\n"])));
23
23
  export var DropdownIndicator = function (props) {
24
24
  var _a = props.selectProps, menuIsOpen = _a.menuIsOpen, name = _a.name;
25
- return (_jsx(selectComponents.DropdownIndicator, __assign({}, props, { children: _jsx(ChevronDiv, { className: "chevron", "data-cy": "".concat(name, "ChevronBtn"), children: menuIsOpen ? _jsx(ArrowUp, { width: "16px" }) : _jsx(ArrowDown, { width: "16px" }) }) })));
25
+ var iconColor = props.theme.colors.placeholderTextColor;
26
+ return (_jsx(selectComponents.DropdownIndicator, __assign({}, props, { children: _jsx(ChevronDiv, { className: "chevron", "data-cy": "".concat(name || '', "ChevronBtn"), children: menuIsOpen ? _jsx(ArrowUp, { width: "16px", stroke: iconColor }) : _jsx(ArrowDown, { width: "16px", stroke: iconColor }) }) })));
26
27
  };
27
28
  export default DropdownIndicator;
28
29
  var templateObject_1;
@@ -29,7 +29,7 @@ import { components } from 'react-select';
29
29
  import Icon from '../../Icon/Icon';
30
30
  import styled from '@xstyled/styled-components';
31
31
  // Value container with icon
32
- var IconDiv = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding-left: 12px;\n align-self: center;\n & > * {\n color: ", ";\n }\n"], ["\n padding-left: 12px;\n align-self: center;\n & > * {\n color: ", ";\n }\n"])), function (_a) {
32
+ var IconDiv = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding-left: 7px;\n margin-right: -3px;\n align-self: center;\n & > * {\n color: ", ";\n }\n"], ["\n padding-left: 7px;\n margin-right: -3px;\n align-self: center;\n & > * {\n color: ", ";\n }\n"])), function (_a) {
33
33
  var hasValue = _a.hasValue;
34
34
  return (hasValue ? 'black' : '#a3b3c1');
35
35
  });
@@ -1,4 +1,4 @@
1
1
  import { StylesConfig, SelectComponentsConfig } from 'react-select';
2
2
  import { SelectProps } from '../types';
3
3
 
4
- export declare const useStylesAndComponents: (style?: SelectProps['style'], optionVariant?: SelectProps['optionVariant'], multiLabelVariant?: SelectProps['multiLabelVariant'], containerVariant?: SelectProps['containerVariant'], useSimplifiedOptions?: SelectProps['useSimplifiedOptions'], showSelectAllButton?: SelectProps['showSelectAllButton'], showResetGridButton?: SelectProps['showResetGridButton']) => [SelectComponentsConfig<unknown, boolean, any>, any, StylesConfig];
4
+ export declare const useStylesAndComponents: (style?: SelectProps['style'], optionVariant?: SelectProps['optionVariant'], multiLabelVariant?: SelectProps['multiLabelVariant'], containerVariant?: SelectProps['containerVariant'], useSimplifiedOptions?: SelectProps['useSimplifiedOptions'], showSelectAllButton?: SelectProps['showSelectAllButton']) => [SelectComponentsConfig<unknown, boolean, any>, any, StylesConfig];
@@ -8,14 +8,13 @@ import IconValueContainer from '../components/IconValueContainer';
8
8
  import SimplifiedOption from '../components/SimplifiedOption';
9
9
  import { useTheme } from '@xstyled/styled-components';
10
10
  import { getCustomTheme as getFormCustomTheme, CustomStyles as SelectCustomStyles } from './selectStyles';
11
- export var useStylesAndComponents = function (style, optionVariant, multiLabelVariant, containerVariant, useSimplifiedOptions, showSelectAllButton, showResetGridButton) {
11
+ export var useStylesAndComponents = function (style, optionVariant, multiLabelVariant, containerVariant, useSimplifiedOptions, showSelectAllButton) {
12
12
  if (style === void 0) { style = 'form'; }
13
13
  if (optionVariant === void 0) { optionVariant = 'default'; }
14
14
  if (multiLabelVariant === void 0) { multiLabelVariant = 'default'; }
15
15
  if (containerVariant === void 0) { containerVariant = 'default'; }
16
16
  if (useSimplifiedOptions === void 0) { useSimplifiedOptions = false; }
17
17
  if (showSelectAllButton === void 0) { showSelectAllButton = false; }
18
- if (showResetGridButton === void 0) { showResetGridButton = false; }
19
18
  var systemTheme = useTheme();
20
19
  return useMemo(function () {
21
20
  var components = {
@@ -28,25 +27,16 @@ export var useStylesAndComponents = function (style, optionVariant, multiLabelVa
28
27
  if (containerVariant === 'search') {
29
28
  components.DropdownIndicator = null;
30
29
  }
31
- if (showResetGridButton || showSelectAllButton) {
30
+ if (showSelectAllButton) {
32
31
  components.MenuList = ConnectedMenu;
33
32
  }
34
33
  components.Input = CustomInput;
35
- var themes = getFormCustomTheme(systemTheme, optionVariant, style == 'gridFilter');
34
+ var themes = getFormCustomTheme(systemTheme, optionVariant, style === 'gridFilter');
36
35
  var styles = SelectCustomStyles;
37
36
  components.Option = ChevronOption;
38
37
  // performance reasons
39
38
  if (useSimplifiedOptions)
40
39
  components.Option = SimplifiedOption;
41
40
  return [components, themes, styles];
42
- }, [
43
- multiLabelVariant,
44
- containerVariant,
45
- showResetGridButton,
46
- showSelectAllButton,
47
- style,
48
- useSimplifiedOptions,
49
- systemTheme,
50
- optionVariant
51
- ]);
41
+ }, [multiLabelVariant, containerVariant, showSelectAllButton, style, useSimplifiedOptions, systemTheme, optionVariant]);
52
42
  };
@@ -25,7 +25,7 @@ export var CustomStyles = {
25
25
  },
26
26
  valueContainer: function (styles, _a) {
27
27
  var theme = _a.theme;
28
- return __assign(__assign({}, styles), { width: '50px', flexWrap: theme.flexWrap });
28
+ return __assign(__assign({}, styles), { width: '50px', paddingLeft: '7px', flexWrap: theme.flexWrap });
29
29
  },
30
30
  singleValue: function (styles, _a) {
31
31
  var selectProps = _a.selectProps, theme = _a.theme, isDisabled = _a.isDisabled;
@@ -112,17 +112,12 @@ export var CustomStyles = {
112
112
  borderRadius: '6px'
113
113
  } });
114
114
  },
115
- dropdownIndicator: function (styles, state) {
116
- var theme = state.theme, isDisabled = state.isDisabled;
117
- return __assign(__assign({}, styles), { justifyContent: 'center', alignItems: 'center', '& svg': {
118
- stroke: isDisabled ? theme.colors.dropdownIndicatorColor : theme.colors.inputTextColor
119
- }, padding: '0px 5px 0px 0px', '@media (min-width: 1024px)': {
120
- padding: '0px 10px 0px 1px'
121
- } });
115
+ dropdownIndicator: function (styles) {
116
+ return __assign(__assign({}, styles), { justifyContent: 'center', alignItems: 'center', padding: '0px 7px 0px 0px' });
122
117
  },
123
118
  clearIndicator: function (styles, state) {
124
- var theme = state.theme;
125
- return __assign(__assign({}, styles), { justifyContent: 'center', alignItems: 'center', padding: theme.narrowIndicators ? '0px 4px 0px 0px' : '0px 4px', color: theme.colors.dropdownIndicatorColor });
119
+ var theme = state.theme, selectProps = state.selectProps;
120
+ return __assign(__assign({}, styles), { justifyContent: 'center', alignItems: 'center', padding: theme.narrowIndicators && selectProps.containerVariant !== 'search' ? '0px' : '0px 4px', color: theme.colors.clearIndicatorColor, cursor: 'pointer' });
126
121
  },
127
122
  indicatorSeparator: function () { return ({
128
123
  display: 'none'
@@ -139,6 +134,7 @@ export var getCustomTheme = function (theme, optionVariant, useFilterSubvariant)
139
134
  inputDisabledColor: th.color('lightGray1')({ theme: theme }),
140
135
  inputBorderColor: th.color('lightGray3')({ theme: theme }),
141
136
  placeholderTextColor: th.color('lightGray3')({ theme: theme }),
137
+ clearIndicatorColor: th.color('lightGray4')({ theme: theme }),
142
138
  defaultControlColor: th.color('lightGray5')({ theme: theme }),
143
139
  disabledTextColor: th.color('lightGray6')({ theme: theme }),
144
140
  dropdownIndicatorColor: th.color('gray1')({ theme: theme }),
@@ -25,21 +25,21 @@ export type SelectProps = {
25
25
  loadOptions?: (text: string) => Promise<Option[]>;
26
26
  defaultOptions?: Option[];
27
27
  onChange: (value: ValueType) => void;
28
- onBlur?: Function;
28
+ onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
29
29
  error?: string;
30
30
  index?: [];
31
31
  isInvalid?: boolean;
32
32
  isLoading?: boolean;
33
33
  spaceAround?: SpaceAround;
34
34
  disabled?: boolean;
35
- onInputChange?: Function;
35
+ onInputChange?: (value: string) => void;
36
36
  useSimplifiedOptions?: boolean;
37
37
  showSelectAllButton?: boolean;
38
- showResetGridButton?: boolean;
39
38
  isClearable?: boolean;
40
39
  isSearchable?: boolean;
41
40
  isMulti?: boolean;
42
41
  shortValues?: boolean;
42
+ shortVariant?: 'block' | 'join';
43
43
  menuIsOpen?: boolean;
44
44
  defaultMenuIsOpen?: boolean;
45
45
  isDarkPlaceholderText?: boolean;
@@ -51,11 +51,10 @@ export type SelectProps = {
51
51
  innerRef?: RefObject<HTMLElement>;
52
52
  className?: string;
53
53
  maxMenuHeight?: number;
54
- resetGrid?: Function;
55
- getOptionValue?: Function;
54
+ getOptionValue?: (selectedOption: ValueType) => any;
56
55
  systemTheme?: Theme;
57
56
  menuPlacement?: string;
58
- onIconClick?: Function;
57
+ onIconClick?: (event: React.MouseEvent<HTMLDivElement>) => void;
59
58
  };
60
59
  export type BaseColors = {
61
60
  primary: string;
@@ -72,6 +71,7 @@ export type BaseColors = {
72
71
  dropdownIndicatorColor: string;
73
72
  hoverToActiveOptionBackground: string;
74
73
  defaultControlColor: string;
74
+ clearIndicatorColor: string;
75
75
  };
76
76
  type BaseState<ThemeType = BaseColors> = {
77
77
  theme: ThemeType;
@@ -1,12 +1,12 @@
1
1
  import { default as React } from 'react';
2
2
  import { SelectProps, Option } from '../Select/types';
3
3
 
4
- type FieldValueType = string | number | Array<string | number> | null;
4
+ export type FieldValueType = string | number | Array<string | number> | null;
5
5
  export type Props = Omit<SelectProps, 'onChange' | 'loadOptions'> & {
6
6
  onChange?: (event: {
7
7
  target: Record<string, FieldValueType>;
8
8
  }) => void;
9
- onValueChange?: Function;
9
+ onValueChange?: (value: FieldValueType) => void;
10
10
  asyncLoadMinChars?: number;
11
11
  preload?: boolean;
12
12
  isLocked?: boolean;
@@ -64,7 +64,7 @@ import omit from 'lodash/fp/omit';
64
64
  var CREATE = "_create_".concat(nanoid(), "_");
65
65
  var defaultFilterOption = createFilter();
66
66
  var creatableFilterOption = function (option, rawInput) {
67
- if ((option === null || option === void 0 ? void 0 : option.value) == CREATE)
67
+ if ((option === null || option === void 0 ? void 0 : option.value) === CREATE)
68
68
  return true;
69
69
  return defaultFilterOption(option, rawInput);
70
70
  };
@@ -88,7 +88,7 @@ var SingleSelect = function (props) {
88
88
  if (!loadOptions)
89
89
  return i18n._({ id: 'components.dropdown.noOptions', message: 'No options' });
90
90
  if (inputValue.length < asyncLoadMinChars)
91
- return i18n._({ id: 'components.dropdown.writeMoreChars', message: 'Write at least ${asyncLoadMinChars} characters.' });
91
+ return i18n._({ id: 'components.dropdown.writeMoreChars', message: "Write at least ".concat(asyncLoadMinChars, " characters.") });
92
92
  return i18n._({ id: 'dataGrid.filterCell', message: 'Type to filter' });
93
93
  }, [loadOptions, asyncLoadMinChars]);
94
94
  var handleLoadOptions = useCallback(function (inputValue) { return __awaiter(void 0, void 0, void 0, function () {
@@ -119,19 +119,21 @@ var SingleSelect = function (props) {
119
119
  var _f = useState(options || []), loadedDefaultOptions = _f[0], setLoadedDefaultOptions = _f[1];
120
120
  useEffect(function () {
121
121
  if (loadOptions && preload && !props.value)
122
- loadOptions('', false).then(setLoadedDefaultOptions);
122
+ loadOptions('', false).then(setLoadedDefaultOptions).catch(console.error);
123
123
  // eslint-disable-next-line react-hooks/exhaustive-deps
124
124
  }, [loadOptions]); // this is intentional
125
125
  var _g = useState(null), storedSelectedOption = _g[0], setStoredSelectedOption = _g[1];
126
126
  useEffect(function () {
127
- if (initialOptions && initialOptions.length) {
128
- var selectedOption = initialOptions.find(function (option) { return option.value == props.value; }) || null;
127
+ if (initialOptions === null || initialOptions === void 0 ? void 0 : initialOptions.length) {
128
+ var selectedOption = initialOptions.find(function (option) { return option.value === props.value; }) || null;
129
129
  setStoredSelectedOption(selectedOption);
130
130
  }
131
131
  if (loadOptions && !initialOptions && props.value) {
132
- loadOptions(String(props.value), true).then(function (selectedOptions) {
132
+ loadOptions(String(props.value), true)
133
+ .then(function (selectedOptions) {
133
134
  setStoredSelectedOption((selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions[0]) || null);
134
- });
135
+ })
136
+ .catch(console.error);
135
137
  }
136
138
  // ignored because of props.value, this only finds option for initial value
137
139
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -147,7 +149,7 @@ var SingleSelect = function (props) {
147
149
  return __generator(this, function (_e) {
148
150
  switch (_e.label) {
149
151
  case 0:
150
- if (!(onCreateOption && (option === null || option === void 0 ? void 0 : option.value) == CREATE)) return [3 /*break*/, 4];
152
+ if (!(onCreateOption && (option === null || option === void 0 ? void 0 : option.value) === CREATE)) return [3 /*break*/, 4];
151
153
  if (!((option === null || option === void 0 ? void 0 : option.inputValue) && ((_b = (_a = option === null || option === void 0 ? void 0 : option.inputValue) === null || _a === void 0 ? void 0 : _a.trim()) === null || _b === void 0 ? void 0 : _b.length) < 2)) return [3 /*break*/, 1];
152
154
  props === null || props === void 0 ? void 0 : props.form.setFieldTouched(name, true, true);
153
155
  props === null || props === void 0 ? void 0 : props.form.setFieldError(name, i18n._({ id: 'form.general.min2Chars', message: 'Minimal length is 2 characters.' }));
@@ -182,17 +184,6 @@ var SingleSelect = function (props) {
182
184
  }
183
185
  });
184
186
  }); }, [onCreateOption, loadOptions, onChange, onValueChange, props === null || props === void 0 ? void 0 : props.form, name]);
185
- var handleBlur = useCallback(function (option) {
186
- if (onBlur) {
187
- onBlur({
188
- target: {
189
- name: name,
190
- type: 'blur',
191
- value: getOptionValue(option)
192
- }
193
- });
194
- }
195
- }, [name, onBlur]);
196
187
  var omitted = ['onValueChange', 'placeholder', 'options', 'loadOptions', 'asyncLoadMinChars'];
197
188
  var displayLockedText = isLocked && !disabled;
198
189
  var placeholderValue = displayLockedText ? lockedText : placeholder;
@@ -204,6 +195,6 @@ var SingleSelect = function (props) {
204
195
  return staticOptions || undefined;
205
196
  return staticOptions ? __spreadArray(__spreadArray([], staticOptions, true), [storedSelectedOption], false) : [storedSelectedOption];
206
197
  }, [asAsync, loadedDefaultOptions, onCreateOption, options, storedSelectedOption]);
207
- return (_jsx(Select, __assign({}, omit(omitted, props), { filterOption: (filterOption || creatableFilterOption), disabled: disabled || isLocked, onChange: handleChange, onBlur: handleBlur, placeholder: placeholderValue, loadingMessage: loadingMessage, noOptionsMessage: noOptionsMessage, loadOptions: asAsync ? handleLoadOptions : undefined, containerVariant: asAsync ? 'search' : undefined, defaultOptions: defaultOptions, options: !asAsync ? options : undefined, isLoading: isCreating || props.isLoading })));
198
+ return (_jsx(Select, __assign({}, omit(omitted, props), { filterOption: (filterOption || creatableFilterOption), disabled: disabled || isLocked, onChange: handleChange, onBlur: onBlur, placeholder: placeholderValue, loadingMessage: loadingMessage, noOptionsMessage: noOptionsMessage, loadOptions: asAsync ? handleLoadOptions : undefined, containerVariant: asAsync ? 'search' : undefined, defaultOptions: defaultOptions, options: !asAsync ? options : undefined, isLoading: isCreating || props.isLoading })));
208
199
  };
209
200
  export default SingleSelect;
@@ -91,11 +91,11 @@ var defaultTheme = {
91
91
  magenta60: '#EE5396',
92
92
  magenta70: '#D12771',
93
93
  magenta80: '#9F1853',
94
- magenta90: '#7B1340',
94
+ magenta90: '#7B1340'
95
95
  },
96
96
  fonts: {
97
97
  primary: 'Inter, sans-serif',
98
- heading: 'Inter, sans-serif',
98
+ heading: 'Inter, sans-serif'
99
99
  },
100
100
  fontLinks: ['https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'],
101
101
  fontSizes: ['10px', '12px', '14px', '16px', '18px', '21px', '24px', '32px'],
@@ -105,20 +105,20 @@ var defaultTheme = {
105
105
  normal: 400,
106
106
  medium: 500,
107
107
  semiBold: 600,
108
- bold: 700,
108
+ bold: 700
109
109
  },
110
110
  letterSpacings: {
111
111
  default: null,
112
112
  sm: '2px',
113
113
  md: '4px',
114
- lg: '8px',
114
+ lg: '8px'
115
115
  },
116
116
  borders: {
117
117
  slim: '1px solid',
118
118
  mediumSlim: '2px solid',
119
119
  medium: '3px solid',
120
120
  mediumThick: '6px solid',
121
- thick: '10px solid',
121
+ thick: '10px solid'
122
122
  },
123
123
  // ...........................
124
124
  radii: {
@@ -126,7 +126,7 @@ var defaultTheme = {
126
126
  md: '4px',
127
127
  ml: '6px',
128
128
  lg: '8px',
129
- xl: '16px',
129
+ xl: '16px'
130
130
  },
131
131
  shadows: {
132
132
  boxShadow: '0px 5px 60px rgba(0, 0, 0, 0.1)',
@@ -143,13 +143,13 @@ var defaultTheme = {
143
143
  headerShadowNotifications: '1px 1px 2px #00000029',
144
144
  cornerDialogShadow: '1px 1px 3px 1px #00000029',
145
145
  gridShadow: '0px 1px 4px 0px rgba(0, 0, 0, 0.12)',
146
- tooltipShadow: '0px 2px 20px 0px rgba(0, 0, 0, 0.10)',
146
+ tooltipShadow: '0px 2px 20px 0px rgba(0, 0, 0, 0.10)'
147
147
  },
148
148
  space: [0, 4, 8, 16, 24, 48, 96, 144, 192, 240],
149
149
  transitions: {
150
150
  simpleLong: 'all 2s',
151
- inputTransition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out',
151
+ inputTransition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'
152
152
  },
153
- zIndices: [0, 1, 2, 3, 5, 30, 40, 100, 200, 300, 9999],
153
+ zIndices: [0, 1, 2, 3, 5, 30, 40, 100, 200, 300, 9999]
154
154
  };
155
155
  export default defaultTheme;