@useblu/ocean-react 1.53.0 → 1.54.1
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/CHANGELOG.md +12 -0
- package/Chips/Chips.d.ts +12 -6
- package/Chips/Chips.d.ts.map +1 -1
- package/Chips/Options.d.ts +9 -5
- package/Chips/Options.d.ts.map +1 -1
- package/index.es.js +69 -22
- package/index.es.js.map +1 -1
- package/index.js +69 -22
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -46430,27 +46430,35 @@ var CardListItem = function (_a) {
|
|
|
46430
46430
|
};
|
|
46431
46431
|
|
|
46432
46432
|
var Options = function (_a) {
|
|
46433
|
-
var options = _a.options, onSelect = _a.onSelect;
|
|
46434
|
-
|
|
46435
|
-
|
|
46436
|
-
|
|
46437
|
-
|
|
46433
|
+
var options = _a.options, _b = _a.selectedOptions, selectedOptions = _b === void 0 ? [] : _b, clearLabel = _a.clearLabel, filterLabel = _a.filterLabel, multiChoice = _a.multiChoice, onSelect = _a.onSelect, filterOptions = _a.filterOptions, clearOptions = _a.clearOptions;
|
|
46434
|
+
var columns = multiChoice ? Math.ceil(10 / 5) : 1;
|
|
46435
|
+
return (e__default["default"].createElement("div", { className: "ods-chips__options", "data-testid": "ods-chips-option" },
|
|
46436
|
+
e__default["default"].createElement("div", { className: classNames('ods-chips__options--content', "ods-chips__options--content--columns-".concat(columns)) }, options.map(function (_a) {
|
|
46437
|
+
var label = _a.label, value = _a.value;
|
|
46438
|
+
return (e__default["default"].createElement("button", { key: label, type: "button", value: value, onClick: function () { return onSelect(label, value); }, className: "ods-chips__options--option" },
|
|
46439
|
+
multiChoice && (e__default["default"].createElement(Checkbox, { checked: !!selectedOptions.find(function (option) { return option.value === value; }), readOnly: true })),
|
|
46440
|
+
label));
|
|
46441
|
+
})),
|
|
46442
|
+
multiChoice && (e__default["default"].createElement("div", { className: "ods-chips__options--footer" },
|
|
46443
|
+
e__default["default"].createElement("button", { type: "button", onClick: clearOptions, className: "ods-btn ods-btn--sm ods-btn--text" }, clearLabel),
|
|
46444
|
+
e__default["default"].createElement("button", { type: "button", onClick: filterOptions, className: "ods-btn ods-btn--sm ods-btn--primary" }, filterLabel)))));
|
|
46438
46445
|
};
|
|
46439
46446
|
|
|
46440
46447
|
var Chips = function (_a) {
|
|
46441
|
-
var label = _a.label,
|
|
46448
|
+
var label = _a.label, icon = _a.icon, disabled = _a.disabled, defaultValue = _a.defaultValue, _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.multiChoice, multiChoice = _c === void 0 ? false : _c, _d = _a.clearLabel, clearLabel = _d === void 0 ? 'Limpar' : _d, _e = _a.filterLabel, filterLabel = _e === void 0 ? 'Filtrar' : _e, initialCounter = _a.initialCounter, onClick = _a.onClick, onChange = _a.onChange, onClose = _a.onClose;
|
|
46442
46449
|
var wrapperRef = e.useRef(null);
|
|
46443
|
-
var
|
|
46444
|
-
var
|
|
46445
|
-
|
|
46446
|
-
|
|
46447
|
-
|
|
46448
|
-
|
|
46449
|
-
|
|
46450
|
-
if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {
|
|
46451
|
-
setSelectionIsOpen(false);
|
|
46452
|
-
}
|
|
46450
|
+
var _f = e__default["default"].useState(0), counter = _f[0], setCounter = _f[1];
|
|
46451
|
+
var _g = e__default["default"].useState(false), selectionIsOpen = _g[0], setSelectionIsOpen = _g[1];
|
|
46452
|
+
var _h = e__default["default"].useState(defaultValue || multiChoice ? [] : { label: '', value: '' }), selectedOptions = _h[0], setSelectedOptions = _h[1];
|
|
46453
|
+
function handleClickOutside(event) {
|
|
46454
|
+
var target = event.target;
|
|
46455
|
+
if (wrapperRef.current && !wrapperRef.current.contains(target)) {
|
|
46456
|
+
setSelectionIsOpen(false);
|
|
46453
46457
|
}
|
|
46458
|
+
if (onClose)
|
|
46459
|
+
onClose();
|
|
46460
|
+
}
|
|
46461
|
+
e.useEffect(function () {
|
|
46454
46462
|
document.addEventListener('mousedown', handleClickOutside);
|
|
46455
46463
|
return function () {
|
|
46456
46464
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
@@ -46465,23 +46473,62 @@ var Chips = function (_a) {
|
|
|
46465
46473
|
}
|
|
46466
46474
|
};
|
|
46467
46475
|
var handleSelectOption = function (labelProp, value) {
|
|
46468
|
-
|
|
46476
|
+
if (!multiChoice) {
|
|
46477
|
+
setSelectedOptions({ label: labelProp, value: value });
|
|
46478
|
+
setSelectionIsOpen(false);
|
|
46479
|
+
if (onChange) {
|
|
46480
|
+
onChange({ label: labelProp, value: value });
|
|
46481
|
+
}
|
|
46482
|
+
return;
|
|
46483
|
+
}
|
|
46484
|
+
if (Array.isArray(selectedOptions)) {
|
|
46485
|
+
var copyOptions = __spreadArray$1([], selectedOptions, true);
|
|
46486
|
+
if (selectedOptions.find(function (option) { return option.value === value; })) {
|
|
46487
|
+
copyOptions = copyOptions.filter(function (option) { return option.value !== value; });
|
|
46488
|
+
}
|
|
46489
|
+
else {
|
|
46490
|
+
copyOptions.push({ label: labelProp, value: value });
|
|
46491
|
+
}
|
|
46492
|
+
setCounter(copyOptions.length);
|
|
46493
|
+
setSelectedOptions(copyOptions);
|
|
46494
|
+
if (onChange) {
|
|
46495
|
+
onChange(copyOptions);
|
|
46496
|
+
}
|
|
46497
|
+
}
|
|
46498
|
+
};
|
|
46499
|
+
var displayValue = function () {
|
|
46500
|
+
if (!Array.isArray(selectedOptions)) {
|
|
46501
|
+
return selectedOptions.value ? selectedOptions.label : label;
|
|
46502
|
+
}
|
|
46503
|
+
return label;
|
|
46504
|
+
};
|
|
46505
|
+
var clearOptions = function () {
|
|
46506
|
+
setSelectedOptions([]);
|
|
46507
|
+
setCounter(0);
|
|
46469
46508
|
setSelectionIsOpen(false);
|
|
46470
46509
|
if (onChange) {
|
|
46471
|
-
onChange(
|
|
46510
|
+
onChange([]);
|
|
46472
46511
|
}
|
|
46473
46512
|
};
|
|
46513
|
+
var filterOptions = function () {
|
|
46514
|
+
setSelectionIsOpen(false);
|
|
46515
|
+
if (onClose)
|
|
46516
|
+
onClose();
|
|
46517
|
+
};
|
|
46474
46518
|
return (e__default["default"].createElement("div", { className: "ods-chips", ref: wrapperRef },
|
|
46475
46519
|
e__default["default"].createElement("button", { type: "button", onClick: handleClickChips, disabled: disabled, className: classNames('ods-chips__button', {
|
|
46476
46520
|
'ods-chips__button--disabled': disabled,
|
|
46477
|
-
'ods-chips__button--active': selectionIsOpen ||
|
|
46521
|
+
'ods-chips__button--active': selectionIsOpen ||
|
|
46522
|
+
(Array.isArray(selectedOptions)
|
|
46523
|
+
? selectedOptions.length > 0
|
|
46524
|
+
: selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.value)
|
|
46478
46525
|
}) },
|
|
46479
46526
|
icon || undefined,
|
|
46480
|
-
e__default["default"].createElement("p", { className: "ods-chips__label" },
|
|
46481
|
-
counter && (e__default["default"].createElement(Badge, { color: "brand", className: "ods-chips__badge" }, counter)),
|
|
46527
|
+
e__default["default"].createElement("p", { className: "ods-chips__label" }, displayValue()),
|
|
46528
|
+
(counter > 0 || initialCounter) && (e__default["default"].createElement(Badge, { color: "brand", className: "ods-chips__badge" }, initialCounter !== null && initialCounter !== void 0 ? initialCounter : counter)),
|
|
46482
46529
|
options && (options === null || options === void 0 ? void 0 : options.length) > 0 && !selectionIsOpen && e__default["default"].createElement(J, null),
|
|
46483
46530
|
options && (options === null || options === void 0 ? void 0 : options.length) > 0 && selectionIsOpen && e__default["default"].createElement(re, null)),
|
|
46484
|
-
selectionIsOpen && options && (e__default["default"].createElement(Options, { options: options, onSelect: handleSelectOption }))));
|
|
46531
|
+
selectionIsOpen && options && (e__default["default"].createElement(Options, { options: options, onSelect: handleSelectOption, selectedOptions: Array.isArray(selectedOptions) ? selectedOptions : undefined, clearLabel: clearLabel, filterLabel: filterLabel, multiChoice: multiChoice, clearOptions: clearOptions, filterOptions: filterOptions }))));
|
|
46485
46532
|
};
|
|
46486
46533
|
Chips.displayName = 'Chips';
|
|
46487
46534
|
|