labsense-ui-kit 1.3.57 → 1.3.58
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/Dropdown/MultiSelectDropdown.d.ts +2 -0
- package/dist/index.js +45 -9
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +45 -9
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
|
@@ -56,6 +56,8 @@ interface MultiSelectDropdownProps {
|
|
|
56
56
|
required?: boolean;
|
|
57
57
|
searchBox?: boolean;
|
|
58
58
|
NoOptionsText?: string;
|
|
59
|
+
selectAllOption?: boolean;
|
|
60
|
+
selectAllLabel?: string;
|
|
59
61
|
}
|
|
60
62
|
declare const MultiSelectDropdown: React.FC<MultiSelectDropdownProps>;
|
|
61
63
|
export default MultiSelectDropdown;
|
package/dist/index.js
CHANGED
|
@@ -7945,11 +7945,16 @@ var OptionComponent = function OptionComponent(_ref9) {
|
|
|
7945
7945
|
}) : [].concat(selectedOptions, [currentOption]);
|
|
7946
7946
|
onChange === null || onChange === void 0 ? void 0 : onChange(newOption);
|
|
7947
7947
|
};
|
|
7948
|
-
var
|
|
7949
|
-
return a.labelText.localeCompare(b.labelText);
|
|
7950
|
-
}).filter(function (option) {
|
|
7948
|
+
var filteredOptions = options.filter(function (option) {
|
|
7951
7949
|
return option.labelText.toLowerCase().includes(searchQuery.toLowerCase());
|
|
7952
7950
|
});
|
|
7951
|
+
var firstOption = filteredOptions[0],
|
|
7952
|
+
restOptions = filteredOptions.slice(1);
|
|
7953
|
+
var finalOptions = (firstOption === null || firstOption === void 0 ? void 0 : firstOption.value) === '__SELECT_ALL__' ? [firstOption].concat(restOptions.sort(function (a, b) {
|
|
7954
|
+
return a.labelText.localeCompare(b.labelText);
|
|
7955
|
+
})) : filteredOptions.sort(function (a, b) {
|
|
7956
|
+
return a.labelText.localeCompare(b.labelText);
|
|
7957
|
+
});
|
|
7953
7958
|
return React__default.createElement(Container, {
|
|
7954
7959
|
"$flexDirection": 'column',
|
|
7955
7960
|
"$gap": '8px',
|
|
@@ -7970,18 +7975,22 @@ var OptionComponent = function OptionComponent(_ref9) {
|
|
|
7970
7975
|
onChange: handleSearchChange,
|
|
7971
7976
|
"$inputColor": searchbarTextColor,
|
|
7972
7977
|
"$placeholderColor": placeholderColor
|
|
7973
|
-
})), React__default.createElement(OptionContainer, null,
|
|
7978
|
+
})), React__default.createElement(OptionContainer, null, finalOptions.length > 0 ? finalOptions.map(function (option, id) {
|
|
7974
7979
|
return React__default.createElement(OptionItem, {
|
|
7975
7980
|
key: option.value,
|
|
7976
7981
|
"$optionBorder": optionBorder,
|
|
7977
|
-
"$isborder": id !==
|
|
7982
|
+
"$isborder": id !== finalOptions.length - 1
|
|
7978
7983
|
}, React__default.createElement(OptionLabel, {
|
|
7979
7984
|
htmlFor: option.value,
|
|
7980
7985
|
"$optionColor": optionColor
|
|
7981
7986
|
}, React__default.createElement("input", {
|
|
7982
7987
|
id: option.value,
|
|
7983
7988
|
type: 'checkbox',
|
|
7984
|
-
checked:
|
|
7989
|
+
checked: option.value === '__SELECT_ALL__' ? options.filter(function (o) {
|
|
7990
|
+
return o.value !== '__SELECT_ALL__';
|
|
7991
|
+
}).every(function (o) {
|
|
7992
|
+
return selectedOptions.includes(o.value);
|
|
7993
|
+
}) : selectedOptions.includes(option.value),
|
|
7985
7994
|
onChange: function onChange() {
|
|
7986
7995
|
return handleOptionToggle(option.value);
|
|
7987
7996
|
}
|
|
@@ -8252,7 +8261,11 @@ var MultiSelectDropdown = function MultiSelectDropdown(_ref31) {
|
|
|
8252
8261
|
_ref31$searchBox = _ref31.searchBox,
|
|
8253
8262
|
searchBox = _ref31$searchBox === void 0 ? true : _ref31$searchBox,
|
|
8254
8263
|
_ref31$NoOptionsText = _ref31.NoOptionsText,
|
|
8255
|
-
NoOptionsText = _ref31$NoOptionsText === void 0 ? 'No Options Available' : _ref31$NoOptionsText
|
|
8264
|
+
NoOptionsText = _ref31$NoOptionsText === void 0 ? 'No Options Available' : _ref31$NoOptionsText,
|
|
8265
|
+
_ref31$selectAllOptio = _ref31.selectAllOption,
|
|
8266
|
+
selectAllOption = _ref31$selectAllOptio === void 0 ? false : _ref31$selectAllOptio,
|
|
8267
|
+
_ref31$selectAllLabel = _ref31.selectAllLabel,
|
|
8268
|
+
selectAllLabel = _ref31$selectAllLabel === void 0 ? 'Select All' : _ref31$selectAllLabel;
|
|
8256
8269
|
var themeColors = useTheme();
|
|
8257
8270
|
var _useState = React.useState(false),
|
|
8258
8271
|
dropUp = _useState[0],
|
|
@@ -8303,6 +8316,29 @@ var MultiSelectDropdown = function MultiSelectDropdown(_ref31) {
|
|
|
8303
8316
|
}));
|
|
8304
8317
|
}
|
|
8305
8318
|
};
|
|
8319
|
+
var SELECT_ALL_VALUE = '__SELECT_ALL__';
|
|
8320
|
+
var computedOptions = React__default.useMemo(function () {
|
|
8321
|
+
if (!selectAllOption) return options;
|
|
8322
|
+
return [{
|
|
8323
|
+
value: SELECT_ALL_VALUE,
|
|
8324
|
+
labelText: selectAllLabel
|
|
8325
|
+
}].concat(options);
|
|
8326
|
+
}, [options, selectAllOption, selectAllLabel]);
|
|
8327
|
+
var allOptionValues = options.map(function (opt) {
|
|
8328
|
+
return opt.value;
|
|
8329
|
+
});
|
|
8330
|
+
var handleOptionChange = function handleOptionChange(values) {
|
|
8331
|
+
if (values.includes(SELECT_ALL_VALUE)) {
|
|
8332
|
+
var isAllSelected = allOptionValues.every(function (v) {
|
|
8333
|
+
return selectedOptions.includes(v);
|
|
8334
|
+
});
|
|
8335
|
+
handleSelectChange(isAllSelected ? [] : allOptionValues);
|
|
8336
|
+
return;
|
|
8337
|
+
}
|
|
8338
|
+
handleSelectChange(values.filter(function (v) {
|
|
8339
|
+
return v !== SELECT_ALL_VALUE;
|
|
8340
|
+
}));
|
|
8341
|
+
};
|
|
8306
8342
|
return React__default.createElement(Container$2, null, title && React__default.createElement(TitleText, {
|
|
8307
8343
|
"$titleColor": titleColor || themeColors.vms.text.dark,
|
|
8308
8344
|
"$titleSize": titleSize,
|
|
@@ -8368,9 +8404,9 @@ var MultiSelectDropdown = function MultiSelectDropdown(_ref31) {
|
|
|
8368
8404
|
bottom: dropUp ? 'calc(100% + 8px)' : 'auto'
|
|
8369
8405
|
}
|
|
8370
8406
|
}, React__default.createElement(OptionComponent, {
|
|
8371
|
-
options:
|
|
8407
|
+
options: computedOptions,
|
|
8372
8408
|
selectedOptions: selectedOptions,
|
|
8373
|
-
onChange:
|
|
8409
|
+
onChange: handleOptionChange,
|
|
8374
8410
|
placeholder: placeholder,
|
|
8375
8411
|
placeholderColor: placeholderColor,
|
|
8376
8412
|
optionBorder: optionBorder,
|