ywana-core8 0.0.732 → 0.0.734

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/index.umd.js CHANGED
@@ -750,7 +750,8 @@
750
750
  if (onSelect) onSelect(id);
751
751
  }
752
752
 
753
- var style = selected === id ? "selected" : "";
753
+ var isSelected = Array.isArray(selected) ? selected.includes(id) : selected === id;
754
+ var style = isSelected ? "selected" : "";
754
755
  return /*#__PURE__*/React__default["default"].createElement("li", {
755
756
  className: "" + style,
756
757
  onClick: select
@@ -2473,6 +2474,71 @@
2473
2474
  }));
2474
2475
  };
2475
2476
 
2477
+ /**
2478
+ * Multi Selector
2479
+ */
2480
+
2481
+ var MultiSelector = function MultiSelector(props) {
2482
+ var _props$options = props.options,
2483
+ options = _props$options === void 0 ? [] : _props$options,
2484
+ className = props.className;
2485
+
2486
+ var _useState = React.useState([]),
2487
+ selections = _useState[0],
2488
+ setSelections = _useState[1];
2489
+
2490
+ React.useEffect(function () {
2491
+ var initialSelections = options.filter(function (option) {
2492
+ return option.selected === true;
2493
+ }).map(function (option) {
2494
+ return option.value;
2495
+ });
2496
+ setSelections(initialSelections);
2497
+ }, []);
2498
+
2499
+ function toggleSelection(value) {
2500
+ var onChange = props.onChange;
2501
+ var next = selections.includes(value) ? selections.filter(function (item) {
2502
+ return item != value;
2503
+ }) : selections.concat([value]);
2504
+ setSelections(next);
2505
+ if (onChange) onChange(next);
2506
+ }
2507
+
2508
+ var items = options.map(function (option) {
2509
+ return _extends({}, option, {
2510
+ selected: selections.includes(option.value),
2511
+ onToggle: toggleSelection
2512
+ });
2513
+ });
2514
+ return /*#__PURE__*/React__default["default"].createElement("ul", {
2515
+ className: "multiselector " + className
2516
+ }, items.map(function (option) {
2517
+ return /*#__PURE__*/React__default["default"].createElement(ToggleButton, option);
2518
+ }));
2519
+ };
2520
+ /**
2521
+ * Toggle Button
2522
+ */
2523
+
2524
+ var ToggleButton = function ToggleButton(props) {
2525
+ var label = props.label,
2526
+ value = props.value,
2527
+ _props$selected = props.selected,
2528
+ selected = _props$selected === void 0 ? false : _props$selected,
2529
+ onToggle = props.onToggle;
2530
+
2531
+ function toggle() {
2532
+ if (onToggle) onToggle(value);
2533
+ }
2534
+
2535
+ var selectedStyle = selected ? 'selected' : '';
2536
+ return /*#__PURE__*/React__default["default"].createElement("li", {
2537
+ className: selectedStyle + " " + value,
2538
+ onClick: toggle
2539
+ }, label);
2540
+ };
2541
+
2476
2542
  /**
2477
2543
  * Login Box
2478
2544
  */
@@ -10892,6 +10958,7 @@
10892
10958
  exports.MenuIcon = MenuIcon;
10893
10959
  exports.MenuItem = MenuItem;
10894
10960
  exports.MenuSeparator = MenuSeparator;
10961
+ exports.MultiSelector = MultiSelector;
10895
10962
  exports.Page = Page;
10896
10963
  exports.PageContext = PageContext;
10897
10964
  exports.PageProvider = PageProvider;
@@ -10924,6 +10991,7 @@
10924
10991
  exports.TextArea = TextArea;
10925
10992
  exports.TextField = TextField;
10926
10993
  exports.Thumbnail = Thumbnail;
10994
+ exports.ToggleButton = ToggleButton;
10927
10995
  exports.TokenField = TokenField;
10928
10996
  exports.Tooltip = Tooltip;
10929
10997
  exports.Tree = Tree;