react-core-ts 1.9.18 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/AutoCompleteWithTabFilter.d.ts +4 -0
  2. package/dist/AutoCompleteWithTabFilter.js +743 -0
  3. package/dist/AutoCompleteWithTabFilter.js.map +1 -0
  4. package/dist/AutoCompleteWithTreeStructure.js +3 -3
  5. package/dist/AutoCompleteWithTreeStructure.js.map +1 -1
  6. package/dist/ReactTextField.js +1 -1
  7. package/dist/ReactTextField.js.map +1 -1
  8. package/dist/commontypes.d.ts +13 -1
  9. package/dist/dropdownFilterTabs.d.ts +7 -0
  10. package/dist/dropdownFilterTabs.js +647 -0
  11. package/dist/dropdownFilterTabs.js.map +1 -0
  12. package/dist/index.d.ts +1 -0
  13. package/dist/index.js +3 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/styles/components/selectedautocomplete.css +11 -0
  16. package/dist/styles/styles/components/autocomplete.css +717 -0
  17. package/dist/styles/styles/components/selectedautocomplete.css +179 -0
  18. package/dist/styles/styles/components/tooltip.css +497 -0
  19. package/dist/styles/styles/components/treedropdown.css +97 -0
  20. package/dist/styles/styles/global.css +8 -0
  21. package/dist/utilities/icons.d.ts +1 -0
  22. package/dist/utilities/icons.js +6 -1
  23. package/dist/utilities/icons.js.map +1 -1
  24. package/docs/App.tsx +109 -8
  25. package/package.json +1 -1
  26. package/src/AutoCompleteWithTabFilter.tsx +1244 -0
  27. package/src/AutoCompleteWithTreeStructure.tsx +4 -8
  28. package/src/ReactTextField.tsx +12 -4
  29. package/src/commontypes.ts +14 -1
  30. package/src/dropdownFilterTabs.tsx +1002 -0
  31. package/src/index.tsx +1 -0
  32. package/src/styles/components/selectedautocomplete.css +11 -0
  33. package/src/utilities/icons.tsx +10 -0
@@ -0,0 +1,647 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
+ if (ar || !(i in from)) {
75
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
+ ar[i] = from[i];
77
+ }
78
+ }
79
+ return to.concat(ar || Array.prototype.slice.call(from));
80
+ };
81
+ var __importDefault = (this && this.__importDefault) || function (mod) {
82
+ return (mod && mod.__esModule) ? mod : { "default": mod };
83
+ };
84
+ Object.defineProperty(exports, "__esModule", { value: true });
85
+ var jsx_runtime_1 = require("react/jsx-runtime");
86
+ var react_1 = __importStar(require("react"));
87
+ var react_dom_1 = __importDefault(require("react-dom"));
88
+ var DropdownList_1 = __importDefault(require("./components/DropdownList"));
89
+ var autosuggestions_1 = require("./utilities/autosuggestions");
90
+ var debounce_1 = require("./utilities/debounce");
91
+ var deepEqual_1 = require("./utilities/deepEqual");
92
+ var filterSuggestions_1 = require("./utilities/filterSuggestions");
93
+ var icons_1 = require("./utilities/icons");
94
+ var NewTooltip_1 = __importDefault(require("./utilities/NewTooltip"));
95
+ var getKeyValue_1 = require("./utilities/getKeyValue");
96
+ var DropdownFilterTabs = (0, react_1.forwardRef)(function (_a, ref) {
97
+ var label = _a.label, onChange = _a.onChange, _b = _a.getData, getData = _b === void 0 ? function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
98
+ return [2 /*return*/, []];
99
+ }); }); } : _b, _c = _a.data, data = _c === void 0 ? [] : _c, errors = _a.errors, _d = _a.required, required = _d === void 0 ? false : _d, name = _a.name, _e = _a.fullWidth, fullWidth = _e === void 0 ? false : _e, placeholder = _a.placeholder, id = _a.id, _f = _a.type, type = _f === void 0 ? 'custom_select' : _f, _g = _a.selectedItems, propsSeelctedItems = _g === void 0 ? [] : _g, _h = _a.readOnly, readOnly = _h === void 0 ? false : _h, _j = _a.disabled, disabled = _j === void 0 ? false : _j, value = _a.value, _k = _a.searchValue, propsSearchValue = _k === void 0 ? '' : _k, _l = _a.isMultiple, isMultiple = _l === void 0 ? false : _l, _m = _a.desc, desc = _m === void 0 ? 'name' : _m, _o = _a.descId, descId = _o === void 0 ? 'id' : _o, singleSelect = _a.singleSelect, className = _a.className, _p = _a.async, async = _p === void 0 ? false : _p, paginationEnabled = _a.paginationEnabled, _q = _a.initialLoad, initialLoad = _q === void 0 ? false : _q, actionLabel = _a.actionLabel, handleAction = _a.handleAction, nextBlock = _a.nextBlock, notDataMessage = _a.notDataMessage, initialDataMessage = _a.initialDataMessage, onFocus = _a.onFocus, onSearchValueChange = _a.onSearchValueChange, _r = _a.expandable, expandable = _r === void 0 ? false : _r, _s = _a.textCount, textCount = _s === void 0 ? 10 : _s, _t = _a.itemCount, itemCount = _t === void 0 ? 1 : _t, scrollRef = _a.scrollRef, _u = _a.countOnly, countOnly = _u === void 0 ? true : _u, _v = _a.typeOnlyFetch, typeOnlyFetch = _v === void 0 ? false : _v, _w = _a.tab, tab = _w === void 0 ? [] : _w, _x = _a.clearTabSwitch, clearTabSwitch = _x === void 0 ? false : _x, _y = _a.selectedRowLimit, selectedRowLimit = _y === void 0 ? 2 : _y, _z = _a.topMargin, topMargin = _z === void 0 ? 0 : _z, _0 = _a.currentTab, currentTab = _0 === void 0 ? 0 : _0, _1 = _a.selectedLabel, selectedLabel = _1 === void 0 ? '' : _1, _2 = _a.viewMode, viewMode = _2 === void 0 ? false : _2, handleUpdateParent = _a.handleUpdateParent, _3 = _a.shortCode, shortCode = _3 === void 0 ? '' : _3, _4 = _a.labelCode, labelCode = _4 === void 0 ? '' : _4, _5 = _a.tabInlineSearch, tabInlineSearch = _5 === void 0 ? true : _5, _6 = _a.matchFromStart, matchFromStart = _6 === void 0 ? false : _6, _7 = _a.autoDropdown, autoDropdown = _7 === void 0 ? false : _7, _8 = _a.enableSelectAll, enableSelectAll = _8 === void 0 ? false : _8, dropdownRef = _a.dropdownRef, _9 = _a.open, open = _9 === void 0 ? false : _9;
100
+ var selItemRef = (0, react_1.useRef)(null);
101
+ var itemsRef = (0, react_1.useRef)(null);
102
+ var dropdownSelectedRef = (0, react_1.useRef)(null);
103
+ var tabRef = (0, react_1.useRef)(null);
104
+ var dropLevelRef = (0, react_1.useRef)('bottom');
105
+ // State Hooks Section
106
+ var _10 = (0, react_1.useState)(true), isInitialRender = _10[0], setIsInitialRender = _10[1];
107
+ var _11 = (0, react_1.useState)(value), inputValue = _11[0], setInputValue = _11[1];
108
+ var _12 = (0, react_1.useState)(propsSearchValue), searchValue = _12[0], setSearchValue = _12[1];
109
+ var _13 = (0, react_1.useState)(''), searchOldValue = _13[0], setSearchOldValue = _13[1];
110
+ var _14 = (0, react_1.useState)(1), nextPage = _14[0], setNextPage = _14[1];
111
+ var _15 = (0, react_1.useState)(open), dropOpen = _15[0], setDropOpen = _15[1];
112
+ var _16 = (0, react_1.useState)([]), selectedItems = _16[0], setSelectedItems = _16[1];
113
+ var _17 = (0, react_1.useState)(false), showAllSelected = _17[0], setShowAllSelected = _17[1];
114
+ var _18 = (0, react_1.useState)(184), selHeight = _18[0], setSelHeight = _18[1];
115
+ var _19 = (0, react_1.useState)(1), expandArrowClick = _19[0], setExpandArrowClick = _19[1];
116
+ var _20 = (0, react_1.useState)(true), visible = _20[0], setVisible = _20[1];
117
+ var _21 = (0, react_1.useState)(currentTab), activeTab = _21[0], setActiveTab = _21[1];
118
+ var _22 = (0, react_1.useState)(0), focusedIndex = _22[0], setFocusedIndex = _22[1];
119
+ var itemRefs = (0, react_1.useRef)([]);
120
+ // API call for suggestions through a custom hook
121
+ var inputRef = (0, react_1.useRef)(null);
122
+ var dropRef = (0, react_1.useRef)(null);
123
+ var inputSearchRef = (0, react_1.useRef)(null);
124
+ var dropBtnRef = (0, react_1.useRef)(null);
125
+ (0, react_1.useImperativeHandle)(ref, function () { return inputRef.current; });
126
+ var _23 = (0, react_1.useState)({
127
+ top: 0,
128
+ left: 0,
129
+ width: 200,
130
+ }), dropdownStyle = _23[0], setDropdownStyle = _23[1];
131
+ var _24 = (0, react_1.useState)(false), selectAll = _24[0], setSelectAll = _24[1];
132
+ var _25 = (0, react_1.useState)(false), refetchData = _25[0], setRefetchData = _25[1];
133
+ var _26 = (0, react_1.useState)(false), allDataLoaded = _26[0], setAllDataLoaded = _26[1];
134
+ // Filter selected items based on current active tab
135
+ var currentTabId = tab.length > 0 ? tab[activeTab].id : undefined;
136
+ var filteredSelectedItems = (0, react_1.useMemo)(function () {
137
+ return selectedItems.filter(function (item) { return item.tabId === currentTabId; });
138
+ }, [selectedItems, currentTabId]);
139
+ var originalOverflow = '';
140
+ var hasScrollbar = false;
141
+ (0, react_1.useEffect)(function () {
142
+ setDropOpen(open);
143
+ }, [open]);
144
+ var adjustDropdownPosition = function () {
145
+ var _a, _b, _c;
146
+ if (dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current) {
147
+ var inputRect_1 = (_a = dropdownRef === null || dropdownRef === void 0 ? void 0 : dropdownRef.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
148
+ var dropdownPosition_1 = {
149
+ left: inputRect_1.left + window.scrollX,
150
+ width: inputRect_1.width,
151
+ top: 0,
152
+ };
153
+ // Check if there's enough space below the input for the dropdown
154
+ var spaceBelow = window.innerHeight - inputRect_1.bottom;
155
+ var spaceAbove = inputRect_1.top + window.scrollY;
156
+ var dropdownHeight = viewMode ? 160 : 300; // Assume a fixed height or calculate based on content
157
+ var defaultHeight = 184;
158
+ if (countOnly) {
159
+ if (dropdownSelectedRef === null || dropdownSelectedRef === void 0 ? void 0 : dropdownSelectedRef.current)
160
+ dropdownHeight += (_b = dropdownSelectedRef === null || dropdownSelectedRef === void 0 ? void 0 : dropdownSelectedRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight;
161
+ }
162
+ if (tab.length > 0) {
163
+ if (tabRef === null || tabRef === void 0 ? void 0 : tabRef.current)
164
+ dropdownHeight += (_c = tabRef === null || tabRef === void 0 ? void 0 : tabRef.current) === null || _c === void 0 ? void 0 : _c.clientHeight;
165
+ }
166
+ if (spaceBelow >= dropdownHeight) {
167
+ dropLevelRef.current = 'bottom';
168
+ dropdownPosition_1.top =
169
+ inputRect_1.top + window.scrollY + inputRect_1.height;
170
+ setSelHeight(defaultHeight);
171
+ }
172
+ else if (spaceAbove >= dropdownHeight) {
173
+ var sHeight = tabInlineSearch ? 73 : 113;
174
+ sHeight =
175
+ sHeight -
176
+ ((filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > 0 && enableSelectAll && isMultiple
177
+ ? 32
178
+ : 0);
179
+ dropLevelRef.current = 'top';
180
+ dropdownPosition_1.top =
181
+ inputRect_1.top +
182
+ window.scrollY -
183
+ dropdownHeight +
184
+ sHeight +
185
+ topMargin;
186
+ setSelHeight(defaultHeight);
187
+ }
188
+ else {
189
+ dropLevelRef.current = 'bottom';
190
+ dropdownPosition_1.top =
191
+ inputRect_1.top + window.scrollY + inputRect_1.height;
192
+ if (itemsRef === null || itemsRef === void 0 ? void 0 : itemsRef.current) {
193
+ var totalH = showAllSelected ? 148 : defaultHeight;
194
+ var selH = totalH - (dropdownHeight - spaceBelow);
195
+ setSelHeight(selH < 50 ? 50 : selH);
196
+ }
197
+ }
198
+ // setDropdownStyle({
199
+ // ...dropdownPosition,
200
+ // });
201
+ setDropdownStyle(function (prevStyle) { return (__assign(__assign({}, prevStyle), { transform: "translateY(".concat(dropdownPosition_1.top, "px)"), left: inputRect_1.left + window.scrollX, width: inputRect_1.width })); });
202
+ }
203
+ };
204
+ (0, react_1.useEffect)(function () {
205
+ window.addEventListener('resize', adjustDropdownPosition);
206
+ adjustDropdownPosition();
207
+ return function () {
208
+ window.removeEventListener('resize', adjustDropdownPosition);
209
+ };
210
+ }, [dropOpen, expandArrowClick]);
211
+ var _27 = (0, autosuggestions_1.useSuggestions)(getData, data, dropOpen, async, paginationEnabled, initialLoad, inputValue, isMultiple, setNextPage, selectedItems, typeOnlyFetch
212
+ // nextBlock
213
+ ), suggestions = _27.suggestions, isLoading = _27.isLoading, handlePickSuggestions = _27.handlePickSuggestions, resetSuggections = _27.resetSuggections;
214
+ // Handling the selection of a suggestion
215
+ var handleSuggestionClick = (0, react_1.useCallback)(function (suggestion, idx) {
216
+ if (isMultiple) {
217
+ setFocusedIndex(idx);
218
+ setSelectedItems(function (prev) {
219
+ var isAdded = prev && prev.length > 0
220
+ ? prev.some(function (item) {
221
+ return (0, getKeyValue_1.getKeyValue)(item, descId, 'id') ===
222
+ (0, getKeyValue_1.getKeyValue)(suggestion, descId, 'id');
223
+ })
224
+ : false;
225
+ if (isAdded) {
226
+ return prev.filter(function (item) {
227
+ return (0, getKeyValue_1.getKeyValue)(item, descId, 'id') !==
228
+ (0, getKeyValue_1.getKeyValue)(suggestion, descId, 'id');
229
+ });
230
+ }
231
+ else {
232
+ // Include tab ID when adding suggestion
233
+ var suggestionWithTabId = __assign(__assign({}, suggestion), { tabId: tab.length > 0 ? tab[activeTab].id : undefined });
234
+ return __spreadArray(__spreadArray([], prev, true), [suggestionWithTabId], false);
235
+ }
236
+ });
237
+ }
238
+ else {
239
+ setFocusedIndex(idx);
240
+ setInputValue(String(suggestion[desc]));
241
+ setSearchValue('');
242
+ onChange(suggestion);
243
+ setDropOpen(false);
244
+ }
245
+ }, [activeTab, tab, descId, desc, onChange, isMultiple]);
246
+ // Adding debounce to avoid making API calls on every keystroke
247
+ var debouncedUpdate = (0, react_1.useCallback)((0, debounce_1.debounce)(function (value, tabVal) {
248
+ setSearchOldValue(value);
249
+ handlePickSuggestions(value, 1, false, tabVal);
250
+ }, 500), []);
251
+ var handleChangeWithDebounce = function (value) {
252
+ if ((type === 'auto_complete' || type === 'auto_suggestion') && async) {
253
+ var activeTabVal = tab.length > 0 ? tab === null || tab === void 0 ? void 0 : tab[activeTab].id : undefined;
254
+ debouncedUpdate(value, activeTabVal);
255
+ }
256
+ };
257
+ var handleMultiSelect = function (e, suggestion) {
258
+ var checked = e.target.checked;
259
+ if (isMultiple) {
260
+ if (checked) {
261
+ // Include tab ID when adding suggestion
262
+ var suggestionWithTabId_1 = __assign(__assign({}, suggestion), { tabId: tab.length > 0 ? tab[activeTab].id : undefined });
263
+ setSelectedItems(function (prev) { return __spreadArray(__spreadArray([], prev, true), [suggestionWithTabId_1], false); });
264
+ }
265
+ else {
266
+ setSelectedItems(function (prev) {
267
+ return prev.filter(function (item, i) {
268
+ return (0, getKeyValue_1.getKeyValue)(item, descId, 'id') !==
269
+ (0, getKeyValue_1.getKeyValue)(suggestion, descId, 'id');
270
+ });
271
+ });
272
+ }
273
+ }
274
+ else {
275
+ if (checked) {
276
+ setInputValue(String(suggestion[desc]));
277
+ onChange(suggestion);
278
+ }
279
+ else {
280
+ setInputValue('');
281
+ }
282
+ }
283
+ };
284
+ (0, react_1.useEffect)(function () {
285
+ // Only update if different
286
+ if (!(0, deepEqual_1.deepEqual)(selectedItems, propsSeelctedItems)) {
287
+ setSelectedItems(propsSeelctedItems);
288
+ }
289
+ // eslint-disable-next-line react-hooks/exhaustive-deps
290
+ }, [propsSeelctedItems]);
291
+ // Effect to set the input value whenever `value` prop changes
292
+ (0, react_1.useEffect)(function () {
293
+ setInputValue(value !== null && value !== void 0 ? value : '');
294
+ }, [value]);
295
+ var handleSuggestionChange = function (e) {
296
+ var value = e.target.value;
297
+ //setVisibleDrop();
298
+ var trimStart = value.trimStart();
299
+ setSearchValue(trimStart);
300
+ handleChangeWithDebounce(trimStart);
301
+ setAllDataLoaded(false);
302
+ };
303
+ var handleClearSelected = function () {
304
+ // Only clear items from current tab
305
+ setSelectedItems(function (prev) {
306
+ var remainingItems = prev.filter(function (item) { return item.tabId !== currentTabId; });
307
+ return remainingItems;
308
+ });
309
+ setShowAllSelected(false);
310
+ if (searchValue && type === 'auto_suggestion' && tabInlineSearch) {
311
+ setSearchValue('');
312
+ }
313
+ if (async && type === 'auto_suggestion' && tabInlineSearch)
314
+ resetSuggections === null || resetSuggections === void 0 ? void 0 : resetSuggections();
315
+ };
316
+ var generateClassName = (0, react_1.useCallback)(function () {
317
+ return "qbs-textfield-default ".concat(className, " ").concat(errors && (errors === null || errors === void 0 ? void 0 : errors.message) ? 'textfield-error' : 'textfield', " ").concat(expandable ? 'expandable' : '');
318
+ }, [errors, name]);
319
+ var handleRemoveSelectedItem = (0, react_1.useCallback)(function (index) {
320
+ var itemToRemove = filteredSelectedItems[index];
321
+ setSelectedItems(function (prev) {
322
+ return prev.filter(function (item) {
323
+ return (0, getKeyValue_1.getKeyValue)(item, descId, 'id') !== (0, getKeyValue_1.getKeyValue)(itemToRemove, descId, 'id');
324
+ });
325
+ });
326
+ }, [filteredSelectedItems, descId]);
327
+ var uniqueDropArrowId = "".concat(name, "-drop-arrow-selected-list-icon");
328
+ (0, react_1.useEffect)(function () {
329
+ var handleClickOutside = function (event) {
330
+ var _a;
331
+ if (dropRef.current &&
332
+ event.target instanceof Node &&
333
+ !dropRef.current.contains(event.target) &&
334
+ ((_a = event.target) === null || _a === void 0 ? void 0 : _a.id) !== uniqueDropArrowId) {
335
+ setTimeout(function () {
336
+ setDropOpen(false);
337
+ if (!typeOnlyFetch)
338
+ setSearchValue('');
339
+ }, 200);
340
+ //setSearchValue("");
341
+ }
342
+ };
343
+ document.addEventListener('mousedown', handleClickOutside);
344
+ window.addEventListener('scroll', handleClickOutside);
345
+ var scrollableDivs = document.querySelectorAll('div[style*="overflow"], .overflow-auto, .overflow-y-auto, .overflow-x-auto');
346
+ scrollableDivs.forEach(function (div) {
347
+ return div.addEventListener('scroll', handleClickOutside);
348
+ });
349
+ if (scrollRef && scrollRef.current && scrollRef.current !== null) {
350
+ scrollRef.current.addEventListener('scroll', handleClickOutside);
351
+ }
352
+ return function () {
353
+ document.removeEventListener('mousedown', handleClickOutside);
354
+ window.removeEventListener('scroll', handleClickOutside);
355
+ scrollableDivs.forEach(function (div) {
356
+ return div.removeEventListener('scroll', handleClickOutside);
357
+ });
358
+ if (scrollRef && scrollRef.current && scrollRef.current !== null) {
359
+ scrollRef.current.removeEventListener('scroll', handleClickOutside);
360
+ }
361
+ };
362
+ }, []);
363
+ // Filtering suggestions based on type and search value
364
+ var selected = isMultiple ? selectedItems : inputValue;
365
+ var filteredData = (0, filterSuggestions_1.filterSuggestions)(suggestions, searchValue, type, desc, selected, async, false, true, matchFromStart);
366
+ var prevSelectedItemsRef = (0, react_1.useRef)([]);
367
+ (0, react_1.useEffect)(function () {
368
+ if (isInitialRender) {
369
+ setIsInitialRender(false);
370
+ }
371
+ else {
372
+ // Only call onChange if selectedItems actually changed
373
+ if (!(0, deepEqual_1.deepEqual)(selectedItems, prevSelectedItemsRef.current)) {
374
+ onChange(selectedItems);
375
+ prevSelectedItemsRef.current = selectedItems;
376
+ }
377
+ }
378
+ adjustDropdownPosition();
379
+ setTimeout(function () {
380
+ adjustDropdownPosition();
381
+ }, 200);
382
+ // eslint-disable-next-line react-hooks/exhaustive-deps
383
+ }, [selectedItems]);
384
+ (0, react_1.useEffect)(function () {
385
+ adjustDropdownPosition();
386
+ setTimeout(function () {
387
+ adjustDropdownPosition();
388
+ }, 200);
389
+ // eslint-disable-next-line react-hooks/exhaustive-deps
390
+ }, [filteredData]);
391
+ (0, react_1.useEffect)(function () {
392
+ // Handle keyboard navigation
393
+ var handleKeyDown = function (e) {
394
+ var _a, _b;
395
+ if (!dropOpen)
396
+ return;
397
+ var atBottom = focusedIndex === filteredData.length - 1;
398
+ var atTop = focusedIndex === 0;
399
+ switch (e.key) {
400
+ case 'ArrowDown':
401
+ e.preventDefault();
402
+ if (itemsRef.current) {
403
+ if (!atBottom) {
404
+ itemsRef.current.scrollTop +=
405
+ ((_a = itemRefs.current[focusedIndex]) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 50;
406
+ }
407
+ else {
408
+ itemsRef.current.scrollTop = 0;
409
+ }
410
+ }
411
+ setFocusedIndex(function (prev) { return (prev + 1) % (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length); });
412
+ break;
413
+ case 'ArrowUp':
414
+ e.preventDefault();
415
+ if (itemsRef.current) {
416
+ if (!atTop) {
417
+ itemsRef.current.scrollTop -=
418
+ ((_b = itemRefs.current[focusedIndex]) === null || _b === void 0 ? void 0 : _b.offsetHeight) || 50;
419
+ }
420
+ else {
421
+ itemsRef.current.scrollTop = 0;
422
+ }
423
+ }
424
+ setFocusedIndex(function (prev) { return (prev - 1 + (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length)) % (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length); });
425
+ break;
426
+ case 'Enter':
427
+ e.preventDefault();
428
+ if (filteredData && filteredData.length > 0)
429
+ handleSuggestionClick(filteredData[focusedIndex], focusedIndex);
430
+ break;
431
+ case 'Escape':
432
+ e.preventDefault();
433
+ setDropOpen(false);
434
+ break;
435
+ default:
436
+ break;
437
+ }
438
+ };
439
+ window.addEventListener('keydown', handleKeyDown);
440
+ return function () {
441
+ window.removeEventListener('keydown', handleKeyDown);
442
+ };
443
+ }, [filteredData, dropOpen, isLoading, focusedIndex]);
444
+ var isSelected = function (item, selectedItems) {
445
+ if (Array.isArray(selectedItems)) {
446
+ return selectedItems.some(function (selectedItem) {
447
+ return (0, getKeyValue_1.getKeyValue)(selectedItem, desc, 'name') === (0, getKeyValue_1.getKeyValue)(item, desc, 'name') ||
448
+ (0, getKeyValue_1.getKeyValue)(selectedItem, descId, 'id') === (0, getKeyValue_1.getKeyValue)(item, descId, 'id');
449
+ });
450
+ }
451
+ else {
452
+ return ((0, getKeyValue_1.getKeyValue)(item, desc, 'name') === (0, getKeyValue_1.safeToLowerString)(selectedItems) ||
453
+ (0, getKeyValue_1.getKeyValue)(item, descId, 'id') === (0, getKeyValue_1.safeToLowerString)(selectedItems));
454
+ }
455
+ };
456
+ var handleLoadMore = function () {
457
+ if (paginationEnabled) {
458
+ handlePickSuggestions(searchValue, nextPage + 1, true);
459
+ setNextPage(nextPage + 1);
460
+ }
461
+ };
462
+ var handleShowAllSelected = (0, react_1.useCallback)(function (enabled) {
463
+ setExpandArrowClick(expandArrowClick + 1);
464
+ if (enabled) {
465
+ setShowAllSelected(true);
466
+ }
467
+ else {
468
+ setShowAllSelected(false);
469
+ }
470
+ }, [expandArrowClick]);
471
+ var handleCollapseArrowClick = (0, react_1.useCallback)(function () {
472
+ setExpandArrowClick(expandArrowClick + 1);
473
+ setShowAllSelected(false);
474
+ }, [expandArrowClick]);
475
+ var tooltipContent = (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > itemCount
476
+ ? filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.slice(itemCount).map(function (item) { return item[desc]; }).join(', ')
477
+ : '';
478
+ var handleTabClick = (0, react_1.useCallback)(function (index) {
479
+ if (activeTab !== index) {
480
+ if (clearTabSwitch) {
481
+ handleClearSelected();
482
+ if (tabInlineSearch) {
483
+ setSearchValue('');
484
+ setInputValue('');
485
+ handlePickSuggestions('', 1);
486
+ }
487
+ else {
488
+ resetSuggections === null || resetSuggections === void 0 ? void 0 : resetSuggections();
489
+ var activeTabVal = tab.length > 0 ? tab === null || tab === void 0 ? void 0 : tab[index].id : undefined;
490
+ handlePickSuggestions(searchValue, 1, false, activeTabVal);
491
+ }
492
+ setAllDataLoaded(false);
493
+ }
494
+ else {
495
+ resetSuggections === null || resetSuggections === void 0 ? void 0 : resetSuggections();
496
+ var activeTabVal = tab.length > 0 ? tab === null || tab === void 0 ? void 0 : tab[index].id : undefined;
497
+ handlePickSuggestions(searchValue, 1, false, activeTabVal);
498
+ }
499
+ setActiveTab(index);
500
+ }
501
+ }, [activeTab, clearTabSwitch, handleClearSelected, tabInlineSearch, tab, searchValue, handlePickSuggestions, resetSuggections]);
502
+ var getSelectedRowLimit = (0, react_1.useCallback)(function () {
503
+ var maxHeight = 36;
504
+ if ((selItemRef === null || selItemRef === void 0 ? void 0 : selItemRef.current) && (selItemRef === null || selItemRef === void 0 ? void 0 : selItemRef.current.clientWidth) < 300) {
505
+ maxHeight = 24;
506
+ }
507
+ return selectedRowLimit * maxHeight + 5;
508
+ }, [selectedRowLimit]);
509
+ var getSelectedItems = (0, react_1.useCallback)(function (dropdown) {
510
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: selItemRef, className: "selected-items-outer-container", style: { maxHeight: "".concat(getSelectedRowLimit(), "px") } }, { children: [filteredSelectedItems
511
+ .slice(0, (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > itemCount
512
+ ? showAllSelected
513
+ ? filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length
514
+ : itemCount
515
+ : filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length)
516
+ .map(function (item, index) {
517
+ var _a, _b;
518
+ return ((0, jsx_runtime_1.jsx)("div", __assign({ className: "selected-items-container" }, { children: (0, jsx_runtime_1.jsx)(NewTooltip_1.default, __assign({ title: item === null || item === void 0 ? void 0 : item[desc], enabled: ((_a = String(item === null || item === void 0 ? void 0 : item[desc])) === null || _a === void 0 ? void 0 : _a.length) > textCount }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: "selected-item" }, { children: [((_b = String(item === null || item === void 0 ? void 0 : item[desc])) === null || _b === void 0 ? void 0 : _b.length) > textCount
519
+ ? "".concat(String(item === null || item === void 0 ? void 0 : item[desc]).substring(0, textCount), "...")
520
+ : item === null || item === void 0 ? void 0 : item[desc], !viewMode && ((0, jsx_runtime_1.jsx)("button", __assign({ onClick: function () { return handleRemoveSelectedItem(index); }, className: "remove-item-btn", "aria-label": "Remove ".concat(item === null || item === void 0 ? void 0 : item[desc]) }, { children: "X" })))] }), item.id) })) }), index));
521
+ }), (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > itemCount && !showAllSelected && ((0, jsx_runtime_1.jsx)("div", __assign({ className: "selected-items-container" }, { children: (0, jsx_runtime_1.jsx)(NewTooltip_1.default, __assign({ title: tooltipContent, enabled: true }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: "selected-item-more qbs-rounded-full qbs-min-h-6 qbs-min-w-6 qbs-p-1 ".concat(dropdown ? 'qbs-cursor-pointer' : ''), onClick: function () {
522
+ handleShowAllSelected(dropdown);
523
+ } }, { children: ["+", (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) - itemCount, ' ', (0, jsx_runtime_1.jsx)("span", __assign({ className: "qbs-hidden" }, { children: "more" }))] })) })) })))] })));
524
+ }, [filteredSelectedItems, getSelectedRowLimit, itemCount, showAllSelected, desc, textCount, viewMode, handleRemoveSelectedItem, tooltipContent, handleShowAllSelected]);
525
+ // Check if any items are selected under a specific tab
526
+ var hasSelectedItemsInTab = (0, react_1.useCallback)(function (tabIndex) {
527
+ var tabId = tab.length > 0 ? tab[tabIndex].id : undefined;
528
+ return selectedItems.some(function (item) { return item.tabId === tabId; });
529
+ }, [selectedItems, tab]);
530
+ var getTabItems = (0, react_1.useCallback)(function () {
531
+ return ((0, jsx_runtime_1.jsx)("ul", __assign({ className: "qbs-flex qbs-flex-wrap qbs-w-full qbs-tab qbs-mb-2 -qbs-mt-2", ref: tabRef }, { children: tab.map(function (item, idx) {
532
+ var hasSelectedItems = hasSelectedItemsInTab(idx);
533
+ return ((0, jsx_runtime_1.jsx)("li", __assign({ className: "qbs-flex-1 qbs-tab-items ".concat(hasSelectedItems ? 'qbs-tab-has-selected-items' : '') }, { children: (0, jsx_runtime_1.jsx)("span", __assign({ className: "qbs-inline-block qbs-tab-item qbs-text-sm qbs-cursor-pointer qbs-w-full qbs-text-center qbs-p-1 qbs-border-b-2 ".concat(activeTab === idx ? 'qbs-tab-active-item' : ''), onClick: function () {
534
+ handleTabClick(idx);
535
+ } }, { children: item.label })) }), "tab-".concat(idx)));
536
+ }) })));
537
+ }, [tab, hasSelectedItemsInTab, activeTab, handleTabClick]);
538
+ var handleSelectAll = (0, react_1.useCallback)(function () {
539
+ if (isMultiple) {
540
+ if (selectAll) {
541
+ // Remove only items from current tab
542
+ setSelectedItems(function (prev) {
543
+ return prev.filter(function (item) {
544
+ return item.tabId !== currentTabId ||
545
+ !filteredData.some(function (f) {
546
+ return (0, getKeyValue_1.getKeyValue)(f, descId, 'id') === (0, getKeyValue_1.getKeyValue)(item, descId, 'id');
547
+ });
548
+ });
549
+ });
550
+ }
551
+ else {
552
+ // Add only items from current tab - batch all updates in single setState
553
+ setSelectedItems(function (prev) {
554
+ var newItems = [];
555
+ var currentTabId = tab.length > 0 ? tab[activeTab].id : undefined;
556
+ filteredData.forEach(function (suggestion) {
557
+ var isAdded = prev.some(function (item) {
558
+ return (0, getKeyValue_1.getKeyValue)(item, descId, 'id') ===
559
+ (0, getKeyValue_1.getKeyValue)(suggestion, descId, 'id');
560
+ });
561
+ if (!isAdded) {
562
+ // Include tab ID when adding suggestion
563
+ var suggestionWithTabId = __assign(__assign({}, suggestion), { tabId: currentTabId });
564
+ newItems.push(suggestionWithTabId);
565
+ }
566
+ });
567
+ return __spreadArray(__spreadArray([], prev, true), newItems, true);
568
+ });
569
+ }
570
+ }
571
+ }, [isMultiple, selectAll, currentTabId, filteredData, descId, tab, activeTab]);
572
+ var handleOpenDropdown = function (e) {
573
+ if (!suggestions || (suggestions === null || suggestions === void 0 ? void 0 : suggestions.length) === 0 || refetchData) {
574
+ if (autoDropdown && (inputValue === '' || inputValue.trim() === '')) {
575
+ if (tabInlineSearch && tab.length > 0) {
576
+ var activeTabVal = tab.length > 0 ? tab === null || tab === void 0 ? void 0 : tab[activeTab].id : undefined;
577
+ handlePickSuggestions('*', 1, false, activeTabVal);
578
+ }
579
+ else {
580
+ handlePickSuggestions('*', 1);
581
+ }
582
+ setRefetchData(false);
583
+ setAllDataLoaded(true);
584
+ }
585
+ else if (!refetchData && inputValue !== '') {
586
+ if (tabInlineSearch && tab.length > 0) {
587
+ var activeTabVal = tab.length > 0 ? tab === null || tab === void 0 ? void 0 : tab[activeTab].id : undefined;
588
+ handlePickSuggestions(inputValue, 1, false, activeTabVal);
589
+ }
590
+ else {
591
+ handlePickSuggestions(inputValue, 1);
592
+ }
593
+ setRefetchData(true);
594
+ setAllDataLoaded(false);
595
+ }
596
+ }
597
+ };
598
+ (0, react_1.useEffect)(function () {
599
+ var allSelected = (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > 0 && (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > 0 &&
600
+ filteredData.every(function (item) {
601
+ return filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.some(function (s) {
602
+ return (0, getKeyValue_1.getKeyValue)(s, descId, 'id') === (0, getKeyValue_1.getKeyValue)(item, descId, 'id');
603
+ });
604
+ });
605
+ setSelectAll(allSelected);
606
+ }, [filteredData, filteredSelectedItems, descId]);
607
+ (0, react_1.useEffect)(function () {
608
+ handleUpdateParent === null || handleUpdateParent === void 0 ? void 0 : handleUpdateParent(dropOpen, dropLevelRef.current);
609
+ }, [dropOpen, dropLevelRef.current]);
610
+ // Auto-focus search input when dropdown opens with tabInlineSearch
611
+ (0, react_1.useEffect)(function () {
612
+ if (dropOpen && visible && tabInlineSearch && type === 'auto_suggestion' && !expandable) {
613
+ // Small delay to ensure the dropdown is fully rendered
614
+ setTimeout(function () {
615
+ if (inputSearchRef.current) {
616
+ inputSearchRef.current.focus();
617
+ }
618
+ }, 50);
619
+ }
620
+ }, [dropOpen, visible, tabInlineSearch, type, expandable]);
621
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: dropOpen &&
622
+ react_dom_1.default.createPortal((0, jsx_runtime_1.jsxs)("div", __assign({ ref: dropRef, style: __assign(__assign({}, dropdownStyle), { minHeight: viewMode ? 100 : 192, visibility: visible ? 'visible' : 'hidden', opacity: visible ? 1 : 0, transition: 'opacity 0.2s ease-in-out' }), className: "qbs-autocomplete-suggestions qbs-autocomplete-selected-suggestions ".concat(viewMode ? 'qbs-dropdown-selected-preview' : '', " ").concat(viewMode && (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) === 0 ? 'hidden' : '') }, { children: [!viewMode && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: tab.length > 0 && getTabItems() }), type === 'auto_suggestion' &&
623
+ !expandable &&
624
+ tabInlineSearch && ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { position: 'relative' }, className: "react-core-ts-search-container qbs-autocomplete-selected-suggestions-outer" }, { children: [(0, jsx_runtime_1.jsx)("span", __assign({ className: "dropdown-search-icon" }, { children: (0, jsx_runtime_1.jsx)(icons_1.Search, {}) })), (0, jsx_runtime_1.jsx)("input", { className: "dropdown-search-input", onChange: handleSuggestionChange, value: searchValue, placeholder: "Type to search", autoComplete: "off", ref: inputSearchRef }), (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: autoDropdown && !disabled && !readOnly && ((0, jsx_runtime_1.jsx)("button", __assign({ disabled: disabled !== null && disabled !== void 0 ? disabled : readOnly, onClick: function (e) { return handleOpenDropdown(e); }, className: "text-[#667085] focus-visible:outline-slate-100 absolute right-2 qbs-all-dropdown-btn", "data-testid": "drop-arrow", type: "button", id: "autocomplete-drop-icon", ref: dropBtnRef }, { children: (0, jsx_runtime_1.jsx)(icons_1.AllDropArrow, { type: !allDataLoaded ? 'down' : 'up', uniqueId: "all-dropdow-arrow-icon", className: "all-dropdow-arrow-icon" }) }))) })] })))] })), (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > 0 && enableSelectAll && isMultiple && ((0, jsx_runtime_1.jsx)("div", __assign({ id: "select-all", className: "qbs-select-all-link qbs-cursor-pointer qbs-text-xs", onClick: handleSelectAll }, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: "qbs-autocomplete-listitem-container qbs-autocomplete-checkbox-container" }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ className: "qbs-autocomplete-checkbox" }, { children: [(0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: selectAll, id: "qbs-checkbox-all" }), (0, jsx_runtime_1.jsx)("label", __assign({ htmlFor: "qbs-checkbox-all" }, { children: (0, jsx_runtime_1.jsx)("svg", __assign({ width: "8", height: "6", viewBox: "0 0 8 6", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: (0, jsx_runtime_1.jsx)("path", { d: "M0 3.21739L2.89883 6L8 1.06994L6.89494 0L2.89883 3.86768L1.09728 2.14745L0 3.21739Z", fill: "white" }) })) }))] })), (0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-autocomplete-suggestions-item" }, { children: "Select All" }))] })) }))), (0, jsx_runtime_1.jsxs)("div", __assign({ className: "qbs-autocomplete-suggestions-sub qbs-autocomplete-selected-suggestions-outer ".concat(viewMode ? 'hidden' : ''), ref: itemsRef, style: {
625
+ maxHeight: "".concat(selHeight, "px"),
626
+ minHeight: "".concat(selHeight, "px"),
627
+ } }, { children: [(filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > 0 ? (filteredData.map(function (suggestion, idx) { return ((0, jsx_runtime_1.jsx)(DropdownList_1.default, { idx: idx, suggestion: suggestion, isSelected: isSelected, handleSuggestionClick: function () {
628
+ return handleSuggestionClick(suggestion, idx);
629
+ }, handleMultiSelect: handleMultiSelect, selected: selected, isMultiple: isMultiple, singleSelect: singleSelect, desc: desc, shortCode: shortCode, labelCode: labelCode, focusedIndex: focusedIndex, setItemRef: function (index, ref) {
630
+ itemRefs.current[index] = ref; // Store each ref properly
631
+ } }, suggestion[descId])); })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: isLoading ||
632
+ (searchValue !== searchOldValue &&
633
+ searchValue !== '' &&
634
+ async) ? ((0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-flex qbs-align-middle qbs-justify-center qbs-min-emp-h" }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-pt-16 qbs-autocomplete-loader" }, { children: (0, jsx_runtime_1.jsx)(icons_1.Spinner, {}) })) }))) : ((0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-autocomplete-notfound qbs-text-center qbs-justify-center qbs-align-middle qbs-min-emp-h" }, { children: searchValue !== ''
635
+ ? notDataMessage !== null && notDataMessage !== void 0 ? notDataMessage : 'No Results Found'
636
+ : initialDataMessage !== null && initialDataMessage !== void 0 ? initialDataMessage : 'Type to search' }))) })), paginationEnabled &&
637
+ nextBlock !== 0 &&
638
+ nextBlock !== undefined &&
639
+ (filteredData === null || filteredData === void 0 ? void 0 : filteredData.length) > 0 && ((0, jsx_runtime_1.jsx)("div", __assign({ className: "loadMoreSection", onClick: function () { return handleLoadMore(); } }, { children: (0, jsx_runtime_1.jsx)("p", __assign({ style: { margin: 2 } }, { children: "Load More" })) })))] })), (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: countOnly && (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > 0 && ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: "qbs-expandable-container qbs-dropdown-selected-container", ref: dropdownSelectedRef }, { children: [(0, jsx_runtime_1.jsxs)("div", __assign({ className: "qbs-flex qbs-w-full qbs-text-xs" }, { children: [(0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-selected-lbs qbs-flex-grow" }, { children: "Selected Items" })), (0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-clear-link qbs-text-right qbs-cursor-pointer ".concat(viewMode ? 'hidden' : ''), onClick: handleClearSelected }, { children: "Clear all" })), (0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-done-link qbs-text-right qbs-cursor-pointer ".concat(viewMode ? 'hidden' : ''), onClick: function () {
640
+ setDropOpen(false);
641
+ } }, { children: "Done" }))] })), getSelectedItems(true), (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (filteredSelectedItems === null || filteredSelectedItems === void 0 ? void 0 : filteredSelectedItems.length) > itemCount &&
642
+ showAllSelected && ((0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-readmore-collapse" }, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: "qbs-more-collapse", onClick: function () {
643
+ handleCollapseArrowClick();
644
+ } }, { children: (0, jsx_runtime_1.jsx)(icons_1.DropArrow, { className: "icon-button-rotate", uniqueDropArrowId: uniqueDropArrowId }) })) }))) })] })) })) })] })), document.body) }));
645
+ });
646
+ exports.default = react_1.default.memo(DropdownFilterTabs);
647
+ //# sourceMappingURL=dropdownFilterTabs.js.map