@laerdal/life-react-components 1.0.1-dev.22.full → 1.0.1-dev.29.full

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 (176) hide show
  1. package/dist/esm/Banners/Banner.js +11 -8
  2. package/dist/esm/Banners/Banner.js.map +1 -1
  3. package/dist/esm/Button/Anchor.js +76 -0
  4. package/dist/esm/Button/Anchor.js.map +1 -0
  5. package/dist/esm/Button/BackButton.js +1 -1
  6. package/dist/esm/Button/BackButton.js.map +1 -1
  7. package/dist/esm/Button/Button.js +46 -19
  8. package/dist/esm/Button/Button.js.map +1 -1
  9. package/dist/esm/Button/DualFunctionButton.js +111 -0
  10. package/dist/esm/Button/DualFunctionButton.js.map +1 -0
  11. package/dist/esm/Button/Iconbutton.js +21 -1
  12. package/dist/esm/Button/Iconbutton.js.map +1 -1
  13. package/dist/esm/Button/__tests__/Button.test.js +2 -1
  14. package/dist/esm/Button/__tests__/Button.test.js.map +1 -1
  15. package/dist/esm/Button/index.js +1 -0
  16. package/dist/esm/Button/index.js.map +1 -1
  17. package/dist/esm/Dropdown/BasicDropdown.js +60 -127
  18. package/dist/esm/Dropdown/BasicDropdown.js.map +1 -1
  19. package/dist/esm/Dropdown/ChipDropdownInput.js +41 -132
  20. package/dist/esm/Dropdown/ChipDropdownInput.js.map +1 -1
  21. package/dist/esm/Dropdown/CommonStyling.js +20 -15
  22. package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
  23. package/dist/esm/Dropdown/DropdownButton.js +2 -2
  24. package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
  25. package/dist/esm/Dropdown/DropdownContent.js +424 -0
  26. package/dist/esm/Dropdown/DropdownContent.js.map +1 -0
  27. package/dist/esm/Dropdown/DropdownFilter.js +42 -151
  28. package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
  29. package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js +15 -17
  30. package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  31. package/dist/esm/InputFields/Checkbox.js +19 -10
  32. package/dist/esm/InputFields/Checkbox.js.map +1 -1
  33. package/dist/esm/InputFields/QuickSearch.js +22 -12
  34. package/dist/esm/InputFields/QuickSearch.js.map +1 -1
  35. package/dist/esm/InputFields/RadioButton.js +18 -11
  36. package/dist/esm/InputFields/RadioButton.js.map +1 -1
  37. package/dist/esm/InputFields/components/SearchBarInput.js +1 -1
  38. package/dist/esm/InputFields/components/SearchBarInput.js.map +1 -1
  39. package/dist/esm/Modals/ModalDialog.js +14 -14
  40. package/dist/esm/Modals/ModalDialog.js.map +1 -1
  41. package/dist/esm/Modals/ModalStyles.js +3 -2
  42. package/dist/esm/Modals/ModalStyles.js.map +1 -1
  43. package/dist/esm/Paginator/Paginator.js +18 -8
  44. package/dist/esm/Paginator/Paginator.js.map +1 -1
  45. package/dist/esm/Paginator/__tests__/Paginator.test.js +1 -1
  46. package/dist/esm/Paginator/__tests__/Paginator.test.js.map +1 -1
  47. package/dist/esm/Table/Table.js +2 -1
  48. package/dist/esm/Table/Table.js.map +1 -1
  49. package/dist/esm/Tabs/TabLink.js +1 -1
  50. package/dist/esm/Tabs/TabLink.js.map +1 -1
  51. package/dist/esm/Toasters/Toast.js +2 -1
  52. package/dist/esm/Toasters/Toast.js.map +1 -1
  53. package/dist/esm/types.js +8 -0
  54. package/dist/esm/types.js.map +1 -1
  55. package/dist/js/Banners/Banner.js +13 -11
  56. package/dist/js/Banners/Banner.js.map +1 -1
  57. package/dist/js/Button/Anchor.d.ts +7 -0
  58. package/dist/js/Button/Anchor.js +66 -0
  59. package/dist/js/Button/Anchor.js.map +1 -0
  60. package/dist/js/Button/BackButton.js +1 -1
  61. package/dist/js/Button/BackButton.js.map +1 -1
  62. package/dist/js/Button/Button.d.ts +4 -1
  63. package/dist/js/Button/Button.js +44 -18
  64. package/dist/js/Button/Button.js.map +1 -1
  65. package/dist/js/Button/DualFunctionButton.d.ts +12 -0
  66. package/dist/js/Button/DualFunctionButton.js +148 -0
  67. package/dist/js/Button/DualFunctionButton.js.map +1 -0
  68. package/dist/js/Button/Iconbutton.d.ts +1 -0
  69. package/dist/js/Button/Iconbutton.js +23 -3
  70. package/dist/js/Button/Iconbutton.js.map +1 -1
  71. package/dist/js/Button/__tests__/Button.test.js +3 -1
  72. package/dist/js/Button/__tests__/Button.test.js.map +1 -1
  73. package/dist/js/Button/index.d.ts +1 -0
  74. package/dist/js/Button/index.js +8 -0
  75. package/dist/js/Button/index.js.map +1 -1
  76. package/dist/js/Dropdown/BasicDropdown.d.ts +9 -2
  77. package/dist/js/Dropdown/BasicDropdown.js +67 -133
  78. package/dist/js/Dropdown/BasicDropdown.js.map +1 -1
  79. package/dist/js/Dropdown/ChipDropdownInput.js +45 -138
  80. package/dist/js/Dropdown/ChipDropdownInput.js.map +1 -1
  81. package/dist/js/Dropdown/CommonStyling.d.ts +6 -2
  82. package/dist/js/Dropdown/CommonStyling.js +17 -6
  83. package/dist/js/Dropdown/CommonStyling.js.map +1 -1
  84. package/dist/js/Dropdown/DropdownButton.js +1 -1
  85. package/dist/js/Dropdown/DropdownButton.js.map +1 -1
  86. package/dist/js/Dropdown/DropdownContent.d.ts +45 -0
  87. package/dist/js/Dropdown/DropdownContent.js +476 -0
  88. package/dist/js/Dropdown/DropdownContent.js.map +1 -0
  89. package/dist/js/Dropdown/DropdownFilter.js +59 -186
  90. package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
  91. package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js +7 -17
  92. package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  93. package/dist/js/InputFields/Checkbox.d.ts +5 -3
  94. package/dist/js/InputFields/Checkbox.js +16 -9
  95. package/dist/js/InputFields/Checkbox.js.map +1 -1
  96. package/dist/js/InputFields/QuickSearch.js +24 -6
  97. package/dist/js/InputFields/QuickSearch.js.map +1 -1
  98. package/dist/js/InputFields/RadioButton.d.ts +4 -2
  99. package/dist/js/InputFields/RadioButton.js +15 -10
  100. package/dist/js/InputFields/RadioButton.js.map +1 -1
  101. package/dist/js/InputFields/components/SearchBarInput.js +1 -1
  102. package/dist/js/InputFields/components/SearchBarInput.js.map +1 -1
  103. package/dist/js/Modals/ModalDialog.d.ts +2 -1
  104. package/dist/js/Modals/ModalDialog.js +15 -14
  105. package/dist/js/Modals/ModalDialog.js.map +1 -1
  106. package/dist/js/Modals/ModalStyles.d.ts +4 -3
  107. package/dist/js/Modals/ModalStyles.js +4 -2
  108. package/dist/js/Modals/ModalStyles.js.map +1 -1
  109. package/dist/js/Paginator/Paginator.js +7 -5
  110. package/dist/js/Paginator/Paginator.js.map +1 -1
  111. package/dist/js/Paginator/__tests__/Paginator.test.js +1 -1
  112. package/dist/js/Paginator/__tests__/Paginator.test.js.map +1 -1
  113. package/dist/js/Table/Table.js +3 -1
  114. package/dist/js/Table/Table.js.map +1 -1
  115. package/dist/js/Tabs/TabLink.js +1 -1
  116. package/dist/js/Tabs/TabLink.js.map +1 -1
  117. package/dist/js/Toasters/Toast.js +1 -1
  118. package/dist/js/Toasters/Toast.js.map +1 -1
  119. package/dist/js/types.d.ts +5 -0
  120. package/dist/js/types.js +10 -1
  121. package/dist/js/types.js.map +1 -1
  122. package/dist/umd/Banners/Banner.js +11 -8
  123. package/dist/umd/Banners/Banner.js.map +1 -1
  124. package/dist/umd/Button/Anchor.js +201 -0
  125. package/dist/umd/Button/Anchor.js.map +1 -0
  126. package/dist/umd/Button/BackButton.js +1 -1
  127. package/dist/umd/Button/BackButton.js.map +1 -1
  128. package/dist/umd/Button/Button.js +48 -22
  129. package/dist/umd/Button/Button.js.map +1 -1
  130. package/dist/umd/Button/DualFunctionButton.js +237 -0
  131. package/dist/umd/Button/DualFunctionButton.js.map +1 -0
  132. package/dist/umd/Button/Iconbutton.js +21 -1
  133. package/dist/umd/Button/Iconbutton.js.map +1 -1
  134. package/dist/umd/Button/__tests__/Button.test.js +5 -5
  135. package/dist/umd/Button/__tests__/Button.test.js.map +1 -1
  136. package/dist/umd/Button/index.js +10 -4
  137. package/dist/umd/Button/index.js.map +1 -1
  138. package/dist/umd/Dropdown/BasicDropdown.js +64 -131
  139. package/dist/umd/Dropdown/BasicDropdown.js.map +1 -1
  140. package/dist/umd/Dropdown/ChipDropdownInput.js +44 -134
  141. package/dist/umd/Dropdown/ChipDropdownInput.js.map +1 -1
  142. package/dist/umd/Dropdown/CommonStyling.js +23 -19
  143. package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
  144. package/dist/umd/Dropdown/DropdownButton.js +1 -1
  145. package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
  146. package/dist/umd/Dropdown/DropdownContent.js +458 -0
  147. package/dist/umd/Dropdown/DropdownContent.js.map +1 -0
  148. package/dist/umd/Dropdown/DropdownFilter.js +47 -155
  149. package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
  150. package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js +18 -21
  151. package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
  152. package/dist/umd/InputFields/Checkbox.js +22 -14
  153. package/dist/umd/InputFields/Checkbox.js.map +1 -1
  154. package/dist/umd/InputFields/QuickSearch.js +22 -12
  155. package/dist/umd/InputFields/QuickSearch.js.map +1 -1
  156. package/dist/umd/InputFields/RadioButton.js +21 -15
  157. package/dist/umd/InputFields/RadioButton.js.map +1 -1
  158. package/dist/umd/InputFields/components/SearchBarInput.js +1 -1
  159. package/dist/umd/InputFields/components/SearchBarInput.js.map +1 -1
  160. package/dist/umd/Modals/ModalDialog.js +17 -18
  161. package/dist/umd/Modals/ModalDialog.js.map +1 -1
  162. package/dist/umd/Modals/ModalStyles.js +6 -6
  163. package/dist/umd/Modals/ModalStyles.js.map +1 -1
  164. package/dist/umd/Paginator/Paginator.js +18 -8
  165. package/dist/umd/Paginator/Paginator.js.map +1 -1
  166. package/dist/umd/Paginator/__tests__/Paginator.test.js +1 -1
  167. package/dist/umd/Paginator/__tests__/Paginator.test.js.map +1 -1
  168. package/dist/umd/Table/Table.js +5 -5
  169. package/dist/umd/Table/Table.js.map +1 -1
  170. package/dist/umd/Tabs/TabLink.js +1 -1
  171. package/dist/umd/Tabs/TabLink.js.map +1 -1
  172. package/dist/umd/Toasters/Toast.js +1 -1
  173. package/dist/umd/Toasters/Toast.js.map +1 -1
  174. package/dist/umd/types.js +8 -0
  175. package/dist/umd/types.js.map +1 -1
  176. package/package.json +1 -1
@@ -4,7 +4,8 @@ import styled from 'styled-components';
4
4
  import { BREAKPOINTS, COLORS } from '../styles';
5
5
  import { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';
6
6
  import { LoadingIndicator } from '../LoadingIndicator';
7
- import { DropdownButton, StyledField, DropdownContent, Dropdown, ButtonDropdownWrapper } from './CommonStyling';
7
+ import { StyledField, Dropdown, ButtonDropdownWrapper } from './CommonStyling';
8
+ import DropdownContent from './DropdownContent';
8
9
  import { AutofilledMessage, WarningMessage } from '../InputFields/styling';
9
10
  import { ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';
10
11
  const InputField = styled.input`
@@ -35,8 +36,6 @@ const InputField = styled.input`
35
36
  }
36
37
  }
37
38
  `;
38
- const MAX_MENU_HEIGHT = 240;
39
- const AVG_OPTION_HEIGHT = 48;
40
39
 
41
40
  const DropdownFilter = ({
42
41
  id,
@@ -60,108 +59,18 @@ const DropdownFilter = ({
60
59
  margin = '4px 0'
61
60
  }) => {
62
61
  const [isOpen, setIsOpen] = React.useState(false);
63
- const [isUp, setIsUp] = React.useState(false);
64
62
  const [isLoading, setIsLoading] = React.useState(false);
65
- const [input, setInput] = React.useState('');
63
+ const [input, setInput] = React.useState(initalValue ?? '');
66
64
  const [placeholderSearch, setPlaceholderSearch] = React.useState(placeholder || '');
67
65
  const [restartFilter, setRestartFilter] = React.useState(false);
68
- const [focused, setFocused] = React.useState(null);
69
- const [currentSearchResult, setCurrentSearchResult] = React.useState(list);
70
- const dropdownContentRef = React.useRef(null);
66
+ const [selectedValues, setSelectedValues] = React.useState([]);
71
67
  const styledFieldRef = React.useRef(null);
72
68
  const inputRef = React.useRef(null);
73
- React.useEffect(() => {
74
- var options = [...list];
75
-
76
- if (!restartFilter && input !== '') {
77
- options = options.filter(option => option.toUpperCase().indexOf(input.toUpperCase()) !== -1);
78
- }
79
-
80
- if (!disableSorting) {
81
- options = options.sort();
82
- }
83
-
84
- setCurrentSearchResult(options);
85
- }, [input, list]);
86
-
87
- const handleClickOutside = e => {
88
- if (dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target)) {
89
- if (isOpen) {
90
- setIsOpen(false);
91
- setFocused(null);
92
-
93
- if (!list.includes(input)) {
94
- setInput('');
95
- setPlaceholderSearch(placeholder || '');
96
- }
97
- }
98
- }
99
- };
100
-
101
- const setNewFocusedElement = index => {
102
- const newFocusedElement = document.getElementById(`${id}_${index}`);
103
-
104
- if (newFocusedElement) {
105
- setFocused(index);
106
- newFocusedElement.focus();
107
- }
108
- };
109
-
110
- const handleKeyDown = e => {
111
- if (isOpen) {
112
- if (e.keyCode === 38) {
113
- e.preventDefault();
114
- var focusedNow = focused;
115
-
116
- if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
117
- focusedNow -= 1;
118
- setNewFocusedElement(focusedNow);
119
- }
120
- } else if (e.keyCode === 40) {
121
- e.preventDefault();
122
- var focusedNow = focused;
123
-
124
- if (focusedNow !== undefined && focusedNow !== null) {
125
- focusedNow++;
126
- } else {
127
- focusedNow = 0;
128
- }
129
-
130
- setNewFocusedElement(focusedNow);
131
- } else if (e.keyCode === 9) {
132
- e.preventDefault();
133
- var focusedNow = focused;
134
-
135
- if (focusedNow !== undefined && focusedNow !== null) {
136
- focusedNow++;
137
- const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);
138
-
139
- if (!newFocusedElement) {
140
- setNewFocusedElement(0);
141
- } else {
142
- setNewFocusedElement(focusedNow);
143
- }
144
- } else {
145
- setNewFocusedElement(0);
146
- }
147
- } else if (e.keyCode === 27) {
148
- setIsOpen(false);
149
- setNewFocusedElement(0);
150
-
151
- if (!list.includes(input)) {
152
- setInput('');
153
- setPlaceholderSearch(placeholder || '');
154
- }
155
-
156
- styledFieldRef.current?.focus();
157
- }
158
- }
159
- };
160
69
 
161
70
  const handleKeyPress = e => {
162
71
  if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {
163
72
  if (e.keyCode === 13 && !locked) {
164
- const matches = currentSearchResult?.filter(c => c.toLowerCase() === input.toLowerCase());
73
+ const matches = list?.filter(c => c.toLowerCase() === input.toLowerCase());
165
74
 
166
75
  if (matches.length === 1 && onSelect) {
167
76
  onSelect(matches[0]);
@@ -169,14 +78,12 @@ const DropdownFilter = ({
169
78
  }
170
79
 
171
80
  setIsOpen(!isOpen);
172
- setNewFocusedElement(0);
173
81
 
174
82
  if (matches.length === 0) {
175
83
  setInput('');
176
84
  }
177
85
  } else if (e.keyCode === 40) {
178
86
  setIsOpen(!isOpen);
179
- setNewFocusedElement(0);
180
87
  }
181
88
  }
182
89
  };
@@ -188,62 +95,26 @@ const DropdownFilter = ({
188
95
  }
189
96
  }, [initalValue]);
190
97
  React.useEffect(() => {
191
- document.addEventListener('keydown', handleKeyDown);
98
+ if (!isOpen && !list.includes(input)) {
99
+ setInput('');
100
+ setPlaceholderSearch(placeholder || '');
101
+ }
102
+ }, [isOpen]);
103
+ React.useEffect(() => {
192
104
  document.addEventListener('keypress', handleKeyPress);
193
- document.addEventListener('click', handleClickOutside);
194
105
  return () => {
195
- document.removeEventListener('keydown', handleKeyDown);
196
106
  document.removeEventListener('keypress', handleKeyPress);
197
- document.removeEventListener('click', handleClickOutside);
198
107
  };
199
108
  });
200
109
  React.useEffect(() => {
201
110
  setIsLoading(false);
202
- }, [input]);
203
- React.useEffect(() => {
204
- determineDropUp();
205
- }, [isOpen]);
206
-
207
- const determineDropUp = () => {
208
- const options = list;
209
- const node = dropdownContentRef.current;
210
- if (!node) return;
211
- const windowHeight = window.innerHeight;
212
- const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);
213
- const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;
214
- setIsUp(instOffsetWithMenu >= windowHeight);
215
- };
216
-
217
- const getElements = () => {
218
- if (locked || disabled) {
219
- return /*#__PURE__*/React.createElement(React.Fragment, null);
220
- }
111
+ if (selectedValues.length > 0 && !list.includes(input)) setSelectedValues([]);
221
112
 
222
- var number = 0;
223
-
224
- if (currentSearchResult.length === 0) {
225
- return /*#__PURE__*/React.createElement(DropdownButton, {
226
- disabled: true
227
- }, /*#__PURE__*/React.createElement("span", null, messageOnNoResults));
113
+ if (list.includes(input)) {
114
+ setSelectedValues([input]);
115
+ onSelect && onSelect(input);
228
116
  }
229
-
230
- return currentSearchResult.map(item => {
231
- return /*#__PURE__*/React.createElement(DropdownButton, {
232
- type: "button",
233
- onClick: e => {
234
- e.preventDefault();
235
- setRestartFilter(true);
236
- setInput(item);
237
- onSelect && onSelect(item);
238
- setIsOpen(false);
239
- setFocused(null);
240
- },
241
- className: item?.toLowerCase() === input?.toLowerCase() ? 'active' : '',
242
- key: item,
243
- id: `${id}_${number++}`
244
- }, /*#__PURE__*/React.createElement("span", null, item));
245
- });
246
- };
117
+ }, [input]);
247
118
 
248
119
  const renderStandardDropdown = () => {
249
120
  return /*#__PURE__*/React.createElement(StyledField, {
@@ -295,7 +166,7 @@ const DropdownFilter = ({
295
166
  color: COLORS.neutral_600
296
167
  }) : null, /*#__PURE__*/React.createElement("div", {
297
168
  onClick: () => setIsOpen(!isOpen),
298
- className: 'icon'
169
+ className: 'dropdown-arrow'
299
170
  }, isOpen && !locked && !disabled ? /*#__PURE__*/React.createElement(ArrowDropUp, {
300
171
  size: "24px",
301
172
  className: size ? size : ''
@@ -328,7 +199,7 @@ const DropdownFilter = ({
328
199
  color: COLORS.neutral_600
329
200
  }) : null, /*#__PURE__*/React.createElement("div", {
330
201
  onClick: () => setIsOpen(!isOpen),
331
- className: 'icon'
202
+ className: 'dropdown-arrow'
332
203
  }, isOpen && !locked && !disabled ? /*#__PURE__*/React.createElement(ArrowDropUp, {
333
204
  size: "24px",
334
205
  className: size ? size : ''
@@ -344,11 +215,31 @@ const DropdownFilter = ({
344
215
  className: size ? size : '',
345
216
  margin: margin
346
217
  }, !isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/React.createElement(DropdownContent, {
218
+ isOpen: isOpen,
219
+ messageOnNoResults: messageOnNoResults ?? '',
220
+ selectedValues: selectedValues,
221
+ setSelectedValues: setSelectedValues,
222
+ hideOnClickOutside: true,
223
+ customizationProps: {
224
+ itemsType: 'normal',
225
+ multiSelect: false,
226
+ action: () => {},
227
+ isButton: isButton ?? false,
228
+ onValueUpdate: values => {
229
+ const val = values[0] ?? '';
230
+ setRestartFilter(true);
231
+ setInput(val);
232
+ },
233
+ items: list.map(x => ({
234
+ value: x
235
+ }))
236
+ },
237
+ filter: !restartFilter ? input : '',
238
+ setIsOpen: setIsOpen,
239
+ alignLeft: false,
347
240
  isButton: isButton || false,
348
- ref: dropdownContentRef,
349
- id: `${id}_dropdowncontent`,
350
- className: [isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')
351
- }, getElements())), activeValidationMessage && /*#__PURE__*/React.createElement(WarningMessage, {
241
+ id: `${id}_dropdowncontent`
242
+ })), activeValidationMessage && /*#__PURE__*/React.createElement(WarningMessage, {
352
243
  className: size || ''
353
244
  }, /*#__PURE__*/React.createElement(TechnicalWarning, {
354
245
  size: "20px",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["React","styled","BREAKPOINTS","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","DropdownButton","StyledField","DropdownContent","Dropdown","ButtonDropdownWrapper","AutofilledMessage","WarningMessage","ComponentMStyling","ComponentSStyling","ComponentTextStyle","InputField","input","Regular","black","Italic","neutral_600","MEDIUM","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","isOpen","setIsOpen","useState","isUp","setIsUp","isLoading","setIsLoading","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","focused","setFocused","currentSearchResult","setCurrentSearchResult","dropdownContentRef","useRef","styledFieldRef","inputRef","useEffect","options","filter","option","toUpperCase","indexOf","sort","handleClickOutside","e","current","contains","target","includes","setNewFocusedElement","index","newFocusedElement","document","getElementById","focus","handleKeyDown","keyCode","preventDefault","focusedNow","undefined","handleKeyPress","matches","c","toLowerCase","length","addEventListener","removeEventListener","determineDropUp","node","windowHeight","window","innerHeight","menuHeight","Math","min","instOffsetWithMenu","getBoundingClientRect","top","getElements","number","map","item","renderStandardDropdown","concat","stopPropagation","floor","random","value","renderButtonDropdown","join","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, StyledField, DropdownContent, Dropdown, ButtonDropdownWrapper } from './CommonStyling';\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\n\nconst InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\ninterface DropdownFilterProps {\n id: string;\n list: string[];\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?: 'small' | 'medium';\n buttonFontSize?: string;\n keepInitialValue?: boolean;\n icon?: React.ReactNode;\n margin?: string;\n}\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\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 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 [isUp, setIsUp] = React.useState<boolean>(false);\n const [isLoading, setIsLoading] = React.useState<Boolean>(false);\n const [input, setInput] = React.useState<string>('');\n const [placeholderSearch, setPlaceholderSearch] = React.useState<string>(placeholder || '');\n const [restartFilter, setRestartFilter] = React.useState<boolean>(false);\n const [focused, setFocused] = React.useState<number | null>(null);\n const [currentSearchResult, setCurrentSearchResult] = React.useState<string[]>(list);\n\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useEffect(() => {\n var options = [...list];\n if (!restartFilter && input !== '') {\n options = options.filter((option) => option.toUpperCase().indexOf(input.toUpperCase()) !== -1);\n }\n if (!disableSorting) {\n options = options.sort();\n }\n setCurrentSearchResult(options);\n }, [input, list]);\n\n const handleClickOutside = (e: any) => {\n if (dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target)) {\n if (isOpen) {\n setIsOpen(false);\n setFocused(null);\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }\n }\n };\n\n const setNewFocusedElement = (index: number) => {\n const newFocusedElement = document.getElementById(`${id}_${index}`);\n if (newFocusedElement) {\n setFocused(index);\n newFocusedElement.focus();\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (isOpen) {\n if (e.keyCode === 38) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {\n focusedNow -= 1;\n setNewFocusedElement(focusedNow);\n }\n } else if (e.keyCode === 40) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n } else {\n focusedNow = 0;\n }\n setNewFocusedElement(focusedNow);\n } else if (e.keyCode === 9) {\n e.preventDefault();\n var focusedNow = focused;\n if (focusedNow !== undefined && focusedNow !== null) {\n focusedNow++;\n const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);\n if (!newFocusedElement) {\n setNewFocusedElement(0);\n } else {\n setNewFocusedElement(focusedNow);\n }\n } else {\n setNewFocusedElement(0);\n }\n } else if (e.keyCode === 27) {\n setIsOpen(false);\n setNewFocusedElement(0);\n if (!list.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n styledFieldRef.current?.focus();\n }\n }\n };\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = currentSearchResult?.filter((c) => c.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0]);\n setInput(matches[0]);\n }\n setIsOpen(!isOpen);\n setNewFocusedElement(0);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\n setNewFocusedElement(0);\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 document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keypress', handleKeyPress);\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keypress', handleKeyPress);\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n }, [input]);\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n const determineDropUp = () => {\n const options = list;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;\n setIsUp(instOffsetWithMenu >= windowHeight);\n };\n\n const getElements = () => {\n if (locked || disabled) {\n return <></>;\n }\n var number = 0;\n if (currentSearchResult.length === 0) {\n return (\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n );\n }\n return currentSearchResult.map((item) => {\n return (\n <DropdownButton\n type=\"button\"\n onClick={(e: any) => {\n e.preventDefault();\n setRestartFilter(true);\n setInput(item);\n onSelect && onSelect(item);\n setIsOpen(false);\n setFocused(null);\n }}\n className={item?.toLowerCase() === input?.toLowerCase() ? 'active' : ''}\n key={item}\n id={`${id}_${number++}`}>\n <span>{item}</span>\n </DropdownButton>\n );\n });\n };\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\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 value={input}\n className={size ? `${size} value` : 'value'}\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 onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\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 {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'icon'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <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 setIsOpen(!isOpen);\n inputRef.current?.focus();\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 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=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'icon'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} margin={margin}>\n {!isButton && renderStandardDropdown()}\n {!!isButton && renderButtonDropdown()}\n {!locked && !disabled && (\n <DropdownContent\n isButton={isButton || false}\n ref={dropdownContentRef}\n id={`${id}_dropdowncontent`}\n className={[isOpen && 'show', isUp && 'up'].filter((e) => !!e).join(' ')}>\n {getElements()}\n </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.js"}
1
+ {"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["React","styled","BREAKPOINTS","COLORS","ArrowDropDown","ArrowDropUp","Information","TechnicalWarning","LoadingIndicator","StyledField","Dropdown","ButtonDropdownWrapper","DropdownContent","AutofilledMessage","WarningMessage","ComponentMStyling","ComponentSStyling","ComponentTextStyle","InputField","input","Regular","black","Italic","neutral_600","MEDIUM","DropdownFilter","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","isOpen","setIsOpen","useState","isLoading","setIsLoading","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","selectedValues","setSelectedValues","styledFieldRef","useRef","inputRef","handleKeyPress","e","current","contains","target","keyCode","matches","filter","c","toLowerCase","length","useEffect","includes","document","addEventListener","removeEventListener","renderStandardDropdown","concat","stopPropagation","focus","Math","floor","random","value","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","map","x","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, StyledField, Dropdown, ButtonDropdownWrapper } from './CommonStyling';\nimport DropdownContent from './DropdownContent';\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\n\nconst InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\ninterface DropdownFilterProps {\n id: string;\n list: string[];\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?: 'small' | 'medium';\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 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\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13 && !locked) {\n const matches = list?.filter((c) => c.toLowerCase() === input.toLowerCase());\n if (matches.length === 1 && onSelect) {\n onSelect(matches[0]);\n setInput(matches[0]);\n }\n setIsOpen(!isOpen);\n if (matches.length === 0) {\n setInput('');\n }\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\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.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n document.addEventListener('keypress', handleKeyPress);\n return () => {\n document.removeEventListener('keypress', handleKeyPress);\n };\n });\n\n React.useEffect(() => {\n setIsLoading(false);\n if (selectedValues.length > 0 && !list.includes(input))\n setSelectedValues([]);\n\n if(list.includes(input))\n {\n setSelectedValues([input]);\n onSelect && onSelect(input);\n }\n }, [input]);\n\n\n const renderStandardDropdown = () => {\n return (\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '')}\n onClick={(e: any) => {\n e.stopPropagation();\n setIsOpen(!isOpen);\n inputRef.current?.focus();\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n fontSize={buttonFontSize}\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 value={input}\n className={size ? `${size} value` : 'value'}\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 onClick={(e: any) => {\n if (!locked && !disabled) {\n e.stopPropagation();\n setIsOpen(!isOpen);\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 {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <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 setIsOpen(!isOpen);\n inputRef.current?.focus();\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 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=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'dropdown-arrow'}>\n {isOpen && !locked && !disabled ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n </ButtonDropdownWrapper>\n );\n\n return (\n <>\n <Dropdown isButton={isButton || false} disabled={disabled} locked={locked} className={size ? size : ''} 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 hideOnClickOutside={true}\n customizationProps={{\n itemsType: 'normal',\n multiSelect: false,\n action: () => {},\n isButton: isButton ?? false,\n onValueUpdate: (values: string[]) => {\n const val = values[0] ?? '';\n setRestartFilter(true);\n setInput(val);\n },\n items: list.map(x => ({ value: x }))\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.js"}
@@ -5,6 +5,7 @@ import { Button } from '../../Button';
5
5
  import { COLORS, ComponentTextStyle } from '../../styles';
6
6
  import Avatar, { AvatarContainer } from '../Avatar';
7
7
  import MenuLink from './MenuLink';
8
+ import { Size } from '../../types';
8
9
  import { flowDown, UserMenuSectionListStyling } from '../mobile/CommonStyles';
9
10
  import { ComponentXSStyling, HeadlineXXSStyling } from '../../styles/typography';
10
11
  const Menu = styled.ul`
@@ -26,6 +27,15 @@ const Menu = styled.ul`
26
27
  .open & {
27
28
  display: block;
28
29
  }
30
+
31
+ .sign-out{
32
+ width: 90%;
33
+ box-sizing: border-box;
34
+ display: flex;
35
+ justify-content: center;
36
+ align-items: center;
37
+ margin: 8px auto 12px auto;
38
+ }
29
39
  `;
30
40
  const MenuSection = styled.li`
31
41
  padding: 8px 0;
@@ -56,19 +66,19 @@ const MenuSectionList = styled.ul`
56
66
  `;
57
67
  const StyledAvatarContainer = styled(AvatarContainer)`
58
68
  margin: 25px 0 0 25px;
69
+ pointer-events: none;
59
70
  `;
60
71
  const AvatarAndName = styled.div`
61
72
  display: flex;
62
73
  flex-direction: row;
63
74
 
64
75
  h5 {
65
- margin: 27px 0 0 20px;
76
+ margin: 28px 0 0 20px;
66
77
  ${HeadlineXXSStyling(COLORS.neutral_600)}
67
78
  }
68
79
  span {
69
- margin: -5px 0 0 20px;
80
+ margin: 0 0 0 20px;
70
81
  ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}
71
- top: -2px;
72
82
  }
73
83
  `;
74
84
  const NameAndEmail = styled.div`
@@ -149,24 +159,12 @@ const UserMenu = ({
149
159
  onClick: element?.onClick
150
160
  })), signOut && /*#__PURE__*/React.createElement(Button, {
151
161
  width: "90%",
152
- className: "UserMenuLink",
162
+ className: "UserMenuLink sign-out",
153
163
  variant: "secondary",
154
- size: "big",
164
+ size: Size.Large,
155
165
  onClick: e => {
156
166
  e.preventDefault();
157
167
  signOut(e);
158
- },
159
- style: {
160
- fontSize: '19px',
161
- lineHeight: '23px',
162
- boxSizing: 'border-box',
163
- borderRadius: '8px',
164
- height: '56px',
165
- display: 'flex',
166
- justifyContent: 'center',
167
- alignItems: 'center',
168
- margin: '8px auto 12px auto',
169
- width: '90%'
170
168
  }
171
169
  }, signOutLabel))));
172
170
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/GlobalNavigationBar/UserMenu/UserMenu.tsx"],"names":["React","styled","Button","COLORS","ComponentTextStyle","Avatar","AvatarContainer","MenuLink","flowDown","UserMenuSectionListStyling","ComponentXSStyling","HeadlineXXSStyling","Menu","ul","white","neutral_200","MenuSection","li","neutral_100","MenuSectionList","StyledAvatarContainer","AvatarAndName","div","neutral_600","Regular","NameAndEmail","OrganizationName","span","Bold","UserMenu","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","primary_500","length","map","element","to","label","icon","onClick","isExternal","preventDefault","fontSize","lineHeight","boxSizing","borderRadius","height","display","justifyContent","alignItems","margin","width"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../../Button';\nimport {COLORS, ComponentTextStyle} from '../../styles';\nimport Avatar, {AvatarContainer} from '../Avatar';\nimport MenuLink from './MenuLink';\nimport {UserMenuItem} from '../../types';\nimport {flowDown, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {ComponentXSStyling, HeadlineXXSStyling} from '../../styles/typography';\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n min-width: 312px;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: 100;\n\n .open & {\n display: block;\n }\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ${COLORS.neutral_100};\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\nconst StyledAvatarContainer = styled(AvatarContainer)`\n margin: 25px 0 0 25px;\n`;\n\nconst AvatarAndName = styled.div`\n display: flex;\n flex-direction: row;\n\n h5 {\n margin: 27px 0 0 20px;\n ${HeadlineXXSStyling(COLORS.neutral_600)}\n }\n span {\n margin: -5px 0 0 20px;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n top: -2px;\n }\n`;\n\nconst NameAndEmail = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst OrganizationName = styled.span`\n margin-left: 25px;\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\ninterface Props {\n firstName: string;\n lastName: string;\n email: string;\n organizationName: string;\n clickMenuAction: () => void;\n accountSection?: UserMenuItem[];\n organizationSection?: UserMenuItem[];\n supportSection?: UserMenuItem[];\n signOut?: (e: any) => void;\n signOutLabel?: string;\n}\n\nconst UserMenu = ({ firstName, lastName, email, organizationName, clickMenuAction, accountSection, organizationSection, supportSection, signOut, signOutLabel }: Props) => {\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n return (\n <Menu onClick={clickMenuAction} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <AvatarAndName key=\"AvatarAndNameSection\">\n <StyledAvatarContainer hidePadding={true}>\n <Avatar size={48} firstName={firstName} lastName={lastName} color={COLORS.primary_500} profileMenuLink=\"#TODO\" />\n </StyledAvatarContainer>\n <NameAndEmail>\n <h5 data-hj-suppress>{`${firstName} ${lastName}`}</h5>\n <span data-hj-suppress>{email}</span>\n </NameAndEmail>\n </AvatarAndName>\n {accountSection && accountSection?.length > 0 && (\n <MenuSection key=\"MobileAccountSection\">\n <MenuSectionList>\n {accountSection?.map(element => (\n <MenuLink key={element?.to} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n {organizationSection && organizationSection?.length > 0 && (\n <MenuSection key=\"MobileOrganizationSection\">\n <OrganizationName>{organizationName || ''}</OrganizationName>\n <MenuSectionList>\n {organizationSection?.map(element => (\n <MenuLink key={element?.to} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n <MenuSection key=\"MobileSupportSection\">\n <MenuSectionList>\n {supportSection?.map(element => (\n <MenuLink key={element?.to} isExternal={element.isExternal} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n {signOut && (\n <Button\n width=\"90%\"\n className=\"UserMenuLink\"\n variant=\"secondary\"\n size=\"big\"\n onClick={e => {\n e.preventDefault();\n signOut(e);\n }}\n style={{\n fontSize: '19px',\n lineHeight: '23px',\n boxSizing: 'border-box',\n borderRadius: '8px',\n height: '56px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: '8px auto 12px auto',\n width: '90%',\n }}>\n {signOutLabel}\n </Button>\n )}\n </MenuSectionList>\n </MenuSection>\n </Menu>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.js"}
1
+ {"version":3,"sources":["../../../../src/GlobalNavigationBar/UserMenu/UserMenu.tsx"],"names":["React","styled","Button","COLORS","ComponentTextStyle","Avatar","AvatarContainer","MenuLink","Size","flowDown","UserMenuSectionListStyling","ComponentXSStyling","HeadlineXXSStyling","Menu","ul","white","neutral_200","MenuSection","li","neutral_100","MenuSectionList","StyledAvatarContainer","AvatarAndName","div","neutral_600","Regular","NameAndEmail","OrganizationName","span","Bold","UserMenu","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","useEffect","handleKeyPress","e","keyCode","document","addEventListener","removeEventListener","primary_500","length","map","element","to","label","icon","onClick","isExternal","Large","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {Button} from '../../Button';\nimport {COLORS, ComponentTextStyle} from '../../styles';\nimport Avatar, {AvatarContainer} from '../Avatar';\nimport MenuLink from './MenuLink';\nimport { UserMenuItem, Size } from '../../types';\nimport {flowDown, UserMenuSectionListStyling} from '../mobile/CommonStyles';\nimport {ComponentXSStyling, HeadlineXXSStyling} from '../../styles/typography';\n\nconst Menu = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: ${COLORS.white};\n box-sizing: border-box;\n display: none;\n min-width: 312px;\n -webkit-animation: ${flowDown} 0.2s ease-in-out;\n animation: ${flowDown} 0.2s ease-in-out;\n position: absolute;\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n border: 1px solid ${COLORS.neutral_200};\n z-index: 100;\n\n .open & {\n display: block;\n }\n \n .sign-out{\n width: 90%;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 8px auto 12px auto;\n }\n`;\n\nconst MenuSection = styled.li`\n padding: 8px 0;\n position: relative;\n\n &:not(:first-of-type)::before {\n content: '';\n position: absolute;\n background: ${COLORS.neutral_100};\n height: 1px;\n top: 0;\n left: 16px;\n right: 16px;\n }\n\n .disabled-link {\n color: #21212150;\n pointer-events: none;\n key-events: none;\n }\n`;\n\nconst MenuSectionList = styled.ul`\n list-style: none;\n margin: 0;\n padding: 0;\n\n ${UserMenuSectionListStyling};\n`;\n\nconst StyledAvatarContainer = styled(AvatarContainer)`\n margin: 25px 0 0 25px;\n pointer-events: none;\n`;\n\nconst AvatarAndName = styled.div`\n display: flex;\n flex-direction: row;\n\n h5 {\n margin: 28px 0 0 20px;\n ${HeadlineXXSStyling(COLORS.neutral_600)}\n }\n span {\n margin: 0 0 0 20px;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n }\n`;\n\nconst NameAndEmail = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst OrganizationName = styled.span`\n margin-left: 25px;\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n`;\n\ninterface Props {\n firstName: string;\n lastName: string;\n email: string;\n organizationName: string;\n clickMenuAction: () => void;\n accountSection?: UserMenuItem[];\n organizationSection?: UserMenuItem[];\n supportSection?: UserMenuItem[];\n signOut?: (e: any) => void;\n signOutLabel?: string;\n}\n\nconst UserMenu = ({ firstName, lastName, email, organizationName, clickMenuAction, accountSection, organizationSection, supportSection, signOut, signOutLabel }: Props) => {\n React.useEffect(() => {\n function handleKeyPress(e: any) {\n if (e.keyCode === 27) {\n clickMenuAction();\n }\n }\n\n document.addEventListener('keydown', handleKeyPress, false);\n return () => {\n document.removeEventListener('keydown', handleKeyPress, false);\n };\n }, [clickMenuAction]);\n\n return (\n <Menu onClick={clickMenuAction} role=\"menu\" aria-labelledby=\"UserMenuButton\">\n <AvatarAndName key=\"AvatarAndNameSection\">\n <StyledAvatarContainer hidePadding={true}>\n <Avatar size={48} firstName={firstName} lastName={lastName} color={COLORS.primary_500} profileMenuLink=\"#TODO\" />\n </StyledAvatarContainer>\n <NameAndEmail>\n <h5 data-hj-suppress>{`${firstName} ${lastName}`}</h5>\n <span data-hj-suppress>{email}</span>\n </NameAndEmail>\n </AvatarAndName>\n {accountSection && accountSection?.length > 0 && (\n <MenuSection key=\"MobileAccountSection\">\n <MenuSectionList>\n {accountSection?.map(element => (\n <MenuLink key={element?.to} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n {organizationSection && organizationSection?.length > 0 && (\n <MenuSection key=\"MobileOrganizationSection\">\n <OrganizationName>{organizationName || ''}</OrganizationName>\n <MenuSectionList>\n {organizationSection?.map(element => (\n <MenuLink key={element?.to} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n </MenuSectionList>\n </MenuSection>\n )}\n\n <MenuSection key=\"MobileSupportSection\">\n <MenuSectionList>\n {supportSection?.map(element => (\n <MenuLink key={element?.to} isExternal={element.isExternal} to={element?.to} menuText={element?.label} Icon={element?.icon} onClick={element?.onClick} />\n ))}\n {signOut && (\n <Button\n width=\"90%\"\n className=\"UserMenuLink sign-out\"\n variant=\"secondary\"\n size={Size.Large}\n onClick={e => {\n e.preventDefault();\n signOut(e);\n }}>\n {signOutLabel}\n </Button>\n )}\n </MenuSectionList>\n </MenuSection>\n </Menu>\n );\n};\n\nexport default UserMenu;\n"],"file":"UserMenu.js"}
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import styled from 'styled-components';
4
4
  import { CheckboxOff, CheckboxOn, CheckboxSemi } from '../icons/systemicons/SystemIcons';
5
5
  import { COLORS, ComponentTextStyle } from '../styles';
6
+ import { Size } from '../types';
6
7
  import { ComponentLStyling, ComponentMStyling, ComponentSStyling } from '../styles/typography';
7
8
  const StyledCheckBox = styled.div`
8
9
  display: flex;
@@ -17,6 +18,10 @@ const StyledCheckBox = styled.div`
17
18
 
18
19
  color: ${COLORS.black};
19
20
 
21
+ .pointerTransparent {
22
+ pointer-events: none;
23
+ }
24
+
20
25
  .icon {
21
26
  margin: 6px;
22
27
  display: flex;
@@ -103,18 +108,18 @@ const StyledCheckBox = styled.div`
103
108
  }
104
109
  }
105
110
  `;
106
-
107
- const RadioButton = ({
111
+ const Checkbox = /*#__PURE__*/React.forwardRef(({
108
112
  id,
109
113
  selected,
110
114
  select,
111
115
  label,
112
116
  showWarning,
117
+ iconPointerEventsTransparent,
113
118
  disabled,
114
119
  margin,
115
120
  size,
116
121
  semiSelected
117
- }) => {
122
+ }, ref) => {
118
123
  const onKeyPress = e => {
119
124
  if (e.keyCode === 13 && !disabled) {
120
125
  select(!selected);
@@ -129,11 +134,13 @@ const RadioButton = ({
129
134
  select(!selected);
130
135
  };
131
136
 
132
- size = size ?? 'medium';
137
+ size = size ?? Size.Medium;
138
+ console.log('size prop', size.toString().toLowerCase());
133
139
  return /*#__PURE__*/React.createElement(StyledCheckBox, {
134
140
  key: id,
141
+ ref: ref,
135
142
  disabled: disabled,
136
- className: size.concat(disabled ? ' disabled' : ''),
143
+ className: size.toString().toLowerCase().concat(disabled ? ' disabled' : ''),
137
144
  selected: selected,
138
145
  tabIndex: disabled ? -1 : 0,
139
146
  showWarning: showWarning,
@@ -145,18 +152,20 @@ const RadioButton = ({
145
152
  id: id,
146
153
  className: 'icon'
147
154
  }, selected ? /*#__PURE__*/React.createElement(CheckboxOn, {
155
+ className: iconPointerEventsTransparent ? "pointerTransparent" : "",
148
156
  size: "24px"
149
157
  }) : semiSelected ? /*#__PURE__*/React.createElement(CheckboxSemi, {
158
+ className: iconPointerEventsTransparent ? "pointerTransparent" : "",
150
159
  size: "24px"
151
160
  }) : /*#__PURE__*/React.createElement(CheckboxOff, {
161
+ className: iconPointerEventsTransparent ? "pointerTransparent" : "",
152
162
  size: "24px"
153
163
  })), label && /*#__PURE__*/React.createElement("label", {
154
164
  className: 'label',
155
165
  htmlFor: id
156
166
  }, label));
157
- };
158
-
159
- RadioButton.propTypes = {
167
+ });
168
+ Checkbox.propTypes = {
160
169
  id: _pt.string.isRequired,
161
170
  selected: _pt.bool.isRequired,
162
171
  select: _pt.func.isRequired,
@@ -164,8 +173,8 @@ RadioButton.propTypes = {
164
173
  showWarning: _pt.bool,
165
174
  disabled: _pt.bool,
166
175
  margin: _pt.string,
167
- size: _pt.oneOf(['small', 'medium', 'large']),
176
+ iconPointerEventsTransparent: _pt.bool,
168
177
  semiSelected: _pt.bool
169
178
  };
170
- export default RadioButton;
179
+ export default Checkbox;
171
180
  //# sourceMappingURL=Checkbox.js.map