@iobroker/adapter-react
Version:
React classes to develop admin interfaces for ioBroker with react.
838 lines (741 loc) • 29.9 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
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 _styles = require("@material-ui/core/styles");
var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
var _cronText = _interopRequireDefault(require("./cronText"));
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; } }
var styles = function styles(theme) {
return {
mainDiv: {
width: '100%',
height: '100%',
overflow: 'auto'
},
formControl: {
margin: 0,
minWidth: 120
},
formControlMarginRight: {
marginRight: 5
},
formControlPaddingTop: {
paddingTop: 6.2
}
};
};
var PERIODIC = {
once: 'once',
interval: 'interval',
intervalBetween: 'intervalBetween',
specific: 'specific'
};
var PERIODIC_TYPES = {
seconds: 'seconds',
minutes: 'minutes' //hours: 'hours',
};
var WEEKDAYS = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
function padding(num) {
if (num < 10) {
return '0' + num;
} else {
return '' + num;
}
}
var DEFAULT_STATE = {
mode: PERIODIC.interval,
interval: {
period: 1,
unit: PERIODIC_TYPES.minutes
}
};
var SimpleCron = /*#__PURE__*/function (_React$Component) {
(0, _inherits2["default"])(SimpleCron, _React$Component);
var _super = _createSuper(SimpleCron);
function SimpleCron(props) {
var _this;
(0, _classCallCheck2["default"])(this, SimpleCron);
_this = _super.call(this, props);
var cron = typeof _this.props.cronExpression === 'string' ? _this.props.cronExpression.replace(/^["']/, '').replace(/["']\n?$/, '') : '';
if (cron[0] === '{') {
cron = '';
}
var state = SimpleCron.cron2state(cron || '* * * * *') || DEFAULT_STATE;
_this.state = {
extended: false,
cron: SimpleCron.state2cron(state),
mode: 'interval',
once: {
time: '00:00',
date: ''
},
interval: {
period: 1,
unit: PERIODIC_TYPES.minutes
},
intervalBetween: {
period: 1,
unit: PERIODIC_TYPES.minutes,
timeFrom: 0,
timeTo: 24,
weekdays: [0, 1, 2, 3, 4, 5, 6]
},
specific: {
time: '00:00',
weekdays: [0, 1, 2, 3, 4, 5, 6]
}
};
Object.assign(_this.state, state);
if (_this.state.cron !== _this.props.cronExpression) {
setTimeout(function () {
return _this.props.onChange && _this.props.onChange(_this.state.cron);
}, 100);
}
return _this;
}
(0, _createClass2["default"])(SimpleCron, [{
key: "recalcCron",
value: function recalcCron() {
this.onChange(SimpleCron.state2cron(this.state));
}
}, {
key: "getControlsWeekdaysElements",
value: function getControlsWeekdaysElements(type) {
var _this2 = this;
var settings = this.state[type];
return /*#__PURE__*/_react["default"].createElement("div", {
key: "weekdays",
style: {
paddingLeft: 8,
width: '100%',
maxWidth: 600
}
}, /*#__PURE__*/_react["default"].createElement("h5", null, _i18n["default"].t('ra_On weekdays')), [1, 2, 3, 4, 5, 6, 0].map(function (day) {
return /*#__PURE__*/_react["default"].createElement(_FormControlLabel["default"], {
key: WEEKDAYS[day],
control: /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
checked: settings.weekdays.indexOf(day) !== -1,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this2.state[type]));
var pos = settings.weekdays.indexOf(day);
e.target.checked && pos === -1 && settings.weekdays.push(day);
!e.target.checked && pos !== -1 && settings.weekdays.splice(pos, 1);
settings.weekdays.sort();
_this2.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this2.recalcCron();
});
},
value: day.toString()
}),
label: _i18n["default"].t(WEEKDAYS[day])
});
}));
}
}, {
key: "getControlsPeriodElements",
value: function getControlsPeriodElements(type) {
var _this3 = this;
var settings = this.state[type];
if (this.state.extended) {
return /*#__PURE__*/_react["default"].createElement("div", {
key: "period",
style: {
paddingLeft: 8,
display: 'inline-block'
}
}, /*#__PURE__*/_react["default"].createElement("h5", {
style: {
marginBottom: 5
}
}, _i18n["default"].t('sc_period')), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
style: {
marginTop: 0,
marginBottom: 0,
verticalAlign: 'bottom'
},
key: "value",
label: _i18n["default"].t('sc_minutes'),
value: settings.minutes,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this3.state[type]));
settings.minutes = parseInt(e.target.value, 10);
if (settings.minutes < 1) settings.minutes = 1;
_this3.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this3.recalcCron();
});
},
min: 1,
max: 60,
type: "number",
InputLabelProps: {
shrink: true
},
margin: "normal"
}), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
style: {
marginTop: 0,
marginBottom: 0,
verticalAlign: 'bottom'
},
key: "value",
label: _i18n["default"].t('sc_hours'),
value: settings.hours,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this3.state[type]));
settings.hours = parseInt(e.target.value, 10);
if (settings.hours < 1) settings.hours = 1;
_this3.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this3.recalcCron();
});
},
min: 1,
max: 24,
type: "number",
InputLabelProps: {
shrink: true
},
margin: "normal"
}));
} else {
return /*#__PURE__*/_react["default"].createElement("div", {
key: "period",
style: {
paddingLeft: 8,
display: 'inline-block'
}
}, /*#__PURE__*/_react["default"].createElement("h5", {
style: {
marginBottom: 5
}
}, _i18n["default"].t('sc_period')), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
style: {
marginTop: 0,
marginBottom: 0,
verticalAlign: 'bottom'
},
key: "value",
label: _i18n["default"].t('sc_every'),
value: settings.period,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this3.state[type]));
settings.period = parseInt(e.target.value, 10);
if (settings.period < 1) settings.period = 1;
_this3.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this3.recalcCron();
});
},
min: 1,
max: 60,
type: "number",
InputLabelProps: {
shrink: true
},
margin: "normal"
}), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
style: {
verticalAlign: 'bottom'
},
value: settings.unit,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this3.state[type]));
settings.unit = e.target.value;
_this3.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this3.recalcCron();
});
}
}, Object.keys(PERIODIC_TYPES).map(function (mode) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
key: PERIODIC_TYPES[mode],
value: PERIODIC_TYPES[mode]
}, _i18n["default"].t('sc_' + PERIODIC_TYPES[mode]));
})));
}
}
}, {
key: "getControlsTime",
value: function getControlsTime(type) {
var _this4 = this;
var settings = this.state[type];
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
className: this.props.classes.formControl,
classes: {
root: this.props.classes.formControlMarginRight
}
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
key: "at",
label: _i18n["default"].t('sc_time'),
value: settings.time,
type: "time",
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this4.state[type]));
settings.time = e.target.value;
_this4.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this4.recalcCron();
});
},
InputLabelProps: {
shrink: true
},
margin: "normal"
}));
}
}, {
key: "getControlsDate",
value: function getControlsDate(type) {
var _this5 = this;
var settings = this.state[type];
if (!settings.date) {
var d = new Date();
settings.date = d.getDate() + '.' + padding(d.getMonth() + 1);
} //<InputLabel htmlFor="formatted-text-mask-input">{I18n.t('sc_at')}</InputLabel>
return /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
className: this.props.classes.formControl
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
key: "date",
label: _i18n["default"].t('sc_date'),
value: settings.date,
type: "text",
inputProps: {
className: this.props.classes.formControlPaddingTop
},
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this5.state[type]));
settings.date = e.target.value;
_this5.setState((0, _defineProperty2["default"])({}, type, settings), function () {
return _this5.recalcCron();
});
},
InputLabelProps: {
shrink: true
},
margin: "normal"
}));
}
}, {
key: "getOnceElements",
value: function getOnceElements() {
return /*#__PURE__*/_react["default"].createElement("div", {
style: {
marginLeft: 8
}
}, this.getControlsTime('once'), this.getControlsDate('once'));
}
}, {
key: "getIntervalElements",
value: function getIntervalElements() {
return this.getControlsPeriodElements('interval');
}
}, {
key: "getIntervalBetweenElements",
value: function getIntervalBetweenElements() {
var _this6 = this;
var settings = this.state.intervalBetween;
return [this.getControlsPeriodElements('intervalBetween'), /*#__PURE__*/_react["default"].createElement("div", {
key: "between",
style: {
paddingLeft: 8,
display: 'inline-block',
verticalAlign: 'top'
}
}, /*#__PURE__*/_react["default"].createElement("h5", {
style: {
marginBottom: 5
}
}, _i18n["default"].t('sc_hours')), /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
className: this.props.classes.formControl
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
shrink: true,
htmlFor: "age-label-placeholder"
}, _i18n["default"].t('sc_from')), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
style: {
width: 100
},
value: settings.timeFrom,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this6.state.intervalBetween));
settings.timeFrom = parseInt(e.target.value, 10);
_this6.setState({
intervalBetween: settings
}, function () {
return _this6.recalcCron();
});
}
}, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23].map(function (hour) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
key: 'B_' + hour,
value: hour
}, padding(hour) + ':00');
}))), /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
className: this.props.classes.formControl
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], {
shrink: true,
htmlFor: "age-label-placeholder"
}, _i18n["default"].t('sc_to')), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
style: {
width: 100
},
value: settings.timeTo,
onChange: function onChange(e) {
var settings = JSON.parse(JSON.stringify(_this6.state.intervalBetween));
settings.timeTo = parseInt(e.target.value, 10);
_this6.setState({
intervalBetween: settings
}, function () {
return _this6.recalcCron();
});
}
}, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24].map(function (hour) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
key: 'A_' + hour,
value: hour
}, padding(hour) + ':00');
})))), this.getControlsWeekdaysElements('intervalBetween')];
}
}, {
key: "getSpecificTimeElements",
value: function getSpecificTimeElements() {
return [/*#__PURE__*/_react["default"].createElement("div", {
key: "time",
style: {
marginLeft: 8
}
}, this.getControlsTime('specific')), this.getControlsWeekdaysElements('specific')];
}
}, {
key: "onModeChange",
value: function onModeChange(mode) {
var _this7 = this;
if (mode !== this.state.mode) {
this.setState({
mode: mode
}, function () {
return _this7.recalcCron();
});
}
}
}, {
key: "onChange",
value: function onChange(cron) {
if (cron !== this.state.cron) {
this.setState({
cron: cron
});
this.props.onChange && this.props.onChange(cron);
}
}
}, {
key: "render",
value: function render() {
var _this8 = this;
return /*#__PURE__*/_react["default"].createElement("div", {
className: this.props.classes.mainDiv
}, /*#__PURE__*/_react["default"].createElement("div", {
style: {
paddingLeft: 8,
width: '100%'
}
}, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
style: {
width: '100%'
},
value: this.state.cron,
disabled: true
})), /*#__PURE__*/_react["default"].createElement("div", {
style: {
paddingLeft: 8,
width: '100%',
height: 60
}
}, (0, _cronText["default"])(this.state.cron, this.props.language || 'en')), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_FormControl["default"], {
style: {
marginLeft: 8,
marginTop: 8
},
className: this.props.classes.formControl
}, /*#__PURE__*/_react["default"].createElement(_InputLabel["default"], null, _i18n["default"].t('ra_Repeat')), /*#__PURE__*/_react["default"].createElement(_Select["default"], {
value: this.state.mode,
onChange: function onChange(e) {
return _this8.onModeChange(e.target.value);
},
inputProps: {
name: 'mode',
id: 'mode'
}
}, Object.keys(PERIODIC).map(function (mode) {
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
key: PERIODIC[mode],
value: PERIODIC[mode]
}, _i18n["default"].t('sc_' + PERIODIC[mode]));
})))), this.state.mode === PERIODIC.once && this.getOnceElements(), this.state.mode === PERIODIC.interval && this.getIntervalElements(), this.state.mode === PERIODIC.intervalBetween && this.getIntervalBetweenElements(), this.state.mode === PERIODIC.specific && this.getSpecificTimeElements());
}
}], [{
key: "periodArray2text",
value: function periodArray2text(list, max) {
max = max || 7;
if (list.length === max) {
return '*';
} else {
var text = [];
var start = null;
var end = null;
for (var i = 0; i < list.length; i++) {
if (start === null) {
start = list[i];
end = list[i];
} else if (list[i - 1] + 1 === list[i]) {
end = list[i];
} else {
if (start !== end) {
text.push(start + '-' + end);
} else {
text.push(start);
}
start = list[i];
end = list[i];
}
}
if (start !== end) {
text.push(start + '-' + end);
} else {
text.push(start);
}
return text.join(',');
}
}
}, {
key: "text2weekdays",
value: function text2weekdays(text) {
if (text === '*') {
return [0, 1, 2, 3, 4, 5, 6];
}
var parts = text.split(',');
var list = [];
parts.forEach(function (part) {
var _parts = part.split('-');
if (_parts.length === 2) {
var start = parseInt(_parts[0], 10);
var end = parseInt(_parts[1], 10);
for (var day = start; day <= end; day++) {
if (list.indexOf(day === 7 ? 0 : day) === -1) {
list.push(day === 7 ? 0 : day);
}
}
} else {
if (part === '7') {
part = 0;
}
part = parseInt(part, 10);
if (list.indexOf(part) === -1) {
list.push(part);
}
}
});
list.sort();
return list;
}
}, {
key: "cron2state",
value: function cron2state(cron) {
cron = cron.replace(/['"]/g, '').trim();
var cronParts = cron.split(' ');
var options = {};
var state = {
mode: ''
};
if (cronParts.length === 6) {
options.seconds = cronParts[0] || '*';
options.minutes = cronParts[1] || '*';
options.hours = cronParts[2] || '*';
options.date = cronParts[3] || '*';
options.months = cronParts[4] || '*';
options.dow = cronParts[5] || '*';
} else {
options.seconds = null;
options.minutes = cronParts[0] || '*';
options.hours = cronParts[1] || '*';
options.date = cronParts[2] || '*';
options.months = cronParts[3] || '*';
options.dow = cronParts[4] || '*';
} // * * * * *
if (options.seconds === null && options.minutes === '*' && options.hours === '*' && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.interval;
state.interval = {
period: 1,
unit: PERIODIC_TYPES.minutes
};
} // * * * * * *
if (options.seconds === '*' && options.minutes === '*' && options.hours === '*' && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.interval;
state.interval = {
period: 1,
unit: PERIODIC_TYPES.seconds
};
} else // */n * * * *
if (options.seconds === null && options.minutes.indexOf('/') !== -1 && options.hours === '*' && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.interval;
state.interval = {
period: parseInt(options.minutes.split('/')[1], 10),
unit: PERIODIC_TYPES.minutes
};
} else // */n * * * * *
if (options.seconds !== null && options.seconds.indexOf('/') !== -1 && options.minutes === '*' && options.hours === '*' && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.interval;
state.interval = {
period: parseInt(options.seconds.split('/')[1], 10),
unit: PERIODIC_TYPES.seconds
};
} else // */n * 1-24 * * 1-7 or */n * 1-24 * * *
if (options.seconds !== null && options.seconds.indexOf('/') !== -1 && options.minutes === '*' && options.hours.indexOf('-') !== -1 && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.intervalBetween;
state.intervalBetween = {
period: parseInt(options.seconds.split('/')[1], 10),
unit: PERIODIC_TYPES.seconds,
timeFrom: parseInt(options.hours.split('-')[0], 10),
timeTo: parseInt(options.hours.split('-')[1], 10),
weekdays: SimpleCron.text2weekdays(options.dow)
};
} else // */n 1-24 * * 1-7 or */n 1-24 * * *
if (options.seconds === null && options.minutes.indexOf('/') !== -1 && options.hours.indexOf('-') !== -1 && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.intervalBetween;
state.intervalBetween = {
period: parseInt(options.minutes.split('/')[1], 10),
unit: PERIODIC_TYPES.minutes,
timeFrom: parseInt(options.hours.split('-')[0], 10),
timeTo: parseInt(options.hours.split('-')[1], 10),
weekdays: SimpleCron.text2weekdays(options.dow)
};
} else // m h * * 1-7 or m h * * *
if (options.seconds === null && parseInt(options.minutes, 10).toString() === options.minutes && parseInt(options.hours, 10).toString() === options.hours && options.date === '*' && options.months === '*') {
state.mode = PERIODIC.specific;
state.specific = {
time: padding(parseInt(options.hours, 10)) + ':' + padding(parseInt(options.minutes, 10)),
weekdays: SimpleCron.text2weekdays(options.dow)
};
} else // m h d M *
if (options.seconds === null && parseInt(options.minutes, 10).toString() === options.minutes && parseInt(options.hours, 10).toString() === options.hours && parseInt(options.date, 10).toString() === options.date && parseInt(options.months, 10).toString() === options.months && options.dow === '*') {
state.mode = PERIODIC.once;
state.once = {
time: padding(parseInt(options.hours, 10)) + ':' + padding(parseInt(options.minutes, 10)),
date: padding(parseInt(options.date, 10)) + '.' + padding(parseInt(options.months, 10)),
// ignored
weekdays: SimpleCron.text2weekdays(options.dow)
};
}
if (state.mode) {
return state;
} else {
return null;
}
}
}, {
key: "state2cron",
value: function state2cron(state) {
var cron = '* * * * *';
if (state.mode === PERIODIC.interval) {
var settings = state.interval || {};
if (settings.period > 60) settings.period = 60;
if (settings.period < 1) settings.period = 1;
if (settings.minutes > 60) settings.minutes = 60;
if (settings.minutes < 1) settings.minutes = 1;
if (settings.hours > 24) settings.hours = 24;
if (settings.hours < 1) settings.hours = 1;
if (state.extended) {
cron = "".concat(settings.minutes > 1 ? '*/' + settings.minutes : '*', " ").concat(settings.hours > 1 ? '*/' + settings.hours : '*', " * * *");
} else {
switch (settings.unit) {
case PERIODIC_TYPES.seconds:
cron = "".concat(settings.period > 1 ? '*/' + settings.period : '*', " * * * * *");
break;
case PERIODIC_TYPES.minutes:
cron = "".concat(settings.period > 1 ? '*/' + settings.period : '*', " * * * *");
break;
default:
break;
}
}
} else if (state.mode === PERIODIC.intervalBetween) {
var _settings = state.intervalBetween || {};
var hours;
_settings.timeFrom = _settings.timeFrom || 0;
_settings.timeTo = _settings.timeTo === undefined ? 24 : _settings.timeTo;
if (_settings.timeFrom === 0 && _settings.timeTo === 24) {
hours = '*';
} else {
hours = _settings.timeFrom !== _settings.timeTo ? _settings.timeFrom + '-' + _settings.timeTo : '*';
}
if (_settings.period > 60) _settings.period = 60;
if (_settings.period < 1) _settings.period = 1;
_settings.unit = _settings.unit || PERIODIC_TYPES.minutes;
switch (_settings.unit) {
case PERIODIC_TYPES.seconds:
cron = "".concat(_settings.period > 1 ? '*/' + _settings.period : '*', " * ").concat(hours, " * * ").concat(this.periodArray2text(_settings.weekdays));
break;
case PERIODIC_TYPES.minutes:
cron = "".concat(_settings.period > 1 ? '*/' + _settings.period : '*', " ").concat(hours, " * * ").concat(this.periodArray2text(_settings.weekdays));
break;
default:
break;
}
} else if (state.mode === PERIODIC.specific) {
var _settings2 = state.specific || {};
var parts = (_settings2.time || '00:00').split(':');
var minutes = parseInt(parts[1], 10) || 0;
if (minutes > 59) minutes = 59;
if (minutes < 0) minutes = 0;
var _hours = parseInt(parts[0], 10) || 0;
if (_hours > 23) _hours = 59;
if (_hours < 0) _hours = 0;
cron = "".concat(minutes, " ").concat(_hours, " * * ").concat(this.periodArray2text(_settings2.weekdays || []));
} else if (state.mode === PERIODIC.once) {
var _settings3 = state.once || {};
if (!_settings3.date) {
_settings3.date = new Date().getDate() + '.' + padding(new Date().getMonth() + 1);
}
var _parts2 = (_settings3.time || '00:00').split(':');
var partsDate = _settings3.date.split('.');
var _minutes = parseInt(_parts2[1], 10) || 0;
if (_minutes > 59) _minutes = 59;
if (_minutes < 0) _minutes = 0;
var _hours2 = parseInt(_parts2[0], 10) || 0;
if (_hours2 > 23) _hours2 = 59;
if (_hours2 < 0) _hours2 = 0;
var date = parseInt(partsDate[0], 10) || 1;
if (date > 31) date = 31;
if (date < 1) _hours2 = 1;
var month = parseInt(partsDate[1], 10) || 1;
if (month > 12) month = 12;
if (month < 1) month = 1;
cron = "".concat(_minutes, " ").concat(_hours2, " ").concat(date, " ").concat(month, " *");
}
return cron;
}
}]);
return SimpleCron;
}(_react["default"].Component);
SimpleCron.propTypes = {
cronExpression: _propTypes["default"].string,
onChange: _propTypes["default"].func,
language: _propTypes["default"].string
};
var _default = (0, _styles.withStyles)(styles)(SimpleCron);
exports["default"] = _default;
//# sourceMappingURL=index.js.map