UNPKG

wix-style-react

Version:
78 lines (77 loc) 2.85 kB
"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