Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var React = _interopRequireWildcard(require("react"));

var _State = _interopRequireDefault(require("./State"));

var _renderProps = _interopRequireDefault(require("../utils/renderProps"));

var _jsxFileName = "_forks/react-powerplug/src/components/Set.js";

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }

const unique = arr => arr.filter((d, i) => arr.indexOf(d) === i);

const hasItem = (arr, item) => arr.indexOf(item) !== -1;

const removeItem = (arr, item) => hasItem(arr, item) ? arr.filter(d => d !== item) : arr;

const addUnique = (arr, item) => hasItem(arr, item) ? arr : [...arr, item];

const Set = (_ref) => {
  let _ref$initial = _ref.initial,
      initial = _ref$initial === void 0 ? [] : _ref$initial,
      onChange = _ref.onChange,
      props = _objectWithoutProperties(_ref, ["initial", "onChange"]);

  return React.createElement(_State.default, {
    initial: {
      values: unique(initial)
    },
    onChange: onChange,
    __source: {
      fileName: _jsxFileName,
      lineNumber: 12
    },
    __self: void 0
  }, ({
    state,
    setState
  }) => (0, _renderProps.default)(props, {
    values: state.values,
    add: key => setState({
      values: addUnique(state.values, key)
    }),
    clear: () => setState({
      values: []
    }),
    remove: key => setState({
      values: removeItem(state.values, key)
    }),
    has: key => hasItem(state.values, key)
  }));
};

var _default = Set;
exports.default = _default;