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    
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = void 0;

var _react = _interopRequireWildcard(require("react"));

var _propTypes = _interopRequireDefault(require("prop-types"));

var _exotic = require("../../../exotic");

var _result = _interopRequireDefault(require("lodash/result"));

var _state = _interopRequireDefault(require("./state"));

var _jsxFileName = "devtools/dat-gui/components/DatBoolean.js",
    _dec,
    _class;

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }

const Wrap = props => _react.default.createElement("li", {
  className: "cr boolean",
  __source: {
    fileName: _jsxFileName,
    lineNumber: 7
  },
  __self: void 0
}, props.children);

const LabelWrap = props => _react.default.createElement("label", {
  __source: {
    fileName: _jsxFileName,
    lineNumber: 8
  },
  __self: void 0
}, props.children);

const LabelText = props => _react.default.createElement("span", {
  className: "label-text",
  __source: {
    fileName: _jsxFileName,
    lineNumber: 9
  },
  __self: void 0
}, props.children);

let DatBoolean = (_dec = _state.default.observer, _dec(_class = class DatBoolean extends _react.Component {
  constructor(props) {
    super(props);

    this.handleChange = event => {
      // event.persist()
      // console.log({ handleChange: event })
      // this.setState({ value: event.target.checked }, this.update)
      // const value = event.target.checked
      const value = !this.state.value; // const value = false

      this.state.setValue(value);
      this.handleUpdate();
    };

    this.state = props.state || (0, _state.default)({
      value: this.getValue()
    });
  }

  componentWillReceiveProps(nextProps) {
    // true | false
    const value = this.getValue(nextProps);
    this.state.setValue(value);
  }

  getValue(props = this.props) {
    if (props.state) {
      return props.state.value;
    } else if (props.value === undefined) {
      return (0, _result.default)(props.data, props.path);
    } else {
      return props.value;
    }
  }

  // componentWillReact
  handleUpdate() {
    const value = this.state.value; // this.props._onUpdateValue && this.props._onUpdateValue(this.props.path, value)

    this.props.onUpdate && this.props.onUpdate(value);
  }

  render() {
    const _props = this.props,
          path = _props.path,
          label = _props.label;
    const labelText = (0, _exotic.isString)(label) ? label : path; // @todo

    const checkboxView = _react.default.createElement("input", {
      type: "checkbox",
      defaultValue: this.state.value,
      defaultChecked: this.state.value,
      value: this.state.value,
      checked: this.state.value,
      onChange: this.handleChange // onClick={this.handleChange}
      ,
      __source: {
        fileName: _jsxFileName,
        lineNumber: 74
      },
      __self: this
    });

    return _react.default.createElement(Wrap, {
      __source: {
        fileName: _jsxFileName,
        lineNumber: 86
      },
      __self: this
    }, _react.default.createElement(LabelWrap, {
      __source: {
        fileName: _jsxFileName,
        lineNumber: 87
      },
      __self: this
    }, _react.default.createElement(LabelText, {
      __source: {
        fileName: _jsxFileName,
        lineNumber: 88
      },
      __self: this
    }, labelText), checkboxView));
  }

}) || _class);
exports.default = DatBoolean;
DatBoolean.propTypes = {
  value: _propTypes.default.bool,
  data: _propTypes.default.object,
  state: _propTypes.default.object,
  path: _propTypes.default.string,
  label: _propTypes.default.string,
  onUpdate: _propTypes.default.func,
  _onUpdateValue: _propTypes.default.func
};