@hazelcast/ui 3.0.13 → 4.0.1-canary.10

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 (240) hide show
  1. package/README.md +1 -29
  2. package/lib/components/Alert.js +2 -2
  3. package/lib/components/Alert.js.map +1 -1
  4. package/lib/components/AppHeader/AppHeaderMenu/AppHeaderMenu.js +1 -1
  5. package/lib/components/AppHeader/AppHeaderMenu/AppHeaderMenu.js.map +1 -1
  6. package/lib/components/AppHeader/SelectCluster/SelectCluster.js +1 -1
  7. package/lib/components/AppHeader/SelectCluster/SelectCluster.js.map +1 -1
  8. package/lib/components/AppSidebar/AppSidebar.js +1 -1
  9. package/lib/components/AppSidebar/AppSidebar.js.map +1 -1
  10. package/lib/components/AppSidebar/AppSidebarFavoriteButton/AppSidebarFavoriteButton.js +1 -1
  11. package/lib/components/AppSidebar/AppSidebarFavoriteButton/AppSidebarFavoriteButton.js.map +1 -1
  12. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.d.ts +1 -3
  13. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.js +11 -10
  14. package/lib/components/AppSidebar/AppSidebarItem/AppSidebarItem.js.map +1 -1
  15. package/lib/components/AutocompleteField.d.ts +1 -3
  16. package/lib/components/AutocompleteField.js +4 -5
  17. package/lib/components/AutocompleteField.js.map +1 -1
  18. package/lib/components/AutocompleteField.module.css +183 -0
  19. package/lib/components/Badge.d.ts +1 -2
  20. package/lib/components/Badge.js +3 -7
  21. package/lib/components/Badge.js.map +1 -1
  22. package/lib/components/Badge.module.scss +18 -29
  23. package/lib/components/Button.d.ts +10 -33
  24. package/lib/components/Button.js +31 -51
  25. package/lib/components/Button.js.map +1 -1
  26. package/lib/components/Button.module.css +188 -0
  27. package/lib/components/ButtonGroup.d.ts +10 -0
  28. package/lib/components/ButtonGroup.js +6 -0
  29. package/lib/components/ButtonGroup.js.map +1 -0
  30. package/lib/components/ButtonGroup.module.css +29 -0
  31. package/lib/components/Calendar/components/CalendarTime.js +1 -1
  32. package/lib/components/Calendar/components/CalendarTime.js.map +1 -1
  33. package/lib/components/Checkbox.js +1 -1
  34. package/lib/components/Checkbox.js.map +1 -1
  35. package/lib/components/Checkbox.module.css +97 -0
  36. package/lib/components/Dialog.js +1 -1
  37. package/lib/components/Dialog.js.map +1 -1
  38. package/lib/components/Error.d.ts +2 -2
  39. package/lib/components/Help.d.ts +2 -2
  40. package/lib/components/Help.js +3 -2
  41. package/lib/components/Help.js.map +1 -1
  42. package/lib/components/IconButton.d.ts +8 -8
  43. package/lib/components/IconButton.js +24 -13
  44. package/lib/components/IconButton.js.map +1 -1
  45. package/lib/components/IconButton.module.css +145 -0
  46. package/lib/components/InteractiveList.d.ts +1 -1
  47. package/lib/components/InteractiveList.js +5 -5
  48. package/lib/components/InteractiveList.js.map +1 -1
  49. package/lib/components/InteractiveList.module.css +59 -0
  50. package/lib/components/Modal.d.ts +19 -2
  51. package/lib/components/Modal.js +56 -25
  52. package/lib/components/Modal.js.map +1 -1
  53. package/lib/components/Modal.module.css +222 -0
  54. package/lib/components/NumberField.d.ts +2 -3
  55. package/lib/components/NumberField.js +7 -10
  56. package/lib/components/NumberField.js.map +1 -1
  57. package/lib/components/NumberField.module.css +73 -0
  58. package/lib/components/Pagination.js +7 -7
  59. package/lib/components/Pagination.js.map +1 -1
  60. package/lib/components/PasswordField.d.ts +1 -2
  61. package/lib/components/PasswordField.js +2 -2
  62. package/lib/components/PasswordField.js.map +1 -1
  63. package/lib/components/PasswordField.module.scss +3 -0
  64. package/lib/components/Select/CheckableSelectField.d.ts +0 -1
  65. package/lib/components/Select/CheckableSelectField.js +12 -6
  66. package/lib/components/Select/CheckableSelectField.js.map +1 -1
  67. package/lib/components/Select/CheckableSelectField.module.css +112 -0
  68. package/lib/components/Select/Common.js +3 -3
  69. package/lib/components/Select/Common.js.map +1 -1
  70. package/lib/components/Select/Common.module.css +35 -0
  71. package/lib/components/Select/MultiSelectField.d.ts +1 -1
  72. package/lib/components/Select/MultiSelectField.js +3 -5
  73. package/lib/components/Select/MultiSelectField.js.map +1 -1
  74. package/lib/components/Select/MultiSelectField.module.css +60 -0
  75. package/lib/components/Select/SelectField.d.ts +2 -3
  76. package/lib/components/Select/SelectField.js +4 -6
  77. package/lib/components/Select/SelectField.js.map +1 -1
  78. package/lib/components/Select/SelectField.module.css +202 -0
  79. package/lib/components/SimpleTable.d.ts +25 -6
  80. package/lib/components/SimpleTable.js +27 -12
  81. package/lib/components/SimpleTable.js.map +1 -1
  82. package/lib/components/SimpleTable.module.css +80 -0
  83. package/lib/components/Table/Cell.js +6 -7
  84. package/lib/components/Table/Cell.js.map +1 -1
  85. package/lib/components/Tabs/Tab.js +1 -1
  86. package/lib/components/Tabs/Tab.js.map +1 -1
  87. package/lib/components/Tabs/Tab.module.css +58 -0
  88. package/lib/components/Tabs/TabList.js +1 -1
  89. package/lib/components/Tabs/TabList.js.map +1 -1
  90. package/lib/components/Tabs/TabList.module.css +9 -0
  91. package/lib/components/Tabs/TabPanel.js +1 -1
  92. package/lib/components/Tabs/TabPanel.js.map +1 -1
  93. package/lib/components/Tabs/TabPanel.module.css +7 -0
  94. package/lib/components/TextArea.js +1 -1
  95. package/lib/components/TextArea.js.map +1 -1
  96. package/lib/components/TextArea.module.css +109 -0
  97. package/lib/components/TextField.d.ts +2 -2
  98. package/lib/components/TextField.js +2 -2
  99. package/lib/components/TextField.js.map +1 -1
  100. package/lib/components/TextField.module.css +195 -0
  101. package/lib/components/Toast/Toast.d.ts +12 -0
  102. package/lib/components/Toast/Toast.js +26 -0
  103. package/lib/components/Toast/Toast.js.map +1 -0
  104. package/lib/components/Toast/Toast.module.css +98 -0
  105. package/lib/components/Toast/index.d.ts +4 -0
  106. package/lib/components/Toast/index.js +5 -0
  107. package/lib/components/Toast/index.js.map +1 -0
  108. package/lib/components/Toggle.js +2 -3
  109. package/lib/components/Toggle.js.map +1 -1
  110. package/lib/components/Toggle.module.css +120 -0
  111. package/lib/components/Tooltip.d.ts +35 -22
  112. package/lib/components/Tooltip.js +22 -47
  113. package/lib/components/Tooltip.js.map +1 -1
  114. package/lib/components/Tooltip.module.css +128 -0
  115. package/lib/components/TruncatedText.d.ts +2 -2
  116. package/lib/components/TruncatedText.js +3 -3
  117. package/lib/components/TruncatedText.js.map +1 -1
  118. package/lib/index.d.ts +1 -0
  119. package/lib/index.js.map +1 -1
  120. package/lib/old/AutocompleteField.d.ts +49 -0
  121. package/lib/old/AutocompleteField.js +166 -0
  122. package/lib/old/AutocompleteField.js.map +1 -0
  123. package/lib/old/AutocompleteFieldFormik.d.ts +9 -0
  124. package/lib/old/AutocompleteFieldFormik.js +19 -0
  125. package/lib/old/AutocompleteFieldFormik.js.map +1 -0
  126. package/lib/old/Button.d.ts +75 -0
  127. package/lib/old/Button.js +37 -0
  128. package/lib/old/Button.js.map +1 -0
  129. package/lib/{components/Button.module.scss → old/ButtonLegacy.module.scss} +2 -8
  130. package/lib/old/Checkbox.d.ts +35 -0
  131. package/lib/old/Checkbox.js +38 -0
  132. package/lib/old/Checkbox.js.map +1 -0
  133. package/lib/old/CheckboxFormik.d.ts +10 -0
  134. package/lib/old/CheckboxFormik.js +17 -0
  135. package/lib/old/CheckboxFormik.js.map +1 -0
  136. package/lib/old/IconButton.d.ts +49 -0
  137. package/lib/old/IconButton.js +25 -0
  138. package/lib/old/IconButton.js.map +1 -0
  139. package/lib/old/InteractiveList.d.ts +34 -0
  140. package/lib/old/InteractiveList.js +43 -0
  141. package/lib/old/InteractiveList.js.map +1 -0
  142. package/lib/old/InteractiveListFormik.d.ts +10 -0
  143. package/lib/old/InteractiveListFormik.js +75 -0
  144. package/lib/old/InteractiveListFormik.js.map +1 -0
  145. package/lib/old/Modal.d.ts +26 -0
  146. package/lib/old/Modal.js +41 -0
  147. package/lib/old/Modal.js.map +1 -0
  148. package/lib/old/NumberField.d.ts +33 -0
  149. package/lib/old/NumberField.js +141 -0
  150. package/lib/old/NumberField.js.map +1 -0
  151. package/lib/old/NumberFieldFormik.d.ts +10 -0
  152. package/lib/old/NumberFieldFormik.js +52 -0
  153. package/lib/old/NumberFieldFormik.js.map +1 -0
  154. package/lib/old/PasswordField.d.ts +29 -0
  155. package/lib/old/PasswordField.js +26 -0
  156. package/lib/old/PasswordField.js.map +1 -0
  157. package/lib/old/PasswordFieldFormik.d.ts +10 -0
  158. package/lib/old/PasswordFieldFormik.js +17 -0
  159. package/lib/old/PasswordFieldFormik.js.map +1 -0
  160. package/lib/old/PasswordFieldLegacy.module.scss +26 -0
  161. package/lib/old/Select/CheckableSelectField.d.ts +40 -0
  162. package/lib/old/Select/CheckableSelectField.js +77 -0
  163. package/lib/old/Select/CheckableSelectField.js.map +1 -0
  164. package/lib/old/Select/CheckableSelectFieldFormik.d.ts +10 -0
  165. package/lib/old/Select/CheckableSelectFieldFormik.js +19 -0
  166. package/lib/old/Select/CheckableSelectFieldFormik.js.map +1 -0
  167. package/lib/old/Select/Common.d.ts +5 -0
  168. package/lib/old/Select/Common.js +54 -0
  169. package/lib/old/Select/Common.js.map +1 -0
  170. package/lib/old/Select/MultiSelectField.d.ts +28 -0
  171. package/lib/old/Select/MultiSelectField.js +113 -0
  172. package/lib/old/Select/MultiSelectField.js.map +1 -0
  173. package/lib/old/Select/MultiSelectFieldFormik.d.ts +11 -0
  174. package/lib/old/Select/MultiSelectFieldFormik.js +19 -0
  175. package/lib/old/Select/MultiSelectFieldFormik.js.map +1 -0
  176. package/lib/old/Select/SelectField.d.ts +43 -0
  177. package/lib/old/Select/SelectField.js +103 -0
  178. package/lib/old/Select/SelectField.js.map +1 -0
  179. package/lib/old/Select/SelectFieldFormik.d.ts +10 -0
  180. package/lib/old/Select/SelectFieldFormik.js +19 -0
  181. package/lib/old/Select/SelectFieldFormik.js.map +1 -0
  182. package/lib/old/Select/helpers.d.ts +12 -0
  183. package/lib/old/Select/helpers.js +29 -0
  184. package/lib/old/Select/helpers.js.map +1 -0
  185. package/lib/old/SimpleTable.d.ts +11 -0
  186. package/lib/old/SimpleTable.js +26 -0
  187. package/lib/old/SimpleTable.js.map +1 -0
  188. package/lib/old/Tabs.d.ts +53 -0
  189. package/lib/old/Tabs.js +92 -0
  190. package/lib/old/Tabs.js.map +1 -0
  191. package/lib/{components/Tabs/Tab.module.scss → old/TabsLegacy.module.scss} +14 -6
  192. package/lib/old/TextArea.d.ts +19 -0
  193. package/lib/old/TextArea.js +25 -0
  194. package/lib/old/TextArea.js.map +1 -0
  195. package/lib/old/TextAreaFormik.d.ts +9 -0
  196. package/lib/old/TextAreaFormik.js +11 -0
  197. package/lib/old/TextAreaFormik.js.map +1 -0
  198. package/lib/old/TextField.d.ts +50 -0
  199. package/lib/old/TextField.js +65 -0
  200. package/lib/old/TextField.js.map +1 -0
  201. package/lib/old/TextFieldFormik.d.ts +11 -0
  202. package/lib/old/TextFieldFormik.js +23 -0
  203. package/lib/old/TextFieldFormik.js.map +1 -0
  204. package/lib/{components/TextField.module.scss → old/TextFieldLegacy.module.scss} +0 -1
  205. package/lib/{components → old}/Toast.js +2 -2
  206. package/lib/old/Toast.js.map +1 -0
  207. package/lib/old/Toggle.d.ts +21 -0
  208. package/lib/old/Toggle.js +22 -0
  209. package/lib/old/Toggle.js.map +1 -0
  210. package/lib/old/ToggleFormik.d.ts +9 -0
  211. package/lib/old/ToggleFormik.js +12 -0
  212. package/lib/old/ToggleFormik.js.map +1 -0
  213. package/lib/{components/Toggle.module.scss → old/ToggleLegacy.module.scss} +0 -2
  214. package/lib/old/Tooltip.d.ts +34 -0
  215. package/lib/old/Tooltip.js +57 -0
  216. package/lib/old/Tooltip.js.map +1 -0
  217. package/lib/old/Tooltip.module.scss +45 -0
  218. package/lib/old/index.d.ts +58 -0
  219. package/lib/old/index.js +34 -0
  220. package/lib/old/index.js.map +1 -0
  221. package/package.json +5 -11
  222. package/styles/constants/_colors.scss +18 -0
  223. package/styles/variables.css +162 -0
  224. package/lib/components/Tabs/TabList.module.scss +0 -3
  225. package/lib/components/Tabs/TabPanel.module.scss +0 -7
  226. package/lib/components/Toast.js.map +0 -1
  227. /package/lib/{components/AutocompleteField.module.scss → old/AutocompleteFieldLegacy.module.scss} +0 -0
  228. /package/lib/{components/Checkbox.module.scss → old/CheckboxLegacy.module.scss} +0 -0
  229. /package/lib/{components/IconButton.module.scss → old/IconButtonLegacy.module.scss} +0 -0
  230. /package/lib/{components/InteractiveList.module.scss → old/InteractiveListLegacy.module.scss} +0 -0
  231. /package/lib/{components/Modal.module.scss → old/ModalLegacy.module.scss} +0 -0
  232. /package/lib/{components/NumberField.module.scss → old/NumberFieldLegacy.module.scss} +0 -0
  233. /package/lib/{components/Select/CheckableSelectField.module.scss → old/Select/CheckableSelectFieldLegacy.module.scss} +0 -0
  234. /package/lib/{components/Select/Common.module.scss → old/Select/CommonLegacy.module.scss} +0 -0
  235. /package/lib/{components/Select/MultiSelectField.module.scss → old/Select/MultiSelectFieldLegacy.module.scss} +0 -0
  236. /package/lib/{components/Select/SelectField.module.scss → old/Select/SelectFieldLegacy.module.scss} +0 -0
  237. /package/lib/{components/SimpleTable.module.scss → old/SimpleTableLegacy.module.scss} +0 -0
  238. /package/lib/{components/TextArea.module.scss → old/TextAreaLegacy.module.scss} +0 -0
  239. /package/lib/{components → old}/Toast.d.ts +0 -0
  240. /package/lib/{components/Toast.module.scss → old/ToastLegacy.module.scss} +0 -0
@@ -0,0 +1,33 @@
1
+ import { FC, FocusEvent, InputHTMLAttributes } from 'react';
2
+ import { DataTestProp } from '../helpers/types';
3
+ import { TextFieldProps, TextFieldSize } from './TextField';
4
+ type NumberFieldCoreProps = {
5
+ name: string;
6
+ value?: number;
7
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
8
+ onChange: (newValue?: number) => void;
9
+ error?: string;
10
+ };
11
+ export type NumberFieldExtraProps = Omit<TextFieldProps<'number'>, 'onChange' | 'inputTrailingIcon' | 'inputTrailingIconLabel'> & {
12
+ incrementIconAriaLabel?: string;
13
+ decrementIconAriaLabel?: string;
14
+ step?: number;
15
+ min?: number;
16
+ max?: number;
17
+ disableChangeOnScroll?: boolean;
18
+ defaultValue?: number;
19
+ numberType?: 'int' | 'float';
20
+ iconPosition?: 'separate' | 'together';
21
+ showIconButtons?: boolean;
22
+ label?: string;
23
+ showAriaLabel?: boolean;
24
+ size?: TextFieldSize;
25
+ className?: string;
26
+ labelClassName?: string;
27
+ inputClassName?: string;
28
+ inputContainerClassName?: string;
29
+ errorClassName?: string;
30
+ } & DataTestProp & Pick<InputHTMLAttributes<HTMLInputElement>, 'autoFocus' | 'disabled' | 'autoComplete' | 'required' | 'placeholder'>;
31
+ export type NumberFieldProps = NumberFieldCoreProps & NumberFieldExtraProps;
32
+ export declare const NumberField: FC<NumberFieldProps>;
33
+ export {};
@@ -0,0 +1,141 @@
1
+ import React, { useCallback, useMemo, useRef, useEffect } from 'react';
2
+ import { PlusCircle, MinusCircle } from 'react-feather';
3
+ import useIsomorphicLayoutEffect from 'react-use/lib/useIsomorphicLayoutEffect';
4
+ import cn from 'classnames';
5
+ import { TextField } from './TextField';
6
+ import { IconButton } from '../components/IconButton';
7
+ import styles from './NumberFieldLegacy.module.scss';
8
+ export const NumberField = ({ incrementIconAriaLabel = 'Increment', decrementIconAriaLabel = 'Decrement', step = 1, min, max, disableChangeOnScroll, value, numberType = 'int', iconPosition = 'together', showIconButtons = true, inputClassName, inputContainerClassName, onChange, disabled, size, 'data-test': dataTest = 'number-field', ...props }) => {
9
+ const field = useRef(null);
10
+ const handleWheel = useCallback((e) => {
11
+ const target = e.target;
12
+ target.blur();
13
+ }, []);
14
+ useEffect(() => {
15
+ if (disableChangeOnScroll) {
16
+ const current = field.current;
17
+ if (current) {
18
+ current.addEventListener('wheel', handleWheel);
19
+ return () => {
20
+ current.removeEventListener('wheel', handleWheel);
21
+ };
22
+ }
23
+ }
24
+ }, [disableChangeOnScroll, handleWheel]);
25
+ useIsomorphicLayoutEffect(() => {
26
+ if (min !== undefined && value !== undefined && value < min) {
27
+ onChange(min);
28
+ }
29
+ if (max !== undefined && value !== undefined && value > max) {
30
+ onChange(max);
31
+ }
32
+ }, [min, max]);
33
+ const onDecrement = useCallback(() => {
34
+ let newValue = value - step;
35
+ if (min !== undefined && newValue < min) {
36
+ newValue = min;
37
+ }
38
+ onChange(newValue);
39
+ }, [value, onChange, step, min]);
40
+ const onIncrement = useCallback(() => {
41
+ let newValue;
42
+ if (value === undefined && min !== undefined) {
43
+ newValue = min;
44
+ }
45
+ else {
46
+ newValue = value + step;
47
+ }
48
+ if (max !== undefined && newValue > max) {
49
+ newValue = max;
50
+ }
51
+ onChange(newValue);
52
+ }, [value, onChange, step, max, min]);
53
+ const overlay = useMemo(() => {
54
+ if (!showIconButtons) {
55
+ return undefined;
56
+ }
57
+ let decrementDisabledProps = {};
58
+ if (value === undefined) {
59
+ decrementDisabledProps = {
60
+ disabled: true,
61
+ disabledTooltip: 'Please, fill in the initial value',
62
+ };
63
+ }
64
+ else if (min !== undefined && value <= min) {
65
+ decrementDisabledProps = {
66
+ disabled: true,
67
+ disabledTooltip: `Value can't be less than ${min}`,
68
+ };
69
+ }
70
+ else if (disabled) {
71
+ // The entire input is disabled. No need for a tooltip.
72
+ decrementDisabledProps = {
73
+ disabled: true,
74
+ disabledTooltip: '',
75
+ disabledTooltipVisible: false,
76
+ };
77
+ }
78
+ let incrementDisabledProps = {};
79
+ if (value === undefined && min === undefined) {
80
+ incrementDisabledProps = {
81
+ disabled: true,
82
+ disabledTooltip: 'Please, fill in the initial value',
83
+ };
84
+ }
85
+ else if (max !== undefined && value !== undefined && value >= max) {
86
+ incrementDisabledProps = {
87
+ disabled: true,
88
+ disabledTooltip: `Value can't be greater than ${max}`,
89
+ };
90
+ }
91
+ else if (disabled) {
92
+ // The entire input is disabled. No need for a tooltip.
93
+ incrementDisabledProps = {
94
+ disabled: true,
95
+ disabledTooltip: '',
96
+ disabledTooltipVisible: false,
97
+ };
98
+ }
99
+ return (React.createElement(React.Fragment, null,
100
+ React.createElement(IconButton, { size: size === 'small' ? 'small' : 'regular', icon: MinusCircle, ariaLabel: decrementIconAriaLabel, className: cn(styles.decrement, {
101
+ [styles.decrementSmall]: size === 'small',
102
+ [styles.decrementIconsSeparate]: iconPosition === 'separate',
103
+ [styles.disabled]: disabled,
104
+ }), onClick: onDecrement, variant: "ghost", "data-test": `${dataTest}-decrement`, type: "button", ...decrementDisabledProps }),
105
+ React.createElement(IconButton, { size: size === 'small' ? 'small' : 'regular', icon: PlusCircle, ariaLabel: incrementIconAriaLabel, className: cn(styles.increment, {
106
+ [styles.disabled]: disabled,
107
+ }), onClick: onIncrement, variant: "ghost", "data-test": `${dataTest}-increment`, type: "button", ...incrementDisabledProps })));
108
+ }, [
109
+ showIconButtons,
110
+ value,
111
+ min,
112
+ disabled,
113
+ max,
114
+ size,
115
+ decrementIconAriaLabel,
116
+ iconPosition,
117
+ onDecrement,
118
+ dataTest,
119
+ incrementIconAriaLabel,
120
+ onIncrement,
121
+ ]);
122
+ const onChangeWrapped = useCallback(({ target: { value: newValue } }) => {
123
+ let newValueParsed;
124
+ if (newValue !== '') {
125
+ newValueParsed = numberType === 'int' ? parseInt(newValue, 10) : parseFloat(newValue);
126
+ }
127
+ if (min !== undefined && newValueParsed !== undefined && newValueParsed < min) {
128
+ newValueParsed = min;
129
+ }
130
+ if (max !== undefined && newValueParsed !== undefined && newValueParsed > max) {
131
+ newValueParsed = max;
132
+ }
133
+ onChange(newValueParsed);
134
+ }, [onChange, numberType, min, max]);
135
+ return (React.createElement(TextField, { ...props, ...(disableChangeOnScroll ? { mRef: field } : {}), value: value, "data-test": dataTest, onChange: onChangeWrapped, type: "number", inputContainerChild: overlay, inputContainerClassName: cn(styles.inputContainer, {
136
+ [styles.buttons]: showIconButtons,
137
+ [styles.buttonsIconsSeparate]: iconPosition === 'separate',
138
+ [styles.buttonsRegularIconsSeparate]: iconPosition === 'separate' && size !== 'small',
139
+ }, inputContainerClassName), inputClassName: inputClassName, disabled: disabled, size: size }));
140
+ };
141
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../../src/old/NumberField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ import { NumberFieldExtraProps } from './NumberField';
3
+ import { FieldValidatorGeneric } from '../utils/formik';
4
+ import { ExtractKeysOfValueType } from '../utils/types';
5
+ export type NumberFieldFormikProps<V extends object> = NumberFieldExtraProps & {
6
+ name: ExtractKeysOfValueType<V, number | undefined>;
7
+ validate?: FieldValidatorGeneric<number | undefined>;
8
+ onChange?: (value?: number) => void;
9
+ };
10
+ export declare const NumberFieldFormik: <V extends object>({ name, validate, onChange, ...props }: NumberFieldFormikProps<V>) => ReactElement;
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import { useField, useFormikContext } from 'formik';
3
+ import { NumberField } from './NumberField';
4
+ import { getFieldError } from '../utils/formik';
5
+ const changeNestedObjectValue = (oldValues, name, updatedValue) => {
6
+ const nameProps = name.split('.');
7
+ const newValues = {
8
+ ...oldValues,
9
+ };
10
+ nameProps.reduce((nestedValues, nextName, currentIndex) => {
11
+ if (currentIndex < nameProps.length - 1) {
12
+ // @ts-ignore
13
+ return nestedValues[nextName] || {};
14
+ }
15
+ else {
16
+ // @ts-ignore
17
+ nestedValues[nextName] = updatedValue;
18
+ return nestedValues;
19
+ }
20
+ }, newValues);
21
+ return newValues;
22
+ };
23
+ export const NumberFieldFormik = ({ name, validate, onChange, ...props }) => {
24
+ const [{ value, onBlur }, meta, { setTouched }] = useField({
25
+ name,
26
+ validate,
27
+ });
28
+ const formik = useFormikContext();
29
+ const handleChange = (value) => {
30
+ if (onChange) {
31
+ onChange(value);
32
+ }
33
+ // https://github.com/formium/formik/issues/2332
34
+ setTouched(true, false);
35
+ // Override default behavior by forcing undefined to be set on the state
36
+ if (value === undefined) {
37
+ const newValues = changeNestedObjectValue(formik.values, name, value);
38
+ formik.setValues({
39
+ ...newValues,
40
+ });
41
+ void formik.validateForm({
42
+ ...newValues,
43
+ });
44
+ }
45
+ else {
46
+ // Use default behavior for normal values
47
+ formik.setFieldValue(name, value, true);
48
+ }
49
+ };
50
+ return React.createElement(NumberField, { ...props, name: name, value: value, onChange: handleChange, onBlur: onBlur, error: getFieldError(meta) });
51
+ };
52
+ //# sourceMappingURL=NumberFieldFormik.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberFieldFormik.js","sourceRoot":"","sources":["../../src/old/NumberFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuB,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAEnD,OAAO,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAyB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAStE,MAAM,uBAAuB,GAAG,CAAmB,SAAY,EAAE,IAAY,EAAE,YAAgC,EAAE,EAAE;IACjH,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG;QAChB,GAAG,SAAS;KACb,CAAA;IACD,SAAS,CAAC,MAAM,CAAC,CAAC,YAAoB,EAAE,QAAgB,EAAE,YAAY,EAAE,EAAE;QACxE,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,aAAa;YACb,OAAQ,YAAY,CAAC,QAAQ,CAAY,IAAI,EAAE,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,aAAa;YACb,YAAY,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;YACrC,OAAO,YAAY,CAAA;QACrB,CAAC;IACH,CAAC,EAAE,SAAS,CAAC,CAAA;IACb,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,EAA6B,EAAgB,EAAE;IACrI,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAqB;QAC7E,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,gBAAgB,EAAK,CAAA;IAEpC,MAAM,YAAY,GAAG,CAAC,KAAyB,EAAE,EAAE;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;QAED,gDAAgD;QAChD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACvB,wEAAwE;QACxE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;YACrE,MAAM,CAAC,SAAS,CAAC;gBACf,GAAG,SAAS;aACb,CAAC,CAAA;YACF,KAAK,MAAM,CAAC,YAAY,CAAC;gBACvB,GAAG,SAAS;aACb,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QACzC,CAAC;IACH,CAAC,CAAA;IAED,OAAO,oBAAC,WAAW,OAAK,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAI,CAAA;AACjI,CAAC,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { FC, FocusEvent, ChangeEvent, InputHTMLAttributes } from 'react';
2
+ import { DataTestProp } from '../helpers/types';
3
+ import { TextFieldSize, TextFieldVariant } from '../components/TextField';
4
+ import { HelpProps } from '../components/Help';
5
+ type PasswordFieldCoreProps = {
6
+ name: string;
7
+ value?: string;
8
+ onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
9
+ onChange: (e: ChangeEvent<HTMLInputElement>) => void;
10
+ error?: string;
11
+ };
12
+ export type PasswordFieldExtraProps = {
13
+ showIconLabel?: string;
14
+ hideIconLabel?: string;
15
+ label: string;
16
+ helperText?: HelpProps['helperText'];
17
+ size?: TextFieldSize;
18
+ variant?: TextFieldVariant;
19
+ labelClassName?: string;
20
+ className?: string;
21
+ inputClassName?: string;
22
+ errorClassName?: string;
23
+ withIcon?: boolean;
24
+ initiallyVisible?: boolean;
25
+ hideToggle?: boolean;
26
+ } & DataTestProp & Pick<InputHTMLAttributes<HTMLInputElement>, 'id' | 'autoFocus' | 'disabled' | 'autoComplete' | 'required' | 'placeholder'>;
27
+ export type PasswordFieldProps = PasswordFieldCoreProps & PasswordFieldExtraProps;
28
+ export declare const PasswordField: FC<PasswordFieldProps>;
29
+ export {};
@@ -0,0 +1,26 @@
1
+ import React, { useMemo, useState } from 'react';
2
+ import { Eye, EyeOff, Lock } from 'react-feather';
3
+ import cls from 'classnames';
4
+ import { TextField } from '../components/TextField';
5
+ import { IconButton } from '../components/IconButton';
6
+ import styles from './PasswordFieldLegacy.module.scss';
7
+ export const PasswordField = ({ showIconLabel = 'Show password', hideIconLabel = 'Hide password', inputClassName, withIcon, disabled, initiallyVisible = false, hideToggle = false, 'data-test': dataTest = 'password-field', ...props }) => {
8
+ const [visible, setVisible] = useState(initiallyVisible);
9
+ const overlay = useMemo(() => {
10
+ if (hideToggle) {
11
+ return undefined;
12
+ }
13
+ let disabledProps = {};
14
+ if (disabled) {
15
+ // The IconButton is disabled only when the entire input is disabled. No need for a tooltip.
16
+ disabledProps = {
17
+ disabled: true,
18
+ disabledTooltip: '',
19
+ disabledTooltipVisible: false,
20
+ };
21
+ }
22
+ return (React.createElement(IconButton, { size: "small", icon: visible ? EyeOff : Eye, ariaLabel: visible ? hideIconLabel : showIconLabel, className: styles.toggle, onClick: () => setVisible((prev) => !prev), variant: "ghost", "data-test": `${dataTest}-toggle`, type: "button", ...disabledProps }));
23
+ }, [visible, dataTest, hideToggle, hideIconLabel, showIconLabel, disabled]);
24
+ return (React.createElement(TextField, { ...props, "data-test": dataTest, type: visible ? 'text' : 'password', inputContainerChild: overlay, inputContainerClassName: cls(styles.inputContainer, { [styles.withoutToggle]: hideToggle }), inputClassName: inputClassName, inputIcon: withIcon ? Lock : undefined, disabled: disabled }));
25
+ };
26
+ //# sourceMappingURL=PasswordField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordField.js","sourceRoot":"","sources":["../../src/old/PasswordField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAoD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,GAAG,MAAM,YAAY,CAAA;AAG5B,OAAO,EAAE,SAAS,EAAmC,MAAM,yBAAyB,CAAA;AACpF,OAAO,EAAE,UAAU,EAAuD,MAAM,0BAA0B,CAAA;AAG1G,OAAO,MAAM,MAAM,mCAAmC,CAAA;AA2BtD,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,EACpD,aAAa,GAAG,eAAe,EAC/B,aAAa,GAAG,eAAe,EAC/B,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,gBAAgB,GAAG,KAAK,EACxB,UAAU,GAAG,KAAK,EAClB,WAAW,EAAE,QAAQ,GAAG,gBAAgB,EACxC,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAExD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,aAAa,GAAyD,EAAE,CAAA;QAC5E,IAAI,QAAQ,EAAE,CAAC;YACb,4FAA4F;YAC5F,aAAa,GAAG;gBACd,QAAQ,EAAE,IAAI;gBACd,eAAe,EAAE,EAAE;gBACnB,sBAAsB,EAAE,KAAK;aAC9B,CAAA;QACH,CAAC;QAED,OAAO,CACL,oBAAC,UAAU,IACT,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAC5B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAClD,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAC1C,OAAO,EAAC,OAAO,eACJ,GAAG,QAAQ,SAAS,EAC/B,IAAI,EAAC,QAAQ,KACT,aAAa,GACjB,CACH,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE3E,OAAO,CACL,oBAAC,SAAS,OACJ,KAAK,eACE,QAAQ,EACnB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EACnC,mBAAmB,EAAE,OAAO,EAC5B,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC,EAC3F,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtC,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ import { PasswordFieldExtraProps } from './PasswordField';
3
+ import { FieldValidatorGeneric } from '../utils/formik';
4
+ import { ExtractKeysOfValueType } from '../utils/types';
5
+ export type PasswordFieldFormikProps<V extends object> = PasswordFieldExtraProps & {
6
+ name: ExtractKeysOfValueType<V, string | undefined>;
7
+ validate?: FieldValidatorGeneric<string | undefined>;
8
+ onChange?: (value: string) => void;
9
+ };
10
+ export declare const PasswordFieldFormik: <V extends object>({ name, validate, onChange, ...props }: PasswordFieldFormikProps<V>) => ReactElement;
@@ -0,0 +1,17 @@
1
+ import React, { useCallback } from 'react';
2
+ import { useField } from 'formik';
3
+ import { PasswordField } from './PasswordField';
4
+ import { getFieldError } from '../utils/formik';
5
+ export const PasswordFieldFormik = ({ name, validate, onChange, ...props }) => {
6
+ const [{ value, onBlur, onChange: onFormikChange }, meta] = useField({
7
+ name,
8
+ validate,
9
+ });
10
+ return (React.createElement(PasswordField, { ...props, name: name, value: value, onChange: useCallback((e) => {
11
+ if (onChange) {
12
+ onChange(e.target.value);
13
+ }
14
+ onFormikChange(e);
15
+ }, [onFormikChange, onChange]), onBlur: onBlur, error: getFieldError(meta) }));
16
+ };
17
+ //# sourceMappingURL=PasswordFieldFormik.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordFieldFormik.js","sourceRoot":"","sources":["../../src/old/PasswordFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,WAAW,EAAE,MAAM,OAAO,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAE,aAAa,EAA2B,MAAM,iBAAiB,CAAA;AACxE,OAAO,EAAyB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAStE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAmB,EACpD,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACoB,EAAgB,EAAE;IAC9C,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAqB;QACvF,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,aAAa,OACR,KAAK,EACT,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,CACnB,CAAC,CAAC,EAAE,EAAE;YACJ,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAED,cAAc,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC,EACD,CAAC,cAAc,EAAE,QAAQ,CAAC,CAC3B,EACD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAC1B,CACH,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ @use '../../styles/constants' as c;
2
+
3
+ $buttonMargin: c.$grid * 2;
4
+ $inputMargin: c.$iconSizeSmall + $buttonMargin * 2;
5
+
6
+ .inputContainer {
7
+ position: relative;
8
+
9
+ > input {
10
+ padding-right: 0;
11
+ margin-right: $inputMargin;
12
+ }
13
+
14
+ .toggle {
15
+ position: absolute;
16
+ right: $buttonMargin;
17
+ top: 50%;
18
+ transform: translateY(-50%);
19
+ }
20
+
21
+ &.withoutToggle {
22
+ > input {
23
+ margin-right: 0;
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,40 @@
1
+ import React, { FocusEvent, ReactNode } from 'react';
2
+ import { SelectFieldOption } from './helpers';
3
+ import { HelpProps } from '../../components/Help';
4
+ export type CheckableSelectFieldCoreStaticProps<V> = {
5
+ name: string;
6
+ onBlur?: (e: FocusEvent<HTMLElement>) => void;
7
+ error?: string;
8
+ value: V[];
9
+ onChange: (newValue: V[]) => void;
10
+ allSelectedLabel?: string;
11
+ noneSelectedLabel?: string;
12
+ };
13
+ export type CheckableSelectFieldExtraProps<V> = {
14
+ options: SelectFieldOption<V>[];
15
+ label: ReactNode;
16
+ size?: 'small' | 'medium';
17
+ showAriaLabel?: boolean;
18
+ helperText?: HelpProps['helperText'];
19
+ className?: string;
20
+ placeholderMode?: 'normal' | 'permanent';
21
+ placeholder?: string;
22
+ disabled?: boolean;
23
+ required?: boolean;
24
+ labelClassName?: string;
25
+ errorClassName?: string;
26
+ 'data-test': string;
27
+ noOptionsMessage?: string;
28
+ defaultOpen?: boolean;
29
+ id?: string;
30
+ searchInputProps?: {
31
+ endAdornment?: ReactNode;
32
+ startAdornment?: ReactNode;
33
+ };
34
+ filterOptions?: (candidate: SelectFieldOption<V>, input: string) => boolean;
35
+ };
36
+ export type CheckableSelectProps<V> = CheckableSelectFieldCoreStaticProps<V> & CheckableSelectFieldExtraProps<V>;
37
+ export interface CheckMarkProps {
38
+ checked: boolean;
39
+ }
40
+ export declare const CheckableSelectField: <V extends string | number = number>(props: CheckableSelectProps<V>) => React.JSX.Element;
@@ -0,0 +1,77 @@
1
+ import React, { useCallback, useMemo, useState } from 'react';
2
+ import { Check, ChevronDown, ChevronUp, Minus } from 'react-feather';
3
+ import { useUID } from 'react-uid';
4
+ import cls from 'classnames';
5
+ import { Popover } from '../../components/Popover';
6
+ import { Link } from '../../components/Link';
7
+ import { TextField } from '../TextField';
8
+ import { useOpenCloseState } from '../../hooks';
9
+ import { TruncatedText } from '../../components/TruncatedText';
10
+ import styles from './CheckableSelectFieldLegacy.module.scss';
11
+ const Checkmark = ({ checked }) => {
12
+ const classNames = cls(styles.checkmark, { [styles.checked]: checked });
13
+ return checked ? React.createElement(Check, { className: classNames }) : React.createElement(Minus, { className: classNames });
14
+ };
15
+ export const CheckableSelectField = (props) => {
16
+ const { options, onChange, value, size = 'small', placeholder = 'Search', placeholderMode = 'normal', label, showAriaLabel, disabled, helperText, className, error, onBlur, name, required, defaultOpen = false, 'data-test': dataTest, allSelectedLabel = 'All selected', noneSelectedLabel = 'None selected', noOptionsMessage = 'No options', id: rootId, filterOptions, searchInputProps = {}, labelClassName, errorClassName, } = props;
17
+ const id = useUID();
18
+ const { isOpen, toggle, close } = useOpenCloseState(defaultOpen);
19
+ const [searchValue, setSearchValue] = useState('');
20
+ const [anchorElement, setAnchorElement] = useState(null);
21
+ const handleKeyDown = useCallback((e) => {
22
+ if (e.key === 'Enter') {
23
+ toggle();
24
+ }
25
+ }, [toggle]);
26
+ const valueSet = useMemo(() => new Set(value), [value]);
27
+ const filteredOptions = useMemo(() => {
28
+ const value = searchValue.toLowerCase();
29
+ return options.filter((option) => {
30
+ if (filterOptions) {
31
+ return filterOptions(option, value);
32
+ }
33
+ return option.label.toLowerCase().includes(value);
34
+ });
35
+ }, [options, searchValue, filterOptions]);
36
+ const getValueLabel = () => {
37
+ if (placeholderMode === 'permanent') {
38
+ return placeholder;
39
+ }
40
+ if (value.length === 0) {
41
+ return noneSelectedLabel;
42
+ }
43
+ if (value.length === options.length) {
44
+ return allSelectedLabel;
45
+ }
46
+ return `${value.length} selected`;
47
+ };
48
+ return (React.createElement(React.Fragment, null,
49
+ React.createElement(TextField, { size: size, name: name, id: rootId || id, onClick: toggle, onKeyDown: handleKeyDown, containerRef: setAnchorElement, onChange: () => null, label: label || '', labelClassName: labelClassName, disabled: disabled, showAriaLabel: showAriaLabel, helperText: helperText, className: cls(className, styles.opener, {
50
+ [styles.withPermanentPlaceholder]: placeholderMode === 'permanent',
51
+ }), error: error, errorClassName: errorClassName, onBlur: onBlur, readOnly: true, required: required, "data-test": `${dataTest}-opener`, value: getValueLabel(), inputTrailingIconLabel: isOpen ? 'Close' : 'Open', inputTrailingIcon: isOpen ? ChevronUp : ChevronDown }),
52
+ React.createElement(Popover, { matchReferenceSize: true, anchorElement: anchorElement, open: isOpen, onClose: close, className: styles.panel },
53
+ React.createElement("div", { className: styles.dropdown, "data-test": `${dataTest}-dropdown` },
54
+ React.createElement("div", { className: styles.search },
55
+ searchInputProps.startAdornment,
56
+ React.createElement(TextField, { size: size, iconSize: "medium", className: styles.searchField, name: "checkable-select-search", "data-test": `${dataTest}-search`, onChange: (e) => setSearchValue(e.target.value), value: searchValue, label: "", disabled: disabled, placeholder: placeholder }),
57
+ searchInputProps.endAdornment),
58
+ React.createElement("div", { className: styles.options }, filteredOptions.length > 0 ? (filteredOptions.map((option) => {
59
+ const isChecked = valueSet.has(option.value);
60
+ return (React.createElement("button", { type: "button", key: option.value, name: option.label, "data-test": `${dataTest}-option`, className: cls(styles.option, { [styles.optionChecked]: isChecked }), onClick: () => {
61
+ if (isChecked) {
62
+ onChange(value.filter((item) => item !== option.value));
63
+ }
64
+ else {
65
+ onChange([...value, option.value]);
66
+ }
67
+ } },
68
+ React.createElement(Checkmark, { checked: isChecked }),
69
+ React.createElement(TruncatedText, { text: option.label })));
70
+ })) : (React.createElement("span", { className: styles.noOptionsMessage, "data-test": `${dataTest}-no-options-message` }, noOptionsMessage))),
71
+ React.createElement("div", { className: styles.bottom },
72
+ React.createElement(Link, { component: "button", "data-test": `${dataTest}-select-all`, onClick: () => {
73
+ onChange(filteredOptions.map(({ value }) => value));
74
+ } }, "Select all"),
75
+ React.createElement(Link, { component: "button", "data-test": `${dataTest}-select-none`, onClick: () => onChange([]) }, "Select none"))))));
76
+ };
77
+ //# sourceMappingURL=CheckableSelectField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckableSelectField.js","sourceRoot":"","sources":["../../../src/old/Select/CheckableSelectField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from 'react';
2
+ import { CheckableSelectFieldExtraProps } from './CheckableSelectField';
3
+ import { FieldValidatorGeneric } from '../../utils/formik';
4
+ import { ExtractKeysOfValueType } from '../../utils/types';
5
+ export type CheckableSelectFieldFormikProps<V extends object, OV = string> = CheckableSelectFieldExtraProps<OV> & {
6
+ name: ExtractKeysOfValueType<V, OV[]>;
7
+ validate?: FieldValidatorGeneric<OV[]>;
8
+ onChange?: (value: OV[]) => void;
9
+ };
10
+ export declare const CheckableSelectFieldFormik: <V extends object, OV extends string | number = string>({ name, validate, onChange, ...props }: CheckableSelectFieldFormikProps<V, OV>) => ReactElement;
@@ -0,0 +1,19 @@
1
+ import React, { useCallback, useMemo } from 'react';
2
+ import { useField } from 'formik';
3
+ import { CheckableSelectField } from './CheckableSelectField';
4
+ import { formikTouchAndUpdate, getFieldError } from '../../utils/formik';
5
+ export const CheckableSelectFieldFormik = ({ name, validate, onChange, ...props }) => {
6
+ const [{ value, onBlur }, meta, { setValue, setTouched }] = useField({
7
+ name,
8
+ validate,
9
+ });
10
+ const setFormikValue = useMemo(() => formikTouchAndUpdate(setValue, setTouched), [setValue, setTouched]);
11
+ const handleChange = useCallback((newValue) => {
12
+ if (onChange) {
13
+ onChange(newValue);
14
+ }
15
+ setFormikValue(newValue);
16
+ }, [setFormikValue, onChange]);
17
+ return (React.createElement(CheckableSelectField, { ...props, name: name, value: value, onChange: handleChange, onBlur: onBlur, error: getFieldError(meta) }));
18
+ };
19
+ //# sourceMappingURL=CheckableSelectFieldFormik.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckableSelectFieldFormik.js","sourceRoot":"","sources":["../../../src/old/Select/CheckableSelectFieldFormik.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAgB,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEjC,OAAO,EAAkC,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7F,OAAO,EAAyB,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAS/F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAwD,EAChG,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EAC+B,EAAgB,EAAE;IACzD,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAO;QACzE,IAAI;QACJ,QAAQ;KACT,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAO,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAC9G,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,QAAc,EAAE,EAAE;QACjB,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpB,CAAC;QAED,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC1B,CAAC,EACD,CAAC,cAAc,EAAE,QAAQ,CAAC,CAC3B,CAAA;IAED,OAAO,CACL,oBAAC,oBAAoB,OAAS,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAI,CACtI,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { ReactNode } from 'react';
2
+ import { components as rsComponents } from 'react-select';
3
+ export type RenderMenuFooterFunction = () => ReactNode;
4
+ declare const components: Partial<typeof rsComponents>;
5
+ export { components };
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ import { ChevronDown, X } from 'react-feather';
3
+ import { components as rsComponents } from 'react-select';
4
+ import cn from 'classnames';
5
+ import { Icon } from '../../components/Icon';
6
+ import { IconButton } from '../IconButton';
7
+ import { TruncatedText } from '../../components/TruncatedText';
8
+ import styles from './CommonLegacy.module.scss';
9
+ const DropdownIndicator = ({ selectProps }) => (React.createElement(Icon, { icon: ChevronDown, ariaHidden: true, size: "medium", className: cn(styles.chevron, { [styles.open]: selectProps.menuIsOpen, [styles.disabled]: selectProps.isDisabled }) }));
10
+ // innerProps set event handling
11
+ const ClearIndicator = ({ innerProps }) => (
12
+ // Visually impaired people will use the keyboard (backspace) to remove the value. We do not want to confuse them by allowing to focus this button.
13
+ // @ts-ignore
14
+ React.createElement(IconButton, { ...innerProps, icon: X, ariaHidden: true, variant: "ghost", className: styles.clear, tabIndex: -1 }));
15
+ const Input = (innerProps) => {
16
+ // autoComplete='off' is hard-coded inside SelectField, but doesn't work in Chrome.
17
+ // Having an invalid value hard-coded disabled it in all browsers.
18
+ const props = {
19
+ ...innerProps,
20
+ autoComplete: 'chrome-off',
21
+ };
22
+ return React.createElement(rsComponents.Input, { ...props });
23
+ };
24
+ const isRenderMenuFooterFunction = (fn) => typeof fn === 'function';
25
+ const MenuList = (props) => {
26
+ // @ts-ignore
27
+ const { renderMenuFooter } = props.selectProps;
28
+ return (React.createElement(React.Fragment, null,
29
+ React.createElement(rsComponents.MenuList, { ...props }),
30
+ isRenderMenuFooterFunction(renderMenuFooter) && renderMenuFooter()));
31
+ };
32
+ const ValueContainer = (props) => {
33
+ var _a;
34
+ return (React.createElement("div", { className: cn(props.className, styles.valueContainer) },
35
+ React.createElement(TruncatedText, { text: props.children }),
36
+ React.createElement("span", { className: cn(styles.trailingNote, `${props.selectProps.classNamePrefix || ''}__trailing-note`) }, (_a = props.data) === null || _a === void 0 ? void 0 : _a.trailingNote)));
37
+ };
38
+ const Option = (props) => (React.createElement(rsComponents.Option, { ...props },
39
+ React.createElement(ValueContainer, { ...props, className: `${props.selectProps.classNamePrefix || ''}__value-container` }, props.label)));
40
+ // @ts-ignore
41
+ const IndicatorSeparator = () => null;
42
+ const SingleValue = ({ children, ...props }) => (React.createElement(rsComponents.SingleValue, { ...props },
43
+ React.createElement(ValueContainer, { ...props }, children)));
44
+ const components = {
45
+ DropdownIndicator,
46
+ ClearIndicator,
47
+ Input,
48
+ MenuList,
49
+ IndicatorSeparator,
50
+ Option,
51
+ SingleValue,
52
+ };
53
+ export { components };
54
+ //# sourceMappingURL=Common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/old/Select/Common.tsx"],"names":[],"mappings":"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"}