diff --git a/build/cron-gen.min.css b/build/cron-gen.min.css index 46845fae..8749d2a2 100644 --- a/build/cron-gen.min.css +++ b/build/cron-gen.min.css @@ -1 +1 @@ -.cron-gen-main .cron-gen-container{margin-top:10px}.cron-gen-main .cron-gen-container .cron-gen-radio{width:20px;display:inline-block}.cron-gen-main .cron-gen-container .cron-gen-select,.cron-gen-main .cron-gen-container .cron-gen-input,.cron-gen-main .cron-gen-container .cron-gen-checkbox{display:inline-block}.cron-gen-main .cron-gen-container .well-time-wrapper{padding-left:20px}.cron-gen-main .cron-gen-container .inline-block{display:inline-block}.cron-gen-main .cron-gen-container .minutes,.cron-gen-main .cron-gen-container .hours,.cron-gen-main .cron-gen-container .days,.cron-gen-main .cron-gen-container .seconds{width:70px}.cron-gen-main .cron-gen-container .months{width:120px}.cron-gen-main .cron-gen-container .month-days{width:130px}.cron-gen-main .cron-gen-container .months-small{width:60px}.cron-gen-main .cron-gen-container .day-order-in-month{width:95px}.cron-gen-main .cron-gen-container .week-days{width:120px}.cron-gen-main .cron-gen-container .advanced-cron-gen-input{width:200px}.cron-gen-main .cron-gen-container .hour-types{width:70px} \ No newline at end of file +.cron-gen-main .cron-gen-container{margin-top:10px}.cron-gen-main .cron-gen-container .cron-gen-radio{width:20px;display:inline-block}.cron-gen-main .cron-gen-container .cron-gen-select,.cron-gen-main .cron-gen-container .cron-gen-input,.cron-gen-main .cron-gen-container .cron-gen-checkbox{display:inline-block;min-height:5px}.cron-gen-main .cron-gen-container .well-time-wrapper{padding-left:20px}.cron-gen-main .cron-gen-container .inline-block{display:inline-block}.cron-gen-main .cron-gen-container .minutes,.cron-gen-main .cron-gen-container .hours,.cron-gen-main .cron-gen-container .days,.cron-gen-main .cron-gen-container .seconds{width:70px}.cron-gen-main .cron-gen-container .months{width:120px}.cron-gen-main .cron-gen-container .month-days{width:130px}.cron-gen-main .cron-gen-container .months-small{width:60px}.cron-gen-main .cron-gen-container .day-order-in-month{width:95px}.cron-gen-main .cron-gen-container .week-days{width:120px}.cron-gen-main .cron-gen-container .advanced-cron-gen-input{width:200px}.cron-gen-main .cron-gen-container .hour-types{width:70px}.cron-gen-main .nav-tabs li a{margin-right:2px;line-height:1.5;border:1px solid #999;border-radius:4px 4px 0 0}.cron-gen-main .nav-tabs li a:hover,.cron-gen-main .nav-tabs li a:focus,.cron-gen-main .nav-tabs li a:active{border:1px solid #999;color:#2f3f53;background:#eee} \ No newline at end of file diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index aa8d9b9a..80742943 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,3 +1,4 @@ -!function(){"use strict";var e=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t=function(){function e(e,t){for(var n=0;n=12?"PM":"AM"}},{key:"hourToCron",value:function(e,t){return this.parsedOptions.use24HourTime?e:"AM"===t?12===e?0:e:12===e?12:e+12}},{key:"mergeDefaultOptions",value:function(e){return angular.extend({formInputClass:"form-control cron-gen-input",formSelectClass:"form-control cron-gen-select",formRadioClass:"form-control-static cron-gen-radio",formCheckboxClass:"form-control-static cron-gen-checkbox",hideMinutesTab:!1,hideHourlyTab:!1,hideDailyTab:!1,hideWeeklyTab:!1,hideMonthlyTab:!1,hideYearlyTab:!1,hideAdvancedTab:!0,use24HourTime:!1,hideSeconds:!1},e)}},{key:"regenerateCron",value:function(){var e=this;switch(this.currentState=c.DIRTY,this.activeTab){case"minutes":this.ngModel=this.state.minutes.seconds+" 0/"+this.state.minutes.minutes+" * 1/1 * ? *";break;case"hourly":this.ngModel=this.state.hourly.seconds+" "+this.state.hourly.minutes+" 0/"+this.state.hourly.hours+" 1/1 * ? *";break;case"daily":switch(this.state.daily.subTab){case"everyDays":this.ngModel=this.state.daily.everyDays.seconds+" "+this.state.daily.everyDays.minutes+" "+this.hourToCron(this.state.daily.everyDays.hours,this.state.daily.everyDays.hourType)+" 1/"+this.state.daily.everyDays.days+" * ? *";break;case"everyWeekDay":this.ngModel=this.state.daily.everyWeekDay.seconds+" "+this.state.daily.everyWeekDay.minutes+" "+this.hourToCron(this.state.daily.everyWeekDay.hours,this.state.daily.everyWeekDay.hourType)+" ? * MON-FRI *";break;default:throw"Invalid cron daily subtab selection"}break;case"weekly":var t=this.selectOptions.days.reduce(function(t,n){return e.state.weekly[n]?t.concat([n]):t},[]).join(",");this.ngModel=this.state.weekly.seconds+" "+this.state.weekly.minutes+" "+this.hourToCron(this.state.weekly.hours,this.state.weekly.hourType)+" ? * "+t+" *";break;case"monthly":switch(this.state.monthly.subTab){case"specificDay":this.ngModel=this.state.monthly.specificDay.seconds+" "+this.state.monthly.specificDay.minutes+" "+this.hourToCron(this.state.monthly.specificDay.hours,this.state.monthly.specificDay.hourType)+" "+this.state.monthly.specificDay.day+" 1/"+this.state.monthly.specificDay.months+" ? *";break;case"specificWeekDay":this.ngModel=this.state.monthly.specificWeekDay.seconds+" "+this.state.monthly.specificWeekDay.minutes+" "+this.hourToCron(this.state.monthly.specificWeekDay.hours,this.state.monthly.specificWeekDay.hourType)+" ? 1/"+this.state.monthly.specificWeekDay.months+" "+this.state.monthly.specificWeekDay.day+this.state.monthly.specificWeekDay.monthWeek+" *";break;default:throw"Invalid cron monthly subtab selection"}break;case"yearly":switch(this.state.yearly.subTab){case"specificMonthDay":this.ngModel=this.state.yearly.specificMonthDay.seconds+" "+this.state.yearly.specificMonthDay.minutes+" "+this.hourToCron(this.state.yearly.specificMonthDay.hours,this.state.yearly.specificMonthDay.hourType)+" "+this.state.yearly.specificMonthDay.day+" "+this.state.yearly.specificMonthDay.month+" ? *";break;case"specificMonthWeek":this.ngModel=this.state.yearly.specificMonthWeek.seconds+" "+this.state.yearly.specificMonthWeek.minutes+" "+this.hourToCron(this.state.yearly.specificMonthWeek.hours,this.state.yearly.specificMonthWeek.hourType)+" ? "+this.state.yearly.specificMonthWeek.month+" "+this.state.yearly.specificMonthWeek.day+this.state.yearly.specificMonthWeek.monthWeek+" *";break;default:throw"Invalid cron yearly subtab selection"}break;case"advanced":this.ngModel=this.state.advanced.expression;break;default:throw"Invalid cron active tab selection"}}},{key:"handleModelChange",value:function(e){var t=this;if(this.currentState===c.DIRTY)return void(this.currentState=c.CLEAN);this.currentState=c.CLEAN;var s=e.split(" ");if(6!==s.length&&7!==s.length)throw"Unsupported cron expression. Expression must be 6 or 7 segments";var a=n(s,6),r=a[0],i=a[1],l=a[2],o=a[3],d=a[4],h=a[5];if(e.match(/\d+ 0\/\d+ \* 1\/1 \* \? \*/))this.activeTab="minutes",this.state.minutes.minutes=parseInt(i.substring(2)),this.state.minutes.seconds=parseInt(r);else if(e.match(/\d+ \d+ 0\/\d+ 1\/1 \* \? \*/))this.activeTab="hourly",this.state.hourly.hours=parseInt(l.substring(2)),this.state.hourly.minutes=parseInt(i),this.state.hourly.seconds=parseInt(r);else if(e.match(/\d+ \d+ \d+ 1\/\d+ \* \? \*/)){this.activeTab="daily",this.state.daily.subTab="everyDays",this.state.daily.everyDays.days=parseInt(o.substring(2));var y=parseInt(l);this.state.daily.everyDays.hours=this.processHour(y),this.state.daily.everyDays.hourType=this.getHourType(y),this.state.daily.everyDays.minutes=parseInt(i),this.state.daily.everyDays.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ \? \* MON-FRI \*/)){this.activeTab="daily",this.state.daily.subTab="everyWeekDay";var u=parseInt(l);this.state.daily.everyWeekDay.hours=this.processHour(u),this.state.daily.everyWeekDay.hourType=this.getHourType(u),this.state.daily.everyWeekDay.minutes=parseInt(i),this.state.daily.everyWeekDay.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ \? \* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \*/)){this.activeTab="weekly",this.selectOptions.days.forEach(function(e){return t.state.weekly[e]=!1}),h.split(",").forEach(function(e){return t.state.weekly[e]=!0});var p=parseInt(l);this.state.weekly.hours=this.processHour(p),this.state.weekly.hourType=this.getHourType(p),this.state.weekly.minutes=parseInt(i),this.state.weekly.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ (\d+|L|LW|1W) 1\/\d+ \? \*/)){this.activeTab="monthly",this.state.monthly.subTab="specificDay",this.state.monthly.specificDay.day=o,this.state.monthly.specificDay.months=parseInt(d.substring(2));var m=parseInt(l);this.state.monthly.specificDay.hours=this.processHour(m),this.state.monthly.specificDay.hourType=this.getHourType(m),this.state.monthly.specificDay.minutes=parseInt(i),this.state.monthly.specificDay.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ \? 1\/\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)){var g=h.substr(0,3),b=h.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=b,this.state.monthly.specificWeekDay.day=g,this.state.monthly.specificWeekDay.months=parseInt(d.substring(2));var $=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour($),this.state.monthly.specificWeekDay.hourType=this.getHourType($),this.state.monthly.specificWeekDay.minutes=parseInt(i),this.state.monthly.specificWeekDay.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ (\d+|L|LW|1W) \d+ \? \*/)){this.activeTab="yearly",this.state.yearly.subTab="specificMonthDay",this.state.yearly.specificMonthDay.month=parseInt(d),this.state.yearly.specificMonthDay.day=o;var v=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(v),this.state.yearly.specificMonthDay.hourType=this.getHourType(v),this.state.yearly.specificMonthDay.minutes=parseInt(i),this.state.yearly.specificMonthDay.seconds=parseInt(r)}else if(e.match(/\d+ \d+ \d+ \? \d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)){var f=h.substr(0,3),T=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=T,this.state.yearly.specificMonthWeek.day=f,this.state.yearly.specificMonthWeek.month=parseInt(d);var D=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(D),this.state.yearly.specificMonthWeek.hourType=this.getHourType(D),this.state.yearly.specificMonthWeek.minutes=parseInt(i),this.state.yearly.specificMonthWeek.seconds=parseInt(r)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),d=/^\s*($|#|\w+\s*=|(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?(?:,(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?)*)\s+(\?|\*|(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?(?:,(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?)*)\s+(\?|\*|(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\?|\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\s+(\?|\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?)*|\?|\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\s)+(\?|\*|(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?(?:,(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?)*))$/,h=function(){function n(){e(this,n)}return t(n,[{key:"isValid",value:function(e,t){var n=t.toUpperCase();switch(e){case"quartz":return!!n.match(d);default:throw"Desired cron format ("+e+") is not available"}}},{key:"appendInt",value:function(e){var t=""+e;if(t.length>1){var n=t.charAt(t.length-2);if("1"===n)return"th"}var s=t.charAt(t.length-1);switch(s){case"1":return"st";case"2":return"nd";case"3":return"rd";default:return"th"}}},{key:"padNumber",value:function(e){return 1===(""+e).length?"0"+e:""+e}},{key:"range",value:function(e,t){if("undefined"==typeof t&&(t=e,e=0),e<0||t<0)throw"Range values must be positive values";return t>e?[].concat(s(new Array(t-e))).map(function(t,n){return n+e}):e\n \n \n \n \n'),e.put("angular-cron-gen/cron-gen.html",'\n
\n \n
\n
\n
\n
\n
\n
\n Every\n \n minute(s)\n on second\n \n
\n
\n
\n
\n Every\n \n hour(s) on minute\n \n and second\n \n
\n
\n
\n
\n \n Every\n \n day(s) at\n \n \n
\n
\n \n Every week day (Monday through Friday) at\n \n \n
\n
\n
\n
\n
\n \n Monday\n
\n
\n \n Tuesday\n
\n
\n \n Wednesday\n
\n
\n \n Thursday\n
\n
\n \n Friday\n
\n
\n \n Saturday\n
\n
\n \n Sunday\n
\n
\n Start time\n \n \n
\n
\n
\n \n On the\n \n of every\n \n month(s) at\n \n \n
\n
\n \n On the\n \n \n of every\n \n month(s) at\n \n \n
\n\n
\n
\n
\n \n Every\n \n on the\n \n at\n \n \n
\n
\n \n On the\n \n \n of\n \n at\n \n \n
\n
\n
\n Cron Expression\n \n\n

More details about how to create these expressions can be found here.

\n
\n
\n
\n
\n
\n
\n'); +!function(){"use strict";var e=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t=function(){function e(e,t){for(var n=0;n=12?"PM":"AM"}},{key:"hourToCron",value:function(e,t){return this.parsedOptions.use24HourTime?e:"AM"===t?12===e?0:e:12===e?12:e+12}},{key:"mergeDefaultOptions",value:function(e){return angular.extend({formInputClass:"form-control cron-gen-input",formSelectClass:"form-control cron-gen-select",formRadioClass:"form-control-static cron-gen-radio",formCheckboxClass:"form-control-static cron-gen-checkbox",hideMinutesTab:!1,hideHourlyTab:!1,hideDailyTab:!1,hideWeeklyTab:!1,hideMonthlyTab:!1,hideYearlyTab:!1,hideAdvancedTab:!0,use24HourTime:!1,hideSeconds:!1,language:"en"},e)}},{key:"regenerateCron",value:function(){var e=this;switch(this.currentState=r.DIRTY,this.activeTab){case"minutes":this.ngModel=this.state.minutes.seconds+" 0/"+this.state.minutes.minutes+" * 1/1 * ? *";break;case"hourly":this.ngModel=this.state.hourly.seconds+" "+this.state.hourly.minutes+" 0/"+this.state.hourly.hours+" 1/1 * ? *";break;case"daily":switch(this.state.daily.subTab){case"everyDays":this.ngModel=this.state.daily.everyDays.seconds+" "+this.state.daily.everyDays.minutes+" "+this.hourToCron(this.state.daily.everyDays.hours,this.state.daily.everyDays.hourType)+" 1/"+this.state.daily.everyDays.days+" * ? *";break;case"everyWeekDay":this.ngModel=this.state.daily.everyWeekDay.seconds+" "+this.state.daily.everyWeekDay.minutes+" "+this.hourToCron(this.state.daily.everyWeekDay.hours,this.state.daily.everyWeekDay.hourType)+" ? * MON-FRI *";break;default:throw"Invalid cron daily subtab selection"}break;case"weekly":var t=this.selectOptions.days.reduce(function(t,n){return e.state.weekly[n]?t.concat([n]):t},[]).join(",");this.ngModel=this.state.weekly.seconds+" "+this.state.weekly.minutes+" "+this.hourToCron(this.state.weekly.hours,this.state.weekly.hourType)+" ? * "+t+" *";break;case"monthly":switch(this.state.monthly.subTab){case"specificDay":this.ngModel=this.state.monthly.specificDay.seconds+" "+this.state.monthly.specificDay.minutes+" "+this.hourToCron(this.state.monthly.specificDay.hours,this.state.monthly.specificDay.hourType)+" "+this.state.monthly.specificDay.day+" 1/"+this.state.monthly.specificDay.months+" ? *";break;case"specificWeekDay":this.ngModel=this.state.monthly.specificWeekDay.seconds+" "+this.state.monthly.specificWeekDay.minutes+" "+this.hourToCron(this.state.monthly.specificWeekDay.hours,this.state.monthly.specificWeekDay.hourType)+" ? 1/"+this.state.monthly.specificWeekDay.months+" "+this.state.monthly.specificWeekDay.day+this.state.monthly.specificWeekDay.monthWeek+" *";break;default:throw"Invalid cron monthly subtab selection"}break;case"yearly":switch(this.state.yearly.subTab){case"specificMonthDay":this.ngModel=this.state.yearly.specificMonthDay.seconds+" "+this.state.yearly.specificMonthDay.minutes+" "+this.hourToCron(this.state.yearly.specificMonthDay.hours,this.state.yearly.specificMonthDay.hourType)+" "+this.state.yearly.specificMonthDay.day+" "+this.state.yearly.specificMonthDay.month+" ? *";break;case"specificMonthWeek":this.ngModel=this.state.yearly.specificMonthWeek.seconds+" "+this.state.yearly.specificMonthWeek.minutes+" "+this.hourToCron(this.state.yearly.specificMonthWeek.hours,this.state.yearly.specificMonthWeek.hourType)+" ? "+this.state.yearly.specificMonthWeek.month+" "+this.state.yearly.specificMonthWeek.day+this.state.yearly.specificMonthWeek.monthWeek+" *";break;default:throw"Invalid cron yearly subtab selection"}break;case"advanced":this.ngModel=this.state.advanced.expression;break;default:throw"Invalid cron active tab selection"}}},{key:"handleModelChange",value:function(e){var t=this;if(this.currentState===r.DIRTY)return void(this.currentState=r.CLEAN);this.currentState=r.CLEAN;var s=e.split(" ");if(6!==s.length&&7!==s.length)throw"Unsupported cron expression. Expression must be 6 or 7 segments";var a=n(s,6),i=a[0],l=a[1],c=a[2],o=a[3],h=a[4],d=a[5];if(e.match(/\d+ 0\/\d+ \* 1\/1 \* \? \*/))this.activeTab="minutes",this.state.minutes.minutes=parseInt(l.substring(2)),this.state.minutes.seconds=parseInt(i);else if(e.match(/\d+ \d+ 0\/\d+ 1\/1 \* \? \*/))this.activeTab="hourly",this.state.hourly.hours=parseInt(c.substring(2)),this.state.hourly.minutes=parseInt(l),this.state.hourly.seconds=parseInt(i);else if(e.match(/\d+ \d+ \d+ 1\/\d+ \* \? \*/)){this.activeTab="daily",this.state.daily.subTab="everyDays",this.state.daily.everyDays.days=parseInt(o.substring(2));var y=parseInt(c);this.state.daily.everyDays.hours=this.processHour(y),this.state.daily.everyDays.hourType=this.getHourType(y),this.state.daily.everyDays.minutes=parseInt(l),this.state.daily.everyDays.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ \? \* MON-FRI \*/)){this.activeTab="daily",this.state.daily.subTab="everyWeekDay";var u=parseInt(c);this.state.daily.everyWeekDay.hours=this.processHour(u),this.state.daily.everyWeekDay.hourType=this.getHourType(u),this.state.daily.everyWeekDay.minutes=parseInt(l),this.state.daily.everyWeekDay.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ \? \* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \*/)){this.activeTab="weekly",this.selectOptions.days.forEach(function(e){return t.state.weekly[e]=!1}),d.split(",").forEach(function(e){return t.state.weekly[e]=!0});var p=parseInt(c);this.state.weekly.hours=this.processHour(p),this.state.weekly.hourType=this.getHourType(p),this.state.weekly.minutes=parseInt(l),this.state.weekly.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ (\d+|L|LW|1W) 1\/\d+ \? \*/)){this.activeTab="monthly",this.state.monthly.subTab="specificDay",this.state.monthly.specificDay.day=o,this.state.monthly.specificDay.months=parseInt(h.substring(2));var m=parseInt(c);this.state.monthly.specificDay.hours=this.processHour(m),this.state.monthly.specificDay.hourType=this.getHourType(m),this.state.monthly.specificDay.minutes=parseInt(l),this.state.monthly.specificDay.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ \? 1\/\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)){var g=d.substr(0,3),T=d.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=T,this.state.monthly.specificWeekDay.day=g,this.state.monthly.specificWeekDay.months=parseInt(h.substring(2));var b=parseInt(c);this.state.monthly.specificWeekDay.hours=this.processHour(b),this.state.monthly.specificWeekDay.hourType=this.getHourType(b),this.state.monthly.specificWeekDay.minutes=parseInt(l),this.state.monthly.specificWeekDay.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ (\d+|L|LW|1W) \d+ \? \*/)){this.activeTab="yearly",this.state.yearly.subTab="specificMonthDay",this.state.yearly.specificMonthDay.month=parseInt(h),this.state.yearly.specificMonthDay.day=o;var $=parseInt(c);this.state.yearly.specificMonthDay.hours=this.processHour($),this.state.yearly.specificMonthDay.hourType=this.getHourType($),this.state.yearly.specificMonthDay.minutes=parseInt(l),this.state.yearly.specificMonthDay.seconds=parseInt(i)}else if(e.match(/\d+ \d+ \d+ \? \d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \*/)){var D=d.substr(0,3),f=d.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=f,this.state.yearly.specificMonthWeek.day=D,this.state.yearly.specificMonthWeek.month=parseInt(h);var v=parseInt(c);this.state.yearly.specificMonthWeek.hours=this.processHour(v),this.state.yearly.specificMonthWeek.hourType=this.getHourType(v),this.state.yearly.specificMonthWeek.minutes=parseInt(l),this.state.yearly.specificMonthWeek.seconds=parseInt(i)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),l=/^\s*($|#|\w+\s*=|(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?(?:,(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?)*)\s+(\?|\*|(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?(?:,(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?)*)\s+(\?|\*|(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\?|\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\s+(\?|\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?)*|\?|\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\s)+(\?|\*|(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?(?:,(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?)*))$/,c=function(){function n(t){e(this,n),this.filter=t}return n.$inject=["$filter"],t(n,[{key:"isValid",value:function(e,t){var n=t.toUpperCase();switch(e){case"quartz":return!!n.match(l);default:throw"Desired cron format ("+e+") is not available"}}},{key:"appendInt",value:function(e){var t=""+e;if(t.length>1){if("1"===t.charAt(t.length-2))return this.filter("translate")("CARDINAL_PREFIX")}switch(t.charAt(t.length-1)){case"1":return this.filter("translate")("FIRST_PREFIX");case"2":return this.filter("translate")("SECOND_PREFIX");case"3":return this.filter("translate")("THIRD_PREFIX");default:return this.filter("translate")("CARDINAL_PREFIX")}}},{key:"padNumber",value:function(e){return 1===(""+e).length?"0"+e:""+e}},{key:"range",value:function(e,t){if(void 0===t&&(t=e,e=0),e<0||t<0)throw"Range values must be positive values";return t>e?[].concat(s(new Array(t-e))).map(function(t,n){return n+e}):e\n \n \n \n \n'), +e.put("angular-cron-gen/cron-gen.html",'\n
\n \n
\n
\n
\n
\n
\n
\n {{ \'EVERY\' | translate}}\n \n {{ \'MINUTE\' | translate}}\n {{ \'ON_SECOND\' | translate }} \n \n
\n
\n
\n
\n {{ \'EVERY\' | translate}}\n \n {{ \'HOUR_ON_MINUTE\' | translate}}\n \n {{ \'AND_SECOND\' | translate}}\n \n
\n
\n
\n
\n \n {{ \'EVERY\' | translate}}\n \n {{ \'DAY_AT\' | translate}}\n \n \n
\n
\n \n {{ \'EVERY_WEEK_WORKING_DAY\' | translate}}\n \n \n
\n
\n
\n
\n
\n \n {{ \'MONDAY\' | translate}}\n
\n
\n \n {{ \'TUESDAY\' | translate}}\n
\n
\n \n {{ \'WEDNESDAY\' | translate}}\n
\n
\n \n {{ \'THURSDAY\' | translate}}\n
\n
\n \n {{ \'FRIDAY\' | translate}}\n
\n
\n \n {{ \'SATURDAY\' | translate}}\n
\n
\n \n {{ \'SUNDAY\' | translate}}\n
\n
\n {{ \'START_TIME\' | translate}}\n \n \n
\n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'OF_EVERY\' | translate}}\n \n {{ \'MONTHS_AT\' | translate}}\n \n \n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF_EVERY\' | translate}}\n \n {{ \'MONTHS_AT\' | translate}}\n \n \n
\n\n
\n
\n
\n \n {{ \'EVERY_MONTH\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n \n {{ \'EVERY_MONTH\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n
\n {{ \'CRON_EXPRESSION\' | translate}}\n \n
\n
\n
\n
\n
\n
\n') }]); //# sourceMappingURL=cron-gen.min.js.map diff --git a/build/cron-gen.min.js.map b/build/cron-gen.min.js.map index 8c04765f..4a8fadf3 100644 --- a/build/cron-gen.min.js.map +++ b/build/cron-gen.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["cron-gen.module.js","templates.js"],"names":["classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","value","err","Array","isArray","toConsumableArray","arr2","from","ACCEPTABLE_CRON_FORMATS","DAY_LOOKUPS","SUN","MON","TUE","WED","THU","FRI","SAT","MONTH_WEEK_LOOKUPS","#1","#2","#3","#4","#5","L","MONTH_LOOKUPS","1","2","3","4","5","6","7","8","9","10","11","12","States","INIT","DIRTY","CLEAN","CronGenComponent","$scope","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","angular","extend","cronFormat","currentState","activeTab","hideMinutesTab","hideHourlyTab","hideDailyTab","hideWeeklyTab","hideMonthlyTab","hideYearlyTab","hideAdvancedTab","selectOptions","state","minutes","seconds","hourly","hours","daily","subTab","everyDays","days","use24HourTime","hourType","everyWeekDay","weekly","monthly","specificDay","day","months","specificWeekDay","monthWeek","yearly","specificMonthDay","month","specificMonthWeek","advanced","expression","indexOf","$watch","cron","handleModelChange","_this2","formCtrl","name","ngModelCtrl","$validators","testCronExpr","isValid","$event","tab","preventDefault","ngDisabled","regenerateCron","monthWeekNumber","monthNumber","monthDay","appendInt","hour","formInputClass","formSelectClass","formRadioClass","formCheckboxClass","hideSeconds","_this3","ngModel","hourToCron","reduce","acc","concat","join","_this4","segments","split","_segments","dayOfMonth","dayOfWeek","match","parseInt","substring","parsedHours","processHour","getHourType","_parsedHours","forEach","weekDay","_parsedHours2","_parsedHours3","substr","_parsedHours4","_parsedHours5","_day","_monthWeek","_parsedHours6","QUARTZ_REGEX","CronGenService","formattedExpression","toUpperCase","number","secondToLastDigit","charAt","lastDigit","start","end","map","val","idx","range","monthWeeks","fullMinutes","monthDays","monthDaysWithLasts","CronGenTimeSelect","hourTypes","module","service","component","bindings","isDisabled","onChange","isRequired","model","selectClass","namePrefix","templateUrl","controller","require","ngDisabledCtrl","$attrs","$templateCache","put"],"mappings":"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","file":"cron-gen.min.js","sourcesContent":["(function () {\n'use strict';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar set = function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if (\"value\" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n};\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nvar ACCEPTABLE_CRON_FORMATS = ['quartz'];\nvar DAY_LOOKUPS = {\n 'SUN': 'Sunday',\n 'MON': 'Monday',\n 'TUE': 'Tuesday',\n 'WED': 'Wednesday',\n 'THU': 'Thursday',\n 'FRI': 'Friday',\n 'SAT': 'Saturday'\n};\nvar MONTH_WEEK_LOOKUPS = {\n '#1': 'First',\n '#2': 'Second',\n '#3': 'Third',\n '#4': 'Fourth',\n '#5': 'Fifth',\n 'L': 'Last'\n};\nvar MONTH_LOOKUPS = {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n};\n\nvar States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n};\n\nvar CronGenComponent = function () {\n function CronGenComponent($scope, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n this.parsedOptions = this.mergeDefaultOptions(this.options);\n\n angular.extend(this, {\n cronGenService: cronGenService,\n cronFormat: 'quartz',\n currentState: States.INIT,\n activeTab: function () {\n if (!_this.parsedOptions.hideMinutesTab) {\n return 'minutes';\n } else if (!_this.parsedOptions.hideHourlyTab) {\n return 'hourly';\n } else if (!_this.parsedOptions.hideDailyTab) {\n return 'daily';\n } else if (!_this.parsedOptions.hideWeeklyTab) {\n return 'weekly';\n } else if (!_this.parsedOptions.hideMonthlyTab) {\n return 'monthly';\n } else if (!_this.parsedOptions.hideYearlyTab) {\n return 'yearly';\n } else if (!_this.parsedOptions.hideAdvancedTab) {\n return 'advanced';\n }\n throw 'No tabs available to make active';\n }(),\n selectOptions: cronGenService.selectOptions(),\n state: {\n minutes: {\n minutes: 1,\n seconds: 0\n },\n hourly: {\n hours: 1,\n minutes: 0,\n seconds: 0\n },\n daily: {\n subTab: 'everyDays',\n everyDays: {\n days: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n everyWeekDay: {\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n weekly: {\n MON: true,\n TUE: false,\n WED: false,\n THU: false,\n FRI: false,\n SAT: false,\n SUN: false,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n monthly: {\n subTab: 'specificDay',\n specificDay: {\n day: '1',\n months: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n specificWeekDay: {\n monthWeek: '#1',\n day: 'MON',\n months: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n yearly: {\n subTab: 'specificMonthDay',\n specificMonthDay: {\n month: 1,\n day: '1',\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n specificMonthWeek: {\n monthWeek: '#1',\n day: 'MON',\n month: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n advanced: {\n expression: '0 15 10 L-2 * ?'\n }\n }\n });\n\n //Validate our opts\n if (ACCEPTABLE_CRON_FORMATS.indexOf(this.cronFormat) == -1) {\n throw 'Desired cron format (' + this.cronFormat + ') is not available';\n }\n\n //On model changes, update our state to reflect the user's input\n $scope.$watch('$ctrl.ngModel', function (cron) {\n return _this.handleModelChange(cron);\n });\n\n // Watch for option changes\n $scope.$watch('$ctrl.options', function (options) {\n return _this.parsedOptions = _this.mergeDefaultOptions(options);\n }, true);\n }\n\n createClass(CronGenComponent, [{\n key: '$onInit',\n value: function $onInit() {\n var _this2 = this;\n\n //If possible, add our cron expression validator to our form\n if (this.formCtrl && this.name) {\n this.ngModelCtrl.$validators.testCronExpr = function (expression) {\n return _this2.cronGenService.isValid(_this2.cronFormat, expression);\n };\n }\n }\n }, {\n key: 'setActiveTab',\n value: function setActiveTab($event, tab) {\n $event.preventDefault();\n if (!this.ngDisabled) {\n this.activeTab = tab;\n this.regenerateCron();\n }\n }\n }, {\n key: 'dayDisplay',\n value: function dayDisplay(day) {\n return DAY_LOOKUPS[day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n return MONTH_WEEK_LOOKUPS[monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n return MONTH_LOOKUPS[monthNumber];\n }\n }, {\n key: 'monthDayDisplay',\n value: function monthDayDisplay(monthDay) {\n if (monthDay === 'L') {\n return 'Last Day';\n } else if (monthDay === 'LW') {\n return 'Last Weekday';\n } else if (monthDay === '1W') {\n return 'First Weekday';\n } else {\n return '' + monthDay + this.cronGenService.appendInt(monthDay) + ' Day';\n }\n }\n }, {\n key: 'processHour',\n value: function processHour(hours) {\n if (this.parsedOptions.use24HourTime) {\n return hours;\n } else {\n return (hours + 11) % 12 + 1;\n }\n }\n }, {\n key: 'getHourType',\n value: function getHourType(hours) {\n return this.parsedOptions.use24HourTime ? null : hours >= 12 ? 'PM' : 'AM';\n }\n }, {\n key: 'hourToCron',\n value: function hourToCron(hour, hourType) {\n if (this.parsedOptions.use24HourTime) {\n return hour;\n } else {\n return hourType === 'AM' ? hour === 12 ? 0 : hour : hour === 12 ? 12 : hour + 12;\n }\n }\n }, {\n key: 'mergeDefaultOptions',\n value: function mergeDefaultOptions(options) {\n return angular.extend({\n formInputClass: 'form-control cron-gen-input',\n formSelectClass: 'form-control cron-gen-select',\n formRadioClass: 'form-control-static cron-gen-radio',\n formCheckboxClass: 'form-control-static cron-gen-checkbox',\n hideMinutesTab: false,\n hideHourlyTab: false,\n hideDailyTab: false,\n hideWeeklyTab: false,\n hideMonthlyTab: false,\n hideYearlyTab: false,\n hideAdvancedTab: true,\n use24HourTime: false,\n hideSeconds: false\n }, options);\n }\n }, {\n key: 'regenerateCron',\n value: function regenerateCron() {\n var _this3 = this;\n\n this.currentState = States.DIRTY;\n switch (this.activeTab) {\n case 'minutes':\n this.ngModel = this.state.minutes.seconds + ' 0/' + this.state.minutes.minutes + ' * 1/1 * ? *';\n break;\n case 'hourly':\n this.ngModel = this.state.hourly.seconds + ' ' + this.state.hourly.minutes + ' 0/' + this.state.hourly.hours + ' 1/1 * ? *';\n break;\n case 'daily':\n switch (this.state.daily.subTab) {\n case 'everyDays':\n this.ngModel = this.state.daily.everyDays.seconds + ' ' + this.state.daily.everyDays.minutes + ' ' + this.hourToCron(this.state.daily.everyDays.hours, this.state.daily.everyDays.hourType) + ' 1/' + this.state.daily.everyDays.days + ' * ? *';\n break;\n case 'everyWeekDay':\n this.ngModel = this.state.daily.everyWeekDay.seconds + ' ' + this.state.daily.everyWeekDay.minutes + ' ' + this.hourToCron(this.state.daily.everyWeekDay.hours, this.state.daily.everyWeekDay.hourType) + ' ? * MON-FRI *';\n break;\n default:\n throw 'Invalid cron daily subtab selection';\n }\n break;\n case 'weekly':\n var days = this.selectOptions.days.reduce(function (acc, day) {\n return _this3.state.weekly[day] ? acc.concat([day]) : acc;\n }, []).join(',');\n this.ngModel = this.state.weekly.seconds + ' ' + this.state.weekly.minutes + ' ' + this.hourToCron(this.state.weekly.hours, this.state.weekly.hourType) + ' ? * ' + days + ' *';\n break;\n case 'monthly':\n switch (this.state.monthly.subTab) {\n case 'specificDay':\n this.ngModel = this.state.monthly.specificDay.seconds + ' ' + this.state.monthly.specificDay.minutes + ' ' + this.hourToCron(this.state.monthly.specificDay.hours, this.state.monthly.specificDay.hourType) + ' ' + this.state.monthly.specificDay.day + ' 1/' + this.state.monthly.specificDay.months + ' ? *';\n break;\n case 'specificWeekDay':\n this.ngModel = this.state.monthly.specificWeekDay.seconds + ' ' + this.state.monthly.specificWeekDay.minutes + ' ' + this.hourToCron(this.state.monthly.specificWeekDay.hours, this.state.monthly.specificWeekDay.hourType) + ' ? 1/' + this.state.monthly.specificWeekDay.months + ' ' + this.state.monthly.specificWeekDay.day + this.state.monthly.specificWeekDay.monthWeek + ' *';\n break;\n default:\n throw 'Invalid cron monthly subtab selection';\n }\n break;\n case 'yearly':\n switch (this.state.yearly.subTab) {\n case 'specificMonthDay':\n this.ngModel = this.state.yearly.specificMonthDay.seconds + ' ' + this.state.yearly.specificMonthDay.minutes + ' ' + this.hourToCron(this.state.yearly.specificMonthDay.hours, this.state.yearly.specificMonthDay.hourType) + ' ' + this.state.yearly.specificMonthDay.day + ' ' + this.state.yearly.specificMonthDay.month + ' ? *';\n break;\n case 'specificMonthWeek':\n this.ngModel = this.state.yearly.specificMonthWeek.seconds + ' ' + this.state.yearly.specificMonthWeek.minutes + ' ' + this.hourToCron(this.state.yearly.specificMonthWeek.hours, this.state.yearly.specificMonthWeek.hourType) + ' ? ' + this.state.yearly.specificMonthWeek.month + ' ' + this.state.yearly.specificMonthWeek.day + this.state.yearly.specificMonthWeek.monthWeek + ' *';\n break;\n default:\n throw 'Invalid cron yearly subtab selection';\n }\n break;\n case 'advanced':\n this.ngModel = this.state.advanced.expression;\n break;\n default:\n throw 'Invalid cron active tab selection';\n }\n }\n }, {\n key: 'handleModelChange',\n value: function handleModelChange(cron) {\n var _this4 = this;\n\n if (this.currentState === States.DIRTY) {\n this.currentState = States.CLEAN;\n return;\n } else {\n this.currentState = States.CLEAN;\n }\n\n var segments = cron.split(' ');\n if (segments.length === 6 || segments.length === 7) {\n var _segments = slicedToArray(segments, 6),\n seconds = _segments[0],\n minutes = _segments[1],\n hours = _segments[2],\n dayOfMonth = _segments[3],\n month = _segments[4],\n dayOfWeek = _segments[5];\n\n if (cron.match(/\\d+ 0\\/\\d+ \\* 1\\/1 \\* \\? \\*/)) {\n this.activeTab = 'minutes';\n this.state.minutes.minutes = parseInt(minutes.substring(2));\n this.state.minutes.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ 0\\/\\d+ 1\\/1 \\* \\? \\*/)) {\n this.activeTab = 'hourly';\n this.state.hourly.hours = parseInt(hours.substring(2));\n this.state.hourly.minutes = parseInt(minutes);\n this.state.hourly.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ 1\\/\\d+ \\* \\? \\*/)) {\n this.activeTab = 'daily';\n this.state.daily.subTab = 'everyDays';\n this.state.daily.everyDays.days = parseInt(dayOfMonth.substring(2));\n var parsedHours = parseInt(hours);\n this.state.daily.everyDays.hours = this.processHour(parsedHours);\n this.state.daily.everyDays.hourType = this.getHourType(parsedHours);\n this.state.daily.everyDays.minutes = parseInt(minutes);\n this.state.daily.everyDays.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\* MON-FRI \\*/)) {\n this.activeTab = 'daily';\n this.state.daily.subTab = 'everyWeekDay';\n var _parsedHours = parseInt(hours);\n this.state.daily.everyWeekDay.hours = this.processHour(_parsedHours);\n this.state.daily.everyWeekDay.hourType = this.getHourType(_parsedHours);\n this.state.daily.everyWeekDay.minutes = parseInt(minutes);\n this.state.daily.everyWeekDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \\*/)) {\n this.activeTab = 'weekly';\n this.selectOptions.days.forEach(function (weekDay) {\n return _this4.state.weekly[weekDay] = false;\n });\n dayOfWeek.split(',').forEach(function (weekDay) {\n return _this4.state.weekly[weekDay] = true;\n });\n var _parsedHours2 = parseInt(hours);\n this.state.weekly.hours = this.processHour(_parsedHours2);\n this.state.weekly.hourType = this.getHourType(_parsedHours2);\n this.state.weekly.minutes = parseInt(minutes);\n this.state.weekly.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ (\\d+|L|LW|1W) 1\\/\\d+ \\? \\*/)) {\n this.activeTab = 'monthly';\n this.state.monthly.subTab = 'specificDay';\n this.state.monthly.specificDay.day = dayOfMonth;\n this.state.monthly.specificDay.months = parseInt(month.substring(2));\n var _parsedHours3 = parseInt(hours);\n this.state.monthly.specificDay.hours = this.processHour(_parsedHours3);\n this.state.monthly.specificDay.hourType = this.getHourType(_parsedHours3);\n this.state.monthly.specificDay.minutes = parseInt(minutes);\n this.state.monthly.specificDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? 1\\/\\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \\*/)) {\n var day = dayOfWeek.substr(0, 3);\n var monthWeek = dayOfWeek.substr(3);\n this.activeTab = 'monthly';\n this.state.monthly.subTab = 'specificWeekDay';\n this.state.monthly.specificWeekDay.monthWeek = monthWeek;\n this.state.monthly.specificWeekDay.day = day;\n this.state.monthly.specificWeekDay.months = parseInt(month.substring(2));\n var _parsedHours4 = parseInt(hours);\n this.state.monthly.specificWeekDay.hours = this.processHour(_parsedHours4);\n this.state.monthly.specificWeekDay.hourType = this.getHourType(_parsedHours4);\n this.state.monthly.specificWeekDay.minutes = parseInt(minutes);\n this.state.monthly.specificWeekDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ (\\d+|L|LW|1W) \\d+ \\? \\*/)) {\n this.activeTab = 'yearly';\n this.state.yearly.subTab = 'specificMonthDay';\n this.state.yearly.specificMonthDay.month = parseInt(month);\n this.state.yearly.specificMonthDay.day = dayOfMonth;\n var _parsedHours5 = parseInt(hours);\n this.state.yearly.specificMonthDay.hours = this.processHour(_parsedHours5);\n this.state.yearly.specificMonthDay.hourType = this.getHourType(_parsedHours5);\n this.state.yearly.specificMonthDay.minutes = parseInt(minutes);\n this.state.yearly.specificMonthDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \\*/)) {\n var _day = dayOfWeek.substr(0, 3);\n var _monthWeek = dayOfWeek.substr(3);\n this.activeTab = 'yearly';\n this.state.yearly.subTab = 'specificMonthWeek';\n this.state.yearly.specificMonthWeek.monthWeek = _monthWeek;\n this.state.yearly.specificMonthWeek.day = _day;\n this.state.yearly.specificMonthWeek.month = parseInt(month);\n var _parsedHours6 = parseInt(hours);\n this.state.yearly.specificMonthWeek.hours = this.processHour(_parsedHours6);\n this.state.yearly.specificMonthWeek.hourType = this.getHourType(_parsedHours6);\n this.state.yearly.specificMonthWeek.minutes = parseInt(minutes);\n this.state.yearly.specificMonthWeek.seconds = parseInt(seconds);\n } else {\n this.activeTab = 'advanced';\n this.state.advanced.expression = cron;\n }\n } else {\n throw 'Unsupported cron expression. Expression must be 6 or 7 segments';\n }\n }\n }]);\n return CronGenComponent;\n}();\n\nvar QUARTZ_REGEX = /^\\s*($|#|\\w+\\s*=|(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?(?:,(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?)*)\\s+(\\?|\\*|(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?(?:,(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?)*)\\s+(\\?|\\*|(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\\?|\\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\\s+(\\?|\\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\\/|\\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\\/|\\,|#)(?:[1-5]))?(?:L)?)*|\\?|\\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\\s)+(\\?|\\*|(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?(?:,(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?)*))$/;\n\nvar CronGenService = function () {\n function CronGenService() {\n classCallCheck(this, CronGenService);\n }\n\n createClass(CronGenService, [{\n key: 'isValid',\n value: function isValid(cronFormat, expression) {\n var formattedExpression = expression.toUpperCase();\n switch (cronFormat) {\n case 'quartz':\n return !!formattedExpression.match(QUARTZ_REGEX);\n default:\n throw 'Desired cron format (' + cronFormat + ') is not available';\n }\n }\n }, {\n key: 'appendInt',\n value: function appendInt(number) {\n var value = '' + number;\n if (value.length > 1) {\n var secondToLastDigit = value.charAt(value.length - 2);\n if (secondToLastDigit === '1') {\n return \"th\";\n }\n }\n var lastDigit = value.charAt(value.length - 1);\n switch (lastDigit) {\n case '1':\n return \"st\";\n case '2':\n return \"nd\";\n case '3':\n return \"rd\";\n default:\n return \"th\";\n }\n }\n }, {\n key: 'padNumber',\n value: function padNumber(number) {\n return ('' + number).length === 1 ? '0' + number : '' + number;\n }\n }, {\n key: 'range',\n value: function range(start, end) {\n if (typeof end === 'undefined') {\n end = start;\n start = 0;\n }\n\n if (start < 0 || end < 0) throw 'Range values must be positive values';\n\n if (end > start) {\n return [].concat(toConsumableArray(new Array(end - start))).map(function (val, idx) {\n return idx + start;\n });\n } else if (start < end) {\n return [].concat(toConsumableArray(new Array(start - end))).map(function (val, idx) {\n return end - idx;\n });\n } else return new Array();\n }\n }, {\n key: 'selectOptions',\n value: function selectOptions() {\n return {\n months: this.range(1, 13),\n monthWeeks: ['#1', '#2', '#3', '#4', '#5', 'L'],\n days: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\n minutes: this.range(1, 60),\n fullMinutes: this.range(60),\n seconds: this.range(60),\n hours: this.range(1, 24),\n monthDays: this.range(1, 32),\n monthDaysWithLasts: ['1W'].concat(toConsumableArray([].concat(toConsumableArray(new Array(31))).map(function (val, idx) {\n return '' + (idx + 1);\n })), ['LW', 'L'])\n };\n }\n }]);\n return CronGenService;\n}();\n\nvar CronGenTimeSelect = function CronGenTimeSelect($scope, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenTimeSelect);\n this.cronGenService = cronGenService;\n\n this.selectOptions = {\n minutes: cronGenService.range(60),\n seconds: cronGenService.range(60),\n hourTypes: ['AM', 'PM']\n };\n\n $scope.$watch('$ctrl.use24HourTime', function () {\n _this.selectOptions.hours = _this.use24HourTime ? _this.cronGenService.range(24) : _this.cronGenService.range(1, 13);\n });\n};\n\nangular.module('angular-cron-gen', []).service('cronGenService', CronGenService).component('cronGenTimeSelect', {\n bindings: {\n isDisabled: '<',\n onChange: '&',\n isRequired: '<',\n model: '=',\n selectClass: '<',\n use24HourTime: '<',\n hideSeconds: '<',\n namePrefix: '@'\n },\n templateUrl: 'angular-cron-gen/cron-gen-time-select.html',\n controller: CronGenTimeSelect\n}).component('cronGen', {\n bindings: {\n ngModel: '=',\n ngDisabled: '<',\n options: '<',\n cronFormat: '@',\n templateUrl: '@',\n name: '@'\n },\n require: {\n ngModelCtrl: 'ngModel',\n ngDisabledCtrl: '?ngDisabled',\n formCtrl: '^?form'\n },\n templateUrl: function templateUrl($attrs) {\n 'ngInject';\n\n return $attrs.templateUrl || 'angular-cron-gen/cron-gen.html';\n },\n\n controller: CronGenComponent\n});\n\n}());\n","angular.module('angular-cron-gen').run(['$templateCache', function($templateCache) {$templateCache.put('angular-cron-gen/cron-gen-time-select.html','
\\n \\n \\n \\n \\n
');\n$templateCache.put('angular-cron-gen/cron-gen.html','\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n Every\\n \\n minute(s)\\n on second\\n \\n
\\n
\\n
\\n
\\n Every\\n \\n hour(s) on minute\\n \\n and second\\n \\n
\\n
\\n
\\n
\\n \\n Every\\n \\n day(s) at\\n \\n \\n
\\n
\\n \\n Every week day (Monday through Friday) at\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n Monday\\n
\\n
\\n \\n Tuesday\\n
\\n
\\n \\n Wednesday\\n
\\n
\\n \\n Thursday\\n
\\n
\\n \\n Friday\\n
\\n
\\n \\n Saturday\\n
\\n
\\n \\n Sunday\\n
\\n
\\n Start time\\n \\n \\n
\\n
\\n
\\n \\n On the\\n \\n of every\\n \\n month(s) at\\n \\n \\n
\\n
\\n \\n On the\\n \\n \\n of every\\n \\n month(s) at\\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n Every\\n \\n on the\\n \\n at\\n \\n \\n
\\n
\\n \\n On the\\n \\n \\n of\\n \\n at\\n \\n \\n
\\n
\\n
\\n Cron Expression\\n \\n\\n

More details about how to create these expressions can be found here.

\\n
\\n
\\n
\\n
\\n
\\n
\\n');}]);"],"sourceRoot":"/source/"} \ No newline at end of file +{"version":3,"sources":["cron-gen.module.js","templates.js"],"names":["classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","undefined","_s","_i","Symbol","iterator","next","done","push","value","err","Array","isArray","toConsumableArray","arr2","from","ACCEPTABLE_CRON_FORMATS","States","INIT","DIRTY","CLEAN","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","translate","cronFormat","currentState","activeTab","hideMinutesTab","hideHourlyTab","hideDailyTab","hideWeeklyTab","hideMonthlyTab","hideYearlyTab","hideAdvancedTab","selectOptions","state","minutes","seconds","hourly","hours","daily","subTab","everyDays","days","use24HourTime","hourType","everyWeekDay","weekly","MON","TUE","WED","THU","FRI","SAT","SUN","monthly","specificDay","day","months","specificWeekDay","monthWeek","yearly","specificMonthDay","month","specificMonthWeek","advanced","expression","indexOf","$watch","cron","handleModelChange","optionsChanged","bind","_this2","formCtrl","name","ngModelCtrl","$validators","testCronExpr","isValid","$event","tab","preventDefault","ngDisabled","regenerateCron","monthWeekNumber","monthNumber","monthDay","appendInt","hour","formInputClass","formSelectClass","formRadioClass","formCheckboxClass","hideSeconds","_this3","ngModel","hourToCron","reduce","acc","concat","join","_this4","segments","split","_segments","dayOfMonth","dayOfWeek","match","parseInt","substring","parsedHours","processHour","getHourType","_parsedHours","forEach","weekDay","_parsedHours2","_parsedHours3","substr","_parsedHours4","_parsedHours5","_day","_monthWeek","_parsedHours6","QUARTZ_REGEX","CronGenService","formattedExpression","toUpperCase","number","charAt","start","end","map","val","idx","range","monthWeeks","fullMinutes","monthDays","monthDaysWithLasts","CronGenTimeSelect","hourTypes","module","config","$translateProvider","translations","MINUTES","HOURLY","DAILY","WEEKLY","MONTHLY","YEARLY","ADVANCED","EVERY","EVERY_MONTH","MINUTE","ON_SECOND","HOUR_ON_MINUTE","AND_SECOND","DAY_AT","EVERY_WEEK_WORKING_DAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY","START_TIME","ON_THE","ON_THE_SMALL","OF_EVERY","MONTHS_AT","AT","OF","CRON_EXPRESSION","MORE_DETAILS","HERE","LAST_DAY","LAST_WEEKDAY","FIRST_WEEKDAY","DAY","FIRST_PREFIX","SECOND_PREFIX","THIRD_PREFIX","CARDINAL_PREFIX","FIRST","SECOND","THIRD","FOURTH","FIFTH","LAST","JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER","service","component","bindings","isDisabled","onChange","isRequired","model","selectClass","namePrefix","templateUrl","controller","require","ngDisabledCtrl","$attrs","$templateCache","put"],"mappings":"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","file":"cron-gen.min.js","sourcesContent":["(function () {\n'use strict';\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\nvar ACCEPTABLE_CRON_FORMATS = ['quartz'];\nvar States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n};\n\nvar CronGenComponent = function () {\n function CronGenComponent($scope, $translate, $filter, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n this.parsedOptions = this.mergeDefaultOptions(this.options);\n\n $translate.use(this.parsedOptions.language);\n\n angular.extend(this, {\n cronGenService: cronGenService,\n filter: $filter,\n translate: $translate,\n cronFormat: 'quartz',\n currentState: States.INIT,\n activeTab: function () {\n if (!_this.parsedOptions.hideMinutesTab) {\n return 'minutes';\n } else if (!_this.parsedOptions.hideHourlyTab) {\n return 'hourly';\n } else if (!_this.parsedOptions.hideDailyTab) {\n return 'daily';\n } else if (!_this.parsedOptions.hideWeeklyTab) {\n return 'weekly';\n } else if (!_this.parsedOptions.hideMonthlyTab) {\n return 'monthly';\n } else if (!_this.parsedOptions.hideYearlyTab) {\n return 'yearly';\n } else if (!_this.parsedOptions.hideAdvancedTab) {\n return 'advanced';\n }\n throw 'No tabs available to make active';\n }(),\n selectOptions: cronGenService.selectOptions(),\n state: {\n minutes: {\n minutes: 1,\n seconds: 0\n },\n hourly: {\n hours: 1,\n minutes: 0,\n seconds: 0\n },\n daily: {\n subTab: 'everyDays',\n everyDays: {\n days: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n everyWeekDay: {\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n weekly: {\n MON: true,\n TUE: false,\n WED: false,\n THU: false,\n FRI: false,\n SAT: false,\n SUN: false,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n monthly: {\n subTab: 'specificDay',\n specificDay: {\n day: '1',\n months: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n specificWeekDay: {\n monthWeek: '#1',\n day: 'MON',\n months: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n yearly: {\n subTab: 'specificMonthDay',\n specificMonthDay: {\n month: 1,\n day: '1',\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n },\n specificMonthWeek: {\n monthWeek: '#1',\n day: 'MON',\n month: 1,\n hours: this.parsedOptions.use24HourTime ? 0 : 1,\n minutes: 0,\n seconds: 0,\n hourType: this.parsedOptions.use24HourTime ? null : 'AM'\n }\n },\n advanced: {\n expression: '0 15 10 L-2 * ?'\n }\n }\n });\n\n //Validate our opts\n if (ACCEPTABLE_CRON_FORMATS.indexOf(this.cronFormat) == -1) {\n throw 'Desired cron format (' + this.cronFormat + ') is not available';\n }\n\n //On model changes, update our state to reflect the user's input\n $scope.$watch('$ctrl.ngModel', function (cron) {\n return _this.handleModelChange(cron);\n });\n\n // Watch for option changes\n $scope.$watch('$ctrl.options', this.optionsChanged.bind(this), true);\n }\n\n createClass(CronGenComponent, [{\n key: '$onInit',\n value: function $onInit() {\n var _this2 = this;\n\n //If possible, add our cron expression validator to our form\n if (this.formCtrl && this.name) {\n this.ngModelCtrl.$validators.testCronExpr = function (expression) {\n return _this2.cronGenService.isValid(_this2.cronFormat, expression);\n };\n }\n }\n }, {\n key: 'optionsChanged',\n value: function optionsChanged(options) {\n this.parsedOptions = this.mergeDefaultOptions(options);\n this.translate.use(this.parsedOptions.language);\n }\n }, {\n key: 'setActiveTab',\n value: function setActiveTab($event, tab) {\n $event.preventDefault();\n if (!this.ngDisabled) {\n this.activeTab = tab;\n this.regenerateCron();\n }\n }\n }, {\n key: 'dayDisplay',\n value: function dayDisplay(day) {\n switch (day) {\n case \"SUN\":\n return this.filter('translate')('SUNDAY');\n case \"MON\":\n return this.filter('translate')('MONDAY');\n case \"TUE\":\n return this.filter('translate')('TUESDAY');\n case \"WED\":\n return this.filter('translate')('WEDNESDAY');\n case \"THU\":\n return this.filter('translate')('THURSDAY');\n case \"FRI\":\n return this.filter('translate')('FRIDAY');\n case \"SAT\":\n return this.filter('translate')('SATURDAY');\n }\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n switch (monthWeekNumber) {\n case \"#1\":\n return this.filter('translate')('FIRST');\n case \"#2\":\n return this.filter('translate')('SECOND');\n case \"#3\":\n return this.filter('translate')('THIRD');\n case \"#4\":\n return this.filter('translate')('FOURTH');\n case \"#5\":\n return this.filter('translate')('FIFTH');\n case \"L\":\n return this.filter('translate')('LAST');\n }\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n switch (monthNumber) {\n case 1:\n return this.filter('translate')('JANUARY');\n case 2:\n return this.filter('translate')('FEBRUARY');\n case 3:\n return this.filter('translate')('MARCH');\n case 4:\n return this.filter('translate')('APRIL');\n case 5:\n return this.filter('translate')('MAY');\n case 6:\n return this.filter('translate')('JUNE');\n case 7:\n return this.filter('translate')('JULY');\n case 8:\n return this.filter('translate')('AUGUST');\n case 9:\n return this.filter('translate')('SEPTEMBER');\n case 10:\n return this.filter('translate')('OCTOBER');\n case 11:\n return this.filter('translate')('NOVEMBER');\n case 12:\n return this.filter('translate')('DECEMBER');\n }\n }\n }, {\n key: 'monthDayDisplay',\n value: function monthDayDisplay(monthDay) {\n if (monthDay === 'L') {\n return this.filter('translate')('LAST_DAY');\n } else if (monthDay === 'LW') {\n return this.filter('translate')('LAST_WEEKDAY');\n } else if (monthDay === '1W') {\n return this.filter('translate')('FIRST_WEEKDAY');\n } else {\n return '' + monthDay + this.cronGenService.appendInt(monthDay) + ' ' + this.filter('translate')('DAY');\n }\n }\n }, {\n key: 'processHour',\n value: function processHour(hours) {\n if (this.parsedOptions.use24HourTime) {\n return hours;\n } else {\n return (hours + 11) % 12 + 1;\n }\n }\n }, {\n key: 'getHourType',\n value: function getHourType(hours) {\n return this.parsedOptions.use24HourTime ? null : hours >= 12 ? 'PM' : 'AM';\n }\n }, {\n key: 'hourToCron',\n value: function hourToCron(hour, hourType) {\n if (this.parsedOptions.use24HourTime) {\n return hour;\n } else {\n return hourType === 'AM' ? hour === 12 ? 0 : hour : hour === 12 ? 12 : hour + 12;\n }\n }\n }, {\n key: 'mergeDefaultOptions',\n value: function mergeDefaultOptions(options) {\n return angular.extend({\n formInputClass: 'form-control cron-gen-input',\n formSelectClass: 'form-control cron-gen-select',\n formRadioClass: 'form-control-static cron-gen-radio',\n formCheckboxClass: 'form-control-static cron-gen-checkbox',\n hideMinutesTab: false,\n hideHourlyTab: false,\n hideDailyTab: false,\n hideWeeklyTab: false,\n hideMonthlyTab: false,\n hideYearlyTab: false,\n hideAdvancedTab: true,\n use24HourTime: false,\n hideSeconds: false,\n language: 'en'\n }, options);\n }\n }, {\n key: 'regenerateCron',\n value: function regenerateCron() {\n var _this3 = this;\n\n this.currentState = States.DIRTY;\n switch (this.activeTab) {\n case 'minutes':\n this.ngModel = this.state.minutes.seconds + ' 0/' + this.state.minutes.minutes + ' * 1/1 * ? *';\n break;\n case 'hourly':\n this.ngModel = this.state.hourly.seconds + ' ' + this.state.hourly.minutes + ' 0/' + this.state.hourly.hours + ' 1/1 * ? *';\n break;\n case 'daily':\n switch (this.state.daily.subTab) {\n case 'everyDays':\n this.ngModel = this.state.daily.everyDays.seconds + ' ' + this.state.daily.everyDays.minutes + ' ' + this.hourToCron(this.state.daily.everyDays.hours, this.state.daily.everyDays.hourType) + ' 1/' + this.state.daily.everyDays.days + ' * ? *';\n break;\n case 'everyWeekDay':\n this.ngModel = this.state.daily.everyWeekDay.seconds + ' ' + this.state.daily.everyWeekDay.minutes + ' ' + this.hourToCron(this.state.daily.everyWeekDay.hours, this.state.daily.everyWeekDay.hourType) + ' ? * MON-FRI *';\n break;\n default:\n throw 'Invalid cron daily subtab selection';\n }\n break;\n case 'weekly':\n var days = this.selectOptions.days.reduce(function (acc, day) {\n return _this3.state.weekly[day] ? acc.concat([day]) : acc;\n }, []).join(',');\n this.ngModel = this.state.weekly.seconds + ' ' + this.state.weekly.minutes + ' ' + this.hourToCron(this.state.weekly.hours, this.state.weekly.hourType) + ' ? * ' + days + ' *';\n break;\n case 'monthly':\n switch (this.state.monthly.subTab) {\n case 'specificDay':\n this.ngModel = this.state.monthly.specificDay.seconds + ' ' + this.state.monthly.specificDay.minutes + ' ' + this.hourToCron(this.state.monthly.specificDay.hours, this.state.monthly.specificDay.hourType) + ' ' + this.state.monthly.specificDay.day + ' 1/' + this.state.monthly.specificDay.months + ' ? *';\n break;\n case 'specificWeekDay':\n this.ngModel = this.state.monthly.specificWeekDay.seconds + ' ' + this.state.monthly.specificWeekDay.minutes + ' ' + this.hourToCron(this.state.monthly.specificWeekDay.hours, this.state.monthly.specificWeekDay.hourType) + ' ? 1/' + this.state.monthly.specificWeekDay.months + ' ' + this.state.monthly.specificWeekDay.day + this.state.monthly.specificWeekDay.monthWeek + ' *';\n break;\n default:\n throw 'Invalid cron monthly subtab selection';\n }\n break;\n case 'yearly':\n switch (this.state.yearly.subTab) {\n case 'specificMonthDay':\n this.ngModel = this.state.yearly.specificMonthDay.seconds + ' ' + this.state.yearly.specificMonthDay.minutes + ' ' + this.hourToCron(this.state.yearly.specificMonthDay.hours, this.state.yearly.specificMonthDay.hourType) + ' ' + this.state.yearly.specificMonthDay.day + ' ' + this.state.yearly.specificMonthDay.month + ' ? *';\n break;\n case 'specificMonthWeek':\n this.ngModel = this.state.yearly.specificMonthWeek.seconds + ' ' + this.state.yearly.specificMonthWeek.minutes + ' ' + this.hourToCron(this.state.yearly.specificMonthWeek.hours, this.state.yearly.specificMonthWeek.hourType) + ' ? ' + this.state.yearly.specificMonthWeek.month + ' ' + this.state.yearly.specificMonthWeek.day + this.state.yearly.specificMonthWeek.monthWeek + ' *';\n break;\n default:\n throw 'Invalid cron yearly subtab selection';\n }\n break;\n case 'advanced':\n this.ngModel = this.state.advanced.expression;\n break;\n default:\n throw 'Invalid cron active tab selection';\n }\n }\n }, {\n key: 'handleModelChange',\n value: function handleModelChange(cron) {\n var _this4 = this;\n\n if (this.currentState === States.DIRTY) {\n this.currentState = States.CLEAN;\n return;\n } else {\n this.currentState = States.CLEAN;\n }\n\n var segments = cron.split(' ');\n if (segments.length === 6 || segments.length === 7) {\n var _segments = slicedToArray(segments, 6),\n seconds = _segments[0],\n minutes = _segments[1],\n hours = _segments[2],\n dayOfMonth = _segments[3],\n month = _segments[4],\n dayOfWeek = _segments[5];\n\n if (cron.match(/\\d+ 0\\/\\d+ \\* 1\\/1 \\* \\? \\*/)) {\n this.activeTab = 'minutes';\n this.state.minutes.minutes = parseInt(minutes.substring(2));\n this.state.minutes.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ 0\\/\\d+ 1\\/1 \\* \\? \\*/)) {\n this.activeTab = 'hourly';\n this.state.hourly.hours = parseInt(hours.substring(2));\n this.state.hourly.minutes = parseInt(minutes);\n this.state.hourly.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ 1\\/\\d+ \\* \\? \\*/)) {\n this.activeTab = 'daily';\n this.state.daily.subTab = 'everyDays';\n this.state.daily.everyDays.days = parseInt(dayOfMonth.substring(2));\n var parsedHours = parseInt(hours);\n this.state.daily.everyDays.hours = this.processHour(parsedHours);\n this.state.daily.everyDays.hourType = this.getHourType(parsedHours);\n this.state.daily.everyDays.minutes = parseInt(minutes);\n this.state.daily.everyDays.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\* MON-FRI \\*/)) {\n this.activeTab = 'daily';\n this.state.daily.subTab = 'everyWeekDay';\n var _parsedHours = parseInt(hours);\n this.state.daily.everyWeekDay.hours = this.processHour(_parsedHours);\n this.state.daily.everyWeekDay.hourType = this.getHourType(_parsedHours);\n this.state.daily.everyWeekDay.minutes = parseInt(minutes);\n this.state.daily.everyWeekDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\* (MON|TUE|WED|THU|FRI|SAT|SUN)(,(MON|TUE|WED|THU|FRI|SAT|SUN))* \\*/)) {\n this.activeTab = 'weekly';\n this.selectOptions.days.forEach(function (weekDay) {\n return _this4.state.weekly[weekDay] = false;\n });\n dayOfWeek.split(',').forEach(function (weekDay) {\n return _this4.state.weekly[weekDay] = true;\n });\n var _parsedHours2 = parseInt(hours);\n this.state.weekly.hours = this.processHour(_parsedHours2);\n this.state.weekly.hourType = this.getHourType(_parsedHours2);\n this.state.weekly.minutes = parseInt(minutes);\n this.state.weekly.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ (\\d+|L|LW|1W) 1\\/\\d+ \\? \\*/)) {\n this.activeTab = 'monthly';\n this.state.monthly.subTab = 'specificDay';\n this.state.monthly.specificDay.day = dayOfMonth;\n this.state.monthly.specificDay.months = parseInt(month.substring(2));\n var _parsedHours3 = parseInt(hours);\n this.state.monthly.specificDay.hours = this.processHour(_parsedHours3);\n this.state.monthly.specificDay.hourType = this.getHourType(_parsedHours3);\n this.state.monthly.specificDay.minutes = parseInt(minutes);\n this.state.monthly.specificDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? 1\\/\\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \\*/)) {\n var day = dayOfWeek.substr(0, 3);\n var monthWeek = dayOfWeek.substr(3);\n this.activeTab = 'monthly';\n this.state.monthly.subTab = 'specificWeekDay';\n this.state.monthly.specificWeekDay.monthWeek = monthWeek;\n this.state.monthly.specificWeekDay.day = day;\n this.state.monthly.specificWeekDay.months = parseInt(month.substring(2));\n var _parsedHours4 = parseInt(hours);\n this.state.monthly.specificWeekDay.hours = this.processHour(_parsedHours4);\n this.state.monthly.specificWeekDay.hourType = this.getHourType(_parsedHours4);\n this.state.monthly.specificWeekDay.minutes = parseInt(minutes);\n this.state.monthly.specificWeekDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ (\\d+|L|LW|1W) \\d+ \\? \\*/)) {\n this.activeTab = 'yearly';\n this.state.yearly.subTab = 'specificMonthDay';\n this.state.yearly.specificMonthDay.month = parseInt(month);\n this.state.yearly.specificMonthDay.day = dayOfMonth;\n var _parsedHours5 = parseInt(hours);\n this.state.yearly.specificMonthDay.hours = this.processHour(_parsedHours5);\n this.state.yearly.specificMonthDay.hourType = this.getHourType(_parsedHours5);\n this.state.yearly.specificMonthDay.minutes = parseInt(minutes);\n this.state.yearly.specificMonthDay.seconds = parseInt(seconds);\n } else if (cron.match(/\\d+ \\d+ \\d+ \\? \\d+ (MON|TUE|WED|THU|FRI|SAT|SUN)((#[1-5])|L) \\*/)) {\n var _day = dayOfWeek.substr(0, 3);\n var _monthWeek = dayOfWeek.substr(3);\n this.activeTab = 'yearly';\n this.state.yearly.subTab = 'specificMonthWeek';\n this.state.yearly.specificMonthWeek.monthWeek = _monthWeek;\n this.state.yearly.specificMonthWeek.day = _day;\n this.state.yearly.specificMonthWeek.month = parseInt(month);\n var _parsedHours6 = parseInt(hours);\n this.state.yearly.specificMonthWeek.hours = this.processHour(_parsedHours6);\n this.state.yearly.specificMonthWeek.hourType = this.getHourType(_parsedHours6);\n this.state.yearly.specificMonthWeek.minutes = parseInt(minutes);\n this.state.yearly.specificMonthWeek.seconds = parseInt(seconds);\n } else {\n this.activeTab = 'advanced';\n this.state.advanced.expression = cron;\n }\n } else {\n throw 'Unsupported cron expression. Expression must be 6 or 7 segments';\n }\n }\n }]);\n return CronGenComponent;\n}();\n\nvar QUARTZ_REGEX = /^\\s*($|#|\\w+\\s*=|(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?(?:,(?:[01]?\\d|2[0-3])(?:(?:-|\\/|\\,)(?:[01]?\\d|2[0-3]))?)*)\\s+(\\?|\\*|(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?(?:,(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?)*)\\s+(\\?|\\*|(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\\?|\\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\\s+(\\?|\\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\\/|\\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\\/|\\,|#)(?:[1-5]))?(?:L)?)*|\\?|\\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\\s)+(\\?|\\*|(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?(?:,(?:|\\d{4})(?:(?:-|\\/|\\,)(?:|\\d{4}))?)*))$/;\n\nvar CronGenService = function () {\n function CronGenService($filter) {\n classCallCheck(this, CronGenService);\n\n this.filter = $filter;\n }\n\n createClass(CronGenService, [{\n key: 'isValid',\n value: function isValid(cronFormat, expression) {\n var formattedExpression = expression.toUpperCase();\n switch (cronFormat) {\n case 'quartz':\n return !!formattedExpression.match(QUARTZ_REGEX);\n default:\n throw 'Desired cron format (' + cronFormat + ') is not available';\n }\n }\n }, {\n key: 'appendInt',\n value: function appendInt(number) {\n var value = '' + number;\n if (value.length > 1) {\n var secondToLastDigit = value.charAt(value.length - 2);\n if (secondToLastDigit === '1') {\n return this.filter('translate')('CARDINAL_PREFIX');\n }\n }\n var lastDigit = value.charAt(value.length - 1);\n switch (lastDigit) {\n case '1':\n return this.filter('translate')('FIRST_PREFIX');\n case '2':\n return this.filter('translate')('SECOND_PREFIX');\n case '3':\n return this.filter('translate')('THIRD_PREFIX');\n default:\n return this.filter('translate')('CARDINAL_PREFIX');\n }\n }\n }, {\n key: 'padNumber',\n value: function padNumber(number) {\n return ('' + number).length === 1 ? '0' + number : '' + number;\n }\n }, {\n key: 'range',\n value: function range(start, end) {\n if (typeof end === 'undefined') {\n end = start;\n start = 0;\n }\n\n if (start < 0 || end < 0) throw 'Range values must be positive values';\n\n if (end > start) {\n return [].concat(toConsumableArray(new Array(end - start))).map(function (val, idx) {\n return idx + start;\n });\n } else if (start < end) {\n return [].concat(toConsumableArray(new Array(start - end))).map(function (val, idx) {\n return end - idx;\n });\n } else return new Array();\n }\n }, {\n key: 'selectOptions',\n value: function selectOptions() {\n return {\n months: this.range(1, 13),\n monthWeeks: ['#1', '#2', '#3', '#4', '#5', 'L'],\n days: ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'],\n minutes: this.range(1, 60),\n fullMinutes: this.range(60),\n seconds: this.range(60),\n hours: this.range(1, 24),\n monthDays: this.range(1, 32),\n monthDaysWithLasts: ['1W'].concat(toConsumableArray([].concat(toConsumableArray(new Array(31))).map(function (val, idx) {\n return '' + (idx + 1);\n })), ['LW', 'L'])\n };\n }\n }]);\n return CronGenService;\n}();\n\nvar CronGenTimeSelect = function CronGenTimeSelect($scope, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenTimeSelect);\n this.cronGenService = cronGenService;\n\n this.selectOptions = {\n minutes: cronGenService.range(60),\n seconds: cronGenService.range(60),\n hourTypes: ['AM', 'PM']\n };\n\n $scope.$watch('$ctrl.use24HourTime', function () {\n _this.selectOptions.hours = _this.use24HourTime ? _this.cronGenService.range(24) : _this.cronGenService.range(1, 13);\n });\n};\n\nangular.module('angular-cron-gen', ['pascalprecht.translate']).config(function ($translateProvider) {\n $translateProvider.translations('en', {\n 'MINUTES': 'Minutes',\n 'HOURLY': 'Hourly',\n 'DAILY': 'Daily',\n 'WEEKLY': 'Weekly',\n 'MONTHLY': 'Monthly',\n 'YEARLY': 'Yearly',\n 'ADVANCED': 'Advanced',\n 'EVERY': 'Every',\n 'EVERY_MONTH': 'Every',\n 'MINUTE': 'minute(s)',\n 'ON_SECOND': 'on second',\n 'HOUR_ON_MINUTE': 'hour(s) on minute',\n 'AND_SECOND': 'and second',\n 'DAY_AT': 'day(s) at',\n 'EVERY_WEEK_WORKING_DAY': 'Every week day (Monday through Friday) at',\n 'MONDAY': 'Monday',\n 'TUESDAY': 'Tuesday',\n 'WEDNESDAY': 'Wednesday',\n 'THURSDAY': 'Thursday',\n 'FRIDAY': 'Friday',\n 'SATURDAY': 'Saturday',\n 'SUNDAY': 'Sunday',\n 'START_TIME': 'Start time',\n 'ON_THE': 'On the',\n 'ON_THE_SMALL': 'on the',\n 'OF_EVERY': 'of every',\n 'MONTHS_AT': 'month(s) at',\n 'AT': 'at',\n 'OF': 'of',\n 'CRON_EXPRESSION': 'Cron Expression',\n 'MORE_DETAILS': 'More details about how to create these expressions can be found',\n 'HERE': 'here',\n 'LAST_DAY': 'Last day',\n 'LAST_WEEKDAY': 'Last Weekday',\n 'FIRST_WEEKDAY': 'First Weekday',\n 'DAY': 'Day',\n 'FIRST_PREFIX': 'st',\n 'SECOND_PREFIX': 'nd',\n 'THIRD_PREFIX': 'rd',\n 'CARDINAL_PREFIX': 'th',\n 'FIRST': 'First',\n 'SECOND': 'Second',\n 'THIRD': 'Third',\n 'FOURTH': 'Fourth',\n 'FIFTH': 'Fifth',\n 'LAST': 'Last',\n 'JANUARY': 'January',\n 'FEBRUARY': 'February',\n 'MARCH': 'March',\n 'APRIL': 'April',\n 'MAY': 'May',\n 'JUNE': 'June',\n 'JULY': 'July',\n 'AUGUST': 'August',\n 'SEPTEMBER': 'September',\n 'OCTOBER': 'October',\n 'NOVEMBER': 'November',\n 'DECEMBER': 'December'\n }).translations('it', {\n 'MINUTES': 'Minuti',\n 'HOURLY': 'Orario',\n 'DAILY': 'Giornaliero',\n 'WEEKLY': 'Settimanale',\n 'MONTHLY': 'Mensile',\n 'YEARLY': 'Annuale',\n 'ADVANCED': 'Avanzato',\n 'EVERY': 'Ogni',\n 'EVERY_MONTH': 'Ogni',\n 'MINUTE': 'minuto/i',\n 'ON_SECOND': 'al secondo',\n 'HOUR_ON_MINUTE': 'ora/e al minuto',\n 'AND_SECOND': 'e secondi',\n 'DAY_AT': 'giorno/i alle',\n 'EVERY_WEEK_WORKING_DAY': \"Ogni giorno della settimana (dal Lunedi' al Venerdi') alle\",\n 'MONDAY': \"Lunedi'\",\n 'TUESDAY': \"Martedi'\",\n 'WEDNESDAY': \"Mercoledi'\",\n 'THURSDAY': \"Giovedi'\",\n 'FRIDAY': \"Venerdi'\",\n 'SATURDAY': 'Sabato',\n 'SUNDAY': 'Domenica',\n 'START_TIME': 'Inizio alle',\n 'ON_THE': 'Il',\n 'ON_THE_SMALL': 'il',\n 'OF_EVERY': 'di ogni',\n 'MONTHS_AT': 'mese/i il',\n 'AT': 'il',\n 'OF': 'di',\n 'CRON_EXPRESSION': 'Sintassi Cron',\n 'MORE_DETAILS': 'Maggiori informazioni sulla sintassi Cron li potete trovare',\n 'HERE': 'qui',\n 'LAST_DAY': 'Ultimo giorno',\n 'LAST_WEEKDAY': 'Fine settimana',\n 'FIRST_WEEKDAY': 'Inizio settimana',\n 'DAY': 'Giorno',\n 'FIRST_PREFIX': '',\n 'SECOND_PREFIX': '',\n 'THIRD_PREFIX': '',\n 'CARDINAL_PREFIX': '',\n 'FIRST': 'Primo',\n 'SECOND': 'Secondo',\n 'THIRD': 'Terzo',\n 'FOURTH': 'Quarto',\n 'FIFTH': 'Quinto',\n 'LAST': 'Ultimo',\n 'JANUARY': 'Gennaio',\n 'FEBRUARY': 'Febbraio',\n 'MARCH': 'Marzo',\n 'APRIL': 'Aprile',\n 'MAY': 'Maggio',\n 'JUNE': 'Giugno',\n 'JULY': 'Luglio',\n 'AUGUST': 'Agosto',\n 'SEPTEMBER': 'Settembre',\n 'OCTOBER': 'Ottobre',\n 'NOVEMBER': 'Novembre',\n 'DECEMBER': 'Dicembre'\n }).translations('de', {\n 'MINUTES': 'Minütlich',\n 'HOURLY': 'Stündlich',\n 'DAILY': 'Täglich',\n 'WEEKLY': 'Wöchentlich',\n 'MONTHLY': 'Monatlich',\n 'YEARLY': 'Jährlich',\n 'ADVANCED': 'Cron Ausdruck',\n 'EVERY': 'Alle',\n 'EVERY_MONTH': 'Jeden',\n 'MINUTE': 'Minute(n)',\n 'ON_SECOND': 'auf Sekunde',\n 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute',\n 'AND_SECOND': 'und Sekunde',\n 'DAY_AT': 'Tag(e) um',\n 'EVERY_WEEK_WORKING_DAY': \"Jeden Wochentag (Montag bis Freitag) um\",\n 'MONDAY': \"Montag\",\n 'TUESDAY': \"Dienstag\",\n 'WEDNESDAY': \"Mittwoch\",\n 'THURSDAY': \"Donnerstag\",\n 'FRIDAY': \"Freitag\",\n 'SATURDAY': 'Samstag',\n 'SUNDAY': 'Sonntag',\n 'START_TIME': 'Startzeit',\n 'ON_THE': 'Am',\n 'ON_THE_SMALL': 'am',\n 'OF_EVERY': 'alle',\n 'MONTHS_AT': 'Monat(e) um',\n 'AT': 'um',\n 'OF': 'im',\n 'CRON_EXPRESSION': 'Cron Ausdruck',\n 'MORE_DETAILS': 'Weitere Informationen zum Erstellen dieser Ausdrücke finden Sie ',\n 'HERE': 'hier',\n 'LAST_DAY': 'letzter Tag',\n 'LAST_WEEKDAY': 'letzter Wochentag',\n 'FIRST_WEEKDAY': 'erster Wochentag',\n 'DAY': 'Tag',\n 'FIRST_PREFIX': '',\n 'SECOND_PREFIX': '',\n 'THIRD_PREFIX': '',\n 'CARDINAL_PREFIX': '',\n 'FIRST': 'Ersten',\n 'SECOND': 'Zweiten',\n 'THIRD': 'Dritten',\n 'FOURTH': 'Vierten',\n 'FIFTH': 'Fünften',\n 'LAST': 'Letzten',\n 'JANUARY': 'Januar',\n 'FEBRUARY': 'Februar',\n 'MARCH': 'März',\n 'APRIL': 'April',\n 'MAY': 'Mai',\n 'JUNE': 'Juni',\n 'JULY': 'Juli',\n 'AUGUST': 'August',\n 'SEPTEMBER': 'September',\n 'OCTOBER': 'Oktober',\n 'NOVEMBER': 'November',\n 'DECEMBER': 'Dezember'\n });\n}).service('cronGenService', CronGenService).component('cronGenTimeSelect', {\n bindings: {\n isDisabled: '<',\n onChange: '&',\n isRequired: '<',\n model: '=',\n selectClass: '<',\n use24HourTime: '<',\n hideSeconds: '<',\n namePrefix: '@'\n },\n templateUrl: 'angular-cron-gen/cron-gen-time-select.html',\n controller: CronGenTimeSelect\n}).component('cronGen', {\n bindings: {\n ngModel: '=',\n ngDisabled: '<',\n options: '<',\n cronFormat: '@',\n templateUrl: '@',\n name: '@'\n },\n require: {\n ngModelCtrl: 'ngModel',\n ngDisabledCtrl: '?ngDisabled',\n formCtrl: '^?form'\n },\n templateUrl: function templateUrl($attrs) {\n 'ngInject';\n\n return $attrs.templateUrl || 'angular-cron-gen/cron-gen.html';\n },\n\n controller: CronGenComponent\n});\n\n}());\n","angular.module('angular-cron-gen').run(['$templateCache', function($templateCache) {$templateCache.put('angular-cron-gen/cron-gen-time-select.html','
\\n \\n \\n \\n \\n
');\n$templateCache.put('angular-cron-gen/cron-gen.html','\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n {{ \\'EVERY\\' | translate}}\\n \\n {{ \\'MINUTE\\' | translate}}\\n {{ \\'ON_SECOND\\' | translate }} \\n \\n
\\n
\\n
\\n
\\n {{ \\'EVERY\\' | translate}}\\n \\n {{ \\'HOUR_ON_MINUTE\\' | translate}}\\n \\n {{ \\'AND_SECOND\\' | translate}}\\n \\n
\\n
\\n
\\n
\\n \\n {{ \\'EVERY\\' | translate}}\\n \\n {{ \\'DAY_AT\\' | translate}}\\n \\n \\n
\\n
\\n \\n {{ \\'EVERY_WEEK_WORKING_DAY\\' | translate}}\\n \\n \\n
\\n
\\n
\\n
\\n
\\n \\n {{ \\'MONDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'TUESDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'WEDNESDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'THURSDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'FRIDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'SATURDAY\\' | translate}}\\n
\\n
\\n \\n {{ \\'SUNDAY\\' | translate}}\\n
\\n
\\n {{ \\'START_TIME\\' | translate}}\\n \\n \\n
\\n
\\n
\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'OF_EVERY\\' | translate}}\\n \\n {{ \\'MONTHS_AT\\' | translate}}\\n \\n \\n
\\n
\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF_EVERY\\' | translate}}\\n \\n {{ \\'MONTHS_AT\\' | translate}}\\n \\n \\n
\\n\\n
\\n
\\n
\\n \\n {{ \\'EVERY_MONTH\\' | translate}}\\n \\n {{ \\'ON_THE_SMALL\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
\\n
\\n \\n {{ \\'EVERY_MONTH\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
\\n
\\n
\\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n');}]);"]} \ No newline at end of file diff --git a/build/cron-gen.module.js b/build/cron-gen.module.js index ab709c97..c4cdfdec 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -31,30 +31,8 @@ var createClass = function () { -var get = function get(object, property, receiver) { - if (object === null) object = Function.prototype; - var desc = Object.getOwnPropertyDescriptor(object, property); - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - if (parent === null) { - return undefined; - } else { - return get(parent, property, receiver); - } - } else if ("value" in desc) { - return desc.value; - } else { - var getter = desc.get; - - if (getter === undefined) { - return undefined; - } - - return getter.call(receiver); - } -}; @@ -72,27 +50,6 @@ var get = function get(object, property, receiver) { -var set = function set(object, property, value, receiver) { - var desc = Object.getOwnPropertyDescriptor(object, property); - - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - - if (parent !== null) { - set(parent, property, value, receiver); - } - } else if ("value" in desc && desc.writable) { - desc.value = value; - } else { - var setter = desc.set; - - if (setter !== undefined) { - setter.call(receiver, value); - } - } - - return value; -}; var slicedToArray = function () { function sliceIterator(arr, i) { @@ -155,38 +112,6 @@ var toConsumableArray = function (arr) { }; var ACCEPTABLE_CRON_FORMATS = ['quartz']; -var DAY_LOOKUPS = { - 'SUN': 'Sunday', - 'MON': 'Monday', - 'TUE': 'Tuesday', - 'WED': 'Wednesday', - 'THU': 'Thursday', - 'FRI': 'Friday', - 'SAT': 'Saturday' -}; -var MONTH_WEEK_LOOKUPS = { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' -}; -var MONTH_LOOKUPS = { - '1': 'January', - '2': 'February', - '3': 'March', - '4': 'April', - '5': 'May', - '6': 'June', - '7': 'July', - '8': 'August', - '9': 'September', - '10': 'October', - '11': 'November', - '12': 'December' -}; - var States = { INIT: 1, DIRTY: 2, @@ -194,8 +119,8 @@ var States = { }; var CronGenComponent = function () { - CronGenComponent.$inject = ["$scope", "cronGenService"]; - function CronGenComponent($scope, cronGenService) { + CronGenComponent.$inject = ["$scope", "$translate", "$filter", "cronGenService"]; + function CronGenComponent($scope, $translate, $filter, cronGenService) { 'ngInject'; var _this = this; @@ -203,8 +128,12 @@ var CronGenComponent = function () { classCallCheck(this, CronGenComponent); this.parsedOptions = this.mergeDefaultOptions(this.options); + $translate.use(this.parsedOptions.language); + angular.extend(this, { cronGenService: cronGenService, + filter: $filter, + translate: $translate, cronFormat: 'quartz', currentState: States.INIT, activeTab: function () { @@ -322,9 +251,7 @@ var CronGenComponent = function () { }); // Watch for option changes - $scope.$watch('$ctrl.options', function (options) { - return _this.parsedOptions = _this.mergeDefaultOptions(options); - }, true); + $scope.$watch('$ctrl.options', this.optionsChanged.bind(this), true); } createClass(CronGenComponent, [{ @@ -339,6 +266,12 @@ var CronGenComponent = function () { }; } } + }, { + key: 'optionsChanged', + value: function optionsChanged(options) { + this.parsedOptions = this.mergeDefaultOptions(options); + this.translate.use(this.parsedOptions.language); + } }, { key: 'setActiveTab', value: function setActiveTab($event, tab) { @@ -351,29 +284,82 @@ var CronGenComponent = function () { }, { key: 'dayDisplay', value: function dayDisplay(day) { - return DAY_LOOKUPS[day]; + switch (day) { + case "SUN": + return this.filter('translate')('SUNDAY'); + case "MON": + return this.filter('translate')('MONDAY'); + case "TUE": + return this.filter('translate')('TUESDAY'); + case "WED": + return this.filter('translate')('WEDNESDAY'); + case "THU": + return this.filter('translate')('THURSDAY'); + case "FRI": + return this.filter('translate')('FRIDAY'); + case "SAT": + return this.filter('translate')('SATURDAY'); + } } }, { key: 'monthWeekDisplay', value: function monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[monthWeekNumber]; + switch (monthWeekNumber) { + case "#1": + return this.filter('translate')('FIRST'); + case "#2": + return this.filter('translate')('SECOND'); + case "#3": + return this.filter('translate')('THIRD'); + case "#4": + return this.filter('translate')('FOURTH'); + case "#5": + return this.filter('translate')('FIFTH'); + case "L": + return this.filter('translate')('LAST'); + } } }, { key: 'monthDisplay', value: function monthDisplay(monthNumber) { - return MONTH_LOOKUPS[monthNumber]; + switch (monthNumber) { + case 1: + return this.filter('translate')('JANUARY'); + case 2: + return this.filter('translate')('FEBRUARY'); + case 3: + return this.filter('translate')('MARCH'); + case 4: + return this.filter('translate')('APRIL'); + case 5: + return this.filter('translate')('MAY'); + case 6: + return this.filter('translate')('JUNE'); + case 7: + return this.filter('translate')('JULY'); + case 8: + return this.filter('translate')('AUGUST'); + case 9: + return this.filter('translate')('SEPTEMBER'); + case 10: + return this.filter('translate')('OCTOBER'); + case 11: + return this.filter('translate')('NOVEMBER'); + case 12: + return this.filter('translate')('DECEMBER'); + } } }, { key: 'monthDayDisplay', value: function monthDayDisplay(monthDay) { if (monthDay === 'L') { - return 'Last Day'; + return this.filter('translate')('LAST_DAY'); } else if (monthDay === 'LW') { - return 'Last Weekday'; + return this.filter('translate')('LAST_WEEKDAY'); } else if (monthDay === '1W') { - return 'First Weekday'; + return this.filter('translate')('FIRST_WEEKDAY'); } else { - return '' + monthDay + this.cronGenService.appendInt(monthDay) + ' Day'; + return '' + monthDay + this.cronGenService.appendInt(monthDay) + ' ' + this.filter('translate')('DAY'); } } }, { @@ -415,7 +401,8 @@ var CronGenComponent = function () { hideYearlyTab: false, hideAdvancedTab: true, use24HourTime: false, - hideSeconds: false + hideSeconds: false, + language: 'en' }, options); } }, { @@ -602,8 +589,11 @@ var CronGenComponent = function () { var QUARTZ_REGEX = /^\s*($|#|\w+\s*=|(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?(?:,(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?)*)\s+(\?|\*|(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?(?:,(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?)*)\s+(\?|\*|(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\?|\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\s+(\?|\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?)*|\?|\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\s)+(\?|\*|(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?(?:,(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?)*))$/; var CronGenService = function () { - function CronGenService() { + CronGenService.$inject = ["$filter"]; + function CronGenService($filter) { classCallCheck(this, CronGenService); + + this.filter = $filter; } createClass(CronGenService, [{ @@ -624,19 +614,19 @@ var CronGenService = function () { if (value.length > 1) { var secondToLastDigit = value.charAt(value.length - 2); if (secondToLastDigit === '1') { - return "th"; + return this.filter('translate')('CARDINAL_PREFIX'); } } var lastDigit = value.charAt(value.length - 1); switch (lastDigit) { case '1': - return "st"; + return this.filter('translate')('FIRST_PREFIX'); case '2': - return "nd"; + return this.filter('translate')('SECOND_PREFIX'); case '3': - return "rd"; + return this.filter('translate')('THIRD_PREFIX'); default: - return "th"; + return this.filter('translate')('CARDINAL_PREFIX'); } } }, { @@ -705,7 +695,186 @@ var CronGenTimeSelect = function CronGenTimeSelect($scope, cronGenService) { }; CronGenTimeSelect.$inject = ["$scope", "cronGenService"]; -angular.module('angular-cron-gen', []).service('cronGenService', CronGenService).component('cronGenTimeSelect', { +angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$translateProvider", function ($translateProvider) { + $translateProvider.translations('en', { + 'MINUTES': 'Minutes', + 'HOURLY': 'Hourly', + 'DAILY': 'Daily', + 'WEEKLY': 'Weekly', + 'MONTHLY': 'Monthly', + 'YEARLY': 'Yearly', + 'ADVANCED': 'Advanced', + 'EVERY': 'Every', + 'EVERY_MONTH': 'Every', + 'MINUTE': 'minute(s)', + 'ON_SECOND': 'on second', + 'HOUR_ON_MINUTE': 'hour(s) on minute', + 'AND_SECOND': 'and second', + 'DAY_AT': 'day(s) at', + 'EVERY_WEEK_WORKING_DAY': 'Every week day (Monday through Friday) at', + 'MONDAY': 'Monday', + 'TUESDAY': 'Tuesday', + 'WEDNESDAY': 'Wednesday', + 'THURSDAY': 'Thursday', + 'FRIDAY': 'Friday', + 'SATURDAY': 'Saturday', + 'SUNDAY': 'Sunday', + 'START_TIME': 'Start time', + 'ON_THE': 'On the', + 'ON_THE_SMALL': 'on the', + 'OF_EVERY': 'of every', + 'MONTHS_AT': 'month(s) at', + 'AT': 'at', + 'OF': 'of', + 'CRON_EXPRESSION': 'Cron Expression', + 'MORE_DETAILS': 'More details about how to create these expressions can be found', + 'HERE': 'here', + 'LAST_DAY': 'Last day', + 'LAST_WEEKDAY': 'Last Weekday', + 'FIRST_WEEKDAY': 'First Weekday', + 'DAY': 'Day', + 'FIRST_PREFIX': 'st', + 'SECOND_PREFIX': 'nd', + 'THIRD_PREFIX': 'rd', + 'CARDINAL_PREFIX': 'th', + 'FIRST': 'First', + 'SECOND': 'Second', + 'THIRD': 'Third', + 'FOURTH': 'Fourth', + 'FIFTH': 'Fifth', + 'LAST': 'Last', + 'JANUARY': 'January', + 'FEBRUARY': 'February', + 'MARCH': 'March', + 'APRIL': 'April', + 'MAY': 'May', + 'JUNE': 'June', + 'JULY': 'July', + 'AUGUST': 'August', + 'SEPTEMBER': 'September', + 'OCTOBER': 'October', + 'NOVEMBER': 'November', + 'DECEMBER': 'December' + }).translations('it', { + 'MINUTES': 'Minuti', + 'HOURLY': 'Orario', + 'DAILY': 'Giornaliero', + 'WEEKLY': 'Settimanale', + 'MONTHLY': 'Mensile', + 'YEARLY': 'Annuale', + 'ADVANCED': 'Avanzato', + 'EVERY': 'Ogni', + 'EVERY_MONTH': 'Ogni', + 'MINUTE': 'minuto/i', + 'ON_SECOND': 'al secondo', + 'HOUR_ON_MINUTE': 'ora/e al minuto', + 'AND_SECOND': 'e secondi', + 'DAY_AT': 'giorno/i alle', + 'EVERY_WEEK_WORKING_DAY': "Ogni giorno della settimana (dal Lunedi' al Venerdi') alle", + 'MONDAY': "Lunedi'", + 'TUESDAY': "Martedi'", + 'WEDNESDAY': "Mercoledi'", + 'THURSDAY': "Giovedi'", + 'FRIDAY': "Venerdi'", + 'SATURDAY': 'Sabato', + 'SUNDAY': 'Domenica', + 'START_TIME': 'Inizio alle', + 'ON_THE': 'Il', + 'ON_THE_SMALL': 'il', + 'OF_EVERY': 'di ogni', + 'MONTHS_AT': 'mese/i il', + 'AT': 'il', + 'OF': 'di', + 'CRON_EXPRESSION': 'Sintassi Cron', + 'MORE_DETAILS': 'Maggiori informazioni sulla sintassi Cron li potete trovare', + 'HERE': 'qui', + 'LAST_DAY': 'Ultimo giorno', + 'LAST_WEEKDAY': 'Fine settimana', + 'FIRST_WEEKDAY': 'Inizio settimana', + 'DAY': 'Giorno', + 'FIRST_PREFIX': '', + 'SECOND_PREFIX': '', + 'THIRD_PREFIX': '', + 'CARDINAL_PREFIX': '', + 'FIRST': 'Primo', + 'SECOND': 'Secondo', + 'THIRD': 'Terzo', + 'FOURTH': 'Quarto', + 'FIFTH': 'Quinto', + 'LAST': 'Ultimo', + 'JANUARY': 'Gennaio', + 'FEBRUARY': 'Febbraio', + 'MARCH': 'Marzo', + 'APRIL': 'Aprile', + 'MAY': 'Maggio', + 'JUNE': 'Giugno', + 'JULY': 'Luglio', + 'AUGUST': 'Agosto', + 'SEPTEMBER': 'Settembre', + 'OCTOBER': 'Ottobre', + 'NOVEMBER': 'Novembre', + 'DECEMBER': 'Dicembre' + }).translations('de', { + 'MINUTES': 'Minütlich', + 'HOURLY': 'Stündlich', + 'DAILY': 'Täglich', + 'WEEKLY': 'Wöchentlich', + 'MONTHLY': 'Monatlich', + 'YEARLY': 'Jährlich', + 'ADVANCED': 'Cron Ausdruck', + 'EVERY': 'Alle', + 'EVERY_MONTH': 'Jeden', + 'MINUTE': 'Minute(n)', + 'ON_SECOND': 'auf Sekunde', + 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', + 'AND_SECOND': 'und Sekunde', + 'DAY_AT': 'Tag(e) um', + 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", + 'MONDAY': "Montag", + 'TUESDAY': "Dienstag", + 'WEDNESDAY': "Mittwoch", + 'THURSDAY': "Donnerstag", + 'FRIDAY': "Freitag", + 'SATURDAY': 'Samstag', + 'SUNDAY': 'Sonntag', + 'START_TIME': 'Startzeit', + 'ON_THE': 'Am', + 'ON_THE_SMALL': 'am', + 'OF_EVERY': 'alle', + 'MONTHS_AT': 'Monat(e) um', + 'AT': 'um', + 'OF': 'im', + 'CRON_EXPRESSION': 'Cron Ausdruck', + 'MORE_DETAILS': 'Weitere Informationen zum Erstellen dieser Ausdrücke finden Sie ', + 'HERE': 'hier', + 'LAST_DAY': 'letzter Tag', + 'LAST_WEEKDAY': 'letzter Wochentag', + 'FIRST_WEEKDAY': 'erster Wochentag', + 'DAY': 'Tag', + 'FIRST_PREFIX': '', + 'SECOND_PREFIX': '', + 'THIRD_PREFIX': '', + 'CARDINAL_PREFIX': '', + 'FIRST': 'Ersten', + 'SECOND': 'Zweiten', + 'THIRD': 'Dritten', + 'FOURTH': 'Vierten', + 'FIFTH': 'Fünften', + 'LAST': 'Letzten', + 'JANUARY': 'Januar', + 'FEBRUARY': 'Februar', + 'MARCH': 'März', + 'APRIL': 'April', + 'MAY': 'Mai', + 'JUNE': 'Juni', + 'JULY': 'Juli', + 'AUGUST': 'August', + 'SEPTEMBER': 'September', + 'OCTOBER': 'Oktober', + 'NOVEMBER': 'November', + 'DECEMBER': 'Dezember' + }); +}]).service('cronGenService', CronGenService).component('cronGenTimeSelect', { bindings: { isDisabled: '<', onChange: '&', diff --git a/build/templates.js b/build/templates.js index 6bdf2bca..db5bcf1d 100644 --- a/build/templates.js +++ b/build/templates.js @@ -1,2 +1,2 @@ angular.module('angular-cron-gen').run(['$templateCache', function($templateCache) {$templateCache.put('angular-cron-gen/cron-gen-time-select.html','
\n \n \n \n \n
'); -$templateCache.put('angular-cron-gen/cron-gen.html','\n
\n \n
\n
\n
\n
\n
\n
\n Every\n \n minute(s)\n on second\n \n
\n
\n
\n
\n Every\n \n hour(s) on minute\n \n and second\n \n
\n
\n
\n
\n \n Every\n \n day(s) at\n \n \n
\n
\n \n Every week day (Monday through Friday) at\n \n \n
\n
\n
\n
\n
\n \n Monday\n
\n
\n \n Tuesday\n
\n
\n \n Wednesday\n
\n
\n \n Thursday\n
\n
\n \n Friday\n
\n
\n \n Saturday\n
\n
\n \n Sunday\n
\n
\n Start time\n \n \n
\n
\n
\n \n On the\n \n of every\n \n month(s) at\n \n \n
\n
\n \n On the\n \n \n of every\n \n month(s) at\n \n \n
\n\n
\n
\n
\n \n Every\n \n on the\n \n at\n \n \n
\n
\n \n On the\n \n \n of\n \n at\n \n \n
\n
\n
\n Cron Expression\n \n\n

More details about how to create these expressions can be found here.

\n
\n
\n
\n
\n
\n
\n');}]); \ No newline at end of file +$templateCache.put('angular-cron-gen/cron-gen.html','\n
\n \n
\n
\n
\n
\n
\n
\n {{ \'EVERY\' | translate}}\n \n {{ \'MINUTE\' | translate}}\n {{ \'ON_SECOND\' | translate }} \n \n
\n
\n
\n
\n {{ \'EVERY\' | translate}}\n \n {{ \'HOUR_ON_MINUTE\' | translate}}\n \n {{ \'AND_SECOND\' | translate}}\n \n
\n
\n
\n
\n \n {{ \'EVERY\' | translate}}\n \n {{ \'DAY_AT\' | translate}}\n \n \n
\n
\n \n {{ \'EVERY_WEEK_WORKING_DAY\' | translate}}\n \n \n
\n
\n
\n
\n
\n \n {{ \'MONDAY\' | translate}}\n
\n
\n \n {{ \'TUESDAY\' | translate}}\n
\n
\n \n {{ \'WEDNESDAY\' | translate}}\n
\n
\n \n {{ \'THURSDAY\' | translate}}\n
\n
\n \n {{ \'FRIDAY\' | translate}}\n
\n
\n \n {{ \'SATURDAY\' | translate}}\n
\n
\n \n {{ \'SUNDAY\' | translate}}\n
\n
\n {{ \'START_TIME\' | translate}}\n \n \n
\n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'OF_EVERY\' | translate}}\n \n {{ \'MONTHS_AT\' | translate}}\n \n \n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF_EVERY\' | translate}}\n \n {{ \'MONTHS_AT\' | translate}}\n \n \n
\n\n
\n
\n
\n \n {{ \'EVERY_MONTH\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n \n {{ \'EVERY_MONTH\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n
\n {{ \'CRON_EXPRESSION\' | translate}}\n \n
\n
\n
\n
\n
\n
\n');}]); \ No newline at end of file diff --git a/example/app.js b/example/app.js index d27684fe..b2a89b35 100644 --- a/example/app.js +++ b/example/app.js @@ -2,7 +2,8 @@ angular.module('ExampleApp', ['angular-cron-gen']) .controller('ExampleCtrl', ['$scope', function ($scope) { $scope.cronExpression = '0 8 9 9 1/8 ? *'; $scope.cronOptions = { - hideAdvancedTab: false + hideAdvancedTab: false, + language: 'de' }; $scope.isCronDisabled = false; }]); diff --git a/example/index.html b/example/index.html index 94bb8aa5..e6e3b719 100644 --- a/example/index.html +++ b/example/index.html @@ -7,6 +7,7 @@ + diff --git a/package.json b/package.json index dbaad9c4..37b6e8bc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.0.23", + "version": "0.1.0", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", @@ -41,5 +41,8 @@ "gulp-uglify": "^2.0.0", "gulp-uglifycss": "^1.0.6", "rollup-plugin-babel": "^2.6.1" + }, + "dependencies": { + "angular-translate": "^2.18.1" } } diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 3fd411ba..f38d5e31 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -1,36 +1,4 @@ const ACCEPTABLE_CRON_FORMATS = ['quartz']; -const DAY_LOOKUPS = { - 'SUN': 'Sunday', - 'MON': 'Monday', - 'TUE': 'Tuesday', - 'WED': 'Wednesday', - 'THU': 'Thursday', - 'FRI': 'Friday', - 'SAT': 'Saturday' -}; -const MONTH_WEEK_LOOKUPS = { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' -}; -const MONTH_LOOKUPS = { - '1': 'January', - '2': 'February', - '3': 'March', - '4': 'April', - '5': 'May', - '6': 'June', - '7': 'July', - '8': 'August', - '9': 'September', - '10': 'October', - '11': 'November', - '12': 'December' -}; - const States = { INIT: 1, DIRTY: 2, @@ -38,13 +6,17 @@ const States = { }; export class CronGenComponent { - constructor($scope, cronGenService) { + constructor($scope, $translate, $filter, cronGenService) { 'ngInject'; this.parsedOptions = this.mergeDefaultOptions(this.options); + $translate.use(this.parsedOptions.language); + angular.extend(this, { cronGenService, + filter: $filter, + translate: $translate, cronFormat: 'quartz', currentState: States.INIT, activeTab: (() => { @@ -160,7 +132,7 @@ export class CronGenComponent { $scope.$watch('$ctrl.ngModel', (cron) => this.handleModelChange(cron)); // Watch for option changes - $scope.$watch('$ctrl.options', (options) => this.parsedOptions = this.mergeDefaultOptions(options), true); + $scope.$watch('$ctrl.options', this.optionsChanged.bind(this), true); } $onInit() { @@ -170,6 +142,11 @@ export class CronGenComponent { } } + optionsChanged(options) { + this.parsedOptions = this.mergeDefaultOptions(options); + this.translate.use(this.parsedOptions.language); + } + setActiveTab($event, tab) { $event.preventDefault(); if (!this.ngDisabled) { @@ -179,26 +156,79 @@ export class CronGenComponent { } dayDisplay(day) { - return DAY_LOOKUPS[day]; + switch (day) { + case "SUN": + return this.filter('translate')('SUNDAY'); + case "MON": + return this.filter('translate')('MONDAY'); + case "TUE": + return this.filter('translate')('TUESDAY'); + case "WED": + return this.filter('translate')('WEDNESDAY'); + case "THU": + return this.filter('translate')('THURSDAY'); + case "FRI": + return this.filter('translate')('FRIDAY'); + case "SAT": + return this.filter('translate')('SATURDAY'); + } } monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[monthWeekNumber]; + switch (monthWeekNumber) { + case "#1": + return this.filter('translate')('FIRST'); + case "#2": + return this.filter('translate')('SECOND'); + case "#3": + return this.filter('translate')('THIRD'); + case "#4": + return this.filter('translate')('FOURTH'); + case "#5": + return this.filter('translate')('FIFTH'); + case "L": + return this.filter('translate')('LAST'); + } } monthDisplay(monthNumber) { - return MONTH_LOOKUPS[monthNumber]; + switch (monthNumber) { + case 1: + return this.filter('translate')('JANUARY'); + case 2: + return this.filter('translate')('FEBRUARY'); + case 3: + return this.filter('translate')('MARCH'); + case 4: + return this.filter('translate')('APRIL'); + case 5: + return this.filter('translate')('MAY'); + case 6: + return this.filter('translate')('JUNE'); + case 7: + return this.filter('translate')('JULY'); + case 8: + return this.filter('translate')('AUGUST'); + case 9: + return this.filter('translate')('SEPTEMBER'); + case 10: + return this.filter('translate')('OCTOBER'); + case 11: + return this.filter('translate')('NOVEMBER'); + case 12: + return this.filter('translate')('DECEMBER'); + } } monthDayDisplay(monthDay) { if (monthDay === 'L') { - return 'Last Day'; + return this.filter('translate')('LAST_DAY'); } else if (monthDay === 'LW') { - return 'Last Weekday'; + return this.filter('translate')('LAST_WEEKDAY'); } else if (monthDay === '1W') { - return 'First Weekday'; + return this.filter('translate')('FIRST_WEEKDAY'); } else { - return `${monthDay}${this.cronGenService.appendInt(monthDay)} Day`; + return `${monthDay}${this.cronGenService.appendInt(monthDay)} ${this.filter('translate')('DAY')}`; } } @@ -236,7 +266,8 @@ export class CronGenComponent { hideYearlyTab: false, hideAdvancedTab: true, use24HourTime: false, - hideSeconds: false + hideSeconds: false, + language: 'en' }, options); } diff --git a/src/cron-gen.less b/src/cron-gen.less index d2ef35e9..a56089c1 100644 --- a/src/cron-gen.less +++ b/src/cron-gen.less @@ -9,6 +9,7 @@ .cron-gen-select, .cron-gen-input, .cron-gen-checkbox { display: inline-block; + min-height: 5px; } .well-time-wrapper { @@ -51,4 +52,17 @@ width: 70px; } } + + .nav-tabs li a { + margin-right: 2px; + line-height: 1.5; + border: 1px solid #999999; + border-radius: 4px 4px 0 0; + } + + .nav-tabs li a:hover, .nav-tabs li a:focus, .nav-tabs li a:active { + border: 1px solid #999; + color: #2f3f53; + background: #eeeeee; + } } diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index a03f56ef..6f68287c 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -2,7 +2,190 @@ import {CronGenComponent} from './cron-gen.component'; import {CronGenService} from './cron-gen.service'; import {CronGenTimeSelect} from './cron-gen-time-select.component'; -angular.module('angular-cron-gen', []) +angular.module('angular-cron-gen', ['pascalprecht.translate']) + .config(function ($translateProvider) { + $translateProvider + .translations('en', { + 'MINUTES': 'Minutes', + 'HOURLY': 'Hourly', + 'DAILY': 'Daily', + 'WEEKLY': 'Weekly', + 'MONTHLY': 'Monthly', + 'YEARLY': 'Yearly', + 'ADVANCED': 'Advanced', + 'EVERY': 'Every', + 'EVERY_MONTH': 'Every', + 'MINUTE': 'minute(s)', + 'ON_SECOND': 'on second', + 'HOUR_ON_MINUTE': 'hour(s) on minute', + 'AND_SECOND': 'and second', + 'DAY_AT': 'day(s) at', + 'EVERY_WEEK_WORKING_DAY': 'Every week day (Monday through Friday) at', + 'MONDAY': 'Monday', + 'TUESDAY': 'Tuesday', + 'WEDNESDAY': 'Wednesday', + 'THURSDAY': 'Thursday', + 'FRIDAY': 'Friday', + 'SATURDAY': 'Saturday', + 'SUNDAY': 'Sunday', + 'START_TIME': 'Start time', + 'ON_THE': 'On the', + 'ON_THE_SMALL': 'on the', + 'OF_EVERY': 'of every', + 'MONTHS_AT': 'month(s) at', + 'AT': 'at', + 'OF': 'of', + 'CRON_EXPRESSION': 'Cron Expression', + 'MORE_DETAILS': 'More details about how to create these expressions can be found', + 'HERE': 'here', + 'LAST_DAY': 'Last day', + 'LAST_WEEKDAY': 'Last Weekday', + 'FIRST_WEEKDAY': 'First Weekday', + 'DAY': 'Day', + 'FIRST_PREFIX': 'st', + 'SECOND_PREFIX': 'nd', + 'THIRD_PREFIX': 'rd', + 'CARDINAL_PREFIX': 'th', + 'FIRST': 'First', + 'SECOND': 'Second', + 'THIRD': 'Third', + 'FOURTH': 'Fourth', + 'FIFTH': 'Fifth', + 'LAST': 'Last', + 'JANUARY': 'January', + 'FEBRUARY': 'February', + 'MARCH': 'March', + 'APRIL': 'April', + 'MAY': 'May', + 'JUNE': 'June', + 'JULY': 'July', + 'AUGUST': 'August', + 'SEPTEMBER': 'September', + 'OCTOBER': 'October', + 'NOVEMBER': 'November', + 'DECEMBER': 'December' + }) + .translations('it', { + 'MINUTES': 'Minuti', + 'HOURLY': 'Orario', + 'DAILY': 'Giornaliero', + 'WEEKLY': 'Settimanale', + 'MONTHLY': 'Mensile', + 'YEARLY': 'Annuale', + 'ADVANCED': 'Avanzato', + 'EVERY': 'Ogni', + 'EVERY_MONTH': 'Ogni', + 'MINUTE': 'minuto/i', + 'ON_SECOND': 'al secondo', + 'HOUR_ON_MINUTE': 'ora/e al minuto', + 'AND_SECOND': 'e secondi', + 'DAY_AT': 'giorno/i alle', + 'EVERY_WEEK_WORKING_DAY': "Ogni giorno della settimana (dal Lunedi' al Venerdi') alle", + 'MONDAY': "Lunedi'", + 'TUESDAY': "Martedi'", + 'WEDNESDAY': "Mercoledi'", + 'THURSDAY': "Giovedi'", + 'FRIDAY': "Venerdi'", + 'SATURDAY': 'Sabato', + 'SUNDAY': 'Domenica', + 'START_TIME': 'Inizio alle', + 'ON_THE': 'Il', + 'ON_THE_SMALL': 'il', + 'OF_EVERY': 'di ogni', + 'MONTHS_AT': 'mese/i il', + 'AT': 'il', + 'OF': 'di', + 'CRON_EXPRESSION': 'Sintassi Cron', + 'MORE_DETAILS': 'Maggiori informazioni sulla sintassi Cron li potete trovare', + 'HERE': 'qui', + 'LAST_DAY': 'Ultimo giorno', + 'LAST_WEEKDAY': 'Fine settimana', + 'FIRST_WEEKDAY': 'Inizio settimana', + 'DAY': 'Giorno', + 'FIRST_PREFIX': '', + 'SECOND_PREFIX': '', + 'THIRD_PREFIX': '', + 'CARDINAL_PREFIX': '', + 'FIRST': 'Primo', + 'SECOND': 'Secondo', + 'THIRD': 'Terzo', + 'FOURTH': 'Quarto', + 'FIFTH': 'Quinto', + 'LAST': 'Ultimo', + 'JANUARY': 'Gennaio', + 'FEBRUARY': 'Febbraio', + 'MARCH': 'Marzo', + 'APRIL': 'Aprile', + 'MAY': 'Maggio', + 'JUNE': 'Giugno', + 'JULY': 'Luglio', + 'AUGUST': 'Agosto', + 'SEPTEMBER': 'Settembre', + 'OCTOBER': 'Ottobre', + 'NOVEMBER': 'Novembre', + 'DECEMBER': 'Dicembre' + }) + .translations('de', { + 'MINUTES': 'Minütlich', + 'HOURLY': 'Stündlich', + 'DAILY': 'Täglich', + 'WEEKLY': 'Wöchentlich', + 'MONTHLY': 'Monatlich', + 'YEARLY': 'Jährlich', + 'ADVANCED': 'Cron Ausdruck', + 'EVERY': 'Alle', + 'EVERY_MONTH': 'Jeden', + 'MINUTE': 'Minute(n)', + 'ON_SECOND': 'auf Sekunde', + 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', + 'AND_SECOND': 'und Sekunde', + 'DAY_AT': 'Tag(e) um', + 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", + 'MONDAY': "Montag", + 'TUESDAY': "Dienstag", + 'WEDNESDAY': "Mittwoch", + 'THURSDAY': "Donnerstag", + 'FRIDAY': "Freitag", + 'SATURDAY': 'Samstag', + 'SUNDAY': 'Sonntag', + 'START_TIME': 'Startzeit', + 'ON_THE': 'Am', + 'ON_THE_SMALL': 'am', + 'OF_EVERY': 'alle', + 'MONTHS_AT': 'Monat(e) um', + 'AT': 'um', + 'OF': 'im', + 'CRON_EXPRESSION': 'Cron Ausdruck', + 'MORE_DETAILS': 'Weitere Informationen zum Erstellen dieser Ausdrücke finden Sie ', + 'HERE': 'hier', + 'LAST_DAY': 'letzter Tag', + 'LAST_WEEKDAY': 'letzter Wochentag', + 'FIRST_WEEKDAY': 'erster Wochentag', + 'DAY': 'Tag', + 'FIRST_PREFIX': '', + 'SECOND_PREFIX': '', + 'THIRD_PREFIX': '', + 'CARDINAL_PREFIX': '', + 'FIRST': 'Ersten', + 'SECOND': 'Zweiten', + 'THIRD': 'Dritten', + 'FOURTH': 'Vierten', + 'FIFTH': 'Fünften', + 'LAST': 'Letzten', + 'JANUARY': 'Januar', + 'FEBRUARY': 'Februar', + 'MARCH': 'März', + 'APRIL': 'April', + 'MAY': 'Mai', + 'JUNE': 'Juni', + 'JULY': 'Juli', + 'AUGUST': 'August', + 'SEPTEMBER': 'September', + 'OCTOBER': 'Oktober', + 'NOVEMBER': 'November', + 'DECEMBER': 'Dezember' + }); + }) .service('cronGenService', CronGenService) .component('cronGenTimeSelect', { bindings: { diff --git a/src/cron-gen.service.js b/src/cron-gen.service.js index eda73d97..4de2e386 100644 --- a/src/cron-gen.service.js +++ b/src/cron-gen.service.js @@ -1,7 +1,8 @@ const QUARTZ_REGEX = /^\s*($|#|\w+\s*=|(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?(?:,(?:[0-5]?\d)(?:(?:-|\/|\,)(?:[0-5]?\d))?)*)\s+(\?|\*|(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?(?:,(?:[01]?\d|2[0-3])(?:(?:-|\/|\,)(?:[01]?\d|2[0-3]))?)*)\s+(\?|\*|(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?(?:,(?:0?[1-9]|[12]\d|3[01])(?:(?:-|\/|\,)(?:0?[1-9]|[12]\d|3[01]))?)*)\s+(\?|\*|(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\/|\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\?|\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\s+(\?|\*|(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?(?:,(?:[1-7]|MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-|\/|\,|#)(?:[1-5]))?(?:L)?)*|\?|\*|(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?(?:,(?:MON|TUE|WED|THU|FRI|SAT|SUN)(?:(?:-)(?:MON|TUE|WED|THU|FRI|SAT|SUN))?)*)(|\s)+(\?|\*|(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?(?:,(?:|\d{4})(?:(?:-|\/|\,)(?:|\d{4}))?)*))$/; export class CronGenService { - constructor() { + constructor($filter) { + this.filter = $filter; } isValid(cronFormat, expression) { @@ -19,19 +20,19 @@ export class CronGenService { if (value.length > 1) { const secondToLastDigit = value.charAt(value.length - 2); if (secondToLastDigit === '1') { - return "th"; + return this.filter('translate')('CARDINAL_PREFIX'); } } const lastDigit = value.charAt(value.length - 1); switch (lastDigit) { case '1': - return "st"; + return this.filter('translate')('FIRST_PREFIX'); case '2': - return "nd"; + return this.filter('translate')('SECOND_PREFIX'); case '3': - return "rd"; + return this.filter('translate')('THIRD_PREFIX'); default: - return "th"; + return this.filter('translate')('CARDINAL_PREFIX'); } } diff --git a/src/templates/cron-gen.html b/src/templates/cron-gen.html index 8837ca48..7d3b525d 100644 --- a/src/templates/cron-gen.html +++ b/src/templates/cron-gen.html @@ -9,7 +9,7 @@ role="tab" data-toggle="tab" ng-click="$ctrl.setActiveTab($event, 'minutes')"> - Minutes + {{ 'MINUTES' | translate }}
  • - Hourly + {{ 'HOURLY' | translate }}
  • - Daily + {{ 'DAILY' | translate }}
  • - Weekly + {{ 'WEEKLY' | translate }}
  • - Monthly + {{ 'MONTHLY' | translate }}
  • - Yearly + {{ 'YEARLY' | translate }}
  • - Advanced + {{ 'ADVANCED' | translate}}
  • @@ -86,7 +86,7 @@ ng-show="!$ctrl.parsedOptions.hideMinutesTab" ng-class="{'active': $ctrl.activeTab === 'minutes'}">
    - Every + {{ 'EVERY' | translate}} - minute(s) - on second + {{ 'MINUTE' | translate}} + {{ 'ON_SECOND' | translate }} - hour(s) on minute + {{ 'HOUR_ON_MINUTE' | translate}} - and second + {{ 'AND_SECOND' | translate}} - day(s) at + {{ 'DAY_AT' | translate}} - Every week day (Monday through Friday) at + {{ 'EVERY_WEEK_WORKING_DAY' | translate}} - Monday + {{ 'MONDAY' | translate}}
    - Tuesday + {{ 'TUESDAY' | translate}}
    - Wednesday + {{ 'WEDNESDAY' | translate}}
    - Thursday + {{ 'THURSDAY' | translate}}
    - Friday + {{ 'FRIDAY' | translate}}
    - Saturday + {{ 'SATURDAY' | translate}}
    - Sunday + {{ 'SUNDAY' | translate}}
    - Start time + {{ 'START_TIME' | translate}} - On the + {{ 'ON_THE' | translate}} - of every + {{ 'OF_EVERY' | translate}} - month(s) at + {{ 'MONTHS_AT' | translate}} - On the + {{ 'ON_THE' | translate}} - of every + {{ 'OF_EVERY' | translate}} - month(s) at + {{ 'MONTHS_AT' | translate}} - Every + {{ 'EVERY_MONTH' | translate}} - on the + {{ 'ON_THE_SMALL' | translate}} - at + {{ 'AT' | translate}} - On the + {{ 'EVERY_MONTH' | translate}} - of + {{ 'OF' | translate}} - at + {{ 'AT' | translate}} - Cron Expression + {{ 'CRON_EXPRESSION' | translate}} - -

    More details about how to create these expressions can be found here.