{"dependencies":[{"name":"babel-runtime/helpers/extends","loc":{"line":7,"column":24}},{"name":"babel-runtime/helpers/objectWithoutProperties","loc":{"line":11,"column":40}},{"name":"babel-runtime/core-js/object/get-prototype-of","loc":{"line":15,"column":30}},{"name":"babel-runtime/helpers/classCallCheck","loc":{"line":19,"column":31}},{"name":"babel-runtime/helpers/createClass","loc":{"line":23,"column":28}},{"name":"babel-runtime/helpers/possibleConstructorReturn","loc":{"line":27,"column":42}},{"name":"babel-runtime/helpers/inherits","loc":{"line":31,"column":25}},{"name":"simple-assign","loc":{"line":35,"column":28}},{"name":"react","loc":{"line":39,"column":21}},{"name":"prop-types","loc":{"line":43,"column":25}},{"name":"../internal/EnhancedSwitch","loc":{"line":47,"column":30}},{"name":"../styles/transitions","loc":{"line":51,"column":27}},{"name":"../svg-icons/toggle/check-box-outline-blank","loc":{"line":55,"column":36}},{"name":"../svg-icons/toggle/check-box","loc":{"line":59,"column":24}}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');\n\nvar _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _simpleAssign = require('simple-assign');\n\nvar _simpleAssign2 = _interopRequireDefault(_simpleAssign);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _EnhancedSwitch = require('../internal/EnhancedSwitch');\n\nvar _EnhancedSwitch2 = _interopRequireDefault(_EnhancedSwitch);\n\nvar _transitions = require('../styles/transitions');\n\nvar _transitions2 = _interopRequireDefault(_transitions);\n\nvar _checkBoxOutlineBlank = require('../svg-icons/toggle/check-box-outline-blank');\n\nvar _checkBoxOutlineBlank2 = _interopRequireDefault(_checkBoxOutlineBlank);\n\nvar _checkBox = require('../svg-icons/toggle/check-box');\n\nvar _checkBox2 = _interopRequireDefault(_checkBox);\n\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : { default: obj };\n}\n\nfunction getStyles(props, context) {\n  var checkbox = context.muiTheme.checkbox;\n\n  var checkboxSize = 24;\n\n  return {\n    icon: {\n      height: checkboxSize,\n      width: checkboxSize\n    },\n    check: {\n      position: 'absolute',\n      opacity: 0,\n      transform: 'scale(0)',\n      transitionOrigin: '50% 50%',\n      transition: _transitions2.default.easeOut('450ms', 'opacity', '0ms') + ', ' + _transitions2.default.easeOut('0ms', 'transform', '450ms'),\n      fill: checkbox.checkedColor\n    },\n    checkWhenSwitched: {\n      opacity: 1,\n      transform: 'scale(1)',\n      transition: _transitions2.default.easeOut('0ms', 'opacity', '0ms') + ', ' + _transitions2.default.easeOut('800ms', 'transform', '0ms')\n    },\n    checkWhenDisabled: {\n      fill: checkbox.disabledColor\n    },\n    box: {\n      position: 'absolute',\n      opacity: 1,\n      fill: checkbox.boxColor,\n      transition: _transitions2.default.easeOut('1000ms', 'opacity', '200ms')\n    },\n    boxWhenSwitched: {\n      opacity: 0,\n      transition: _transitions2.default.easeOut('650ms', 'opacity', '150ms'),\n      fill: checkbox.checkedColor\n    },\n    boxWhenDisabled: {\n      fill: props.checked ? 'transparent' : checkbox.disabledColor\n    },\n    label: {\n      color: props.disabled ? checkbox.labelDisabledColor : checkbox.labelColor\n    }\n  };\n}\n\nvar Checkbox = function (_Component) {\n  (0, _inherits3.default)(Checkbox, _Component);\n\n  function Checkbox() {\n    var _ref;\n\n    var _temp, _this, _ret;\n\n    (0, _classCallCheck3.default)(this, Checkbox);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Checkbox.__proto__ || (0, _getPrototypeOf2.default)(Checkbox)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n      switched: false\n    }, _this.handleStateChange = function (newSwitched) {\n      _this.setState({\n        switched: newSwitched\n      });\n    }, _this.handleCheck = function (event, isInputChecked) {\n      if (_this.props.onCheck) {\n        _this.props.onCheck(event, isInputChecked);\n      }\n    }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n  }\n\n  (0, _createClass3.default)(Checkbox, [{\n    key: 'componentWillMount',\n    value: function componentWillMount() {\n      var _props = this.props,\n          checked = _props.checked,\n          defaultChecked = _props.defaultChecked,\n          valueLink = _props.valueLink;\n\n      if (checked || defaultChecked || valueLink && valueLink.value) {\n        this.setState({\n          switched: true\n        });\n      }\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(nextProps) {\n      if (this.props.checked !== nextProps.checked) {\n        this.setState({\n          switched: nextProps.checked\n        });\n      }\n    }\n  }, {\n    key: 'isChecked',\n    value: function isChecked() {\n      return this.refs.enhancedSwitch.isSwitched();\n    }\n  }, {\n    key: 'setChecked',\n    value: function setChecked(newCheckedValue) {\n      this.refs.enhancedSwitch.setSwitched(newCheckedValue);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _props2 = this.props,\n          iconStyle = _props2.iconStyle,\n          onCheck = _props2.onCheck,\n          checkedIcon = _props2.checkedIcon,\n          uncheckedIcon = _props2.uncheckedIcon,\n          other = (0, _objectWithoutProperties3.default)(_props2, ['iconStyle', 'onCheck', 'checkedIcon', 'uncheckedIcon']);\n\n      var styles = getStyles(this.props, this.context);\n      var boxStyles = (0, _simpleAssign2.default)(styles.box, this.state.switched && styles.boxWhenSwitched, iconStyle, this.props.disabled && styles.boxWhenDisabled);\n      var checkStyles = (0, _simpleAssign2.default)(styles.check, this.state.switched && styles.checkWhenSwitched, iconStyle, this.props.disabled && styles.checkWhenDisabled);\n\n      var checkedElement = checkedIcon ? _react2.default.cloneElement(checkedIcon, {\n        style: (0, _simpleAssign2.default)(checkStyles, checkedIcon.props.style)\n      }) : _react2.default.createElement(_checkBox2.default, {\n        style: checkStyles\n      });\n\n      var unCheckedElement = uncheckedIcon ? _react2.default.cloneElement(uncheckedIcon, {\n        style: (0, _simpleAssign2.default)(boxStyles, uncheckedIcon.props.style)\n      }) : _react2.default.createElement(_checkBoxOutlineBlank2.default, {\n        style: boxStyles\n      });\n\n      var checkboxElement = _react2.default.createElement('div', null, unCheckedElement, checkedElement);\n\n      var rippleColor = this.state.switched ? checkStyles.fill : boxStyles.fill;\n      var mergedIconStyle = (0, _simpleAssign2.default)(styles.icon, iconStyle);\n\n      var labelStyle = (0, _simpleAssign2.default)(styles.label, this.props.labelStyle);\n\n      var enhancedSwitchProps = {\n        ref: 'enhancedSwitch',\n        inputType: 'checkbox',\n        switched: this.state.switched,\n        switchElement: checkboxElement,\n        rippleColor: rippleColor,\n        iconStyle: mergedIconStyle,\n        onSwitch: this.handleCheck,\n        labelStyle: labelStyle,\n        onParentShouldUpdate: this.handleStateChange,\n        labelPosition: this.props.labelPosition\n      };\n\n      return _react2.default.createElement(_EnhancedSwitch2.default, (0, _extends3.default)({}, other, enhancedSwitchProps));\n    }\n  }]);\n  return Checkbox;\n}(_react.Component);\n\nCheckbox.defaultProps = {\n  labelPosition: 'right',\n  disabled: false\n};\nCheckbox.contextTypes = {\n  muiTheme: _propTypes2.default.object.isRequired\n};\nCheckbox.propTypes = \"development\" !== \"production\" ? {\n  /**\n   * Checkbox is checked if true.\n   */\n  checked: _propTypes2.default.bool,\n  /**\n   * The SvgIcon to use for the checked state.\n   * This is useful to create icon toggles.\n   */\n  checkedIcon: _propTypes2.default.element,\n  /**\n   * The default state of our checkbox component.\n   * **Warning:** This cannot be used in conjunction with `checked`.\n   * Decide between using a controlled or uncontrolled input element and remove one of these props.\n   * More info: https://fb.me/react-controlled-components\n   */\n  defaultChecked: _propTypes2.default.bool,\n  /**\n   * Disabled if true.\n   */\n  disabled: _propTypes2.default.bool,\n  /**\n   * Overrides the inline-styles of the icon element.\n   */\n  iconStyle: _propTypes2.default.object,\n  /**\n   * Overrides the inline-styles of the input element.\n   */\n  inputStyle: _propTypes2.default.object,\n  /**\n   * Where the label will be placed next to the checkbox.\n   */\n  labelPosition: _propTypes2.default.oneOf(['left', 'right']),\n  /**\n   * Overrides the inline-styles of the Checkbox element label.\n   */\n  labelStyle: _propTypes2.default.object,\n  /**\n   * Callback function that is fired when the checkbox is checked.\n   *\n   * @param {object} event `change` event targeting the underlying checkbox `input`.\n   * @param {boolean} isInputChecked The `checked` value of the underlying checkbox `input`.\n   */\n  onCheck: _propTypes2.default.func,\n  /**\n   * Override the inline-styles of the root element.\n   */\n  style: _propTypes2.default.object,\n  /**\n   * The SvgIcon to use for the unchecked state.\n   * This is useful to create icon toggles.\n   */\n  uncheckedIcon: _propTypes2.default.element,\n  /**\n   * ValueLink for when using controlled checkbox.\n   */\n  valueLink: _propTypes2.default.object\n} : {};\nexports.default = Checkbox;"},"hash":"bb84593a21d7fc8fa88c97dee3796785"}