From c9475a72fa92ab2d6339edfa20e2f80783eec833 Mon Sep 17 00:00:00 2001 From: David Bonomels Date: Wed, 12 Jul 2017 11:49:36 +0200 Subject: [PATCH 01/22] add i18n support --- build/cron-gen.min.js | 3 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 211 +++++++++++++++++++++++------------- build/templates.js | 2 +- example/app.js | 3 +- example/index.html | 1 + package.json | 3 + src/cron-gen.component.js | 101 ++++++++++++----- src/cron-gen.module.js | 75 ++++++++++++- src/templates/cron-gen.html | 78 ++++++------- 10 files changed, 327 insertions(+), 152 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index aa8d9b9a..16d88ff6 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=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 T=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(T),this.state.yearly.specificMonthDay.hourType=this.getHourType(T),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 v=h.substr(0,3),f=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=f,this.state.yearly.specificMonthWeek.day=v,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){if("1"===t.charAt(t.length-2))return"th"}switch(t.charAt(t.length-1)){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(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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n
\n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

{{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

\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..e91c128a 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","DAY_LOOKUPS","en","SUN","MON","TUE","WED","THU","FRI","SAT","it","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","$translate","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","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","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","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","OF_EVERY","MONTHS_AT","AT","OF","CRON_EXPRESSION","MORE_DETAILS","HERE","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 DAY_LOOKUPS = {\n 'en': {\n 'SUN': 'Sunday',\n 'MON': 'Monday',\n 'TUE': 'Tuesday',\n 'WED': 'Wednesday',\n 'THU': 'Thursday',\n 'FRI': 'Friday',\n 'SAT': 'Saturday'\n },\n 'it': {\n 'SUN': 'Domenica',\n 'MON': \"Lunedi'\",\n 'TUE': \"Martedi'\",\n 'WED': \"Mercoledi'\",\n 'THU': \"Giovedi'\",\n 'FRI': \"Venerdi'\",\n 'SAT': 'Sabato'\n }\n};\nvar MONTH_WEEK_LOOKUPS = {\n 'en': {\n '#1': 'First',\n '#2': 'Second',\n '#3': 'Third',\n '#4': 'Fourth',\n '#5': 'Fifth',\n 'L': 'Last'\n },\n 'it': {\n '#1': 'Primo',\n '#2': 'Secondo',\n '#3': 'Terzo',\n '#4': 'Quarto',\n '#5': 'Quinto',\n 'L': 'Ultimo'\n }\n};\nvar MONTH_LOOKUPS = {\n 'en': {\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 'it': {\n '1': 'Gennaio',\n '2': 'Febbraio',\n '3': 'Marzo',\n '4': 'Aprile',\n '5': 'Maggio',\n '6': 'Giugno',\n '7': 'Luglio',\n '8': 'Agosto',\n '9': 'Settembre',\n '10': 'Ottobre',\n '11': 'Novembre',\n '12': 'Dicembre'\n }\n};\n\nvar States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n};\n\nvar CronGenComponent = function () {\n function CronGenComponent($scope, $translate, 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 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[this.parsedOptions.language][day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n return MONTH_LOOKUPS[this.parsedOptions.language][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 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() {\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', ['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 '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 '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 }).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 '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 '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
\\n
\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
\\n
\\n
\\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

{{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

\\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..ed978653 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -31,30 +31,9 @@ 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,28 +51,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) { var _arr = []; @@ -156,35 +113,72 @@ 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' + 'en': { + 'SUN': 'Sunday', + 'MON': 'Monday', + 'TUE': 'Tuesday', + 'WED': 'Wednesday', + 'THU': 'Thursday', + 'FRI': 'Friday', + 'SAT': 'Saturday' + }, + 'it': { + 'SUN': 'Domenica', + 'MON': "Lunedi'", + 'TUE': "Martedi'", + 'WED': "Mercoledi'", + 'THU': "Giovedi'", + 'FRI': "Venerdi'", + 'SAT': 'Sabato' + } }; var MONTH_WEEK_LOOKUPS = { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' + 'en': { + '#1': 'First', + '#2': 'Second', + '#3': 'Third', + '#4': 'Fourth', + '#5': 'Fifth', + 'L': 'Last' + }, + 'it': { + '#1': 'Primo', + '#2': 'Secondo', + '#3': 'Terzo', + '#4': 'Quarto', + '#5': 'Quinto', + 'L': 'Ultimo' + } }; 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' + 'en': { + '1': 'January', + '2': 'February', + '3': 'March', + '4': 'April', + '5': 'May', + '6': 'June', + '7': 'July', + '8': 'August', + '9': 'September', + '10': 'October', + '11': 'November', + '12': 'December' + }, + 'it': { + '1': 'Gennaio', + '2': 'Febbraio', + '3': 'Marzo', + '4': 'Aprile', + '5': 'Maggio', + '6': 'Giugno', + '7': 'Luglio', + '8': 'Agosto', + '9': 'Settembre', + '10': 'Ottobre', + '11': 'Novembre', + '12': 'Dicembre' + } }; var States = { @@ -194,8 +188,8 @@ var States = { }; var CronGenComponent = function () { - CronGenComponent.$inject = ["$scope", "cronGenService"]; - function CronGenComponent($scope, cronGenService) { + CronGenComponent.$inject = ["$scope", "$translate", "cronGenService"]; + function CronGenComponent($scope, $translate, cronGenService) { 'ngInject'; var _this = this; @@ -203,6 +197,8 @@ var CronGenComponent = function () { classCallCheck(this, CronGenComponent); this.parsedOptions = this.mergeDefaultOptions(this.options); + $translate.use(this.parsedOptions.language); + angular.extend(this, { cronGenService: cronGenService, cronFormat: 'quartz', @@ -351,17 +347,17 @@ var CronGenComponent = function () { }, { key: 'dayDisplay', value: function dayDisplay(day) { - return DAY_LOOKUPS[day]; + return DAY_LOOKUPS[this.parsedOptions.language][day]; } }, { key: 'monthWeekDisplay', value: function monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[monthWeekNumber]; + return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber]; } }, { key: 'monthDisplay', value: function monthDisplay(monthNumber) { - return MONTH_LOOKUPS[monthNumber]; + return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber]; } }, { key: 'monthDayDisplay', @@ -415,7 +411,8 @@ var CronGenComponent = function () { hideYearlyTab: false, hideAdvancedTab: true, use24HourTime: false, - hideSeconds: false + hideSeconds: false, + language: 'en' }, options); } }, { @@ -705,7 +702,71 @@ 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', + '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', + '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' + }).translations('it', { + 'MINUTES': 'Minuti', + 'HOURLY': 'Orario', + 'DAILY': 'Giornaliero', + 'WEEKLY': 'Settimanale', + 'MONTHLY': 'Mensile', + 'YEARLY': 'Annuale', + 'ADVANCED': 'Avanzato', + 'EVERY': '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', + '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' + }); +}]).service('cronGenService', CronGenService).component('cronGenTimeSelect', { bindings: { isDisabled: '<', onChange: '&', diff --git a/build/templates.js b/build/templates.js index 6bdf2bca..e849cbd8 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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
\n
\n
\n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

{{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

\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..bfa5147e 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: 'it' }; $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..6841fb6d 100644 --- a/package.json +++ b/package.json @@ -41,5 +41,8 @@ "gulp-uglify": "^2.0.0", "gulp-uglifycss": "^1.0.6", "rollup-plugin-babel": "^2.6.1" + }, + "dependencies": { + "angular-translate": "^2.15.2" } } diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 3fd411ba..23176b17 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -1,34 +1,71 @@ const ACCEPTABLE_CRON_FORMATS = ['quartz']; const DAY_LOOKUPS = { - 'SUN': 'Sunday', - 'MON': 'Monday', - 'TUE': 'Tuesday', - 'WED': 'Wednesday', - 'THU': 'Thursday', - 'FRI': 'Friday', - 'SAT': 'Saturday' + 'en': { + 'SUN': 'Sunday', + 'MON': 'Monday', + 'TUE': 'Tuesday', + 'WED': 'Wednesday', + 'THU': 'Thursday', + 'FRI': 'Friday', + 'SAT': 'Saturday' + }, + 'it': { + 'SUN': 'Domenica', + 'MON': "Lunedi'", + 'TUE': "Martedi'", + 'WED': "Mercoledi'", + 'THU': "Giovedi'", + 'FRI': "Venerdi'", + 'SAT': 'Sabato' + } }; const MONTH_WEEK_LOOKUPS = { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' + 'en': { + '#1': 'First', + '#2': 'Second', + '#3': 'Third', + '#4': 'Fourth', + '#5': 'Fifth', + 'L': 'Last' + }, + 'it': { + '#1': 'Primo', + '#2': 'Secondo', + '#3': 'Terzo', + '#4': 'Quarto', + '#5': 'Quinto', + 'L': 'Ultimo' + } }; 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' + 'en': { + '1': 'January', + '2': 'February', + '3': 'March', + '4': 'April', + '5': 'May', + '6': 'June', + '7': 'July', + '8': 'August', + '9': 'September', + '10': 'October', + '11': 'November', + '12': 'December' + }, + 'it': { + '1': 'Gennaio', + '2': 'Febbraio', + '3': 'Marzo', + '4': 'Aprile', + '5': 'Maggio', + '6': 'Giugno', + '7': 'Luglio', + '8': 'Agosto', + '9': 'Settembre', + '10': 'Ottobre', + '11': 'Novembre', + '12': 'Dicembre' + } }; const States = { @@ -38,11 +75,14 @@ const States = { }; export class CronGenComponent { - constructor($scope, cronGenService) { + + constructor($scope, $translate, cronGenService) { 'ngInject'; this.parsedOptions = this.mergeDefaultOptions(this.options); + $translate.use(this.parsedOptions.language); + angular.extend(this, { cronGenService, cronFormat: 'quartz', @@ -179,15 +219,15 @@ export class CronGenComponent { } dayDisplay(day) { - return DAY_LOOKUPS[day]; + return DAY_LOOKUPS[this.parsedOptions.language][day]; } monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[monthWeekNumber]; + return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber]; } monthDisplay(monthNumber) { - return MONTH_LOOKUPS[monthNumber]; + return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber]; } monthDayDisplay(monthDay) { @@ -236,7 +276,8 @@ export class CronGenComponent { hideYearlyTab: false, hideAdvancedTab: true, use24HourTime: false, - hideSeconds: false + hideSeconds: false, + language: 'en' }, options); } diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index a03f56ef..0dd7451f 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -1,8 +1,75 @@ -import {CronGenComponent} from './cron-gen.component'; -import {CronGenService} from './cron-gen.service'; -import {CronGenTimeSelect} from './cron-gen-time-select.component'; +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', + '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', + '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' + }) + .translations('it', { + 'MINUTES': 'Minuti', + 'HOURLY': 'Orario', + 'DAILY': 'Giornaliero', + 'WEEKLY': 'Settimanale', + 'MONTHLY': 'Mensile', + 'YEARLY': 'Annuale', + 'ADVANCED': 'Avanzato', + 'EVERY' : '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', + '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' + }); + }) .service('cronGenService', CronGenService) .component('cronGenTimeSelect', { bindings: { diff --git a/src/templates/cron-gen.html b/src/templates/cron-gen.html index 8837ca48..2bb29ac6 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' | translate}} - on the + {{ 'ON_THE' | translate}} - at + {{ 'AT' | translate}} - On the + {{ 'ON_THE' | translate}} - of + {{ 'OF' | translate}} - at + {{ 'AT' | translate}} - Cron Expression + {{ 'CRON_EXPRESSION' | translate}} -

    More details about how to create these expressions can be found {{ 'MORE_DETAILS' | translate}} here.

    + target="_blank">{{ 'HERE' | translate}}.

    From 083ee40e81790361dc3a11738267bdd621b3dbf7 Mon Sep 17 00:00:00 2001 From: David Bonomels Date: Wed, 12 Jul 2017 12:19:07 +0200 Subject: [PATCH 02/22] combo i18n --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 48 +++++++++++++++++++++++++++------------ src/cron-gen.component.js | 11 +++++---- src/cron-gen.module.js | 20 ++++++++++++++-- src/cron-gen.service.js | 13 ++++++----- 6 files changed, 67 insertions(+), 29 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 16d88ff6..b7483523 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,language:"en"},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 T=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(T),this.state.yearly.specificMonthDay.hourType=this.getHourType(T),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 v=h.substr(0,3),f=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=f,this.state.yearly.specificMonthWeek.day=v,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){if("1"===t.charAt(t.length-2))return"th"}switch(t.charAt(t.length-1)){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(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'), +!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=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 T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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 $=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour($),this.state.yearly.specificMonthDay.hourType=this.getHourType($),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),v=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=v,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(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(d);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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 e91c128a..93cec514 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","en","SUN","MON","TUE","WED","THU","FRI","SAT","it","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","$translate","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","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","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","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","OF_EVERY","MONTHS_AT","AT","OF","CRON_EXPRESSION","MORE_DETAILS","HERE","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 DAY_LOOKUPS = {\n 'en': {\n 'SUN': 'Sunday',\n 'MON': 'Monday',\n 'TUE': 'Tuesday',\n 'WED': 'Wednesday',\n 'THU': 'Thursday',\n 'FRI': 'Friday',\n 'SAT': 'Saturday'\n },\n 'it': {\n 'SUN': 'Domenica',\n 'MON': \"Lunedi'\",\n 'TUE': \"Martedi'\",\n 'WED': \"Mercoledi'\",\n 'THU': \"Giovedi'\",\n 'FRI': \"Venerdi'\",\n 'SAT': 'Sabato'\n }\n};\nvar MONTH_WEEK_LOOKUPS = {\n 'en': {\n '#1': 'First',\n '#2': 'Second',\n '#3': 'Third',\n '#4': 'Fourth',\n '#5': 'Fifth',\n 'L': 'Last'\n },\n 'it': {\n '#1': 'Primo',\n '#2': 'Secondo',\n '#3': 'Terzo',\n '#4': 'Quarto',\n '#5': 'Quinto',\n 'L': 'Ultimo'\n }\n};\nvar MONTH_LOOKUPS = {\n 'en': {\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 'it': {\n '1': 'Gennaio',\n '2': 'Febbraio',\n '3': 'Marzo',\n '4': 'Aprile',\n '5': 'Maggio',\n '6': 'Giugno',\n '7': 'Luglio',\n '8': 'Agosto',\n '9': 'Settembre',\n '10': 'Ottobre',\n '11': 'Novembre',\n '12': 'Dicembre'\n }\n};\n\nvar States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n};\n\nvar CronGenComponent = function () {\n function CronGenComponent($scope, $translate, 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 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[this.parsedOptions.language][day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n return MONTH_LOOKUPS[this.parsedOptions.language][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 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() {\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', ['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 '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 '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 }).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 '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 '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","DAY_LOOKUPS","en","SUN","MON","TUE","WED","THU","FRI","SAT","it","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","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","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","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","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","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 DAY_LOOKUPS = {\n 'en': {\n 'SUN': 'Sunday',\n 'MON': 'Monday',\n 'TUE': 'Tuesday',\n 'WED': 'Wednesday',\n 'THU': 'Thursday',\n 'FRI': 'Friday',\n 'SAT': 'Saturday'\n },\n 'it': {\n 'SUN': 'Domenica',\n 'MON': \"Lunedi'\",\n 'TUE': \"Martedi'\",\n 'WED': \"Mercoledi'\",\n 'THU': \"Giovedi'\",\n 'FRI': \"Venerdi'\",\n 'SAT': 'Sabato'\n }\n};\nvar MONTH_WEEK_LOOKUPS = {\n 'en': {\n '#1': 'First',\n '#2': 'Second',\n '#3': 'Third',\n '#4': 'Fourth',\n '#5': 'Fifth',\n 'L': 'Last'\n },\n 'it': {\n '#1': 'Primo',\n '#2': 'Secondo',\n '#3': 'Terzo',\n '#4': 'Quarto',\n '#5': 'Quinto',\n 'L': 'Ultimo'\n }\n};\nvar MONTH_LOOKUPS = {\n 'en': {\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 'it': {\n '1': 'Gennaio',\n '2': 'Febbraio',\n '3': 'Marzo',\n '4': 'Aprile',\n '5': 'Maggio',\n '6': 'Giugno',\n '7': 'Luglio',\n '8': 'Agosto',\n '9': 'Settembre',\n '10': 'Ottobre',\n '11': 'Novembre',\n '12': 'Dicembre'\n }\n};\n\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 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[this.parsedOptions.language][day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber];\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 '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 '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 }).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 '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 '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 ed978653..6ed21d94 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -188,8 +188,8 @@ var States = { }; var CronGenComponent = function () { - CronGenComponent.$inject = ["$scope", "$translate", "cronGenService"]; - function CronGenComponent($scope, $translate, cronGenService) { + CronGenComponent.$inject = ["$scope", "$translate", "$filter", "cronGenService"]; + function CronGenComponent($scope, $translate, $filter, cronGenService) { 'ngInject'; var _this = this; @@ -201,6 +201,7 @@ var CronGenComponent = function () { angular.extend(this, { cronGenService: cronGenService, + filter: $filter, cronFormat: 'quartz', currentState: States.INIT, activeTab: function () { @@ -363,13 +364,13 @@ var CronGenComponent = function () { 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'); } } }, { @@ -599,8 +600,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, [{ @@ -621,19 +625,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'); } } }, { @@ -733,7 +737,15 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'OF': 'of', 'CRON_EXPRESSION': 'Cron Expression', 'MORE_DETAILS': 'More details about how to create these expressions can be found', - 'HERE': 'here' + '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' }).translations('it', { 'MINUTES': 'Minuti', 'HOURLY': 'Orario', @@ -764,7 +776,15 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'OF': 'di', 'CRON_EXPRESSION': 'Sintassi Cron', 'MORE_DETAILS': 'Maggiori informazioni sulla sintassi Cron li potete trovare', - 'HERE': 'qui' + 'HERE': 'qui', + 'LAST_DAY': 'Ultimo giorno', + 'LAST_WEEKDAY': 'Fine settimana', + 'FIRST_WEEKDAY': 'Inizio settimana', + 'DAY': 'Giorno', + 'FIRST_PREFIX': '', + 'SECOND_PREFIX': '', + 'THIRD_PREFIX': '', + 'CARDINAL_PREFIX': '' }); }]).service('cronGenService', CronGenService).component('cronGenTimeSelect', { bindings: { diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 23176b17..6a00827d 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -76,7 +76,7 @@ const States = { export class CronGenComponent { - constructor($scope, $translate, cronGenService) { + constructor($scope, $translate, $filter, cronGenService) { 'ngInject'; this.parsedOptions = this.mergeDefaultOptions(this.options); @@ -85,6 +85,7 @@ export class CronGenComponent { angular.extend(this, { cronGenService, + filter: $filter, cronFormat: 'quartz', currentState: States.INIT, activeTab: (() => { @@ -232,13 +233,13 @@ export class CronGenComponent { 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')}`; } } diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index 0dd7451f..3bea47b8 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -35,7 +35,15 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'OF' : 'of', 'CRON_EXPRESSION' : 'Cron Expression', 'MORE_DETAILS' : 'More details about how to create these expressions can be found', - 'HERE' : 'here' + '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' }) .translations('it', { 'MINUTES': 'Minuti', @@ -67,7 +75,15 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'OF' : 'di', 'CRON_EXPRESSION' : 'Sintassi Cron', 'MORE_DETAILS' : 'Maggiori informazioni sulla sintassi Cron li potete trovare', - 'HERE' : 'qui' + 'HERE' : 'qui', + 'LAST_DAY' : 'Ultimo giorno', + 'LAST_WEEKDAY' : 'Fine settimana', + 'FIRST_WEEKDAY' : 'Inizio settimana', + 'DAY' : 'Giorno', + 'FIRST_PREFIX' : '', + 'SECOND_PREFIX' : '', + 'THIRD_PREFIX' : '', + 'CARDINAL_PREFIX' : '' }); }) .service('cronGenService', CronGenService) 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'); } } From c2a53f9ba07c6bb1c107031062509a7e19ed1377 Mon Sep 17 00:00:00 2001 From: khauth Date: Thu, 20 Jun 2019 12:24:42 +0200 Subject: [PATCH 03/22] add German translation --- src/cron-gen.component.js | 93 +++++----------- src/cron-gen.module.js | 224 +++++++++++++++++++++++++++----------- 2 files changed, 187 insertions(+), 130 deletions(-) diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 6a00827d..fa0a1ccd 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -1,71 +1,34 @@ const ACCEPTABLE_CRON_FORMATS = ['quartz']; const DAY_LOOKUPS = { - 'en': { - 'SUN': 'Sunday', - 'MON': 'Monday', - 'TUE': 'Tuesday', - 'WED': 'Wednesday', - 'THU': 'Thursday', - 'FRI': 'Friday', - 'SAT': 'Saturday' - }, - 'it': { - 'SUN': 'Domenica', - 'MON': "Lunedi'", - 'TUE': "Martedi'", - 'WED': "Mercoledi'", - 'THU': "Giovedi'", - 'FRI': "Venerdi'", - 'SAT': 'Sabato' - } + 'SUN': this.filter('translate')('SUNDAY'), + 'MON': this.filter('translate')('MONDAY'), + 'TUE': this.filter('translate')('TUESDAY'), + 'WED': this.filter('translate')('WEDNESDAY'), + 'THU': this.filter('translate')('THURSDAY'), + 'FRI': this.filter('translate')('FRIDAY'), + 'SAT': this.filter('translate')('SATURDAY') }; const MONTH_WEEK_LOOKUPS = { - 'en': { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' - }, - 'it': { - '#1': 'Primo', - '#2': 'Secondo', - '#3': 'Terzo', - '#4': 'Quarto', - '#5': 'Quinto', - 'L': 'Ultimo' - } + '#1': this.filter('translate')('FIRST'), + '#2': this.filter('translate')('SECOND'), + '#3': this.filter('translate')('THIRD'), + '#4': this.filter('translate')('FOURTH'), + '#5': this.filter('translate')('FIFTH'), + 'L': this.filter('translate')('LAST') }; const MONTH_LOOKUPS = { - 'en': { - '1': 'January', - '2': 'February', - '3': 'March', - '4': 'April', - '5': 'May', - '6': 'June', - '7': 'July', - '8': 'August', - '9': 'September', - '10': 'October', - '11': 'November', - '12': 'December' - }, - 'it': { - '1': 'Gennaio', - '2': 'Febbraio', - '3': 'Marzo', - '4': 'Aprile', - '5': 'Maggio', - '6': 'Giugno', - '7': 'Luglio', - '8': 'Agosto', - '9': 'Settembre', - '10': 'Ottobre', - '11': 'Novembre', - '12': 'Dicembre' - } + '1': this.filter('translate')('JANUARY'), + '2': this.filter('translate')('FEBRUARY'), + '3': this.filter('translate')('MARCH'), + '4': this.filter('translate')('APRIL'), + '5': this.filter('translate')('MAY'), + '6': this.filter('translate')('JUNE'), + '7': this.filter('translate')('JULY'), + '8': this.filter('translate')('AUGUST'), + '9': this.filter('translate')('SEPTEMBER'), + '10': this.filter('translate')('OCTOBER'), + '11': this.filter('translate')('NOVEMBER'), + '12': this.filter('translate')('DECEMBER') }; const States = { @@ -220,15 +183,15 @@ export class CronGenComponent { } dayDisplay(day) { - return DAY_LOOKUPS[this.parsedOptions.language][day]; + return DAY_LOOKUPS[day]; } monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber]; + return MONTH_WEEK_LOOKUPS[monthWeekNumber]; } monthDisplay(monthNumber) { - return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber]; + return MONTH_LOOKUPS[monthNumber]; } monthDayDisplay(monthDay) { diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index 3bea47b8..4bb71ff2 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -1,6 +1,6 @@ -import { CronGenComponent } from './cron-gen.component'; -import { CronGenService } from './cron-gen.service'; -import { CronGenTimeSelect } from './cron-gen-time-select.component'; +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', ['pascalprecht.translate']) .config(function ($translateProvider) { @@ -13,37 +13,55 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'MONTHLY': 'Monthly', 'YEARLY': 'Yearly', 'ADVANCED': 'Advanced', - 'EVERY' : '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', - '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' + 'EVERY': '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', + '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', @@ -53,37 +71,113 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'MONTHLY': 'Mensile', 'YEARLY': 'Annuale', 'ADVANCED': 'Avanzato', - 'EVERY' : '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', - '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' : '' + 'EVERY': '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', + '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': 'Jede(n)', + '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', + 'OF_EVERY': 'an jedem', + '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': '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' }); }) .service('cronGenService', CronGenService) From 093545b22811296237bc7c9e8a6421f9021b046d Mon Sep 17 00:00:00 2001 From: khauth Date: Thu, 20 Jun 2019 13:41:33 +0200 Subject: [PATCH 04/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 190 ++++++++++++++++++++++++-------------- 3 files changed, 125 insertions(+), 69 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index b7483523..4dcffece 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,language:"en"},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 T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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 $=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour($),this.state.yearly.specificMonthDay.hourType=this.getHourType($),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),v=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=v,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(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(d);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'), +!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=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),T=h.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(d.substring(2));var b=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(b),this.state.monthly.specificWeekDay.hourType=this.getHourType(b),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 $=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour($),this.state.yearly.specificMonthDay.hourType=this.getHourType($),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 D=h.substr(0,3),f=h.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(d);var v=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(v),this.state.yearly.specificMonthWeek.hourType=this.getHourType(v),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(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(d);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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 93cec514..77c84e0c 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","en","SUN","MON","TUE","WED","THU","FRI","SAT","it","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","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","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","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","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","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 DAY_LOOKUPS = {\n 'en': {\n 'SUN': 'Sunday',\n 'MON': 'Monday',\n 'TUE': 'Tuesday',\n 'WED': 'Wednesday',\n 'THU': 'Thursday',\n 'FRI': 'Friday',\n 'SAT': 'Saturday'\n },\n 'it': {\n 'SUN': 'Domenica',\n 'MON': \"Lunedi'\",\n 'TUE': \"Martedi'\",\n 'WED': \"Mercoledi'\",\n 'THU': \"Giovedi'\",\n 'FRI': \"Venerdi'\",\n 'SAT': 'Sabato'\n }\n};\nvar MONTH_WEEK_LOOKUPS = {\n 'en': {\n '#1': 'First',\n '#2': 'Second',\n '#3': 'Third',\n '#4': 'Fourth',\n '#5': 'Fifth',\n 'L': 'Last'\n },\n 'it': {\n '#1': 'Primo',\n '#2': 'Secondo',\n '#3': 'Terzo',\n '#4': 'Quarto',\n '#5': 'Quinto',\n 'L': 'Ultimo'\n }\n};\nvar MONTH_LOOKUPS = {\n 'en': {\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 'it': {\n '1': 'Gennaio',\n '2': 'Febbraio',\n '3': 'Marzo',\n '4': 'Aprile',\n '5': 'Maggio',\n '6': 'Giugno',\n '7': 'Luglio',\n '8': 'Agosto',\n '9': 'Settembre',\n '10': 'Ottobre',\n '11': 'Novembre',\n '12': 'Dicembre'\n }\n};\n\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 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[this.parsedOptions.language][day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber];\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 '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 '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 }).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 '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 '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","DAY_LOOKUPS","SUN","filter","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","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","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","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","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","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 DAY_LOOKUPS = {\n 'SUN': undefined.filter('translate')('SUNDAY'),\n 'MON': undefined.filter('translate')('MONDAY'),\n 'TUE': undefined.filter('translate')('TUESDAY'),\n 'WED': undefined.filter('translate')('WEDNESDAY'),\n 'THU': undefined.filter('translate')('THURSDAY'),\n 'FRI': undefined.filter('translate')('FRIDAY'),\n 'SAT': undefined.filter('translate')('SATURDAY')\n};\nvar MONTH_WEEK_LOOKUPS = {\n '#1': undefined.filter('translate')('FIRST'),\n '#2': undefined.filter('translate')('SECOND'),\n '#3': undefined.filter('translate')('THIRD'),\n '#4': undefined.filter('translate')('FOURTH'),\n '#5': undefined.filter('translate')('FIFTH'),\n 'L': undefined.filter('translate')('LAST')\n};\nvar MONTH_LOOKUPS = {\n '1': undefined.filter('translate')('JANUARY'),\n '2': undefined.filter('translate')('FEBRUARY'),\n '3': undefined.filter('translate')('MARCH'),\n '4': undefined.filter('translate')('APRIL'),\n '5': undefined.filter('translate')('MAY'),\n '6': undefined.filter('translate')('JUNE'),\n '7': undefined.filter('translate')('JULY'),\n '8': undefined.filter('translate')('AUGUST'),\n '9': undefined.filter('translate')('SEPTEMBER'),\n '10': undefined.filter('translate')('OCTOBER'),\n '11': undefined.filter('translate')('NOVEMBER'),\n '12': undefined.filter('translate')('DECEMBER')\n};\n\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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 6ed21d94..3eb29c93 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -113,72 +113,35 @@ var toConsumableArray = function (arr) { var ACCEPTABLE_CRON_FORMATS = ['quartz']; var DAY_LOOKUPS = { - 'en': { - 'SUN': 'Sunday', - 'MON': 'Monday', - 'TUE': 'Tuesday', - 'WED': 'Wednesday', - 'THU': 'Thursday', - 'FRI': 'Friday', - 'SAT': 'Saturday' - }, - 'it': { - 'SUN': 'Domenica', - 'MON': "Lunedi'", - 'TUE': "Martedi'", - 'WED': "Mercoledi'", - 'THU': "Giovedi'", - 'FRI': "Venerdi'", - 'SAT': 'Sabato' - } + 'SUN': undefined.filter('translate')('SUNDAY'), + 'MON': undefined.filter('translate')('MONDAY'), + 'TUE': undefined.filter('translate')('TUESDAY'), + 'WED': undefined.filter('translate')('WEDNESDAY'), + 'THU': undefined.filter('translate')('THURSDAY'), + 'FRI': undefined.filter('translate')('FRIDAY'), + 'SAT': undefined.filter('translate')('SATURDAY') }; var MONTH_WEEK_LOOKUPS = { - 'en': { - '#1': 'First', - '#2': 'Second', - '#3': 'Third', - '#4': 'Fourth', - '#5': 'Fifth', - 'L': 'Last' - }, - 'it': { - '#1': 'Primo', - '#2': 'Secondo', - '#3': 'Terzo', - '#4': 'Quarto', - '#5': 'Quinto', - 'L': 'Ultimo' - } + '#1': undefined.filter('translate')('FIRST'), + '#2': undefined.filter('translate')('SECOND'), + '#3': undefined.filter('translate')('THIRD'), + '#4': undefined.filter('translate')('FOURTH'), + '#5': undefined.filter('translate')('FIFTH'), + 'L': undefined.filter('translate')('LAST') }; var MONTH_LOOKUPS = { - 'en': { - '1': 'January', - '2': 'February', - '3': 'March', - '4': 'April', - '5': 'May', - '6': 'June', - '7': 'July', - '8': 'August', - '9': 'September', - '10': 'October', - '11': 'November', - '12': 'December' - }, - 'it': { - '1': 'Gennaio', - '2': 'Febbraio', - '3': 'Marzo', - '4': 'Aprile', - '5': 'Maggio', - '6': 'Giugno', - '7': 'Luglio', - '8': 'Agosto', - '9': 'Settembre', - '10': 'Ottobre', - '11': 'Novembre', - '12': 'Dicembre' - } + '1': undefined.filter('translate')('JANUARY'), + '2': undefined.filter('translate')('FEBRUARY'), + '3': undefined.filter('translate')('MARCH'), + '4': undefined.filter('translate')('APRIL'), + '5': undefined.filter('translate')('MAY'), + '6': undefined.filter('translate')('JUNE'), + '7': undefined.filter('translate')('JULY'), + '8': undefined.filter('translate')('AUGUST'), + '9': undefined.filter('translate')('SEPTEMBER'), + '10': undefined.filter('translate')('OCTOBER'), + '11': undefined.filter('translate')('NOVEMBER'), + '12': undefined.filter('translate')('DECEMBER') }; var States = { @@ -348,17 +311,17 @@ var CronGenComponent = function () { }, { key: 'dayDisplay', value: function dayDisplay(day) { - return DAY_LOOKUPS[this.parsedOptions.language][day]; + return DAY_LOOKUPS[day]; } }, { key: 'monthWeekDisplay', value: function monthWeekDisplay(monthWeekNumber) { - return MONTH_WEEK_LOOKUPS[this.parsedOptions.language][monthWeekNumber]; + return MONTH_WEEK_LOOKUPS[monthWeekNumber]; } }, { key: 'monthDisplay', value: function monthDisplay(monthNumber) { - return MONTH_LOOKUPS[this.parsedOptions.language][monthNumber]; + return MONTH_LOOKUPS[monthNumber]; } }, { key: 'monthDayDisplay', @@ -745,7 +708,25 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'FIRST_PREFIX': 'st', 'SECOND_PREFIX': 'nd', 'THIRD_PREFIX': 'rd', - 'CARDINAL_PREFIX': 'th' + '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', @@ -784,7 +765,82 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'FIRST_PREFIX': '', 'SECOND_PREFIX': '', 'THIRD_PREFIX': '', - 'CARDINAL_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': 'Jede(n)', + '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', + 'OF_EVERY': 'an jedem', + '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': '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' }); }]).service('cronGenService', CronGenService).component('cronGenTimeSelect', { bindings: { From 7469e24083962bc8616460d7a7c6a6fc25372433 Mon Sep 17 00:00:00 2001 From: Martin Sznapka Date: Thu, 20 Jun 2019 14:34:47 +0200 Subject: [PATCH 05/22] Update package.json version 0.0.25 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6841fb6d..98d277d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.0.23", + "version": "0.0.25", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", From 31f45da32ecb8e29043808771553507420d51ec6 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 10:18:52 +0200 Subject: [PATCH 06/22] add German translation --- src/cron-gen.component.js | 77 +++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index fa0a1ccd..b69c25b8 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -1,47 +1,13 @@ -const ACCEPTABLE_CRON_FORMATS = ['quartz']; -const DAY_LOOKUPS = { - 'SUN': this.filter('translate')('SUNDAY'), - 'MON': this.filter('translate')('MONDAY'), - 'TUE': this.filter('translate')('TUESDAY'), - 'WED': this.filter('translate')('WEDNESDAY'), - 'THU': this.filter('translate')('THURSDAY'), - 'FRI': this.filter('translate')('FRIDAY'), - 'SAT': this.filter('translate')('SATURDAY') -}; -const MONTH_WEEK_LOOKUPS = { - '#1': this.filter('translate')('FIRST'), - '#2': this.filter('translate')('SECOND'), - '#3': this.filter('translate')('THIRD'), - '#4': this.filter('translate')('FOURTH'), - '#5': this.filter('translate')('FIFTH'), - 'L': this.filter('translate')('LAST') -}; -const MONTH_LOOKUPS = { - '1': this.filter('translate')('JANUARY'), - '2': this.filter('translate')('FEBRUARY'), - '3': this.filter('translate')('MARCH'), - '4': this.filter('translate')('APRIL'), - '5': this.filter('translate')('MAY'), - '6': this.filter('translate')('JUNE'), - '7': this.filter('translate')('JULY'), - '8': this.filter('translate')('AUGUST'), - '9': this.filter('translate')('SEPTEMBER'), - '10': this.filter('translate')('OCTOBER'), - '11': this.filter('translate')('NOVEMBER'), - '12': this.filter('translate')('DECEMBER') -}; - -const States = { - INIT: 1, - DIRTY: 2, - CLEAN: 3, -}; - export class CronGenComponent { - constructor($scope, $translate, $filter, cronGenService) { 'ngInject'; + const ACCEPTABLE_CRON_FORMATS = ['quartz']; + const States = { + INIT: 1, + DIRTY: 2, + CLEAN: 3, + }; this.parsedOptions = this.mergeDefaultOptions(this.options); $translate.use(this.parsedOptions.language); @@ -183,14 +149,45 @@ export class CronGenComponent { } dayDisplay(day) { + const DAY_LOOKUPS = { + 'SUN': this.filter('translate')('SUNDAY'), + 'MON': this.filter('translate')('MONDAY'), + 'TUE': this.filter('translate')('TUESDAY'), + 'WED': this.filter('translate')('WEDNESDAY'), + 'THU': this.filter('translate')('THURSDAY'), + 'FRI': this.filter('translate')('FRIDAY'), + 'SAT': this.filter('translate')('SATURDAY') + }; return DAY_LOOKUPS[day]; } monthWeekDisplay(monthWeekNumber) { + const MONTH_WEEK_LOOKUPS = { + '#1': this.filter('translate')('FIRST'), + '#2': this.filter('translate')('SECOND'), + '#3': this.filter('translate')('THIRD'), + '#4': this.filter('translate')('FOURTH'), + '#5': this.filter('translate')('FIFTH'), + 'L': this.filter('translate')('LAST') + }; return MONTH_WEEK_LOOKUPS[monthWeekNumber]; } monthDisplay(monthNumber) { + const MONTH_LOOKUPS = { + '1': this.filter('translate')('JANUARY'), + '2': this.filter('translate')('FEBRUARY'), + '3': this.filter('translate')('MARCH'), + '4': this.filter('translate')('APRIL'), + '5': this.filter('translate')('MAY'), + '6': this.filter('translate')('JUNE'), + '7': this.filter('translate')('JULY'), + '8': this.filter('translate')('AUGUST'), + '9': this.filter('translate')('SEPTEMBER'), + '10': this.filter('translate')('OCTOBER'), + '11': this.filter('translate')('NOVEMBER'), + '12': this.filter('translate')('DECEMBER') + }; return MONTH_LOOKUPS[monthNumber]; } From 330e4cd38597e6ff651f7d87df616d7eb742d5de Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 10:32:53 +0200 Subject: [PATCH 07/22] add German translation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 98d277d9..5dc5f3e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.0.25", + "version": "0.0.26", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", From 060cb701db02687976b0e3689910089161454e51 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 11:22:58 +0200 Subject: [PATCH 08/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 76 +++++++++++++++++++-------------------- package.json | 2 +- 4 files changed, 40 insertions(+), 42 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 4dcffece..67f008ad 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,language:"en"},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),T=h.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(d.substring(2));var b=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(b),this.state.monthly.specificWeekDay.hourType=this.getHourType(b),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 $=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour($),this.state.yearly.specificMonthDay.hourType=this.getHourType($),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 D=h.substr(0,3),f=h.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(d);var v=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(v),this.state.yearly.specificMonthWeek.hourType=this.getHourType(v),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(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(d);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'), +!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=States.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===States.DIRTY)return void(this.currentState=States.CLEAN);this.currentState=States.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],c=a[3],o=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(c.substring(2));var d=parseInt(l);this.state.daily.everyDays.hours=this.processHour(d),this.state.daily.everyDays.hourType=this.getHourType(d),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 y=parseInt(l);this.state.daily.everyWeekDay.hours=this.processHour(y),this.state.daily.everyWeekDay.hourType=this.getHourType(y),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 u=parseInt(l);this.state.weekly.hours=this.processHour(u),this.state.weekly.hourType=this.getHourType(u),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=c,this.state.monthly.specificDay.months=parseInt(o.substring(2));var p=parseInt(l);this.state.monthly.specificDay.hours=this.processHour(p),this.state.monthly.specificDay.hourType=this.getHourType(p),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 m=h.substr(0,3),g=h.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=g,this.state.monthly.specificWeekDay.day=m,this.state.monthly.specificWeekDay.months=parseInt(o.substring(2));var T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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(o),this.state.yearly.specificMonthDay.day=c;var b=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(b),this.state.yearly.specificMonthDay.hourType=this.getHourType(b),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 $=h.substr(0,3),D=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=D,this.state.yearly.specificMonthWeek.day=$,this.state.yearly.specificMonthWeek.month=parseInt(o);var f=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(f),this.state.yearly.specificMonthWeek.hourType=this.getHourType(f),this.state.yearly.specificMonthWeek.minutes=parseInt(i),this.state.yearly.specificMonthWeek.seconds=parseInt(r)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),r=/^\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}))?)*))$/,i=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(r);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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 77c84e0c..0bbee35a 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","filter","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","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","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","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","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","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 DAY_LOOKUPS = {\n 'SUN': undefined.filter('translate')('SUNDAY'),\n 'MON': undefined.filter('translate')('MONDAY'),\n 'TUE': undefined.filter('translate')('TUESDAY'),\n 'WED': undefined.filter('translate')('WEDNESDAY'),\n 'THU': undefined.filter('translate')('THURSDAY'),\n 'FRI': undefined.filter('translate')('FRIDAY'),\n 'SAT': undefined.filter('translate')('SATURDAY')\n};\nvar MONTH_WEEK_LOOKUPS = {\n '#1': undefined.filter('translate')('FIRST'),\n '#2': undefined.filter('translate')('SECOND'),\n '#3': undefined.filter('translate')('THIRD'),\n '#4': undefined.filter('translate')('FOURTH'),\n '#5': undefined.filter('translate')('FIFTH'),\n 'L': undefined.filter('translate')('LAST')\n};\nvar MONTH_LOOKUPS = {\n '1': undefined.filter('translate')('JANUARY'),\n '2': undefined.filter('translate')('FEBRUARY'),\n '3': undefined.filter('translate')('MARCH'),\n '4': undefined.filter('translate')('APRIL'),\n '5': undefined.filter('translate')('MAY'),\n '6': undefined.filter('translate')('JUNE'),\n '7': undefined.filter('translate')('JULY'),\n '8': undefined.filter('translate')('AUGUST'),\n '9': undefined.filter('translate')('SEPTEMBER'),\n '10': undefined.filter('translate')('OCTOBER'),\n '11': undefined.filter('translate')('NOVEMBER'),\n '12': undefined.filter('translate')('DECEMBER')\n};\n\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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","ACCEPTABLE_CRON_FORMATS","States","INIT","DIRTY","CLEAN","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_this2","formCtrl","name","ngModelCtrl","$validators","testCronExpr","isValid","$event","tab","preventDefault","ngDisabled","regenerateCron","monthWeekNumber","#1","#2","#3","#4","#5","L","monthNumber","1","2","3","4","5","6","7","8","9","10","11","12","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","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","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":"CAAC,WACD,YAEA,IAAIA,GAAiB,SAAUC,EAAUC,GACvC,KAAMD,YAAoBC,IACxB,KAAM,IAAIC,WAAU,sCAIpBC,EAAc,WAChB,QAASC,GAAiBC,EAAQC,GAChC,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,GAAIE,GAAaH,EAAMC,EACvBE,GAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,SAAWF,KAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAIlD,MAAO,UAAUR,EAAae,EAAYC,GAGxC,MAFID,IAAYZ,EAAiBH,EAAYiB,UAAWF,GACpDC,GAAab,EAAiBH,EAAagB,GACxChB,MA8BPkB,EAAgB,WAClB,QAASC,GAAcC,EAAKd,GAC1B,GAAIe,MACAC,GAAK,EACLC,GAAK,EACLC,MAAKC,EAET,KACE,IAAK,GAAiCC,GAA7BC,EAAKP,EAAIQ,OAAOC,cAAmBP,GAAMI,EAAKC,EAAGG,QAAQC,QAChEV,EAAKW,KAAKN,EAAGO,QAET3B,GAAKe,EAAKd,SAAWD,GAH8CgB,GAAK,IAK9E,MAAOY,GACPX,GAAK,EACLC,EAAKU,UAEL,KACOZ,GAAMK,EAAG,QAAWA,EAAG,iBAE5B,GAAIJ,EAAI,KAAMC,IAIlB,MAAOH,GAGT,MAAO,UAAUD,EAAKd,GACpB,GAAI6B,MAAMC,QAAQhB,GAChB,MAAOA,EACF,IAAIQ,OAAOC,WAAYjB,QAAOQ,GACnC,MAAOD,GAAcC,EAAKd,EAE1B,MAAM,IAAIL,WAAU,4DAiBtBoC,EAAoB,SAAUjB,GAChC,GAAIe,MAAMC,QAAQhB,GAAM,CACtB,IAAK,GAAId,GAAI,EAAGgC,EAAOH,MAAMf,EAAIb,QAASD,EAAIc,EAAIb,OAAQD,IAAKgC,EAAKhC,GAAKc,EAAId,EAE7E,OAAOgC,GAEP,MAAOH,OAAMI,KAAKnB,iBAKlB,QAASoB,GAAiBC,EAAQC,EAAYC,EAASC,GACnD,UAEA,IAAIC,GAAQC,IAEZhD,GAAegD,KAAMN,EACrB,IAAIO,IAA2B,UAC3BC,GACAC,KAAM,EACNC,MAAO,EACPC,MAAO,EAoHX,IAlHAL,KAAKM,cAAgBN,KAAKO,oBAAoBP,KAAKQ,SAEnDZ,EAAWa,IAAIT,KAAKM,cAAcI,UAElCC,QAAQC,OAAOZ,MACXF,eAAgBA,EAChBe,OAAQhB,EACRiB,WAAY,SACZC,aAAcb,EAAOC,KACrBa,UAAW,WACP,IAAKjB,EAAMO,cAAcW,eACrB,MAAO,SACJ,KAAKlB,EAAMO,cAAcY,cAC5B,MAAO,QACJ,KAAKnB,EAAMO,cAAca,aAC5B,MAAO,OACJ,KAAKpB,EAAMO,cAAcc,cAC5B,MAAO,QACJ,KAAKrB,EAAMO,cAAce,eAC5B,MAAO,SACJ,KAAKtB,EAAMO,cAAcgB,cAC5B,MAAO,QACJ,KAAKvB,EAAMO,cAAciB,gBAC5B,MAAO,UAEX,MAAM,sCAEVC,cAAe1B,EAAe0B,gBAC9BC,OACIC,SACIA,QAAS,EACTC,QAAS,GAEbC,QACIC,MAAO,EACPH,QAAS,EACTC,QAAS,GAEbG,OACIC,OAAQ,YACRC,WACIC,KAAM,EACNJ,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,MAExDE,cACIP,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,OAG5DG,QACIC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLf,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,MAExDW,SACId,OAAQ,cACRe,aACIC,IAAK,IACLC,OAAQ,EACRnB,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,MAExDe,iBACIC,UAAW,KACXH,IAAK,MACLC,OAAQ,EACRnB,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,OAG5DiB,QACIpB,OAAQ,mBACRqB,kBACIC,MAAO,EACPN,IAAK,IACLlB,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,MAExDoB,mBACIJ,UAAW,KACXH,IAAK,MACLM,MAAO,EACPxB,MAAO7B,KAAKM,cAAc4B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAUnC,KAAKM,cAAc4B,cAAgB,KAAO,OAG5DqB,UACIC,WAAY,uBAMiC,GAArDvD,EAAwBwD,QAAQzD,KAAKc,YACrC,KAAM,wBAA0Bd,KAAKc,WAAa,oBAItDnB,GAAO+D,OAAO,gBAAiB,SAAUC,GACrC,MAAO5D,GAAM6D,kBAAkBD,KAInChE,EAAO+D,OAAO,gBAAiB,SAAUlD,GACrC,MAAOT,GAAMO,cAAgBP,EAAMQ,oBAAoBC,KACxD,GAgTP,oEA7SApD,EAAYsC,IACR1B,IAAK,UACLmB,MAAO,WACH,GAAI0E,GAAS7D,IAGTA,MAAK8D,UAAY9D,KAAK+D,OACtB/D,KAAKgE,YAAYC,YAAYC,aAAe,SAAUV,GAClD,MAAOK,GAAO/D,eAAeqE,QAAQN,EAAO/C,WAAY0C,QAKpExF,IAAK,eACLmB,MAAO,SAAsBiF,EAAQC,GACjCD,EAAOE,iBACFtE,KAAKuE,aACNvE,KAAKgB,UAAYqD,EACjBrE,KAAKwE,qBAIbxG,IAAK,aACLmB,MAAO,SAAoB4D,GAUvB,OARIH,IAAO5C,KAAKa,OAAO,aAAa,UAChCyB,IAAOtC,KAAKa,OAAO,aAAa,UAChC0B,IAAOvC,KAAKa,OAAO,aAAa,WAChC2B,IAAOxC,KAAKa,OAAO,aAAa,aAChC4B,IAAOzC,KAAKa,OAAO,aAAa,YAChC6B,IAAO1C,KAAKa,OAAO,aAAa,UAChC8B,IAAO3C,KAAKa,OAAO,aAAa,aAEjBkC,MAGvB/E,IAAK,mBACLmB,MAAO,SAA0BsF,GAS7B,OAPIC,KAAM1E,KAAKa,OAAO,aAAa,SAC/B8D,KAAM3E,KAAKa,OAAO,aAAa,UAC/B+D,KAAM5E,KAAKa,OAAO,aAAa,SAC/BgE,KAAM7E,KAAKa,OAAO,aAAa,UAC/BiE,KAAM9E,KAAKa,OAAO,aAAa,SAC/BkE,EAAK/E,KAAKa,OAAO,aAAa,SAER4D,MAG9BzG,IAAK,eACLmB,MAAO,SAAsB6F,GAezB,OAbIC,EAAKjF,KAAKa,OAAO,aAAa,WAC9BqE,EAAKlF,KAAKa,OAAO,aAAa,YAC9BsE,EAAKnF,KAAKa,OAAO,aAAa,SAC9BuE,EAAKpF,KAAKa,OAAO,aAAa,SAC9BwE,EAAKrF,KAAKa,OAAO,aAAa,OAC9ByE,EAAKtF,KAAKa,OAAO,aAAa,QAC9B0E,EAAKvF,KAAKa,OAAO,aAAa,QAC9B2E,EAAKxF,KAAKa,OAAO,aAAa,UAC9B4E,EAAKzF,KAAKa,OAAO,aAAa,aAC9B6E,GAAM1F,KAAKa,OAAO,aAAa,WAC/B8E,GAAM3F,KAAKa,OAAO,aAAa,YAC/B+E,GAAM5F,KAAKa,OAAO,aAAa,aAEdmE,MAGzBhH,IAAK,kBACLmB,MAAO,SAAyB0G,GAC5B,MAAiB,MAAbA,EACO7F,KAAKa,OAAO,aAAa,YACZ,OAAbgF,EACA7F,KAAKa,OAAO,aAAa,gBACZ,OAAbgF,EACA7F,KAAKa,OAAO,aAAa,iBAEzB,GAAKgF,EAAW7F,KAAKF,eAAegG,UAAUD,GAAY,IAAM7F,KAAKa,OAAO,aAAa,UAIxG7C,IAAK,cACLmB,MAAO,SAAqB0C,GACxB,MAAI7B,MAAKM,cAAc4B,cACZL,GAECA,EAAQ,IAAM,GAAK,KAInC7D,IAAK,cACLmB,MAAO,SAAqB0C,GACxB,MAAO7B,MAAKM,cAAc4B,cAAgB,KAAOL,GAAS,GAAK,KAAO,QAG1E7D,IAAK,aACLmB,MAAO,SAAoB4G,EAAM5D,GAC7B,MAAInC,MAAKM,cAAc4B,cACZ6D,EAEa,OAAb5D,EAA6B,KAAT4D,EAAc,EAAIA,EAAgB,KAATA,EAAc,GAAKA,EAAO,MAItF/H,IAAK,sBACLmB,MAAO,SAA6BqB,GAChC,MAAOG,SAAQC,QACXoF,eAAgB,8BAChBC,gBAAiB,+BACjBC,eAAgB,qCAChBC,kBAAmB,wCACnBlF,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBW,eAAe,EACfkE,aAAa,EACb1F,SAAU,MACXF,MAGPxC,IAAK,iBACLmB,MAAO,WACH,GAAIkH,GAASrG,IAGb,QADAA,KAAKe,aAAeb,OAAOE,MACnBJ,KAAKgB,WACT,IAAK,UACDhB,KAAKsG,QAAUtG,KAAKyB,MAAMC,QAAQC,QAAU,MAAQ3B,KAAKyB,MAAMC,QAAQA,QAAU,cACjF,MACJ,KAAK,SACD1B,KAAKsG,QAAUtG,KAAKyB,MAAMG,OAAOD,QAAU,IAAM3B,KAAKyB,MAAMG,OAAOF,QAAU,MAAQ1B,KAAKyB,MAAMG,OAAOC,MAAQ,YAC/G,MACJ,KAAK,QACD,OAAQ7B,KAAKyB,MAAMK,MAAMC,QACrB,IAAK,YACD/B,KAAKsG,QAAUtG,KAAKyB,MAAMK,MAAME,UAAUL,QAAU,IAAM3B,KAAKyB,MAAMK,MAAME,UAAUN,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAMK,MAAME,UAAUH,MAAO7B,KAAKyB,MAAMK,MAAME,UAAUG,UAAY,MAAQnC,KAAKyB,MAAMK,MAAME,UAAUC,KAAO,QACxO,MACJ,KAAK,eACDjC,KAAKsG,QAAUtG,KAAKyB,MAAMK,MAAMM,aAAaT,QAAU,IAAM3B,KAAKyB,MAAMK,MAAMM,aAAaV,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAMK,MAAMM,aAAaP,MAAO7B,KAAKyB,MAAMK,MAAMM,aAAaD,UAAY,gBAC1M,MACJ,SACI,KAAM,sCAEd,KACJ,KAAK,SACD,GAAIF,GAAOjC,KAAKwB,cAAcS,KAAKuE,OAAO,SAAUC,EAAK1D,GACrD,MAAOsD,GAAO5E,MAAMY,OAAOU,GAAO0D,EAAIC,QAAQ3D,IAAQ0D,OACnDE,KAAK,IACZ3G,MAAKsG,QAAUtG,KAAKyB,MAAMY,OAAOV,QAAU,IAAM3B,KAAKyB,MAAMY,OAAOX,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAMY,OAAOR,MAAO7B,KAAKyB,MAAMY,OAAOF,UAAY,QAAUF,EAAO,IAC3K,MACJ,KAAK,UACD,OAAQjC,KAAKyB,MAAMoB,QAAQd,QACvB,IAAK,cACD/B,KAAKsG,QAAUtG,KAAKyB,MAAMoB,QAAQC,YAAYnB,QAAU,IAAM3B,KAAKyB,MAAMoB,QAAQC,YAAYpB,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAMoB,QAAQC,YAAYjB,MAAO7B,KAAKyB,MAAMoB,QAAQC,YAAYX,UAAY,IAAMnC,KAAKyB,MAAMoB,QAAQC,YAAYC,IAAM,MAAQ/C,KAAKyB,MAAMoB,QAAQC,YAAYE,OAAS,MACzS,MACJ,KAAK,kBACDhD,KAAKsG,QAAUtG,KAAKyB,MAAMoB,QAAQI,gBAAgBtB,QAAU,IAAM3B,KAAKyB,MAAMoB,QAAQI,gBAAgBvB,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAMoB,QAAQI,gBAAgBpB,MAAO7B,KAAKyB,MAAMoB,QAAQI,gBAAgBd,UAAY,QAAUnC,KAAKyB,MAAMoB,QAAQI,gBAAgBD,OAAS,IAAMhD,KAAKyB,MAAMoB,QAAQI,gBAAgBF,IAAM/C,KAAKyB,MAAMoB,QAAQI,gBAAgBC,UAAY,IAClX,MACJ,SACI,KAAM,wCAEd,KACJ,KAAK,SACD,OAAQlD,KAAKyB,MAAM0B,OAAOpB,QACtB,IAAK,mBACD/B,KAAKsG,QAAUtG,KAAKyB,MAAM0B,OAAOC,iBAAiBzB,QAAU,IAAM3B,KAAKyB,MAAM0B,OAAOC,iBAAiB1B,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAM0B,OAAOC,iBAAiBvB,MAAO7B,KAAKyB,MAAM0B,OAAOC,iBAAiBjB,UAAY,IAAMnC,KAAKyB,MAAM0B,OAAOC,iBAAiBL,IAAM,IAAM/C,KAAKyB,MAAM0B,OAAOC,iBAAiBC,MAAQ,MAC9T,MACJ,KAAK,oBACDrD,KAAKsG,QAAUtG,KAAKyB,MAAM0B,OAAOG,kBAAkB3B,QAAU,IAAM3B,KAAKyB,MAAM0B,OAAOG,kBAAkB5B,QAAU,IAAM1B,KAAKuG,WAAWvG,KAAKyB,MAAM0B,OAAOG,kBAAkBzB,MAAO7B,KAAKyB,MAAM0B,OAAOG,kBAAkBnB,UAAY,MAAQnC,KAAKyB,MAAM0B,OAAOG,kBAAkBD,MAAQ,IAAMrD,KAAKyB,MAAM0B,OAAOG,kBAAkBP,IAAM/C,KAAKyB,MAAM0B,OAAOG,kBAAkBJ,UAAY,IACtX,MACJ,SACI,KAAM,uCAEd,KACJ,KAAK,WACDlD,KAAKsG,QAAUtG,KAAKyB,MAAM8B,SAASC,UACnC,MACJ,SACI,KAAM,wCAIlBxF,IAAK,oBACLmB,MAAO,SAA2BwE,GAC9B,GAAIiD,GAAS5G,IAEb,IAAIA,KAAKe,eAAiBb,OAAOE,MAE7B,YADAJ,KAAKe,aAAeb,OAAOG,MAG3BL,MAAKe,aAAeb,OAAOG,KAG/B,IAAIwG,GAAWlD,EAAKmD,MAAM,IAC1B,IAAwB,IAApBD,EAASpJ,QAAoC,IAApBoJ,EAASpJ,OAmGlC,KAAM,iEAlGN,IAAIsJ,GAAY3I,EAAcyI,EAAU,GACpClF,EAAUoF,EAAU,GACpBrF,EAAUqF,EAAU,GACpBlF,EAAQkF,EAAU,GAClBC,EAAaD,EAAU,GACvB1D,EAAQ0D,EAAU,GAClBE,EAAYF,EAAU,EAE1B,IAAIpD,EAAKuD,MAAM,+BACXlH,KAAKgB,UAAY,UACjBhB,KAAKyB,MAAMC,QAAQA,QAAUyF,SAASzF,EAAQ0F,UAAU,IACxDpH,KAAKyB,MAAMC,QAAQC,QAAUwF,SAASxF,OACnC,IAAIgC,EAAKuD,MAAM,gCAClBlH,KAAKgB,UAAY,SACjBhB,KAAKyB,MAAMG,OAAOC,MAAQsF,SAAStF,EAAMuF,UAAU,IACnDpH,KAAKyB,MAAMG,OAAOF,QAAUyF,SAASzF,GACrC1B,KAAKyB,MAAMG,OAAOD,QAAUwF,SAASxF,OAClC,IAAIgC,EAAKuD,MAAM,+BAAgC,CAClDlH,KAAKgB,UAAY,QACjBhB,KAAKyB,MAAMK,MAAMC,OAAS,YAC1B/B,KAAKyB,MAAMK,MAAME,UAAUC,KAAOkF,SAASH,EAAWI,UAAU,GAChE,IAAIC,GAAcF,SAAStF,EAC3B7B,MAAKyB,MAAMK,MAAME,UAAUH,MAAQ7B,KAAKsH,YAAYD,GACpDrH,KAAKyB,MAAMK,MAAME,UAAUG,SAAWnC,KAAKuH,YAAYF,GACvDrH,KAAKyB,MAAMK,MAAME,UAAUN,QAAUyF,SAASzF,GAC9C1B,KAAKyB,MAAMK,MAAME,UAAUL,QAAUwF,SAASxF,OAC3C,IAAIgC,EAAKuD,MAAM,gCAAiC,CACnDlH,KAAKgB,UAAY,QACjBhB,KAAKyB,MAAMK,MAAMC,OAAS,cAC1B,IAAIyF,GAAeL,SAAStF,EAC5B7B,MAAKyB,MAAMK,MAAMM,aAAaP,MAAQ7B,KAAKsH,YAAYE,GACvDxH,KAAKyB,MAAMK,MAAMM,aAAaD,SAAWnC,KAAKuH,YAAYC,GAC1DxH,KAAKyB,MAAMK,MAAMM,aAAaV,QAAUyF,SAASzF,GACjD1B,KAAKyB,MAAMK,MAAMM,aAAaT,QAAUwF,SAASxF,OAC9C,IAAIgC,EAAKuD,MAAM,uFAAwF,CAC1GlH,KAAKgB,UAAY,SACjBhB,KAAKwB,cAAcS,KAAKwF,QAAQ,SAAUC,GACtC,MAAOd,GAAOnF,MAAMY,OAAOqF,IAAW,IAE1CT,EAAUH,MAAM,KAAKW,QAAQ,SAAUC,GACnC,MAAOd,GAAOnF,MAAMY,OAAOqF,IAAW,GAE1C,IAAIC,GAAgBR,SAAStF,EAC7B7B,MAAKyB,MAAMY,OAAOR,MAAQ7B,KAAKsH,YAAYK,GAC3C3H,KAAKyB,MAAMY,OAAOF,SAAWnC,KAAKuH,YAAYI,GAC9C3H,KAAKyB,MAAMY,OAAOX,QAAUyF,SAASzF,GACrC1B,KAAKyB,MAAMY,OAAOV,QAAUwF,SAASxF,OAClC,IAAIgC,EAAKuD,MAAM,0CAA2C,CAC7DlH,KAAKgB,UAAY,UACjBhB,KAAKyB,MAAMoB,QAAQd,OAAS,cAC5B/B,KAAKyB,MAAMoB,QAAQC,YAAYC,IAAMiE,EACrChH,KAAKyB,MAAMoB,QAAQC,YAAYE,OAASmE,SAAS9D,EAAM+D,UAAU,GACjE,IAAIQ,GAAgBT,SAAStF,EAC7B7B,MAAKyB,MAAMoB,QAAQC,YAAYjB,MAAQ7B,KAAKsH,YAAYM,GACxD5H,KAAKyB,MAAMoB,QAAQC,YAAYX,SAAWnC,KAAKuH,YAAYK,GAC3D5H,KAAKyB,MAAMoB,QAAQC,YAAYpB,QAAUyF,SAASzF,GAClD1B,KAAKyB,MAAMoB,QAAQC,YAAYnB,QAAUwF,SAASxF,OAC/C,IAAIgC,EAAKuD,MAAM,sEAAuE,CACzF,GAAInE,GAAMkE,EAAUY,OAAO,EAAG,GAC1B3E,EAAY+D,EAAUY,OAAO,EACjC7H,MAAKgB,UAAY,UACjBhB,KAAKyB,MAAMoB,QAAQd,OAAS,kBAC5B/B,KAAKyB,MAAMoB,QAAQI,gBAAgBC,UAAYA,EAC/ClD,KAAKyB,MAAMoB,QAAQI,gBAAgBF,IAAMA,EACzC/C,KAAKyB,MAAMoB,QAAQI,gBAAgBD,OAASmE,SAAS9D,EAAM+D,UAAU,GACrE,IAAIU,GAAgBX,SAAStF,EAC7B7B,MAAKyB,MAAMoB,QAAQI,gBAAgBpB,MAAQ7B,KAAKsH,YAAYQ,GAC5D9H,KAAKyB,MAAMoB,QAAQI,gBAAgBd,SAAWnC,KAAKuH,YAAYO,GAC/D9H,KAAKyB,MAAMoB,QAAQI,gBAAgBvB,QAAUyF,SAASzF,GACtD1B,KAAKyB,MAAMoB,QAAQI,gBAAgBtB,QAAUwF,SAASxF,OACnD,IAAIgC,EAAKuD,MAAM,uCAAwC,CAC1DlH,KAAKgB,UAAY,SACjBhB,KAAKyB,MAAM0B,OAAOpB,OAAS,mBAC3B/B,KAAKyB,MAAM0B,OAAOC,iBAAiBC,MAAQ8D,SAAS9D,GACpDrD,KAAKyB,MAAM0B,OAAOC,iBAAiBL,IAAMiE,CACzC,IAAIe,GAAgBZ,SAAStF,EAC7B7B,MAAKyB,MAAM0B,OAAOC,iBAAiBvB,MAAQ7B,KAAKsH,YAAYS,GAC5D/H,KAAKyB,MAAM0B,OAAOC,iBAAiBjB,SAAWnC,KAAKuH,YAAYQ,GAC/D/H,KAAKyB,MAAM0B,OAAOC,iBAAiB1B,QAAUyF,SAASzF,GACtD1B,KAAKyB,MAAM0B,OAAOC,iBAAiBzB,QAAUwF,SAASxF,OACnD,IAAIgC,EAAKuD,MAAM,mEAAoE,CACtF,GAAIc,GAAOf,EAAUY,OAAO,EAAG,GAC3BI,EAAahB,EAAUY,OAAO,EAClC7H,MAAKgB,UAAY,SACjBhB,KAAKyB,MAAM0B,OAAOpB,OAAS,oBAC3B/B,KAAKyB,MAAM0B,OAAOG,kBAAkBJ,UAAY+E,EAChDjI,KAAKyB,MAAM0B,OAAOG,kBAAkBP,IAAMiF,EAC1ChI,KAAKyB,MAAM0B,OAAOG,kBAAkBD,MAAQ8D,SAAS9D,EACrD,IAAI6E,GAAgBf,SAAStF,EAC7B7B,MAAKyB,MAAM0B,OAAOG,kBAAkBzB,MAAQ7B,KAAKsH,YAAYY,GAC7DlI,KAAKyB,MAAM0B,OAAOG,kBAAkBnB,SAAWnC,KAAKuH,YAAYW,GAChElI,KAAKyB,MAAM0B,OAAOG,kBAAkB5B,QAAUyF,SAASzF,GACvD1B,KAAKyB,MAAM0B,OAAOG,kBAAkB3B,QAAUwF,SAASxF,OAEvD3B,MAAKgB,UAAY,WACjBhB,KAAKyB,MAAM8B,SAASC,WAAaG,MAO1CjE,KAGPyI,EAAe,gvCAGf,QAASC,GAAevI,GACpB7C,EAAegD,KAAMoI,GAErBpI,KAAKa,OAAShB,EA+ElB,6BA5EAzC,EAAYgL,IACRpK,IAAK,UACLmB,MAAO,SAAiB2B,EAAY0C,GAChC,GAAI6E,GAAsB7E,EAAW8E,aACrC,QAAQxH,GACJ,IAAK,SACD,QAASuH,EAAoBnB,MAAMiB,EACvC,SACI,KAAM,wBAA0BrH,EAAa,yBAIzD9C,IAAK,YACLmB,MAAO,SAAmBoJ,GACtB,GAAIpJ,GAAQ,GAAKoJ,CACjB,IAAIpJ,EAAM1B,OAAS,EAAG,CAElB,GAA0B,MADF0B,EAAMqJ,OAAOrJ,EAAM1B,OAAS,GAEhD,MAAOuC,MAAKa,OAAO,aAAa,mBAIxC,OADgB1B,EAAMqJ,OAAOrJ,EAAM1B,OAAS,IAExC,IAAK,IACD,MAAOuC,MAAKa,OAAO,aAAa,eACpC,KAAK,IACD,MAAOb,MAAKa,OAAO,aAAa,gBACpC,KAAK,IACD,MAAOb,MAAKa,OAAO,aAAa,eACpC,SACI,MAAOb,MAAKa,OAAO,aAAa,uBAI5C7C,IAAK,YACLmB,MAAO,SAAmBoJ,GACtB,MAAgC,MAAxB,GAAKA,GAAQ9K,OAAe,IAAM8K,EAAS,GAAKA,KAG5DvK,IAAK,QACLmB,MAAO,SAAesJ,EAAOC,GAMzB,OALmB,KAARA,IACPA,EAAMD,EACNA,EAAQ,GAGRA,EAAQ,GAAKC,EAAM,EAAG,KAAM,sCAEhC,OAAIA,GAAMD,KACI/B,OAAOnH,EAAkB,GAAIF,OAAMqJ,EAAMD,KAASE,IAAI,SAAUC,EAAKC,GAC3E,MAAOA,GAAMJ,IAEVA,EAAQC,KACLhC,OAAOnH,EAAkB,GAAIF,OAAMoJ,EAAQC,KAAOC,IAAI,SAAUC,EAAKC,GAC3E,MAAOH,GAAMG,IAEP,GAAIxJ,UAGtBrB,IAAK,gBACLmB,MAAO,WACH,OACI6D,OAAQhD,KAAK8I,MAAM,EAAG,IACtBC,YAAa,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3C9G,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACjDP,QAAS1B,KAAK8I,MAAM,EAAG,IACvBE,YAAahJ,KAAK8I,MAAM,IACxBnH,QAAS3B,KAAK8I,MAAM,IACpBjH,MAAO7B,KAAK8I,MAAM,EAAG,IACrBG,UAAWjJ,KAAK8I,MAAM,EAAG,IACzBI,oBAAqB,MAAMxC,OAAOnH,KAAqBmH,OAAOnH,EAAkB,GAAIF,OAAM,MAAMsJ,IAAI,SAAUC,EAAKC,GAC/G,MAAO,IAAMA,EAAM,OACjB,KAAM,WAIjBT,KAGPe,EAAoB,QAASA,GAAkBxJ,EAAQG,GACvD,UAEA,IAAIC,GAAQC,IAEZhD,GAAegD,KAAMmJ,GACrBnJ,KAAKF,eAAiBA,EAEtBE,KAAKwB,eACDE,QAAS5B,EAAegJ,MAAM,IAC9BnH,QAAS7B,EAAegJ,MAAM,IAC9BM,WAAY,KAAM,OAGtBzJ,EAAO+D,OAAO,sBAAuB,WACjC3D,EAAMyB,cAAcK,MAAQ9B,EAAMmC,cAAgBnC,EAAMD,eAAegJ,MAAM,IAAM/I,EAAMD,eAAegJ,MAAM,EAAG,6CAIzHnI,QAAQ0I,OAAO,oBAAqB,2BAA2BC,QAAA,qBAAO,SAAUC,GAC5EA,EAAmBC,aAAa,MAC5BC,QAAW,UACXC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,QAAW,UACXC,OAAU,SACVC,SAAY,WACZC,MAAS,QACTC,OAAU,YACVC,UAAa,YACbC,eAAkB,oBAClBC,WAAc,aACdC,OAAU,YACVC,uBAA0B,4CAC1BC,OAAU,SACVC,QAAW,UACXC,UAAa,YACbC,SAAY,WACZC,OAAU,SACVC,SAAY,WACZC,OAAU,SACVC,WAAc,aACdC,OAAU,SACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,kBACnBC,aAAgB,kEAChBC,KAAQ,OACRC,SAAY,WACZC,aAAgB,eAChBC,cAAiB,gBACjBC,IAAO,MACPC,aAAgB,KAChBC,cAAiB,KACjBC,aAAgB,KAChBC,gBAAmB,KACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,KAAQ,OACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,SACXC,OAAU,SACVC,MAAS,cACTC,OAAU,cACVC,QAAW,UACXC,OAAU,UACVC,SAAY,WACZC,MAAS,OACTC,OAAU,WACVC,UAAa,aACbC,eAAkB,kBAClBC,WAAc,YACdC,OAAU,gBACVC,uBAA0B,6DAC1BC,OAAU,UACVC,QAAW,WACXC,UAAa,aACbC,SAAY,WACZC,OAAU,WACVC,SAAY,SACZC,OAAU,WACVC,WAAc,cACdC,OAAU,KACVC,SAAY,UACZC,UAAa,YACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,8DAChBC,KAAQ,MACRC,SAAY,gBACZC,aAAgB,iBAChBC,cAAiB,mBACjBC,IAAO,SACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,UACVC,MAAS,QACTC,OAAU,SACVC,MAAS,SACTC,KAAQ,SACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,SACTC,IAAO,SACPC,KAAQ,SACRC,KAAQ,SACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,YACXC,OAAU,YACVC,MAAS,UACTC,OAAU,cACVC,QAAW,YACXC,OAAU,WACVC,SAAY,gBACZC,MAAS,UACTC,OAAU,YACVC,UAAa,cACbC,eAAkB,uBAClBC,WAAc,cACdC,OAAU,YACVC,uBAA0B,0CAC1BC,OAAU,UACVC,QAAW,YACXC,UAAa,YACbC,SAAY,cACZC,OAAU,WACVC,SAAY,UACZC,OAAU,UACVC,WAAc,YACdC,OAAU,KACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,mEAChBC,KAAQ,OACRC,SAAY,cACZC,aAAgB,oBAChBC,cAAiB,mBACjBC,IAAO,MACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,KAAQ,OACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,gBAEjBC,QAAQ,iBAAkB7E,GAAgB8E,UAAU,qBACnDC,UACIC,WAAY,IACZC,SAAU,IACVC,WAAY,IACZC,MAAO,IACPC,YAAa,IACbtL,cAAe,IACfkE,YAAa,IACbqH,WAAY,KAEhBC,YAAa,6CACbC,WAAYxE,IACb+D,UAAU,WACTC,UACI7G,QAAS,IACT/B,WAAY,IACZ/D,QAAS,IACTM,WAAY,IACZ4M,YAAa,IACb3J,KAAM,KAEV6J,SACI5J,YAAa,UACb6J,eAAgB,cAChB/J,SAAU,UAEd4J,aAAA,SAAa,SAAqBI,GAC9B,UAEA,OAAOA,GAAOJ,aAAe,mCAGjCC,WAAYjO,4ECx2BhBqO,EAAAC,IAAA,6CAAA,2uDACAD,EAAAC,IAAA,iCAAA","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 CronGenComponent = function () {\n function CronGenComponent($scope, $translate, $filter, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n var ACCEPTABLE_CRON_FORMATS = ['quartz'];\n var States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n };\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 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 var DAY_LOOKUPS = {\n 'SUN': this.filter('translate')('SUNDAY'),\n 'MON': this.filter('translate')('MONDAY'),\n 'TUE': this.filter('translate')('TUESDAY'),\n 'WED': this.filter('translate')('WEDNESDAY'),\n 'THU': this.filter('translate')('THURSDAY'),\n 'FRI': this.filter('translate')('FRIDAY'),\n 'SAT': this.filter('translate')('SATURDAY')\n };\n return DAY_LOOKUPS[day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n var MONTH_WEEK_LOOKUPS = {\n '#1': this.filter('translate')('FIRST'),\n '#2': this.filter('translate')('SECOND'),\n '#3': this.filter('translate')('THIRD'),\n '#4': this.filter('translate')('FOURTH'),\n '#5': this.filter('translate')('FIFTH'),\n 'L': this.filter('translate')('LAST')\n };\n return MONTH_WEEK_LOOKUPS[monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n var MONTH_LOOKUPS = {\n '1': this.filter('translate')('JANUARY'),\n '2': this.filter('translate')('FEBRUARY'),\n '3': this.filter('translate')('MARCH'),\n '4': this.filter('translate')('APRIL'),\n '5': this.filter('translate')('MAY'),\n '6': this.filter('translate')('JUNE'),\n '7': this.filter('translate')('JULY'),\n '8': this.filter('translate')('AUGUST'),\n '9': this.filter('translate')('SEPTEMBER'),\n '10': this.filter('translate')('OCTOBER'),\n '11': this.filter('translate')('NOVEMBER'),\n '12': this.filter('translate')('DECEMBER')\n };\n return MONTH_LOOKUPS[monthNumber];\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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 3eb29c93..d74c719a 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -111,45 +111,6 @@ var toConsumableArray = function (arr) { } }; -var ACCEPTABLE_CRON_FORMATS = ['quartz']; -var DAY_LOOKUPS = { - 'SUN': undefined.filter('translate')('SUNDAY'), - 'MON': undefined.filter('translate')('MONDAY'), - 'TUE': undefined.filter('translate')('TUESDAY'), - 'WED': undefined.filter('translate')('WEDNESDAY'), - 'THU': undefined.filter('translate')('THURSDAY'), - 'FRI': undefined.filter('translate')('FRIDAY'), - 'SAT': undefined.filter('translate')('SATURDAY') -}; -var MONTH_WEEK_LOOKUPS = { - '#1': undefined.filter('translate')('FIRST'), - '#2': undefined.filter('translate')('SECOND'), - '#3': undefined.filter('translate')('THIRD'), - '#4': undefined.filter('translate')('FOURTH'), - '#5': undefined.filter('translate')('FIFTH'), - 'L': undefined.filter('translate')('LAST') -}; -var MONTH_LOOKUPS = { - '1': undefined.filter('translate')('JANUARY'), - '2': undefined.filter('translate')('FEBRUARY'), - '3': undefined.filter('translate')('MARCH'), - '4': undefined.filter('translate')('APRIL'), - '5': undefined.filter('translate')('MAY'), - '6': undefined.filter('translate')('JUNE'), - '7': undefined.filter('translate')('JULY'), - '8': undefined.filter('translate')('AUGUST'), - '9': undefined.filter('translate')('SEPTEMBER'), - '10': undefined.filter('translate')('OCTOBER'), - '11': undefined.filter('translate')('NOVEMBER'), - '12': undefined.filter('translate')('DECEMBER') -}; - -var States = { - INIT: 1, - DIRTY: 2, - CLEAN: 3 -}; - var CronGenComponent = function () { CronGenComponent.$inject = ["$scope", "$translate", "$filter", "cronGenService"]; function CronGenComponent($scope, $translate, $filter, cronGenService) { @@ -158,6 +119,12 @@ var CronGenComponent = function () { var _this = this; classCallCheck(this, CronGenComponent); + var ACCEPTABLE_CRON_FORMATS = ['quartz']; + var States = { + INIT: 1, + DIRTY: 2, + CLEAN: 3 + }; this.parsedOptions = this.mergeDefaultOptions(this.options); $translate.use(this.parsedOptions.language); @@ -311,16 +278,47 @@ var CronGenComponent = function () { }, { key: 'dayDisplay', value: function dayDisplay(day) { + var DAY_LOOKUPS = { + 'SUN': this.filter('translate')('SUNDAY'), + 'MON': this.filter('translate')('MONDAY'), + 'TUE': this.filter('translate')('TUESDAY'), + 'WED': this.filter('translate')('WEDNESDAY'), + 'THU': this.filter('translate')('THURSDAY'), + 'FRI': this.filter('translate')('FRIDAY'), + 'SAT': this.filter('translate')('SATURDAY') + }; return DAY_LOOKUPS[day]; } }, { key: 'monthWeekDisplay', value: function monthWeekDisplay(monthWeekNumber) { + var MONTH_WEEK_LOOKUPS = { + '#1': this.filter('translate')('FIRST'), + '#2': this.filter('translate')('SECOND'), + '#3': this.filter('translate')('THIRD'), + '#4': this.filter('translate')('FOURTH'), + '#5': this.filter('translate')('FIFTH'), + 'L': this.filter('translate')('LAST') + }; return MONTH_WEEK_LOOKUPS[monthWeekNumber]; } }, { key: 'monthDisplay', value: function monthDisplay(monthNumber) { + var MONTH_LOOKUPS = { + '1': this.filter('translate')('JANUARY'), + '2': this.filter('translate')('FEBRUARY'), + '3': this.filter('translate')('MARCH'), + '4': this.filter('translate')('APRIL'), + '5': this.filter('translate')('MAY'), + '6': this.filter('translate')('JUNE'), + '7': this.filter('translate')('JULY'), + '8': this.filter('translate')('AUGUST'), + '9': this.filter('translate')('SEPTEMBER'), + '10': this.filter('translate')('OCTOBER'), + '11': this.filter('translate')('NOVEMBER'), + '12': this.filter('translate')('DECEMBER') + }; return MONTH_LOOKUPS[monthNumber]; } }, { diff --git a/package.json b/package.json index 5dc5f3e5..f1340e8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.0.26", + "version": "0.1.0", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", From e8727c018153da80f3c68d0bd95f5688a9aa54af Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 12:06:32 +0200 Subject: [PATCH 09/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 90 ++++++++++++++++++++++++--------------- package.json | 2 +- src/cron-gen.component.js | 90 ++++++++++++++++++++++++--------------- 5 files changed, 115 insertions(+), 71 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 67f008ad..611ab43a 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,language:"en"},e)}},{key:"regenerateCron",value:function(){var e=this;switch(this.currentState=States.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===States.DIRTY)return void(this.currentState=States.CLEAN);this.currentState=States.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],c=a[3],o=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(c.substring(2));var d=parseInt(l);this.state.daily.everyDays.hours=this.processHour(d),this.state.daily.everyDays.hourType=this.getHourType(d),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 y=parseInt(l);this.state.daily.everyWeekDay.hours=this.processHour(y),this.state.daily.everyWeekDay.hourType=this.getHourType(y),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 u=parseInt(l);this.state.weekly.hours=this.processHour(u),this.state.weekly.hourType=this.getHourType(u),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=c,this.state.monthly.specificDay.months=parseInt(o.substring(2));var p=parseInt(l);this.state.monthly.specificDay.hours=this.processHour(p),this.state.monthly.specificDay.hourType=this.getHourType(p),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 m=h.substr(0,3),g=h.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=g,this.state.monthly.specificWeekDay.day=m,this.state.monthly.specificWeekDay.months=parseInt(o.substring(2));var T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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(o),this.state.yearly.specificMonthDay.day=c;var b=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(b),this.state.yearly.specificMonthDay.hourType=this.getHourType(b),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 $=h.substr(0,3),D=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=D,this.state.yearly.specificMonthWeek.day=$,this.state.yearly.specificMonthWeek.month=parseInt(o);var f=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(f),this.state.yearly.specificMonthWeek.hourType=this.getHourType(f),this.state.yearly.specificMonthWeek.minutes=parseInt(i),this.state.yearly.specificMonthWeek.seconds=parseInt(r)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),r=/^\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}))?)*))$/,i=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(r);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'), +!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=States.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===States.DIRTY)return void(this.currentState=States.CLEAN);this.currentState=States.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],c=a[3],o=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(c.substring(2));var d=parseInt(l);this.state.daily.everyDays.hours=this.processHour(d),this.state.daily.everyDays.hourType=this.getHourType(d),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 y=parseInt(l);this.state.daily.everyWeekDay.hours=this.processHour(y),this.state.daily.everyWeekDay.hourType=this.getHourType(y),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 u=parseInt(l);this.state.weekly.hours=this.processHour(u),this.state.weekly.hourType=this.getHourType(u),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=c,this.state.monthly.specificDay.months=parseInt(o.substring(2));var p=parseInt(l);this.state.monthly.specificDay.hours=this.processHour(p),this.state.monthly.specificDay.hourType=this.getHourType(p),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 m=h.substr(0,3),g=h.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=g,this.state.monthly.specificWeekDay.day=m,this.state.monthly.specificWeekDay.months=parseInt(o.substring(2));var T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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(o),this.state.yearly.specificMonthDay.day=c;var b=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(b),this.state.yearly.specificMonthDay.hourType=this.getHourType(b),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 $=h.substr(0,3),D=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=D,this.state.yearly.specificMonthWeek.day=$,this.state.yearly.specificMonthWeek.month=parseInt(o);var f=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(f),this.state.yearly.specificMonthWeek.hourType=this.getHourType(f),this.state.yearly.specificMonthWeek.minutes=parseInt(i),this.state.yearly.specificMonthWeek.seconds=parseInt(r)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),r=/^\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}))?)*))$/,i=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(r);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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 0bbee35a..9331e3c2 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","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","ACCEPTABLE_CRON_FORMATS","States","INIT","DIRTY","CLEAN","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_this2","formCtrl","name","ngModelCtrl","$validators","testCronExpr","isValid","$event","tab","preventDefault","ngDisabled","regenerateCron","monthWeekNumber","#1","#2","#3","#4","#5","L","monthNumber","1","2","3","4","5","6","7","8","9","10","11","12","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","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","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 CronGenComponent = function () {\n function CronGenComponent($scope, $translate, $filter, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n var ACCEPTABLE_CRON_FORMATS = ['quartz'];\n var States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n };\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 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 var DAY_LOOKUPS = {\n 'SUN': this.filter('translate')('SUNDAY'),\n 'MON': this.filter('translate')('MONDAY'),\n 'TUE': this.filter('translate')('TUESDAY'),\n 'WED': this.filter('translate')('WEDNESDAY'),\n 'THU': this.filter('translate')('THURSDAY'),\n 'FRI': this.filter('translate')('FRIDAY'),\n 'SAT': this.filter('translate')('SATURDAY')\n };\n return DAY_LOOKUPS[day];\n }\n }, {\n key: 'monthWeekDisplay',\n value: function monthWeekDisplay(monthWeekNumber) {\n var MONTH_WEEK_LOOKUPS = {\n '#1': this.filter('translate')('FIRST'),\n '#2': this.filter('translate')('SECOND'),\n '#3': this.filter('translate')('THIRD'),\n '#4': this.filter('translate')('FOURTH'),\n '#5': this.filter('translate')('FIFTH'),\n 'L': this.filter('translate')('LAST')\n };\n return MONTH_WEEK_LOOKUPS[monthWeekNumber];\n }\n }, {\n key: 'monthDisplay',\n value: function monthDisplay(monthNumber) {\n var MONTH_LOOKUPS = {\n '1': this.filter('translate')('JANUARY'),\n '2': this.filter('translate')('FEBRUARY'),\n '3': this.filter('translate')('MARCH'),\n '4': this.filter('translate')('APRIL'),\n '5': this.filter('translate')('MAY'),\n '6': this.filter('translate')('JUNE'),\n '7': this.filter('translate')('JULY'),\n '8': this.filter('translate')('AUGUST'),\n '9': this.filter('translate')('SEPTEMBER'),\n '10': this.filter('translate')('OCTOBER'),\n '11': this.filter('translate')('NOVEMBER'),\n '12': this.filter('translate')('DECEMBER')\n };\n return MONTH_LOOKUPS[monthNumber];\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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","ACCEPTABLE_CRON_FORMATS","States","INIT","DIRTY","CLEAN","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_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","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","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 CronGenComponent = function () {\n function CronGenComponent($scope, $translate, $filter, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n var ACCEPTABLE_CRON_FORMATS = ['quartz'];\n var States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n };\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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 d74c719a..26e1e744 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -278,48 +278,70 @@ var CronGenComponent = function () { }, { key: 'dayDisplay', value: function dayDisplay(day) { - var DAY_LOOKUPS = { - 'SUN': this.filter('translate')('SUNDAY'), - 'MON': this.filter('translate')('MONDAY'), - 'TUE': this.filter('translate')('TUESDAY'), - 'WED': this.filter('translate')('WEDNESDAY'), - 'THU': this.filter('translate')('THURSDAY'), - 'FRI': this.filter('translate')('FRIDAY'), - 'SAT': this.filter('translate')('SATURDAY') - }; - 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) { - var MONTH_WEEK_LOOKUPS = { - '#1': this.filter('translate')('FIRST'), - '#2': this.filter('translate')('SECOND'), - '#3': this.filter('translate')('THIRD'), - '#4': this.filter('translate')('FOURTH'), - '#5': this.filter('translate')('FIFTH'), - 'L': this.filter('translate')('LAST') - }; - 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) { - var MONTH_LOOKUPS = { - '1': this.filter('translate')('JANUARY'), - '2': this.filter('translate')('FEBRUARY'), - '3': this.filter('translate')('MARCH'), - '4': this.filter('translate')('APRIL'), - '5': this.filter('translate')('MAY'), - '6': this.filter('translate')('JUNE'), - '7': this.filter('translate')('JULY'), - '8': this.filter('translate')('AUGUST'), - '9': this.filter('translate')('SEPTEMBER'), - '10': this.filter('translate')('OCTOBER'), - '11': this.filter('translate')('NOVEMBER'), - '12': this.filter('translate')('DECEMBER') - }; - 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', diff --git a/package.json b/package.json index f1340e8d..a012e509 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.1.0", + "version": "0.1.1", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index b69c25b8..100b08df 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -149,46 +149,68 @@ export class CronGenComponent { } dayDisplay(day) { - const DAY_LOOKUPS = { - 'SUN': this.filter('translate')('SUNDAY'), - 'MON': this.filter('translate')('MONDAY'), - 'TUE': this.filter('translate')('TUESDAY'), - 'WED': this.filter('translate')('WEDNESDAY'), - 'THU': this.filter('translate')('THURSDAY'), - 'FRI': this.filter('translate')('FRIDAY'), - 'SAT': this.filter('translate')('SATURDAY') - }; - 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) { - const MONTH_WEEK_LOOKUPS = { - '#1': this.filter('translate')('FIRST'), - '#2': this.filter('translate')('SECOND'), - '#3': this.filter('translate')('THIRD'), - '#4': this.filter('translate')('FOURTH'), - '#5': this.filter('translate')('FIFTH'), - 'L': this.filter('translate')('LAST') - }; - 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) { - const MONTH_LOOKUPS = { - '1': this.filter('translate')('JANUARY'), - '2': this.filter('translate')('FEBRUARY'), - '3': this.filter('translate')('MARCH'), - '4': this.filter('translate')('APRIL'), - '5': this.filter('translate')('MAY'), - '6': this.filter('translate')('JUNE'), - '7': this.filter('translate')('JULY'), - '8': this.filter('translate')('AUGUST'), - '9': this.filter('translate')('SEPTEMBER'), - '10': this.filter('translate')('OCTOBER'), - '11': this.filter('translate')('NOVEMBER'), - '12': this.filter('translate')('DECEMBER') - }; - 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) { From 589aa157c272bfa30f4d81e538e4fbf13c940d02 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 12:27:54 +0200 Subject: [PATCH 10/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 13 +++++++------ package.json | 2 +- src/cron-gen.component.js | 13 +++++++------ 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 611ab43a..73f11bb0 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,language:"en"},e)}},{key:"regenerateCron",value:function(){var e=this;switch(this.currentState=States.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===States.DIRTY)return void(this.currentState=States.CLEAN);this.currentState=States.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],c=a[3],o=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(c.substring(2));var d=parseInt(l);this.state.daily.everyDays.hours=this.processHour(d),this.state.daily.everyDays.hourType=this.getHourType(d),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 y=parseInt(l);this.state.daily.everyWeekDay.hours=this.processHour(y),this.state.daily.everyWeekDay.hourType=this.getHourType(y),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 u=parseInt(l);this.state.weekly.hours=this.processHour(u),this.state.weekly.hourType=this.getHourType(u),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=c,this.state.monthly.specificDay.months=parseInt(o.substring(2));var p=parseInt(l);this.state.monthly.specificDay.hours=this.processHour(p),this.state.monthly.specificDay.hourType=this.getHourType(p),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 m=h.substr(0,3),g=h.substr(3);this.activeTab="monthly",this.state.monthly.subTab="specificWeekDay",this.state.monthly.specificWeekDay.monthWeek=g,this.state.monthly.specificWeekDay.day=m,this.state.monthly.specificWeekDay.months=parseInt(o.substring(2));var T=parseInt(l);this.state.monthly.specificWeekDay.hours=this.processHour(T),this.state.monthly.specificWeekDay.hourType=this.getHourType(T),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(o),this.state.yearly.specificMonthDay.day=c;var b=parseInt(l);this.state.yearly.specificMonthDay.hours=this.processHour(b),this.state.yearly.specificMonthDay.hourType=this.getHourType(b),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 $=h.substr(0,3),D=h.substr(3);this.activeTab="yearly",this.state.yearly.subTab="specificMonthWeek",this.state.yearly.specificMonthWeek.monthWeek=D,this.state.yearly.specificMonthWeek.day=$,this.state.yearly.specificMonthWeek.month=parseInt(o);var f=parseInt(l);this.state.yearly.specificMonthWeek.hours=this.processHour(f),this.state.yearly.specificMonthWeek.hourType=this.getHourType(f),this.state.yearly.specificMonthWeek.minutes=parseInt(i),this.state.yearly.specificMonthWeek.seconds=parseInt(r)}else this.activeTab="advanced",this.state.advanced.expression=e}}]),s}(),r=/^\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}))?)*))$/,i=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(r);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'), +!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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 9331e3c2..1a5447f7 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","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","ACCEPTABLE_CRON_FORMATS","States","INIT","DIRTY","CLEAN","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_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","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","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 CronGenComponent = function () {\n function CronGenComponent($scope, $translate, $filter, cronGenService) {\n 'ngInject';\n\n var _this = this;\n\n classCallCheck(this, CronGenComponent);\n var ACCEPTABLE_CRON_FORMATS = ['quartz'];\n var States = {\n INIT: 1,\n DIRTY: 2,\n CLEAN: 3\n };\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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 26e1e744..fd94df23 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -111,6 +111,13 @@ var toConsumableArray = function (arr) { } }; +var ACCEPTABLE_CRON_FORMATS = ['quartz']; +var States = { + INIT: 1, + DIRTY: 2, + CLEAN: 3 +}; + var CronGenComponent = function () { CronGenComponent.$inject = ["$scope", "$translate", "$filter", "cronGenService"]; function CronGenComponent($scope, $translate, $filter, cronGenService) { @@ -119,12 +126,6 @@ var CronGenComponent = function () { var _this = this; classCallCheck(this, CronGenComponent); - var ACCEPTABLE_CRON_FORMATS = ['quartz']; - var States = { - INIT: 1, - DIRTY: 2, - CLEAN: 3 - }; this.parsedOptions = this.mergeDefaultOptions(this.options); $translate.use(this.parsedOptions.language); diff --git a/package.json b/package.json index a012e509..f1340e8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-cron-gen", - "version": "0.1.1", + "version": "0.1.0", "description": "A cron expression generator for AngularJS.", "main": "index.js", "style": "build/cron-gen.min.css", diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 100b08df..687655c6 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -1,13 +1,14 @@ +const ACCEPTABLE_CRON_FORMATS = ['quartz']; +const States = { + INIT: 1, + DIRTY: 2, + CLEAN: 3, +}; + export class CronGenComponent { constructor($scope, $translate, $filter, cronGenService) { 'ngInject'; - const ACCEPTABLE_CRON_FORMATS = ['quartz']; - const States = { - INIT: 1, - DIRTY: 2, - CLEAN: 3, - }; this.parsedOptions = this.mergeDefaultOptions(this.options); $translate.use(this.parsedOptions.language); From c336d81b65cca4f0aab2579baf18354346b50089 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 13:23:35 +0200 Subject: [PATCH 11/22] add German translation --- README.md | 2 +- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 24 ++++++++++++------------ src/cron-gen.component.js | 24 ++++++++++++------------ 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index f22b5f9f..0a97affc 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ angular-cron-gen A basic way to for users to graphically build a cron expression. -Demo can be found [here](https://vincentjames501.github.io/angular-cron-gen/). +Demo can be found [here](https://khauth.github.io/angular-cron-gen/). **Requirements:** AngularJS 1.5+ diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 73f11bb0..c16c8f6e 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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'), +!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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 1a5447f7..e0d4d893 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","States","INIT","DIRTY","CLEAN","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 fd94df23..898398c5 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -318,29 +318,29 @@ var CronGenComponent = function () { key: 'monthDisplay', value: function monthDisplay(monthNumber) { switch (monthNumber) { - case "1": + case 1: return this.filter('translate')('JANUARY'); - case "2": + case 2: return this.filter('translate')('FEBRUARY'); - case "3": + case 3: return this.filter('translate')('MARCH'); - case "4": + case 4: return this.filter('translate')('APRIL'); - case "5": + case 5: return this.filter('translate')('MAY'); - case "6": + case 6: return this.filter('translate')('JUNE'); - case "7": + case 7: return this.filter('translate')('JULY'); - case "8": + case 8: return this.filter('translate')('AUGUST'); - case "9": + case 9: return this.filter('translate')('SEPTEMBER'); - case "10": + case 10: return this.filter('translate')('OCTOBER'); - case "11": + case 11: return this.filter('translate')('NOVEMBER'); - case "12": + case 12: return this.filter('translate')('DECEMBER'); } } diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 687655c6..19d7c259 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -187,29 +187,29 @@ export class CronGenComponent { monthDisplay(monthNumber) { switch (monthNumber) { - case "1": + case 1: return this.filter('translate')('JANUARY'); - case "2": + case 2: return this.filter('translate')('FEBRUARY'); - case "3": + case 3: return this.filter('translate')('MARCH'); - case "4": + case 4: return this.filter('translate')('APRIL'); - case "5": + case 5: return this.filter('translate')('MAY'); - case "6": + case 6: return this.filter('translate')('JUNE'); - case "7": + case 7: return this.filter('translate')('JULY'); - case "8": + case 8: return this.filter('translate')('AUGUST'); - case "9": + case 9: return this.filter('translate')('SEPTEMBER'); - case "10": + case 10: return this.filter('translate')('OCTOBER'); - case "11": + case 11: return this.filter('translate')('NOVEMBER'); - case "12": + case 12: return this.filter('translate')('DECEMBER'); } } From 25dbade2f716de4b96441055b76c6a2e11a640f6 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 15:16:16 +0200 Subject: [PATCH 12/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 12 ++++++------ example/app.js | 2 +- src/cron-gen.module.js | 12 ++++++------ 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index c16c8f6e..dc6ba705 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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'), +!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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 e0d4d893..aea00bef 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","States","INIT","DIRTY","CLEAN","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': '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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 898398c5..4891afdc 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -844,12 +844,12 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'SECOND_PREFIX': '', 'THIRD_PREFIX': '', 'CARDINAL_PREFIX': '', - 'FIRST': 'First', - 'SECOND': 'Second', - 'THIRD': 'Third', - 'FOURTH': 'Fourth', - 'FIFTH': 'Fifth', - 'LAST': 'Last', + 'FIRST': 'Erste', + 'SECOND': 'Zweite', + 'THIRD': 'Dritte', + 'FOURTH': 'Vierte', + 'FIFTH': 'Fünfte', + 'LAST': 'Letzte', 'JANUARY': 'January', 'FEBRUARY': 'February', 'MARCH': 'March', diff --git a/example/app.js b/example/app.js index bfa5147e..b2a89b35 100644 --- a/example/app.js +++ b/example/app.js @@ -3,7 +3,7 @@ angular.module('ExampleApp', ['angular-cron-gen']) $scope.cronExpression = '0 8 9 9 1/8 ? *'; $scope.cronOptions = { hideAdvancedTab: false, - language: 'it' + language: 'de' }; $scope.isCronDisabled = false; }]); diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index 4bb71ff2..17dab94b 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -160,12 +160,12 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'SECOND_PREFIX': '', 'THIRD_PREFIX': '', 'CARDINAL_PREFIX': '', - 'FIRST': 'First', - 'SECOND': 'Second', - 'THIRD': 'Third', - 'FOURTH': 'Fourth', - 'FIFTH': 'Fifth', - 'LAST': 'Last', + 'FIRST': 'Erste', + 'SECOND': 'Zweite', + 'THIRD': 'Dritte', + 'FOURTH': 'Vierte', + 'FIFTH': 'Fünfte', + 'LAST': 'Letzte', 'JANUARY': 'January', 'FEBRUARY': 'February', 'MARCH': 'March', From b83642475e0f97399ffc4a6f17eac730bcdd1fdf Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 15:43:48 +0200 Subject: [PATCH 13/22] add German translation --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f1340e8d..7200bab6 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "repository": { "type": "git", - "url": "git://github.com/vincentjames501/angular-cron-gen.git" + "url": "git://github.com/khauth/angular-cron-gen.git" }, "keywords": [ "angular", @@ -21,9 +21,9 @@ "author": "Vincent Pizzo", "license": "MIT", "bugs": { - "url": "https://github.com/vincentjames501/angular-cron-gen/issues" + "url": "https://github.com/khauth/angular-cron-gen/issues" }, - "homepage": "https://vincentjames.github.io/angular-cron-gen", + "homepage": "https://khauth.github.io/angular-cron-gen", "devDependencies": { "add-stream": "^1.0.0", "babel-plugin-external-helpers": "^6.18.0", @@ -43,6 +43,6 @@ "rollup-plugin-babel": "^2.6.1" }, "dependencies": { - "angular-translate": "^2.15.2" + "angular-translate": "^2.18.1" } } From c285b123437c509443ea7112d85bba3929b0f5ad Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 16:53:20 +0200 Subject: [PATCH 14/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 11 ++++++++--- src/cron-gen.component.js | 8 +++++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index dc6ba705..1ba5ada0 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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'), +!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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 aea00bef..73da5043 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","States","INIT","DIRTY","CLEAN","CronGenComponent","$scope","$translate","$filter","cronGenService","_this","this","parsedOptions","mergeDefaultOptions","options","use","language","angular","extend","filter","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","_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","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","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 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 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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","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":"CAAC,WACD,YAEA,IAAIA,GAAiB,SAAUC,EAAUC,GACvC,KAAMD,YAAoBC,IACxB,KAAM,IAAIC,WAAU,sCAIpBC,EAAc,WAChB,QAASC,GAAiBC,EAAQC,GAChC,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,GAAIE,GAAaH,EAAMC,EACvBE,GAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,SAAWF,KAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAIlD,MAAO,UAAUR,EAAae,EAAYC,GAGxC,MAFID,IAAYZ,EAAiBH,EAAYiB,UAAWF,GACpDC,GAAab,EAAiBH,EAAagB,GACxChB,MA8BPkB,EAAgB,WAClB,QAASC,GAAcC,EAAKd,GAC1B,GAAIe,MACAC,GAAK,EACLC,GAAK,EACLC,MAAKC,EAET,KACE,IAAK,GAAiCC,GAA7BC,EAAKP,EAAIQ,OAAOC,cAAmBP,GAAMI,EAAKC,EAAGG,QAAQC,QAChEV,EAAKW,KAAKN,EAAGO,QAET3B,GAAKe,EAAKd,SAAWD,GAH8CgB,GAAK,IAK9E,MAAOY,GACPX,GAAK,EACLC,EAAKU,UAEL,KACOZ,GAAMK,EAAG,QAAWA,EAAG,iBAE5B,GAAIJ,EAAI,KAAMC,IAIlB,MAAOH,GAGT,MAAO,UAAUD,EAAKd,GACpB,GAAI6B,MAAMC,QAAQhB,GAChB,MAAOA,EACF,IAAIQ,OAAOC,WAAYjB,QAAOQ,GACnC,MAAOD,GAAcC,EAAKd,EAE1B,MAAM,IAAIL,WAAU,4DAiBtBoC,EAAoB,SAAUjB,GAChC,GAAIe,MAAMC,QAAQhB,GAAM,CACtB,IAAK,GAAId,GAAI,EAAGgC,EAAOH,MAAMf,EAAIb,QAASD,EAAIc,EAAIb,OAAQD,IAAKgC,EAAKhC,GAAKc,EAAId,EAE7E,OAAOgC,GAEP,MAAOH,OAAMI,KAAKnB,IAIlBoB,GAA2B,UAC3BC,GACAC,KAAM,EACNC,MAAO,EACPC,MAAO,gBAIP,QAASC,GAAiBC,EAAQC,EAAYC,EAASC,GACnD,UAEA,IAAIC,GAAQC,IAsHZ,IApHArD,EAAeqD,KAAMN,GACrBM,KAAKC,cAAgBD,KAAKE,oBAAoBF,KAAKG,SAEnDP,EAAWQ,IAAIJ,KAAKC,cAAcI,UAElCC,QAAQC,OAAOP,MACXF,eAAgBA,EAChBU,OAAQX,EACRY,UAAWb,EACXc,WAAY,SACZC,aAAcrB,EAAOC,KACrBqB,UAAW,WACP,IAAKb,EAAME,cAAcY,eACrB,MAAO,SACJ,KAAKd,EAAME,cAAca,cAC5B,MAAO,QACJ,KAAKf,EAAME,cAAcc,aAC5B,MAAO,OACJ,KAAKhB,EAAME,cAAce,cAC5B,MAAO,QACJ,KAAKjB,EAAME,cAAcgB,eAC5B,MAAO,SACJ,KAAKlB,EAAME,cAAciB,cAC5B,MAAO,QACJ,KAAKnB,EAAME,cAAckB,gBAC5B,MAAO,UAEX,MAAM,sCAEVC,cAAetB,EAAesB,gBAC9BC,OACIC,SACIA,QAAS,EACTC,QAAS,GAEbC,QACIC,MAAO,EACPH,QAAS,EACTC,QAAS,GAEbG,OACIC,OAAQ,YACRC,WACIC,KAAM,EACNJ,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDE,cACIP,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DG,QACIC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLf,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDW,SACId,OAAQ,cACRe,aACIC,IAAK,IACLC,OAAQ,EACRnB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDe,iBACIC,UAAW,KACXH,IAAK,MACLC,OAAQ,EACRnB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DiB,QACIpB,OAAQ,mBACRqB,kBACIC,MAAO,EACPN,IAAK,IACLlB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDoB,mBACIJ,UAAW,KACXH,IAAK,MACLM,MAAO,EACPxB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DqB,UACIC,WAAY,uBAMiC,GAArD/D,EAAwBgE,QAAQrD,KAAKU,YACrC,KAAM,wBAA0BV,KAAKU,WAAa,oBAItDf,GAAO2D,OAAO,gBAAiB,SAAUC,GACrC,MAAOxD,GAAMyD,kBAAkBD,KAInC5D,EAAO2D,OAAO,gBAAiBtD,KAAKyD,eAAeC,KAAK1D,OAAO,GA4UnE,oEAzUAjD,EAAY2C,IACR/B,IAAK,UACLmB,MAAO,WACH,GAAI6E,GAAS3D,IAGTA,MAAK4D,UAAY5D,KAAK6D,OACtB7D,KAAK8D,YAAYC,YAAYC,aAAe,SAAUZ,GAClD,MAAOO,GAAO7D,eAAemE,QAAQN,EAAOjD,WAAY0C,QAKpEzF,IAAK,iBACLmB,MAAO,SAAwBqB,GAC3BH,KAAKC,cAAgBD,KAAKE,oBAAoBC,GAC9CH,KAAKS,UAAUL,IAAIJ,KAAKC,cAAcI,aAG1C1C,IAAK,eACLmB,MAAO,SAAsBoF,EAAQC,GACjCD,EAAOE,iBACFpE,KAAKqE,aACNrE,KAAKY,UAAYuD,EACjBnE,KAAKsE,qBAIb3G,IAAK,aACLmB,MAAO,SAAoB6D,GACvB,OAAQA,GACJ,IAAK,MACD,MAAO3C,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,UACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,YACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,gBAI5C7C,IAAK,mBACLmB,MAAO,SAA0ByF,GAC7B,OAAQA,GACJ,IAAK,KACD,MAAOvE,MAAKQ,OAAO,aAAa,QACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,YAI5C7C,IAAK,eACLmB,MAAO,SAAsB0F,GACzB,OAAQA,GACJ,IAAK,GACD,MAAOxE,MAAKQ,OAAO,aAAa,UACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,MACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,OACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,OACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,YACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,UACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,gBAI5C7C,IAAK,kBACLmB,MAAO,SAAyB2F,GAC5B,MAAiB,MAAbA,EACOzE,KAAKQ,OAAO,aAAa,YACZ,OAAbiE,EACAzE,KAAKQ,OAAO,aAAa,gBACZ,OAAbiE,EACAzE,KAAKQ,OAAO,aAAa,iBAEzB,GAAKiE,EAAWzE,KAAKF,eAAe4E,UAAUD,GAAY,IAAMzE,KAAKQ,OAAO,aAAa,UAIxG7C,IAAK,cACLmB,MAAO,SAAqB2C,GACxB,MAAIzB,MAAKC,cAAc6B,cACZL,GAECA,EAAQ,IAAM,GAAK,KAInC9D,IAAK,cACLmB,MAAO,SAAqB2C,GACxB,MAAOzB,MAAKC,cAAc6B,cAAgB,KAAOL,GAAS,GAAK,KAAO,QAG1E9D,IAAK,aACLmB,MAAO,SAAoB6F,EAAM5C,GAC7B,MAAI/B,MAAKC,cAAc6B,cACZ6C,EAEa,OAAb5C,EAA6B,KAAT4C,EAAc,EAAIA,EAAgB,KAATA,EAAc,GAAKA,EAAO,MAItFhH,IAAK,sBACLmB,MAAO,SAA6BqB,GAChC,MAAOG,SAAQC,QACXqE,eAAgB,8BAChBC,gBAAiB,+BACjBC,eAAgB,qCAChBC,kBAAmB,wCACnBlE,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBW,eAAe,EACfkD,aAAa,EACb3E,SAAU,MACXF,MAGPxC,IAAK,iBACLmB,MAAO,WACH,GAAImG,GAASjF,IAGb,QADAA,KAAKW,aAAerB,EAAOE,MACnBQ,KAAKY,WACT,IAAK,UACDZ,KAAKkF,QAAUlF,KAAKqB,MAAMC,QAAQC,QAAU,MAAQvB,KAAKqB,MAAMC,QAAQA,QAAU,cACjF,MACJ,KAAK,SACDtB,KAAKkF,QAAUlF,KAAKqB,MAAMG,OAAOD,QAAU,IAAMvB,KAAKqB,MAAMG,OAAOF,QAAU,MAAQtB,KAAKqB,MAAMG,OAAOC,MAAQ,YAC/G,MACJ,KAAK,QACD,OAAQzB,KAAKqB,MAAMK,MAAMC,QACrB,IAAK,YACD3B,KAAKkF,QAAUlF,KAAKqB,MAAMK,MAAME,UAAUL,QAAU,IAAMvB,KAAKqB,MAAMK,MAAME,UAAUN,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMK,MAAME,UAAUH,MAAOzB,KAAKqB,MAAMK,MAAME,UAAUG,UAAY,MAAQ/B,KAAKqB,MAAMK,MAAME,UAAUC,KAAO,QACxO,MACJ,KAAK,eACD7B,KAAKkF,QAAUlF,KAAKqB,MAAMK,MAAMM,aAAaT,QAAU,IAAMvB,KAAKqB,MAAMK,MAAMM,aAAaV,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMK,MAAMM,aAAaP,MAAOzB,KAAKqB,MAAMK,MAAMM,aAAaD,UAAY,gBAC1M,MACJ,SACI,KAAM,sCAEd,KACJ,KAAK,SACD,GAAIF,GAAO7B,KAAKoB,cAAcS,KAAKuD,OAAO,SAAUC,EAAK1C,GACrD,MAAOsC,GAAO5D,MAAMY,OAAOU,GAAO0C,EAAIC,QAAQ3C,IAAQ0C,OACnDE,KAAK,IACZvF,MAAKkF,QAAUlF,KAAKqB,MAAMY,OAAOV,QAAU,IAAMvB,KAAKqB,MAAMY,OAAOX,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMY,OAAOR,MAAOzB,KAAKqB,MAAMY,OAAOF,UAAY,QAAUF,EAAO,IAC3K,MACJ,KAAK,UACD,OAAQ7B,KAAKqB,MAAMoB,QAAQd,QACvB,IAAK,cACD3B,KAAKkF,QAAUlF,KAAKqB,MAAMoB,QAAQC,YAAYnB,QAAU,IAAMvB,KAAKqB,MAAMoB,QAAQC,YAAYpB,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMoB,QAAQC,YAAYjB,MAAOzB,KAAKqB,MAAMoB,QAAQC,YAAYX,UAAY,IAAM/B,KAAKqB,MAAMoB,QAAQC,YAAYC,IAAM,MAAQ3C,KAAKqB,MAAMoB,QAAQC,YAAYE,OAAS,MACzS,MACJ,KAAK,kBACD5C,KAAKkF,QAAUlF,KAAKqB,MAAMoB,QAAQI,gBAAgBtB,QAAU,IAAMvB,KAAKqB,MAAMoB,QAAQI,gBAAgBvB,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMoB,QAAQI,gBAAgBpB,MAAOzB,KAAKqB,MAAMoB,QAAQI,gBAAgBd,UAAY,QAAU/B,KAAKqB,MAAMoB,QAAQI,gBAAgBD,OAAS,IAAM5C,KAAKqB,MAAMoB,QAAQI,gBAAgBF,IAAM3C,KAAKqB,MAAMoB,QAAQI,gBAAgBC,UAAY,IAClX,MACJ,SACI,KAAM,wCAEd,KACJ,KAAK,SACD,OAAQ9C,KAAKqB,MAAM0B,OAAOpB,QACtB,IAAK,mBACD3B,KAAKkF,QAAUlF,KAAKqB,MAAM0B,OAAOC,iBAAiBzB,QAAU,IAAMvB,KAAKqB,MAAM0B,OAAOC,iBAAiB1B,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAM0B,OAAOC,iBAAiBvB,MAAOzB,KAAKqB,MAAM0B,OAAOC,iBAAiBjB,UAAY,IAAM/B,KAAKqB,MAAM0B,OAAOC,iBAAiBL,IAAM,IAAM3C,KAAKqB,MAAM0B,OAAOC,iBAAiBC,MAAQ,MAC9T,MACJ,KAAK,oBACDjD,KAAKkF,QAAUlF,KAAKqB,MAAM0B,OAAOG,kBAAkB3B,QAAU,IAAMvB,KAAKqB,MAAM0B,OAAOG,kBAAkB5B,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAM0B,OAAOG,kBAAkBzB,MAAOzB,KAAKqB,MAAM0B,OAAOG,kBAAkBnB,UAAY,MAAQ/B,KAAKqB,MAAM0B,OAAOG,kBAAkBD,MAAQ,IAAMjD,KAAKqB,MAAM0B,OAAOG,kBAAkBP,IAAM3C,KAAKqB,MAAM0B,OAAOG,kBAAkBJ,UAAY,IACtX,MACJ,SACI,KAAM,uCAEd,KACJ,KAAK,WACD9C,KAAKkF,QAAUlF,KAAKqB,MAAM8B,SAASC,UACnC,MACJ,SACI,KAAM,wCAIlBzF,IAAK,oBACLmB,MAAO,SAA2ByE,GAC9B,GAAIiC,GAASxF,IAEb,IAAIA,KAAKW,eAAiBrB,EAAOE,MAE7B,YADAQ,KAAKW,aAAerB,EAAOG,MAG3BO,MAAKW,aAAerB,EAAOG,KAG/B,IAAIgG,GAAWlC,EAAKmC,MAAM,IAC1B,IAAwB,IAApBD,EAASrI,QAAoC,IAApBqI,EAASrI,OAmGlC,KAAM,iEAlGN,IAAIuI,GAAY5H,EAAc0H,EAAU,GACpClE,EAAUoE,EAAU,GACpBrE,EAAUqE,EAAU,GACpBlE,EAAQkE,EAAU,GAClBC,EAAaD,EAAU,GACvB1C,EAAQ0C,EAAU,GAClBE,EAAYF,EAAU,EAE1B,IAAIpC,EAAKuC,MAAM,+BACX9F,KAAKY,UAAY,UACjBZ,KAAKqB,MAAMC,QAAQA,QAAUyE,SAASzE,EAAQ0E,UAAU,IACxDhG,KAAKqB,MAAMC,QAAQC,QAAUwE,SAASxE,OACnC,IAAIgC,EAAKuC,MAAM,gCAClB9F,KAAKY,UAAY,SACjBZ,KAAKqB,MAAMG,OAAOC,MAAQsE,SAAStE,EAAMuE,UAAU,IACnDhG,KAAKqB,MAAMG,OAAOF,QAAUyE,SAASzE,GACrCtB,KAAKqB,MAAMG,OAAOD,QAAUwE,SAASxE,OAClC,IAAIgC,EAAKuC,MAAM,+BAAgC,CAClD9F,KAAKY,UAAY,QACjBZ,KAAKqB,MAAMK,MAAMC,OAAS,YAC1B3B,KAAKqB,MAAMK,MAAME,UAAUC,KAAOkE,SAASH,EAAWI,UAAU,GAChE,IAAIC,GAAcF,SAAStE,EAC3BzB,MAAKqB,MAAMK,MAAME,UAAUH,MAAQzB,KAAKkG,YAAYD,GACpDjG,KAAKqB,MAAMK,MAAME,UAAUG,SAAW/B,KAAKmG,YAAYF,GACvDjG,KAAKqB,MAAMK,MAAME,UAAUN,QAAUyE,SAASzE,GAC9CtB,KAAKqB,MAAMK,MAAME,UAAUL,QAAUwE,SAASxE,OAC3C,IAAIgC,EAAKuC,MAAM,gCAAiC,CACnD9F,KAAKY,UAAY,QACjBZ,KAAKqB,MAAMK,MAAMC,OAAS,cAC1B,IAAIyE,GAAeL,SAAStE,EAC5BzB,MAAKqB,MAAMK,MAAMM,aAAaP,MAAQzB,KAAKkG,YAAYE,GACvDpG,KAAKqB,MAAMK,MAAMM,aAAaD,SAAW/B,KAAKmG,YAAYC,GAC1DpG,KAAKqB,MAAMK,MAAMM,aAAaV,QAAUyE,SAASzE,GACjDtB,KAAKqB,MAAMK,MAAMM,aAAaT,QAAUwE,SAASxE,OAC9C,IAAIgC,EAAKuC,MAAM,uFAAwF,CAC1G9F,KAAKY,UAAY,SACjBZ,KAAKoB,cAAcS,KAAKwE,QAAQ,SAAUC,GACtC,MAAOd,GAAOnE,MAAMY,OAAOqE,IAAW,IAE1CT,EAAUH,MAAM,KAAKW,QAAQ,SAAUC,GACnC,MAAOd,GAAOnE,MAAMY,OAAOqE,IAAW,GAE1C,IAAIC,GAAgBR,SAAStE,EAC7BzB,MAAKqB,MAAMY,OAAOR,MAAQzB,KAAKkG,YAAYK,GAC3CvG,KAAKqB,MAAMY,OAAOF,SAAW/B,KAAKmG,YAAYI,GAC9CvG,KAAKqB,MAAMY,OAAOX,QAAUyE,SAASzE,GACrCtB,KAAKqB,MAAMY,OAAOV,QAAUwE,SAASxE,OAClC,IAAIgC,EAAKuC,MAAM,0CAA2C,CAC7D9F,KAAKY,UAAY,UACjBZ,KAAKqB,MAAMoB,QAAQd,OAAS,cAC5B3B,KAAKqB,MAAMoB,QAAQC,YAAYC,IAAMiD,EACrC5F,KAAKqB,MAAMoB,QAAQC,YAAYE,OAASmD,SAAS9C,EAAM+C,UAAU,GACjE,IAAIQ,GAAgBT,SAAStE,EAC7BzB,MAAKqB,MAAMoB,QAAQC,YAAYjB,MAAQzB,KAAKkG,YAAYM,GACxDxG,KAAKqB,MAAMoB,QAAQC,YAAYX,SAAW/B,KAAKmG,YAAYK,GAC3DxG,KAAKqB,MAAMoB,QAAQC,YAAYpB,QAAUyE,SAASzE,GAClDtB,KAAKqB,MAAMoB,QAAQC,YAAYnB,QAAUwE,SAASxE,OAC/C,IAAIgC,EAAKuC,MAAM,sEAAuE,CACzF,GAAInD,GAAMkD,EAAUY,OAAO,EAAG,GAC1B3D,EAAY+C,EAAUY,OAAO,EACjCzG,MAAKY,UAAY,UACjBZ,KAAKqB,MAAMoB,QAAQd,OAAS,kBAC5B3B,KAAKqB,MAAMoB,QAAQI,gBAAgBC,UAAYA,EAC/C9C,KAAKqB,MAAMoB,QAAQI,gBAAgBF,IAAMA,EACzC3C,KAAKqB,MAAMoB,QAAQI,gBAAgBD,OAASmD,SAAS9C,EAAM+C,UAAU,GACrE,IAAIU,GAAgBX,SAAStE,EAC7BzB,MAAKqB,MAAMoB,QAAQI,gBAAgBpB,MAAQzB,KAAKkG,YAAYQ,GAC5D1G,KAAKqB,MAAMoB,QAAQI,gBAAgBd,SAAW/B,KAAKmG,YAAYO,GAC/D1G,KAAKqB,MAAMoB,QAAQI,gBAAgBvB,QAAUyE,SAASzE,GACtDtB,KAAKqB,MAAMoB,QAAQI,gBAAgBtB,QAAUwE,SAASxE,OACnD,IAAIgC,EAAKuC,MAAM,uCAAwC,CAC1D9F,KAAKY,UAAY,SACjBZ,KAAKqB,MAAM0B,OAAOpB,OAAS,mBAC3B3B,KAAKqB,MAAM0B,OAAOC,iBAAiBC,MAAQ8C,SAAS9C,GACpDjD,KAAKqB,MAAM0B,OAAOC,iBAAiBL,IAAMiD,CACzC,IAAIe,GAAgBZ,SAAStE,EAC7BzB,MAAKqB,MAAM0B,OAAOC,iBAAiBvB,MAAQzB,KAAKkG,YAAYS,GAC5D3G,KAAKqB,MAAM0B,OAAOC,iBAAiBjB,SAAW/B,KAAKmG,YAAYQ,GAC/D3G,KAAKqB,MAAM0B,OAAOC,iBAAiB1B,QAAUyE,SAASzE,GACtDtB,KAAKqB,MAAM0B,OAAOC,iBAAiBzB,QAAUwE,SAASxE,OACnD,IAAIgC,EAAKuC,MAAM,mEAAoE,CACtF,GAAIc,GAAOf,EAAUY,OAAO,EAAG,GAC3BI,EAAahB,EAAUY,OAAO,EAClCzG,MAAKY,UAAY,SACjBZ,KAAKqB,MAAM0B,OAAOpB,OAAS,oBAC3B3B,KAAKqB,MAAM0B,OAAOG,kBAAkBJ,UAAY+D,EAChD7G,KAAKqB,MAAM0B,OAAOG,kBAAkBP,IAAMiE,EAC1C5G,KAAKqB,MAAM0B,OAAOG,kBAAkBD,MAAQ8C,SAAS9C,EACrD,IAAI6D,GAAgBf,SAAStE,EAC7BzB,MAAKqB,MAAM0B,OAAOG,kBAAkBzB,MAAQzB,KAAKkG,YAAYY,GAC7D9G,KAAKqB,MAAM0B,OAAOG,kBAAkBnB,SAAW/B,KAAKmG,YAAYW,GAChE9G,KAAKqB,MAAM0B,OAAOG,kBAAkB5B,QAAUyE,SAASzE,GACvDtB,KAAKqB,MAAM0B,OAAOG,kBAAkB3B,QAAUwE,SAASxE,OAEvDvB,MAAKY,UAAY,WACjBZ,KAAKqB,MAAM8B,SAASC,WAAaG,MAO1C7D,KAGPqH,EAAe,gvCAGf,QAASC,GAAenH,GACpBlD,EAAeqD,KAAMgH,GAErBhH,KAAKQ,OAASX,EA+ElB,6BA5EA9C,EAAYiK,IACRrJ,IAAK,UACLmB,MAAO,SAAiB4B,EAAY0C,GAChC,GAAI6D,GAAsB7D,EAAW8D,aACrC,QAAQxG,GACJ,IAAK,SACD,QAASuG,EAAoBnB,MAAMiB,EACvC,SACI,KAAM,wBAA0BrG,EAAa,yBAIzD/C,IAAK,YACLmB,MAAO,SAAmBqI,GACtB,GAAIrI,GAAQ,GAAKqI,CACjB,IAAIrI,EAAM1B,OAAS,EAAG,CAElB,GAA0B,MADF0B,EAAMsI,OAAOtI,EAAM1B,OAAS,GAEhD,MAAO4C,MAAKQ,OAAO,aAAa,mBAIxC,OADgB1B,EAAMsI,OAAOtI,EAAM1B,OAAS,IAExC,IAAK,IACD,MAAO4C,MAAKQ,OAAO,aAAa,eACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,gBACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,eACpC,SACI,MAAOR,MAAKQ,OAAO,aAAa,uBAI5C7C,IAAK,YACLmB,MAAO,SAAmBqI,GACtB,MAAgC,MAAxB,GAAKA,GAAQ/J,OAAe,IAAM+J,EAAS,GAAKA,KAG5DxJ,IAAK,QACLmB,MAAO,SAAeuI,EAAOC,GAMzB,OALmB,KAARA,IACPA,EAAMD,EACNA,EAAQ,GAGRA,EAAQ,GAAKC,EAAM,EAAG,KAAM,sCAEhC,OAAIA,GAAMD,KACI/B,OAAOpG,EAAkB,GAAIF,OAAMsI,EAAMD,KAASE,IAAI,SAAUC,EAAKC,GAC3E,MAAOA,GAAMJ,IAEVA,EAAQC,KACLhC,OAAOpG,EAAkB,GAAIF,OAAMqI,EAAQC,KAAOC,IAAI,SAAUC,EAAKC,GAC3E,MAAOH,GAAMG,IAEP,GAAIzI,UAGtBrB,IAAK,gBACLmB,MAAO,WACH,OACI8D,OAAQ5C,KAAK0H,MAAM,EAAG,IACtBC,YAAa,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3C9F,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACjDP,QAAStB,KAAK0H,MAAM,EAAG,IACvBE,YAAa5H,KAAK0H,MAAM,IACxBnG,QAASvB,KAAK0H,MAAM,IACpBjG,MAAOzB,KAAK0H,MAAM,EAAG,IACrBG,UAAW7H,KAAK0H,MAAM,EAAG,IACzBI,oBAAqB,MAAMxC,OAAOpG,KAAqBoG,OAAOpG,EAAkB,GAAIF,OAAM,MAAMuI,IAAI,SAAUC,EAAKC,GAC/G,MAAO,IAAMA,EAAM,OACjB,KAAM,WAIjBT,KAGPe,EAAoB,QAASA,GAAkBpI,EAAQG,GACvD,UAEA,IAAIC,GAAQC,IAEZrD,GAAeqD,KAAM+H,GACrB/H,KAAKF,eAAiBA,EAEtBE,KAAKoB,eACDE,QAASxB,EAAe4H,MAAM,IAC9BnG,QAASzB,EAAe4H,MAAM,IAC9BM,WAAY,KAAM,OAGtBrI,EAAO2D,OAAO,sBAAuB,WACjCvD,EAAMqB,cAAcK,MAAQ1B,EAAM+B,cAAgB/B,EAAMD,eAAe4H,MAAM,IAAM3H,EAAMD,eAAe4H,MAAM,EAAG,6CAIzHpH,QAAQ2H,OAAO,oBAAqB,2BAA2BC,QAAA,qBAAO,SAAUC,GAC5EA,EAAmBC,aAAa,MAC5BC,QAAW,UACXC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,QAAW,UACXC,OAAU,SACVC,SAAY,WACZC,MAAS,QACTC,OAAU,YACVC,UAAa,YACbC,eAAkB,oBAClBC,WAAc,aACdC,OAAU,YACVC,uBAA0B,4CAC1BC,OAAU,SACVC,QAAW,UACXC,UAAa,YACbC,SAAY,WACZC,OAAU,SACVC,SAAY,WACZC,OAAU,SACVC,WAAc,aACdC,OAAU,SACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,kBACnBC,aAAgB,kEAChBC,KAAQ,OACRC,SAAY,WACZC,aAAgB,eAChBC,cAAiB,gBACjBC,IAAO,MACPC,aAAgB,KAChBC,cAAiB,KACjBC,aAAgB,KAChBC,gBAAmB,KACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,KAAQ,OACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,SACXC,OAAU,SACVC,MAAS,cACTC,OAAU,cACVC,QAAW,UACXC,OAAU,UACVC,SAAY,WACZC,MAAS,OACTC,OAAU,WACVC,UAAa,aACbC,eAAkB,kBAClBC,WAAc,YACdC,OAAU,gBACVC,uBAA0B,6DAC1BC,OAAU,UACVC,QAAW,WACXC,UAAa,aACbC,SAAY,WACZC,OAAU,WACVC,SAAY,SACZC,OAAU,WACVC,WAAc,cACdC,OAAU,KACVC,SAAY,UACZC,UAAa,YACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,8DAChBC,KAAQ,MACRC,SAAY,gBACZC,aAAgB,iBAChBC,cAAiB,mBACjBC,IAAO,SACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,UACVC,MAAS,QACTC,OAAU,SACVC,MAAS,SACTC,KAAQ,SACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,SACTC,IAAO,SACPC,KAAQ,SACRC,KAAQ,SACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,YACXC,OAAU,YACVC,MAAS,UACTC,OAAU,cACVC,QAAW,YACXC,OAAU,WACVC,SAAY,gBACZC,MAAS,UACTC,OAAU,YACVC,UAAa,cACbC,eAAkB,uBAClBC,WAAc,cACdC,OAAU,YACVC,uBAA0B,0CAC1BC,OAAU,UACVC,QAAW,YACXC,UAAa,YACbC,SAAY,cACZC,OAAU,WACVC,SAAY,UACZC,OAAU,UACVC,WAAc,YACdC,OAAU,KACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,mEAChBC,KAAQ,OACRC,SAAY,cACZC,aAAgB,oBAChBC,cAAiB,mBACjBC,IAAO,MACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,SACTC,OAAU,SACVC,MAAS,SACTC,KAAQ,SACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,gBAEjBC,QAAQ,iBAAkB7E,GAAgB8E,UAAU,qBACnDC,UACIC,WAAY,IACZC,SAAU,IACVC,WAAY,IACZC,MAAO,IACPC,YAAa,IACbtK,cAAe,IACfkD,YAAa,IACbqH,WAAY,KAEhBC,YAAa,6CACbC,WAAYxE,IACb+D,UAAU,WACTC,UACI7G,QAAS,IACTb,WAAY,IACZlE,QAAS,IACTO,WAAY,IACZ4L,YAAa,IACbzI,KAAM,KAEV2I,SACI1I,YAAa,UACb2I,eAAgB,cAChB7I,SAAU,UAEd0I,aAAA,SAAa,SAAqBI,GAC9B,UAEA,OAAOA,GAAOJ,aAAe,mCAGjCC,WAAY7M,4ECp4BhBiN,EAAAC,IAAA,6CAAA,2uDACAD,EAAAC,IAAA,iCAAA","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 4891afdc..30e47134 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -133,6 +133,7 @@ var CronGenComponent = function () { angular.extend(this, { cronGenService: cronGenService, filter: $filter, + translate: $translate, cronFormat: 'quartz', currentState: States.INIT, activeTab: function () { @@ -250,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, [{ @@ -267,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) { diff --git a/src/cron-gen.component.js b/src/cron-gen.component.js index 19d7c259..f38d5e31 100644 --- a/src/cron-gen.component.js +++ b/src/cron-gen.component.js @@ -16,6 +16,7 @@ export class CronGenComponent { angular.extend(this, { cronGenService, filter: $filter, + translate: $translate, cronFormat: 'quartz', currentState: States.INIT, activeTab: (() => { @@ -131,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() { @@ -141,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) { From 4c9aee249aeb88244c816265c4445aa58f2f3458 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 21 Jun 2019 16:59:31 +0200 Subject: [PATCH 15/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 26 +++++++++++++------------- src/cron-gen.module.js | 26 +++++++++++++------------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 1ba5ada0..cec53e0b 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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'), +!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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 73da5043..eb690f42 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","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","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","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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 });\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 30e47134..22f60b81 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -825,11 +825,11 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla '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'", + 'MONDAY': "Montag", + 'TUESDAY': "Dienstag", + 'WEDNESDAY': "Mittwoch", + 'THURSDAY': "Donnerstag", + 'FRIDAY': "Freitag", 'SATURDAY': 'Samstag', 'SUNDAY': 'Sonntag', 'START_TIME': 'Startzeit', @@ -855,18 +855,18 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'FOURTH': 'Vierte', 'FIFTH': 'Fünfte', 'LAST': 'Letzte', - 'JANUARY': 'January', - 'FEBRUARY': 'February', - 'MARCH': 'March', + 'JANUARY': 'Januar', + 'FEBRUARY': 'Februar', + 'MARCH': 'März', 'APRIL': 'April', - 'MAY': 'May', - 'JUNE': 'June', - 'JULY': 'July', + 'MAY': 'Mai', + 'JUNE': 'Juni', + 'JULY': 'Juli', 'AUGUST': 'August', 'SEPTEMBER': 'September', - 'OCTOBER': 'October', + 'OCTOBER': 'Oktober', 'NOVEMBER': 'November', - 'DECEMBER': 'December' + 'DECEMBER': 'Dezember' }); }]).service('cronGenService', CronGenService).component('cronGenTimeSelect', { bindings: { diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index 17dab94b..fee74885 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -136,11 +136,11 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) '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'", + 'MONDAY': "Montag", + 'TUESDAY': "Dienstag", + 'WEDNESDAY': "Mittwoch", + 'THURSDAY': "Donnerstag", + 'FRIDAY': "Freitag", 'SATURDAY': 'Samstag', 'SUNDAY': 'Sonntag', 'START_TIME': 'Startzeit', @@ -166,18 +166,18 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'FOURTH': 'Vierte', 'FIFTH': 'Fünfte', 'LAST': 'Letzte', - 'JANUARY': 'January', - 'FEBRUARY': 'February', - 'MARCH': 'March', + 'JANUARY': 'Januar', + 'FEBRUARY': 'Februar', + 'MARCH': 'März', 'APRIL': 'April', - 'MAY': 'May', - 'JUNE': 'June', - 'JULY': 'July', + 'MAY': 'Mai', + 'JUNE': 'Juni', + 'JULY': 'Juli', 'AUGUST': 'August', 'SEPTEMBER': 'September', - 'OCTOBER': 'October', + 'OCTOBER': 'Oktober', 'NOVEMBER': 'November', - 'DECEMBER': 'December' + 'DECEMBER': 'Dezember' }); }) .service('cronGenService', CronGenService) From 5e253c49346f6af9f31b96013db9e4270467dc56 Mon Sep 17 00:00:00 2001 From: khauth Date: Mon, 24 Jun 2019 08:59:56 +0200 Subject: [PATCH 16/22] add German translation --- README.md | 2 +- build/cron-gen.min.css | 2 +- src/cron-gen.less | 14 ++++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a97affc..f22b5f9f 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ angular-cron-gen A basic way to for users to graphically build a cron expression. -Demo can be found [here](https://khauth.github.io/angular-cron-gen/). +Demo can be found [here](https://vincentjames501.github.io/angular-cron-gen/). **Requirements:** AngularJS 1.5+ 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/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; + } } From 10e5cd8c61af721846a7326bf5d40cc987627a77 Mon Sep 17 00:00:00 2001 From: khauth Date: Tue, 25 Jun 2019 10:29:06 +0200 Subject: [PATCH 17/22] add German translation --- build/cron-gen.min.js | 2 +- build/cron-gen.min.js.map | 2 +- build/templates.js | 2 +- src/templates/cron-gen.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index cec53e0b..abd490d2 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \n
    \n
    \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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 eb690f42..fdf3e7c5 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","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","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","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ No newline at end of file diff --git a/build/templates.js b/build/templates.js index e849cbd8..beccf20a 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\' | 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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \n
    \n
    \n
    \n
    \n
    \n
    \n');}]); \ No newline at end of file diff --git a/src/templates/cron-gen.html b/src/templates/cron-gen.html index 2bb29ac6..49dc6732 100644 --- a/src/templates/cron-gen.html +++ b/src/templates/cron-gen.html @@ -484,7 +484,7 @@ ng-class="$ctrl.parsedOptions.formInputClass">

    {{ 'MORE_DETAILS' | translate}} {{ 'HERE' | translate}}.

    From 2fcb342912433fa13743fa084b4b94599c20eda5 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 28 Jun 2019 07:45:07 +0200 Subject: [PATCH 18/22] add German translation --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 7200bab6..f1340e8d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "repository": { "type": "git", - "url": "git://github.com/khauth/angular-cron-gen.git" + "url": "git://github.com/vincentjames501/angular-cron-gen.git" }, "keywords": [ "angular", @@ -21,9 +21,9 @@ "author": "Vincent Pizzo", "license": "MIT", "bugs": { - "url": "https://github.com/khauth/angular-cron-gen/issues" + "url": "https://github.com/vincentjames501/angular-cron-gen/issues" }, - "homepage": "https://khauth.github.io/angular-cron-gen", + "homepage": "https://vincentjames.github.io/angular-cron-gen", "devDependencies": { "add-stream": "^1.0.0", "babel-plugin-external-helpers": "^6.18.0", @@ -43,6 +43,6 @@ "rollup-plugin-babel": "^2.6.1" }, "dependencies": { - "angular-translate": "^2.18.1" + "angular-translate": "^2.15.2" } } From 0ad0495a367000b5af8b820db54620c7c177ab98 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 28 Jun 2019 07:48:09 +0200 Subject: [PATCH 19/22] add German translation --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f1340e8d..37b6e8bc 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,6 @@ "rollup-plugin-babel": "^2.6.1" }, "dependencies": { - "angular-translate": "^2.15.2" + "angular-translate": "^2.18.1" } } From 076e63afd8697ac2b02026fd4aaa17935571e0e1 Mon Sep 17 00:00:00 2001 From: khauth Date: Tue, 2 Jul 2019 16:10:04 +0200 Subject: [PATCH 20/22] add German translation --- build/cron-gen.min.js | 4 ++-- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 28 +++++++++++++++------------- build/templates.js | 2 +- src/cron-gen.module.js | 28 +++++++++++++++------------- src/templates/cron-gen.html | 6 +++--- 6 files changed, 37 insertions(+), 33 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index abd490d2..d8476e64 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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_DAY_YEAR\' | 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_DAY_YEAR\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 fdf3e7c5..03d15d2b 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","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","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","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":"CAAC,WACD,YAEA,IAAIA,GAAiB,SAAUC,EAAUC,GACvC,KAAMD,YAAoBC,IACxB,KAAM,IAAIC,WAAU,sCAIpBC,EAAc,WAChB,QAASC,GAAiBC,EAAQC,GAChC,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,GAAIE,GAAaH,EAAMC,EACvBE,GAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,SAAWF,KAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAIlD,MAAO,UAAUR,EAAae,EAAYC,GAGxC,MAFID,IAAYZ,EAAiBH,EAAYiB,UAAWF,GACpDC,GAAab,EAAiBH,EAAagB,GACxChB,MA8BPkB,EAAgB,WAClB,QAASC,GAAcC,EAAKd,GAC1B,GAAIe,MACAC,GAAK,EACLC,GAAK,EACLC,MAAKC,EAET,KACE,IAAK,GAAiCC,GAA7BC,EAAKP,EAAIQ,OAAOC,cAAmBP,GAAMI,EAAKC,EAAGG,QAAQC,QAChEV,EAAKW,KAAKN,EAAGO,QAET3B,GAAKe,EAAKd,SAAWD,GAH8CgB,GAAK,IAK9E,MAAOY,GACPX,GAAK,EACLC,EAAKU,UAEL,KACOZ,GAAMK,EAAG,QAAWA,EAAG,iBAE5B,GAAIJ,EAAI,KAAMC,IAIlB,MAAOH,GAGT,MAAO,UAAUD,EAAKd,GACpB,GAAI6B,MAAMC,QAAQhB,GAChB,MAAOA,EACF,IAAIQ,OAAOC,WAAYjB,QAAOQ,GACnC,MAAOD,GAAcC,EAAKd,EAE1B,MAAM,IAAIL,WAAU,4DAiBtBoC,EAAoB,SAAUjB,GAChC,GAAIe,MAAMC,QAAQhB,GAAM,CACtB,IAAK,GAAId,GAAI,EAAGgC,EAAOH,MAAMf,EAAIb,QAASD,EAAIc,EAAIb,OAAQD,IAAKgC,EAAKhC,GAAKc,EAAId,EAE7E,OAAOgC,GAEP,MAAOH,OAAMI,KAAKnB,IAIlBoB,GAA2B,UAC3BC,GACAC,KAAM,EACNC,MAAO,EACPC,MAAO,gBAIP,QAASC,GAAiBC,EAAQC,EAAYC,EAASC,GACnD,UAEA,IAAIC,GAAQC,IAsHZ,IApHArD,EAAeqD,KAAMN,GACrBM,KAAKC,cAAgBD,KAAKE,oBAAoBF,KAAKG,SAEnDP,EAAWQ,IAAIJ,KAAKC,cAAcI,UAElCC,QAAQC,OAAOP,MACXF,eAAgBA,EAChBU,OAAQX,EACRY,UAAWb,EACXc,WAAY,SACZC,aAAcrB,EAAOC,KACrBqB,UAAW,WACP,IAAKb,EAAME,cAAcY,eACrB,MAAO,SACJ,KAAKd,EAAME,cAAca,cAC5B,MAAO,QACJ,KAAKf,EAAME,cAAcc,aAC5B,MAAO,OACJ,KAAKhB,EAAME,cAAce,cAC5B,MAAO,QACJ,KAAKjB,EAAME,cAAcgB,eAC5B,MAAO,SACJ,KAAKlB,EAAME,cAAciB,cAC5B,MAAO,QACJ,KAAKnB,EAAME,cAAckB,gBAC5B,MAAO,UAEX,MAAM,sCAEVC,cAAetB,EAAesB,gBAC9BC,OACIC,SACIA,QAAS,EACTC,QAAS,GAEbC,QACIC,MAAO,EACPH,QAAS,EACTC,QAAS,GAEbG,OACIC,OAAQ,YACRC,WACIC,KAAM,EACNJ,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDE,cACIP,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DG,QACIC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLf,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDW,SACId,OAAQ,cACRe,aACIC,IAAK,IACLC,OAAQ,EACRnB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDe,iBACIC,UAAW,KACXH,IAAK,MACLC,OAAQ,EACRnB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DiB,QACIpB,OAAQ,mBACRqB,kBACIC,MAAO,EACPN,IAAK,IACLlB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,MAExDoB,mBACIJ,UAAW,KACXH,IAAK,MACLM,MAAO,EACPxB,MAAOzB,KAAKC,cAAc6B,cAAgB,EAAI,EAC9CR,QAAS,EACTC,QAAS,EACTQ,SAAU/B,KAAKC,cAAc6B,cAAgB,KAAO,OAG5DqB,UACIC,WAAY,uBAMiC,GAArD/D,EAAwBgE,QAAQrD,KAAKU,YACrC,KAAM,wBAA0BV,KAAKU,WAAa,oBAItDf,GAAO2D,OAAO,gBAAiB,SAAUC,GACrC,MAAOxD,GAAMyD,kBAAkBD,KAInC5D,EAAO2D,OAAO,gBAAiBtD,KAAKyD,eAAeC,KAAK1D,OAAO,GA4UnE,oEAzUAjD,EAAY2C,IACR/B,IAAK,UACLmB,MAAO,WACH,GAAI6E,GAAS3D,IAGTA,MAAK4D,UAAY5D,KAAK6D,OACtB7D,KAAK8D,YAAYC,YAAYC,aAAe,SAAUZ,GAClD,MAAOO,GAAO7D,eAAemE,QAAQN,EAAOjD,WAAY0C,QAKpEzF,IAAK,iBACLmB,MAAO,SAAwBqB,GAC3BH,KAAKC,cAAgBD,KAAKE,oBAAoBC,GAC9CH,KAAKS,UAAUL,IAAIJ,KAAKC,cAAcI,aAG1C1C,IAAK,eACLmB,MAAO,SAAsBoF,EAAQC,GACjCD,EAAOE,iBACFpE,KAAKqE,aACNrE,KAAKY,UAAYuD,EACjBnE,KAAKsE,qBAIb3G,IAAK,aACLmB,MAAO,SAAoB6D,GACvB,OAAQA,GACJ,IAAK,MACD,MAAO3C,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,UACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,YACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,MACD,MAAOR,MAAKQ,OAAO,aAAa,gBAI5C7C,IAAK,mBACLmB,MAAO,SAA0ByF,GAC7B,OAAQA,GACJ,IAAK,KACD,MAAOvE,MAAKQ,OAAO,aAAa,QACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,KACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,YAI5C7C,IAAK,eACLmB,MAAO,SAAsB0F,GACzB,OAAQA,GACJ,IAAK,GACD,MAAOxE,MAAKQ,OAAO,aAAa,UACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,QACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,MACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,OACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,OACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,SACpC,KAAK,GACD,MAAOR,MAAKQ,OAAO,aAAa,YACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,UACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,WACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,gBAI5C7C,IAAK,kBACLmB,MAAO,SAAyB2F,GAC5B,MAAiB,MAAbA,EACOzE,KAAKQ,OAAO,aAAa,YACZ,OAAbiE,EACAzE,KAAKQ,OAAO,aAAa,gBACZ,OAAbiE,EACAzE,KAAKQ,OAAO,aAAa,iBAEzB,GAAKiE,EAAWzE,KAAKF,eAAe4E,UAAUD,GAAY,IAAMzE,KAAKQ,OAAO,aAAa,UAIxG7C,IAAK,cACLmB,MAAO,SAAqB2C,GACxB,MAAIzB,MAAKC,cAAc6B,cACZL,GAECA,EAAQ,IAAM,GAAK,KAInC9D,IAAK,cACLmB,MAAO,SAAqB2C,GACxB,MAAOzB,MAAKC,cAAc6B,cAAgB,KAAOL,GAAS,GAAK,KAAO,QAG1E9D,IAAK,aACLmB,MAAO,SAAoB6F,EAAM5C,GAC7B,MAAI/B,MAAKC,cAAc6B,cACZ6C,EAEa,OAAb5C,EAA6B,KAAT4C,EAAc,EAAIA,EAAgB,KAATA,EAAc,GAAKA,EAAO,MAItFhH,IAAK,sBACLmB,MAAO,SAA6BqB,GAChC,MAAOG,SAAQC,QACXqE,eAAgB,8BAChBC,gBAAiB,+BACjBC,eAAgB,qCAChBC,kBAAmB,wCACnBlE,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBW,eAAe,EACfkD,aAAa,EACb3E,SAAU,MACXF,MAGPxC,IAAK,iBACLmB,MAAO,WACH,GAAImG,GAASjF,IAGb,QADAA,KAAKW,aAAerB,EAAOE,MACnBQ,KAAKY,WACT,IAAK,UACDZ,KAAKkF,QAAUlF,KAAKqB,MAAMC,QAAQC,QAAU,MAAQvB,KAAKqB,MAAMC,QAAQA,QAAU,cACjF,MACJ,KAAK,SACDtB,KAAKkF,QAAUlF,KAAKqB,MAAMG,OAAOD,QAAU,IAAMvB,KAAKqB,MAAMG,OAAOF,QAAU,MAAQtB,KAAKqB,MAAMG,OAAOC,MAAQ,YAC/G,MACJ,KAAK,QACD,OAAQzB,KAAKqB,MAAMK,MAAMC,QACrB,IAAK,YACD3B,KAAKkF,QAAUlF,KAAKqB,MAAMK,MAAME,UAAUL,QAAU,IAAMvB,KAAKqB,MAAMK,MAAME,UAAUN,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMK,MAAME,UAAUH,MAAOzB,KAAKqB,MAAMK,MAAME,UAAUG,UAAY,MAAQ/B,KAAKqB,MAAMK,MAAME,UAAUC,KAAO,QACxO,MACJ,KAAK,eACD7B,KAAKkF,QAAUlF,KAAKqB,MAAMK,MAAMM,aAAaT,QAAU,IAAMvB,KAAKqB,MAAMK,MAAMM,aAAaV,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMK,MAAMM,aAAaP,MAAOzB,KAAKqB,MAAMK,MAAMM,aAAaD,UAAY,gBAC1M,MACJ,SACI,KAAM,sCAEd,KACJ,KAAK,SACD,GAAIF,GAAO7B,KAAKoB,cAAcS,KAAKuD,OAAO,SAAUC,EAAK1C,GACrD,MAAOsC,GAAO5D,MAAMY,OAAOU,GAAO0C,EAAIC,QAAQ3C,IAAQ0C,OACnDE,KAAK,IACZvF,MAAKkF,QAAUlF,KAAKqB,MAAMY,OAAOV,QAAU,IAAMvB,KAAKqB,MAAMY,OAAOX,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMY,OAAOR,MAAOzB,KAAKqB,MAAMY,OAAOF,UAAY,QAAUF,EAAO,IAC3K,MACJ,KAAK,UACD,OAAQ7B,KAAKqB,MAAMoB,QAAQd,QACvB,IAAK,cACD3B,KAAKkF,QAAUlF,KAAKqB,MAAMoB,QAAQC,YAAYnB,QAAU,IAAMvB,KAAKqB,MAAMoB,QAAQC,YAAYpB,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMoB,QAAQC,YAAYjB,MAAOzB,KAAKqB,MAAMoB,QAAQC,YAAYX,UAAY,IAAM/B,KAAKqB,MAAMoB,QAAQC,YAAYC,IAAM,MAAQ3C,KAAKqB,MAAMoB,QAAQC,YAAYE,OAAS,MACzS,MACJ,KAAK,kBACD5C,KAAKkF,QAAUlF,KAAKqB,MAAMoB,QAAQI,gBAAgBtB,QAAU,IAAMvB,KAAKqB,MAAMoB,QAAQI,gBAAgBvB,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAMoB,QAAQI,gBAAgBpB,MAAOzB,KAAKqB,MAAMoB,QAAQI,gBAAgBd,UAAY,QAAU/B,KAAKqB,MAAMoB,QAAQI,gBAAgBD,OAAS,IAAM5C,KAAKqB,MAAMoB,QAAQI,gBAAgBF,IAAM3C,KAAKqB,MAAMoB,QAAQI,gBAAgBC,UAAY,IAClX,MACJ,SACI,KAAM,wCAEd,KACJ,KAAK,SACD,OAAQ9C,KAAKqB,MAAM0B,OAAOpB,QACtB,IAAK,mBACD3B,KAAKkF,QAAUlF,KAAKqB,MAAM0B,OAAOC,iBAAiBzB,QAAU,IAAMvB,KAAKqB,MAAM0B,OAAOC,iBAAiB1B,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAM0B,OAAOC,iBAAiBvB,MAAOzB,KAAKqB,MAAM0B,OAAOC,iBAAiBjB,UAAY,IAAM/B,KAAKqB,MAAM0B,OAAOC,iBAAiBL,IAAM,IAAM3C,KAAKqB,MAAM0B,OAAOC,iBAAiBC,MAAQ,MAC9T,MACJ,KAAK,oBACDjD,KAAKkF,QAAUlF,KAAKqB,MAAM0B,OAAOG,kBAAkB3B,QAAU,IAAMvB,KAAKqB,MAAM0B,OAAOG,kBAAkB5B,QAAU,IAAMtB,KAAKmF,WAAWnF,KAAKqB,MAAM0B,OAAOG,kBAAkBzB,MAAOzB,KAAKqB,MAAM0B,OAAOG,kBAAkBnB,UAAY,MAAQ/B,KAAKqB,MAAM0B,OAAOG,kBAAkBD,MAAQ,IAAMjD,KAAKqB,MAAM0B,OAAOG,kBAAkBP,IAAM3C,KAAKqB,MAAM0B,OAAOG,kBAAkBJ,UAAY,IACtX,MACJ,SACI,KAAM,uCAEd,KACJ,KAAK,WACD9C,KAAKkF,QAAUlF,KAAKqB,MAAM8B,SAASC,UACnC,MACJ,SACI,KAAM,wCAIlBzF,IAAK,oBACLmB,MAAO,SAA2ByE,GAC9B,GAAIiC,GAASxF,IAEb,IAAIA,KAAKW,eAAiBrB,EAAOE,MAE7B,YADAQ,KAAKW,aAAerB,EAAOG,MAG3BO,MAAKW,aAAerB,EAAOG,KAG/B,IAAIgG,GAAWlC,EAAKmC,MAAM,IAC1B,IAAwB,IAApBD,EAASrI,QAAoC,IAApBqI,EAASrI,OAmGlC,KAAM,iEAlGN,IAAIuI,GAAY5H,EAAc0H,EAAU,GACpClE,EAAUoE,EAAU,GACpBrE,EAAUqE,EAAU,GACpBlE,EAAQkE,EAAU,GAClBC,EAAaD,EAAU,GACvB1C,EAAQ0C,EAAU,GAClBE,EAAYF,EAAU,EAE1B,IAAIpC,EAAKuC,MAAM,+BACX9F,KAAKY,UAAY,UACjBZ,KAAKqB,MAAMC,QAAQA,QAAUyE,SAASzE,EAAQ0E,UAAU,IACxDhG,KAAKqB,MAAMC,QAAQC,QAAUwE,SAASxE,OACnC,IAAIgC,EAAKuC,MAAM,gCAClB9F,KAAKY,UAAY,SACjBZ,KAAKqB,MAAMG,OAAOC,MAAQsE,SAAStE,EAAMuE,UAAU,IACnDhG,KAAKqB,MAAMG,OAAOF,QAAUyE,SAASzE,GACrCtB,KAAKqB,MAAMG,OAAOD,QAAUwE,SAASxE,OAClC,IAAIgC,EAAKuC,MAAM,+BAAgC,CAClD9F,KAAKY,UAAY,QACjBZ,KAAKqB,MAAMK,MAAMC,OAAS,YAC1B3B,KAAKqB,MAAMK,MAAME,UAAUC,KAAOkE,SAASH,EAAWI,UAAU,GAChE,IAAIC,GAAcF,SAAStE,EAC3BzB,MAAKqB,MAAMK,MAAME,UAAUH,MAAQzB,KAAKkG,YAAYD,GACpDjG,KAAKqB,MAAMK,MAAME,UAAUG,SAAW/B,KAAKmG,YAAYF,GACvDjG,KAAKqB,MAAMK,MAAME,UAAUN,QAAUyE,SAASzE,GAC9CtB,KAAKqB,MAAMK,MAAME,UAAUL,QAAUwE,SAASxE,OAC3C,IAAIgC,EAAKuC,MAAM,gCAAiC,CACnD9F,KAAKY,UAAY,QACjBZ,KAAKqB,MAAMK,MAAMC,OAAS,cAC1B,IAAIyE,GAAeL,SAAStE,EAC5BzB,MAAKqB,MAAMK,MAAMM,aAAaP,MAAQzB,KAAKkG,YAAYE,GACvDpG,KAAKqB,MAAMK,MAAMM,aAAaD,SAAW/B,KAAKmG,YAAYC,GAC1DpG,KAAKqB,MAAMK,MAAMM,aAAaV,QAAUyE,SAASzE,GACjDtB,KAAKqB,MAAMK,MAAMM,aAAaT,QAAUwE,SAASxE,OAC9C,IAAIgC,EAAKuC,MAAM,uFAAwF,CAC1G9F,KAAKY,UAAY,SACjBZ,KAAKoB,cAAcS,KAAKwE,QAAQ,SAAUC,GACtC,MAAOd,GAAOnE,MAAMY,OAAOqE,IAAW,IAE1CT,EAAUH,MAAM,KAAKW,QAAQ,SAAUC,GACnC,MAAOd,GAAOnE,MAAMY,OAAOqE,IAAW,GAE1C,IAAIC,GAAgBR,SAAStE,EAC7BzB,MAAKqB,MAAMY,OAAOR,MAAQzB,KAAKkG,YAAYK,GAC3CvG,KAAKqB,MAAMY,OAAOF,SAAW/B,KAAKmG,YAAYI,GAC9CvG,KAAKqB,MAAMY,OAAOX,QAAUyE,SAASzE,GACrCtB,KAAKqB,MAAMY,OAAOV,QAAUwE,SAASxE,OAClC,IAAIgC,EAAKuC,MAAM,0CAA2C,CAC7D9F,KAAKY,UAAY,UACjBZ,KAAKqB,MAAMoB,QAAQd,OAAS,cAC5B3B,KAAKqB,MAAMoB,QAAQC,YAAYC,IAAMiD,EACrC5F,KAAKqB,MAAMoB,QAAQC,YAAYE,OAASmD,SAAS9C,EAAM+C,UAAU,GACjE,IAAIQ,GAAgBT,SAAStE,EAC7BzB,MAAKqB,MAAMoB,QAAQC,YAAYjB,MAAQzB,KAAKkG,YAAYM,GACxDxG,KAAKqB,MAAMoB,QAAQC,YAAYX,SAAW/B,KAAKmG,YAAYK,GAC3DxG,KAAKqB,MAAMoB,QAAQC,YAAYpB,QAAUyE,SAASzE,GAClDtB,KAAKqB,MAAMoB,QAAQC,YAAYnB,QAAUwE,SAASxE,OAC/C,IAAIgC,EAAKuC,MAAM,sEAAuE,CACzF,GAAInD,GAAMkD,EAAUY,OAAO,EAAG,GAC1B3D,EAAY+C,EAAUY,OAAO,EACjCzG,MAAKY,UAAY,UACjBZ,KAAKqB,MAAMoB,QAAQd,OAAS,kBAC5B3B,KAAKqB,MAAMoB,QAAQI,gBAAgBC,UAAYA,EAC/C9C,KAAKqB,MAAMoB,QAAQI,gBAAgBF,IAAMA,EACzC3C,KAAKqB,MAAMoB,QAAQI,gBAAgBD,OAASmD,SAAS9C,EAAM+C,UAAU,GACrE,IAAIU,GAAgBX,SAAStE,EAC7BzB,MAAKqB,MAAMoB,QAAQI,gBAAgBpB,MAAQzB,KAAKkG,YAAYQ,GAC5D1G,KAAKqB,MAAMoB,QAAQI,gBAAgBd,SAAW/B,KAAKmG,YAAYO,GAC/D1G,KAAKqB,MAAMoB,QAAQI,gBAAgBvB,QAAUyE,SAASzE,GACtDtB,KAAKqB,MAAMoB,QAAQI,gBAAgBtB,QAAUwE,SAASxE,OACnD,IAAIgC,EAAKuC,MAAM,uCAAwC,CAC1D9F,KAAKY,UAAY,SACjBZ,KAAKqB,MAAM0B,OAAOpB,OAAS,mBAC3B3B,KAAKqB,MAAM0B,OAAOC,iBAAiBC,MAAQ8C,SAAS9C,GACpDjD,KAAKqB,MAAM0B,OAAOC,iBAAiBL,IAAMiD,CACzC,IAAIe,GAAgBZ,SAAStE,EAC7BzB,MAAKqB,MAAM0B,OAAOC,iBAAiBvB,MAAQzB,KAAKkG,YAAYS,GAC5D3G,KAAKqB,MAAM0B,OAAOC,iBAAiBjB,SAAW/B,KAAKmG,YAAYQ,GAC/D3G,KAAKqB,MAAM0B,OAAOC,iBAAiB1B,QAAUyE,SAASzE,GACtDtB,KAAKqB,MAAM0B,OAAOC,iBAAiBzB,QAAUwE,SAASxE,OACnD,IAAIgC,EAAKuC,MAAM,mEAAoE,CACtF,GAAIc,GAAOf,EAAUY,OAAO,EAAG,GAC3BI,EAAahB,EAAUY,OAAO,EAClCzG,MAAKY,UAAY,SACjBZ,KAAKqB,MAAM0B,OAAOpB,OAAS,oBAC3B3B,KAAKqB,MAAM0B,OAAOG,kBAAkBJ,UAAY+D,EAChD7G,KAAKqB,MAAM0B,OAAOG,kBAAkBP,IAAMiE,EAC1C5G,KAAKqB,MAAM0B,OAAOG,kBAAkBD,MAAQ8C,SAAS9C,EACrD,IAAI6D,GAAgBf,SAAStE,EAC7BzB,MAAKqB,MAAM0B,OAAOG,kBAAkBzB,MAAQzB,KAAKkG,YAAYY,GAC7D9G,KAAKqB,MAAM0B,OAAOG,kBAAkBnB,SAAW/B,KAAKmG,YAAYW,GAChE9G,KAAKqB,MAAM0B,OAAOG,kBAAkB5B,QAAUyE,SAASzE,GACvDtB,KAAKqB,MAAM0B,OAAOG,kBAAkB3B,QAAUwE,SAASxE,OAEvDvB,MAAKY,UAAY,WACjBZ,KAAKqB,MAAM8B,SAASC,WAAaG,MAO1C7D,KAGPqH,EAAe,gvCAGf,QAASC,GAAenH,GACpBlD,EAAeqD,KAAMgH,GAErBhH,KAAKQ,OAASX,EA+ElB,6BA5EA9C,EAAYiK,IACRrJ,IAAK,UACLmB,MAAO,SAAiB4B,EAAY0C,GAChC,GAAI6D,GAAsB7D,EAAW8D,aACrC,QAAQxG,GACJ,IAAK,SACD,QAASuG,EAAoBnB,MAAMiB,EACvC,SACI,KAAM,wBAA0BrG,EAAa,yBAIzD/C,IAAK,YACLmB,MAAO,SAAmBqI,GACtB,GAAIrI,GAAQ,GAAKqI,CACjB,IAAIrI,EAAM1B,OAAS,EAAG,CAElB,GAA0B,MADF0B,EAAMsI,OAAOtI,EAAM1B,OAAS,GAEhD,MAAO4C,MAAKQ,OAAO,aAAa,mBAIxC,OADgB1B,EAAMsI,OAAOtI,EAAM1B,OAAS,IAExC,IAAK,IACD,MAAO4C,MAAKQ,OAAO,aAAa,eACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,gBACpC,KAAK,IACD,MAAOR,MAAKQ,OAAO,aAAa,eACpC,SACI,MAAOR,MAAKQ,OAAO,aAAa,uBAI5C7C,IAAK,YACLmB,MAAO,SAAmBqI,GACtB,MAAgC,MAAxB,GAAKA,GAAQ/J,OAAe,IAAM+J,EAAS,GAAKA,KAG5DxJ,IAAK,QACLmB,MAAO,SAAeuI,EAAOC,GAMzB,OALmB,KAARA,IACPA,EAAMD,EACNA,EAAQ,GAGRA,EAAQ,GAAKC,EAAM,EAAG,KAAM,sCAEhC,OAAIA,GAAMD,KACI/B,OAAOpG,EAAkB,GAAIF,OAAMsI,EAAMD,KAASE,IAAI,SAAUC,EAAKC,GAC3E,MAAOA,GAAMJ,IAEVA,EAAQC,KACLhC,OAAOpG,EAAkB,GAAIF,OAAMqI,EAAQC,KAAOC,IAAI,SAAUC,EAAKC,GAC3E,MAAOH,GAAMG,IAEP,GAAIzI,UAGtBrB,IAAK,gBACLmB,MAAO,WACH,OACI8D,OAAQ5C,KAAK0H,MAAM,EAAG,IACtBC,YAAa,KAAM,KAAM,KAAM,KAAM,KAAM,KAC3C9F,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACjDP,QAAStB,KAAK0H,MAAM,EAAG,IACvBE,YAAa5H,KAAK0H,MAAM,IACxBnG,QAASvB,KAAK0H,MAAM,IACpBjG,MAAOzB,KAAK0H,MAAM,EAAG,IACrBG,UAAW7H,KAAK0H,MAAM,EAAG,IACzBI,oBAAqB,MAAMxC,OAAOpG,KAAqBoG,OAAOpG,EAAkB,GAAIF,OAAM,MAAMuI,IAAI,SAAUC,EAAKC,GAC/G,MAAO,IAAMA,EAAM,OACjB,KAAM,WAIjBT,KAGPe,EAAoB,QAASA,GAAkBpI,EAAQG,GACvD,UAEA,IAAIC,GAAQC,IAEZrD,GAAeqD,KAAM+H,GACrB/H,KAAKF,eAAiBA,EAEtBE,KAAKoB,eACDE,QAASxB,EAAe4H,MAAM,IAC9BnG,QAASzB,EAAe4H,MAAM,IAC9BM,WAAY,KAAM,OAGtBrI,EAAO2D,OAAO,sBAAuB,WACjCvD,EAAMqB,cAAcK,MAAQ1B,EAAM+B,cAAgB/B,EAAMD,eAAe4H,MAAM,IAAM3H,EAAMD,eAAe4H,MAAM,EAAG,6CAIzHpH,QAAQ2H,OAAO,oBAAqB,2BAA2BC,QAAA,qBAAO,SAAUC,GAC5EA,EAAmBC,aAAa,MAC5BC,QAAW,UACXC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,QAAW,UACXC,OAAU,SACVC,SAAY,WACZC,MAAS,QACTC,OAAU,YACVC,UAAa,YACbC,eAAkB,oBAClBC,WAAc,aACdC,OAAU,YACVC,uBAA0B,4CAC1BC,OAAU,SACVC,QAAW,UACXC,UAAa,YACbC,SAAY,WACZC,OAAU,SACVC,SAAY,WACZC,OAAU,SACVC,WAAc,aACdC,OAAU,SACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,kBACnBC,aAAgB,kEAChBC,KAAQ,OACRC,SAAY,WACZC,aAAgB,eAChBC,cAAiB,gBACjBC,IAAO,MACPC,aAAgB,KAChBC,cAAiB,KACjBC,aAAgB,KAChBC,gBAAmB,KACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,OAAU,SACVC,MAAS,QACTC,KAAQ,OACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,SACXC,OAAU,SACVC,MAAS,cACTC,OAAU,cACVC,QAAW,UACXC,OAAU,UACVC,SAAY,WACZC,MAAS,OACTC,OAAU,WACVC,UAAa,aACbC,eAAkB,kBAClBC,WAAc,YACdC,OAAU,gBACVC,uBAA0B,6DAC1BC,OAAU,UACVC,QAAW,WACXC,UAAa,aACbC,SAAY,WACZC,OAAU,WACVC,SAAY,SACZC,OAAU,WACVC,WAAc,cACdC,OAAU,KACVC,SAAY,UACZC,UAAa,YACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,8DAChBC,KAAQ,MACRC,SAAY,gBACZC,aAAgB,iBAChBC,cAAiB,mBACjBC,IAAO,SACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,UACVC,MAAS,QACTC,OAAU,SACVC,MAAS,SACTC,KAAQ,SACRC,QAAW,UACXC,SAAY,WACZC,MAAS,QACTC,MAAS,SACTC,IAAO,SACPC,KAAQ,SACRC,KAAQ,SACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,aACbxD,aAAa,MACZC,QAAW,YACXC,OAAU,YACVC,MAAS,UACTC,OAAU,cACVC,QAAW,YACXC,OAAU,WACVC,SAAY,gBACZC,MAAS,UACTC,OAAU,YACVC,UAAa,cACbC,eAAkB,uBAClBC,WAAc,cACdC,OAAU,YACVC,uBAA0B,0CAC1BC,OAAU,SACVC,QAAW,WACXC,UAAa,WACbC,SAAY,aACZC,OAAU,UACVC,SAAY,UACZC,OAAU,UACVC,WAAc,YACdC,OAAU,KACVC,SAAY,WACZC,UAAa,cACbC,GAAM,KACNC,GAAM,KACNC,gBAAmB,gBACnBC,aAAgB,mEAChBC,KAAQ,OACRC,SAAY,cACZC,aAAgB,oBAChBC,cAAiB,mBACjBC,IAAO,MACPC,aAAgB,GAChBC,cAAiB,GACjBC,aAAgB,GAChBC,gBAAmB,GACnBC,MAAS,QACTC,OAAU,SACVC,MAAS,SACTC,OAAU,SACVC,MAAS,SACTC,KAAQ,SACRC,QAAW,SACXC,SAAY,UACZC,MAAS,OACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,gBAEjBC,QAAQ,iBAAkB7E,GAAgB8E,UAAU,qBACnDC,UACIC,WAAY,IACZC,SAAU,IACVC,WAAY,IACZC,MAAO,IACPC,YAAa,IACbtK,cAAe,IACfkD,YAAa,IACbqH,WAAY,KAEhBC,YAAa,6CACbC,WAAYxE,IACb+D,UAAU,WACTC,UACI7G,QAAS,IACTb,WAAY,IACZlE,QAAS,IACTO,WAAY,IACZ4L,YAAa,IACbzI,KAAM,KAEV2I,SACI1I,YAAa,UACb2I,eAAgB,cAChB7I,SAAU,UAEd0I,aAAA,SAAa,SAAqBI,GAC9B,UAEA,OAAOA,GAAOJ,aAAe,mCAGjCC,WAAY7M,4ECp4BhBiN,EAAAC,IAAA,6CAAA,2uDACAD,EAAAC,IAAA,iCAAA","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 '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 '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 '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 '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': 'Jede(n)',\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 'OF_EVERY': 'an jedem',\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': 'Erste',\n 'SECOND': 'Zweite',\n 'THIRD': 'Dritte',\n 'FOURTH': 'Vierte',\n 'FIFTH': 'Fünfte',\n 'LAST': 'Letzte',\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\\' | translate}}\\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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","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","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","EVERY_DAY_YEAR","ON_THE_SMALL","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 '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 '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 '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 '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': 'Jede',\n 'EVERY_DAY_YEAR': 'Jeden',\n 'MINUTE': 'Minute',\n 'ON_SECOND': 'auf Sekunde',\n 'HOUR_ON_MINUTE': 'Stunde auf Minute',\n 'AND_SECOND': 'und Sekunde',\n 'DAY_AT': 'Tag 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': 'jeden',\n 'MONTHS_AT': 'Monat 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_DAY_YEAR\\' | 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_DAY_YEAR\\' | translate}}\\n \\n {{ \\'ON_THE_SMALL\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 22f60b81..fb15110b 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -818,12 +818,13 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'MONTHLY': 'Monatlich', 'YEARLY': 'Jährlich', 'ADVANCED': 'Cron Ausdruck', - 'EVERY': 'Jede(n)', - 'MINUTE': 'Minute(n)', + 'EVERY': 'Jede', + 'EVERY_DAY_YEAR': 'Jeden', + 'MINUTE': 'Minute', 'ON_SECOND': 'auf Sekunde', - 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', - 'AND_SECOND': 'und SeKunde', - 'DAY_AT': 'Tag(e) um', + 'HOUR_ON_MINUTE': 'Stunde auf Minute', + 'AND_SECOND': 'und Sekunde', + 'DAY_AT': 'Tag um', 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", 'MONDAY': "Montag", 'TUESDAY': "Dienstag", @@ -834,8 +835,9 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'SUNDAY': 'Sonntag', 'START_TIME': 'Startzeit', 'ON_THE': 'Am', - 'OF_EVERY': 'an jedem', - 'MONTHS_AT': 'Monat(e) um', + 'ON_THE_SMALL': 'am', + 'OF_EVERY': 'jeden', + 'MONTHS_AT': 'Monat um', 'AT': 'um', 'OF': 'im', 'CRON_EXPRESSION': 'Cron Ausdruck', @@ -849,12 +851,12 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'SECOND_PREFIX': '', 'THIRD_PREFIX': '', 'CARDINAL_PREFIX': '', - 'FIRST': 'Erste', - 'SECOND': 'Zweite', - 'THIRD': 'Dritte', - 'FOURTH': 'Vierte', - 'FIFTH': 'Fünfte', - 'LAST': 'Letzte', + 'FIRST': 'Ersten', + 'SECOND': 'Zweiten', + 'THIRD': 'Dritten', + 'FOURTH': 'Vierten', + 'FIFTH': 'Fünften', + 'LAST': 'Letzten', 'JANUARY': 'Januar', 'FEBRUARY': 'Februar', 'MARCH': 'März', diff --git a/build/templates.js b/build/templates.js index beccf20a..43eb5280 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\' | 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\' | translate}}\n \n {{ \'ON_THE\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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_DAY_YEAR\' | 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_DAY_YEAR\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \n
    \n
    \n
    \n
    \n
    \n
    \n');}]); \ No newline at end of file diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index fee74885..a71a2374 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -129,12 +129,13 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'MONTHLY': 'Monatlich', 'YEARLY': 'Jährlich', 'ADVANCED': 'Cron Ausdruck', - 'EVERY': 'Jede(n)', - 'MINUTE': 'Minute(n)', + 'EVERY': 'Jede', + 'EVERY_DAY_YEAR': 'Jeden', + 'MINUTE': 'Minute', 'ON_SECOND': 'auf Sekunde', - 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', - 'AND_SECOND': 'und SeKunde', - 'DAY_AT': 'Tag(e) um', + 'HOUR_ON_MINUTE': 'Stunde auf Minute', + 'AND_SECOND': 'und Sekunde', + 'DAY_AT': 'Tag um', 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", 'MONDAY': "Montag", 'TUESDAY': "Dienstag", @@ -145,8 +146,9 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'SUNDAY': 'Sonntag', 'START_TIME': 'Startzeit', 'ON_THE': 'Am', - 'OF_EVERY': 'an jedem', - 'MONTHS_AT': 'Monat(e) um', + 'ON_THE_SMALL': 'am', + 'OF_EVERY': 'jeden', + 'MONTHS_AT': 'Monat um', 'AT': 'um', 'OF': 'im', 'CRON_EXPRESSION': 'Cron Ausdruck', @@ -160,12 +162,12 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'SECOND_PREFIX': '', 'THIRD_PREFIX': '', 'CARDINAL_PREFIX': '', - 'FIRST': 'Erste', - 'SECOND': 'Zweite', - 'THIRD': 'Dritte', - 'FOURTH': 'Vierte', - 'FIFTH': 'Fünfte', - 'LAST': 'Letzte', + 'FIRST': 'Ersten', + 'SECOND': 'Zweiten', + 'THIRD': 'Dritten', + 'FOURTH': 'Vierten', + 'FIFTH': 'Fünften', + 'LAST': 'Letzten', 'JANUARY': 'Januar', 'FEBRUARY': 'Februar', 'MARCH': 'März', diff --git a/src/templates/cron-gen.html b/src/templates/cron-gen.html index 49dc6732..5acdd76f 100644 --- a/src/templates/cron-gen.html +++ b/src/templates/cron-gen.html @@ -159,7 +159,7 @@ ng-model="$ctrl.state.daily.subTab" ng-class="$ctrl.state.formRadioClass" checked="checked"> - {{ 'EVERY' | translate}} + {{ 'EVERY_DAY_YEAR' | translate}} - {{ 'ON_THE' | translate}} + {{ 'ON_THE_SMALL' | translate}} \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 D=parseInt(c);this.state.yearly.specificMonthDay.hours=this.processHour(D),this.state.yearly.specificMonthDay.hourType=this.getHourType(D),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.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=$,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_DAY_YEAR\' | 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_DAY_YEAR\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 03d15d2b..b882f796 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","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","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","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","EVERY_DAY_YEAR","ON_THE_SMALL","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 '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 '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 '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 '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': 'Jede',\n 'EVERY_DAY_YEAR': 'Jeden',\n 'MINUTE': 'Minute',\n 'ON_SECOND': 'auf Sekunde',\n 'HOUR_ON_MINUTE': 'Stunde auf Minute',\n 'AND_SECOND': 'und Sekunde',\n 'DAY_AT': 'Tag 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': 'jeden',\n 'MONTHS_AT': 'Monat 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_DAY_YEAR\\' | 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_DAY_YEAR\\' | translate}}\\n \\n {{ \\'ON_THE_SMALL\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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_DAY_YEAR","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_DAY_YEAR': '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_DAY_YEAR': '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': 'Jede',\n 'EVERY_DAY_YEAR': 'Jeden',\n 'MINUTE': 'Minute',\n 'ON_SECOND': 'auf Sekunde',\n 'HOUR_ON_MINUTE': 'Stunde auf Minute',\n 'AND_SECOND': 'und Sekunde',\n 'DAY_AT': 'Tag 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': 'jeden',\n 'MONTHS_AT': 'Monat 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_DAY_YEAR\\' | 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_DAY_YEAR\\' | translate}}\\n \\n {{ \\'ON_THE_SMALL\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\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 fb15110b..c9a5b539 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -705,6 +705,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'YEARLY': 'Yearly', 'ADVANCED': 'Advanced', 'EVERY': 'Every', + 'EVERY_DAY_YEAR': 'Every', 'MINUTE': 'minute(s)', 'ON_SECOND': 'on second', 'HOUR_ON_MINUTE': 'hour(s) on minute', @@ -720,6 +721,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla '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', @@ -762,6 +764,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'YEARLY': 'Annuale', 'ADVANCED': 'Avanzato', 'EVERY': 'Ogni', + 'EVERY_DAY_YEAR': 'Ogni', 'MINUTE': 'minuto/i', 'ON_SECOND': 'al secondo', 'HOUR_ON_MINUTE': 'ora/e al minuto', @@ -777,6 +780,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'SUNDAY': 'Domenica', 'START_TIME': 'Inizio alle', 'ON_THE': 'Il', + 'ON_THE_SMALL': 'il', 'OF_EVERY': 'di ogni', 'MONTHS_AT': 'mese/i il', 'AT': 'il', diff --git a/src/cron-gen.module.js b/src/cron-gen.module.js index a71a2374..d0a9d01a 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -14,6 +14,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'YEARLY': 'Yearly', 'ADVANCED': 'Advanced', 'EVERY': 'Every', + 'EVERY_DAY_YEAR': 'Every', 'MINUTE': 'minute(s)', 'ON_SECOND': 'on second', 'HOUR_ON_MINUTE': 'hour(s) on minute', @@ -29,6 +30,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) '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', @@ -72,6 +74,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'YEARLY': 'Annuale', 'ADVANCED': 'Avanzato', 'EVERY': 'Ogni', + 'EVERY_DAY_YEAR': 'Ogni', 'MINUTE': 'minuto/i', 'ON_SECOND': 'al secondo', 'HOUR_ON_MINUTE': 'ora/e al minuto', @@ -87,6 +90,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'SUNDAY': 'Domenica', 'START_TIME': 'Inizio alle', 'ON_THE': 'Il', + 'ON_THE_SMALL': 'il', 'OF_EVERY': 'di ogni', 'MONTHS_AT': 'mese/i il', 'AT': 'il', From 0615bd630c66837885c3a1421c0a7588a63c0ed8 Mon Sep 17 00:00:00 2001 From: khauth Date: Fri, 5 Jul 2019 10:47:09 +0200 Subject: [PATCH 22/22] add German translation --- build/cron-gen.min.js | 4 ++-- build/cron-gen.min.js.map | 2 +- build/cron-gen.module.js | 18 +++++++++--------- build/templates.js | 2 +- src/cron-gen.module.js | 18 +++++++++--------- src/templates/cron-gen.html | 10 +++------- 6 files changed, 25 insertions(+), 29 deletions(-) diff --git a/build/cron-gen.min.js b/build/cron-gen.min.js index 6a6ee92e..80742943 100644 --- a/build/cron-gen.min.js +++ b/build/cron-gen.min.js @@ -1,4 +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,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 D=parseInt(c);this.state.yearly.specificMonthDay.hours=this.processHour(D),this.state.yearly.specificMonthDay.hourType=this.getHourType(D),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.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=$,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_DAY_YEAR\' | 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_DAY_YEAR\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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 b882f796..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","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_DAY_YEAR","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_DAY_YEAR': '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_DAY_YEAR': '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': 'Jede',\n 'EVERY_DAY_YEAR': 'Jeden',\n 'MINUTE': 'Minute',\n 'ON_SECOND': 'auf Sekunde',\n 'HOUR_ON_MINUTE': 'Stunde auf Minute',\n 'AND_SECOND': 'und Sekunde',\n 'DAY_AT': 'Tag 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': 'jeden',\n 'MONTHS_AT': 'Monat 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_DAY_YEAR\\' | 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_DAY_YEAR\\' | translate}}\\n \\n {{ \\'ON_THE_SMALL\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n \\n {{ \\'ON_THE\\' | translate}}\\n \\n \\n {{ \\'OF\\' | translate}}\\n \\n {{ \\'AT\\' | translate}}\\n \\n \\n
    \\n
    \\n
    \\n {{ \\'CRON_EXPRESSION\\' | translate}}\\n \\n\\n

    {{ \\'MORE_DETAILS\\' | translate}} {{ \\'HERE\\' | translate}}.

    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n');}]);"]} \ 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 c9a5b539..c4cdfdec 100644 --- a/build/cron-gen.module.js +++ b/build/cron-gen.module.js @@ -705,7 +705,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'YEARLY': 'Yearly', 'ADVANCED': 'Advanced', 'EVERY': 'Every', - 'EVERY_DAY_YEAR': 'Every', + 'EVERY_MONTH': 'Every', 'MINUTE': 'minute(s)', 'ON_SECOND': 'on second', 'HOUR_ON_MINUTE': 'hour(s) on minute', @@ -764,7 +764,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'YEARLY': 'Annuale', 'ADVANCED': 'Avanzato', 'EVERY': 'Ogni', - 'EVERY_DAY_YEAR': 'Ogni', + 'EVERY_MONTH': 'Ogni', 'MINUTE': 'minuto/i', 'ON_SECOND': 'al secondo', 'HOUR_ON_MINUTE': 'ora/e al minuto', @@ -822,13 +822,13 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'MONTHLY': 'Monatlich', 'YEARLY': 'Jährlich', 'ADVANCED': 'Cron Ausdruck', - 'EVERY': 'Jede', - 'EVERY_DAY_YEAR': 'Jeden', - 'MINUTE': 'Minute', + 'EVERY': 'Alle', + 'EVERY_MONTH': 'Jeden', + 'MINUTE': 'Minute(n)', 'ON_SECOND': 'auf Sekunde', - 'HOUR_ON_MINUTE': 'Stunde auf Minute', + 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', 'AND_SECOND': 'und Sekunde', - 'DAY_AT': 'Tag um', + 'DAY_AT': 'Tag(e) um', 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", 'MONDAY': "Montag", 'TUESDAY': "Dienstag", @@ -840,8 +840,8 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']).config(["$transla 'START_TIME': 'Startzeit', 'ON_THE': 'Am', 'ON_THE_SMALL': 'am', - 'OF_EVERY': 'jeden', - 'MONTHS_AT': 'Monat um', + 'OF_EVERY': 'alle', + 'MONTHS_AT': 'Monat(e) um', 'AT': 'um', 'OF': 'im', 'CRON_EXPRESSION': 'Cron Ausdruck', diff --git a/build/templates.js b/build/templates.js index 43eb5280..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\' | 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_DAY_YEAR\' | 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_DAY_YEAR\' | translate}}\n \n {{ \'ON_THE_SMALL\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n \n {{ \'ON_THE\' | translate}}\n \n \n {{ \'OF\' | translate}}\n \n {{ \'AT\' | translate}}\n \n \n
    \n
    \n
    \n {{ \'CRON_EXPRESSION\' | translate}}\n \n\n

    {{ \'MORE_DETAILS\' | translate}} {{ \'HERE\' | translate}}.

    \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/src/cron-gen.module.js b/src/cron-gen.module.js index d0a9d01a..6f68287c 100644 --- a/src/cron-gen.module.js +++ b/src/cron-gen.module.js @@ -14,7 +14,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'YEARLY': 'Yearly', 'ADVANCED': 'Advanced', 'EVERY': 'Every', - 'EVERY_DAY_YEAR': 'Every', + 'EVERY_MONTH': 'Every', 'MINUTE': 'minute(s)', 'ON_SECOND': 'on second', 'HOUR_ON_MINUTE': 'hour(s) on minute', @@ -74,7 +74,7 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'YEARLY': 'Annuale', 'ADVANCED': 'Avanzato', 'EVERY': 'Ogni', - 'EVERY_DAY_YEAR': 'Ogni', + 'EVERY_MONTH': 'Ogni', 'MINUTE': 'minuto/i', 'ON_SECOND': 'al secondo', 'HOUR_ON_MINUTE': 'ora/e al minuto', @@ -133,13 +133,13 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'MONTHLY': 'Monatlich', 'YEARLY': 'Jährlich', 'ADVANCED': 'Cron Ausdruck', - 'EVERY': 'Jede', - 'EVERY_DAY_YEAR': 'Jeden', - 'MINUTE': 'Minute', + 'EVERY': 'Alle', + 'EVERY_MONTH': 'Jeden', + 'MINUTE': 'Minute(n)', 'ON_SECOND': 'auf Sekunde', - 'HOUR_ON_MINUTE': 'Stunde auf Minute', + 'HOUR_ON_MINUTE': 'Stunde(n) auf Minute', 'AND_SECOND': 'und Sekunde', - 'DAY_AT': 'Tag um', + 'DAY_AT': 'Tag(e) um', 'EVERY_WEEK_WORKING_DAY': "Jeden Wochentag (Montag bis Freitag) um", 'MONDAY': "Montag", 'TUESDAY': "Dienstag", @@ -151,8 +151,8 @@ angular.module('angular-cron-gen', ['pascalprecht.translate']) 'START_TIME': 'Startzeit', 'ON_THE': 'Am', 'ON_THE_SMALL': 'am', - 'OF_EVERY': 'jeden', - 'MONTHS_AT': 'Monat um', + 'OF_EVERY': 'alle', + 'MONTHS_AT': 'Monat(e) um', 'AT': 'um', 'OF': 'im', 'CRON_EXPRESSION': 'Cron Ausdruck', diff --git a/src/templates/cron-gen.html b/src/templates/cron-gen.html index 5acdd76f..7d3b525d 100644 --- a/src/templates/cron-gen.html +++ b/src/templates/cron-gen.html @@ -159,7 +159,7 @@ ng-model="$ctrl.state.daily.subTab" ng-class="$ctrl.state.formRadioClass" checked="checked"> - {{ 'EVERY_DAY_YEAR' | translate}} + {{ 'EVERY' | translate}} - {{ 'ON_THE' | translate}} + {{ 'EVERY_MONTH' | translate}}