wix-style-react
Version:
wix-style-react
385 lines (367 loc) • 13.2 kB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
/* eslint-disable no-console */
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Template from './Template';
import RadioGroup from '../../../src/RadioGroup';
import ToggleSwitch from '../../../src/ToggleSwitch';
import Label from '../../../src/Label';
import Input from '../../../src/Input';
import styles from './Example.scss';
var ExampleTooltip = function (_Component) {
_inherits(ExampleTooltip, _Component);
function ExampleTooltip() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, ExampleTooltip);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ExampleTooltip.__proto__ || Object.getPrototypeOf(ExampleTooltip)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
type: 'default',
text: 'Tooltip appears on hover',
size: 'normal',
maxWidth: '',
popover: false,
onShow: function onShow() {
return console.log('onShow triggered');
},
onHide: function onHide() {
return console.log('onHide triggered');
},
onShowText: 'onShow triggered',
onHideText: 'onHide triggered',
moveBy: { x: 0, y: 0 },
shouldUpdatePosition: false,
showImmediately: false,
showArrow: true
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(ExampleTooltip, [{
key: 'render',
value: function render() {
var _this2 = this;
return React.createElement(
'form',
{ className: styles.form },
React.createElement(
'div',
{ className: styles.input },
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Size'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(
RadioGroup,
{
display: 'horizontal',
value: this.state.size,
onChange: function onChange(size) {
return _this2.setState({ size: size });
}
},
React.createElement(
RadioGroup.Radio,
{ value: 'normal' },
'Default'
),
React.createElement(
RadioGroup.Radio,
{ value: 'large' },
'Bigger info tooltip'
)
)
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Theme'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(
RadioGroup,
{
display: 'horizontal',
value: this.state.type,
onChange: function onChange(type) {
return _this2.setState({ type: type });
}
},
React.createElement(
RadioGroup.Radio,
{ value: 'default' },
'Dark'
),
React.createElement(
RadioGroup.Radio,
{ value: 'white' },
'White'
)
)
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Text'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(Input, {
size: 'small',
value: this.state.text,
onChange: function onChange(e) {
return _this2.setState({ text: e.target.value });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'onShow print to console'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(Input, {
size: 'small',
value: this.state.onShowText,
onChange: function onChange(e) {
return _this2.setState({ onShowText: e.target.value });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'onHide print to console'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(Input, {
size: 'small',
value: this.state.onHideText,
onChange: function onChange(e) {
return _this2.setState({ onHideText: e.target.value });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Max Width'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(Input, {
size: 'small',
value: this.state.maxWidth,
onChange: function onChange(e) {
return _this2.setState({ maxWidth: e.target.value });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Should Update Position'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(ToggleSwitch, {
checked: this.state.shouldUpdatePosition,
onChange: function onChange() {
return _this2.setState({
shouldUpdatePosition: !_this2.state.shouldUpdatePosition
});
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Show Tooltip Immediately'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(ToggleSwitch, {
checked: this.state.showImmediately,
onChange: function onChange() {
return _this2.setState({
showImmediately: !_this2.state.showImmediately
});
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Show Arrow'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(ToggleSwitch, {
checked: this.state.showArrow,
onChange: function onChange() {
return _this2.setState({ showArrow: !_this2.state.showArrow });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'popover'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(ToggleSwitch, {
checked: this.state.popover,
onChange: function onChange() {
return _this2.setState({ popover: !_this2.state.popover });
}
})
)
),
React.createElement(
'div',
{ className: styles.option },
React.createElement(
Label,
null,
'Move By'
),
React.createElement(
'div',
{ className: styles.flex },
React.createElement(
Label,
null,
'x',
React.createElement(Input, {
size: 'small',
value: this.state.moveBy.x,
type: 'number',
onChange: function onChange(e) {
return _this2.setState({
moveBy: _extends({}, _this2.state.moveBy, {
x: Number(e.target.value)
})
});
}
})
),
React.createElement(
Label,
null,
'y',
React.createElement(Input, {
size: 'small',
value: this.state.moveBy.y,
type: 'number',
onChange: function onChange(e) {
return _this2.setState({
moveBy: _extends({}, _this2.state.moveBy, {
y: Number(e.target.value)
})
});
}
})
)
)
)
),
React.createElement(
'div',
{
className: styles[this.state.theme === 'whiteblue' ? 'output-lightblue' : 'output']
},
React.createElement(
'div',
{
className: styles[this.state.theme] + ' ' + styles.exampleWrapper
},
React.createElement(Template, {
theme: this.state.type === 'default' ? 'dark' : 'light',
tooltipContent: this.state.text,
type: 'tooltip',
onChange: this.props.onChange,
size: this.state.size,
popover: this.state.popover,
maxWidth: this.state.maxWidth,
onShow: function onShow() {
return console.log(_this2.state.onShowText);
},
onHide: function onHide() {
return console.log(_this2.state.onHideText);
},
shouldUpdatePosition: this.state.shouldUpdatePosition,
showImmediately: this.state.showImmediately,
moveBy: this.state.moveBy,
showArrow: this.state.showArrow
})
)
)
);
}
}]);
return ExampleTooltip;
}(Component);
export default ExampleTooltip;
ExampleTooltip.propTypes = {
onChange: PropTypes.func.isRequired
};