@capillarytech/blaze-ui 1.0.3-alpha.16 → 1.0.3-alpha.19
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/CapUnifiedSelect/CapUnifiedSelect.d.ts +7 -1
- package/dist/CapUnifiedSelect/CapUnifiedSelect.d.ts.map +1 -1
- package/dist/CapUnifiedSelect/CustomDropdown.d.ts +7 -1
- package/dist/CapUnifiedSelect/CustomDropdown.d.ts.map +1 -1
- package/dist/CapUnifiedSelect/enhanceOptions.d.ts.map +1 -1
- package/dist/CapUnifiedSelect/index.js +364 -254
- package/dist/CapUnifiedSelect/index.js.map +1 -1
- package/dist/CapUnifiedSelect/types.d.ts +1 -0
- package/dist/CapUnifiedSelect/types.d.ts.map +1 -1
- package/dist/CapUnifiedSelect/useCapUnifiedSelect.d.ts +1 -1
- package/dist/CapUnifiedSelect/useCapUnifiedSelect.d.ts.map +1 -1
- package/dist/CapUnifiedSelect/useInfiniteScroll.d.ts +27 -0
- package/dist/CapUnifiedSelect/useInfiniteScroll.d.ts.map +1 -0
- package/dist/CapUnifiedSelect/utils.d.ts +6 -0
- package/dist/CapUnifiedSelect/utils.d.ts.map +1 -1
- package/dist/index.js +365 -254
- package/dist/index.js.map +1 -1
- package/dist/styled/variables.d.ts +1 -0
- package/dist/styled/variables.d.ts.map +1 -1
- package/dist/styled/variables.scss +1 -0
- package/package.json +2 -3
|
@@ -107,6 +107,7 @@ exports.__esModule = true;
|
|
|
107
107
|
exports.useCapUnifiedSelect = void 0;
|
|
108
108
|
var _react = __webpack_require__(9206);
|
|
109
109
|
var _constants = __webpack_require__(9788);
|
|
110
|
+
var _useInfiniteScroll = __webpack_require__(9103);
|
|
110
111
|
var _utils = __webpack_require__(8052);
|
|
111
112
|
const useCapUnifiedSelect = _ref => {
|
|
112
113
|
let {
|
|
@@ -132,23 +133,15 @@ const useCapUnifiedSelect = _ref => {
|
|
|
132
133
|
const [tempValue, setTempValue] = (0, _react.useState)(value);
|
|
133
134
|
const [dropdownOpen, setDropdownOpen] = (0, _react.useState)(false);
|
|
134
135
|
const [isSearching, setIsSearching] = (0, _react.useState)(false);
|
|
135
|
-
const [isLoadingOnScroll, setIsLoadingOnScroll] = (0, _react.useState)(false);
|
|
136
136
|
const [isResettingData, setIsResettingData] = (0, _react.useState)(false);
|
|
137
137
|
const [orderedOptions, setOrderedOptions] = (0, _react.useState)(null);
|
|
138
138
|
const searchTimeoutRef = (0, _react.useRef)(null);
|
|
139
|
-
const scrollContainerRef = (0, _react.useRef)(null);
|
|
140
|
-
const scrollLoadingTimeoutRef = (0, _react.useRef)(null);
|
|
141
|
-
const isScrollProcessingRef = (0, _react.useRef)(false);
|
|
142
|
-
const scrollThrottleTimeoutRef = (0, _react.useRef)(null);
|
|
143
139
|
const optionsRef = (0, _react.useRef)(options);
|
|
144
140
|
const selectedItemsCacheRef = (0, _react.useRef)(new Map());
|
|
145
141
|
const lastSearchQueryRef = (0, _react.useRef)('');
|
|
146
142
|
const searchClearedTimeRef = (0, _react.useRef)(null);
|
|
147
143
|
const prevOptionsRef = (0, _react.useRef)(options);
|
|
148
144
|
const prevOptionsBeforeResetRef = (0, _react.useRef)(options);
|
|
149
|
-
const prevOptionsCountRef = (0, _react.useRef)(options.length);
|
|
150
|
-
const prevOptionsRefForScroll = (0, _react.useRef)(options);
|
|
151
|
-
const scrollTriggerOptionsCountRef = (0, _react.useRef)(options.length);
|
|
152
145
|
const initialSortDoneRef = (0, _react.useRef)(false);
|
|
153
146
|
const hasInteractedRef = (0, _react.useRef)(false);
|
|
154
147
|
const initialTempValueRef = (0, _react.useRef)(value);
|
|
@@ -156,6 +149,20 @@ const useCapUnifiedSelect = _ref => {
|
|
|
156
149
|
const resetDataCalledTimeRef = (0, _react.useRef)(null);
|
|
157
150
|
const fetchMissingOptionsCalledRef = (0, _react.useRef)(false);
|
|
158
151
|
const lastMissingValuesRef = (0, _react.useRef)('');
|
|
152
|
+
|
|
153
|
+
// Infinite scroll hook
|
|
154
|
+
const {
|
|
155
|
+
isLoadingOnScroll,
|
|
156
|
+
resetScrollState,
|
|
157
|
+
scrollTriggerOptionsCountRef
|
|
158
|
+
} = (0, _useInfiniteScroll.useInfiniteScroll)({
|
|
159
|
+
onPopupScroll,
|
|
160
|
+
hasMore,
|
|
161
|
+
options,
|
|
162
|
+
dropdownOpen,
|
|
163
|
+
optionsRef,
|
|
164
|
+
hasInteractedRef
|
|
165
|
+
});
|
|
159
166
|
(0, _react.useEffect)(() => {
|
|
160
167
|
if (!fetchMissingOptions) {
|
|
161
168
|
return;
|
|
@@ -232,20 +239,13 @@ const useCapUnifiedSelect = _ref => {
|
|
|
232
239
|
}
|
|
233
240
|
}, [options, orderedOptions, tempValue]);
|
|
234
241
|
const debounceTimeout = searchDebounce != null ? searchDebounce : _constants.TIMEOUTS.DEFAULT_SEARCH_DEBOUNCE;
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}, [options]);
|
|
242
|
+
|
|
243
|
+
// Cleanup timeouts on unmount
|
|
238
244
|
(0, _react.useEffect)(() => {
|
|
239
245
|
return () => {
|
|
240
246
|
if (searchTimeoutRef.current) {
|
|
241
247
|
clearTimeout(searchTimeoutRef.current);
|
|
242
248
|
}
|
|
243
|
-
if (scrollLoadingTimeoutRef.current) {
|
|
244
|
-
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
245
|
-
}
|
|
246
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
247
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
248
|
-
}
|
|
249
249
|
};
|
|
250
250
|
}, []);
|
|
251
251
|
(0, _react.useEffect)(() => {
|
|
@@ -315,52 +315,26 @@ const useCapUnifiedSelect = _ref => {
|
|
|
315
315
|
}, _constants.TIMEOUTS.RESET_DATA_TIMEOUT);
|
|
316
316
|
return () => clearTimeout(fallbackTimeout);
|
|
317
317
|
}, [isResettingData, options]);
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
if (!
|
|
330
|
-
prevOptionsCountRef.current = options.length;
|
|
331
|
-
prevOptionsRefForScroll.current = options;
|
|
332
|
-
}
|
|
333
|
-
if (!isLoadingOnScroll || !onPopupScroll) {
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Unified helper function to call resetData with proper state management.
|
|
321
|
+
* This centralizes all resetData logic to avoid duplication and ensure consistency.
|
|
322
|
+
*
|
|
323
|
+
* @param shouldReset - Whether to actually call resetData (based on conditions)
|
|
324
|
+
*/
|
|
325
|
+
const callResetData = (0, _react.useCallback)(function (shouldReset) {
|
|
326
|
+
if (shouldReset === void 0) {
|
|
327
|
+
shouldReset = true;
|
|
328
|
+
}
|
|
329
|
+
if (!resetData || !shouldReset || options.length === 0) {
|
|
334
330
|
return;
|
|
335
331
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
}
|
|
343
|
-
if (currentCount > 0 && prevCount > 0 && prevOptionsRefForScroll.current.length > 0) {
|
|
344
|
-
const prevOptions = prevOptionsRefForScroll.current;
|
|
345
|
-
const lastPrevOption = prevOptions[prevOptions.length - 1];
|
|
346
|
-
const lastCurrentOption = options[options.length - 1];
|
|
347
|
-
if ((lastPrevOption == null ? void 0 : lastPrevOption.value) !== (lastCurrentOption == null ? void 0 : lastCurrentOption.value) || (lastPrevOption == null ? void 0 : lastPrevOption.label) !== (lastCurrentOption == null ? void 0 : lastCurrentOption.label)) {
|
|
348
|
-
return true;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
return false;
|
|
352
|
-
})();
|
|
353
|
-
if (optionsCountIncreased || optionsContentChanged) {
|
|
354
|
-
setIsLoadingOnScroll(false);
|
|
355
|
-
isScrollProcessingRef.current = false;
|
|
356
|
-
if (scrollLoadingTimeoutRef.current) {
|
|
357
|
-
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
358
|
-
scrollLoadingTimeoutRef.current = null;
|
|
359
|
-
}
|
|
360
|
-
prevOptionsCountRef.current = options.length;
|
|
361
|
-
prevOptionsRefForScroll.current = options;
|
|
362
|
-
}
|
|
363
|
-
}, [options, isLoadingOnScroll, onPopupScroll]);
|
|
332
|
+
prevOptionsBeforeResetRef.current = options;
|
|
333
|
+
setIsResettingData(true);
|
|
334
|
+
resetDataCalledRef.current = true;
|
|
335
|
+
resetDataCalledTimeRef.current = Date.now();
|
|
336
|
+
resetData();
|
|
337
|
+
}, [resetData, options]);
|
|
364
338
|
const handleSearch = (0, _react.useCallback)(query => {
|
|
365
339
|
if (searchTimeoutRef.current) {
|
|
366
340
|
clearTimeout(searchTimeoutRef.current);
|
|
@@ -377,6 +351,13 @@ const useCapUnifiedSelect = _ref => {
|
|
|
377
351
|
if (trimmedQuery.length > 0 || lastSearchQueryRef.current.length > 0) {
|
|
378
352
|
hasInteractedRef.current = true;
|
|
379
353
|
}
|
|
354
|
+
|
|
355
|
+
// Reset data when search is cleared (search term length < 1)
|
|
356
|
+
// This handles requirement: "when search term is length less than 1 that is no search needed"
|
|
357
|
+
// and "when click on X in searched term then we are resetting the data to the initial page"
|
|
358
|
+
if (isNowCleared && wasSearching && !staticValue) {
|
|
359
|
+
callResetData();
|
|
360
|
+
}
|
|
380
361
|
if (!staticValue && onSearch) {
|
|
381
362
|
setIsSearching(true);
|
|
382
363
|
searchTimeoutRef.current = setTimeout(() => {
|
|
@@ -390,7 +371,7 @@ const useCapUnifiedSelect = _ref => {
|
|
|
390
371
|
setIsSearching(false);
|
|
391
372
|
}, _constants.TIMEOUTS.STATIC_SEARCH_DELAY);
|
|
392
373
|
}
|
|
393
|
-
}, [onSearch, staticValue, debounceTimeout]);
|
|
374
|
+
}, [onSearch, staticValue, debounceTimeout, callResetData]);
|
|
394
375
|
const prevOptionsCountBeforeFetchMissingRef = (0, _react.useRef)(options.length);
|
|
395
376
|
const prevOptionsBeforeFetchMissingRef = (0, _react.useRef)(options);
|
|
396
377
|
(0, _react.useEffect)(() => {
|
|
@@ -407,6 +388,7 @@ const useCapUnifiedSelect = _ref => {
|
|
|
407
388
|
scrollTriggerOptionsCountRef.current = currentOptions.length;
|
|
408
389
|
}
|
|
409
390
|
}
|
|
391
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
410
392
|
}, [options, orderedOptions, onPopupScroll, tempValue]);
|
|
411
393
|
(0, _react.useEffect)(() => {
|
|
412
394
|
if (!fetchMissingOptions) {
|
|
@@ -522,19 +504,12 @@ const useCapUnifiedSelect = _ref => {
|
|
|
522
504
|
onSearch('');
|
|
523
505
|
}
|
|
524
506
|
|
|
525
|
-
// Call resetData if
|
|
526
|
-
//
|
|
527
|
-
//
|
|
528
|
-
|
|
529
|
-
if (resetData && (hadActiveSearch || options.length > 0)) {
|
|
530
|
-
prevOptionsBeforeResetRef.current = options;
|
|
531
|
-
setIsResettingData(true);
|
|
532
|
-
resetDataCalledRef.current = true;
|
|
533
|
-
resetDataCalledTimeRef.current = Date.now();
|
|
534
|
-
resetData();
|
|
535
|
-
}
|
|
507
|
+
// Call resetData if there was an active search that we're resetting
|
|
508
|
+
// This handles requirement: "when user click confirm & clear button"
|
|
509
|
+
// Reset data back to initial state after a search + confirm
|
|
510
|
+
callResetData(hadActiveSearch || options.length > 0);
|
|
536
511
|
onConfirm == null || onConfirm(tempValue);
|
|
537
|
-
}, [onChange, onConfirm, tempValue, resetSearch, isMulti, options,
|
|
512
|
+
}, [onChange, onConfirm, tempValue, resetSearch, isMulti, options, callResetData, staticValue, onSearch]);
|
|
538
513
|
const handleClearAll = (0, _react.useCallback)(() => {
|
|
539
514
|
const cleared = isMulti ? [] : undefined;
|
|
540
515
|
setSearchText('');
|
|
@@ -545,17 +520,7 @@ const useCapUnifiedSelect = _ref => {
|
|
|
545
520
|
clearTimeout(searchTimeoutRef.current);
|
|
546
521
|
searchTimeoutRef.current = null;
|
|
547
522
|
}
|
|
548
|
-
|
|
549
|
-
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
550
|
-
scrollLoadingTimeoutRef.current = null;
|
|
551
|
-
}
|
|
552
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
553
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
554
|
-
scrollThrottleTimeoutRef.current = null;
|
|
555
|
-
}
|
|
556
|
-
setIsLoadingOnScroll(false);
|
|
557
|
-
isScrollProcessingRef.current = false;
|
|
558
|
-
scrollContainerRef.current = null;
|
|
523
|
+
resetScrollState();
|
|
559
524
|
setOrderedOptions(null);
|
|
560
525
|
initialSortDoneRef.current = false;
|
|
561
526
|
hasInteractedRef.current = false;
|
|
@@ -565,14 +530,11 @@ const useCapUnifiedSelect = _ref => {
|
|
|
565
530
|
setTempValue(cleared);
|
|
566
531
|
onChange == null || onChange(cleared);
|
|
567
532
|
setDropdownOpen(false);
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
resetData();
|
|
574
|
-
}
|
|
575
|
-
}, [isMulti, onChange, resetData, options]);
|
|
533
|
+
|
|
534
|
+
// Call resetData when user clicks clear button
|
|
535
|
+
// This handles requirement: "when user click confirm & clear button"
|
|
536
|
+
callResetData();
|
|
537
|
+
}, [isMulti, onChange, callResetData, resetScrollState]);
|
|
576
538
|
const handleDropdownVisibilityChange = (0, _react.useCallback)(open => {
|
|
577
539
|
if (open) {
|
|
578
540
|
initialTempValueRef.current = value;
|
|
@@ -584,18 +546,9 @@ const useCapUnifiedSelect = _ref => {
|
|
|
584
546
|
clearTimeout(searchTimeoutRef.current);
|
|
585
547
|
searchTimeoutRef.current = null;
|
|
586
548
|
}
|
|
587
|
-
if (scrollLoadingTimeoutRef.current) {
|
|
588
|
-
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
589
|
-
scrollLoadingTimeoutRef.current = null;
|
|
590
|
-
}
|
|
591
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
592
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
593
|
-
scrollThrottleTimeoutRef.current = null;
|
|
594
|
-
}
|
|
595
549
|
setIsSearching(false);
|
|
596
550
|
searchClearedTimeRef.current = null;
|
|
597
|
-
|
|
598
|
-
isScrollProcessingRef.current = false;
|
|
551
|
+
resetScrollState();
|
|
599
552
|
if (isResettingData) {
|
|
600
553
|
setIsResettingData(false);
|
|
601
554
|
prevOptionsBeforeResetRef.current = options;
|
|
@@ -613,23 +566,11 @@ const useCapUnifiedSelect = _ref => {
|
|
|
613
566
|
lastSearchQueryRef.current = '';
|
|
614
567
|
searchClearedTimeRef.current = null;
|
|
615
568
|
}
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
if
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
}
|
|
622
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
623
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
624
|
-
scrollThrottleTimeoutRef.current = null;
|
|
625
|
-
}
|
|
626
|
-
scrollContainerRef.current = null;
|
|
627
|
-
if (resetData && hasInteractedRef.current && !resetDataCalledRef.current && options.length > 0) {
|
|
628
|
-
prevOptionsBeforeResetRef.current = options;
|
|
629
|
-
setIsResettingData(true);
|
|
630
|
-
resetDataCalledRef.current = true;
|
|
631
|
-
resetDataCalledTimeRef.current = Date.now();
|
|
632
|
-
resetData();
|
|
569
|
+
resetScrollState();
|
|
570
|
+
|
|
571
|
+
// Call resetData when dropdown closes if user interacted and resetData wasn't called yet
|
|
572
|
+
if (hasInteractedRef.current && !resetDataCalledRef.current) {
|
|
573
|
+
callResetData();
|
|
633
574
|
} else if (!hasInteractedRef.current) {
|
|
634
575
|
if (searchTimeoutRef.current) {
|
|
635
576
|
clearTimeout(searchTimeoutRef.current);
|
|
@@ -642,7 +583,7 @@ const useCapUnifiedSelect = _ref => {
|
|
|
642
583
|
hasInteractedRef.current = false;
|
|
643
584
|
}
|
|
644
585
|
setDropdownOpen(open);
|
|
645
|
-
}, [customPopupRender, value, onChange, tempValue, resetSearch,
|
|
586
|
+
}, [customPopupRender, value, onChange, tempValue, resetSearch, callResetData, options, isResettingData, resetScrollState]);
|
|
646
587
|
const handleSearchChange = (0, _react.useCallback)(e => {
|
|
647
588
|
const query = e.target.value;
|
|
648
589
|
setSearchText(query);
|
|
@@ -656,111 +597,30 @@ const useCapUnifiedSelect = _ref => {
|
|
|
656
597
|
e.stopPropagation();
|
|
657
598
|
}
|
|
658
599
|
}, [searchText]);
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
if
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
675
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
676
|
-
}
|
|
677
|
-
isScrollProcessingRef.current = true;
|
|
678
|
-
scrollThrottleTimeoutRef.current = setTimeout(() => {
|
|
679
|
-
const stillNearBottom = Math.floor(target.scrollHeight - target.scrollTop) <= target.clientHeight;
|
|
680
|
-
if (!stillNearBottom || isLoadingOnScroll || !hasMore) {
|
|
681
|
-
isScrollProcessingRef.current = false;
|
|
682
|
-
return;
|
|
683
|
-
}
|
|
684
|
-
const currentOptions = optionsRef.current;
|
|
685
|
-
prevOptionsCountRef.current = currentOptions.length;
|
|
686
|
-
prevOptionsRefForScroll.current = currentOptions;
|
|
687
|
-
scrollTriggerOptionsCountRef.current = currentOptions.length;
|
|
688
|
-
setIsLoadingOnScroll(true);
|
|
689
|
-
if (scrollLoadingTimeoutRef.current) {
|
|
690
|
-
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
691
|
-
scrollLoadingTimeoutRef.current = null;
|
|
692
|
-
}
|
|
693
|
-
hasInteractedRef.current = true;
|
|
694
|
-
onPopupScroll();
|
|
695
|
-
scrollLoadingTimeoutRef.current = setTimeout(() => {
|
|
696
|
-
setIsLoadingOnScroll(prev => {
|
|
697
|
-
if (prev) {
|
|
698
|
-
scrollLoadingTimeoutRef.current = null;
|
|
699
|
-
isScrollProcessingRef.current = false;
|
|
700
|
-
return false;
|
|
701
|
-
}
|
|
702
|
-
return prev;
|
|
703
|
-
});
|
|
704
|
-
}, _constants.TIMEOUTS.SCROLL_LOADING_TIMEOUT);
|
|
705
|
-
}, 150);
|
|
706
|
-
}, [onPopupScroll, isLoadingOnScroll, hasMore]);
|
|
707
|
-
(0, _react.useEffect)(() => {
|
|
708
|
-
if (!onPopupScroll || !dropdownOpen) return;
|
|
709
|
-
const timeoutId = setTimeout(() => {
|
|
710
|
-
const findScrollContainer = () => {
|
|
711
|
-
const dropdowns = document.querySelectorAll('.ant-select-dropdown:not(.ant-select-dropdown-hidden)');
|
|
712
|
-
if (dropdowns.length === 0) return null;
|
|
713
|
-
const dropdown = Array.from(dropdowns).pop();
|
|
714
|
-
if (!dropdown) return null;
|
|
715
|
-
const treeList = dropdown.querySelector('.ant-select-tree-list-holder');
|
|
716
|
-
if (treeList && treeList.scrollHeight > treeList.clientHeight) {
|
|
717
|
-
return treeList;
|
|
718
|
-
}
|
|
719
|
-
const virtualList = dropdown.querySelector('.rc-virtual-list-holder');
|
|
720
|
-
if (virtualList && virtualList.scrollHeight > virtualList.clientHeight) {
|
|
721
|
-
return virtualList;
|
|
722
|
-
}
|
|
723
|
-
if (dropdown.scrollHeight > dropdown.clientHeight) {
|
|
724
|
-
return dropdown;
|
|
725
|
-
}
|
|
726
|
-
return null;
|
|
727
|
-
};
|
|
728
|
-
const scrollContainer = findScrollContainer();
|
|
729
|
-
if (scrollContainer) {
|
|
730
|
-
scrollContainerRef.current = scrollContainer;
|
|
731
|
-
scrollContainer.addEventListener('scroll', handleScroll, {
|
|
732
|
-
passive: true
|
|
733
|
-
});
|
|
734
|
-
}
|
|
735
|
-
}, _constants.TIMEOUTS.SCROLL_CONTAINER_DELAY);
|
|
736
|
-
return () => {
|
|
737
|
-
clearTimeout(timeoutId);
|
|
738
|
-
if (scrollThrottleTimeoutRef.current) {
|
|
739
|
-
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
740
|
-
scrollThrottleTimeoutRef.current = null;
|
|
741
|
-
}
|
|
742
|
-
if (scrollContainerRef.current) {
|
|
743
|
-
scrollContainerRef.current.removeEventListener('scroll', handleScroll);
|
|
744
|
-
scrollContainerRef.current = null;
|
|
745
|
-
}
|
|
746
|
-
isScrollProcessingRef.current = false;
|
|
747
|
-
};
|
|
748
|
-
}, [onPopupScroll, dropdownOpen, handleScroll]);
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Helper function to handle resetData call when value is cleared.
|
|
603
|
+
* Only resets data if there was an active search, as resetting on every unselect
|
|
604
|
+
* would be too aggressive and could reset data unnecessarily when user simply unselects.
|
|
605
|
+
*
|
|
606
|
+
* This addresses the question: "If user unselects or clears current selection then do we need to call resetData?"
|
|
607
|
+
* Answer: Only if there was an active search query, to avoid unnecessary resets.
|
|
608
|
+
*/
|
|
609
|
+
const handleResetDataOnClear = (0, _react.useCallback)(() => {
|
|
610
|
+
// Only reset data if there was an active search query
|
|
611
|
+
// This prevents unnecessary resets when user simply unselects without searching
|
|
612
|
+
const hadActiveSearch = !staticValue && lastSearchQueryRef.current.trim().length > 0;
|
|
613
|
+
callResetData(hadActiveSearch);
|
|
614
|
+
}, [staticValue, callResetData]);
|
|
749
615
|
const handleSingleSelectChange = (0, _react.useCallback)(newValue => {
|
|
750
616
|
if (disabled) {
|
|
751
617
|
return;
|
|
752
618
|
}
|
|
753
619
|
if (newValue === undefined || newValue === null) {
|
|
754
|
-
|
|
755
|
-
prevOptionsBeforeResetRef.current = options;
|
|
756
|
-
setIsResettingData(true);
|
|
757
|
-
resetDataCalledRef.current = true;
|
|
758
|
-
resetDataCalledTimeRef.current = Date.now();
|
|
759
|
-
resetData();
|
|
760
|
-
}
|
|
620
|
+
handleResetDataOnClear();
|
|
761
621
|
}
|
|
762
622
|
onChange == null || onChange(newValue);
|
|
763
|
-
}, [onChange,
|
|
623
|
+
}, [onChange, disabled, handleResetDataOnClear]);
|
|
764
624
|
const handleMultiSelectChange = (0, _react.useCallback)(newValue => {
|
|
765
625
|
if (disabled) {
|
|
766
626
|
return;
|
|
@@ -771,16 +631,10 @@ const useCapUnifiedSelect = _ref => {
|
|
|
771
631
|
hasInteractedRef.current = true;
|
|
772
632
|
}
|
|
773
633
|
if (newValue === undefined || newValue === null || Array.isArray(newValue) && newValue.length === 0) {
|
|
774
|
-
|
|
775
|
-
prevOptionsBeforeResetRef.current = options;
|
|
776
|
-
setIsResettingData(true);
|
|
777
|
-
resetDataCalledRef.current = true;
|
|
778
|
-
resetDataCalledTimeRef.current = Date.now();
|
|
779
|
-
resetData();
|
|
780
|
-
}
|
|
634
|
+
handleResetDataOnClear();
|
|
781
635
|
}
|
|
782
636
|
setTempValue(newValue);
|
|
783
|
-
}, [
|
|
637
|
+
}, [disabled, handleResetDataOnClear]);
|
|
784
638
|
return {
|
|
785
639
|
searchText,
|
|
786
640
|
setSearchText,
|
|
@@ -905,6 +759,7 @@ module.exports = ___CSS_LOADER_EXPORT___;
|
|
|
905
759
|
|
|
906
760
|
exports.__esModule = true;
|
|
907
761
|
exports.enhanceOptionsWithComponents = void 0;
|
|
762
|
+
var _classnames = _interopRequireDefault(__webpack_require__(6942));
|
|
908
763
|
var _react = _interopRequireDefault(__webpack_require__(9206));
|
|
909
764
|
var _CapLabel = _interopRequireDefault(__webpack_require__(3737));
|
|
910
765
|
var _CapRow = _interopRequireDefault(__webpack_require__(7375));
|
|
@@ -922,15 +777,18 @@ const enhanceOptionsWithComponents = (options, type) => {
|
|
|
922
777
|
if (!(options != null && options.length)) return [];
|
|
923
778
|
const isTree = type === _constants.SELECT_TYPES.TREE_SELECT || type === _constants.SELECT_TYPES.MULTI_TREE_SELECT;
|
|
924
779
|
const enhanceOptions = opts => opts.map(opt => {
|
|
780
|
+
const displayText = (opt == null ? void 0 : opt.hoverText) || (opt == null ? void 0 : opt.label);
|
|
781
|
+
const tooltipTitle = (opt == null ? void 0 : opt.hoverText) || undefined;
|
|
925
782
|
const decoratedTitle = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CapRow.default, {
|
|
926
783
|
className: _styles.default['cap-unified-select-option-with-suffix'],
|
|
927
784
|
justify: "space-between",
|
|
928
785
|
align: "middle",
|
|
929
786
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
930
|
-
className: _styles.default['cap-unified-select-option-label'],
|
|
787
|
+
className: (0, _classnames.default)(_styles.default['cap-unified-select-option-label'], _styles.default['truncate-text']),
|
|
788
|
+
title: tooltipTitle,
|
|
931
789
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapLabel.default, {
|
|
932
790
|
type: "label14",
|
|
933
|
-
children:
|
|
791
|
+
children: displayText
|
|
934
792
|
})
|
|
935
793
|
}), ((opt == null ? void 0 : opt.optionSuffix) || (opt == null ? void 0 : opt.optionTooltipInfo)) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
936
794
|
className: _styles.default['cap-unified-select-option-end'],
|
|
@@ -953,31 +811,36 @@ const enhanceOptionsWithComponents = (options, type) => {
|
|
|
953
811
|
if (isTree) {
|
|
954
812
|
return enhanceOptions(options);
|
|
955
813
|
}
|
|
956
|
-
return options.map(opt =>
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
814
|
+
return options.map(opt => {
|
|
815
|
+
const displayText = (opt == null ? void 0 : opt.hoverText) || (opt == null ? void 0 : opt.label);
|
|
816
|
+
const tooltipTitle = (opt == null ? void 0 : opt.hoverText) || undefined;
|
|
817
|
+
return _extends({}, opt, {
|
|
818
|
+
title: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CapRow.default, {
|
|
819
|
+
className: _styles.default['cap-unified-select-option-with-suffix'],
|
|
820
|
+
justify: "space-between",
|
|
821
|
+
align: "middle",
|
|
822
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
823
|
+
className: (0, _classnames.default)(_styles.default['cap-unified-select-option-label'], _styles.default['truncate-text']),
|
|
824
|
+
title: tooltipTitle,
|
|
825
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapLabel.default, {
|
|
826
|
+
type: "label14",
|
|
827
|
+
children: displayText
|
|
828
|
+
})
|
|
829
|
+
}), ((opt == null ? void 0 : opt.optionSuffix) || (opt == null ? void 0 : opt.optionTooltipInfo)) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
830
|
+
className: _styles.default['cap-unified-select-option-end'],
|
|
831
|
+
children: [(opt == null ? void 0 : opt.optionSuffix) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
832
|
+
className: _styles.default['cap-unified-select-option-suffix'],
|
|
833
|
+
children: [opt == null ? void 0 : opt.optionSuffix, (opt == null ? void 0 : opt.optionSuffixInfo) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapTooltipWithInfo.default, {
|
|
834
|
+
title: opt == null ? void 0 : opt.optionSuffixInfo
|
|
835
|
+
})]
|
|
836
|
+
}), (opt == null ? void 0 : opt.optionTooltipInfo) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapTooltipWithInfo.default, {
|
|
837
|
+
title: opt == null ? void 0 : opt.optionTooltipInfo
|
|
973
838
|
})]
|
|
974
|
-
}), (opt == null ? void 0 : opt.optionTooltipInfo) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapTooltipWithInfo.default, {
|
|
975
|
-
title: opt == null ? void 0 : opt.optionTooltipInfo
|
|
976
839
|
})]
|
|
977
|
-
})
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
})
|
|
840
|
+
}),
|
|
841
|
+
label: opt == null ? void 0 : opt.label
|
|
842
|
+
});
|
|
843
|
+
});
|
|
981
844
|
};
|
|
982
845
|
exports.enhanceOptionsWithComponents = enhanceOptionsWithComponents;
|
|
983
846
|
|
|
@@ -2827,7 +2690,7 @@ exports.CustomDropdown = CustomDropdown;
|
|
|
2827
2690
|
|
|
2828
2691
|
|
|
2829
2692
|
exports.__esModule = true;
|
|
2830
|
-
exports.reorderOptionsBySelection = exports.prepareDataSource = exports.findValueInOptions = exports.findMissingValues = exports.filterTreeData = exports.countSelectedLeaves = exports.buildTreeMaps = void 0;
|
|
2693
|
+
exports.reorderOptionsBySelection = exports.prepareDataSource = exports.getScrollContainer = exports.findValueInOptions = exports.findMissingValues = exports.filterTreeData = exports.countSelectedLeaves = exports.buildTreeMaps = void 0;
|
|
2831
2694
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2832
2695
|
/**
|
|
2833
2696
|
* Builds tree maps for efficient tree operations
|
|
@@ -3065,7 +2928,32 @@ const prepareDataSource = (options, orderedOptions, searchText, value, staticVal
|
|
|
3065
2928
|
const allOptions = hasSearchQuery ? [...sourceOptions, ...virtualOptions] : [...virtualOptions, ...sourceOptions];
|
|
3066
2929
|
return allOptions != null && allOptions.length ? allOptions : [];
|
|
3067
2930
|
};
|
|
2931
|
+
|
|
2932
|
+
/**
|
|
2933
|
+
* Finds the scrollable container element within the dropdown
|
|
2934
|
+
* Checks for tree list holder, virtual list holder, or dropdown itself
|
|
2935
|
+
* Returns the first scrollable container found, or null if none
|
|
2936
|
+
*/
|
|
3068
2937
|
exports.prepareDataSource = prepareDataSource;
|
|
2938
|
+
const getScrollContainer = () => {
|
|
2939
|
+
const dropdowns = document.querySelectorAll('.ant-select-dropdown:not(.ant-select-dropdown-hidden)');
|
|
2940
|
+
if (dropdowns.length === 0) return null;
|
|
2941
|
+
const dropdown = Array.from(dropdowns).pop();
|
|
2942
|
+
if (!dropdown) return null;
|
|
2943
|
+
const treeList = dropdown.querySelector('.ant-select-tree-list-holder');
|
|
2944
|
+
if (treeList && treeList.scrollHeight > treeList.clientHeight) {
|
|
2945
|
+
return treeList;
|
|
2946
|
+
}
|
|
2947
|
+
const virtualList = dropdown.querySelector('.rc-virtual-list-holder');
|
|
2948
|
+
if (virtualList && virtualList.scrollHeight > virtualList.clientHeight) {
|
|
2949
|
+
return virtualList;
|
|
2950
|
+
}
|
|
2951
|
+
if (dropdown.scrollHeight > dropdown.clientHeight) {
|
|
2952
|
+
return dropdown;
|
|
2953
|
+
}
|
|
2954
|
+
return null;
|
|
2955
|
+
};
|
|
2956
|
+
exports.getScrollContainer = getScrollContainer;
|
|
3069
2957
|
|
|
3070
2958
|
/***/ }),
|
|
3071
2959
|
|
|
@@ -3133,6 +3021,227 @@ var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js
|
|
|
3133
3021
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_styles_scss__WEBPACK_IMPORTED_MODULE_5___default()) && (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_styles_scss__WEBPACK_IMPORTED_MODULE_5___default().locals) ? (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_1_use_1_node_modules_sass_loader_dist_cjs_js_ruleSet_1_rules_1_use_2_styles_scss__WEBPACK_IMPORTED_MODULE_5___default().locals) : undefined);
|
|
3134
3022
|
|
|
3135
3023
|
|
|
3024
|
+
/***/ }),
|
|
3025
|
+
|
|
3026
|
+
/***/ 9103:
|
|
3027
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
3028
|
+
|
|
3029
|
+
"use strict";
|
|
3030
|
+
|
|
3031
|
+
|
|
3032
|
+
exports.__esModule = true;
|
|
3033
|
+
exports.useInfiniteScroll = void 0;
|
|
3034
|
+
var _react = __webpack_require__(9206);
|
|
3035
|
+
var _constants = __webpack_require__(9788);
|
|
3036
|
+
var _utils = __webpack_require__(8052);
|
|
3037
|
+
/**
|
|
3038
|
+
* Custom hook for handling infinite scroll/pagination in dropdown
|
|
3039
|
+
* Manages scroll event listeners, loading states, and triggers onPopupScroll callback
|
|
3040
|
+
*/
|
|
3041
|
+
const useInfiniteScroll = _ref => {
|
|
3042
|
+
let {
|
|
3043
|
+
onPopupScroll,
|
|
3044
|
+
hasMore,
|
|
3045
|
+
options,
|
|
3046
|
+
dropdownOpen,
|
|
3047
|
+
optionsRef,
|
|
3048
|
+
hasInteractedRef
|
|
3049
|
+
} = _ref;
|
|
3050
|
+
const [isLoadingOnScroll, setIsLoadingOnScroll] = (0, _react.useState)(false);
|
|
3051
|
+
const scrollContainerRef = (0, _react.useRef)(null);
|
|
3052
|
+
const scrollLoadingTimeoutRef = (0, _react.useRef)(null);
|
|
3053
|
+
const isScrollProcessingRef = (0, _react.useRef)(false);
|
|
3054
|
+
const scrollThrottleTimeoutRef = (0, _react.useRef)(null);
|
|
3055
|
+
const prevOptionsRefForScroll = (0, _react.useRef)(options);
|
|
3056
|
+
const scrollTriggerOptionsCountRef = (0, _react.useRef)(options.length);
|
|
3057
|
+
const prevOptionsCountRef = (0, _react.useRef)(options.length);
|
|
3058
|
+
(0, _react.useEffect)(() => {
|
|
3059
|
+
optionsRef.current = options;
|
|
3060
|
+
}, [options, optionsRef]);
|
|
3061
|
+
(0, _react.useEffect)(() => {
|
|
3062
|
+
return () => {
|
|
3063
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3064
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3065
|
+
}
|
|
3066
|
+
if (scrollThrottleTimeoutRef.current) {
|
|
3067
|
+
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
3068
|
+
}
|
|
3069
|
+
};
|
|
3070
|
+
}, []);
|
|
3071
|
+
(0, _react.useEffect)(() => {
|
|
3072
|
+
if (!hasMore && isLoadingOnScroll) {
|
|
3073
|
+
setIsLoadingOnScroll(false);
|
|
3074
|
+
isScrollProcessingRef.current = false;
|
|
3075
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3076
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3077
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3078
|
+
}
|
|
3079
|
+
}
|
|
3080
|
+
}, [hasMore, isLoadingOnScroll]);
|
|
3081
|
+
|
|
3082
|
+
/**
|
|
3083
|
+
* PRIMARY MECHANISM: Detect when API call completes by monitoring options changes
|
|
3084
|
+
* When onPopupScroll() is called, it triggers an API call. When the API completes,
|
|
3085
|
+
* the options prop will change (new data loaded). This effect detects that change
|
|
3086
|
+
* and sets loading to false, which is the correct way to handle API completion.
|
|
3087
|
+
*
|
|
3088
|
+
* This is the primary mechanism for detecting API completion when onPopupScroll
|
|
3089
|
+
* doesn't return a Promise (backward compatibility).
|
|
3090
|
+
*/
|
|
3091
|
+
(0, _react.useEffect)(() => {
|
|
3092
|
+
if (!isLoadingOnScroll) {
|
|
3093
|
+
prevOptionsCountRef.current = options.length;
|
|
3094
|
+
prevOptionsRefForScroll.current = options;
|
|
3095
|
+
return;
|
|
3096
|
+
}
|
|
3097
|
+
if (!onPopupScroll) {
|
|
3098
|
+
return;
|
|
3099
|
+
}
|
|
3100
|
+
const optionsCountIncreased = options.length > prevOptionsCountRef.current;
|
|
3101
|
+
const optionsContentChanged = (() => {
|
|
3102
|
+
const prevCount = prevOptionsCountRef.current;
|
|
3103
|
+
const currentCount = options.length;
|
|
3104
|
+
if (prevCount !== currentCount) {
|
|
3105
|
+
return true;
|
|
3106
|
+
}
|
|
3107
|
+
if (currentCount > 0 && prevCount > 0 && prevOptionsRefForScroll.current.length > 0) {
|
|
3108
|
+
const prevOptions = prevOptionsRefForScroll.current;
|
|
3109
|
+
const lastPrevOption = prevOptions[prevOptions.length - 1];
|
|
3110
|
+
const lastCurrentOption = options[options.length - 1];
|
|
3111
|
+
if ((lastPrevOption == null ? void 0 : lastPrevOption.value) !== (lastCurrentOption == null ? void 0 : lastCurrentOption.value) || (lastPrevOption == null ? void 0 : lastPrevOption.label) !== (lastCurrentOption == null ? void 0 : lastCurrentOption.label)) {
|
|
3112
|
+
return true;
|
|
3113
|
+
}
|
|
3114
|
+
}
|
|
3115
|
+
return false;
|
|
3116
|
+
})();
|
|
3117
|
+
if (optionsCountIncreased || optionsContentChanged) {
|
|
3118
|
+
setIsLoadingOnScroll(false);
|
|
3119
|
+
isScrollProcessingRef.current = false;
|
|
3120
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3121
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3122
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3123
|
+
}
|
|
3124
|
+
prevOptionsCountRef.current = options.length;
|
|
3125
|
+
prevOptionsRefForScroll.current = options;
|
|
3126
|
+
}
|
|
3127
|
+
}, [options, isLoadingOnScroll, onPopupScroll]);
|
|
3128
|
+
const handleScroll = (0, _react.useCallback)(event => {
|
|
3129
|
+
if (!onPopupScroll) return;
|
|
3130
|
+
const target = event.target;
|
|
3131
|
+
if (!target) return;
|
|
3132
|
+
const isNearBottom = Math.floor(target.scrollHeight - target.scrollTop) <= target.clientHeight;
|
|
3133
|
+
if (!isNearBottom) {
|
|
3134
|
+
isScrollProcessingRef.current = false;
|
|
3135
|
+
return;
|
|
3136
|
+
}
|
|
3137
|
+
if (isScrollProcessingRef.current) return;
|
|
3138
|
+
if (isLoadingOnScroll) return;
|
|
3139
|
+
if (!hasMore) {
|
|
3140
|
+
isScrollProcessingRef.current = false;
|
|
3141
|
+
return;
|
|
3142
|
+
}
|
|
3143
|
+
if (scrollThrottleTimeoutRef.current) {
|
|
3144
|
+
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
3145
|
+
}
|
|
3146
|
+
isScrollProcessingRef.current = true;
|
|
3147
|
+
scrollThrottleTimeoutRef.current = setTimeout(() => {
|
|
3148
|
+
const stillNearBottom = Math.floor(target.scrollHeight - target.scrollTop) <= target.clientHeight;
|
|
3149
|
+
if (!stillNearBottom || isLoadingOnScroll || !hasMore) {
|
|
3150
|
+
isScrollProcessingRef.current = false;
|
|
3151
|
+
return;
|
|
3152
|
+
}
|
|
3153
|
+
const currentOptions = optionsRef.current;
|
|
3154
|
+
prevOptionsCountRef.current = currentOptions.length;
|
|
3155
|
+
prevOptionsRefForScroll.current = currentOptions;
|
|
3156
|
+
scrollTriggerOptionsCountRef.current = currentOptions.length;
|
|
3157
|
+
setIsLoadingOnScroll(true);
|
|
3158
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3159
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3160
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3161
|
+
}
|
|
3162
|
+
hasInteractedRef.current = true;
|
|
3163
|
+
const scrollResult = onPopupScroll();
|
|
3164
|
+
if (scrollResult && typeof scrollResult === 'object' && 'then' in scrollResult) {
|
|
3165
|
+
Promise.resolve(scrollResult).then(() => {
|
|
3166
|
+
setIsLoadingOnScroll(false);
|
|
3167
|
+
isScrollProcessingRef.current = false;
|
|
3168
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3169
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3170
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3171
|
+
}
|
|
3172
|
+
}).catch(() => {
|
|
3173
|
+
setIsLoadingOnScroll(false);
|
|
3174
|
+
isScrollProcessingRef.current = false;
|
|
3175
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3176
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3177
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3178
|
+
}
|
|
3179
|
+
});
|
|
3180
|
+
}
|
|
3181
|
+
scrollLoadingTimeoutRef.current = setTimeout(() => {
|
|
3182
|
+
setIsLoadingOnScroll(prev => {
|
|
3183
|
+
if (prev) {
|
|
3184
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3185
|
+
isScrollProcessingRef.current = false;
|
|
3186
|
+
return false;
|
|
3187
|
+
}
|
|
3188
|
+
return prev;
|
|
3189
|
+
});
|
|
3190
|
+
}, _constants.TIMEOUTS.SCROLL_LOADING_TIMEOUT);
|
|
3191
|
+
}, 150);
|
|
3192
|
+
}, [onPopupScroll, isLoadingOnScroll, hasMore, optionsRef, hasInteractedRef]);
|
|
3193
|
+
(0, _react.useEffect)(() => {
|
|
3194
|
+
if (!onPopupScroll || !dropdownOpen) return;
|
|
3195
|
+
const timeoutId = setTimeout(() => {
|
|
3196
|
+
const scrollContainer = (0, _utils.getScrollContainer)();
|
|
3197
|
+
if (scrollContainer) {
|
|
3198
|
+
scrollContainerRef.current = scrollContainer;
|
|
3199
|
+
scrollContainer.addEventListener('scroll', handleScroll, {
|
|
3200
|
+
passive: true
|
|
3201
|
+
});
|
|
3202
|
+
}
|
|
3203
|
+
}, _constants.TIMEOUTS.SCROLL_CONTAINER_DELAY);
|
|
3204
|
+
return () => {
|
|
3205
|
+
clearTimeout(timeoutId);
|
|
3206
|
+
if (scrollThrottleTimeoutRef.current) {
|
|
3207
|
+
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
3208
|
+
scrollThrottleTimeoutRef.current = null;
|
|
3209
|
+
}
|
|
3210
|
+
if (scrollContainerRef.current) {
|
|
3211
|
+
scrollContainerRef.current.removeEventListener('scroll', handleScroll);
|
|
3212
|
+
scrollContainerRef.current = null;
|
|
3213
|
+
}
|
|
3214
|
+
isScrollProcessingRef.current = false;
|
|
3215
|
+
};
|
|
3216
|
+
}, [onPopupScroll, dropdownOpen, handleScroll]);
|
|
3217
|
+
|
|
3218
|
+
/**
|
|
3219
|
+
* Reset scroll state - used when clearing or closing dropdown
|
|
3220
|
+
*/
|
|
3221
|
+
const resetScrollState = (0, _react.useCallback)(() => {
|
|
3222
|
+
setIsLoadingOnScroll(false);
|
|
3223
|
+
isScrollProcessingRef.current = false;
|
|
3224
|
+
if (scrollLoadingTimeoutRef.current) {
|
|
3225
|
+
clearTimeout(scrollLoadingTimeoutRef.current);
|
|
3226
|
+
scrollLoadingTimeoutRef.current = null;
|
|
3227
|
+
}
|
|
3228
|
+
if (scrollThrottleTimeoutRef.current) {
|
|
3229
|
+
clearTimeout(scrollThrottleTimeoutRef.current);
|
|
3230
|
+
scrollThrottleTimeoutRef.current = null;
|
|
3231
|
+
}
|
|
3232
|
+
if (scrollContainerRef.current) {
|
|
3233
|
+
scrollContainerRef.current.removeEventListener('scroll', handleScroll);
|
|
3234
|
+
scrollContainerRef.current = null;
|
|
3235
|
+
}
|
|
3236
|
+
}, [handleScroll]);
|
|
3237
|
+
return {
|
|
3238
|
+
isLoadingOnScroll,
|
|
3239
|
+
resetScrollState,
|
|
3240
|
+
scrollTriggerOptionsCountRef
|
|
3241
|
+
};
|
|
3242
|
+
};
|
|
3243
|
+
exports.useInfiniteScroll = useInfiniteScroll;
|
|
3244
|
+
|
|
3136
3245
|
/***/ }),
|
|
3137
3246
|
|
|
3138
3247
|
/***/ 9206:
|
|
@@ -3201,7 +3310,7 @@ var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = __webpack_require__(1601);
|
|
|
3201
3310
|
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(6314);
|
|
3202
3311
|
var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);
|
|
3203
3312
|
// Module
|
|
3204
|
-
___CSS_LOADER_EXPORT___.push([module.id, `.blaze-ui-cap-unified-select-header-wrapper{display:flex;align-items:center}.blaze-ui-cap-unified-select-header-wrapper.blaze-ui-disabled{opacity:.5;cursor:not-allowed}.blaze-ui-cap-unified-select-header-wrapper .blaze-ui-cap-unified-select-header-label{font-family:"Roboto",sans-serif;font-weight:500;font-size:1rem;line-height:1.429rem;letter-spacing:0}.blaze-ui-cap-unified-select-header-byline-text{font-family:"Roboto",sans-serif;font-weight:400;font-size:.857rem;letter-spacing:0;color:#97a0af}.blaze-ui-cap-unified-select-container{text-align:justify;min-width:13.786rem}.blaze-ui-cap-unified-select-container.blaze-ui-disabled{cursor:not-allowed}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-more-text{cursor:pointer;color:#091e42;margin-right:.286rem;position:relative}.blaze-ui-cap-unified-select-container.ant-select-disabled .blaze-ui-cap-unified-select-more-text{color:unset !important;cursor:not-allowed}.blaze-ui-cap-unified-select-container.ant-select-focused .ant-select-selector{border:.071rem solid #091e42 !important}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-suffix-icon{color:#7a869a}.blaze-ui-cap-unified-select-container .blaze-ui-cap-tooltip-with-info-icon{margin-top:.143rem}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select.blaze-ui-cap-unified-tree-select-readonly{pointer-events:none}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select.blaze-ui-cap-unified-tree-select-readonly .blaze-ui-cap-unified-select-more-text{pointer-events:auto;color:unset !important}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select .ant-select-tree-treenode{padding-left:.286rem}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly .ant-select-selector{background-color:#fff;border-color:#ebecf0 !important;cursor:default}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly .ant-select-arrow{pointer-events:auto;color:#b3bac5}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:hover .ant-select-selector,.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:active .ant-select-selector,.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:focus .ant-select-selector{border-color:#ebecf0 !important}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-status{color:#ea213a}.blaze-ui-cap-unified-select-container .ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:#7a869a}.blaze-ui-cap-unified-select-container .ant-select-selector{background-color:#fff !important;border:.071rem solid #7a869a !important;border-radius:.286rem !important}.blaze-ui-cap-unified-select-container .ant-select-selector .ant-select-selection-placeholder{pointer-events:unset;color:#97a0af;display:flex;align-items:center}.blaze-ui-cap-unified-select-container .ant-select-prefix{font-size:1rem;font-weight:400;color:unset !important;line-height:1.429rem}.blaze-ui-cap-unified-select-container .ant-select-disabled .ant-select-prefix{color:unset !important}.blaze-ui-cap-unified-select-container .ant-input-affix-wrapper .ant-input-prefix{left:.857rem}.blaze-ui-cap-unified-select-container .ant-select-selector{border-color:#7a869a !important;box-shadow:none !important;outline:0}.blaze-ui-cap-unified-select-container .ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background-color:#47af46}.blaze-ui-cap-unified-select-container .ant-select-dropdown{margin-top:-0.571rem !important;border-radius:.286rem;background-color:#fff;box-shadow:0 .286rem .571rem -0.143rem rgba(9,30,66,.15),0 0 .071rem 0 rgba(9,30,66,.1);max-height:25.714rem;overflow:visible}.blaze-ui-cap-unified-select-container .ant-select-outlined.ant-select-multiple .ant-select-selection-wrap .ant-select-selection-item{background:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-container .ant-select-multiple .ant-select-selection-wrap .ant-select-selection-item,.blaze-ui-cap-unified-select-container .ant-select-selection-wrap .ant-select-selection-item{background:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-container .ant-select-multiple .ant-select-selection-wrap{align-self:center}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-search-container{border-bottom:.071rem solid #ebecf0 !important;line-height:2.857rem !important}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-search-container .blaze-ui-cap-unified-select-search-icon{color:#b3bac5}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-select-all-container{padding:.643rem 1.071rem;display:flex;align-items:center;border-bottom:.071rem solid #ebecf0;height:2.857rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-select-all-container .blaze-ui-cap-unified-select-select-all-checkbox{display:contents !important}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container{cursor:pointer;display:flex;align-items:center;border-bottom:.071rem solid #ebecf0;height:2.857rem;padding-left:1.143rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container .blaze-ui-cap-unified-select-upload-icon{color:#2466ea}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container .blaze-ui-cap-unified-select-upload-label{margin-left:.857rem;color:#2466ea}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container{display:flex;align-items:center;height:3.429rem;padding:.5rem;border-top:.071rem solid #ebecf0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group{display:flex;padding-left:.571rem;align-items:center;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button{background-color:#47af46;height:2.286rem;width:6.714rem;color:#fff}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button:hover{background-color:#1f9a1d}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button:disabled{background-color:#a1d8a0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-cancel-button{border:rgba(0,0,0,0);box-shadow:none;width:5.714rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-selected-count{display:flex;margin-left:auto;font-size:.857rem;font-weight:400;line-height:1.143rem;color:#5e6c84}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container{display:flex;justify-content:center;align-items:center;height:2.857rem;border-top:.071rem solid #ebecf0;cursor:pointer;color:#091e42}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container:hover{background-color:#ebecf0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container .blaze-ui-cap-unified-select-tree-clear-label{font-size:1rem;font-weight:400}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container{cursor:pointer;display:flex;align-items:center;margin-left:auto;padding-right:1.143rem;gap:.857rem;flex-wrap:nowrap}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container:hover{opacity:.8}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container .blaze-ui-cap-unified-select-footer-download-icon{color:#2466ea;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container .blaze-ui-cap-unified-select-footer-download-label{color:#2466ea;font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:.857rem;line-height:1.143rem;letter-spacing:0;white-space:nowrap;display:inline-flex;align-items:center}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-no-result{display:flex;flex-direction:column;align-items:center;justify-content:center;height:14.286rem;color:#97a0af;font-size:1rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-no-result .blaze-ui-cap-unified-select-no-result-text{font-weight:500}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:14.286rem;width:100%;gap:.571rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-more{display:flex;align-items:center;justify-content:center;padding:.857rem;border-top:.071rem solid #ebecf0;color:#97a0af}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-menu-wrapper{position:relative;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(255,255,255,.8);z-index:10;gap:.571rem;color:#97a0af}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix{display:flex;justify-content:start;align-items:center;width:100%;height:100%;line-height:1.5;vertical-align:middle;flex:1}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-label{display:flex;align-items:center;flex-shrink:1;min-width:0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-end{display:flex;align-items:center;gap:.571rem;flex-shrink:0;margin-left:auto}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-suffix{display:flex;align-items:center;padding:0 .571rem;max-height:1.429rem;white-space:nowrap}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-tooltip-with-info .blaze-ui-cap-tooltip-with-info-icon{margin-top:.357rem;color:#42526e}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-tooltip-with-info .blaze-ui-cap-tooltip-with-info-icon .blaze-ui-cap-icon{color:#42526e}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu{margin-top:0 !important}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu .ant-select-dropdown-menu-item{padding:.571rem 1.714rem !important;height:unset !important;font-size:1rem !important}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,.25) !important;cursor:not-allowed !important;line-height:1.428rem !important;font-size:1rem !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper{background-color:rgba(0,0,0,0);height:100%;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background-color:rgba(0,0,0,0) !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode{height:2.857rem;margin-bottom:0;display:flex;align-items:center;width:100%}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode:hover{background-color:#fffbe6}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-selected{background-color:#f4f5f7 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled{cursor:not-allowed !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled .blaze-ui-cap-unified-select-option-label{color:#b3bac5}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled .blaze-ui-cap-icon{color:#b3bac5 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode.ant-select-tree-treenode-selected{background-color:#f4f5f7}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-leaf .ant-select-tree-switcher-noop{display:none}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox{display:flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox .ant-select-tree-checkbox-inner{height:1.286rem;width:1.286rem;border:.143rem solid #b3bac5;border-radius:.286rem;display:flex;align-items:center;justify-content:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:hover{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#47af46 !important;border-color:#47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{content:"";position:absolute;top:50%;left:50%;width:.714rem;height:.143rem;background-color:#fff;transform:translate(-50%, -50%);border-radius:.071rem}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper{border-radius:0;padding-left:.214rem;width:100%;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-title{width:100%;display:flex}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-indent{margin-left:.857rem;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher{display:flex;align-items:center;justify-content:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher:not(.ant-select-tree-switcher-noop):hover:before{background-color:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher .ant-select-tree-switcher-icon{font-size:.857rem;margin-top:1.286rem}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-list-holder-inner{width:fit-content !important;min-width:100%}.blaze-ui-cap-unified-select-popup .ant-tree-select:hover .ant-select-selector{border-color:#7a869a}.blaze-ui-cap-unified-select-popup .ant-tree-select-focused .ant-select-selector,.blaze-ui-cap-unified-select-popup .ant-tree-select-open .ant-select-selector{border-color:#7a869a;box-shadow:none;outline:none}.blaze-ui-cap-unified-select-popup .ant-checkbox-inner{height:1.286rem;width:1.286rem;border:.143rem solid #b3bac5;border-radius:.286rem}.blaze-ui-cap-unified-select-popup .ant-checkbox-wrapper:not(.ant-checkbox-wrapper-disabled):hover .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#47af46 !important;border-color:#47af46 !important}.blaze-ui-cap-unified-select-popup .ant-checkbox-indeterminate .ant-checkbox-inner::after{content:"";position:absolute;top:50%;left:50%;width:.714rem;height:.143rem;background-color:#fff;transform:translate(-50%, -50%);border-radius:.071rem}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper{padding-left:.571rem;border:none;box-shadow:none;border-radius:0;border-bottom:.071rem solid rgba(0,0,0,0);transition:border-color .2s ease}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper:hover{border-bottom:.071rem solid #7a869a !important;box-shadow:none}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper:focus-within{border-bottom:.071rem solid #091e42 !important;box-shadow:none;outline:none}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper .ant-input{border:none !important;box-shadow:none !important}`, ""]);
|
|
3313
|
+
___CSS_LOADER_EXPORT___.push([module.id, `.blaze-ui-cap-unified-select-header-wrapper{display:flex;align-items:center}.blaze-ui-cap-unified-select-header-wrapper.blaze-ui-disabled{opacity:.5;cursor:not-allowed}.blaze-ui-cap-unified-select-header-wrapper .blaze-ui-cap-unified-select-header-label{font-family:"Roboto",sans-serif;font-weight:500;font-size:1rem;line-height:1.429rem;letter-spacing:0}.blaze-ui-cap-unified-select-header-byline-text{font-family:"Roboto",sans-serif;font-weight:400;font-size:.857rem;letter-spacing:0;color:#97a0af}.blaze-ui-cap-unified-select-container{text-align:justify;min-width:13.786rem}.blaze-ui-cap-unified-select-container.blaze-ui-disabled{cursor:not-allowed}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-more-text{cursor:pointer;color:#091e42;margin-right:.286rem;position:relative}.blaze-ui-cap-unified-select-container.ant-select-disabled .blaze-ui-cap-unified-select-more-text{color:unset !important;cursor:not-allowed}.blaze-ui-cap-unified-select-container.ant-select-focused .ant-select-selector{border:.071rem solid #091e42 !important}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-suffix-icon{color:#7a869a}.blaze-ui-cap-unified-select-container .blaze-ui-cap-tooltip-with-info-icon{margin-top:.143rem}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select.blaze-ui-cap-unified-tree-select-readonly{pointer-events:none}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select.blaze-ui-cap-unified-tree-select-readonly .blaze-ui-cap-unified-select-more-text{pointer-events:auto;color:unset !important}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select .ant-select-tree-treenode{padding-left:.286rem}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly .ant-select-selector{background-color:#fff;border-color:#ebecf0 !important;cursor:default}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly .ant-select-arrow{pointer-events:auto;color:#b3bac5}.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:hover .ant-select-selector,.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:active .ant-select-selector,.blaze-ui-cap-unified-select-container.blaze-ui-cap-unified-tree-select-readonly.ant-select-outlined:focus .ant-select-selector{border-color:#ebecf0 !important}.blaze-ui-cap-unified-select-container .blaze-ui-cap-unified-select-status{color:#ea213a}.blaze-ui-cap-unified-select-container .ant-select-outlined:not(.ant-select-disabled):not(.ant-select-customize-input):not(.ant-pagination-size-changer):hover .ant-select-selector{border-color:#7a869a}.blaze-ui-cap-unified-select-container .ant-select-selector{background-color:#fff !important;border:.071rem solid #7a869a !important;border-radius:.286rem !important}.blaze-ui-cap-unified-select-container .ant-select-selector .ant-select-selection-placeholder{pointer-events:unset;color:#97a0af;display:flex;align-items:center}.blaze-ui-cap-unified-select-container .ant-select-prefix{font-size:1rem;font-weight:400;color:unset !important;line-height:1.429rem}.blaze-ui-cap-unified-select-container .ant-select-disabled .ant-select-prefix{color:unset !important}.blaze-ui-cap-unified-select-container .ant-input-affix-wrapper .ant-input-prefix{left:.857rem}.blaze-ui-cap-unified-select-container .ant-select-selector{border-color:#7a869a !important;box-shadow:none !important;outline:0}.blaze-ui-cap-unified-select-container .ant-btn-variant-solid:not(:disabled):not(.ant-btn-disabled):hover{background-color:#47af46}.blaze-ui-cap-unified-select-container .ant-select-dropdown{margin-top:-0.571rem !important;border-radius:.286rem;background-color:#fff;box-shadow:0 .286rem .571rem -0.143rem rgba(9,30,66,.15),0 0 .071rem 0 rgba(9,30,66,.1);max-height:25.714rem;overflow:visible}.blaze-ui-cap-unified-select-container .ant-select-outlined.ant-select-multiple .ant-select-selection-wrap .ant-select-selection-item{background:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-container .ant-select-multiple .ant-select-selection-wrap .ant-select-selection-item,.blaze-ui-cap-unified-select-container .ant-select-selection-wrap .ant-select-selection-item{background:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-container .ant-select-multiple .ant-select-selection-wrap{align-self:center}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-search-container{border-bottom:.071rem solid #ebecf0 !important;line-height:2.857rem !important}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-search-container .blaze-ui-cap-unified-select-search-icon{color:#b3bac5}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-select-all-container{padding:.643rem 1.071rem;display:flex;align-items:center;border-bottom:.071rem solid #ebecf0;height:2.857rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-select-all-container .blaze-ui-cap-unified-select-select-all-checkbox{display:contents !important}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container{cursor:pointer;display:flex;align-items:center;border-bottom:.071rem solid #ebecf0;height:2.857rem;padding-left:1.143rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container .blaze-ui-cap-unified-select-upload-icon{color:#2466ea}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-upload-container .blaze-ui-cap-unified-select-upload-label{margin-left:.857rem;color:#2466ea}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container{display:flex;align-items:center;height:3.429rem;padding:.5rem;border-top:.071rem solid #ebecf0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group{display:flex;padding-left:.571rem;align-items:center;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button{background-color:#47af46;height:2.286rem;width:6.714rem;color:#fff}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button:hover{background-color:#1f9a1d}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-confirm-button:disabled{background-color:#a1d8a0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-cancel-button{border:rgba(0,0,0,0);box-shadow:none;width:5.714rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-confirm-container .blaze-ui-cap-unified-select-confirm-button-group .blaze-ui-cap-unified-select-selected-count{display:flex;margin-left:auto;font-size:.857rem;font-weight:400;line-height:1.143rem;color:#5e6c84}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container{display:flex;justify-content:center;align-items:center;height:2.857rem;border-top:.071rem solid #ebecf0;cursor:pointer;color:#091e42}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container:hover{background-color:#ebecf0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-tree-clear-container .blaze-ui-cap-unified-select-tree-clear-label{font-size:1rem;font-weight:400}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container{cursor:pointer;display:flex;align-items:center;margin-left:auto;padding-right:1.143rem;gap:.857rem;flex-wrap:nowrap}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container:hover{opacity:.8}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container .blaze-ui-cap-unified-select-footer-download-icon{color:#2466ea;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-footer-download-container .blaze-ui-cap-unified-select-footer-download-label{color:#2466ea;font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:.857rem;line-height:1.143rem;letter-spacing:0;white-space:nowrap;display:inline-flex;align-items:center}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-no-result{display:flex;flex-direction:column;align-items:center;justify-content:center;height:14.286rem;color:#97a0af;font-size:1rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-no-result .blaze-ui-cap-unified-select-no-result-text{font-weight:500}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:14.286rem;width:100%;gap:.571rem}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-more{display:flex;align-items:center;justify-content:center;padding:.857rem;border-top:.071rem solid #ebecf0;color:#97a0af}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-menu-wrapper{position:relative;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:rgba(255,255,255,.8);z-index:10;gap:.571rem;color:#97a0af}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix{display:flex;justify-content:start;align-items:center;width:100%;height:100%;line-height:1.5;vertical-align:middle;flex:1}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-label{display:flex;align-items:center;flex-shrink:1;min-width:0}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-label.blaze-ui-truncate-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-label.blaze-ui-truncate-text .cap-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-end{display:flex;align-items:center;gap:.571rem;flex-shrink:0;margin-left:auto}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-unified-select-option-suffix{display:flex;align-items:center;padding:0 .571rem;max-height:1.429rem;white-space:nowrap}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-tooltip-with-info .blaze-ui-cap-tooltip-with-info-icon{margin-top:.357rem;color:#42526e}.blaze-ui-cap-unified-select-popup .blaze-ui-cap-unified-select-option-with-suffix .blaze-ui-cap-tooltip-with-info .blaze-ui-cap-tooltip-with-info-icon .blaze-ui-cap-icon{color:#42526e}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu{margin-top:0 !important}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu .ant-select-dropdown-menu-item{padding:.571rem 1.714rem !important;height:unset !important;font-size:1rem !important}.blaze-ui-cap-unified-select-popup .ant-select-dropdown .ant-select-dropdown-menu-item-disabled{color:rgba(0,0,0,.25) !important;cursor:not-allowed !important;line-height:1.428rem !important;font-size:1rem !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper{background-color:rgba(0,0,0,0);height:100%;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper:hover{background-color:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-active .ant-select-tree-node-content-wrapper{background-color:rgba(0,0,0,0) !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode{height:2.857rem;margin-bottom:0;display:flex;align-items:center;width:100%}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode:hover{background-color:#fffbe6}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-selected{background-color:#f4f5f7 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled{cursor:not-allowed !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled .blaze-ui-cap-unified-select-option-label{color:#b3bac5}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-disabled .blaze-ui-cap-icon{color:#b3bac5 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode.ant-select-tree-treenode-selected{background-color:#f4f5f7}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-treenode-leaf .ant-select-tree-switcher-noop{display:none}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox{display:flex;align-items:center;justify-content:center;line-height:1;vertical-align:middle}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox .ant-select-tree-checkbox-inner{height:1.286rem;width:1.286rem;border:.143rem solid #b3bac5;border-radius:.286rem;display:flex;align-items:center;justify-content:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox-checked .ant-select-tree-checkbox-inner:hover{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner{background-color:#47af46 !important;border-color:#47af46 !important}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-checkbox.ant-select-tree-checkbox-indeterminate .ant-select-tree-checkbox-inner::after{content:"";position:absolute;top:50%;left:50%;width:.714rem;height:.143rem;background-color:#fff;transform:translate(-50%, -50%);border-radius:.071rem}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper{border-radius:0;padding-left:.214rem;width:100%;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-node-content-wrapper .ant-select-tree-title{width:100%;display:flex}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-indent{margin-left:.857rem;display:flex;align-items:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher{display:flex;align-items:center;justify-content:center}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher:not(.ant-select-tree-switcher-noop):hover:before{background-color:rgba(0,0,0,0)}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-switcher .ant-select-tree-switcher-icon{font-size:.857rem;margin-top:1.286rem}.blaze-ui-cap-unified-select-popup .ant-select-tree .ant-select-tree-list-holder-inner{width:fit-content !important;min-width:100%}.blaze-ui-cap-unified-select-popup .ant-tree-select:hover .ant-select-selector{border-color:#7a869a}.blaze-ui-cap-unified-select-popup .ant-tree-select-focused .ant-select-selector,.blaze-ui-cap-unified-select-popup .ant-tree-select-open .ant-select-selector{border-color:#7a869a;box-shadow:none;outline:none}.blaze-ui-cap-unified-select-popup .ant-checkbox-inner{height:1.286rem;width:1.286rem;border:.143rem solid #b3bac5;border-radius:.286rem}.blaze-ui-cap-unified-select-popup .ant-checkbox-wrapper:not(.ant-checkbox-wrapper-disabled):hover .ant-checkbox-checked:not(.ant-checkbox-disabled) .ant-checkbox-inner{background-color:#47af46;border:.143rem solid #47af46 !important}.blaze-ui-cap-unified-select-popup .ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#47af46 !important;border-color:#47af46 !important}.blaze-ui-cap-unified-select-popup .ant-checkbox-indeterminate .ant-checkbox-inner::after{content:"";position:absolute;top:50%;left:50%;width:.714rem;height:.143rem;background-color:#fff;transform:translate(-50%, -50%);border-radius:.071rem}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper{padding-left:.571rem;border:none;box-shadow:none;border-radius:0;border-bottom:.071rem solid rgba(0,0,0,0);transition:border-color .2s ease}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper:hover{border-bottom:.071rem solid #7a869a !important;box-shadow:none}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper:focus-within{border-bottom:.071rem solid #091e42 !important;box-shadow:none;outline:none}.blaze-ui-cap-unified-select-popup .ant-input-affix-wrapper .ant-input{border:none !important;box-shadow:none !important}`, ""]);
|
|
3205
3314
|
// Exports
|
|
3206
3315
|
___CSS_LOADER_EXPORT___.locals = {
|
|
3207
3316
|
"cap-unified-select-header-wrapper": `blaze-ui-cap-unified-select-header-wrapper`,
|
|
@@ -3241,6 +3350,7 @@ ___CSS_LOADER_EXPORT___.locals = {
|
|
|
3241
3350
|
"cap-unified-select-loading-overlay": `blaze-ui-cap-unified-select-loading-overlay`,
|
|
3242
3351
|
"cap-unified-select-option-with-suffix": `blaze-ui-cap-unified-select-option-with-suffix`,
|
|
3243
3352
|
"cap-unified-select-option-label": `blaze-ui-cap-unified-select-option-label`,
|
|
3353
|
+
"truncate-text": `blaze-ui-truncate-text`,
|
|
3244
3354
|
"cap-unified-select-option-end": `blaze-ui-cap-unified-select-option-end`,
|
|
3245
3355
|
"cap-unified-select-option-suffix": `blaze-ui-cap-unified-select-option-suffix`,
|
|
3246
3356
|
"cap-tooltip-with-info": `blaze-ui-cap-tooltip-with-info`,
|