@majoo-ui/react 1.61.20 → 1.61.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.esm.js +424 -102
  2. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -14185,8 +14185,14 @@ function OptionGroupItem({
14185
14185
  }), void 0);
14186
14186
  }
14187
14187
 
14188
- const _excluded$d = ["placeholder", "option", "value", "defaultValue", "size", "disabled", "onChange", "search", "readOnly", "placement", "disabledOptions", "textEmptyItem", "onRemoveItem", "isInvalid", "sortBy", "showSelectAll", "showTagSelectAll", "selectAllLabel", "showSelectedTag", "unremovableTags", "helperText", "css", "showCounter", "labelCounter", "collapsible", "toggleInput", "fetchData", "onSearch", "isLoading", "maxSelectedItem", "mobileOnly", "desktopOnly", "label", "tagCss", "checkBoxCss", "optionListCss", "showCollapsibleCounter", "collapsibleLimit", "pageIndex", "onSelectAllChecked", "totalOptions", "clearSearchOnSelect", "onItemClick"];
14188
+ const _excluded$d = ["placeholder", "option", "value", "defaultValue", "size", "disabled", "onChange", "search", "readOnly", "placement", "disabledOptions", "disabledSortChecked", "textEmptyItem", "onRemoveItem", "isInvalid", "sortBy", "showSelectAll", "showTagSelectAll", "selectAllLabel", "showSelectedTag", "unremovableTags", "helperText", "css", "showCounter", "labelCounter", "collapsible", "toggleInput", "fetchData", "onSearch", "isLoading", "maxSelectedItem", "mobileOnly", "desktopOnly", "label", "tagCss", "checkBoxCss", "optionListCss", "showCollapsibleCounter", "collapsibleLimit", "pageIndex", "onSelectAllChecked", "totalOptions", "clearSearchOnSelect", "onItemClick", "virtualized", "virtualizedThreshold"];
14189
14189
  var _jsxFileName$x = "/Users/hanabyan/Sourcecode/majoo-ui/packages/react/src/components/form/components/InputSelectCheck/InputSelectCheck.js";
14190
+
14191
+ // Polyfill for startTransition (React 17 compatibility)
14192
+ const startTransition = React__default.startTransition || (callback => {
14193
+ // For React 17, use setTimeout to defer updates
14194
+ setTimeout(callback, 0);
14195
+ });
14190
14196
  const Wrapper$1 = styled('div', {
14191
14197
  margin: 0,
14192
14198
  flexDirection: 'column',
@@ -14442,7 +14448,7 @@ const IndeterminateFilled$1 = styled('div', {
14442
14448
  alignItems: 'center'
14443
14449
  });
14444
14450
  const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14445
- var _initItem$reduce, _ref2, _selectedItems$filter, _selectedItems$filter2, _selectedItems$filter3;
14451
+ var _ref2, _selectedItems$filter, _selectedItems$filter2, _selectedItems$filter3;
14446
14452
  let {
14447
14453
  placeholder,
14448
14454
  option,
@@ -14455,6 +14461,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14455
14461
  readOnly,
14456
14462
  placement,
14457
14463
  disabledOptions,
14464
+ disabledSortChecked,
14458
14465
  textEmptyItem,
14459
14466
  onRemoveItem,
14460
14467
  isInvalid,
@@ -14485,7 +14492,9 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14485
14492
  onSelectAllChecked,
14486
14493
  totalOptions,
14487
14494
  clearSearchOnSelect,
14488
- onItemClick
14495
+ onItemClick,
14496
+ virtualized,
14497
+ virtualizedThreshold
14489
14498
  } = _ref,
14490
14499
  props = _objectWithoutPropertiesLoose(_ref, _excluded$d);
14491
14500
  const {
@@ -14503,6 +14512,100 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14503
14512
  const [query, setQuery] = React__default.useState('');
14504
14513
  const scrollerRef = React__default.useRef(null);
14505
14514
  const isShowSelectAll = showSelectAll && !maxSelectedItem;
14515
+
14516
+ // Use Set for O(1) lookup performance with large datasets
14517
+ const selectedValueSet = useMemo(() => new Set(selectedValue), [selectedValue]);
14518
+
14519
+ // Calculate total item count efficiently without creating full array
14520
+ const totalItemCount = useMemo(() => {
14521
+ return items.reduce((count, item) => {
14522
+ if (item != null && item.children) {
14523
+ return count + 1 + item.children.length; // parent + children
14524
+ }
14525
+ return count + 1;
14526
+ }, 0);
14527
+ }, [items]);
14528
+
14529
+ // Batched onChange to prevent multiple rapid calls
14530
+ const onChangeTimeoutRef = useRef(null);
14531
+ const batchedOnChange = useCallback(values => {
14532
+ // Clear any pending onChange calls
14533
+ if (onChangeTimeoutRef.current) {
14534
+ clearTimeout(onChangeTimeoutRef.current);
14535
+ }
14536
+
14537
+ // For large datasets, batch the onChange call to prevent freezing
14538
+ if (totalItemCount > 10000) {
14539
+ onChangeTimeoutRef.current = setTimeout(() => {
14540
+ onChange == null || onChange(values);
14541
+ }, 0);
14542
+ } else {
14543
+ // For smaller datasets, call immediately
14544
+ onChange == null || onChange(values);
14545
+ }
14546
+ }, [onChange, totalItemCount]);
14547
+
14548
+ // Determine if virtualization should be enabled
14549
+ const shouldVirtualize = virtualized && totalItemCount >= virtualizedThreshold;
14550
+
14551
+ // Lazy item lookup function - only compute when needed
14552
+ const getItemAtIndex = useCallback(index => {
14553
+ let currentIndex = 0;
14554
+ for (let i = 0; i < items.length; i++) {
14555
+ const item = items[i];
14556
+ if (item != null && item.children) {
14557
+ // Check if index is the group header
14558
+ if (currentIndex === index) {
14559
+ return {
14560
+ type: 'group',
14561
+ item,
14562
+ originalIndex: i
14563
+ };
14564
+ }
14565
+ currentIndex++;
14566
+
14567
+ // Check if index is within children
14568
+ for (let j = 0; j < item.children.length; j++) {
14569
+ if (currentIndex === index) {
14570
+ return {
14571
+ type: 'child',
14572
+ item: item.children[j],
14573
+ originalIndex: i,
14574
+ childIndex: j
14575
+ };
14576
+ }
14577
+ currentIndex++;
14578
+ }
14579
+ } else {
14580
+ // Regular item
14581
+ if (currentIndex === index) {
14582
+ return {
14583
+ type: 'item',
14584
+ item,
14585
+ originalIndex: i
14586
+ };
14587
+ }
14588
+ currentIndex++;
14589
+ }
14590
+ }
14591
+ return null;
14592
+ }, [items]);
14593
+
14594
+ // Dynamic overscan based on dataset size
14595
+ const overscanCount = useMemo(() => {
14596
+ if (totalItemCount > 10000) return 5;
14597
+ if (totalItemCount > 1000) return 8;
14598
+ return 10;
14599
+ }, [totalItemCount]);
14600
+
14601
+ // Setup virtualization
14602
+ const rowVirtualizer = useVirtual({
14603
+ size: totalItemCount,
14604
+ parentRef: scrollerRef,
14605
+ estimateSize: useCallback(() => 44, []),
14606
+ // Estimated height of each item
14607
+ overscan: overscanCount
14608
+ });
14506
14609
  useMountedLayoutEffect(() => {
14507
14610
  var _scrollerRef$current;
14508
14611
  (_scrollerRef$current = scrollerRef.current) == null || _scrollerRef$current.scrollTo({
@@ -14528,7 +14631,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14528
14631
  return [...res, ...filterOption]; // add the missing elements
14529
14632
  }
14530
14633
  }, []) : option;
14531
- const sortDisabled = disabledOptions.length > 0 ? disabledOptions.reduce((res, id, i, {
14634
+ const sortDisabled = disabledOptions.length > 0 && !disabledSortChecked ? disabledOptions.reduce((res, id, i, {
14532
14635
  [i + 1]: next
14533
14636
  }) => {
14534
14637
  let sortData = option.find(option => option.id === id);
@@ -14538,6 +14641,43 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14538
14641
  return [...res, ...filterOption]; // add the missing elements
14539
14642
  }
14540
14643
  }, []) : option;
14644
+
14645
+ // Create a fast lookup map for item names (for large datasets)
14646
+ const itemLookupMap = useMemo(() => {
14647
+ if ((initItem == null ? void 0 : initItem.length) <= 10000) return null;
14648
+ const map = new Map();
14649
+ for (let i = 0; i < initItem.length; i++) {
14650
+ const item = initItem[i];
14651
+ map.set(item.id, item);
14652
+ if (item.children) {
14653
+ for (let j = 0; j < item.children.length; j++) {
14654
+ const child = item.children[j];
14655
+ map.set(child.id, child);
14656
+ }
14657
+ }
14658
+ }
14659
+ return map;
14660
+ }, [initItem]);
14661
+
14662
+ // Memoize selected items to prevent expensive recalculation on every render
14663
+ const memoizedSelectedItems = useMemo(() => {
14664
+ var _initItem$reduce;
14665
+ if (selectedValue.length === 0) return [];
14666
+
14667
+ // For very large datasets, use lookup map for O(1) access
14668
+ if ((initItem == null ? void 0 : initItem.length) > 10000 && itemLookupMap) {
14669
+ return selectedValue.map(id => {
14670
+ const item = itemLookupMap.get(id);
14671
+ return item || {
14672
+ id,
14673
+ name: id
14674
+ }; // Fallback to id as name if not found
14675
+ });
14676
+ }
14677
+
14678
+ // For smaller datasets, do the full flatten and filter
14679
+ return (initItem == null || (_initItem$reduce = initItem.reduce((acc, item) => [...acc, item, ...(item.children ? item.children : [])], [])) == null ? void 0 : _initItem$reduce.filter(item => selectedValueSet.has(item.id))) || [];
14680
+ }, [selectedValue, initItem, selectedValueSet, itemLookupMap]);
14541
14681
  const {
14542
14682
  getSelectedItemProps,
14543
14683
  getDropdownProps,
@@ -14545,7 +14685,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14545
14685
  removeSelectedItem,
14546
14686
  selectedItems
14547
14687
  } = useMultipleSelection({
14548
- selectedItems: selectedValue.length > 0 ? initItem == null || (_initItem$reduce = initItem.reduce((acc, item) => [...acc, item, ...(item.children ? item.children : [])], [])) == null ? void 0 : _initItem$reduce.filter(item => selectedValue.includes(item.id)) : []
14688
+ selectedItems: memoizedSelectedItems
14549
14689
  });
14550
14690
  const generateOptions = data => {
14551
14691
  return data.map(option => {
@@ -14610,7 +14750,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14610
14750
  if ((selected == null ? void 0 : selected.id) === 'counter') {
14611
14751
  setSelectedValue([]);
14612
14752
  setInputSelectValue([]);
14613
- onChange == null || onChange([]);
14753
+ batchedOnChange([]);
14614
14754
  for (let i = 0; i < selectedValue.length; i++) {
14615
14755
  removeSelectedItem(selectedValue[i]);
14616
14756
  }
@@ -14620,11 +14760,28 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14620
14760
  setSelectedValue(filterItems);
14621
14761
  setInputSelectValue(filterItems);
14622
14762
  if (selected.id !== '!all') {
14623
- onChange == null || onChange(filterItems);
14763
+ batchedOnChange(filterItems);
14624
14764
  }
14625
14765
  }
14626
14766
  }
14627
14767
  };
14768
+
14769
+ // Memoize flattened items for useCombobox to prevent recalculation on every render
14770
+ const flattenedItemsForCombobox = useMemo(() => {
14771
+ // We need all items for selection to work properly, even for large datasets
14772
+ // Optimize by using for loops instead of reduce/spread for better performance
14773
+ const result = [];
14774
+ for (let i = 0; i < items.length; i++) {
14775
+ const item = items[i];
14776
+ result.push(item);
14777
+ if (item.children) {
14778
+ for (let j = 0; j < item.children.length; j++) {
14779
+ result.push(item.children[j]);
14780
+ }
14781
+ }
14782
+ }
14783
+ return result;
14784
+ }, [items]);
14628
14785
  const {
14629
14786
  getToggleButtonProps,
14630
14787
  getMenuProps,
@@ -14636,7 +14793,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14636
14793
  isOpen
14637
14794
  } = useCombobox({
14638
14795
  inputValue,
14639
- items: items.reduce((acc, item) => [...acc, item, ...(item.children ? item.children : [])], []),
14796
+ items: flattenedItemsForCombobox,
14640
14797
  selectedItem: selectedValue,
14641
14798
  itemToString: item => item ? item.name : '',
14642
14799
  onStateChange: ({
@@ -14670,9 +14827,13 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14670
14827
  removeSelectedItem(item);
14671
14828
  }
14672
14829
  });
14673
- setSelectedValue([]);
14674
- setInputSelectValue([]);
14675
- onChange == null || onChange([]);
14830
+
14831
+ // Use startTransition for non-urgent state updates
14832
+ startTransition(() => {
14833
+ setSelectedValue([]);
14834
+ setInputSelectValue([]);
14835
+ });
14836
+ batchedOnChange([]);
14676
14837
  } else {
14677
14838
  removeItem(selectedItem);
14678
14839
  }
@@ -14680,27 +14841,34 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14680
14841
  }
14681
14842
  } else {
14682
14843
  if (selectedItem.id === '!all') {
14844
+ // Optimized select all - batch operations instead of individual calls
14683
14845
  const itemIds = [];
14846
+ const itemsToAdd = [];
14684
14847
  items.filter(item => !item.isDisabled).forEach(item => {
14685
14848
  var _item$children3;
14686
14849
  if (item != null && (_item$children3 = item.children) != null && _item$children3.length) {
14687
- var _item$children4;
14688
- item == null || (_item$children4 = item.children) == null || _item$children4.filter(item => !item.isDisabled).forEach(item => {
14689
- addSelectedItem(item);
14690
- itemIds.push(item.id);
14850
+ item.children.filter(child => !child.isDisabled).forEach(child => {
14851
+ itemsToAdd.push(child);
14852
+ itemIds.push(child.id);
14691
14853
  });
14692
14854
  } else {
14693
- addSelectedItem(item);
14855
+ itemsToAdd.push(item);
14694
14856
  itemIds.push(item.id);
14695
14857
  }
14696
14858
  });
14697
- setSelectedValue(itemIds);
14698
- setInputSelectValue(itemIds);
14699
- // onChange?.(itemIds.slice(1).filter(id => !items.find(item => item.id === id)?.children?.length));
14859
+
14860
+ // Batch add all items at once instead of one by one
14861
+ itemsToAdd.forEach(item => addSelectedItem(item));
14862
+
14863
+ // Use startTransition for non-urgent state updates
14864
+ startTransition(() => {
14865
+ setSelectedValue(itemIds);
14866
+ setInputSelectValue(itemIds);
14867
+ });
14700
14868
  if (onSelectAllChecked) {
14701
14869
  onSelectAllChecked(itemIds.slice(1));
14702
14870
  } else {
14703
- onChange == null || onChange(itemIds.slice(1));
14871
+ batchedOnChange(itemIds.slice(1));
14704
14872
  }
14705
14873
  } else {
14706
14874
  var _selectedItem$childre;
@@ -14709,34 +14877,48 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14709
14877
  var _selectedItem$childre2;
14710
14878
  const itemIdsSelect = [];
14711
14879
  const itemIdsUnSelect = [];
14880
+ const itemsToAdd = [];
14881
+ const itemsToRemove = [];
14712
14882
  selectedItem == null || (_selectedItem$childre2 = selectedItem.children) == null || _selectedItem$childre2.filter(item => !item.isDisabled).forEach(item => {
14713
- if (selectedValue != null && selectedValue.includes(item.id)) {
14714
- removeSelectedItem(item);
14883
+ if (selectedValueSet.has(item.id)) {
14884
+ itemsToRemove.push(item);
14715
14885
  itemIdsUnSelect.push(item.id);
14716
14886
  } else {
14717
- addSelectedItem(item);
14887
+ itemsToAdd.push(item);
14718
14888
  itemIdsSelect.push(item.id);
14719
14889
  }
14720
14890
  });
14721
14891
 
14892
+ // Batch add/remove operations
14893
+ itemsToAdd.forEach(item => addSelectedItem(item));
14894
+ itemsToRemove.forEach(item => removeSelectedItem(item));
14895
+
14722
14896
  //select all child in one of the option groups
14723
14897
  if (itemIdsSelect.length) {
14724
- setSelectedValue([...selectedValue, ...itemIdsSelect]);
14725
- setInputSelectValue([...selectedValue, ...itemIdsSelect]);
14726
- const _filteredSelectedValues = selectedValue.filter(val => val !== '!all');
14727
- onChange == null || onChange([..._filteredSelectedValues, ...itemIdsSelect]);
14898
+ const _newSelectedValue = [...selectedValue, ...itemIdsSelect];
14899
+
14900
+ // Use startTransition for non-urgent updates
14901
+ startTransition(() => {
14902
+ setSelectedValue(_newSelectedValue);
14903
+ setInputSelectValue(_newSelectedValue);
14904
+ });
14905
+ const _filteredSelectedValues = _newSelectedValue.filter(val => val !== '!all');
14906
+ batchedOnChange(_filteredSelectedValues);
14728
14907
  }
14729
14908
 
14730
14909
  //unselect all child in one of the option groups
14731
14910
  if (itemIdsUnSelect.length) {
14732
- const newSelectedValue = selectedValue.filter(selId => {
14733
- var _itemIdsUnSelect$filt;
14734
- return ((_itemIdsUnSelect$filt = itemIdsUnSelect.filter(unselId => unselId === selId && unselId)) == null ? void 0 : _itemIdsUnSelect$filt[0]) !== selId && selId;
14911
+ // Use Set for O(1) lookup instead of nested filter
14912
+ const unSelectSet = new Set(itemIdsUnSelect);
14913
+ const _newSelectedValue2 = selectedValue.filter(selId => !unSelectSet.has(selId) && selId);
14914
+
14915
+ // Use startTransition for non-urgent updates
14916
+ startTransition(() => {
14917
+ setSelectedValue(_newSelectedValue2);
14918
+ setInputSelectValue(_newSelectedValue2);
14735
14919
  });
14736
- setSelectedValue(newSelectedValue);
14737
- setInputSelectValue(newSelectedValue);
14738
- const _filteredSelectedValues2 = newSelectedValue.filter(val => val !== '!all');
14739
- onChange == null || onChange(_filteredSelectedValues2);
14920
+ const _filteredSelectedValues2 = _newSelectedValue2.filter(val => val !== '!all');
14921
+ batchedOnChange(_filteredSelectedValues2);
14740
14922
  }
14741
14923
  return;
14742
14924
  }
@@ -14750,10 +14932,15 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14750
14932
  //end check the child from one of the option groups
14751
14933
 
14752
14934
  addSelectedItem(selectedItem);
14753
- setSelectedValue([...selectedValue, selectedItem.id]);
14754
- setInputSelectValue([...selectedValue, selectedItem.id]);
14935
+ const newSelectedValue = [...selectedValue, selectedItem.id];
14936
+
14937
+ // Use startTransition for non-urgent updates
14938
+ startTransition(() => {
14939
+ setSelectedValue(newSelectedValue);
14940
+ setInputSelectValue(newSelectedValue);
14941
+ });
14755
14942
  const filteredSelectedValues = selectedValue.filter(val => val !== '!all');
14756
- onChange == null || onChange([...filteredSelectedValues, selectedItem.id]);
14943
+ batchedOnChange([...filteredSelectedValues, selectedItem.id]);
14757
14944
  }
14758
14945
  selectItem(null);
14759
14946
  }
@@ -14786,8 +14973,15 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14786
14973
  }
14787
14974
  });
14788
14975
  const memoOptions = useMemo(() => {
14976
+ // Skip expensive operations for very large datasets
14977
+ const isVeryLarge = (option == null ? void 0 : option.length) > 10000;
14978
+
14979
+ // For very large datasets, skip sorting and copying to improve performance
14980
+ if (isVeryLarge && !maxSelectedItem) {
14981
+ return option || [];
14982
+ }
14789
14983
  const optionsCopy = option ? [...option] : [];
14790
- if (sortBy === 'id') {
14984
+ if (sortBy === 'id' && !isVeryLarge) {
14791
14985
  optionsCopy.sort((a, b) => {
14792
14986
  const idA = typeof a.id === 'string' ? a.id.toUpperCase() : a.id;
14793
14987
  const idB = typeof b.id === 'string' ? b.id.toUpperCase() : b.id;
@@ -14797,7 +14991,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14797
14991
  if (idA > idB) return 1;
14798
14992
  return 0;
14799
14993
  });
14800
- } else if (sortBy === 'name') {
14994
+ } else if (sortBy === 'name' && !isVeryLarge) {
14801
14995
  optionsCopy.sort((a, b) => {
14802
14996
  const nameA = typeof a.name === 'string' ? a.name.toUpperCase() : a.name;
14803
14997
  const nameB = typeof b.name === 'string' ? b.name.toUpperCase() : b.name;
@@ -14820,10 +15014,20 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14820
15014
  return item;
14821
15015
  }) : optionsCopy;
14822
15016
  }, [maxSelectedItem, option, selectedValue, sortBy]);
14823
- const memoOptionsString = useMemo(() => JSON.stringify(memoOptions), [memoOptions]);
14824
- const itemsLength = items == null ? void 0 : items.reduce((acc, item) => {
14825
- return [...acc, ...(item.children ? item.children : [item])];
14826
- }, []).length;
15017
+ const memoOptionsString = useMemo(() => {
15018
+ // For very large datasets, skip JSON.stringify as it's expensive
15019
+ if ((memoOptions == null ? void 0 : memoOptions.length) > 10000) {
15020
+ return `${memoOptions.length}-${Date.now()}`;
15021
+ }
15022
+ return JSON.stringify(memoOptions);
15023
+ }, [memoOptions]);
15024
+
15025
+ // Optimize itemsLength calculation - avoid creating arrays
15026
+ const itemsLength = useMemo(() => {
15027
+ return (items == null ? void 0 : items.reduce((count, item) => {
15028
+ return count + (item.children ? item.children.length : 1);
15029
+ }, 0)) || 0;
15030
+ }, [items]);
14827
15031
  useEffect(() => {
14828
15032
  if (!inputValue || fetchData) {
14829
15033
  setItems(isShowSelectAll ? [{
@@ -14889,7 +15093,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14889
15093
  }
14890
15094
  onItemClick({
14891
15095
  item,
14892
- isSelected: !selectedValue.includes(item.id)
15096
+ isSelected: !selectedValueSet.has(item.id)
14893
15097
  });
14894
15098
  },
14895
15099
  css: {
@@ -14901,7 +15105,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14901
15105
  __self: undefined,
14902
15106
  __source: {
14903
15107
  fileName: _jsxFileName$x,
14904
- lineNumber: 774,
15108
+ lineNumber: 972,
14905
15109
  columnNumber: 9
14906
15110
  }
14907
15111
  }), /*#__PURE__*/React__default.createElement(IconWrapper, {
@@ -14915,7 +15119,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14915
15119
  __self: undefined,
14916
15120
  __source: {
14917
15121
  fileName: _jsxFileName$x,
14918
- lineNumber: 793,
15122
+ lineNumber: 991,
14919
15123
  columnNumber: 11
14920
15124
  }
14921
15125
  }, !(item != null && item.hideCheck) && (item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
@@ -14923,29 +15127,29 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14923
15127
  __self: undefined,
14924
15128
  __source: {
14925
15129
  fileName: _jsxFileName$x,
14926
- lineNumber: 805,
15130
+ lineNumber: 1003,
14927
15131
  columnNumber: 17
14928
15132
  }
14929
- }) : selectedValue.includes(item.id) && (item.isDisabled === false || item.isDisabled === undefined) && /*#__PURE__*/React__default.createElement(CheckOutline, {
15133
+ }) : selectedValueSet.has(item.id) && (item.isDisabled === false || item.isDisabled === undefined) && /*#__PURE__*/React__default.createElement(CheckOutline, {
14930
15134
  color: colors$7.iconGreen,
14931
15135
  __self: undefined,
14932
15136
  __source: {
14933
15137
  fileName: _jsxFileName$x,
14934
- lineNumber: 809,
15138
+ lineNumber: 1007,
14935
15139
  columnNumber: 19
14936
15140
  }
14937
15141
  })), isShowSelectAll && (item == null ? void 0 : item.id) === '!all' && selectedValue != null && selectedValue.length && (selectedValue == null ? void 0 : selectedValue.length) < itemsLength ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
14938
15142
  __self: undefined,
14939
15143
  __source: {
14940
15144
  fileName: _jsxFileName$x,
14941
- lineNumber: 813,
15145
+ lineNumber: 1011,
14942
15146
  columnNumber: 15
14943
15147
  }
14944
15148
  }, "-") : /*#__PURE__*/React__default.createElement("div", {
14945
15149
  __self: undefined,
14946
15150
  __source: {
14947
15151
  fileName: _jsxFileName$x,
14948
- lineNumber: 815,
15152
+ lineNumber: 1013,
14949
15153
  columnNumber: 15
14950
15154
  }
14951
15155
  })), /*#__PURE__*/React__default.createElement(Item$2, {
@@ -14956,18 +15160,18 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14956
15160
  __self: undefined,
14957
15161
  __source: {
14958
15162
  fileName: _jsxFileName$x,
14959
- lineNumber: 818,
15163
+ lineNumber: 1016,
14960
15164
  columnNumber: 11
14961
15165
  }
14962
15166
  }, item.render ? item.render == null ? void 0 : item.render(item.name) : item.name));
14963
15167
  };
14964
15168
  let lastGroupIndex = showSelectAll ? 1 : 0;
14965
15169
  const renderOptionGroupItem = (item, index) => {
14966
- var _item$children5, _item$children6, _item$children7, _item$children8;
15170
+ var _item$children4, _item$children5, _item$children6, _item$children7;
14967
15171
  // const groupIndex = (index > (showSelectAll ? 1 : 0)) ? lastGroupIndex : 0;
14968
15172
  const groupIndex = lastGroupIndex;
14969
- lastGroupIndex += ((item == null || (_item$children5 = item.children) == null ? void 0 : _item$children5.length) || 0) + 1;
14970
- const filterSelectedChild = item == null || (_item$children6 = item.children) == null ? void 0 : _item$children6.filter(e => selectedValue.includes(e.id) && !e.isDisabled);
15173
+ lastGroupIndex += ((item == null || (_item$children4 = item.children) == null ? void 0 : _item$children4.length) || 0) + 1;
15174
+ const filterSelectedChild = item == null || (_item$children5 = item.children) == null ? void 0 : _item$children5.filter(e => selectedValueSet.has(e.id) && !e.isDisabled);
14971
15175
  return /*#__PURE__*/React__default.createElement(OptionGroupItem, {
14972
15176
  item: /*#__PURE__*/React__default.createElement(ItemWrapper$1, _extends({
14973
15177
  key: item.id
@@ -14984,7 +15188,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14984
15188
  __self: undefined,
14985
15189
  __source: {
14986
15190
  fileName: _jsxFileName$x,
14987
- lineNumber: 834,
15191
+ lineNumber: 1032,
14988
15192
  columnNumber: 13
14989
15193
  }
14990
15194
  }), /*#__PURE__*/React__default.createElement(IconWrapper, {
@@ -14997,7 +15201,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
14997
15201
  __self: undefined,
14998
15202
  __source: {
14999
15203
  fileName: _jsxFileName$x,
15000
- lineNumber: 847,
15204
+ lineNumber: 1045,
15001
15205
  columnNumber: 15
15002
15206
  }
15003
15207
  }, !(item != null && item.hideCheck) && item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
@@ -15005,22 +15209,22 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15005
15209
  __self: undefined,
15006
15210
  __source: {
15007
15211
  fileName: _jsxFileName$x,
15008
- lineNumber: 857,
15212
+ lineNumber: 1055,
15009
15213
  columnNumber: 19
15010
15214
  }
15011
- }) : (filterSelectedChild == null ? void 0 : filterSelectedChild.length) === (item == null || (_item$children7 = item.children) == null || (_item$children7 = _item$children7.filter(e => !e.isDisabled)) == null ? void 0 : _item$children7.length) ? /*#__PURE__*/React__default.createElement(CheckOutline, {
15215
+ }) : (filterSelectedChild == null ? void 0 : filterSelectedChild.length) === (item == null || (_item$children6 = item.children) == null || (_item$children6 = _item$children6.filter(e => !e.isDisabled)) == null ? void 0 : _item$children6.length) ? /*#__PURE__*/React__default.createElement(CheckOutline, {
15012
15216
  color: colors$7.iconGreen,
15013
15217
  __self: undefined,
15014
15218
  __source: {
15015
15219
  fileName: _jsxFileName$x,
15016
- lineNumber: 859,
15220
+ lineNumber: 1057,
15017
15221
  columnNumber: 19
15018
15222
  }
15019
15223
  }) : (filterSelectedChild == null ? void 0 : filterSelectedChild.length) > 0 ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
15020
15224
  __self: undefined,
15021
15225
  __source: {
15022
15226
  fileName: _jsxFileName$x,
15023
- lineNumber: 861,
15227
+ lineNumber: 1059,
15024
15228
  columnNumber: 19
15025
15229
  }
15026
15230
  }, "-") : null), /*#__PURE__*/React__default.createElement(Item$2, {
@@ -15031,17 +15235,17 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15031
15235
  __self: undefined,
15032
15236
  __source: {
15033
15237
  fileName: _jsxFileName$x,
15034
- lineNumber: 864,
15238
+ lineNumber: 1062,
15035
15239
  columnNumber: 15
15036
15240
  }
15037
15241
  }, item.render ? item.render == null ? void 0 : item.render(item.name) : item.name)),
15038
15242
  __self: undefined,
15039
15243
  __source: {
15040
15244
  fileName: _jsxFileName$x,
15041
- lineNumber: 832,
15245
+ lineNumber: 1030,
15042
15246
  columnNumber: 9
15043
15247
  }
15044
- }, item == null || (_item$children8 = item.children) == null ? void 0 : _item$children8.map((optItem, optIndex) => renderOptionItem(optItem, groupIndex + optIndex + 1, true)));
15248
+ }, item == null || (_item$children7 = item.children) == null ? void 0 : _item$children7.map((optItem, optIndex) => renderOptionItem(optItem, groupIndex + optIndex + 1, true)));
15045
15249
  };
15046
15250
  return /*#__PURE__*/React__default.createElement(Wrapper$1, _extends({
15047
15251
  css: css
@@ -15051,7 +15255,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15051
15255
  __self: undefined,
15052
15256
  __source: {
15053
15257
  fileName: _jsxFileName$x,
15054
- lineNumber: 876,
15258
+ lineNumber: 1074,
15055
15259
  columnNumber: 7
15056
15260
  }
15057
15261
  }), /*#__PURE__*/React__default.createElement(Select, {
@@ -15061,7 +15265,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15061
15265
  __self: undefined,
15062
15266
  __source: {
15063
15267
  fileName: _jsxFileName$x,
15064
- lineNumber: 877,
15268
+ lineNumber: 1075,
15065
15269
  columnNumber: 9
15066
15270
  }
15067
15271
  }, /*#__PURE__*/React__default.createElement(InputWrapper$1, _extends({}, getComboboxProps(getDropdownProps({
@@ -15076,7 +15280,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15076
15280
  __self: undefined,
15077
15281
  __source: {
15078
15282
  fileName: _jsxFileName$x,
15079
- lineNumber: 878,
15283
+ lineNumber: 1076,
15080
15284
  columnNumber: 11
15081
15285
  }
15082
15286
  }), /*#__PURE__*/React__default.createElement(Input$6, _extends({}, getInputProps({
@@ -15094,7 +15298,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15094
15298
  __self: undefined,
15095
15299
  __source: {
15096
15300
  fileName: _jsxFileName$x,
15097
- lineNumber: 888,
15301
+ lineNumber: 1086,
15098
15302
  columnNumber: 13
15099
15303
  }
15100
15304
  })), /*#__PURE__*/React__default.createElement(Button$2, _extends({}, getToggleButtonProps({
@@ -15108,7 +15312,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15108
15312
  __self: undefined,
15109
15313
  __source: {
15110
15314
  fileName: _jsxFileName$x,
15111
- lineNumber: 895,
15315
+ lineNumber: 1093,
15112
15316
  columnNumber: 13
15113
15317
  }
15114
15318
  }), (_ref2 = label != null ? label : placeholder) != null ? _ref2 : t('placeholder', 'Pilih Item'))), /*#__PURE__*/React__default.createElement(IconWrapper, _extends({}, getToggleButtonProps({
@@ -15119,7 +15323,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15119
15323
  __self: undefined,
15120
15324
  __source: {
15121
15325
  fileName: _jsxFileName$x,
15122
- lineNumber: 906,
15326
+ lineNumber: 1104,
15123
15327
  columnNumber: 11
15124
15328
  }
15125
15329
  }), /*#__PURE__*/React__default.createElement(IconCaretDown, {
@@ -15127,7 +15331,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15127
15331
  __self: undefined,
15128
15332
  __source: {
15129
15333
  fileName: _jsxFileName$x,
15130
- lineNumber: 911,
15334
+ lineNumber: 1109,
15131
15335
  columnNumber: 13
15132
15336
  }
15133
15337
  }))), helperText && /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -15140,7 +15344,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15140
15344
  __self: undefined,
15141
15345
  __source: {
15142
15346
  fileName: _jsxFileName$x,
15143
- lineNumber: 915,
15347
+ lineNumber: 1113,
15144
15348
  columnNumber: 11
15145
15349
  }
15146
15350
  }, helperText), showSelectedTag && !showCounter && selectedItems.length !== 0 && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TagWrapper$2, {
@@ -15148,7 +15352,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15148
15352
  __self: undefined,
15149
15353
  __source: {
15150
15354
  fileName: _jsxFileName$x,
15151
- lineNumber: 921,
15355
+ lineNumber: 1119,
15152
15356
  columnNumber: 13
15153
15357
  }
15154
15358
  }, isShowTagSelectAll ? /*#__PURE__*/React__default.createElement(Tag, _extends({
@@ -15169,7 +15373,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15169
15373
  __self: undefined,
15170
15374
  __source: {
15171
15375
  fileName: _jsxFileName$x,
15172
- lineNumber: 923,
15376
+ lineNumber: 1121,
15173
15377
  columnNumber: 17
15174
15378
  }
15175
15379
  }), selectAllLabel != null ? selectAllLabel : t('selectAllLabelText', 'Pilih Semua')) : selectedItems == null || (_selectedItems$filter = selectedItems.filter(item => (item == null ? void 0 : item.id) !== '!all')) == null || (_selectedItems$filter = _selectedItems$filter.filter((_, idx) => {
@@ -15200,7 +15404,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15200
15404
  __self: undefined,
15201
15405
  __source: {
15202
15406
  fileName: _jsxFileName$x,
15203
- lineNumber: 952,
15407
+ lineNumber: 1150,
15204
15408
  columnNumber: 21
15205
15409
  }
15206
15410
  }), selectedItem.name))), collapsible && !isShowTagSelectAll && (selectedItems == null ? void 0 : selectedItems.length) > collapsibleLimit && /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -15209,7 +15413,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15209
15413
  __self: undefined,
15210
15414
  __source: {
15211
15415
  fileName: _jsxFileName$x,
15212
- lineNumber: 975,
15416
+ lineNumber: 1173,
15213
15417
  columnNumber: 15
15214
15418
  }
15215
15419
  }, /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -15219,14 +15423,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15219
15423
  __self: undefined,
15220
15424
  __source: {
15221
15425
  fileName: _jsxFileName$x,
15222
- lineNumber: 976,
15426
+ lineNumber: 1174,
15223
15427
  columnNumber: 17
15224
15428
  }
15225
15429
  }, /*#__PURE__*/React__default.createElement(Separator$2, {
15226
15430
  __self: undefined,
15227
15431
  __source: {
15228
15432
  fileName: _jsxFileName$x,
15229
- lineNumber: 977,
15433
+ lineNumber: 1175,
15230
15434
  columnNumber: 19
15231
15435
  }
15232
15436
  }), /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -15240,7 +15444,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15240
15444
  __self: undefined,
15241
15445
  __source: {
15242
15446
  fileName: _jsxFileName$x,
15243
- lineNumber: 978,
15447
+ lineNumber: 1176,
15244
15448
  columnNumber: 19
15245
15449
  }
15246
15450
  }, showAllTags ? /*#__PURE__*/React__default.createElement(ChevronUpOutline, {
@@ -15248,7 +15452,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15248
15452
  __self: undefined,
15249
15453
  __source: {
15250
15454
  fileName: _jsxFileName$x,
15251
- lineNumber: 984,
15455
+ lineNumber: 1182,
15252
15456
  columnNumber: 23
15253
15457
  }
15254
15458
  }) : /*#__PURE__*/React__default.createElement(ChevronDownOutline, {
@@ -15256,7 +15460,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15256
15460
  __self: undefined,
15257
15461
  __source: {
15258
15462
  fileName: _jsxFileName$x,
15259
- lineNumber: 986,
15463
+ lineNumber: 1184,
15260
15464
  columnNumber: 23
15261
15465
  }
15262
15466
  }), /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -15268,14 +15472,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15268
15472
  __self: undefined,
15269
15473
  __source: {
15270
15474
  fileName: _jsxFileName$x,
15271
- lineNumber: 988,
15475
+ lineNumber: 1186,
15272
15476
  columnNumber: 21
15273
15477
  }
15274
15478
  }, showAllTags ? t('showSomeText', 'Tampilkan Sebagian') : t('showAllText', 'Tampilkan Semua'))), /*#__PURE__*/React__default.createElement(Separator$2, {
15275
15479
  __self: undefined,
15276
15480
  __source: {
15277
15481
  fileName: _jsxFileName$x,
15278
- lineNumber: 992,
15482
+ lineNumber: 1190,
15279
15483
  columnNumber: 19
15280
15484
  }
15281
15485
  })), showCollapsibleCounter && /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -15286,7 +15490,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15286
15490
  __self: undefined,
15287
15491
  __source: {
15288
15492
  fileName: _jsxFileName$x,
15289
- lineNumber: 995,
15493
+ lineNumber: 1193,
15290
15494
  columnNumber: 19
15291
15495
  }
15292
15496
  }, `${totalOptions ? totalOptions : selectedItems == null || (_selectedItems$filter2 = selectedItems.filter(item => (item == null ? void 0 : item.id) !== '!all')) == null ? void 0 : _selectedItems$filter2.length} ${labelCounter || t('labelCounterText', 'Item terpilih')}`))), showCounter && !isShowTagSelectAll && Boolean(selectedItems == null ? void 0 : selectedItems.length) && /*#__PURE__*/React__default.createElement(Paragraph, {
@@ -15298,7 +15502,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15298
15502
  __self: undefined,
15299
15503
  __source: {
15300
15504
  fileName: _jsxFileName$x,
15301
- lineNumber: 1006,
15505
+ lineNumber: 1204,
15302
15506
  columnNumber: 11
15303
15507
  }
15304
15508
  }, `${totalOptions ? totalOptions : selectedItems == null || (_selectedItems$filter3 = selectedItems.filter(item => (item == null ? void 0 : item.id) !== '!all')) == null ? void 0 : _selectedItems$filter3.length} ${labelCounter || t('labelCounterText', 'Item terpilih')}`), /*#__PURE__*/React__default.createElement(OptionWrapper$1, {
@@ -15311,7 +15515,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15311
15515
  __self: undefined,
15312
15516
  __source: {
15313
15517
  fileName: _jsxFileName$x,
15314
- lineNumber: 1013,
15518
+ lineNumber: 1211,
15315
15519
  columnNumber: 9
15316
15520
  }
15317
15521
  }, isLoading && /*#__PURE__*/React__default.createElement(Flex$1, {
@@ -15333,7 +15537,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15333
15537
  __self: undefined,
15334
15538
  __source: {
15335
15539
  fileName: _jsxFileName$x,
15336
- lineNumber: 1023,
15540
+ lineNumber: 1221,
15337
15541
  columnNumber: 13
15338
15542
  }
15339
15543
  }, /*#__PURE__*/React__default.createElement(Text$1, {
@@ -15341,7 +15545,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15341
15545
  __self: undefined,
15342
15546
  __source: {
15343
15547
  fileName: _jsxFileName$x,
15344
- lineNumber: 1040,
15548
+ lineNumber: 1238,
15345
15549
  columnNumber: 15
15346
15550
  }
15347
15551
  }, "Loading....")), items.length > 0 || isLoading ? /*#__PURE__*/React__default.createElement(Option, _extends({}, getMenuProps({
@@ -15353,7 +15557,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15353
15557
  __self: undefined,
15354
15558
  __source: {
15355
15559
  fileName: _jsxFileName$x,
15356
- lineNumber: 1045,
15560
+ lineNumber: 1243,
15357
15561
  columnNumber: 13
15358
15562
  }
15359
15563
  }), /*#__PURE__*/React__default.createElement(ConditionalWrapper, {
@@ -15376,17 +15580,127 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15376
15580
  __self: undefined,
15377
15581
  __source: {
15378
15582
  fileName: _jsxFileName$x,
15379
- lineNumber: 1049,
15583
+ lineNumber: 1247,
15380
15584
  columnNumber: 19
15381
15585
  }
15382
15586
  }, child),
15383
15587
  __self: undefined,
15384
15588
  __source: {
15385
15589
  fileName: _jsxFileName$x,
15386
- lineNumber: 1046,
15590
+ lineNumber: 1244,
15387
15591
  columnNumber: 15
15388
15592
  }
15389
- }, isOpen && items.map((item, index) => item != null && item.children ? renderOptionGroupItem(item) : renderOptionItem(item, index)))) : /*#__PURE__*/React__default.createElement(Option, _extends({
15593
+ }, isOpen && shouldVirtualize ?
15594
+ /*#__PURE__*/
15595
+ // Virtualized rendering for large lists
15596
+ React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
15597
+ style: {
15598
+ height: `${rowVirtualizer.totalSize}px`,
15599
+ position: 'relative',
15600
+ width: '100%'
15601
+ },
15602
+ __self: undefined,
15603
+ __source: {
15604
+ fileName: _jsxFileName$x,
15605
+ lineNumber: 1268,
15606
+ columnNumber: 21
15607
+ }
15608
+ }, rowVirtualizer.virtualItems.map(virtualRow => {
15609
+ var _item$children8, _item$children9, _item$children0;
15610
+ const virtualItem = getItemAtIndex(virtualRow.index);
15611
+ if (!virtualItem) return null;
15612
+ const {
15613
+ type,
15614
+ item
15615
+ } = virtualItem;
15616
+ return /*#__PURE__*/React__default.createElement("div", {
15617
+ key: `${type}-${item.id}-${virtualRow.index}`,
15618
+ style: {
15619
+ position: 'absolute',
15620
+ top: 0,
15621
+ left: 0,
15622
+ width: '100%',
15623
+ transform: `translateY(${virtualRow.start}px)`
15624
+ },
15625
+ __self: undefined,
15626
+ __source: {
15627
+ fileName: _jsxFileName$x,
15628
+ lineNumber: 1276,
15629
+ columnNumber: 27
15630
+ }
15631
+ }, type === 'group' ?
15632
+ /*#__PURE__*/
15633
+ // Render option group header (without children, as they're rendered separately)
15634
+ React__default.createElement(ItemWrapper$1, _extends({}, getItemProps({
15635
+ item,
15636
+ index: virtualRow.index,
15637
+ disabled: item.isDisabled
15638
+ }), {
15639
+ css: {
15640
+ backgroundColor: highlightedIndex === virtualRow.index ? '$bgGray' : '$bgWhite',
15641
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer',
15642
+ color: item.isDisabled ? '$textDisable' : 'textPrimary',
15643
+ fontWeight: 600
15644
+ },
15645
+ __self: undefined,
15646
+ __source: {
15647
+ fileName: _jsxFileName$x,
15648
+ lineNumber: 1288,
15649
+ columnNumber: 31
15650
+ }
15651
+ }), /*#__PURE__*/React__default.createElement(IconWrapper, {
15652
+ css: Object.assign({
15653
+ width: '16px',
15654
+ height: '16px',
15655
+ border: '1px solid $bgBorder',
15656
+ cursor: item.isDisabled ? 'not-allowed' : 'pointer'
15657
+ }, checkBoxCss),
15658
+ __self: undefined,
15659
+ __source: {
15660
+ fileName: _jsxFileName$x,
15661
+ lineNumber: 1301,
15662
+ columnNumber: 33
15663
+ }
15664
+ }, !(item != null && item.hideCheck) && item.isDisabled ? /*#__PURE__*/React__default.createElement(CheckOutline, {
15665
+ color: colors$7.iconDisable,
15666
+ __self: undefined,
15667
+ __source: {
15668
+ fileName: _jsxFileName$x,
15669
+ lineNumber: 1311,
15670
+ columnNumber: 37
15671
+ }
15672
+ }) : (item == null || (_item$children8 = item.children) == null || (_item$children8 = _item$children8.filter(e => selectedValueSet.has(e.id) && !e.isDisabled)) == null ? void 0 : _item$children8.length) === (item == null || (_item$children9 = item.children) == null || (_item$children9 = _item$children9.filter(e => !e.isDisabled)) == null ? void 0 : _item$children9.length) ? /*#__PURE__*/React__default.createElement(CheckOutline, {
15673
+ color: colors$7.iconGreen,
15674
+ __self: undefined,
15675
+ __source: {
15676
+ fileName: _jsxFileName$x,
15677
+ lineNumber: 1315,
15678
+ columnNumber: 39
15679
+ }
15680
+ }) : (item == null || (_item$children0 = item.children) == null || (_item$children0 = _item$children0.filter(e => selectedValueSet.has(e.id) && !e.isDisabled)) == null ? void 0 : _item$children0.length) > 0 ? /*#__PURE__*/React__default.createElement(IndeterminateFilled$1, {
15681
+ __self: undefined,
15682
+ __source: {
15683
+ fileName: _jsxFileName$x,
15684
+ lineNumber: 1317,
15685
+ columnNumber: 39
15686
+ }
15687
+ }, "-") : null), /*#__PURE__*/React__default.createElement(Item$2, {
15688
+ css: {
15689
+ backgroundColor: 'unset',
15690
+ width: '100%'
15691
+ },
15692
+ __self: undefined,
15693
+ __source: {
15694
+ fileName: _jsxFileName$x,
15695
+ lineNumber: 1321,
15696
+ columnNumber: 33
15697
+ }
15698
+ }, item.render ? item.render == null ? void 0 : item.render(item.name) : item.name)) :
15699
+ // Render regular item or child item
15700
+ renderOptionItem(item, virtualRow.index, type === 'child'));
15701
+ }))) :
15702
+ // Non-virtualized rendering for small lists
15703
+ isOpen && items.map((item, index) => item != null && item.children ? renderOptionGroupItem(item) : renderOptionItem(item, index)))) : /*#__PURE__*/React__default.createElement(Option, _extends({
15390
15704
  css: {
15391
15705
  height: 'auto'
15392
15706
  }
@@ -15396,14 +15710,14 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15396
15710
  __self: undefined,
15397
15711
  __source: {
15398
15712
  fileName: _jsxFileName$x,
15399
- lineNumber: 1074,
15713
+ lineNumber: 1344,
15400
15714
  columnNumber: 13
15401
15715
  }
15402
15716
  }), /*#__PURE__*/React__default.createElement(StyledDiv, {
15403
15717
  __self: undefined,
15404
15718
  __source: {
15405
15719
  fileName: _jsxFileName$x,
15406
- lineNumber: 1075,
15720
+ lineNumber: 1345,
15407
15721
  columnNumber: 15
15408
15722
  }
15409
15723
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -15413,7 +15727,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15413
15727
  __self: undefined,
15414
15728
  __source: {
15415
15729
  fileName: _jsxFileName$x,
15416
- lineNumber: 1076,
15730
+ lineNumber: 1346,
15417
15731
  columnNumber: 17
15418
15732
  }
15419
15733
  }, /*#__PURE__*/React__default.createElement(CircleInfoOutline, {
@@ -15425,7 +15739,7 @@ const InputSelectCheck = /*#__PURE__*/forwardRef((_ref, ref) => {
15425
15739
  __self: undefined,
15426
15740
  __source: {
15427
15741
  fileName: _jsxFileName$x,
15428
- lineNumber: 1077,
15742
+ lineNumber: 1347,
15429
15743
  columnNumber: 19
15430
15744
  }
15431
15745
  })), textEmptyItem != null ? textEmptyItem : t('emptyItemText', 'Item tidak ditemukan')))));
@@ -15444,6 +15758,7 @@ InputSelectCheck.propTypes = {
15444
15758
  search: PropTypes.bool,
15445
15759
  placement: PropTypes.oneOf(['top', 'bottom']),
15446
15760
  disabledOptions: PropTypes.arrayOf(PropTypes.string),
15761
+ disabledSortChecked: PropTypes.bool,
15447
15762
  unremovableTags: PropTypes.arrayOf(PropTypes.string),
15448
15763
  textEmptyItem: PropTypes.string,
15449
15764
  showSelectAll: PropTypes.bool,
@@ -15470,7 +15785,9 @@ InputSelectCheck.propTypes = {
15470
15785
  showCollapsibleCounter: PropTypes.bool,
15471
15786
  collapsibleLimit: PropTypes.number,
15472
15787
  clearSearchOnSelect: PropTypes.bool,
15473
- onItemClick: PropTypes.func
15788
+ onItemClick: PropTypes.func,
15789
+ virtualized: PropTypes.bool,
15790
+ virtualizedThreshold: PropTypes.number
15474
15791
  };
15475
15792
  InputSelectCheck.defaultProps = {
15476
15793
  size: 'lg',
@@ -15481,6 +15798,7 @@ InputSelectCheck.defaultProps = {
15481
15798
  placement: 'bottom',
15482
15799
  value: [],
15483
15800
  disabledOptions: [],
15801
+ disabledSortChecked: false,
15484
15802
  unremovableTags: [],
15485
15803
  sortBy: 'name',
15486
15804
  showSelectAll: true,
@@ -15495,7 +15813,9 @@ InputSelectCheck.defaultProps = {
15495
15813
  showCollapsibleCounter: true,
15496
15814
  collapsibleLimit: 5,
15497
15815
  clearSearchOnSelect: true,
15498
- onItemClick: changes => {}
15816
+ onItemClick: () => {},
15817
+ virtualized: true,
15818
+ virtualizedThreshold: 100
15499
15819
  };
15500
15820
 
15501
15821
  var _jsxFileName$w = "/Users/hanabyan/Sourcecode/majoo-ui/packages/react/src/components/form/components/InputSelectTag/InputSelectTag.js";
@@ -15527,6 +15847,7 @@ InputSelectTag.propTypes = {
15527
15847
  placement: PropTypes.oneOf(['top', 'bottom']),
15528
15848
  unremovableTags: PropTypes.arrayOf(PropTypes.string),
15529
15849
  disabledOptions: PropTypes.arrayOf(PropTypes.string),
15850
+ disabledSortChecked: PropTypes.bool,
15530
15851
  textEmptyItem: PropTypes.string,
15531
15852
  helperText: PropTypes.string,
15532
15853
  showCounter: PropTypes.bool,
@@ -15551,6 +15872,7 @@ InputSelectTag.defaultProps = {
15551
15872
  placement: 'bottom',
15552
15873
  value: [],
15553
15874
  disabledOptions: [],
15875
+ disabledSortChecked: false,
15554
15876
  unremovableTags: [],
15555
15877
  sortBy: 'name',
15556
15878
  showCounter: false,
@@ -57692,13 +58014,13 @@ var getNative = _getNative,
57692
58014
  root = _root;
57693
58015
 
57694
58016
  /* Built-in method references that are verified to be native. */
57695
- var Map$1 = getNative(root, 'Map');
58017
+ var Map$2 = getNative(root, 'Map');
57696
58018
 
57697
- var _Map = Map$1;
58019
+ var _Map = Map$2;
57698
58020
 
57699
58021
  var Hash = _Hash,
57700
58022
  ListCache = _ListCache,
57701
- Map = _Map;
58023
+ Map$1 = _Map;
57702
58024
 
57703
58025
  /**
57704
58026
  * Removes all key-value entries from the map.
@@ -57711,7 +58033,7 @@ function mapCacheClear$1() {
57711
58033
  this.size = 0;
57712
58034
  this.__data__ = {
57713
58035
  'hash': new Hash,
57714
- 'map': new (Map || ListCache),
58036
+ 'map': new (Map$1 || ListCache),
57715
58037
  'string': new Hash
57716
58038
  };
57717
58039
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@majoo-ui/react",
3
- "version": "1.61.20",
3
+ "version": "1.61.21",
4
4
  "main": "./index.esm.js",
5
5
  "exports": {
6
6
  ".": {