@iobroker/adapter-react
Version:
React classes to develop admin interfaces for ioBroker with react.
246 lines (207 loc) • 9.84 kB
JavaScript
;
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