react-cron-generator 2.0.18 → 2.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -29,7 +29,11 @@ var cronstrueI18n = {exports: {}};
29
29
  var _a;
30
30
  var parsed;
31
31
  var expression = (_a = this.expression) !== null && _a !== void 0 ? _a : '';
32
- if (expression.startsWith('@')) {
32
+ if (expression === "@reboot") {
33
+ parsed = ["@reboot", "", "", "", "", "", ""];
34
+ return parsed;
35
+ }
36
+ else if (expression.startsWith('@')) {
33
37
  var special = this.parseSpecial(this.expression);
34
38
  parsed = this.extractParts(special);
35
39
  }
@@ -48,7 +52,8 @@ var cronstrueI18n = {exports: {}};
48
52
  '@weekly': '0 0 * * 0',
49
53
  '@daily': '0 0 * * *',
50
54
  '@midnight': '0 0 * * *',
51
- '@hourly': '0 * * * *'
55
+ '@hourly': '0 * * * *',
56
+ '@reboot': '@reboot'
52
57
  };
53
58
  var special = specialExpressions[expression];
54
59
  if (!special) {
@@ -280,7 +285,7 @@ var cronstrueI18n = {exports: {}};
280
285
  }
281
286
  }
282
287
  ExpressionDescriptor.toString = function (expression, _a) {
283
- var _b = _a === void 0 ? {} : _a, _c = _b.throwExceptionOnParseError, throwExceptionOnParseError = _c === void 0 ? true : _c, _d = _b.verbose, verbose = _d === void 0 ? false : _d, _e = _b.dayOfWeekStartIndexZero, dayOfWeekStartIndexZero = _e === void 0 ? true : _e, _f = _b.monthStartIndexZero, monthStartIndexZero = _f === void 0 ? false : _f, use24HourTimeFormat = _b.use24HourTimeFormat, _g = _b.locale, locale = _g === void 0 ? null : _g, _h = _b.tzOffset, tzOffset = _h === void 0 ? 0 : _h;
288
+ var _b = _a === void 0 ? {} : _a, _c = _b.throwExceptionOnParseError, throwExceptionOnParseError = _c === void 0 ? true : _c, _d = _b.verbose, verbose = _d === void 0 ? false : _d, _e = _b.dayOfWeekStartIndexZero, dayOfWeekStartIndexZero = _e === void 0 ? true : _e, _f = _b.monthStartIndexZero, monthStartIndexZero = _f === void 0 ? false : _f, use24HourTimeFormat = _b.use24HourTimeFormat, _g = _b.locale, locale = _g === void 0 ? null : _g;
284
289
  var options = {
285
290
  throwExceptionOnParseError: throwExceptionOnParseError,
286
291
  verbose: verbose,
@@ -288,8 +293,10 @@ var cronstrueI18n = {exports: {}};
288
293
  monthStartIndexZero: monthStartIndexZero,
289
294
  use24HourTimeFormat: use24HourTimeFormat,
290
295
  locale: locale,
291
- tzOffset: tzOffset
292
296
  };
297
+ if (options.tzOffset) {
298
+ console.warn("'tzOffset' option has been deprecated and is no longer supported.");
299
+ }
293
300
  var descripter = new ExpressionDescriptor(expression, options);
294
301
  return descripter.getFullDescription();
295
302
  };
@@ -300,10 +307,14 @@ var cronstrueI18n = {exports: {}};
300
307
  localesLoader.load(ExpressionDescriptor.locales);
301
308
  };
302
309
  ExpressionDescriptor.prototype.getFullDescription = function () {
310
+ var _a, _b;
303
311
  var description = "";
304
312
  try {
305
313
  var parser = new cronParser_1.CronParser(this.expression, this.options.dayOfWeekStartIndexZero, this.options.monthStartIndexZero);
306
314
  this.expressionParts = parser.parse();
315
+ if (this.expressionParts[0] === "@reboot") {
316
+ return ((_b = (_a = this.i18n).atReboot) === null || _b === void 0 ? void 0 : _b.call(_a)) || "Run once, at startup";
317
+ }
307
318
  var timeSegment = this.getTimeOfDayDescription();
308
319
  var dayOfMonthDesc = this.getDayOfMonthDescription();
309
320
  var monthDesc = this.getMonthDescription();
@@ -422,8 +433,24 @@ var cronstrueI18n = {exports: {}};
422
433
  ExpressionDescriptor.prototype.getHoursDescription = function () {
423
434
  var _this = this;
424
435
  var expression = this.expressionParts[2];
436
+ var hourIndex = 0;
437
+ var rangeEndValues = [];
438
+ expression
439
+ .split("/")[0]
440
+ .split(",")
441
+ .forEach(function (range) {
442
+ var rangeParts = range.split("-");
443
+ if (rangeParts.length === 2) {
444
+ rangeEndValues.push({ value: rangeParts[1], index: hourIndex + 1 });
445
+ }
446
+ hourIndex += rangeParts.length;
447
+ });
448
+ var evaluationIndex = 0;
425
449
  var description = this.getSegmentDescription(expression, this.i18n.everyHour(), function (s) {
426
- return _this.formatTime(s, "0", "");
450
+ var match = rangeEndValues.find(function (r) { return r.value === s && r.index === evaluationIndex; });
451
+ var isRangeEndWithNonZeroMinute = match && _this.expressionParts[1] !== "0";
452
+ evaluationIndex++;
453
+ return isRangeEndWithNonZeroMinute ? _this.formatTime(s, "59", "") : _this.formatTime(s, "0", "");
427
454
  }, function (s) {
428
455
  return stringUtilities_1.StringUtilities.format(_this.i18n.everyX0Hours(s), s);
429
456
  }, function (s) {
@@ -431,16 +458,6 @@ var cronstrueI18n = {exports: {}};
431
458
  }, function (s) {
432
459
  return _this.i18n.atX0();
433
460
  });
434
- if (description && expression.includes("-") && this.expressionParts[1] != "0") {
435
- var atTheHourMatches = Array.from(description.matchAll(/:00/g));
436
- if (atTheHourMatches.length > 1) {
437
- var lastAtTheHourMatchIndex = atTheHourMatches[atTheHourMatches.length - 1].index;
438
- description =
439
- description.substring(0, lastAtTheHourMatchIndex) +
440
- ":59" +
441
- description.substring(lastAtTheHourMatchIndex + 3);
442
- }
443
- }
444
461
  return description;
445
462
  };
446
463
  ExpressionDescriptor.prototype.getDayOfWeekDescription = function () {
@@ -460,22 +477,6 @@ var cronstrueI18n = {exports: {}};
460
477
  exp = exp.replace("L", "");
461
478
  }
462
479
  var parsedExp = parseInt(exp);
463
- if (_this.options.tzOffset) {
464
- var hourExpression = _this.expressionParts[2];
465
- var hour = parseInt(hourExpression) + (_this.options.tzOffset ? _this.options.tzOffset : 0);
466
- if (hour >= 24) {
467
- parsedExp++;
468
- }
469
- else if (hour < 0) {
470
- parsedExp--;
471
- }
472
- if (parsedExp > 6) {
473
- parsedExp = 0;
474
- }
475
- else if (parsedExp < 0) {
476
- parsedExp = 6;
477
- }
478
- }
479
480
  var description = _this.i18n.daysOfTheWeekInCase
480
481
  ? _this.i18n.daysOfTheWeekInCase(form)[parsedExp]
481
482
  : daysOfWeekNames[parsedExp];
@@ -701,15 +702,8 @@ var cronstrueI18n = {exports: {}};
701
702
  ExpressionDescriptor.prototype.formatTime = function (hourExpression, minuteExpression, secondExpression) {
702
703
  var hourOffset = 0;
703
704
  var minuteOffset = 0;
704
- if (this.options.tzOffset) {
705
- hourOffset = this.options.tzOffset > 0 ? Math.floor(this.options.tzOffset) : Math.ceil(this.options.tzOffset);
706
- minuteOffset = (parseFloat((this.options.tzOffset % 1).toFixed(2)));
707
- if (minuteOffset != 0) {
708
- minuteOffset *= 60;
709
- }
710
- }
711
- var hour = parseInt(hourExpression) + (hourOffset);
712
- var minute = parseInt(minuteExpression) + (minuteOffset);
705
+ var hour = parseInt(hourExpression) + hourOffset;
706
+ var minute = parseInt(minuteExpression) + minuteOffset;
713
707
  if (minute >= 60) {
714
708
  minute -= 60;
715
709
  hour += 1;
@@ -748,6 +742,12 @@ var cronstrueI18n = {exports: {}};
748
742
  description = description.replace(new RegExp(", ".concat(this.i18n.everyHour()), "g"), "");
749
743
  description = description.replace(new RegExp(this.i18n.commaEveryDay(), "g"), "");
750
744
  description = description.replace(/\, ?$/, "");
745
+ if (this.i18n.conciseVerbosityReplacements) {
746
+ for (var _i = 0, _a = Object.entries(this.i18n.conciseVerbosityReplacements()); _i < _a.length; _i++) {
747
+ var _b = _a[_i], key = _b[0], value = _b[1];
748
+ description = description.replace(new RegExp(key, "g"), value);
749
+ }
750
+ }
751
751
  }
752
752
  return description;
753
753
  };
@@ -2049,8 +2049,8 @@ var cronstrueI18n = {exports: {}};
2049
2049
  da.prototype.commaOnlyInX0 = function () {
2050
2050
  return ", kun i %s";
2051
2051
  };
2052
- da.prototype.commaOnlyOnX0 = function () {
2053
- return ", på %se";
2052
+ da.prototype.commaOnlyOnX0 = function (s) {
2053
+ return ", på enhver %s";
2054
2054
  };
2055
2055
  da.prototype.commaAndOnX0 = function () {
2056
2056
  return ", og på %s";
@@ -2387,7 +2387,7 @@ var cronstrueI18n = {exports: {}};
2387
2387
  return false;
2388
2388
  };
2389
2389
  en.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {
2390
- return "An error occured when generating the expression description. Check the cron expression syntax.";
2390
+ return "An error occurred when generating the expression description. Check the cron expression syntax.";
2391
2391
  };
2392
2392
  en.prototype.everyMinute = function () {
2393
2393
  return "every minute";
@@ -2543,6 +2543,9 @@ var cronstrueI18n = {exports: {}};
2543
2543
  "December",
2544
2544
  ];
2545
2545
  };
2546
+ en.prototype.atReboot = function () {
2547
+ return "Run once, at startup";
2548
+ };
2546
2549
  return en;
2547
2550
  }());
2548
2551
  exports.en = en;
@@ -3116,6 +3119,11 @@ var cronstrueI18n = {exports: {}};
3116
3119
  var fr = (function () {
3117
3120
  function fr() {
3118
3121
  }
3122
+ fr.prototype.conciseVerbosityReplacements = function () {
3123
+ return {
3124
+ "de le": "du",
3125
+ };
3126
+ };
3119
3127
  fr.prototype.atX0SecondsPastTheMinuteGt20 = function () {
3120
3128
  return null;
3121
3129
  };
@@ -3131,15 +3139,15 @@ var cronstrueI18n = {exports: {}};
3131
3139
  fr.prototype.use24HourTimeFormatByDefault = function () {
3132
3140
  return true;
3133
3141
  };
3142
+ fr.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {
3143
+ return "Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe.";
3144
+ };
3134
3145
  fr.prototype.everyMinute = function () {
3135
3146
  return "toutes les minutes";
3136
3147
  };
3137
3148
  fr.prototype.everyHour = function () {
3138
3149
  return "toutes les heures";
3139
3150
  };
3140
- fr.prototype.anErrorOccuredWhenGeneratingTheExpressionD = function () {
3141
- return "Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe.";
3142
- };
3143
3151
  fr.prototype.atSpace = function () {
3144
3152
  return "À ";
3145
3153
  };
@@ -3180,7 +3188,7 @@ var cronstrueI18n = {exports: {}};
3180
3188
  return "de %s à %s";
3181
3189
  };
3182
3190
  fr.prototype.atX0 = function () {
3183
- return "à %s";
3191
+ return "%s";
3184
3192
  };
3185
3193
  fr.prototype.commaEveryDay = function () {
3186
3194
  return ", tous les jours";
@@ -3260,6 +3268,9 @@ var cronstrueI18n = {exports: {}};
3260
3268
  fr.prototype.commaOnDayX0OfTheMonth = function () {
3261
3269
  return ", le %s du mois";
3262
3270
  };
3271
+ fr.prototype.commaEveryHour = function () {
3272
+ return ", chaque heure";
3273
+ };
3263
3274
  fr.prototype.commaEveryX0Years = function () {
3264
3275
  return ", tous les %s ans";
3265
3276
  };
@@ -8027,7 +8038,7 @@ const DailyCron = (props) => {
8027
8038
  props.onChange();
8028
8039
  };
8029
8040
  const translateFn = props.translate;
8030
- return (jsxs("div", Object.assign({ className: "tab-pane" }, { children: [jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: onClickDailyRadio }, { children: [jsx("input", { type: "radio", value: "1", name: "DailyRadio", checked: state.every, disabled: props.disabled }), jsx("span", { children: translateFn('Every') }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", maxLength: 2, onChange: onDayChange, value: props.value[3].split('/')[1] ? props.value[3].split('/')[1] : '' }), jsx("span", { children: translateFn('day(s)') })] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: onClickEveryWeekDay }, { children: [jsx("input", { type: "radio", value: "2", name: "EveryWeekDay", checked: !state.every, disabled: props.disabled }), jsx("span", { children: translateFn('Every week day') })] })), jsx("span", { children: translateFn('Start time') }), jsx(HourSelect, { onChange: onAtHourChange, value: props.value[2], disabled: props.disabled }), jsx(MinutesSelect, { onChange: onAtMinuteChange, value: props.value[1], disabled: props.disabled })] })));
8041
+ return (jsxs("div", Object.assign({ className: "tab-pane" }, { children: [jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "1", name: "DailyRadio", checked: state.every, onChange: onClickDailyRadio, disabled: props.disabled }), jsx("span", { children: translateFn('Every') }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", maxLength: 2, onChange: onDayChange, value: props.value[3].split('/')[1] ? props.value[3].split('/')[1] : '' }), jsx("span", { children: translateFn('day(s)') })] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "2", name: "EveryWeekDay", checked: !state.every, onChange: onClickEveryWeekDay, disabled: props.disabled }), jsx("span", { children: translateFn('Every week day') })] })), jsx("span", { children: translateFn('Start time') }), jsx(HourSelect, { onChange: onAtHourChange, value: props.value[2], disabled: props.disabled }), jsx(MinutesSelect, { onChange: onAtMinuteChange, value: props.value[1], disabled: props.disabled })] })));
8031
8042
  };
8032
8043
 
8033
8044
  const HourlyCron = (props) => {
@@ -8090,7 +8101,7 @@ const HourlyCron = (props) => {
8090
8101
  props.onChange();
8091
8102
  };
8092
8103
  const translateFn = props.translate;
8093
- return (jsx("div", Object.assign({ className: "tab-content" }, { children: jsxs("div", Object.assign({ className: "tab-pane active" }, { children: [jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: onClickEveryHourMinute }, { children: [jsx("input", { name: "EveryHourMinute", type: "radio", checked: state.every, disabled: props.disabled }), jsxs("span", { children: [translateFn('Every'), " "] }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", onChange: onHourChange, value: props.value[2].split('/')[1] ? props.value[2].split('/')[1] : '' }), jsx("span", { children: translateFn('hour') }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", onChange: onMinuteChange, value: props.value[1] }), jsx("span", { children: translateFn('minute(s)') })] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: onClickEverySpecificHour }, { children: [jsx("input", { name: "EverySpecificHour", type: "radio", checked: !state.every, disabled: props.disabled }), jsx("span", { children: translateFn('At') }), jsx(HourSelect, { disabled: props.disabled, onChange: onAtHourChange, value: props.value[2] }), jsx(MinutesSelect, { disabled: props.disabled, onChange: onAtMinuteChange, value: props.value[1] })] }))] })) })));
8104
+ return (jsx("div", Object.assign({ className: "tab-content" }, { children: jsxs("div", Object.assign({ className: "tab-pane active" }, { children: [jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { name: "EveryHourMinute", type: "radio", checked: state.every, onChange: onClickEveryHourMinute, disabled: props.disabled }), jsxs("span", { children: [translateFn('Every'), " "] }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", onChange: onHourChange, value: props.value[2].split('/')[1] ? props.value[2].split('/')[1] : '' }), jsx("span", { children: translateFn('hour') }), jsx("input", { readOnly: !state.every, disabled: props.disabled, type: "Number", onChange: onMinuteChange, value: props.value[1] }), jsx("span", { children: translateFn('minute(s)') })] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { name: "EverySpecificHour", type: "radio", checked: !state.every, onChange: onClickEverySpecificHour, disabled: props.disabled }), jsx("span", { children: translateFn('At') }), jsx(HourSelect, { disabled: props.disabled, onChange: onAtHourChange, value: props.value[2] }), jsx(MinutesSelect, { disabled: props.disabled, onChange: onAtMinuteChange, value: props.value[1] })] }))] })) })));
8094
8105
  };
8095
8106
 
8096
8107
  const WeeklyCron = (props) => {
@@ -8366,9 +8377,9 @@ const MonthlyCron = (props) => {
8366
8377
  ]);
8367
8378
  };
8368
8379
  const translateFn = props.translate;
8369
- return (jsxs("div", Object.assign({ className: "tab-pane" }, { children: [jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: () => onClickMonthlyOnceRadio() }, { children: [jsx("input", { type: "radio", value: "1", name: "MonthlyOnceRadio", checked: state.every === '1' ? true : false, disabled: props.disabled }), translateFn('Day'), jsx("input", { readOnly: state.every !== '1', type: "number", value: props.value[3], onChange: onDayChange, disabled: props.disabled }), translateFn('of every month(s)')] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: () => onClickLastDayOfEveryMonth() }, { children: [jsx("input", { type: "radio", value: "2", name: "LastDayOfEveryMonth", checked: state.every === '2' ? true : false, disabled: props.disabled }), translateFn('Last day of every month')] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: () => onClickLastWeekdayOfEveryMonth() }, { children: [jsx("input", { type: "radio", value: "3", name: "LastWeekdayOfEveryMonth", checked: state.every === '3' ? true : false, disabled: props.disabled }), translateFn('On the last weekday of every month')] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: () => onClickDaysBeforeEndOfMonth() }, { children: [jsx("input", { type: "radio", value: "4", name: "DaysBeforeEndOfMonth", checked: state.every === '4' ? true : false, disabled: props.disabled }), jsx("input", { readOnly: state.every !== '4', type: "number", value: props.value[3].split('-').length && props.value[3].split('-')[1]
8380
+ return (jsxs("div", Object.assign({ className: "tab-pane" }, { children: [jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "1", name: "MonthlyOnceRadio", checked: state.every === '1' ? true : false, onChange: () => onClickMonthlyOnceRadio(), disabled: props.disabled }), translateFn('Day'), jsx("input", { readOnly: state.every !== '1', type: "number", value: props.value[3], onChange: onDayChange, disabled: props.disabled }), translateFn('of every month(s)')] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "2", name: "LastDayOfEveryMonth", checked: state.every === '2' ? true : false, onChange: () => onClickLastDayOfEveryMonth(), disabled: props.disabled }), translateFn('Last day of every month')] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "3", name: "LastWeekdayOfEveryMonth", checked: state.every === '3' ? true : false, onChange: () => onClickLastWeekdayOfEveryMonth(), disabled: props.disabled }), translateFn('On the last weekday of every month')] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "4", name: "DaysBeforeEndOfMonth", checked: state.every === '4' ? true : false, onChange: () => onClickDaysBeforeEndOfMonth(), disabled: props.disabled }), jsx("input", { readOnly: state.every !== '4', type: "number", value: props.value[3].split('-').length && props.value[3].split('-')[1]
8370
8381
  ? props.value[3].split('-')[1]
8371
- : '', onChange: onLastDayChange, disabled: props.disabled }), translateFn('day(s) before the end of the month')] })), jsxs("div", Object.assign({ className: "well well-small cursor_pointer", onClick: () => onClickMonthlyMultipleRadio() }, { children: [jsx("input", { type: "radio", value: "5", name: "MonthlyMultipleRadio", checked: state.every === '5' ? true : false, disabled: props.disabled }), jsx(DaySelect, { onChange: (e) => onMultiDayChange(e), disabled: props.disabled, value: state.every === '5' ? props.value[3].split('!') : [], multi: true }), translateFn('Days of every month')] })), translateFn('Start time'), jsx(HourSelect, { onChange: onAtHourChange, value: props.value[2], disabled: props.disabled }), jsx(MinutesSelect, { onChange: onAtMinuteChange, value: props.value[1], disabled: props.disabled })] })));
8382
+ : '', onChange: onLastDayChange, disabled: props.disabled }), translateFn('day(s) before the end of the month')] })), jsxs("label", Object.assign({ className: "well well-small cursor_pointer" }, { children: [jsx("input", { type: "radio", value: "5", name: "MonthlyMultipleRadio", checked: state.every === '5' ? true : false, onChange: () => onClickMonthlyMultipleRadio(), disabled: props.disabled }), jsx(DaySelect, { onChange: (e) => onMultiDayChange(e), disabled: props.disabled, value: state.every === '5' ? props.value[3].split('!') : [], multi: true }), translateFn('Days of every month')] })), translateFn('Start time'), jsx(HourSelect, { onChange: onAtHourChange, value: props.value[2], disabled: props.disabled }), jsx(MinutesSelect, { onChange: onAtMinuteChange, value: props.value[1], disabled: props.disabled })] })));
8372
8383
  };
8373
8384
 
8374
8385
  const CustomCron = (props) => {
@@ -8542,7 +8553,7 @@ function styleInject(css, ref) {
8542
8553
  }
8543
8554
  }
8544
8555
 
8545
- var css_248z = ".cron_builder_bordering {\n border: 1px solid #ddd;\n border-top: none;\n text-align: center;\n padding: 10px;\n background: #fff;\n}\n.cron_builder_bordering input,\n.cron_builder_bordering select {\n width: 100px;\n margin-right: 10px;\n margin-left: 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n outline: none;\n padding: 0px 5px;\n min-height: 28px;\n}\n.df {\n display: flex;\n}\n.cron-builder-bg {\n background-color: #086090;\n color: white;\n text-align: center;\n margin-bottom: 4px;\n padding: 8px 0px;\n}\n.cron_builder_bordering select {\n background-color: white;\n width: 75px;\n cursor: pointer;\n padding: 4px 2px;\n border-radius: 4px;\n}\n.cron_builder_bordering select:disabled {\n background-color: #f5f5f5;\n cursor: default;\n}\n.cron_builder_bordering select option:hover {\n background-color: #086090;\n}\n.well-small input {\n width: auto !important;\n}\n.cron_builder_bordering input[type='radio'] {\n margin-top: 0px;\n vertical-align: middle;\n}\n.cron_builder {\n border: 1px solid #d0cbcb;\n padding: 5px;\n background-color: #dddef13d;\n width: 100%;\n max-width: 600px;\n}\n.text_align_left {\n text-align: left;\n}\n.cron_builder .nav li {\n cursor: pointer;\n flex: 1 1 10px;\n text-align: center;\n width: 10px;\n display: flex;\n padding: 0px 1px;\n}\n.cron_builder .nav li a {\n color: #337ab7;\n width: 100%;\n padding: 10px;\n display: inline-block;\n border-radius: 4px 4px 0px 0px;\n}\n.cron_builder .nav-tabs .nav-link:focus,\n.cron_builder .nav-tabs .nav-link:hover {\n border-color: transparent transparent transparent;\n background-color: #eeeeee;\n}\n.cron_builder .nav-tabs .nav-item.show .nav-link,\n.cron_builder .nav-tabs .nav-link.active {\n border-color: #dee2e6 #dee2e6 #fff;\n background-color: #ffffff;\n}\n.cron_builder .nav-tabs .nav-item.show .nav-link,\n.cron_builder .nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: #ffffff;\n border-color: transparent transparent #ffffff;\n cursor: not-allowed;\n}\n.cron_builder {\n font-size: 14px;\n}\n.cron_builder .well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);\n box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);\n}\n@media screen and (max-width: 767px) {\n .cron_builder .nav li {\n cursor: pointer;\n flex: 0 0 65px;\n text-align: center;\n }\n}\n\n/* ---- boostrap ----- */\n.cron_builder .nav.nav-tabs {\n list-style: none;\n display: flex;\n margin: 0 0;\n padding-left: 0;\n}\n.cron_builder .row {\n display: flex;\n}\n.cron_builder .col-sm-6 {\n flex: 0 0 50%;\n}\n.cron_builder .min_height_auto {\n min-height: auto !important;\n}\n.cron_builder {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n 'Noto Color Emoji';\n}\n.cron_builder .cursor_pointer {\n cursor: pointer;\n}\n\n.cron_builder .dropbtn {\n cursor: pointer;\n}\n\n.cron_builder .dropdown {\n position: relative;\n display: inline-block;\n}\n\n.cron_builder .dropdown-content {\n position: absolute;\n background-color: #f1f1f1;\n min-width: 140px;\n overflow: auto;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n left: 0;\n right: 0;\n text-align: left;\n max-height: 150px;\n overflow: auto;\n}\n\n@media screen and (min-height: 800px) {\n .cron_builder .dropdown-content {\n max-height: 200px;\n }\n}\n\n.cron_builder .dropdown-content .dropdown-item {\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n}\n\n.cron_builder .dropdown-content .dropdown-item:hover,\n.cron_builder .dropdown-content .dropdown-item-selected {\n background-color: #086090;\n color: white;\n}\n\n.cron_builder .mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n.cron_builder .mx-2 {\n margin-left: 10px !important;\n margin-right: 10px !important;\n}\n";
8556
+ var css_248z = ".cron_builder_bordering {\n border: 1px solid #ddd;\n border-top: none;\n text-align: center;\n padding: 10px;\n background: #fff;\n}\n.cron_builder_bordering input,\n.cron_builder_bordering select {\n width: 100px;\n margin-right: 10px;\n margin-left: 10px;\n border: 1px solid #ddd;\n border-radius: 4px;\n outline: none;\n padding: 0px 5px;\n min-height: 28px;\n}\n.df {\n display: flex;\n}\n.cron-builder-bg {\n background-color: #086090;\n color: white;\n text-align: center;\n margin-bottom: 4px;\n padding: 8px 0px;\n}\n.cron_builder_bordering select {\n background-color: white;\n width: 75px;\n cursor: pointer;\n padding: 4px 2px;\n border-radius: 4px;\n}\n.cron_builder_bordering select:disabled {\n background-color: #f5f5f5;\n cursor: default;\n}\n.cron_builder_bordering select option:hover {\n background-color: #086090;\n}\n.well-small input {\n width: auto !important;\n}\n.cron_builder_bordering input[type='radio'] {\n margin-top: 0px;\n vertical-align: middle;\n}\n.cron_builder {\n border: 1px solid #d0cbcb;\n padding: 5px;\n background-color: #dddef13d;\n width: 100%;\n max-width: 600px;\n}\n.text_align_left {\n text-align: left;\n}\n.cron_builder .nav li {\n cursor: pointer;\n flex: 1 1 10px;\n text-align: center;\n width: 10px;\n display: flex;\n padding: 0px 1px;\n}\n.cron_builder .nav li a {\n color: #337ab7;\n width: 100%;\n padding: 10px;\n display: inline-block;\n border-radius: 4px 4px 0px 0px;\n}\n.cron_builder .nav-tabs .nav-link:focus,\n.cron_builder .nav-tabs .nav-link:hover {\n border-color: transparent transparent transparent;\n background-color: #eeeeee;\n}\n.cron_builder .nav-tabs .nav-item.show .nav-link,\n.cron_builder .nav-tabs .nav-link.active {\n border-color: #dee2e6 #dee2e6 #fff;\n background-color: #ffffff;\n}\n.cron_builder .nav-tabs .nav-item.show .nav-link,\n.cron_builder .nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: #ffffff;\n border-color: transparent transparent #ffffff;\n cursor: not-allowed;\n}\n.cron_builder {\n font-size: 14px;\n}\n.cron_builder .well {\n display: block;\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);\n box-shadow: inset 0 1px 1px rgb(0 0 0 / 5%);\n}\n@media screen and (max-width: 767px) {\n .cron_builder .nav li {\n cursor: pointer;\n flex: 0 0 65px;\n text-align: center;\n }\n}\n\n/* ---- boostrap ----- */\n.cron_builder .nav.nav-tabs {\n list-style: none;\n display: flex;\n margin: 0 0;\n padding-left: 0;\n}\n.cron_builder .row {\n display: flex;\n}\n.cron_builder .col-sm-6 {\n flex: 0 0 50%;\n}\n.cron_builder .min_height_auto {\n min-height: auto !important;\n}\n.cron_builder {\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',\n sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';\n}\n.cron_builder .cursor_pointer {\n cursor: pointer;\n}\n\n.cron_builder .dropbtn {\n cursor: pointer;\n}\n\n.cron_builder .dropdown {\n position: relative;\n display: inline-block;\n}\n\n.cron_builder .dropdown-content {\n position: absolute;\n background-color: #f1f1f1;\n min-width: 140px;\n overflow: auto;\n box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);\n z-index: 1;\n left: 0;\n right: 0;\n text-align: left;\n max-height: 150px;\n overflow: auto;\n}\n\n@media screen and (min-height: 800px) {\n .cron_builder .dropdown-content {\n max-height: 200px;\n }\n}\n\n.cron_builder .dropdown-content .dropdown-item {\n color: black;\n padding: 12px 16px;\n text-decoration: none;\n display: block;\n}\n\n.cron_builder .dropdown-content .dropdown-item:hover,\n.cron_builder .dropdown-content .dropdown-item-selected {\n background-color: #086090;\n color: white;\n}\n\n.cron_builder .mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n.cron_builder .mx-2 {\n margin-left: 10px !important;\n margin-right: 10px !important;\n}\n";
8546
8557
  styleInject(css_248z);
8547
8558
 
8548
8559
  const defaultCron = '0 0 00 1/1 * ? *';