@s-ui/react-atom-checkbox
Version:
AtomCheckbox is a component that displays an input checkbox w/ its expected behavior
95 lines • 3.03 kB
JavaScript
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';
};