Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/ui / dist / components / molecules / Toggle / renderProps.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});

const tslib_1 = require("tslib");

const react_1 = tslib_1.__importDefault(require("react"));

const exotic_1 = require("exotic");

const Icons_1 = require("../../atoms/Icons");

const styled_1 = require("./styled");

function defaultRenderCheckBox(props) {
  const {
    breed,
    borderColor,
    bgColor,
    tickColor,
    onToggle,
    isSelected
  } = props;
  const attributes = {
    isSelected,
    onClick: onToggle
  };
  const deselectedIconAttributes = {
    bgColor: 'transparent',
    borderColor,
    tickColor: 'transparent'
  };
  const selectedIconAttributes = {
    bgColor,
    borderColor: 'transparent',
    tickColor
  };
  const svgAttributes = isSelected ? selectedIconAttributes : deselectedIconAttributes;
  return react_1.default.createElement(styled_1.StyledCheckboxIcon, Object.assign({
    breed: breed
  }, attributes, svgAttributes));
}

function defaultRenderSwitch(props) {
  const {
    isAnimated,
    onToggle,
    isSelected,
    defaultLabel = 'ON',
    toggleLabel = 'OFF'
  } = props;
  const attributes = {
    isSelected,
    isAnimated,
    onClick: onToggle
  };
  const switchLabelView = react_1.default.createElement(styled_1.SwitchLabel, {
    content: isSelected === true ? defaultLabel : toggleLabel
  });
  return react_1.default.createElement(styled_1.SwitchIconWrapper, {
    isSelected: isSelected
  }, react_1.default.createElement(styled_1.StyledSwitchIcon, Object.assign({}, attributes)), switchLabelView);
}

function defaultRenderHeart(props) {
  const {
    onToggle,
    isSelected
  } = props;
  const attributes = {
    isSelected,
    onClick: onToggle
  };
  return react_1.default.createElement(Icons_1.HeartIcon, Object.assign({}, attributes));
}

function defaultRenderRadio(props) {
  const {
    onToggle,
    isSelected
  } = props;
  const attributes = {
    isSelected,
    onClick: onToggle
  };
  return react_1.default.createElement(Icons_1.RadioIcon, Object.assign({}, attributes));
}

function defaultRenderIcon(props) {
  const {
    iconType
  } = props;

  const switchIconType = type => {
    switch (type) {
      case 'checkbox':
        return defaultRenderCheckBox(props);

      case 'switch':
        return defaultRenderSwitch(props);

      case 'heart':
        return defaultRenderHeart(props);

      case 'radio':
      default:
        return defaultRenderRadio(props);
    }
  };

  const iconView = switchIconType(iconType);
  return react_1.default.createElement(styled_1.IconWrapper, null, iconView);
}

exports.defaultRenderIcon = defaultRenderIcon;

function defaultRenderLabel(props) {
  const {
    label
  } = props;
  return exotic_1.isSafe(label) && react_1.default.createElement(styled_1.StyledLabel, null, label);
}

exports.defaultRenderLabel = defaultRenderLabel;

function defaultRenderWrapper(props) {
  const {
    children,
    className
  } = props;
  const passThroughProps = Object.freeze({
    className,
    'data-qa': props['data-qa']
  });
  return react_1.default.createElement(styled_1.Wrapper, Object.assign({}, passThroughProps), children);
}

exports.defaultRenderWrapper = defaultRenderWrapper; //# sourceMappingURL=renderProps.js.map