@useblu/ocean-react 1.53.0 → 1.54.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/CHANGELOG.md +6 -0
- package/Chips/Chips.d.ts +11 -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 +68 -22
- package/index.es.js.map +1 -1
- package/index.js +68 -22
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -46430,27 +46430,33 @@ 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;
|
|
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
|
+
}
|
|
46459
|
+
e.useEffect(function () {
|
|
46454
46460
|
document.addEventListener('mousedown', handleClickOutside);
|
|
46455
46461
|
return function () {
|
|
46456
46462
|
document.removeEventListener('mousedown', handleClickOutside);
|
|
@@ -46465,23 +46471,63 @@ var Chips = function (_a) {
|
|
|
46465
46471
|
}
|
|
46466
46472
|
};
|
|
46467
46473
|
var handleSelectOption = function (labelProp, value) {
|
|
46468
|
-
|
|
46474
|
+
if (!multiChoice) {
|
|
46475
|
+
setSelectedOptions({ label: labelProp, value: value });
|
|
46476
|
+
setSelectionIsOpen(false);
|
|
46477
|
+
if (onChange) {
|
|
46478
|
+
onChange({ label: labelProp, value: value });
|
|
46479
|
+
}
|
|
46480
|
+
return;
|
|
46481
|
+
}
|
|
46482
|
+
if (Array.isArray(selectedOptions)) {
|
|
46483
|
+
var copyOptions = __spreadArray$1([], selectedOptions, true);
|
|
46484
|
+
if (selectedOptions.find(function (option) { return option.value === value; })) {
|
|
46485
|
+
copyOptions = copyOptions.filter(function (option) { return option.value !== value; });
|
|
46486
|
+
}
|
|
46487
|
+
else {
|
|
46488
|
+
copyOptions.push({ label: labelProp, value: value });
|
|
46489
|
+
}
|
|
46490
|
+
setCounter(copyOptions.length);
|
|
46491
|
+
setSelectedOptions(copyOptions);
|
|
46492
|
+
if (onChange) {
|
|
46493
|
+
onChange(copyOptions);
|
|
46494
|
+
}
|
|
46495
|
+
}
|
|
46496
|
+
};
|
|
46497
|
+
var displayValue = function () {
|
|
46498
|
+
if (!Array.isArray(selectedOptions)) {
|
|
46499
|
+
return selectedOptions.value ? selectedOptions.label : label;
|
|
46500
|
+
}
|
|
46501
|
+
return label;
|
|
46502
|
+
};
|
|
46503
|
+
var clearOptions = function () {
|
|
46504
|
+
setSelectedOptions([]);
|
|
46505
|
+
setCounter(0);
|
|
46506
|
+
setSelectionIsOpen(false);
|
|
46507
|
+
if (onChange) {
|
|
46508
|
+
onChange([]);
|
|
46509
|
+
}
|
|
46510
|
+
};
|
|
46511
|
+
var filterOptions = function () {
|
|
46469
46512
|
setSelectionIsOpen(false);
|
|
46470
46513
|
if (onChange) {
|
|
46471
|
-
onChange(
|
|
46514
|
+
onChange(selectedOptions);
|
|
46472
46515
|
}
|
|
46473
46516
|
};
|
|
46474
46517
|
return (e__default["default"].createElement("div", { className: "ods-chips", ref: wrapperRef },
|
|
46475
46518
|
e__default["default"].createElement("button", { type: "button", onClick: handleClickChips, disabled: disabled, className: classNames('ods-chips__button', {
|
|
46476
46519
|
'ods-chips__button--disabled': disabled,
|
|
46477
|
-
'ods-chips__button--active': selectionIsOpen ||
|
|
46520
|
+
'ods-chips__button--active': selectionIsOpen ||
|
|
46521
|
+
(Array.isArray(selectedOptions)
|
|
46522
|
+
? selectedOptions.length > 0
|
|
46523
|
+
: selectedOptions === null || selectedOptions === void 0 ? void 0 : selectedOptions.value)
|
|
46478
46524
|
}) },
|
|
46479
46525
|
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)),
|
|
46526
|
+
e__default["default"].createElement("p", { className: "ods-chips__label" }, displayValue()),
|
|
46527
|
+
(counter > 0 || initialCounter) && (e__default["default"].createElement(Badge, { color: "brand", className: "ods-chips__badge" }, initialCounter !== null && initialCounter !== void 0 ? initialCounter : counter)),
|
|
46482
46528
|
options && (options === null || options === void 0 ? void 0 : options.length) > 0 && !selectionIsOpen && e__default["default"].createElement(J, null),
|
|
46483
46529
|
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 }))));
|
|
46530
|
+
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
46531
|
};
|
|
46486
46532
|
Chips.displayName = 'Chips';
|
|
46487
46533
|
|