@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
|
@@ -2,8 +2,15 @@ import { DropdownItem } from './DropdownButtonTypes';
|
|
|
2
2
|
interface DropdownFilterProps {
|
|
3
3
|
id: string;
|
|
4
4
|
list: string[] | DropdownItem[];
|
|
5
|
+
itemsType: 'normal' | 'checkbox' | 'radio';
|
|
6
|
+
action?: () => void;
|
|
7
|
+
actionLabel?: string;
|
|
8
|
+
pinTopItem?: boolean;
|
|
9
|
+
multiSelect?: boolean;
|
|
10
|
+
scrollable?: boolean;
|
|
11
|
+
maxHeight?: string;
|
|
5
12
|
placeholder?: string;
|
|
6
|
-
onSelect?: (value: string) => void;
|
|
13
|
+
onSelect?: (value: string[]) => void;
|
|
7
14
|
initalValue?: string;
|
|
8
15
|
disableSorting?: boolean;
|
|
9
16
|
messageOnNoResults?: string;
|
|
@@ -15,5 +22,5 @@ interface DropdownFilterProps {
|
|
|
15
22
|
size?: 'small' | 'medium';
|
|
16
23
|
margin?: string;
|
|
17
24
|
}
|
|
18
|
-
declare const BasicDropdown: ({ id, list, placeholder, onSelect, initalValue, disableSorting, messageOnNoResults, disabled, locked, isButton, activeValidationMessage, autofilledMessage, size, margin, }: DropdownFilterProps) => JSX.Element;
|
|
25
|
+
declare const BasicDropdown: ({ id, list, placeholder, onSelect, initalValue, disableSorting, messageOnNoResults, itemsType, action, actionLabel, pinTopItem, multiSelect, scrollable, maxHeight, disabled, locked, isButton, activeValidationMessage, autofilledMessage, size, margin, }: DropdownFilterProps) => JSX.Element;
|
|
19
26
|
export default BasicDropdown;
|
|
@@ -19,8 +19,12 @@ var _LoadingIndicator = require("../LoadingIndicator");
|
|
|
19
19
|
|
|
20
20
|
var _CommonStyling = require("./CommonStyling");
|
|
21
21
|
|
|
22
|
+
var _DropdownContent = _interopRequireDefault(require("./DropdownContent"));
|
|
23
|
+
|
|
22
24
|
var _styling = require("../InputFields/styling");
|
|
23
25
|
|
|
26
|
+
var _types = require("../types");
|
|
27
|
+
|
|
24
28
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
29
|
|
|
26
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -50,6 +54,14 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
50
54
|
initalValue = _ref.initalValue,
|
|
51
55
|
disableSorting = _ref.disableSorting,
|
|
52
56
|
messageOnNoResults = _ref.messageOnNoResults,
|
|
57
|
+
itemsType = _ref.itemsType,
|
|
58
|
+
action = _ref.action,
|
|
59
|
+
actionLabel = _ref.actionLabel,
|
|
60
|
+
pinTopItem = _ref.pinTopItem,
|
|
61
|
+
multiSelect = _ref.multiSelect,
|
|
62
|
+
_ref$scrollable = _ref.scrollable,
|
|
63
|
+
scrollable = _ref$scrollable === void 0 ? true : _ref$scrollable,
|
|
64
|
+
maxHeight = _ref.maxHeight,
|
|
53
65
|
disabled = _ref.disabled,
|
|
54
66
|
locked = _ref.locked,
|
|
55
67
|
isButton = _ref.isButton,
|
|
@@ -89,17 +101,16 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
89
101
|
focused = _React$useState12[0],
|
|
90
102
|
setFocused = _React$useState12[1];
|
|
91
103
|
|
|
92
|
-
var _React$useState13 = React.useState(
|
|
104
|
+
var _React$useState13 = React.useState([]),
|
|
93
105
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
94
|
-
|
|
95
|
-
|
|
106
|
+
selectedValues = _React$useState14[0],
|
|
107
|
+
setSelectedValues = _React$useState14[1];
|
|
96
108
|
|
|
97
109
|
var _React$useState15 = React.useState([]),
|
|
98
110
|
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
99
111
|
normalizedList = _React$useState16[0],
|
|
100
112
|
setNormalizedList = _React$useState16[1];
|
|
101
113
|
|
|
102
|
-
var dropdownContentRef = React.useRef(null);
|
|
103
114
|
var styledFieldRef = React.useRef(null);
|
|
104
115
|
|
|
105
116
|
var isDropdownItem = function isDropdownItem(item) {
|
|
@@ -119,89 +130,32 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
119
130
|
}
|
|
120
131
|
}
|
|
121
132
|
}, [list]);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
setFocused(null);
|
|
128
|
-
|
|
129
|
-
if (!normalizedList.includes(input)) {
|
|
130
|
-
setInput('');
|
|
131
|
-
setPlaceholderSearch(placeholder || '');
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
var setNewFocusedElement = function setNewFocusedElement(index) {
|
|
138
|
-
var newFocusedElement = document.getElementById("".concat(id, "_").concat(index));
|
|
139
|
-
|
|
140
|
-
if (newFocusedElement) {
|
|
141
|
-
setFocused(index);
|
|
142
|
-
newFocusedElement.focus();
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
var handleKeyDown = function handleKeyDown(e) {
|
|
147
|
-
if (isOpen) {
|
|
148
|
-
if (e.keyCode === 38) {
|
|
149
|
-
e.preventDefault();
|
|
150
|
-
var focusedNow = focused;
|
|
151
|
-
|
|
152
|
-
if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
|
|
153
|
-
focusedNow -= 1;
|
|
154
|
-
setNewFocusedElement(focusedNow);
|
|
155
|
-
}
|
|
156
|
-
} else if (e.keyCode === 40) {
|
|
157
|
-
e.preventDefault();
|
|
158
|
-
var focusedNow = focused;
|
|
159
|
-
|
|
160
|
-
if (focusedNow !== undefined && focusedNow !== null) {
|
|
161
|
-
focusedNow++;
|
|
162
|
-
} else {
|
|
163
|
-
focusedNow = 0;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
setNewFocusedElement(focusedNow);
|
|
167
|
-
} else if (e.keyCode === 9) {
|
|
168
|
-
e.preventDefault();
|
|
169
|
-
var focusedNow = focused;
|
|
170
|
-
|
|
171
|
-
if (focusedNow !== undefined && focusedNow !== null) {
|
|
172
|
-
focusedNow++;
|
|
173
|
-
var newFocusedElement = document.getElementById("".concat(id, "_").concat(focusedNow));
|
|
174
|
-
|
|
175
|
-
if (!newFocusedElement) {
|
|
176
|
-
setNewFocusedElement(0);
|
|
177
|
-
} else {
|
|
178
|
-
setNewFocusedElement(focusedNow);
|
|
179
|
-
}
|
|
180
|
-
} else {
|
|
181
|
-
setNewFocusedElement(0);
|
|
182
|
-
}
|
|
183
|
-
} else if (e.keyCode === 27) {
|
|
184
|
-
setIsOpen(false);
|
|
185
|
-
setNewFocusedElement(0);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
};
|
|
133
|
+
/*
|
|
134
|
+
if (!items.includes(input)) {
|
|
135
|
+
setInput('');
|
|
136
|
+
setPlaceholderSearch(placeholder || '');
|
|
137
|
+
} */
|
|
189
138
|
|
|
190
139
|
var handleKeyPress = function handleKeyPress(e) {
|
|
191
140
|
if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && styledFieldRef.current.contains(e.target)) {
|
|
192
141
|
if (e.keyCode === 13) {
|
|
193
142
|
setIsOpen(!isOpen);
|
|
194
|
-
setNewFocusedElement(0);
|
|
195
143
|
} else if (e.keyCode === 40) {
|
|
196
144
|
setIsOpen(!isOpen);
|
|
197
|
-
setNewFocusedElement(0);
|
|
198
145
|
}
|
|
199
146
|
}
|
|
200
147
|
};
|
|
201
148
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
149
|
+
var handleValueSelect = function handleValueSelect(values) {
|
|
150
|
+
setRestartFilter(true);
|
|
151
|
+
setInput(values.join(', '));
|
|
152
|
+
onSelect && onSelect(values); //don't close dropdown on item select if have custom action or multiselect
|
|
153
|
+
|
|
154
|
+
if (actionLabel || multiSelect) return;
|
|
155
|
+
setIsOpen(false);
|
|
156
|
+
setFocused(null);
|
|
157
|
+
};
|
|
158
|
+
|
|
205
159
|
React.useEffect(function () {
|
|
206
160
|
if (initalValue) {
|
|
207
161
|
setInput(initalValue);
|
|
@@ -209,65 +163,18 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
209
163
|
}
|
|
210
164
|
}, [initalValue]);
|
|
211
165
|
React.useEffect(function () {
|
|
212
|
-
document.addEventListener('keydown', handleKeyDown);
|
|
213
166
|
document.addEventListener('keypress', handleKeyPress);
|
|
214
|
-
document.addEventListener('click', handleClickOutside);
|
|
215
167
|
return function () {
|
|
216
|
-
document.removeEventListener('keydown', handleKeyDown);
|
|
217
168
|
document.removeEventListener('keypress', handleKeyPress);
|
|
218
|
-
document.removeEventListener('click', handleClickOutside);
|
|
219
169
|
};
|
|
220
170
|
});
|
|
221
171
|
React.useEffect(function () {
|
|
222
172
|
setIsLoading(false);
|
|
223
173
|
}, [input]);
|
|
224
174
|
|
|
225
|
-
var
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (!restartFilter && input !== '') {
|
|
230
|
-
options = options.filter(function (option) {
|
|
231
|
-
return option.toUpperCase().indexOf(input.toUpperCase()) !== -1;
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (!disableSorting) {
|
|
236
|
-
options = options.sort();
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (options.length === 0) {
|
|
240
|
-
return /*#__PURE__*/React.createElement(_CommonStyling.DropdownButton, {
|
|
241
|
-
disabled: true
|
|
242
|
-
}, /*#__PURE__*/React.createElement("span", null, messageOnNoResults));
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return options.map(function (item) {
|
|
246
|
-
return /*#__PURE__*/React.createElement(_CommonStyling.DropdownButton, {
|
|
247
|
-
type: "button",
|
|
248
|
-
onClick: function onClick(e) {
|
|
249
|
-
e.preventDefault();
|
|
250
|
-
setRestartFilter(true);
|
|
251
|
-
setInput(item);
|
|
252
|
-
onSelect && onSelect(item);
|
|
253
|
-
setIsOpen(false);
|
|
254
|
-
setFocused(null);
|
|
255
|
-
},
|
|
256
|
-
className: item === input ? 'active' : '',
|
|
257
|
-
key: item,
|
|
258
|
-
id: "".concat(id, "_").concat(number++)
|
|
259
|
-
}, /*#__PURE__*/React.createElement("span", null, item));
|
|
260
|
-
});
|
|
261
|
-
};
|
|
262
|
-
|
|
263
|
-
var determineDropUp = function determineDropUp() {
|
|
264
|
-
var options = normalizedList;
|
|
265
|
-
var node = dropdownContentRef.current;
|
|
266
|
-
if (!node) return;
|
|
267
|
-
var windowHeight = window.innerHeight;
|
|
268
|
-
var menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);
|
|
269
|
-
var instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight;
|
|
270
|
-
setIsUp(instOffsetWithMenu >= windowHeight);
|
|
175
|
+
var customSetIsOpen = function customSetIsOpen(isOpen) {
|
|
176
|
+
console.log('dropdown content triggered');
|
|
177
|
+
setIsOpen(isOpen);
|
|
271
178
|
};
|
|
272
179
|
|
|
273
180
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_CommonStyling.Dropdown, {
|
|
@@ -305,14 +212,34 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
305
212
|
}) : /*#__PURE__*/React.createElement(_SystemIcons.ArrowDropDown, {
|
|
306
213
|
size: "24px",
|
|
307
214
|
className: size ? size : ''
|
|
308
|
-
}))), !locked && !disabled && /*#__PURE__*/React.createElement(
|
|
215
|
+
}))), !locked && !disabled && /*#__PURE__*/React.createElement(_DropdownContent.default, {
|
|
216
|
+
customizationProps: {
|
|
217
|
+
itemsType: itemsType,
|
|
218
|
+
action: action !== null && action !== void 0 ? action : function () {},
|
|
219
|
+
actionLabel: actionLabel,
|
|
220
|
+
scrollable: scrollable,
|
|
221
|
+
isButton: isButton || false,
|
|
222
|
+
onValueUpdate: handleValueSelect,
|
|
223
|
+
items: normalizedList.map(function (x) {
|
|
224
|
+
return {
|
|
225
|
+
value: x
|
|
226
|
+
};
|
|
227
|
+
}),
|
|
228
|
+
multiSelect: multiSelect,
|
|
229
|
+
pinTopItem: pinTopItem,
|
|
230
|
+
maxHeight: maxHeight
|
|
231
|
+
},
|
|
232
|
+
size: size == 'medium' ? _types.Size.Medium : _types.Size.Small,
|
|
233
|
+
filter: '',
|
|
234
|
+
hideOnClickOutside: true,
|
|
235
|
+
isOpen: isOpen,
|
|
236
|
+
setIsOpen: customSetIsOpen,
|
|
237
|
+
messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
|
|
309
238
|
isButton: isButton || false,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}).join(' ')
|
|
315
|
-
}, getElements())), activeValidationMessage && /*#__PURE__*/React.createElement(_styling.WarningMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|
|
239
|
+
selectedValues: selectedValues,
|
|
240
|
+
setSelectedValues: setSelectedValues,
|
|
241
|
+
id: "".concat(id, "_dropdowncontent")
|
|
242
|
+
})), activeValidationMessage && /*#__PURE__*/React.createElement(_styling.WarningMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|
|
316
243
|
size: "20px",
|
|
317
244
|
color: _styles.COLORS.warning_400
|
|
318
245
|
}), /*#__PURE__*/React.createElement("span", null, activeValidationMessage)), autofilledMessage && /*#__PURE__*/React.createElement(_styling.AutofilledMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.Information, {
|
|
@@ -324,6 +251,13 @@ var BasicDropdown = function BasicDropdown(_ref) {
|
|
|
324
251
|
BasicDropdown.propTypes = {
|
|
325
252
|
id: _propTypes.default.string.isRequired,
|
|
326
253
|
list: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.array]).isRequired,
|
|
254
|
+
itemsType: _propTypes.default.oneOf(['normal', 'checkbox', 'radio']).isRequired,
|
|
255
|
+
action: _propTypes.default.func,
|
|
256
|
+
actionLabel: _propTypes.default.string,
|
|
257
|
+
pinTopItem: _propTypes.default.bool,
|
|
258
|
+
multiSelect: _propTypes.default.bool,
|
|
259
|
+
scrollable: _propTypes.default.bool,
|
|
260
|
+
maxHeight: _propTypes.default.string,
|
|
327
261
|
placeholder: _propTypes.default.string,
|
|
328
262
|
onSelect: _propTypes.default.func,
|
|
329
263
|
initalValue: _propTypes.default.string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Dropdown/BasicDropdown.tsx"],"names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","BasicDropdown","id","list","placeholder","onSelect","initalValue","disableSorting","messageOnNoResults","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","focused","setFocused","isUp","setIsUp","normalizedList","setNormalizedList","dropdownContentRef","useRef","styledFieldRef","isDropdownItem","item","label","undefined","useEffect","length","map","i","handleClickOutside","e","current","contains","target","includes","setNewFocusedElement","index","newFocusedElement","document","getElementById","focus","handleKeyDown","keyCode","preventDefault","focusedNow","handleKeyPress","determineDropUp","addEventListener","removeEventListener","getElements","number","options","filter","option","toUpperCase","indexOf","sort","node","windowHeight","window","innerHeight","menuHeight","Math","min","instOffsetWithMenu","getBoundingClientRect","top","concat","COLORS","neutral_600","join","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, Dropdown, DropdownContent, StyledField } from './CommonStyling';\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { DropdownItem } from './DropdownButtonTypes';\n\ninterface DropdownFilterProps {\n id: string;\n list: string[] | DropdownItem[];\n placeholder?: string;\n onSelect?: (value: string) => void;\n initalValue?: string;\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 margin?: string;\n}\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nconst BasicDropdown = ({\n id,\n list,\n placeholder,\n onSelect,\n initalValue,\n disableSorting,\n messageOnNoResults,\n disabled,\n locked,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\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>('');\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 [isUp, setIsUp] = React.useState<boolean>(false);\n const [normalizedList, setNormalizedList] = React.useState<string[]>([]);\n const dropdownContentRef = React.useRef<HTMLDivElement>(null);\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n\n const isDropdownItem = (item: string | DropdownItem) => {\n return (item as DropdownItem).label !== undefined;\n };\n\n React.useEffect(() => {\n if (list.length > 0) {\n if (isDropdownItem(list[0])) {\n setNormalizedList((list as (string | DropdownItem)[]).map((i: string | DropdownItem) => (i as DropdownItem).label));\n } else {\n setNormalizedList((list as (string | DropdownItem)[]).map((i: string | DropdownItem) => i as string));\n }\n }\n }, [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 (!normalizedList.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 }\n }\n };\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13) {\n setIsOpen(!isOpen);\n setNewFocusedElement(0);\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\n setNewFocusedElement(0);\n }\n }\n };\n\n React.useEffect(() => {\n determineDropUp();\n }, [isOpen]);\n\n React.useEffect(() => {\n if (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 const getElements = () => {\n var number = 0;\n var options = normalizedList;\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 if (options.length === 0) {\n return (\n <DropdownButton disabled>\n <span>{messageOnNoResults}</span>\n </DropdownButton>\n );\n }\n return options.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 === input ? 'active' : ''}\n key={item}\n id={`${id}_${number++}`}>\n <span>{item}</span>\n </DropdownButton>\n );\n });\n };\n\n const determineDropUp = () => {\n const options = normalizedList;\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 return (\n <>\n <Dropdown isButton={isButton || false} className={size ? size : ''} locked={locked} disabled={disabled} margin={margin}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\n onClick={() => {\n if (!locked || !disabled) {\n setIsOpen(!isOpen);\n }\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n isPlaceholder={!input}>\n <div className={'value'}>{input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'icon'}>\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\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>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default BasicDropdown;\n"],"file":"BasicDropdown.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/Dropdown/BasicDropdown.tsx"],"names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","BasicDropdown","id","list","placeholder","onSelect","initalValue","disableSorting","messageOnNoResults","itemsType","action","actionLabel","pinTopItem","multiSelect","scrollable","maxHeight","disabled","locked","isButton","activeValidationMessage","autofilledMessage","size","margin","React","useState","isOpen","setIsOpen","isLoading","setIsLoading","input","setInput","placeholderSearch","setPlaceholderSearch","restartFilter","setRestartFilter","focused","setFocused","selectedValues","setSelectedValues","normalizedList","setNormalizedList","styledFieldRef","useRef","isDropdownItem","item","label","undefined","useEffect","length","map","i","handleKeyPress","e","current","contains","target","keyCode","handleValueSelect","values","join","document","addEventListener","removeEventListener","customSetIsOpen","console","log","concat","COLORS","neutral_600","onValueUpdate","items","x","value","Size","Medium","Small","warning_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { COLORS } from '../styles';\nimport { ArrowDropDown, ArrowDropUp, Information, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { DropdownButton, Dropdown, StyledField } from './CommonStyling';\nimport DropdownContent from './DropdownContent'\nimport { AutofilledMessage, WarningMessage } from '../InputFields/styling';\nimport { DropdownItem } from './DropdownButtonTypes';\nimport { Size } from '../types';\n\ninterface DropdownFilterProps {\n id: string;\n list: string[] | DropdownItem[];\n itemsType: 'normal' | 'checkbox' | 'radio';\n action?: () => void;\n actionLabel?: string;\n pinTopItem?: boolean;\n multiSelect?: boolean;\n scrollable?: boolean;\n maxHeight?: string;\n placeholder?: string;\n onSelect?: (value: string[]) => void;\n initalValue?: string;\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 margin?: string;\n}\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\n\nconst BasicDropdown = ({\n id,\n list,\n placeholder,\n onSelect,\n initalValue,\n disableSorting,\n messageOnNoResults,\n itemsType,\n action,\n actionLabel,\n pinTopItem,\n multiSelect,\n scrollable = true,\n maxHeight,\n disabled,\n locked,\n isButton,\n activeValidationMessage,\n autofilledMessage,\n size,\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>('');\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 [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [normalizedList, setNormalizedList] = React.useState<string[]>([]);\n\n const styledFieldRef = React.useRef<HTMLDivElement>(null);\n\n const isDropdownItem = (item: string | DropdownItem) => {\n return (item as DropdownItem).label !== undefined;\n };\n\n React.useEffect(() => {\n if (list.length > 0) {\n if (isDropdownItem(list[0])) {\n setNormalizedList((list as (string | DropdownItem)[]).map((i: string | DropdownItem) => (i as DropdownItem).label));\n } else {\n setNormalizedList((list as (string | DropdownItem)[]).map((i: string | DropdownItem) => i as string));\n }\n }\n }, [list]);\n\n /*\n if (!items.includes(input)) {\n setInput('');\n setPlaceholderSearch(placeholder || '');\n } */\n\n const handleKeyPress = (e: any) => {\n if (styledFieldRef?.current && styledFieldRef.current.contains(e.target)) {\n if (e.keyCode === 13) {\n setIsOpen(!isOpen);\n } else if (e.keyCode === 40) {\n setIsOpen(!isOpen);\n }\n }\n };\n\n const handleValueSelect = (values: string[]) => {\n \n setRestartFilter(true);\n setInput(values.join(', '));\n onSelect && onSelect(values);\n //don't close dropdown on item select if have custom action or multiselect\n if(actionLabel || multiSelect)\n return;\n\n setIsOpen(false);\n setFocused(null);\n };\n\n React.useEffect(() => {\n if (initalValue) {\n setInput(initalValue);\n setRestartFilter(true);\n }\n }, [initalValue]);\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 }, [input]);\n\n const customSetIsOpen = (isOpen: boolean) => {\n console.log('dropdown content triggered');\n setIsOpen(isOpen);\n }\n\n return (\n <>\n <Dropdown isButton={isButton || false} className={size ? size : ''} locked={locked} disabled={disabled} margin={margin}>\n <StyledField\n ref={styledFieldRef}\n className={(isOpen ? 'expanded ' : '').concat(size ? size : '').concat(isButton ? 'button' : '')}\n onClick={() => {\n if (!locked || !disabled) {\n setIsOpen(!isOpen);\n }\n }}\n tabIndex={disabled || locked ? -1 : 0}\n disabled={disabled || false}\n locked={locked || false}\n showValidationMessage={!!activeValidationMessage}\n isPlaceholder={!input}>\n <div className={'value'}>{input || placeholderSearch}</div>\n {isLoading ? <LoadingIndicator size=\"small\" color={COLORS.neutral_600} /> : null}\n <div onClick={() => setIsOpen(!isOpen)} className={'icon'}>\n {isOpen ? <ArrowDropUp size=\"24px\" className={size ? size : ''} /> : <ArrowDropDown size=\"24px\" className={size ? size : ''} />}\n </div>\n </StyledField>\n {!locked && !disabled && (\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n scrollable: scrollable,\n isButton: isButton || false,\n onValueUpdate: handleValueSelect,\n items: normalizedList.map(x => ({ value: x })),\n multiSelect: multiSelect,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight\n }}\n size={size == 'medium' ? Size.Medium : Size.Small}\n filter={''}\n hideOnClickOutside={true}\n isOpen={isOpen}\n setIsOpen={customSetIsOpen}\n messageOnNoResults={messageOnNoResults ?? ''}\n isButton={isButton || false}\n selectedValues={selectedValues}\n setSelectedValues={setSelectedValues}\n id={`${id}_dropdowncontent`}\n />\n )}\n </Dropdown>\n {activeValidationMessage && (\n <WarningMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.warning_400} />\n <span>{activeValidationMessage}</span>\n </WarningMessage>\n )}\n {autofilledMessage && (\n <AutofilledMessage>\n <Information size=\"20px\" color={COLORS.neutral_600} />\n <span>{autofilledMessage}</span>\n </AutofilledMessage>\n )}\n </>\n );\n};\n\nexport default BasicDropdown;\n"],"file":"BasicDropdown.js"}
|
|
@@ -25,11 +25,13 @@ var _ChipStyles = require("../Chips/ChipStyles");
|
|
|
25
25
|
|
|
26
26
|
var _CommonStyling = require("./CommonStyling");
|
|
27
27
|
|
|
28
|
+
var _DropdownContent = _interopRequireDefault(require("./DropdownContent"));
|
|
29
|
+
|
|
28
30
|
var _LoadingIndicator = require("../LoadingIndicator");
|
|
29
31
|
|
|
30
32
|
var _typography = require("../styles/typography");
|
|
31
33
|
|
|
32
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5
|
|
34
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
33
35
|
|
|
34
36
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
37
|
|
|
@@ -67,13 +69,7 @@ var ChipInput = _styledComponents.default.input(_templateObject3 || (_templateOb
|
|
|
67
69
|
|
|
68
70
|
var StyledDropdownButton = (0, _styledComponents.default)(_CommonStyling.DropdownButton)(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n display: flex;\n width: 98%;\n margin-left: 3px;\n svg {\n margin: auto 0 auto 0;\n }\n"])));
|
|
69
71
|
|
|
70
|
-
var
|
|
71
|
-
|
|
72
|
-
var SecondaryLabel = _styledComponents.default.span(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n ", "\n"])), (0, _typography.ComponentXXSStyling)(_typography.ComponentTextStyle.Regular, _styles.COLORS.neutral_600));
|
|
73
|
-
|
|
74
|
-
var SuggestionButton = (0, _styledComponents.default)(StyledDropdownButton)(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n border-bottom: 1px solid ", ";\n"])), _styles.COLORS.neutral_200);
|
|
75
|
-
|
|
76
|
-
var Loading = _styledComponents.default.div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n margin: auto 16px auto auto !important;\n height: 20px;\n div {\n height: 20px;\n }\n"])));
|
|
72
|
+
var Loading = _styledComponents.default.div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin: auto 16px auto auto !important;\n height: 20px;\n div {\n height: 20px;\n }\n"])));
|
|
77
73
|
|
|
78
74
|
var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
79
75
|
var list = _ref.list,
|
|
@@ -121,17 +117,11 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
121
117
|
var _React$useState11 = React.useState(false),
|
|
122
118
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
123
119
|
restartFilter = _React$useState12[0],
|
|
124
|
-
setRestartFilter = _React$useState12[1];
|
|
125
|
-
|
|
126
|
-
var _React$useState13 = React.useState(null),
|
|
127
|
-
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
128
|
-
focused = _React$useState14[0],
|
|
129
|
-
setFocused = _React$useState14[1]; // Initiate refs
|
|
120
|
+
setRestartFilter = _React$useState12[1]; // Initiate refs
|
|
130
121
|
|
|
131
122
|
|
|
132
123
|
var chipInput = React.useRef();
|
|
133
124
|
var styledFieldRef = React.useRef(null);
|
|
134
|
-
var dropdownRef = React.useRef();
|
|
135
125
|
/**
|
|
136
126
|
* Sets initial values for the chips.
|
|
137
127
|
*/
|
|
@@ -255,120 +245,12 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
255
245
|
setCurrentSearchResult(options);
|
|
256
246
|
}, [value, givenList, chips]);
|
|
257
247
|
|
|
258
|
-
var
|
|
259
|
-
var
|
|
260
|
-
|
|
261
|
-
if ((currentSearchResult === null || currentSearchResult === void 0 ? void 0 : currentSearchResult.length) === 0 && !suggestion) {
|
|
262
|
-
return /*#__PURE__*/React.createElement(_CommonStyling.DropdownButton, {
|
|
263
|
-
disabled: true
|
|
264
|
-
}, /*#__PURE__*/React.createElement("span", null, messageOnNoResults));
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, suggestion && /*#__PURE__*/React.createElement(SuggestionButton, {
|
|
268
|
-
type: "button",
|
|
269
|
-
tabIndex: -1,
|
|
270
|
-
onClick: function onClick(e) {
|
|
271
|
-
var _chipInput$current;
|
|
272
|
-
|
|
273
|
-
e.preventDefault();
|
|
274
|
-
setRestartFilter(true);
|
|
275
|
-
addChip(suggestion.value);
|
|
276
|
-
setFocused(null);
|
|
277
|
-
chipInput === null || chipInput === void 0 ? void 0 : (_chipInput$current = chipInput.current) === null || _chipInput$current === void 0 ? void 0 : _chipInput$current.focus();
|
|
278
|
-
},
|
|
279
|
-
className: suggestion.value.toLowerCase() === value.toLowerCase() ? 'active' : '',
|
|
280
|
-
key: suggestion.value,
|
|
281
|
-
id: "".concat(inputId, "_").concat(number++)
|
|
282
|
-
}, !excludeIcon && /*#__PURE__*/React.createElement(_SystemIcons.User, {
|
|
283
|
-
size: "24px"
|
|
284
|
-
}), suggestion.secondaryLabel ? /*#__PURE__*/React.createElement(DropdownButtonLabels, null, /*#__PURE__*/React.createElement("span", null, suggestion.label), /*#__PURE__*/React.createElement(SecondaryLabel, null, suggestion.secondaryLabel)) : /*#__PURE__*/React.createElement("span", null, suggestion.label)), currentSearchResult === null || currentSearchResult === void 0 ? void 0 : currentSearchResult.map(function (item) {
|
|
285
|
-
return /*#__PURE__*/React.createElement(StyledDropdownButton, {
|
|
286
|
-
type: "button",
|
|
287
|
-
tabIndex: -1,
|
|
288
|
-
onClick: function onClick(e) {
|
|
289
|
-
var _chipInput$current2;
|
|
290
|
-
|
|
291
|
-
e.preventDefault();
|
|
292
|
-
setRestartFilter(true);
|
|
293
|
-
addChip(item.value);
|
|
294
|
-
setFocused(null);
|
|
295
|
-
chipInput === null || chipInput === void 0 ? void 0 : (_chipInput$current2 = chipInput.current) === null || _chipInput$current2 === void 0 ? void 0 : _chipInput$current2.focus();
|
|
296
|
-
},
|
|
297
|
-
className: item.value.toLowerCase() === value.toLowerCase() ? 'active' : '',
|
|
298
|
-
key: item.value,
|
|
299
|
-
id: "".concat(inputId, "_").concat(number++)
|
|
300
|
-
}, !excludeIcon && /*#__PURE__*/React.createElement(_SystemIcons.User, {
|
|
301
|
-
size: "24px"
|
|
302
|
-
}), item.secondaryLabel ? /*#__PURE__*/React.createElement(DropdownButtonLabels, null, /*#__PURE__*/React.createElement("span", null, item.label), /*#__PURE__*/React.createElement(SecondaryLabel, null, item.secondaryLabel)) : /*#__PURE__*/React.createElement("span", null, item.label));
|
|
303
|
-
}));
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
var setNewFocusedElement = function setNewFocusedElement(index) {
|
|
307
|
-
var newFocusedElement = document.getElementById("".concat(inputId, "_").concat(index));
|
|
308
|
-
|
|
309
|
-
if (newFocusedElement) {
|
|
310
|
-
setFocused(index);
|
|
311
|
-
newFocusedElement.focus();
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
var handleKeyDown = function handleKeyDown(e) {
|
|
316
|
-
if (dropdownIsOpen) {
|
|
317
|
-
if (e.keyCode === 38) {
|
|
318
|
-
e.preventDefault();
|
|
319
|
-
var focusedNow = focused;
|
|
320
|
-
|
|
321
|
-
if (focusedNow !== undefined && focusedNow !== null && focusedNow > 0) {
|
|
322
|
-
focusedNow -= 1;
|
|
323
|
-
setNewFocusedElement(focusedNow);
|
|
324
|
-
}
|
|
325
|
-
} else if (e.keyCode === 40) {
|
|
326
|
-
e.preventDefault();
|
|
327
|
-
var focusedNow = focused;
|
|
328
|
-
|
|
329
|
-
if (focusedNow !== undefined && focusedNow !== null) {
|
|
330
|
-
focusedNow++;
|
|
331
|
-
} else {
|
|
332
|
-
focusedNow = 0;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
setNewFocusedElement(focusedNow);
|
|
336
|
-
} else if (e.keyCode === 9) {
|
|
337
|
-
setDropdownIsOpen(false);
|
|
338
|
-
} else if (e.keyCode === 27) {
|
|
339
|
-
var _styledFieldRef$curre;
|
|
340
|
-
|
|
341
|
-
setDropdownIsOpen(false);
|
|
342
|
-
setNewFocusedElement(0);
|
|
343
|
-
|
|
344
|
-
if (!givenList.find(function (e) {
|
|
345
|
-
return e.value === value;
|
|
346
|
-
})) {
|
|
347
|
-
setValue('');
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
(_styledFieldRef$curre = styledFieldRef.current) === null || _styledFieldRef$curre === void 0 ? void 0 : _styledFieldRef$curre.focus();
|
|
351
|
-
} else if (e.keyCode === 13) {
|
|
352
|
-
var matches = currentSearchResult === null || currentSearchResult === void 0 ? void 0 : currentSearchResult.filter(function (c) {
|
|
353
|
-
return c.value.toLowerCase() === value.toLowerCase();
|
|
354
|
-
});
|
|
355
|
-
|
|
356
|
-
if ((matches === null || matches === void 0 ? void 0 : matches.length) === 1
|
|
357
|
-
/*&& onSelect*/
|
|
358
|
-
) {
|
|
359
|
-
addChip(matches[0].value); //onSelect(chips);
|
|
360
|
-
} else if (e.target.value === (suggestion === null || suggestion === void 0 ? void 0 : suggestion.label)) {
|
|
361
|
-
addChip(e.target.value);
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
setDropdownIsOpen(!dropdownIsOpen);
|
|
365
|
-
setNewFocusedElement(0);
|
|
248
|
+
var handleValueUpdate = function handleValueUpdate(values) {
|
|
249
|
+
var _chipInput$current;
|
|
366
250
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
}
|
|
371
|
-
}
|
|
251
|
+
setRestartFilter(true);
|
|
252
|
+
addChip(values[0]);
|
|
253
|
+
chipInput === null || chipInput === void 0 ? void 0 : (_chipInput$current = chipInput.current) === null || _chipInput$current === void 0 ? void 0 : _chipInput$current.focus();
|
|
372
254
|
};
|
|
373
255
|
|
|
374
256
|
var handleKeyPress = function handleKeyPress(e) {
|
|
@@ -387,14 +269,12 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
387
269
|
}
|
|
388
270
|
|
|
389
271
|
setDropdownIsOpen(!dropdownIsOpen);
|
|
390
|
-
setNewFocusedElement(0);
|
|
391
272
|
|
|
392
273
|
if ((matches === null || matches === void 0 ? void 0 : matches.length) === 0) {
|
|
393
274
|
setValue('');
|
|
394
275
|
}
|
|
395
276
|
} else if (e.keyCode === 40) {
|
|
396
277
|
setDropdownIsOpen(!dropdownIsOpen);
|
|
397
|
-
setNewFocusedElement(0);
|
|
398
278
|
}
|
|
399
279
|
}
|
|
400
280
|
};
|
|
@@ -403,7 +283,6 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
403
283
|
if (styledFieldRef !== null && styledFieldRef !== void 0 && styledFieldRef.current && !styledFieldRef.current.contains(e.target)) {
|
|
404
284
|
if (dropdownIsOpen) {
|
|
405
285
|
setDropdownIsOpen(false);
|
|
406
|
-
setFocused(null);
|
|
407
286
|
|
|
408
287
|
if (!givenList.find(function (e) {
|
|
409
288
|
return e.value === value;
|
|
@@ -415,11 +294,9 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
415
294
|
};
|
|
416
295
|
|
|
417
296
|
React.useEffect(function () {
|
|
418
|
-
document.addEventListener('keydown', handleKeyDown);
|
|
419
297
|
document.addEventListener('keypress', handleKeyPress);
|
|
420
298
|
document.addEventListener('click', handleClickOutside);
|
|
421
299
|
return function () {
|
|
422
|
-
document.removeEventListener('keydown', handleKeyDown);
|
|
423
300
|
document.removeEventListener('keypress', handleKeyPress);
|
|
424
301
|
document.removeEventListener('click', handleClickOutside);
|
|
425
302
|
};
|
|
@@ -428,6 +305,20 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
428
305
|
* Return Chip Input component.
|
|
429
306
|
*/
|
|
430
307
|
|
|
308
|
+
var dropdownItems = [];
|
|
309
|
+
if (currentSearchResult) dropdownItems = currentSearchResult.map(function (x) {
|
|
310
|
+
return {
|
|
311
|
+
value: x.value,
|
|
312
|
+
displayLabel: x.label,
|
|
313
|
+
noteLabel: x.secondaryLabel
|
|
314
|
+
};
|
|
315
|
+
});
|
|
316
|
+
if (suggestion && !chips.includes(suggestion.value)) dropdownItems = [{
|
|
317
|
+
value: suggestion.value,
|
|
318
|
+
displayLabel: suggestion.label,
|
|
319
|
+
noteLabel: suggestion.secondaryLabel,
|
|
320
|
+
suggestion: true
|
|
321
|
+
}].concat(_toConsumableArray(dropdownItems));
|
|
431
322
|
return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(StyledChipInputContainer, {
|
|
432
323
|
id: inputId,
|
|
433
324
|
onClick: function onClick(e) {
|
|
@@ -482,12 +373,28 @@ var ChipDropdownInput = function ChipDropdownInput(_ref) {
|
|
|
482
373
|
}), loading ? /*#__PURE__*/React.createElement(Loading, null, /*#__PURE__*/React.createElement(_LoadingIndicator.LoadingIndicator, {
|
|
483
374
|
size: "small",
|
|
484
375
|
color: _styles.COLORS.neutral_600
|
|
485
|
-
})) : null), (!maxSelectedItems || maxSelectedItems && chips.length < maxSelectedItems) && /*#__PURE__*/React.createElement(
|
|
376
|
+
})) : null), (!maxSelectedItems || maxSelectedItems && chips.length < maxSelectedItems) && /*#__PURE__*/React.createElement(_DropdownContent.default, {
|
|
377
|
+
customizationProps: {
|
|
378
|
+
isButton: false,
|
|
379
|
+
action: function action() {},
|
|
380
|
+
pinTopItem: true,
|
|
381
|
+
itemsType: 'normal',
|
|
382
|
+
scrollable: true,
|
|
383
|
+
actionLabel: '',
|
|
384
|
+
multiSelect: false,
|
|
385
|
+
onValueUpdate: handleValueUpdate,
|
|
386
|
+
items: dropdownItems
|
|
387
|
+
},
|
|
388
|
+
hideOnClickOutside: false,
|
|
389
|
+
selectedValues: [],
|
|
390
|
+
messageOnNoResults: messageOnNoResults !== null && messageOnNoResults !== void 0 ? messageOnNoResults : '',
|
|
391
|
+
setSelectedValues: function setSelectedValues() {},
|
|
392
|
+
isOpen: dropdownIsOpen,
|
|
393
|
+
setIsOpen: setDropdownIsOpen,
|
|
394
|
+
filter: '',
|
|
486
395
|
isButton: false,
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
className: dropdownIsOpen ? 'show' : ''
|
|
490
|
-
}, getElements()), validationMessage && validationType === 'warning' ? /*#__PURE__*/React.createElement(_styling.WarningMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|
|
396
|
+
id: "".concat(inputId, "_dropdowncontent")
|
|
397
|
+
}), validationMessage && validationType === 'warning' ? /*#__PURE__*/React.createElement(_styling.WarningMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|
|
491
398
|
size: "20px",
|
|
492
399
|
color: _styles.COLORS.critical_500
|
|
493
400
|
}), /*#__PURE__*/React.createElement("span", null, validationMessage)) : validationType === 'error' && /*#__PURE__*/React.createElement(_styling.ErrorMessage, null, /*#__PURE__*/React.createElement(_SystemIcons.TechnicalWarning, {
|