UNPKG

@zohodesk/components

Version:

Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development

45 lines (40 loc) 3.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = cssJSLogic; var _utils = require("@zohodesk/utils"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function cssJSLogic(_ref) { var _compileClassNames, _compileClassNames2, _compileClassNames3; var props = _ref.props, style = _ref.style; var customClass = props.customClass, needAppearance = props.needAppearance, isBold = props.isBold, rounded = props.rounded, size = props.size, children = props.children, palette = props.palette, status = props.status, disabled = props.disabled, shouldStrikeThroughDisabled = props.shouldStrikeThroughDisabled; var _customClass$customBu = customClass.customButton, customButton = _customClass$customBu === void 0 ? '' : _customClass$customBu, _customClass$customSt = customClass.customStatus, customStatus = _customClass$customSt === void 0 ? '' : _customClass$customSt, _customClass$customSt2 = customClass.customStatusSize, customStatusSize = _customClass$customSt2 === void 0 ? '' : _customClass$customSt2; var strikeExcludedPalettes = ['plainprimary', 'plainsecondary', 'plainDanger', 'plainSuccess']; var paletteLower = palette.toLowerCase(); var statusLower = status.toLowerCase(); var canStrikeThrough = !strikeExcludedPalettes.includes(paletteLower); var buttonClass = (0, _utils.compileClassNames)((_compileClassNames = {}, _defineProperty(_compileClassNames, style.bold, isBold), _defineProperty(_compileClassNames, style["default"], !needAppearance), _defineProperty(_compileClassNames, style[paletteLower], needAppearance), _defineProperty(_compileClassNames, style.rounded, needAppearance && rounded), _defineProperty(_compileClassNames, style[size.toLowerCase()], needAppearance && !children), _defineProperty(_compileClassNames, style["".concat(size, "Btn")], needAppearance && children), _defineProperty(_compileClassNames, style["".concat(size, "Btn").concat(paletteLower)], needAppearance && children && rounded), _defineProperty(_compileClassNames, "".concat(style["".concat(paletteLower, "Strike")], " ").concat(style.strike), disabled && canStrikeThrough && shouldStrikeThroughDisabled), _defineProperty(_compileClassNames, style.loader, !!needAppearance && statusLower !== 'none'), _defineProperty(_compileClassNames, customButton, !!customButton), _compileClassNames)); var loaderParentClass = (0, _utils.compileClassNames)((_compileClassNames2 = {}, _defineProperty(_compileClassNames2, style.loading, statusLower === 'loading'), _defineProperty(_compileClassNames2, style["".concat(size, "loading")], statusLower === 'loading'), _defineProperty(_compileClassNames2, style.successstate, statusLower != 'loading'), _defineProperty(_compileClassNames2, customStatusSize, !!customStatusSize), _compileClassNames2)); var loaderChildClass = (0, _utils.compileClassNames)((_compileClassNames3 = {}, _defineProperty(_compileClassNames3, style.loadingelement, statusLower === 'loading'), _defineProperty(_compileClassNames3, style["".concat(paletteLower, "element")], statusLower === 'loading'), _defineProperty(_compileClassNames3, style.tickElement, statusLower != 'loading'), _defineProperty(_compileClassNames3, style["".concat(paletteLower, "Tick")], statusLower != 'loading'), _defineProperty(_compileClassNames3, customStatus, !!customStatus), _compileClassNames3)); return { buttonClass: buttonClass, loaderParentClass: loaderParentClass, loaderChildClass: loaderChildClass }; }