@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/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
- return (e__default["default"].createElement("div", { className: "ods-chips__options" }, options.map(function (_a) {
46435
- var label = _a.label, value = _a.value;
46436
- return (e__default["default"].createElement("button", { key: label, type: "button", value: value, onClick: function () { return onSelect(label, value); }, className: "ods-chips__options--option" }, label));
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, counter = _a.counter, icon = _a.icon, disabled = _a.disabled, options = _a.options, onClick = _a.onClick, onChange = _a.onChange;
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 _b = e__default["default"].useState(false), selectionIsOpen = _b[0], setSelectionIsOpen = _b[1];
46444
- var _c = e__default["default"].useState({
46445
- label: '',
46446
- value: null
46447
- }), selectedOption = _c[0], setSelectedOption = _c[1];
46448
- e.useEffect(function () {
46449
- function handleClickOutside(event) {
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
- setSelectedOption({ label: labelProp, value: value });
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({ label: labelProp, value: value });
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 || !!selectedOption.value
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" }, selectedOption.value ? selectedOption.label : 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