UNPKG

@iobroker/adapter-react

Version:

React classes to develop admin interfaces for ioBroker with react.

246 lines (207 loc) 9.84 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _index = require("@material-ui/core/styles/index"); var _Button = _interopRequireDefault(require("@material-ui/core/Button")); var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle")); var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent")); var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions")); var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog")); var _Radio = _interopRequireDefault(require("@material-ui/core/Radio")); var _Check = _interopRequireDefault(require("@material-ui/icons/Check")); var _Cancel = _interopRequireDefault(require("@material-ui/icons/Cancel")); var _ComplexCron = _interopRequireDefault(require("../Components/ComplexCron")); var _SimpleCron = _interopRequireDefault(require("../Components/SimpleCron")); var _Schedule = _interopRequireDefault(require("../Components/Schedule")); var _i18n = _interopRequireDefault(require("../i18n")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // Generate cron expression var styles = function styles(theme) { return { headerID: { fontWeight: 'bold', fontStyle: 'italic' }, radio: { display: 'inline-block' }, dialogPaper: { height: 'calc(100% - 96px)' }, buttonIcon: { marginRight: theme.spacing(1) } }; }; var DialogCron = /*#__PURE__*/function (_React$Component) { (0, _inherits2["default"])(DialogCron, _React$Component); var _super = _createSuper(DialogCron); function DialogCron(props) { var _this; (0, _classCallCheck2["default"])(this, DialogCron); _this = _super.call(this, props); var cron; if (_this.props.cron && typeof _this.props.cron === 'string' && _this.props.cron.replace(/^["']/, '')[0] !== '{') { cron = _this.props.cron.replace(/['"]/g, '').trim(); } else { cron = _this.props.cron || '{}'; if (typeof cron === 'string') { cron = cron.replace(/^["']/, '').replace(/["']\n?$/, ''); } } _this.state = { cron: cron, mode: _this.props.simple ? 'simple' : _this.props.complex ? 'complex' : (0, _typeof2["default"])(cron) === 'object' || cron[0] === '{' ? 'wizard' : _SimpleCron["default"].cron2state(_this.props.cron || '* * * * *') ? 'simple' : 'complex' }; return _this; } (0, _createClass2["default"])(DialogCron, [{ key: "handleCancel", value: function handleCancel() { this.props.onClose(); } }, { key: "handleOk", value: function handleOk() { this.props.onOk(this.state.cron); this.props.onClose(); } }, { key: "setMode", value: function setMode(mode) { this.setState({ mode: mode }); } }, { key: "render", value: function render() { var _this2 = this; return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], { onClose: function onClose() {}, maxWidth: "md", fullWidth: true, classes: { paper: this.props.classes.dialogPaper }, open: true, "aria-labelledby": "cron-dialog-title" }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], { id: "cron-dialog-title" }, this.props.title || _i18n["default"].t('ra_Define schedule...')), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], { style: { height: '100%', overflow: 'hidden' } }, this.props.simple && this.props.complex || !this.props.simple && !this.props.complex ? /*#__PURE__*/_react["default"].createElement("div", null, !this.props.simple && !this.props.complex && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Radio["default"], { key: "wizard", checked: this.state.mode === 'wizard', onChange: function onChange(e) { return _this2.setMode('wizard'); } }), /*#__PURE__*/_react["default"].createElement("label", { onClick: function onClick(e) { return _this2.setMode('wizard'); }, style: this.state.mode !== 'wizard' ? { color: 'lightgrey' } : {} }, _i18n["default"].t('sc_wizard'))), (!this.props.simple && !this.props.complex || this.props.simple) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Radio["default"], { key: "simple", checked: this.state.mode === 'simple', onChange: function onChange(e) { return _this2.setMode('simple'); } }), /*#__PURE__*/_react["default"].createElement("label", { onClick: function onClick(e) { return _this2.setMode('simple'); }, style: this.state.mode !== 'simple' ? { color: 'lightgrey' } : {} }, _i18n["default"].t('sc_simple'))), (!this.props.simple && !this.props.complex || this.props.complex) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Radio["default"], { key: "complex", checked: this.state.mode === 'complex', onChange: function onChange(e) { return _this2.setMode('complex'); } }), /*#__PURE__*/_react["default"].createElement("label", { onClick: function onClick(e) { return _this2.setMode('complex'); }, style: this.state.mode !== 'complex' ? { color: 'lightgrey' } : {} }, _i18n["default"].t('sc_cron')))) : null, this.state.mode === 'simple' && /*#__PURE__*/_react["default"].createElement(_SimpleCron["default"], { cronExpression: this.state.cron, onChange: function onChange(cron) { return _this2.setState({ cron: cron }); }, language: _i18n["default"].getLanguage() }), this.state.mode === 'wizard' && /*#__PURE__*/_react["default"].createElement(_Schedule["default"], { schedule: this.state.cron, onChange: function onChange(cron) { return _this2.setState({ cron: cron }); }, language: _i18n["default"].getLanguage() }), this.state.mode === 'complex' && /*#__PURE__*/_react["default"].createElement(_ComplexCron["default"], { cronExpression: this.state.cron, onChange: function onChange(cron) { return _this2.setState({ cron: cron }); }, language: _i18n["default"].getLanguage() })), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "contained", onClick: function onClick() { return _this2.handleOk(); }, color: "primary" }, /*#__PURE__*/_react["default"].createElement(_Check["default"], { className: this.props.classes.buttonIcon }), this.props.ok || _i18n["default"].t('ra_Ok')), /*#__PURE__*/_react["default"].createElement(_Button["default"], { variant: "contained", onClick: function onClick() { return _this2.handleCancel(); } }, /*#__PURE__*/_react["default"].createElement(_Cancel["default"], { className: this.props.classes.buttonIcon }), this.props.cancel || _i18n["default"].t('ra_Cancel')))); } }]); return DialogCron; }(_react["default"].Component); DialogCron.propTypes = { classes: _propTypes["default"].object, onClose: _propTypes["default"].func.isRequired, onOk: _propTypes["default"].func.isRequired, title: _propTypes["default"].string, cron: _propTypes["default"].string, cancel: _propTypes["default"].string, ok: _propTypes["default"].string, simple: _propTypes["default"].bool, // show only simple configuration complex: _propTypes["default"].bool, // show only complex configuration language: _propTypes["default"].string }; var _default = (0, _index.withStyles)(styles)(DialogCron); exports["default"] = _default; //# sourceMappingURL=Cron.js.map