@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.
- package/index.esm.js +424 -102
- 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
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
14674
|
-
|
|
14675
|
-
|
|
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
|
-
|
|
14688
|
-
|
|
14689
|
-
|
|
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
|
-
|
|
14855
|
+
itemsToAdd.push(item);
|
|
14694
14856
|
itemIds.push(item.id);
|
|
14695
14857
|
}
|
|
14696
14858
|
});
|
|
14697
|
-
|
|
14698
|
-
|
|
14699
|
-
|
|
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
|
-
|
|
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 (
|
|
14714
|
-
|
|
14883
|
+
if (selectedValueSet.has(item.id)) {
|
|
14884
|
+
itemsToRemove.push(item);
|
|
14715
14885
|
itemIdsUnSelect.push(item.id);
|
|
14716
14886
|
} else {
|
|
14717
|
-
|
|
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
|
-
|
|
14725
|
-
|
|
14726
|
-
|
|
14727
|
-
|
|
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
|
-
|
|
14733
|
-
|
|
14734
|
-
|
|
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
|
-
|
|
14737
|
-
|
|
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
|
-
|
|
14754
|
-
|
|
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
|
-
|
|
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(() =>
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
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: !
|
|
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:
|
|
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:
|
|
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:
|
|
15130
|
+
lineNumber: 1003,
|
|
14927
15131
|
columnNumber: 17
|
|
14928
15132
|
}
|
|
14929
|
-
}) :
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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$
|
|
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$
|
|
14970
|
-
const filterSelectedChild = item == null || (_item$
|
|
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:
|
|
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:
|
|
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:
|
|
15212
|
+
lineNumber: 1055,
|
|
15009
15213
|
columnNumber: 19
|
|
15010
15214
|
}
|
|
15011
|
-
}) : (filterSelectedChild == null ? void 0 : filterSelectedChild.length) === (item == null || (_item$
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
15245
|
+
lineNumber: 1030,
|
|
15042
15246
|
columnNumber: 9
|
|
15043
15247
|
}
|
|
15044
|
-
}, item == null || (_item$
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
15590
|
+
lineNumber: 1244,
|
|
15387
15591
|
columnNumber: 15
|
|
15388
15592
|
}
|
|
15389
|
-
}, isOpen &&
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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$
|
|
58017
|
+
var Map$2 = getNative(root, 'Map');
|
|
57696
58018
|
|
|
57697
|
-
var _Map = Map$
|
|
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
|
}
|