@true-engineering/true-react-common-ui-kit 1.10.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Select/Select.styles.d.ts +9 -10
- package/dist/components/Select/SelectList/SelectList.d.ts +2 -1
- package/dist/true-react-common-ui-kit.js +49 -24
- package/dist/true-react-common-ui-kit.js.map +1 -1
- package/dist/true-react-common-ui-kit.umd.cjs +49 -24
- package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Button/Button.tsx +97 -85
- package/src/components/Select/MultiSelect.stories.tsx +1 -0
- package/src/components/Select/Select.styles.ts +10 -12
- package/src/components/Select/Select.tsx +33 -14
- package/src/components/Select/SelectList/SelectList.tsx +4 -3
|
@@ -7863,7 +7863,7 @@
|
|
|
7863
7863
|
return obj;
|
|
7864
7864
|
}
|
|
7865
7865
|
function SelectList(param) {
|
|
7866
|
-
var options = param.options, focusedIndex = param.focusedIndex, activeValue = param.activeValue, defaultOptionLabel = param.defaultOptionLabel, _param_noMatchesLabel = param.noMatchesLabel, noMatchesLabel = _param_noMatchesLabel === void 0 ? "Совпадений не найдено" : _param_noMatchesLabel, isLoading = param.isLoading, _param_loadingLabel = param.loadingLabel, loadingLabel = _param_loadingLabel === void 0 ? "Загрузка..." : _param_loadingLabel, tweakStyles = param.tweakStyles, testId = param.testId, _param_shouldScrollToList = param.shouldScrollToList, shouldScrollToList = _param_shouldScrollToList === void 0 ? true : _param_shouldScrollToList, customListHeader = param.customListHeader, isOptionDisabled = param.isOptionDisabled, allOptionsLabel = param.allOptionsLabel, onOptionSelect = param.onOptionSelect, onToggleCheckbox = param.onToggleCheckbox, convertValueToString = param.convertValueToString, _param_convertValueToReactNode = param.convertValueToReactNode, convertValueToReactNode = _param_convertValueToReactNode === void 0 ? convertValueToString : _param_convertValueToReactNode, convertValueToId = param.convertValueToId;
|
|
7866
|
+
var options = param.options, focusedIndex = param.focusedIndex, activeValue = param.activeValue, defaultOptionLabel = param.defaultOptionLabel, _param_noMatchesLabel = param.noMatchesLabel, noMatchesLabel = _param_noMatchesLabel === void 0 ? "Совпадений не найдено" : _param_noMatchesLabel, isLoading = param.isLoading, _param_loadingLabel = param.loadingLabel, loadingLabel = _param_loadingLabel === void 0 ? "Загрузка..." : _param_loadingLabel, tweakStyles = param.tweakStyles, testId = param.testId, _param_shouldScrollToList = param.shouldScrollToList, shouldScrollToList = _param_shouldScrollToList === void 0 ? true : _param_shouldScrollToList, areAllOptionsSelected = param.areAllOptionsSelected, customListHeader = param.customListHeader, isOptionDisabled = param.isOptionDisabled, allOptionsLabel = param.allOptionsLabel, onOptionSelect = param.onOptionSelect, onToggleCheckbox = param.onToggleCheckbox, convertValueToString = param.convertValueToString, _param_convertValueToReactNode = param.convertValueToReactNode, convertValueToReactNode = _param_convertValueToReactNode === void 0 ? convertValueToString : _param_convertValueToReactNode, convertValueToId = param.convertValueToId;
|
|
7867
7867
|
var classes = useTheme("SelectList", styles$v, tweakStyles).classes;
|
|
7868
7868
|
var isMultiSelect = isNotEmpty(onToggleCheckbox);
|
|
7869
7869
|
var multiSelectValue = activeValue;
|
|
@@ -7927,8 +7927,8 @@
|
|
|
7927
7927
|
isNotEmpty(allOptionsLabel) && /* @__PURE__ */ jsx(SelectListItem, {
|
|
7928
7928
|
classes,
|
|
7929
7929
|
index: ALL_OPTION_INDEX,
|
|
7930
|
-
isSemiChecked: selectedOptionsCount > 0 &&
|
|
7931
|
-
isActive:
|
|
7930
|
+
isSemiChecked: selectedOptionsCount > 0 && !areAllOptionsSelected,
|
|
7931
|
+
isActive: areAllOptionsSelected,
|
|
7932
7932
|
isFocused: focusedIndex === ALL_OPTION_INDEX,
|
|
7933
7933
|
onOptionSelect,
|
|
7934
7934
|
onToggleCheckbox,
|
|
@@ -8022,25 +8022,19 @@
|
|
|
8022
8022
|
cursor: "default"
|
|
8023
8023
|
}
|
|
8024
8024
|
},
|
|
8025
|
+
counter: {
|
|
8026
|
+
"&:not(:last-child)": {
|
|
8027
|
+
paddingRight: 8
|
|
8028
|
+
}
|
|
8029
|
+
},
|
|
8030
|
+
icon: {
|
|
8031
|
+
width: 16,
|
|
8032
|
+
height: 16
|
|
8033
|
+
},
|
|
8025
8034
|
tweakInput: {
|
|
8026
8035
|
input: {
|
|
8027
8036
|
paddingRight: 32
|
|
8028
8037
|
},
|
|
8029
|
-
withUnits: {
|
|
8030
|
-
paddingRight: 8
|
|
8031
|
-
},
|
|
8032
|
-
unitsWrapper: {
|
|
8033
|
-
position: "unset",
|
|
8034
|
-
padding: [
|
|
8035
|
-
0,
|
|
8036
|
-
32,
|
|
8037
|
-
0,
|
|
8038
|
-
0
|
|
8039
|
-
]
|
|
8040
|
-
},
|
|
8041
|
-
fakeValue: {
|
|
8042
|
-
display: "none"
|
|
8043
|
-
},
|
|
8044
8038
|
disabled: {
|
|
8045
8039
|
"& $input": {
|
|
8046
8040
|
cursor: "default"
|
|
@@ -8502,7 +8496,7 @@
|
|
|
8502
8496
|
}
|
|
8503
8497
|
};
|
|
8504
8498
|
function Select(props) {
|
|
8505
|
-
var options = props.options, value = props.value, defaultOptionLabel = props.defaultOptionLabel, allOptionsLabel = props.allOptionsLabel, _props_debounceTime = props.debounceTime, debounceTime = _props_debounceTime === void 0 ? 400 : _props_debounceTime, _props_optionsMode = props.optionsMode, optionsMode = _props_optionsMode === void 0 ? "normal" : _props_optionsMode, noMatchesLabel = props.noMatchesLabel, loadingLabel = props.loadingLabel, tweakStyles = props.tweakStyles, testId = props.testId, isReadonly = props.isReadonly, isDisabled = props.isDisabled, dropdownOptions = props.dropdownOptions, _props_minSymbolsCountToOpenList = props.minSymbolsCountToOpenList, minSymbolsCountToOpenList = _props_minSymbolsCountToOpenList === void 0 ? 0 : _props_minSymbolsCountToOpenList, _props_dropdownIcon = props.dropdownIcon, dropdownIcon = _props_dropdownIcon === void 0 ? "chevron-down" : _props_dropdownIcon, _props_shouldScrollToList = props.shouldScrollToList, shouldScrollToList = _props_shouldScrollToList === void 0 ? true : _props_shouldScrollToList, searchInput = props.searchInput,
|
|
8499
|
+
var options = props.options, value = props.value, defaultOptionLabel = props.defaultOptionLabel, allOptionsLabel = props.allOptionsLabel, _props_debounceTime = props.debounceTime, debounceTime = _props_debounceTime === void 0 ? 400 : _props_debounceTime, _props_optionsMode = props.optionsMode, optionsMode = _props_optionsMode === void 0 ? "normal" : _props_optionsMode, noMatchesLabel = props.noMatchesLabel, loadingLabel = props.loadingLabel, tweakStyles = props.tweakStyles, testId = props.testId, isReadonly = props.isReadonly, isDisabled = props.isDisabled, dropdownOptions = props.dropdownOptions, _props_minSymbolsCountToOpenList = props.minSymbolsCountToOpenList, minSymbolsCountToOpenList = _props_minSymbolsCountToOpenList === void 0 ? 0 : _props_minSymbolsCountToOpenList, _props_dropdownIcon = props.dropdownIcon, dropdownIcon = _props_dropdownIcon === void 0 ? "chevron-down" : _props_dropdownIcon, _props_shouldScrollToList = props.shouldScrollToList, shouldScrollToList = _props_shouldScrollToList === void 0 ? true : _props_shouldScrollToList, searchInput = props.searchInput, iconType = props.iconType, onChange = props.onChange, onFocus = props.onFocus, onBlur = props.onBlur, onType = props.onType, onOpen = props.onOpen, _props_isOptionDisabled = props.isOptionDisabled, isOptionDisabled = _props_isOptionDisabled === void 0 ? defaultIsOptionDisabled : _props_isOptionDisabled, _props_compareValuesOnChange = props.compareValuesOnChange, compareValuesOnChange = _props_compareValuesOnChange === void 0 ? defaultCompareFunction : _props_compareValuesOnChange, _props_convertValueToString = props.convertValueToString, convertValueToString = _props_convertValueToString === void 0 ? defaultConvertFunction$2 : _props_convertValueToString, convertValueToId = props.convertValueToId, convertValueToReactNode = props.convertValueToReactNode, optionsFilter = props.optionsFilter, inputProps = _object_without_properties$5(props, [
|
|
8506
8500
|
"options",
|
|
8507
8501
|
"value",
|
|
8508
8502
|
"defaultOptionLabel",
|
|
@@ -8520,7 +8514,7 @@
|
|
|
8520
8514
|
"dropdownIcon",
|
|
8521
8515
|
"shouldScrollToList",
|
|
8522
8516
|
"searchInput",
|
|
8523
|
-
"
|
|
8517
|
+
"iconType",
|
|
8524
8518
|
"onChange",
|
|
8525
8519
|
"onFocus",
|
|
8526
8520
|
"onBlur",
|
|
@@ -8567,6 +8561,16 @@
|
|
|
8567
8561
|
searchValue,
|
|
8568
8562
|
optionsMode
|
|
8569
8563
|
]);
|
|
8564
|
+
var availableOptions = React.useMemo(function() {
|
|
8565
|
+
return options.filter(function(o) {
|
|
8566
|
+
return !isOptionDisabled(o);
|
|
8567
|
+
});
|
|
8568
|
+
}, [
|
|
8569
|
+
options,
|
|
8570
|
+
isOptionDisabled
|
|
8571
|
+
]);
|
|
8572
|
+
var areAllOptionsSelected = isMultiSelect && (value === null || value === void 0 ? void 0 : value.length) === availableOptions.length;
|
|
8573
|
+
var shouldShowMultiSelectCounter = isMultiSelect && isNotEmpty(value) && value.length > 1 && !areAllOptionsSelected;
|
|
8570
8574
|
var optionsIndexesForNavigation = React.useMemo(function() {
|
|
8571
8575
|
var result = [];
|
|
8572
8576
|
if (shouldShowDefaultOption && hasDefaultOption) {
|
|
@@ -8585,7 +8589,7 @@
|
|
|
8585
8589
|
filteredOptions
|
|
8586
8590
|
]);
|
|
8587
8591
|
var stringValue = isNotEmpty(strValue) ? convertValueToString(strValue) : void 0;
|
|
8588
|
-
var showedStringValue =
|
|
8592
|
+
var showedStringValue = areAllOptionsSelected && isNotEmpty(allOptionsLabel) ? allOptionsLabel : stringValue;
|
|
8589
8593
|
var convertToId = React.useCallback(function(v) {
|
|
8590
8594
|
return (convertValueToId !== null && convertValueToId !== void 0 ? convertValueToId : getDefaultConvertToIdFunction(convertValueToString))(v);
|
|
8591
8595
|
}, [
|
|
@@ -8653,7 +8657,7 @@
|
|
|
8653
8657
|
return;
|
|
8654
8658
|
}
|
|
8655
8659
|
if (index === ALL_OPTION_INDEX && isSelected) {
|
|
8656
|
-
handleOnChange(
|
|
8660
|
+
handleOnChange(availableOptions);
|
|
8657
8661
|
return;
|
|
8658
8662
|
}
|
|
8659
8663
|
var option = filteredOptions[index];
|
|
@@ -8746,7 +8750,7 @@
|
|
|
8746
8750
|
if (isMultiSelect) {
|
|
8747
8751
|
var isThisValueAlreadySelected;
|
|
8748
8752
|
if (indexToSelect === ALL_OPTION_INDEX) {
|
|
8749
|
-
isThisValueAlreadySelected =
|
|
8753
|
+
isThisValueAlreadySelected = areAllOptionsSelected;
|
|
8750
8754
|
} else {
|
|
8751
8755
|
var valueIdToSelect = convertToId(filteredOptions[indexToSelect]);
|
|
8752
8756
|
var _value_some;
|
|
@@ -8802,6 +8806,10 @@
|
|
|
8802
8806
|
input: {
|
|
8803
8807
|
cursor: "pointer"
|
|
8804
8808
|
}
|
|
8809
|
+
}), _object_spread$u({}, isMultiSelect && {
|
|
8810
|
+
inputIcon: {
|
|
8811
|
+
width: "auto"
|
|
8812
|
+
}
|
|
8805
8813
|
}), tweakStyles === null || tweakStyles === void 0 ? void 0 : tweakStyles.tweakInput);
|
|
8806
8814
|
}, [
|
|
8807
8815
|
tweakStyles === null || tweakStyles === void 0 ? void 0 : tweakStyles.tweakInput,
|
|
@@ -8843,6 +8851,7 @@
|
|
|
8843
8851
|
options: filteredOptions,
|
|
8844
8852
|
defaultOptionLabel: hasDefaultOption && shouldShowDefaultOption ? defaultOptionLabel : void 0,
|
|
8845
8853
|
allOptionsLabel: shouldShowAllOption ? allOptionsLabel : void 0,
|
|
8854
|
+
areAllOptionsSelected,
|
|
8846
8855
|
customListHeader: hasSearchInputInList ? /* @__PURE__ */ jsx(SearchInput, _object_spread$u({
|
|
8847
8856
|
value: searchValue,
|
|
8848
8857
|
onChange: handleInputChange,
|
|
@@ -8865,6 +8874,22 @@
|
|
|
8865
8874
|
onToggleCheckbox: isMultiSelect ? handleToggleOptionCheckbox : void 0
|
|
8866
8875
|
})
|
|
8867
8876
|
}));
|
|
8877
|
+
var multiSelectCounterWithIcon = shouldShowMultiSelectCounter || isNotEmpty(iconType) ? /* @__PURE__ */ jsxs(Fragment, {
|
|
8878
|
+
children: [
|
|
8879
|
+
shouldShowMultiSelectCounter && /* @__PURE__ */ jsxs("div", {
|
|
8880
|
+
className: classes.counter,
|
|
8881
|
+
children: [
|
|
8882
|
+
"(+",
|
|
8883
|
+
value.length - 1,
|
|
8884
|
+
")"
|
|
8885
|
+
]
|
|
8886
|
+
}),
|
|
8887
|
+
isNotEmpty(iconType) && /* @__PURE__ */ jsx("div", {
|
|
8888
|
+
className: classes.icon,
|
|
8889
|
+
children: renderIcon(iconType)
|
|
8890
|
+
})
|
|
8891
|
+
]
|
|
8892
|
+
}) : void 0;
|
|
8868
8893
|
return /* @__PURE__ */ jsxs("div", {
|
|
8869
8894
|
className: classes.root,
|
|
8870
8895
|
onKeyDown: handleKeyDown,
|
|
@@ -8886,7 +8911,7 @@
|
|
|
8886
8911
|
isLoading: areOptionsLoading,
|
|
8887
8912
|
tweakStyles: tweakInputStyles,
|
|
8888
8913
|
testId,
|
|
8889
|
-
|
|
8914
|
+
iconType: isMultiSelect ? multiSelectCounterWithIcon : iconType
|
|
8890
8915
|
}, inputProps)),
|
|
8891
8916
|
/* @__PURE__ */ jsx("div", {
|
|
8892
8917
|
onMouseDown: function(event) {
|