wix-style-react
Version:
wix-style-react
78 lines (77 loc) • 2.85 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Checkbox = _interopRequireDefault(require("../../Checkbox"));
var _SelectorList = require("../SelectorList.helpers");
var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/SelectorList/ToggleAllCheckbox/ToggleAllCheckbox.js";
var ToggleAllCheckbox = _ref => {
var {
selectAllText = 'Select all',
deselectAllText = 'Deselect all',
enabledItemsAmount,
selectedEnabledItemsAmount,
selectAll,
deselectAll,
size = 'medium',
dataHook = _SelectorList.dataHooks.toggleAllCheckbox
} = _ref;
var cases = {
select: {
text: selectAllText,
number: enabledItemsAmount,
onChange: selectAll,
indeterminate: false,
checked: false
},
deselect: {
text: deselectAllText,
number: selectedEnabledItemsAmount,
onChange: deselectAll,
indeterminate: selectedEnabledItemsAmount < enabledItemsAmount,
checked: true
}
};
var {
text,
number: num,
onChange,
checked,
indeterminate
} = selectedEnabledItemsAmount ? cases.deselect : cases.select;
return /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
dataHook: dataHook,
checked: checked,
onChange: onChange,
indeterminate: indeterminate,
size: size,
__self: void 0,
__source: {
fileName: _jsxFileName,
lineNumber: 43,
columnNumber: 5
}
}, " ".concat(text, " (").concat(num, ")"));
};
ToggleAllCheckbox.propTypes = {
/** string to be displayed in footer when `multiple` prop is used and no items are selected */
selectAllText: _propTypes.default.string,
/** string to be displayed in footer when `multiple` prop is used and some or all items ar selected */
deselectAllText: _propTypes.default.string,
/** the amount of items which are not disabled */
enabledItemsAmount: _propTypes.default.number.isRequired,
/** an array of not disabled items that are marked as selected */
selectedEnabledItemsAmount: _propTypes.default.number.isRequired,
/** a function that selects all non-disabled items */
selectAll: _propTypes.default.func.isRequired,
/** a function that deselects all non-disabled items */
deselectAll: _propTypes.default.func.isRequired,
/** Controls the size of the checkbox label. */
size: _propTypes.default.oneOf(['small', 'medium']),
/** applied as data-hook HTML attribute that can be used to create driver in testing */
dataHook: _propTypes.default.string
};
var _default = exports.default = ToggleAllCheckbox;
//# sourceMappingURL=ToggleAllCheckbox.js.map