@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.
@@ -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
- (0, _react.useEffect)(() => {
236
- optionsRef.current = options;
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
- (0, _react.useEffect)(() => {
319
- if (!hasMore && isLoadingOnScroll) {
320
- setIsLoadingOnScroll(false);
321
- isScrollProcessingRef.current = false;
322
- if (scrollLoadingTimeoutRef.current) {
323
- clearTimeout(scrollLoadingTimeoutRef.current);
324
- scrollLoadingTimeoutRef.current = null;
325
- }
326
- }
327
- }, [hasMore, isLoadingOnScroll]);
328
- (0, _react.useEffect)(() => {
329
- if (!isLoadingOnScroll) {
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
- const optionsCountIncreased = options.length > prevOptionsCountRef.current;
337
- const optionsContentChanged = (() => {
338
- const prevCount = prevOptionsCountRef.current;
339
- const currentCount = options.length;
340
- if (prevCount !== currentCount) {
341
- return true;
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
- // 1. resetData is provided AND
527
- // 2. (there was an active search that we're resetting OR options.length > 0)
528
- // This ensures we reset data back to initial state after a search + confirm
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, resetData, staticValue, onSearch]);
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
- if (scrollLoadingTimeoutRef.current) {
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
- if (resetData && options.length > 0) {
569
- prevOptionsBeforeResetRef.current = options;
570
- setIsResettingData(true);
571
- resetDataCalledRef.current = true;
572
- resetDataCalledTimeRef.current = Date.now();
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
- setIsLoadingOnScroll(false);
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
- setIsLoadingOnScroll(false);
617
- isScrollProcessingRef.current = false;
618
- if (scrollLoadingTimeoutRef.current) {
619
- clearTimeout(scrollLoadingTimeoutRef.current);
620
- scrollLoadingTimeoutRef.current = null;
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, resetData, options, isResettingData]);
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
- const handleScroll = (0, _react.useCallback)(event => {
660
- if (!onPopupScroll) return;
661
- const target = event.target;
662
- if (!target) return;
663
- const isNearBottom = Math.floor(target.scrollHeight - target.scrollTop) <= target.clientHeight;
664
- if (!isNearBottom) {
665
- isScrollProcessingRef.current = false;
666
- return;
667
- }
668
- if (isScrollProcessingRef.current) return;
669
- if (isLoadingOnScroll) return;
670
- if (!hasMore) {
671
- isScrollProcessingRef.current = false;
672
- return;
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
- if (resetData && options.length > 0) {
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, resetData, options, disabled]);
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
- if (resetData && options.length > 0) {
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
- }, [resetData, options, disabled]);
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: opt == null ? void 0 : opt.label
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 => _extends({}, opt, {
957
- title: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CapRow.default, {
958
- className: _styles.default['cap-unified-select-option-with-suffix'],
959
- justify: "space-between",
960
- align: "middle",
961
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
962
- className: _styles.default['cap-unified-select-option-label'],
963
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapLabel.default, {
964
- type: "label14",
965
- children: opt == null ? void 0 : opt.label
966
- })
967
- }), ((opt == null ? void 0 : opt.optionSuffix) || (opt == null ? void 0 : opt.optionTooltipInfo)) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
968
- className: _styles.default['cap-unified-select-option-end'],
969
- children: [(opt == null ? void 0 : opt.optionSuffix) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
970
- className: _styles.default['cap-unified-select-option-suffix'],
971
- children: [opt == null ? void 0 : opt.optionSuffix, (opt == null ? void 0 : opt.optionSuffixInfo) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_CapTooltipWithInfo.default, {
972
- title: opt == null ? void 0 : opt.optionSuffixInfo
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
- label: opt == null ? void 0 : opt.label
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`,