UNPKG

@s-ui/react-atom-checkbox

Version:

AtomCheckbox is a component that displays an input checkbox w/ its expected behavior

95 lines 3.03 kB
import cx from 'classnames'; export var BASE_CLASS = 'sui-AtomCheckbox'; export var CLASS_ICON = 'sui-AtomCheckbox--Icon'; export var CHECKBOX_STATUS = { ERROR: 'error', SUCCESS: 'success', ALERT: 'alert' }; export var CHECKBOX_SIZES = { SMALL: 'small', MEDIUM: 'medium' }; export var className = function className(_ref) { var _cx; var size = _ref.size, checked = _ref.checked, disabled = _ref.disabled, indeterminate = _ref.indeterminate, className = _ref.className; return cx(CLASS_ICON, (_cx = {}, _cx[CLASS_ICON + "--" + size] = Object.values(CHECKBOX_SIZES).includes(size), _cx['is-checked'] = checked, _cx['is-disabled'] = disabled, _cx['is-indeterminate'] = indeterminate, _cx), className); }; export var pressedValue = function pressedValue(_ref2) { var checked = _ref2.checked, indeterminate = _ref2.indeterminate; if (checked) { return 'true'; } else if (indeterminate) { return 'mixed'; } return 'false'; }; export var getIsNative = function getIsNative(_ref3, _ref4) { var checked = _ref3.checked, indeterminate = _ref3.indeterminate; var CheckedIcon = _ref4.CheckedIcon, UncheckedIcon = _ref4.UncheckedIcon, IndeterminateIcon = _ref4.IndeterminateIcon, Icon = _ref4.Icon; if (checked && !CheckedIcon && !Icon) return true;else if (!checked && indeterminate && !IndeterminateIcon && !Icon) return true;else if (!checked && !indeterminate && !UncheckedIcon && !Icon) return true; return false; }; export var getReadOnly = function getReadOnly(_ref5) { var readOnly = _ref5.readOnly, disabled = _ref5.disabled, isNative = _ref5.isNative; if (disabled) return {};else if (readOnly && isNative) { return { readOnly: true }; } else if (!isNative) { return { readOnly: true }; } return {}; }; export var getIcon = function getIcon(_ref6, _ref7) { var isNative = _ref6.isNative, checked = _ref6.checked, indeterminate = _ref6.indeterminate; var CheckedIcon = _ref7.CheckedIcon, UncheckedIcon = _ref7.UncheckedIcon, IndeterminateIcon = _ref7.IndeterminateIcon, Icon = _ref7.Icon; if (isNative) { return null; } var ResultingIcon = Icon || CheckedIcon; if (!checked) { if (indeterminate) { ResultingIcon = Icon || IndeterminateIcon; } else { ResultingIcon = Icon || UncheckedIcon; } } return ResultingIcon; }; export var updateStatus = function updateStatus(element, _ref8) { var _ref8$isIndeterminate = _ref8.isIndeterminate, isIndeterminate = _ref8$isIndeterminate === void 0 ? false : _ref8$isIndeterminate, _ref8$isChecked = _ref8.isChecked, isChecked = _ref8$isChecked === void 0 ? false : _ref8$isChecked; if (!element) { return; } var indeterminate = element.indeterminate; if (isIndeterminate !== indeterminate) { element.indeterminate = isChecked ? false : isIndeterminate; return; } return undefined; }; export var isFunction = function isFunction(fn) { return typeof fn === 'function'; };