@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.
- package/dist/esm/Banners/Banner.js +11 -8
- package/dist/esm/Banners/Banner.js.map +1 -1
- package/dist/esm/Button/Anchor.js +76 -0
- package/dist/esm/Button/Anchor.js.map +1 -0
- package/dist/esm/Button/BackButton.js +1 -1
- package/dist/esm/Button/BackButton.js.map +1 -1
- package/dist/esm/Button/Button.js +46 -19
- package/dist/esm/Button/Button.js.map +1 -1
- package/dist/esm/Button/DualFunctionButton.js +111 -0
- package/dist/esm/Button/DualFunctionButton.js.map +1 -0
- package/dist/esm/Button/Iconbutton.js +21 -1
- package/dist/esm/Button/Iconbutton.js.map +1 -1
- package/dist/esm/Button/__tests__/Button.test.js +2 -1
- package/dist/esm/Button/__tests__/Button.test.js.map +1 -1
- package/dist/esm/Button/index.js +1 -0
- package/dist/esm/Button/index.js.map +1 -1
- package/dist/esm/Dropdown/BasicDropdown.js +60 -127
- package/dist/esm/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/esm/Dropdown/ChipDropdownInput.js +41 -132
- package/dist/esm/Dropdown/ChipDropdownInput.js.map +1 -1
- package/dist/esm/Dropdown/CommonStyling.js +20 -15
- package/dist/esm/Dropdown/CommonStyling.js.map +1 -1
- package/dist/esm/Dropdown/DropdownButton.js +2 -2
- package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownContent.js +424 -0
- package/dist/esm/Dropdown/DropdownContent.js.map +1 -0
- package/dist/esm/Dropdown/DropdownFilter.js +42 -151
- package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js +15 -17
- package/dist/esm/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
- package/dist/esm/InputFields/Checkbox.js +19 -10
- package/dist/esm/InputFields/Checkbox.js.map +1 -1
- package/dist/esm/InputFields/QuickSearch.js +22 -12
- package/dist/esm/InputFields/QuickSearch.js.map +1 -1
- package/dist/esm/InputFields/RadioButton.js +18 -11
- package/dist/esm/InputFields/RadioButton.js.map +1 -1
- package/dist/esm/InputFields/components/SearchBarInput.js +1 -1
- package/dist/esm/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/esm/Modals/ModalDialog.js +14 -14
- package/dist/esm/Modals/ModalDialog.js.map +1 -1
- package/dist/esm/Modals/ModalStyles.js +3 -2
- package/dist/esm/Modals/ModalStyles.js.map +1 -1
- package/dist/esm/Paginator/Paginator.js +18 -8
- package/dist/esm/Paginator/Paginator.js.map +1 -1
- package/dist/esm/Paginator/__tests__/Paginator.test.js +1 -1
- package/dist/esm/Paginator/__tests__/Paginator.test.js.map +1 -1
- package/dist/esm/Table/Table.js +2 -1
- package/dist/esm/Table/Table.js.map +1 -1
- package/dist/esm/Tabs/TabLink.js +1 -1
- package/dist/esm/Tabs/TabLink.js.map +1 -1
- package/dist/esm/Toasters/Toast.js +2 -1
- package/dist/esm/Toasters/Toast.js.map +1 -1
- package/dist/esm/types.js +8 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/js/Banners/Banner.js +13 -11
- package/dist/js/Banners/Banner.js.map +1 -1
- package/dist/js/Button/Anchor.d.ts +7 -0
- package/dist/js/Button/Anchor.js +66 -0
- package/dist/js/Button/Anchor.js.map +1 -0
- package/dist/js/Button/BackButton.js +1 -1
- package/dist/js/Button/BackButton.js.map +1 -1
- package/dist/js/Button/Button.d.ts +4 -1
- package/dist/js/Button/Button.js +44 -18
- package/dist/js/Button/Button.js.map +1 -1
- package/dist/js/Button/DualFunctionButton.d.ts +12 -0
- package/dist/js/Button/DualFunctionButton.js +148 -0
- package/dist/js/Button/DualFunctionButton.js.map +1 -0
- package/dist/js/Button/Iconbutton.d.ts +1 -0
- package/dist/js/Button/Iconbutton.js +23 -3
- package/dist/js/Button/Iconbutton.js.map +1 -1
- package/dist/js/Button/__tests__/Button.test.js +3 -1
- package/dist/js/Button/__tests__/Button.test.js.map +1 -1
- package/dist/js/Button/index.d.ts +1 -0
- package/dist/js/Button/index.js +8 -0
- package/dist/js/Button/index.js.map +1 -1
- package/dist/js/Dropdown/BasicDropdown.d.ts +9 -2
- package/dist/js/Dropdown/BasicDropdown.js +67 -133
- package/dist/js/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/js/Dropdown/ChipDropdownInput.js +45 -138
- package/dist/js/Dropdown/ChipDropdownInput.js.map +1 -1
- package/dist/js/Dropdown/CommonStyling.d.ts +6 -2
- package/dist/js/Dropdown/CommonStyling.js +17 -6
- package/dist/js/Dropdown/CommonStyling.js.map +1 -1
- package/dist/js/Dropdown/DropdownButton.js +1 -1
- package/dist/js/Dropdown/DropdownButton.js.map +1 -1
- package/dist/js/Dropdown/DropdownContent.d.ts +45 -0
- package/dist/js/Dropdown/DropdownContent.js +476 -0
- package/dist/js/Dropdown/DropdownContent.js.map +1 -0
- package/dist/js/Dropdown/DropdownFilter.js +59 -186
- package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js +7 -17
- package/dist/js/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
- package/dist/js/InputFields/Checkbox.d.ts +5 -3
- package/dist/js/InputFields/Checkbox.js +16 -9
- package/dist/js/InputFields/Checkbox.js.map +1 -1
- package/dist/js/InputFields/QuickSearch.js +24 -6
- package/dist/js/InputFields/QuickSearch.js.map +1 -1
- package/dist/js/InputFields/RadioButton.d.ts +4 -2
- package/dist/js/InputFields/RadioButton.js +15 -10
- package/dist/js/InputFields/RadioButton.js.map +1 -1
- package/dist/js/InputFields/components/SearchBarInput.js +1 -1
- package/dist/js/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/js/Modals/ModalDialog.d.ts +2 -1
- package/dist/js/Modals/ModalDialog.js +15 -14
- package/dist/js/Modals/ModalDialog.js.map +1 -1
- package/dist/js/Modals/ModalStyles.d.ts +4 -3
- package/dist/js/Modals/ModalStyles.js +4 -2
- package/dist/js/Modals/ModalStyles.js.map +1 -1
- package/dist/js/Paginator/Paginator.js +7 -5
- package/dist/js/Paginator/Paginator.js.map +1 -1
- package/dist/js/Paginator/__tests__/Paginator.test.js +1 -1
- package/dist/js/Paginator/__tests__/Paginator.test.js.map +1 -1
- package/dist/js/Table/Table.js +3 -1
- package/dist/js/Table/Table.js.map +1 -1
- package/dist/js/Tabs/TabLink.js +1 -1
- package/dist/js/Tabs/TabLink.js.map +1 -1
- package/dist/js/Toasters/Toast.js +1 -1
- package/dist/js/Toasters/Toast.js.map +1 -1
- package/dist/js/types.d.ts +5 -0
- package/dist/js/types.js +10 -1
- package/dist/js/types.js.map +1 -1
- package/dist/umd/Banners/Banner.js +11 -8
- package/dist/umd/Banners/Banner.js.map +1 -1
- package/dist/umd/Button/Anchor.js +201 -0
- package/dist/umd/Button/Anchor.js.map +1 -0
- package/dist/umd/Button/BackButton.js +1 -1
- package/dist/umd/Button/BackButton.js.map +1 -1
- package/dist/umd/Button/Button.js +48 -22
- package/dist/umd/Button/Button.js.map +1 -1
- package/dist/umd/Button/DualFunctionButton.js +237 -0
- package/dist/umd/Button/DualFunctionButton.js.map +1 -0
- package/dist/umd/Button/Iconbutton.js +21 -1
- package/dist/umd/Button/Iconbutton.js.map +1 -1
- package/dist/umd/Button/__tests__/Button.test.js +5 -5
- package/dist/umd/Button/__tests__/Button.test.js.map +1 -1
- package/dist/umd/Button/index.js +10 -4
- package/dist/umd/Button/index.js.map +1 -1
- package/dist/umd/Dropdown/BasicDropdown.js +64 -131
- package/dist/umd/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/umd/Dropdown/ChipDropdownInput.js +44 -134
- package/dist/umd/Dropdown/ChipDropdownInput.js.map +1 -1
- package/dist/umd/Dropdown/CommonStyling.js +23 -19
- package/dist/umd/Dropdown/CommonStyling.js.map +1 -1
- package/dist/umd/Dropdown/DropdownButton.js +1 -1
- package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownContent.js +458 -0
- package/dist/umd/Dropdown/DropdownContent.js.map +1 -0
- package/dist/umd/Dropdown/DropdownFilter.js +47 -155
- package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js +18 -21
- package/dist/umd/GlobalNavigationBar/UserMenu/UserMenu.js.map +1 -1
- package/dist/umd/InputFields/Checkbox.js +22 -14
- package/dist/umd/InputFields/Checkbox.js.map +1 -1
- package/dist/umd/InputFields/QuickSearch.js +22 -12
- package/dist/umd/InputFields/QuickSearch.js.map +1 -1
- package/dist/umd/InputFields/RadioButton.js +21 -15
- package/dist/umd/InputFields/RadioButton.js.map +1 -1
- package/dist/umd/InputFields/components/SearchBarInput.js +1 -1
- package/dist/umd/InputFields/components/SearchBarInput.js.map +1 -1
- package/dist/umd/Modals/ModalDialog.js +17 -18
- package/dist/umd/Modals/ModalDialog.js.map +1 -1
- package/dist/umd/Modals/ModalStyles.js +6 -6
- package/dist/umd/Modals/ModalStyles.js.map +1 -1
- package/dist/umd/Paginator/Paginator.js +18 -8
- package/dist/umd/Paginator/Paginator.js.map +1 -1
- package/dist/umd/Paginator/__tests__/Paginator.test.js +1 -1
- package/dist/umd/Paginator/__tests__/Paginator.test.js.map +1 -1
- package/dist/umd/Table/Table.js +5 -5
- package/dist/umd/Table/Table.js.map +1 -1
- package/dist/umd/Tabs/TabLink.js +1 -1
- package/dist/umd/Tabs/TabLink.js.map +1 -1
- package/dist/umd/Toasters/Toast.js +1 -1
- package/dist/umd/Toasters/Toast.js.map +1 -1
- package/dist/umd/types.js +8 -0
- package/dist/umd/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
2
|
if (typeof define === "function" && define.amd) {
|
|
3
|
-
define(["exports", "prop-types", "react", "styled-components", "../styles", "../icons/systemicons/SystemIcons", "../LoadingIndicator", "./CommonStyling", "../InputFields/styling", "../styles/typography"], factory);
|
|
3
|
+
define(["exports", "prop-types", "react", "styled-components", "../styles", "../icons/systemicons/SystemIcons", "../LoadingIndicator", "./CommonStyling", "./DropdownContent", "../InputFields/styling", "../styles/typography"], factory);
|
|
4
4
|
} else if (typeof exports !== "undefined") {
|
|
5
|
-
factory(exports, require("prop-types"), require("react"), require("styled-components"), require("../styles"), require("../icons/systemicons/SystemIcons"), require("../LoadingIndicator"), require("./CommonStyling"), require("../InputFields/styling"), require("../styles/typography"));
|
|
5
|
+
factory(exports, require("prop-types"), require("react"), require("styled-components"), require("../styles"), require("../icons/systemicons/SystemIcons"), require("../LoadingIndicator"), require("./CommonStyling"), require("./DropdownContent"), require("../InputFields/styling"), require("../styles/typography"));
|
|
6
6
|
} else {
|
|
7
7
|
var mod = {
|
|
8
8
|
exports: {}
|
|
9
9
|
};
|
|
10
|
-
factory(mod.exports, global.propTypes, global.react, global.styledComponents, global.styles, global.SystemIcons, global.LoadingIndicator, global.CommonStyling, global.styling, global.typography);
|
|
10
|
+
factory(mod.exports, global.propTypes, global.react, global.styledComponents, global.styles, global.SystemIcons, global.LoadingIndicator, global.CommonStyling, global.DropdownContent, global.styling, global.typography);
|
|
11
11
|
global.undefined = mod.exports;
|
|
12
12
|
}
|
|
13
|
-
})(this, function (exports, _propTypes, _react, _styledComponents, _styles, _SystemIcons, _LoadingIndicator, _CommonStyling, _styling, _typography) {
|
|
13
|
+
})(this, function (exports, _propTypes, _react, _styledComponents, _styles, _SystemIcons, _LoadingIndicator, _CommonStyling, _DropdownContent, _styling, _typography) {
|
|
14
14
|
"use strict";
|
|
15
15
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -23,6 +23,8 @@
|
|
|
23
23
|
|
|
24
24
|
var _styledComponents2 = _interopRequireDefault(_styledComponents);
|
|
25
25
|
|
|
26
|
+
var _DropdownContent2 = _interopRequireDefault(_DropdownContent);
|
|
27
|
+
|
|
26
28
|
function _getRequireWildcardCache(nodeInterop) {
|
|
27
29
|
if (typeof WeakMap !== "function") return null;
|
|
28
30
|
var cacheBabelInterop = new WeakMap();
|
|
@@ -107,8 +109,6 @@
|
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
`;
|
|
110
|
-
const MAX_MENU_HEIGHT = 240;
|
|
111
|
-
const AVG_OPTION_HEIGHT = 48;
|
|
112
112
|
|
|
113
113
|
const DropdownFilter = ({
|
|
114
114
|
id,
|
|
@@ -132,108 +132,18 @@
|
|
|
132
132
|
margin = '4px 0'
|
|
133
133
|
}) => {
|
|
134
134
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
135
|
-
const [isUp, setIsUp] = React.useState(false);
|
|
136
135
|
const [isLoading, setIsLoading] = React.useState(false);
|
|
137
|
-
const [input, setInput] = React.useState('');
|
|
136
|
+
const [input, setInput] = React.useState(initalValue ?? '');
|
|
138
137
|
const [placeholderSearch, setPlaceholderSearch] = React.useState(placeholder || '');
|
|
139
138
|
const [restartFilter, setRestartFilter] = React.useState(false);
|
|
140
|
-
const [
|
|
141
|
-
const [currentSearchResult, setCurrentSearchResult] = React.useState(list);
|
|
142
|
-
const dropdownContentRef = React.useRef(null);
|
|
139
|
+
const [selectedValues, setSelectedValues] = React.useState([]);
|
|
143
140
|
const styledFieldRef = React.useRef(null);
|
|
144
141
|
const inputRef = React.useRef(null);
|
|
145
|
-
React.useEffect(() => {
|
|
146
|
-
var options = [...list];
|
|
147
|
-
|
|
148
|
-
if (!restartFilter && input !== '') {
|
|
149
|
-
options = options.filter(option => option.toUpperCase().indexOf(input.toUpperCase()) !== -1);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
if (!disableSorting) {
|
|
153
|
-
options = options.sort();
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
setCurrentSearchResult(options);
|
|
157
|
-
}, [input, list]);
|
|
158
|
-
|
|
159
|
-
const handleClickOutside = e => {
|
|
160
|
-
if (dropdownContentRef?.current && !dropdownContentRef.current.contains(e.target)) {
|
|
161
|
-
if (isOpen) {
|
|
162
|
-
setIsOpen(false);
|
|
163
|
-
setFocused(null);
|
|
164
|
-
|
|
165
|
-
if (!list.includes(input)) {
|
|
166
|
-
setInput('');
|
|
167
|
-
setPlaceholderSearch(placeholder || '');
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
const setNewFocusedElement = index => {
|
|
174
|
-
const newFocusedElement = document.getElementById(`${id}_${index}`);
|
|
175
|
-
|
|
176
|
-
if (newFocusedElement) {
|
|
177
|
-
setFocused(index);
|
|
178
|
-
newFocusedElement.focus();
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
|
|
182
|
-
const handleKeyDown = e => {
|
|
183
|
-
if (isOpen) {
|
|
184
|
-
if (e.keyCode === 38) {
|
|
185
|
-
e.preventDefault();
|
|
186
|
-
var focusedNow = focused;
|
|
187
|
-
|
|
188
|
-
if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
|
|
189
|
-
focusedNow -= 1;
|
|
190
|
-
setNewFocusedElement(focusedNow);
|
|
191
|
-
}
|
|
192
|
-
} else if (e.keyCode === 40) {
|
|
193
|
-
e.preventDefault();
|
|
194
|
-
var focusedNow = focused;
|
|
195
|
-
|
|
196
|
-
if (focusedNow !== undefined && focusedNow !== null) {
|
|
197
|
-
focusedNow++;
|
|
198
|
-
} else {
|
|
199
|
-
focusedNow = 0;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
setNewFocusedElement(focusedNow);
|
|
203
|
-
} else if (e.keyCode === 9) {
|
|
204
|
-
e.preventDefault();
|
|
205
|
-
var focusedNow = focused;
|
|
206
|
-
|
|
207
|
-
if (focusedNow !== undefined && focusedNow !== null) {
|
|
208
|
-
focusedNow++;
|
|
209
|
-
const newFocusedElement = document.getElementById(`${id}_${focusedNow}`);
|
|
210
|
-
|
|
211
|
-
if (!newFocusedElement) {
|
|
212
|
-
setNewFocusedElement(0);
|
|
213
|
-
} else {
|
|
214
|
-
setNewFocusedElement(focusedNow);
|
|
215
|
-
}
|
|
216
|
-
} else {
|
|
217
|
-
setNewFocusedElement(0);
|
|
218
|
-
}
|
|
219
|
-
} else if (e.keyCode === 27) {
|
|
220
|
-
setIsOpen(false);
|
|
221
|
-
setNewFocusedElement(0);
|
|
222
|
-
|
|
223
|
-
if (!list.includes(input)) {
|
|
224
|
-
setInput('');
|
|
225
|
-
setPlaceholderSearch(placeholder || '');
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
styledFieldRef.current?.focus();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
};
|
|
232
142
|
|
|
233
143
|
const handleKeyPress = e => {
|
|
234
144
|
if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {
|
|
235
145
|
if (e.keyCode === 13 && !locked) {
|
|
236
|
-
const matches =
|
|
146
|
+
const matches = list?.filter(c => c.toLowerCase() === input.toLowerCase());
|
|
237
147
|
|
|
238
148
|
if (matches.length === 1 && onSelect) {
|
|
239
149
|
onSelect(matches[0]);
|
|
@@ -241,14 +151,12 @@
|
|
|
241
151
|
}
|
|
242
152
|
|
|
243
153
|
setIsOpen(!isOpen);
|
|
244
|
-
setNewFocusedElement(0);
|
|
245
154
|
|
|
246
155
|
if (matches.length === 0) {
|
|
247
156
|
setInput('');
|
|
248
157
|
}
|
|
249
158
|
} else if (e.keyCode === 40) {
|
|
250
159
|
setIsOpen(!isOpen);
|
|
251
|
-
setNewFocusedElement(0);
|
|
252
160
|
}
|
|
253
161
|
}
|
|
254
162
|
};
|
|
@@ -260,62 +168,26 @@
|
|
|
260
168
|
}
|
|
261
169
|
}, [initalValue]);
|
|
262
170
|
React.useEffect(() => {
|
|
263
|
-
|
|
171
|
+
if (!isOpen && !list.includes(input)) {
|
|
172
|
+
setInput('');
|
|
173
|
+
setPlaceholderSearch(placeholder || '');
|
|
174
|
+
}
|
|
175
|
+
}, [isOpen]);
|
|
176
|
+
React.useEffect(() => {
|
|
264
177
|
document.addEventListener('keypress', handleKeyPress);
|
|
265
|
-
document.addEventListener('click', handleClickOutside);
|
|
266
178
|
return () => {
|
|
267
|
-
document.removeEventListener('keydown', handleKeyDown);
|
|
268
179
|
document.removeEventListener('keypress', handleKeyPress);
|
|
269
|
-
document.removeEventListener('click', handleClickOutside);
|
|
270
180
|
};
|
|
271
181
|
});
|
|
272
182
|
React.useEffect(() => {
|
|
273
183
|
setIsLoading(false);
|
|
274
|
-
|
|
275
|
-
React.useEffect(() => {
|
|
276
|
-
determineDropUp();
|
|
277
|
-
}, [isOpen]);
|
|
184
|
+
if (selectedValues.length > 0 && !list.includes(input)) setSelectedValues([]);
|
|
278
185
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (!node) return;
|
|
283
|
-
const windowHeight = window.innerHeight;
|
|
284
|
-
const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);
|
|
285
|
-
const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;
|
|
286
|
-
setIsUp(instOffsetWithMenu >= windowHeight);
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
const getElements = () => {
|
|
290
|
-
if (locked || disabled) {
|
|
291
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
186
|
+
if (list.includes(input)) {
|
|
187
|
+
setSelectedValues([input]);
|
|
188
|
+
onSelect && onSelect(input);
|
|
292
189
|
}
|
|
293
|
-
|
|
294
|
-
var number = 0;
|
|
295
|
-
|
|
296
|
-
if (currentSearchResult.length === 0) {
|
|
297
|
-
return /*#__PURE__*/React.createElement(_CommonStyling.DropdownButton, {
|
|
298
|
-
disabled: true
|
|
299
|
-
}, /*#__PURE__*/React.createElement("span", null, messageOnNoResults));
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return currentSearchResult.map(item => {
|
|
303
|
-
return /*#__PURE__*/React.createElement(_CommonStyling.DropdownButton, {
|
|
304
|
-
type: "button",
|
|
305
|
-
onClick: e => {
|
|
306
|
-
e.preventDefault();
|
|
307
|
-
setRestartFilter(true);
|
|
308
|
-
setInput(item);
|
|
309
|
-
onSelect && onSelect(item);
|
|
310
|
-
setIsOpen(false);
|
|
311
|
-
setFocused(null);
|
|
312
|
-
},
|
|
313
|
-
className: item?.toLowerCase() === input?.toLowerCase() ? 'active' : '',
|
|
314
|
-
key: item,
|
|
315
|
-
id: `${id}_${number++}`
|
|
316
|
-
}, /*#__PURE__*/React.createElement("span", null, item));
|
|
317
|
-
});
|
|
318
|
-
};
|
|
190
|
+
}, [input]);
|
|
319
191
|
|
|
320
192
|
const renderStandardDropdown = () => {
|
|
321
193
|
return /*#__PURE__*/React.createElement(_CommonStyling.StyledField, {
|
|
@@ -367,7 +239,7 @@
|
|
|
367
239
|
color: _styles.COLORS.neutral_600
|
|
368
240
|
}) : null, /*#__PURE__*/React.createElement("div", {
|
|
369
241
|
onClick: () => setIsOpen(!isOpen),
|
|
370
|
-
className: '
|
|
242
|
+
className: 'dropdown-arrow'
|
|
371
243
|
}, isOpen && !locked && !disabled ? /*#__PURE__*/React.createElement(_SystemIcons.ArrowDropUp, {
|
|
372
244
|
size: "24px",
|
|
373
245
|
className: size ? size : ''
|
|
@@ -400,7 +272,7 @@
|
|
|
400
272
|
color: _styles.COLORS.neutral_600
|
|
401
273
|
}) : null, /*#__PURE__*/React.createElement("div", {
|
|
402
274
|
onClick: () => setIsOpen(!isOpen),
|
|
403
|
-
className: '
|
|
275
|
+
className: 'dropdown-arrow'
|
|
404
276
|
}, isOpen && !locked && !disabled ? /*#__PURE__*/React.createElement(_SystemIcons.ArrowDropUp, {
|
|
405
277
|
size: "24px",
|
|
406
278
|
className: size ? size : ''
|
|
@@ -415,12 +287,32 @@
|
|
|
415
287
|
locked: locked,
|
|
416
288
|
className: size ? size : '',
|
|
417
289
|
margin: margin
|
|
418
|
-
}, !isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/React.createElement(
|
|
290
|
+
}, !isButton && renderStandardDropdown(), !!isButton && renderButtonDropdown(), !locked && !disabled && /*#__PURE__*/React.createElement(_DropdownContent2.default, {
|
|
291
|
+
isOpen: isOpen,
|
|
292
|
+
messageOnNoResults: messageOnNoResults ?? '',
|
|
293
|
+
selectedValues: selectedValues,
|
|
294
|
+
setSelectedValues: setSelectedValues,
|
|
295
|
+
hideOnClickOutside: true,
|
|
296
|
+
customizationProps: {
|
|
297
|
+
itemsType: 'normal',
|
|
298
|
+
multiSelect: false,
|
|
299
|
+
action: () => {},
|
|
300
|
+
isButton: isButton ?? false,
|
|
301
|
+
onValueUpdate: values => {
|
|
302
|
+
const val = values[0] ?? '';
|
|
303
|
+
setRestartFilter(true);
|
|
304
|
+
setInput(val);
|
|
305
|
+
},
|
|
306
|
+
items: list.map(x => ({
|
|
307
|
+
value: x
|
|
308
|
+
}))
|
|
309
|
+
},
|
|
310
|
+
filter: !restartFilter ? input : '',
|
|
311
|
+
setIsOpen: setIsOpen,
|
|
312
|
+
alignLeft: false,
|
|
419
313
|
isButton: isButton || false,
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
className: [isOpen && 'show', isUp && 'up'].filter(e => !!e).join(' ')
|
|
423
|
-
}, getElements())), activeValidationMessage && /*#__PURE__*/React.createElement(_styling.WarningMessage, {
|
|
314
|
+
id: `${id}_dropdowncontent`
|
|
315
|
+
})), activeValidationMessage && /*#__PURE__*/React.createElement(_styling.WarningMessage, {
|
|
424
316
|
className: size || ''
|
|
425
317
|
}, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|
|
426
318
|
size: "20px",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Dropdown/DropdownFilter.tsx"],"names":["InputField","styled","input","ComponentMStyling","ComponentTextStyle","COLORS","black","ComponentSStyling","BREAKPOINTS","MEDIUM","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","DropdownFilter","React","dropdownContentRef","styledFieldRef","inputRef","options","option","setCurrentSearchResult","handleClickOutside","e","setIsOpen","setFocused","setInput","setPlaceholderSearch","setNewFocusedElement","index","newFocusedElement","document","handleKeyDown","focusedNow","handleKeyPress","matches","currentSearchResult","c","setRestartFilter","setIsLoading","determineDropUp","node","windowHeight","window","menuHeight","Math","instOffsetWithMenu","setIsUp","getElements","number","item","renderStandardDropdown","isOpen","isLoading","neutral_600","renderButtonDropdown","isUp","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":["InputField","styled","input","ComponentMStyling","ComponentTextStyle","COLORS","black","ComponentSStyling","BREAKPOINTS","MEDIUM","id","list","placeholder","onSelect","onInputChange","initalValue","required","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","buttonFontSize","keepInitialValue","icon","margin","DropdownFilter","React","styledFieldRef","inputRef","handleKeyPress","e","matches","c","setInput","setIsOpen","setRestartFilter","setPlaceholderSearch","document","setIsLoading","selectedValues","setSelectedValues","renderStandardDropdown","isOpen","Math","isLoading","neutral_600","renderButtonDropdown","itemsType","multiSelect","action","onValueUpdate","values","val","items","x","value","warning_400"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAAA,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,QAAMA,UAAU,GAAGC,2BAAOC,KAAM;AAChC,IAAIC,mCAAkBC,+BAAD,OAAjBD,EAA8CE,eAA7B,KAAjBF,CAA4D;AAChE;AACA;AACA;AACA;AACA,WAAWE,eAAOC,KAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,mCAAkBH,+BAAD,MAAjBG,EAA6CF,eAA5B,WAAjBE,CAAiE;AACvE;AACA,MAAMC,oBAAYC,MAAO;AACzB,QAAQN,mCAAkBC,+BAAD,MAAjBD,EAA6CE,eAA5B,WAAjBF,CAAiE;AACzE;AACA;AACA,QAAQI,mCAAkBH,+BAAD,MAAjBG,EAA6CF,eAA5B,WAAjBE,CAAiE;AACzE;AACA;AACA,QAAQJ,mCAAkBC,+BAAD,MAAjBD,EAA6CE,eAA5B,WAAjBF,CAAiE;AACzE;AACA;AA1BA,CAAA;;AAmDA,QAAM0B,cAAc,GAAG,CAAC;AAAA,IAAA,EAAA;AAAA,IAAA,IAAA;AAAA,IAAA,WAAA;AAAA,IAAA,QAAA;AAAA,IAAA,aAAA;AAAA,IAAA,WAAA;AAAA,IAAA,QAAA;AAAA,IAAA,cAAA;AAAA,IAAA,kBAAA;AAAA,IAAA,QAAA;AAAA,IAAA,MAAA;AAAA,IAAA,QAAA;AAAA,IAAA,uBAAA;AAAA,IAAA,iBAAA;AAAA,IAAA,IAAA;AAAA,IAAA,cAAA;AAAA,IAAA,gBAAA;AAAA,IAAA,IAAA;AAmBtBD,IAAAA,MAAM,GAAG;AAnBa,GAAD,KAoBI;AACzB,UAAM,CAAA,MAAA,EAAA,SAAA,IAAsBE,KAAK,CAALA,QAAAA,CAA5B,KAA4BA,CAA5B;AACA,UAAM,CAAA,SAAA,EAAA,YAAA,IAA4BA,KAAK,CAALA,QAAAA,CAAlC,KAAkCA,CAAlC;AACA,UAAM,CAAA,KAAA,EAAA,QAAA,IAAoBA,KAAK,CAALA,QAAAA,CAAuBf,WAAW,IAA5D,EAA0Be,CAA1B;AACA,UAAM,CAAA,iBAAA,EAAA,oBAAA,IAA4CA,KAAK,CAALA,QAAAA,CAAuBlB,WAAW,IAApF,EAAkDkB,CAAlD;AACA,UAAM,CAAA,aAAA,EAAA,gBAAA,IAAoCA,KAAK,CAALA,QAAAA,CAA1C,KAA0CA,CAA1C;AACA,UAAM,CAAA,cAAA,EAAA,iBAAA,IAAsCA,KAAK,CAALA,QAAAA,CAA5C,EAA4CA,CAA5C;AAEA,UAAMC,cAAc,GAAGD,KAAK,CAALA,MAAAA,CAAvB,IAAuBA,CAAvB;AACA,UAAME,QAAQ,GAAGF,KAAK,CAALA,MAAAA,CAAjB,IAAiBA,CAAjB;;AAEA,UAAMG,cAAc,GAAIC,CAAD,IAAY;AACjC,UAAIH,cAAc,EAAdA,OAAAA,IAA2BA,cAAc,CAAdA,OAAAA,CAAAA,QAAAA,CAAgCG,CAAC,CAAhE,MAA+BH,CAA/B,EAA0E;AACxE,YAAIG,CAAC,CAADA,OAAAA,KAAAA,EAAAA,IAAoB,CAAxB,MAAA,EAAiC;AAC/B,gBAAMC,OAAO,GAAGxB,IAAI,EAAJA,MAAAA,CAAcyB,CAAD,IAAOA,CAAC,CAADA,WAAAA,OAAoBlC,KAAK,CAA7D,WAAwDA,EAAxCS,CAAhB;;AACA,cAAIwB,OAAO,CAAPA,MAAAA,KAAAA,CAAAA,IAAJ,QAAA,EAAsC;AACpCtB,YAAAA,QAAQ,CAACsB,OAAO,CAAhBtB,CAAgB,CAAR,CAARA;AACAwB,YAAAA,QAAQ,CAACF,OAAO,CAAhBE,CAAgB,CAAR,CAARA;AACD;;AACDC,UAAAA,SAAS,CAAC,CAAVA,MAAS,CAATA;;AACA,cAAIH,OAAO,CAAPA,MAAAA,KAAJ,CAAA,EAA0B;AACxBE,YAAAA,QAAQ,CAARA,EAAQ,CAARA;AACD;AATH,SAAA,MAUO,IAAIH,CAAC,CAADA,OAAAA,KAAJ,EAAA,EAAsB;AAC3BI,UAAAA,SAAS,CAAC,CAAVA,MAAS,CAATA;AACD;AACF;AAfH,KAAA;;AAkBAR,IAAAA,KAAK,CAALA,SAAAA,CAAgB,MAAM;AACpB,UAAIf,WAAW,IAAIA,WAAW,KAA9B,EAAA,EAAuC;AACrCsB,QAAAA,QAAQ,CAARA,WAAQ,CAARA;AACAE,QAAAA,gBAAgB,CAAhBA,IAAgB,CAAhBA;AACD;AAJHT,KAAAA,EAKG,CALHA,WAKG,CALHA;AAOAA,IAAAA,KAAK,CAALA,SAAAA,CAAgB,MAAM;AACpB,UAAI,CAAA,MAAA,IAAW,CAACnB,IAAI,CAAJA,QAAAA,CAAhB,KAAgBA,CAAhB,EAAsC;AACpC0B,QAAAA,QAAQ,CAARA,EAAQ,CAARA;AACAG,QAAAA,oBAAoB,CAAC5B,WAAW,IAAhC4B,EAAoB,CAApBA;AACD;AAJHV,KAAAA,EAKG,CALHA,MAKG,CALHA;AAOAA,IAAAA,KAAK,CAALA,SAAAA,CAAgB,MAAM;AACpBW,MAAAA,QAAQ,CAARA,gBAAAA,CAAAA,UAAAA,EAAAA,cAAAA;AACA,aAAO,MAAM;AACXA,QAAAA,QAAQ,CAARA,mBAAAA,CAAAA,UAAAA,EAAAA,cAAAA;AADF,OAAA;AAFFX,KAAAA;AAOAA,IAAAA,KAAK,CAALA,SAAAA,CAAgB,MAAM;AACpBY,MAAAA,YAAY,CAAZA,KAAY,CAAZA;AACA,UAAIC,cAAc,CAAdA,MAAAA,GAAAA,CAAAA,IAA6B,CAAChC,IAAI,CAAJA,QAAAA,CAAlC,KAAkCA,CAAlC,EACEiC,iBAAiB,CAAjBA,EAAiB,CAAjBA;;AAEF,UAAGjC,IAAI,CAAJA,QAAAA,CAAH,KAAGA,CAAH,EACA;AACEiC,QAAAA,iBAAiB,CAAC,CAAlBA,KAAkB,CAAD,CAAjBA;AACA/B,QAAAA,QAAQ,IAAIA,QAAQ,CAApBA,KAAoB,CAApBA;AACD;AATHiB,KAAAA,EAUG,CAVHA,KAUG,CAVHA;;AAaA,UAAMe,sBAAsB,GAAG,MAAM;AACnC,aAAA,aACE,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AACE,QAAA,GAAG,EADL,cAAA;AAEE,QAAA,SAAS,EAAE,CAACC,MAAM,GAAA,WAAA,GAAP,EAAA,EAAA,MAAA,CAAmCtB,IAAI,GAAA,IAAA,GAFpD,EAEa,CAFb;AAGE,QAAA,OAAO,EAAGU,CAAD,IAAY;AACnBA,UAAAA,CAAC,CAADA,eAAAA;AACAI,UAAAA,SAAS,CAAC,CAAVA,MAAS,CAATA;AACAN,UAAAA,QAAQ,CAARA,OAAAA,EAAAA,KAAAA;AANJ,SAAA;AAQE,QAAA,QAAQ,EAAEb,QAAQ,IAARA,MAAAA,GAAqB,CAArBA,CAAAA,GARZ,CAAA;AASE,QAAA,QAAQ,EAAEA,QAAQ,IATpB,KAAA;AAUE,QAAA,MAAM,EAAEC,MAAM,IAVhB,KAAA;AAWE,QAAA,qBAAqB,EAAE,CAAC,CAX1B,uBAAA;AAYE,QAAA,QAAQ,EAZV,cAAA;AAaE,uBAAc,YAAWV,EAAG;AAb9B,OAAA,EAAA,aAcE,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA;AACE,QAAA,GAAG,EADL,QAAA;AAEE,QAAA,YAAY,EAAE,SAASqC,IAAI,CAAJA,KAAAA,CAAWA,IAAI,CAAJA,MAAAA,KAFpC,YAEyBA,CAFzB;AAGE,QAAA,IAAI,EAHN,QAAA;AAIE,QAAA,WAAW,EAJb,iBAAA;AAKE,QAAA,KAAK,EALP,KAAA;AAME,QAAA,SAAS,EAAEvB,IAAI,GAAI,GAAEA,IAAN,QAAA,GANjB,OAAA;AAOE,QAAA,QAAQ,EAAGU,CAAD,IAAY;AACpB,cAAI,CAAA,MAAA,IAAW,CAAf,QAAA,EAA0B;AACxBK,YAAAA,gBAAgB,CAAhBA,KAAgB,CAAhBA;AACAG,YAAAA,YAAY,CAAZA,IAAY,CAAZA;AACAJ,YAAAA,SAAS,CAATA,IAAS,CAATA;AACAD,YAAAA,QAAQ,CAACH,CAAC,CAADA,MAAAA,CAATG,KAAQ,CAARA;;AACA,gBAAA,aAAA,EAAmB;AACjBvB,cAAAA,aAAa,CAACoB,CAAC,CAADA,MAAAA,CAAAA,KAAAA,IAAdpB,EAAa,CAAbA;AACD;AACF;AAhBL,SAAA;AAkBE,QAAA,OAAO,EAAGoB,CAAD,IAAY;AACnB,cAAI,CAAA,MAAA,IAAW,CAAf,QAAA,EAA0B;AACxBA,YAAAA,CAAC,CAADA,eAAAA;AACAI,YAAAA,SAAS,CAAC,CAAVA,MAAS,CAATA;AACD;AAtBL,SAAA;AAwBE,QAAA,OAAO,EAAE,MAAME,oBAAoB,CAxBrC,EAwBqC,CAxBrC;AAyBE,QAAA,MAAM,EAAE,MAAMA,oBAAoB,CAAC5B,WAAW,IAzBhD,EAyBoC,CAzBpC;AA0BE,QAAA,QAAQ,EA1BV,QAAA;AA2BE,QAAA,QAAQ,EAAEO,QAAQ,IAARA,MAAAA,GAAqB,CAArBA,CAAAA,GA3BZ,CAAA;AA4BE,QAAA,QAAQ,EAAEA,QAAQ,IAAI;AA5BxB,OAAA,CAdF,EA6CG6B,SAAS,GAAA,aAAG,KAAA,CAAA,aAAA,CAAA,kCAAA,EAAA;AAAkB,QAAA,IAAI,EAAtB,OAAA;AAA+B,QAAA,KAAK,EAAE3C,eAAO4C;AAA7C,OAAA,CAAH,GA7CZ,IAAA,EAAA,aA+CE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,QAAA,OAAO,EAAE,MAAMX,SAAS,CAAC,CAA9B,MAA6B,CAA7B;AAAwC,QAAA,SAAS,EAAE;AAAnD,OAAA,EACG,MAAM,IAAI,CAAV,MAAA,IAAqB,CAArB,QAAA,GAAA,aAAiC,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAA;AAAa,QAAA,IAAI,EAAjB,MAAA;AAAyB,QAAA,SAAS,EAAEd,IAAI,GAAA,IAAA,GAAU;AAAlD,OAAA,CAAjC,GAAA,aAA4F,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AAAe,QAAA,IAAI,EAAnB,MAAA;AAA2B,QAAA,SAAS,EAAEA,IAAI,GAAA,IAAA,GAAU;AAApD,OAAA,CAD/F,CA/CF,CADF;AADF,KAAA;;AAwDA,UAAM0B,oBAAoB,GAAG,MAAA,aAC3B,KAAA,CAAA,aAAA,CAAA,oCAAA,EAAA;AACE,MAAA,OAAO,EAAGhB,CAAD,IAAY;AACnBA,QAAAA,CAAC,CAADA,eAAAA;AACAI,QAAAA,SAAS,CAAC,CAAVA,MAAS,CAATA;AACAN,QAAAA,QAAQ,CAARA,OAAAA,EAAAA,KAAAA;AAJJ,OAAA;AAME,MAAA,QAAQ,EANV,QAAA;AAOE,MAAA,MAAM,EAAEZ;AAPV,KAAA,EAAA,aAQE,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AACE,MAAA,GAAG,EADL,cAAA;AAEE,MAAA,SAAS,EAAE,CAAC0B,MAAM,GAAA,WAAA,GAAP,EAAA,EAAA,MAAA,CAAmCtB,IAAI,GAAA,IAAA,GAAvC,EAAA,EAAA,MAAA,CAA4DH,QAAQ,GAAA,QAAA,GAFjF,EAEa,CAFb;AAGE,MAAA,QAAQ,EAAEF,QAAQ,IAARA,MAAAA,GAAqB,CAArBA,CAAAA,GAHZ,CAAA;AAIE,MAAA,QAAQ,EAAEA,QAAQ,IAJpB,KAAA;AAKE,MAAA,MAAM,EAAEC,MAAM,IALhB,KAAA;AAME,MAAA,qBAAqB,EAAE,CAAC,CAN1B,uBAAA;AAOE,MAAA,QAAQ,EAAEK;AAPZ,KAAA,EAAA,IAAA,EAAA,aASE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,SAAS,EAAE;AAAhB,KAAA,EAA0BV,WAAW,IAAXA,gBAAAA,GAAAA,WAAAA,GAAgDb,KAAK,IATjF,iBASE,CATF,EAUG8C,SAAS,GAAA,aAAG,KAAA,CAAA,aAAA,CAAA,kCAAA,EAAA;AAAkB,MAAA,IAAI,EAAtB,OAAA;AAA+B,MAAA,KAAK,EAAE3C,eAAO4C;AAA7C,KAAA,CAAH,GAVZ,IAAA,EAAA,aAWE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,OAAO,EAAE,MAAMX,SAAS,CAAC,CAA9B,MAA6B,CAA7B;AAAwC,MAAA,SAAS,EAAE;AAAnD,KAAA,EACG,MAAM,IAAI,CAAV,MAAA,IAAqB,CAArB,QAAA,GAAA,aAAiC,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAA;AAAa,MAAA,IAAI,EAAjB,MAAA;AAAyB,MAAA,SAAS,EAAEd,IAAI,GAAA,IAAA,GAAU;AAAlD,KAAA,CAAjC,GAAA,aAA4F,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AAAe,MAAA,IAAI,EAAnB,MAAA;AAA2B,MAAA,SAAS,EAAEA,IAAI,GAAA,IAAA,GAAU;AAApD,KAAA,CAD/F,CAXF,CARF,CADF;;AA2BA,WAAA,aACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EAAA,aACE,KAAA,CAAA,aAAA,CAAA,uBAAA,EAAA;AAAU,MAAA,QAAQ,EAAEH,QAAQ,IAA5B,KAAA;AAAuC,MAAA,QAAQ,EAA/C,QAAA;AAA2D,MAAA,MAAM,EAAjE,MAAA;AAA2E,MAAA,SAAS,EAAEG,IAAI,GAAA,IAAA,GAA1F,EAAA;AAAwG,MAAA,MAAM,EAAEI;AAAhH,KAAA,EACG,CAAA,QAAA,IAAaiB,sBADhB,EAAA,EAEG,CAAC,CAAD,QAAA,IAAcK,oBAFjB,EAAA,EAGG,CAAA,MAAA,IAAW,CAAX,QAAA,IAAA,aACC,KAAA,CAAA,aAAA,CAAA,yBAAA,EAAA;AACA,MAAA,MAAM,EADN,MAAA;AAEA,MAAA,kBAAkB,EAAEhC,kBAAkB,IAFtC,EAAA;AAGA,MAAA,cAAc,EAHd,cAAA;AAIA,MAAA,iBAAiB,EAJjB,iBAAA;AAKA,MAAA,kBAAkB,EALlB,IAAA;AAMA,MAAA,kBAAkB,EAAE;AAClBiC,QAAAA,SAAS,EADS,QAAA;AAElBC,QAAAA,WAAW,EAFO,KAAA;AAGlBC,QAAAA,MAAM,EAAE,MAAM,CAHI,CAAA;AAIlBhC,QAAAA,QAAQ,EAAEA,QAAQ,IAJA,KAAA;AAKlBiC,QAAAA,aAAa,EAAGC,MAAD,IAAsB;AACnC,gBAAMC,GAAG,GAAGD,MAAM,CAANA,CAAM,CAANA,IAAZ,EAAA;AACAhB,UAAAA,gBAAgB,CAAhBA,IAAgB,CAAhBA;AACAF,UAAAA,QAAQ,CAARA,GAAQ,CAARA;AARgB,SAAA;AAUlBoB,QAAAA,KAAK,EAAE,IAAI,CAAJ,GAAA,CAASC,CAAC,KAAK;AAAEC,UAAAA,KAAK,EAAED;AAAT,SAAL,CAAV;AAVW,OANpB;AAkBA,MAAA,MAAM,EAAE,CAAA,aAAA,GAAA,KAAA,GAlBR,EAAA;AAmBA,MAAA,SAAS,EAnBT,SAAA;AAoBA,MAAA,SAAS,EApBT,KAAA;AAqBA,MAAA,QAAQ,EAAErC,QAAQ,IArBlB,KAAA;AAsBA,MAAA,EAAE,EAAG,GAAEX,EAAG;AAtBV,KAAA,CAJJ,CADF,EA8BGY,uBAAuB,IAAA,aACtB,KAAA,CAAA,aAAA,CAAA,uBAAA,EAAA;AAAgB,MAAA,SAAS,EAAEE,IAAI,IAAI;AAAnC,KAAA,EAAA,aACE,KAAA,CAAA,aAAA,CAAA,6BAAA,EAAA;AAAkB,MAAA,IAAI,EAAtB,MAAA;AAA8B,MAAA,KAAK,EAAEnB,eAAOuD;AAA5C,KAAA,CADF,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAjCN,uBAiCM,CAFF,CA/BJ,EAoCGrC,iBAAiB,IAAA,aAChB,KAAA,CAAA,aAAA,CAAA,0BAAA,EAAA;AAAmB,MAAA,SAAS,EAAEC,IAAI,IAAI;AAAtC,KAAA,EAAA,aACE,KAAA,CAAA,aAAA,CAAA,wBAAA,EAAA;AAAa,MAAA,IAAI,EAAjB,MAAA;AAAyB,MAAA,KAAK,EAAEnB,eAAO4C;AAAvC,KAAA,CADF,EAAA,aAEE,KAAA,CAAA,aAAA,CAAA,MAAA,EAAA,IAAA,EAxCR,iBAwCQ,CAFF,CArCJ,CADF;AAtKF,GAAA;;;AArBEvC,IAAAA,E;AACAC,IAAAA,I;AACAC,IAAAA,W;AACAC,IAAAA,Q;AACAC,IAAAA,a;AACAC,IAAAA,W;AACAC,IAAAA,Q;AACAC,IAAAA,c;AACAC,IAAAA,kB;AACAC,IAAAA,Q;AACAC,IAAAA,M;AACAC,IAAAA,Q;AACAC,IAAAA,uB;AACAC,IAAAA,iB;AACAC,IAAAA,I,6BAAO,O,EAAU,Q;AACjBC,IAAAA,c;AACAC,IAAAA,gB;AACAC,IAAAA,I;AACAC,IAAAA,M;;oBAwNF,c","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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
2
|
if (typeof define === "function" && define.amd) {
|
|
3
|
-
define(["exports", "prop-types", "react", "styled-components", "../../Button", "../../styles", "../Avatar", "./MenuLink", "../mobile/CommonStyles", "../../styles/typography"], factory);
|
|
3
|
+
define(["exports", "prop-types", "react", "styled-components", "../../Button", "../../styles", "../Avatar", "./MenuLink", "../../types", "../mobile/CommonStyles", "../../styles/typography"], factory);
|
|
4
4
|
} else if (typeof exports !== "undefined") {
|
|
5
|
-
factory(exports, require("prop-types"), require("react"), require("styled-components"), require("../../Button"), require("../../styles"), require("../Avatar"), require("./MenuLink"), require("../mobile/CommonStyles"), require("../../styles/typography"));
|
|
5
|
+
factory(exports, require("prop-types"), require("react"), require("styled-components"), require("../../Button"), require("../../styles"), require("../Avatar"), require("./MenuLink"), require("../../types"), require("../mobile/CommonStyles"), require("../../styles/typography"));
|
|
6
6
|
} else {
|
|
7
7
|
var mod = {
|
|
8
8
|
exports: {}
|
|
9
9
|
};
|
|
10
|
-
factory(mod.exports, global.propTypes, global.react, global.styledComponents, global.Button, global.styles, global.Avatar, global.MenuLink, global.CommonStyles, global.typography);
|
|
10
|
+
factory(mod.exports, global.propTypes, global.react, global.styledComponents, global.Button, global.styles, global.Avatar, global.MenuLink, global.types, global.CommonStyles, global.typography);
|
|
11
11
|
global.undefined = mod.exports;
|
|
12
12
|
}
|
|
13
|
-
})(this, function (exports, _propTypes, _react, _styledComponents, _Button, _styles, _Avatar, _MenuLink, _CommonStyles, _typography) {
|
|
13
|
+
})(this, function (exports, _propTypes, _react, _styledComponents, _Button, _styles, _Avatar, _MenuLink, _types, _CommonStyles, _typography) {
|
|
14
14
|
"use strict";
|
|
15
15
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -102,6 +102,15 @@
|
|
|
102
102
|
.open & {
|
|
103
103
|
display: block;
|
|
104
104
|
}
|
|
105
|
+
|
|
106
|
+
.sign-out{
|
|
107
|
+
width: 90%;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
display: flex;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
align-items: center;
|
|
112
|
+
margin: 8px auto 12px auto;
|
|
113
|
+
}
|
|
105
114
|
`;
|
|
106
115
|
const MenuSection = _styledComponents2.default.li`
|
|
107
116
|
padding: 8px 0;
|
|
@@ -132,19 +141,19 @@
|
|
|
132
141
|
`;
|
|
133
142
|
const StyledAvatarContainer = (0, _styledComponents2.default)(_Avatar.AvatarContainer)`
|
|
134
143
|
margin: 25px 0 0 25px;
|
|
144
|
+
pointer-events: none;
|
|
135
145
|
`;
|
|
136
146
|
const AvatarAndName = _styledComponents2.default.div`
|
|
137
147
|
display: flex;
|
|
138
148
|
flex-direction: row;
|
|
139
149
|
|
|
140
150
|
h5 {
|
|
141
|
-
margin:
|
|
151
|
+
margin: 28px 0 0 20px;
|
|
142
152
|
${(0, _typography.HeadlineXXSStyling)(_styles.COLORS.neutral_600)}
|
|
143
153
|
}
|
|
144
154
|
span {
|
|
145
|
-
margin:
|
|
155
|
+
margin: 0 0 0 20px;
|
|
146
156
|
${(0, _typography.ComponentXSStyling)(_styles.ComponentTextStyle.Regular, _styles.COLORS.neutral_600)}
|
|
147
|
-
top: -2px;
|
|
148
157
|
}
|
|
149
158
|
`;
|
|
150
159
|
const NameAndEmail = _styledComponents2.default.div`
|
|
@@ -225,24 +234,12 @@
|
|
|
225
234
|
onClick: element?.onClick
|
|
226
235
|
})), signOut && /*#__PURE__*/React.createElement(_Button.Button, {
|
|
227
236
|
width: "90%",
|
|
228
|
-
className: "UserMenuLink",
|
|
237
|
+
className: "UserMenuLink sign-out",
|
|
229
238
|
variant: "secondary",
|
|
230
|
-
size:
|
|
239
|
+
size: _types.Size.Large,
|
|
231
240
|
onClick: e => {
|
|
232
241
|
e.preventDefault();
|
|
233
242
|
signOut(e);
|
|
234
|
-
},
|
|
235
|
-
style: {
|
|
236
|
-
fontSize: '19px',
|
|
237
|
-
lineHeight: '23px',
|
|
238
|
-
boxSizing: 'border-box',
|
|
239
|
-
borderRadius: '8px',
|
|
240
|
-
height: '56px',
|
|
241
|
-
display: 'flex',
|
|
242
|
-
justifyContent: 'center',
|
|
243
|
-
alignItems: 'center',
|
|
244
|
-
margin: '8px auto 12px auto',
|
|
245
|
-
width: '90%'
|
|
246
243
|
}
|
|
247
244
|
}, signOutLabel))));
|
|
248
245
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/GlobalNavigationBar/UserMenu/UserMenu.tsx"],"names":["Menu","styled","ul","COLORS","white","flowDown","neutral_200","MenuSection","li","neutral_100","MenuSectionList","UserMenuSectionListStyling","StyledAvatarContainer","AvatarAndName","div","HeadlineXXSStyling","ComponentXSStyling","ComponentTextStyle","NameAndEmail","OrganizationName","span","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","UserMenu","React","e","document","element","onClick","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":["Menu","styled","ul","COLORS","white","flowDown","neutral_200","MenuSection","li","neutral_100","MenuSectionList","UserMenuSectionListStyling","StyledAvatarContainer","AvatarAndName","div","HeadlineXXSStyling","ComponentXSStyling","ComponentTextStyle","NameAndEmail","OrganizationName","span","firstName","lastName","email","organizationName","clickMenuAction","accountSection","organizationSection","supportSection","signOut","signOutLabel","UserMenu","React","e","document","element","onClick","Size"],"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"}
|