Repository URL to install this package:
|
Version:
1.2.6 ▾
|
"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;