Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

chrono-node

Package Overview
Dependencies
Maintainers
1
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chrono-node - npm Package Compare versions

Comparing version 0.0.4 to 0.1.1

libpeerconnection.log

51

chrono.js
// chrono.js
// version : 0.0.3
// version : 0.0.5
// author : Wanasit T.

@@ -9,10 +9,10 @@ // license : MIT

chrono.parsers = {};
chrono.importantdays = {};
chrono.refiners = {};
chrono.parse = function(text, referrenceDate, option) {
var parser = this.IntegratedParser(text, referrenceDate, option);
parser.execAll();
var results = this.integratedParse(text, referrenceDate, option);
var results = this.integratedRefine(text, results);
return parser.results();
return results;
}

@@ -30,3 +30,3 @@

//Browser Code
var moment = window.moment;
var moment = moment || window.moment;
window.chrono = chrono;

@@ -39,20 +39,27 @@ }

function loadModuleDirs(dir){
var module_dirs = fs.readdirSync(__dirname+'/'+dir);
module_dirs = module_dirs.filter(function(name) { return !name.match(/\./ ) })
for(var i in module_dirs){
var dirname = module_dirs[i];
if(typeof(dirname) == 'function') continue;
var parser_files = fs.readdirSync( __dirname +'/'+dir + '/' + dirname);
for(var j in parser_files){
var filename = parser_files[j];
if(typeof(filename) == 'function') continue;
if(!filename.match(/\.js$/)) continue;
eval(fs.readFileSync(__dirname + '/'+dir+'/'+dirname+'/'+filename)+'');
}
}
}
eval(fs.readFileSync(__dirname + '/parsers/ParseResult.js')+'');
eval(fs.readFileSync(__dirname + '/parsers/Parser.js')+'');
eval(fs.readFileSync(__dirname + '/parsers/IntegratedParser.js')+'');
eval(fs.readFileSync(__dirname + '/parsers/IntegratedParsing.js')+'');
loadModuleDirs('parsers');
eval(fs.readFileSync(__dirname + '/refiners/IntegratedRefinement.js')+'');
loadModuleDirs('refiners');
var parser_dirs = fs.readdirSync(__dirname+'/parsers');
parser_dirs = parser_dirs.filter(function(name) { return !name.match(/\./ ) })
for(var i in parser_dirs){
var dirname = parser_dirs[i];
if(typeof(dirname) == 'function') continue;
var parser_files = fs.readdirSync( __dirname + '/parsers/'+dirname);
for(var j in parser_files){
var filename = parser_files[j];
if(typeof(filename) == 'function') continue;
if(!filename.match(/\.js$/)) continue;
eval(fs.readFileSync(__dirname + '/parsers/'+dirname+'/'+filename)+'');
}
}
module.exports = chrono;

@@ -59,0 +66,0 @@ }

@@ -1,7 +0,2 @@

// moment.js
// version : 2.0.0
// author : Tim Wood
// license : MIT
// momentjs.com
(function(e){function _(e,t){return function(n){return I(e.call(this,n),t)}}function D(e,t){return function(n){return this.lang().ordinal(e.call(this,n),t)}}function P(){}function H(e){j(this,e)}function B(e){var t=this._data={},n=e.years||e.year||e.y||0,r=e.months||e.month||e.M||0,i=e.weeks||e.week||e.w||0,s=e.days||e.day||e.d||0,o=e.hours||e.hour||e.h||0,u=e.minutes||e.minute||e.m||0,a=e.seconds||e.second||e.s||0,f=e.milliseconds||e.millisecond||e.ms||0;this._milliseconds=f+a*1e3+u*6e4+o*36e5,this._days=s+i*7,this._months=r+n*12,t.milliseconds=f%1e3,a+=F(f/1e3),t.seconds=a%60,u+=F(a/60),t.minutes=u%60,o+=F(u/60),t.hours=o%24,s+=F(o/24),s+=i*7,t.days=s%30,r+=F(s/30),t.months=r%12,n+=F(r/12),t.years=n}function j(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function F(e){return e<0?Math.ceil(e):Math.floor(e)}function I(e,t){var n=e+"";while(n.length<t)n="0"+n;return n}function q(e,n,r,i){var s=n._milliseconds,o=n._days,u=n._months,a,f,l;s&&e._d.setTime(+e._d+s*r);if(o||u)a=e.minute(),f=e.hour();o&&e.date(e.date()+o*r),u&&(l=e.date(),e.date(1).month(e.month()+u*r).date(Math.min(l,e.daysInMonth()))),s&&!i&&t.updateOffset(e);if(o||u)e.minute(a),e.hour(f)}function R(e){return Object.prototype.toString.call(e)==="[object Array]"}function U(e,t){var n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),i=0,s;for(s=0;s<n;s++)~~e[s]!==~~t[s]&&i++;return i+r}function z(e){return e?k[e]||e.toLowerCase().replace(/(.)s$/,"$1"):e}function W(e,t){return t.abbr=e,s[e]||(s[e]=new P),s[e].set(t),s[e]}function X(e){return e?(!s[e]&&o&&require("./lang/"+e),s[e]):t.fn._lang}function V(e){return e.match(/\[.*\]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function $(e){var t=e.match(f),n,r;for(n=0,r=t.length;n<r;n++)M[t[n]]?t[n]=M[t[n]]:t[n]=V(t[n]);return function(i){var s="";for(n=0;n<r;n++)s+=t[n]instanceof Function?t[n].call(i,e):t[n];return s}}function J(e,t){function r(t){return e.lang().longDateFormat(t)||t}var n=5;while(n--&&l.test(t))t=t.replace(l,r);return L[t]||(L[t]=$(t)),L[t](e)}function K(e,t){switch(e){case"DDDD":return d;case"YYYY":return v;case"YYYYY":return m;case"S":case"SS":case"SSS":case"DDD":return p;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return g;case"a":case"A":return X(t._l)._meridiemParse;case"X":return w;case"Z":case"ZZ":return y;case"T":return b;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return h;default:return new RegExp(e.replace("\\",""))}}function Q(e){var t=(y.exec(e)||[])[0],n=(t+"").match(T)||["-",0,0],r=+(n[1]*60)+~~n[2];return n[0]==="+"?-r:r}function G(e,t,n){var r,i,s=n._a;switch(e){case"M":case"MM":s[1]=t==null?0:~~t-1;break;case"MMM":case"MMMM":r=X(n._l).monthsParse(t),r!=null?s[1]=r:n._isValid=!1;break;case"D":case"DD":case"DDD":case"DDDD":t!=null&&(s[2]=~~t);break;case"YY":s[0]=~~t+(~~t>68?1900:2e3);break;case"YYYY":case"YYYYY":s[0]=~~t;break;case"a":case"A":n._isPm=X(n._l).isPM(t);break;case"H":case"HH":case"h":case"hh":s[3]=~~t;break;case"m":case"mm":s[4]=~~t;break;case"s":case"ss":s[5]=~~t;break;case"S":case"SS":case"SSS":s[6]=~~(("0."+t)*1e3);break;case"X":n._d=new Date(parseFloat(t)*1e3);break;case"Z":case"ZZ":n._useUTC=!0,n._tzm=Q(t)}t==null&&(n._isValid=!1)}function Y(e){var t,n,r=[];if(e._d)return;for(t=0;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];r[3]+=~~((e._tzm||0)/60),r[4]+=~~((e._tzm||0)%60),n=new Date(0),e._useUTC?(n.setUTCFullYear(r[0],r[1],r[2]),n.setUTCHours(r[3],r[4],r[5],r[6])):(n.setFullYear(r[0],r[1],r[2]),n.setHours(r[3],r[4],r[5],r[6])),e._d=n}function Z(e){var t=e._f.match(f),n=e._i,r,i;e._a=[];for(r=0;r<t.length;r++)i=(K(t[r],e).exec(n)||[])[0],i&&(n=n.slice(n.indexOf(i)+i.length)),M[t[r]]&&G(t[r],i,e);n&&(e._il=n),e._isPm&&e._a[3]<12&&(e._a[3]+=12),e._isPm===!1&&e._a[3]===12&&(e._a[3]=0),Y(e)}function et(e){var t,n,r,i=99,s,o;for(s=0;s<e._f.length;s++)t=j({},e),t._f=e._f[s],Z(t),n=new H(t),o=U(t._a,n.toArray()),n._il&&(o+=n._il.length),o<i&&(i=o,r=n);j(e,r)}function tt(e){var t,n=e._i,r=E.exec(n);if(r){e._f="YYYY-MM-DD"+(r[2]||" ");for(t=0;t<4;t++)if(x[t][1].exec(n)){e._f+=x[t][0];break}y.exec(n)&&(e._f+=" Z"),Z(e)}else e._d=new Date(n)}function nt(t){var n=t._i,r=u.exec(n);n===e?t._d=new Date:r?t._d=new Date(+r[1]):typeof n=="string"?tt(t):R(n)?(t._a=n.slice(0),Y(t)):t._d=n instanceof Date?new Date(+n):new Date(n)}function rt(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function it(e,t,n){var i=r(Math.abs(e)/1e3),s=r(i/60),o=r(s/60),u=r(o/24),a=r(u/365),f=i<45&&["s",i]||s===1&&["m"]||s<45&&["mm",s]||o===1&&["h"]||o<22&&["hh",o]||u===1&&["d"]||u<=25&&["dd",u]||u<=45&&["M"]||u<345&&["MM",r(u/30)]||a===1&&["y"]||["yy",a];return f[2]=t,f[3]=e>0,f[4]=n,rt.apply({},f)}function st(e,n,r){var i=r-n,s=r-e.day(),o;return s>i&&(s-=7),s<i-7&&(s+=7),o=t(e).add("d",s),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function ot(e){var n=e._i,r=e._f;return n===null||n===""?null:(typeof n=="string"&&(e._i=n=X().preparse(n)),t.isMoment(n)?(e=j({},n),e._d=new Date(+n._d)):r?R(r)?et(e):Z(e):nt(e),new H(e))}function ut(e,n){t.fn[e]=t.fn[e+"s"]=function(e){var r=this._isUTC?"UTC":"";return e!=null?(this._d["set"+r+n](e),t.updateOffset(this),this):this._d["get"+r+n]()}}function at(e){t.duration.fn[e]=function(){return this._data[e]}}function ft(e,n){t.duration.fn["as"+e]=function(){return+this/n}}var t,n="2.0.0",r=Math.round,i,s={},o=typeof module!="undefined"&&module.exports,u=/^\/?Date\((\-?\d+)/i,a=/(\-)?(\d*)?\.?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,f=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,l=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,c=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,h=/\d\d?/,p=/\d{1,3}/,d=/\d{3}/,v=/\d{1,4}/,m=/[+\-]?\d{1,6}/,g=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,y=/Z|[\+\-]\d\d:?\d\d/i,b=/T/i,w=/[\+\-]?\d+(\.\d{1,3})?/,E=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,S="YYYY-MM-DDTHH:mm:ssZ",x=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],T=/([\+\-]|\d\d)/gi,N="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),C={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},k={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",M:"month",y:"year"},L={},A="DDD w W M D d".split(" "),O="M D H h m s w W".split(" "),M={M:function(){return this.month()+1},MMM:function(e){return this.lang().monthsShort(this,e)},MMMM:function(e){return this.lang().months(this,e)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(e){return this.lang().weekdaysMin(this,e)},ddd:function(e){return this.lang().weekdaysShort(this,e)},dddd:function(e){return this.lang().weekdays(this,e)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return I(this.year()%100,2)},YYYY:function(){return I(this.year(),4)},YYYYY:function(){return I(this.year(),5)},gg:function(){return I(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return I(this.weekYear(),5)},GG:function(){return I(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return I(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return I(~~(this.milliseconds()/10),2)},SSS:function(){return I(this.milliseconds(),3)},Z:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+I(~~(e/60),2)+":"+I(~~e%60,2)},ZZ:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+I(~~(10*e/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};while(A.length)i=A.pop(),M[i+"o"]=D(M[i],i);while(O.length)i=O.pop(),M[i+i]=_(M[i],2);M.DDDD=_(M.DDD,3),P.prototype={set:function(e){var t,n;for(n in e)t=e[n],typeof t=="function"?this[n]=t:this["_"+n]=t},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(e){return this._months[e.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(e){return this._monthsShort[e.month()]},monthsParse:function(e){var n,r,i;this._monthsParse||(this._monthsParse=[]);for(n=0;n<12;n++){this._monthsParse[n]||(r=t([2e3,n]),i="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[n]=new RegExp(i.replace(".",""),"i"));if(this._monthsParse[n].test(e))return n}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(e){return this._weekdays[e.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(e){return this._weekdaysShort[e.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(e){return this._weekdaysMin[e.day()]},weekdaysParse:function(e){var n,r,i;this._weekdaysParse||(this._weekdaysParse=[]);for(n=0;n<7;n++){this._weekdaysParse[n]||(r=t([2e3,1]).day(n),i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[n]=new RegExp(i.replace(".",""),"i"));if(this._weekdaysParse[n].test(e))return n}},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(e){var t=this._longDateFormat[e];return!t&&this._longDateFormat[e.toUpperCase()]&&(t=this._longDateFormat[e.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e]=t),t},isPM:function(e){return(e+"").toLowerCase()[0]==="p"},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(e,t){var n=this._calendar[e];return typeof n=="function"?n.apply(t):n},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(e,t,n,r){var i=this._relativeTime[n];return typeof i=="function"?i(e,t,n,r):i.replace(/%d/i,e)},pastFuture:function(e,t){var n=this._relativeTime[e>0?"future":"past"];return typeof n=="function"?n(t):n.replace(/%s/i,t)},ordinal:function(e){return this._ordinal.replace("%d",e)},_ordinal:"%d",preparse:function(e){return e},postformat:function(e){return e},week:function(e){return st(e,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}},t=function(e,t,n){return ot({_i:e,_f:t,_l:n,_isUTC:!1})},t.utc=function(e,t,n){return ot({_useUTC:!0,_isUTC:!0,_l:n,_i:e,_f:t})},t.unix=function(e){return t(e*1e3)},t.duration=function(e,n){var r=t.isDuration(e),i=typeof e=="number",s=r?e._data:i?{}:e,o=a.exec(e),u,f;return i?n?s[n]=e:s.milliseconds=e:o&&(u=o[1]==="-"?-1:1,s={y:0,d:~~o[2]*u,h:~~o[3]*u,m:~~o[4]*u,s:~~o[5]*u,ms:~~o[6]*u}),f=new B(s),r&&e.hasOwnProperty("_lang")&&(f._lang=e._lang),f},t.version=n,t.defaultFormat=S,t.updateOffset=function(){},t.lang=function(e,n){var r;if(!e)return t.fn._lang._abbr;n?W(e,n):s[e]||X(e),t.duration.fn._lang=t.fn._lang=X(e)},t.langData=function(e){return e&&e._lang&&e._lang._abbr&&(e=e._lang._abbr),X(e)},t.isMoment=function(e){return e instanceof H},t.isDuration=function(e){return e instanceof B},t.fn=H.prototype={clone:function(){return t(this)},valueOf:function(){return+this._d+(this._offset||0)*6e4},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return J(t(this).utc(),"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var e=this;return[e.year(),e.month(),e.date(),e.hours(),e.minutes(),e.seconds(),e.milliseconds()]},isValid:function(){return this._isValid==null&&(this._a?this._isValid=!U(this._a,(this._isUTC?t.utc(this._a):t(this._a)).toArray()):this._isValid=!isNaN(this._d.getTime())),!!this._isValid},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(e){var n=J(this,e||t.defaultFormat);return this.lang().postformat(n)},add:function(e,n){var r;return typeof e=="string"?r=t.duration(+n,e):r=t.duration(e,n),q(this,r,1),this},subtract:function(e,n){var r;return typeof e=="string"?r=t.duration(+n,e):r=t.duration(e,n),q(this,r,-1),this},diff:function(e,n,r){var i=this._isUTC?t(e).zone(this._offset||0):t(e).local(),s=(this.zone()-i.zone())*6e4,o,u;return n=z(n),n==="year"||n==="month"?(o=(this.daysInMonth()+i.daysInMonth())*432e5,u=(this.year()-i.year())*12+(this.month()-i.month()),u+=(this-t(this).startOf("month")-(i-t(i).startOf("month")))/o,n==="year"&&(u/=12)):(o=this-i-s,u=n==="second"?o/1e3:n==="minute"?o/6e4:n==="hour"?o/36e5:n==="day"?o/864e5:n==="week"?o/6048e5:o),r?u:F(u)},from:function(e,n){return t.duration(this.diff(e)).lang(this.lang()._abbr).humanize(!n)},fromNow:function(e){return this.from(t(),e)},calendar:function(){var e=this.diff(t().startOf("day"),"days",!0),n=e<-6?"sameElse":e<-1?"lastWeek":e<0?"lastDay":e<1?"sameDay":e<2?"nextDay":e<7?"nextWeek":"sameElse";return this.format(this.lang().calendar(n,this))},isLeapYear:function(){var e=this.year();return e%4===0&&e%100!==0||e%400===0},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();if(e!=null){if(typeof e=="string"){e=this.lang().weekdaysParse(e);if(typeof e!="number")return this}return this.add({d:e-t})}return t},month:function(e){var n=this._isUTC?"UTC":"";if(e!=null){if(typeof e=="string"){e=this.lang().monthsParse(e);if(typeof e!="number")return this}return this._d["set"+n+"Month"](e),t.updateOffset(this),this}return this._d["get"+n+"Month"]()},startOf:function(e){e=z(e);switch(e){case"year":this.month(0);case"month":this.date(1);case"week":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return e==="week"&&this.weekday(0),this},endOf:function(e){return this.startOf(e).add(e,1).subtract("ms",1)},isAfter:function(e,n){return n=typeof n!="undefined"?n:"millisecond",+this.clone().startOf(n)>+t(e).startOf(n)},isBefore:function(e,n){return n=typeof n!="undefined"?n:"millisecond",+this.clone().startOf(n)<+t(e).startOf(n)},isSame:function(e,n){return n=typeof n!="undefined"?n:"millisecond",+this.clone().startOf(n)===+t(e).startOf(n)},min:function(e){return e=t.apply(null,arguments),e<this?this:e},max:function(e){return e=t.apply(null,arguments),e>this?this:e},zone:function(e){var n=this._offset||0;return e==null?this._isUTC?n:this._d.getTimezoneOffset():(typeof e=="string"&&(e=Q(e)),Math.abs(e)<16&&(e*=60),this._offset=e,this._isUTC=!0,n!==e&&q(this,t.duration(n-e,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},daysInMonth:function(){return t.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(e){var n=r((t(this).startOf("day")-t(this).startOf("year"))/864e5)+1;return e==null?n:this.add("d",e-n)},weekYear:function(e){var t=st(this,this.lang()._week.dow,this.lang()._week.doy).year;return e==null?t:this.add("y",e-t)},isoWeekYear:function(e){var t=st(this,1,4).year;return e==null?t:this.add("y",e-t)},week:function(e){var t=this.lang().week(this);return e==null?t:this.add("d",(e-t)*7)},isoWeek:function(e){var t=st(this,1,4).week;return e==null?t:this.add("d",(e-t)*7)},weekday:function(e){var t=(this._d.getDay()+7-this.lang()._week.dow)%7;return e==null?t:this.add("d",e-t)},isoWeekday:function(e){var t=(this._d.getDay()+6)%7;return e==null?t:this.add("d",e-t)},lang:function(t){return t===e?this._lang:(this._lang=X(t),this)}};for(i=0;i<N.length;i++)ut(N[i].toLowerCase().replace(/s$/,""),N[i]);ut("year","FullYear"),t.fn.days=t.fn.day,t.fn.months=t.fn.month,t.fn.weeks=t.fn.week,t.fn.isoWeeks=t.fn.isoWeek,t.fn.toJSON=t.fn.toISOString,t.duration.fn=B.prototype={weeks:function(){return F(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+~~(this._months/12)*31536e6},humanize:function(e){var t=+this,n=it(t,!e,this.lang());return e&&(n=this.lang().pastFuture(t,n)),this.lang().postformat(n)},add:function(e,n){var r=t.duration(e,n);return this._milliseconds+=r._milliseconds,this._days+=r._days,this._months+=r._months,this},subtract:function(e,n){var r=t.duration(e,n);return this._milliseconds-=r._milliseconds,this._days-=r._days,this._months-=r._months,this},get:function(e){return e=z(e),this[e.toLowerCase()+"s"]()},as:function(e){return e=z(e),this["as"+e.charAt(0).toUpperCase()+e.slice(1)+"s"]()},lang:t.fn.lang};for(i in C)C.hasOwnProperty(i)&&(ft(i,C[i]),at(i.toLowerCase()));ft("Weeks",6048e5),t.duration.fn.asMonths=function(){return(+this-this.years()*31536e6)/2592e6+this.years()*12},t.lang("en",{ordinal:function(e){var t=e%10,n=~~(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}}),o&&(module.exports=t),typeof ender=="undefined"&&(this.moment=t),typeof define=="function"&&define.amd&&define("moment",[],function(){return t})}).call(this),function(){var chrono={};chrono.parsers={},chrono.importantdays={},chrono.parse=function(e,t,n){var r=this.IntegratedParser(e,t,n);return r.execAll(),r.results()},chrono.parseDate=function(e,t,n){var r=this.parse(e,t,n);return r.length>=1?r[0].startDate:null};if(typeof exports=="undefined"){var moment=window.moment;window.chrono=chrono}else{var fs=require("fs"),moment=require("./moment");eval(fs.readFileSync(__dirname+"/parsers/ParseResult.js")+""),eval(fs.readFileSync(__dirname+"/parsers/Parser.js")+""),eval(fs.readFileSync(__dirname+"/parsers/IntegratedParser.js")+"");var parser_dirs=fs.readdirSync(__dirname+"/parsers");parser_dirs=parser_dirs.filter(function(e){return!e.match(/\./)});for(var i in parser_dirs){var dirname=parser_dirs[i];if(typeof dirname=="function")continue;var parser_files=fs.readdirSync(__dirname+"/parsers/"+dirname);for(var j in parser_files){var filename=parser_files[j];if(typeof filename=="function")continue;if(!filename.match(/\.js$/))continue;eval(fs.readFileSync(__dirname+"/parsers/"+dirname+"/"+filename)+"")}}module.exports=chrono}}(),function(){function e(e){this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,e.impliedComponents&&e.impliedComponents.length>0&&(this.impliedComponents=e.impliedComponents),this.date=function(){var e=moment(new Date(this.year,this.month,this.day));return e.hours(this.hour),e.minutes(this.minute),e.seconds(this.second),e.toDate()}}function t(t){this.start=new e(t.start),this.startDate=this.start.date(),t.end&&(this.end=new e(t.end),this.endDate=this.end.date()),this.referenceDate=t.referenceDate,this.index=t.index,this.text=t.text,this.concordance=t.concordance,t.timezoneOffset&&(this.timezoneOffset=t.timezoneOffset)}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.DateComponents=e,chrono.ParseResult=t}(),function(){function e(e,t,n){var r=0,i=e,s=!1,o=[],u={};return u.pattern=function(){return/./i},u.extract=function(e,t){return null},u.results=function(){return o},u.finished=function(){return s},u.mergeOverlapResult=function(e,t,n){if(n.index<t.index){var r=t;t=n,n=r}var i=t.index+t.text.length,s=n.index;if(s<i&&t.index<n.index&&i<n.index+n.text.length){var o=t.index,u=e.substring(t.index,n.index+n.text.length),a=t.start.impliedComponents||[],f=n.start.impliedComponents||[];if(a.length<f.length){var r=t;t=n,n=r,a=t.start.impliedComponents||[],f=n.start.impliedComponents||[]}if(a.indexOf("day")<0||a.indexOf("month")<0||a.indexOf("year")<0)return;return new chrono.ParseResult({referenceDate:t.ref,index:o,start:n.start,end:n.end,text:u,referenceDate:t.referenceDate})}var l=e.substring(i,s),c=/^\s*(to|\-)\s*$/i;if(!l.match(c))return null;var u=t.text+l+n.text,h=new Object(t.start),p=new Object(n.start),a=t.start.impliedComponents||[],f=n.start.impliedComponents||[];return a.forEach(function(e){if(!p.impliedComponents||p.impliedComponents.indexOf(e)<0){h[e]=p[e];var t=h.impliedComponents.indexOf(e);h.impliedComponents.splice(t,1)}}),f.forEach(function(e){if(!h.impliedComponents||h.impliedComponents.indexOf(e)<0){p[e]=h[e];var t=p.impliedComponents.indexOf(e);p.impliedComponents.splice(t,1)}}),moment(p.date()).diff(moment(h.date()))>0?new chrono.ParseResult({referenceDate:t.ref,index:t.index,start:h,end:p,text:u,referenceDate:t.referenceDate}):new chrono.ParseResult({referenceDate:t.ref,index:t.index,start:p,end:h,text:u,referenceDate:t.referenceDate})},u.extractTime=function(e,t){var n=/\s*(at)?\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i,r=/\s*(\-|\~|\〜|to)?\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;if(e.length<=t.index+t.text.length)return null;e=e.substr(t.index+t.text.length);var i=e.match(n);if(!i||e.indexOf(i[0])!=0)return null;var s=0,o=0,u=i[2];u=parseInt(u);if(i[5]){s=i[5],s=parseInt(s);if(s>=60)return null}else u>100&&(s=u%100,u=(u-s)/100);if(i[8]){o=i[8],o=parseInt(o);if(o>=60)return null}if(i[10]){if(u>12)return null;i[10].toLowerCase()=="pm"&&(u+=12)}t.text=t.text+i[0],t.start.hour==undefined&&(t.start.hour=u,t.start.minute=s,t.start.second=o),e=e.substr(i[0].length);var i=e.match(r);if(!i||e.indexOf(i[0])!=0)return t.end&&t.end.hour==undefined&&(t.end.hour=u,t.end.minute=s,t.end.second=o),new chrono.ParseResult(t);var s=0,o=0,u=i[2];u=parseInt(u);if(i[5]){s=i[5],s=parseInt(s);if(s>=60)return null}else u>100&&(s=u%100,u=(u-s)/100);if(i[8]){o=i[8],o=parseInt(o);if(o>=60)return null}if(i[10]){if(u>12)return null;i[10].toLowerCase()=="pm"&&(u+=12)}return t.text=t.text+i[0],t.end?(t.end.hour=u,t.end.minute=s,t.end.second=o):(t.end=JSON.parse(JSON.stringify(t.start)),t.end.hour=u,t.end.minute=s,t.end.second=o),new chrono.ParseResult(t)},u.extractConcordance=function(e,t){var n=30;return preText=e.substr(0,t.index),preText=preText.replace(/(\r\n|\n|\r)/gm," "),preText=preText.replace(/(\s+)/gm," "),preText.length>n?preText="..."+preText.substr(preText.length-n+3,n-3):preText=preText.substr(0,n),posText=e.substr(t.index+t.text.length),posText=posText.replace(/(\r\n|\n|\r)/gm," "),posText=posText.replace(/(\s+)/gm," "),posText.length>n?posText=posText.substr(0,n-3)+"...":posText=posText.substr(0,n),t.concordance=preText+t.text+posText,new chrono.ParseResult(t)},u.exec=function(){if(s)return null;var t=i.search(this.pattern());if(t<0)return s=!0,null;var n=t+r,u=this.extract(e,n);if(u){if(o.length>0){var a=o[o.length-1],f=this.mergeOverlapResult(e,a,u);u=f||u}if(u.start.hour===undefined||u.end&&u.end.hour===undefined){var l=this.extractTime(e,u);u=l||u}u.start.hour===undefined&&(u.startDate=moment(u.startDate).startOf("day").hours(12).toDate()),u.end&&u.end.hour===undefined&&(u.endDate=moment(u.endDate).startOf("day").hours(12).toDate()),this.extractConcordance(e,u),o.push(u)}return i=i.substr(t+1),r=n+1,u},u.execAll=function(){while(!this.finished())this.exec()},u}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.Parser=e}(),function(){function e(e,t,n,r){n=n||{},t=t||new Date,r=r||Object.keys(chrono.parsers);var i=chrono.Parser(e,t,n),s=0,o=[],u=[];for(var a=0;a<r.length;a++)chrono.parsers[r[a]]&&o.push(new chrono.parsers[r[a]](e,t,n));return i.results=function(){return u},i.finished=function(){return s>=o.length},i.exec=function(){if(s>=o.length)return;var e=o[s],t=e.exec();return t&&this.insertResult(u,t),e.finished()&&s++,t},i.insertResult=function(t,n){var r=0;while(r<t.length&&t[r].index<n.index)r++;if(r<t.length){var i=r;while(i<t.length&&t[i].index<n.index+n.text.length){var s=this.mergeOverlapResult(e,t[i],n);s&&(n=s);if(!s&&t[i].text.length>=n.text.length)return;i++}t.splice(r,i-r)}if(r-1>=0){var o=t[r-1];if(n.index<o.index+o.text.length){var s=this.mergeOverlapResult(e,o,n);s&&(n=s);if(!s&&o.text.length>=n.text.length)return;t.splice(r-1,1),r-=1}}return t.splice(r,0,n),t},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.IntegratedParser=e}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.Parser(n,r,i);return s.pattern=function(){return e},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=n.substr(i).match(e);if(u==null){finished=!0;return}var n=u[0];i+=u[1].length,n=u[0].substr(u[1].length,u[0].length-u[9].length-u[1].length);var a=u[5],f=u[6];f=f.toLowerCase();var l=t[f];if(l===undefined)return null;var c=moment(r).clone();if(a)a=a.toLowerCase(),a=="last"?c.day(l-7):a=="next"?c.day(l+7):a=="this"&&c.day(l);else{var h=c.day();l>h?c.day(l):c.day(l+7)}return new chrono.ParseResult({referenceDate:r,text:n,index:i,start:{day:c.date(),month:c.month(),year:c.year(),impliedComponents:["year","month","day"]}})},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(\W|^)((\,|\(|\()\s*)?((this|last|next)\s*)?(Sunday|Sun|Monday|Mon|Tuesday|Wednesday|Wed|Thursday|Thur|Friday|Fri|Saturday|Sat)(\s*(\,|\)|\)))?(\W|$)/i,t={sunday:0,sun:0,monday:1,mon:1,tuesday:2,wednesday:3,wed:3,thursday:4,thur:4,friday:5,fri:5,saturday:6,sat:6};chrono.parsers.DayOfWeekParser=n}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=u[0].toLowerCase();a=u[0].substr(0,u[0].length-u[7].length);var f=null,l=a.toLowerCase();if(l=="today")f=moment(n).clone();else if(l=="tomorrow")f=moment(n).clone().add("d",1);else if(l=="yesterday")f=moment(n).clone().add("d",-1);else if(l.match("last"))f=moment(n).clone().add("d",-1);else if(l.match("ago")){var c=u[2];c=parseInt(c),f=moment(n).clone().add("d",-c)}else f=moment(n).clone(),a="";var h=new chrono.ParseResult({referenceDate:n,text:a,index:r,start:{day:f.date(),month:f.month(),year:f.year()}}),p=i.extractTime(t,h);return h=p||h,l.match("night")&&(p?p.start.hour<12&&(f.add("d",1),h.start.day=f.date(),h.start.month=f.month(),h.start.year=f.year(),h=new chrono.ParseResult(h)):(h.start.day=f.date()+1,h.start.hour=0,h.start.minute=0,h.start.second=0,h.start.impliedComponents=["hour","minute","second"],h=new chrono.ParseResult(h))),h},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(today|tomorrow|yesterday|last\s*night|([1-9]+)\s*day(s)\s*ago|([0-9]{1,2})(\.|\:|\:)([0-9]{1,2}))(\W|$)/i;chrono.parsers.GeneralDateParser=t}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var i=this.results(),s=i[i.length-1];if(s&&r<s.index+s.text.length)return null;var o=t.substr(r).match(e);if(o==null){finished=!0;return}var t=o[0];t=o[0].substr(0,o[0].length-o[4].length);var u=moment(t,"YYYY-MM-DD");return u.format("YYYY-M-D")!=t&&u.format("YYYY-MM-DD")!=t?null:new chrono.ParseResult({referenceDate:n,text:t,index:r,start:{day:u.date(),month:u.month(),year:u.year()}})},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})(\W|$)/i;chrono.parsers.InternationalStandardParser=t}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.Parser(n,r,i);s.pattern=function(){return t},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=[],a=null;n=n.substr(i),originalText=n;var f=n.match(e);if(f&&n.indexOf(f[0])==0){n=f[0],n=f[0].substr(0,f[0].length-f[12].length),originalText=n,f[4]&&(n=n.replace(f[4],"")),f[5]&&(n=n.replace(f[5],""));var l=f[10];l=parseInt(l),l<100?l>20?l=null:l+=2e3:f[11]&&(n=n.replace(f[11],""),l-=543),n=n.replace(f[10]," "+l),a=moment(n,"DD MMMM YYYY");if(!a)return null}else{f=n.match(t);if(!f)return null;var n=f[0];n=f[0].substr(0,f[0].length-f[10].length),originalText=n,f[4]&&(n=n.replace(f[4],"")),f[5]&&(n=n.replace(f[5],"")),a=moment(n,"DD MMMM");if(!a)return null;u.push("year"),a.year(moment(r).year());var c=a.clone().add("y",1),h=a.clone().add("y",-1);Math.abs(c.diff(moment(r)))<Math.abs(a.diff(moment(r)))?a=c:Math.abs(h.diff(moment(r)))<Math.abs(a.diff(moment(r)))&&(a=h)}if(f[7]){var p=parseInt(f[7]),d=parseInt(f[3]),v=a.clone();return a.date(d),v.date(p),a.format("D")!=f[3]?null:v.format("D")!=f[7]?null:new chrono.ParseResult({referenceDate:r,text:originalText,index:i,start:{day:a.date(),month:a.month(),year:a.year(),impliedComponents:u},end:{day:v.date(),month:v.month(),year:v.year(),impliedComponents:u}})}return a.format("D")!=f[3]?null:new chrono.ParseResult({referenceDate:r,text:originalText,index:i,start:{day:a.date(),month:a.month(),year:a.year(),impliedComponents:u}})};var o=s.extractTime;return s.extractTime=function(e,t){var n=/(\,|\(|\s)*(Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thur|Thursday|Fri|Friday|Sat|Saturday)(\,|\)|\s)*/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length),i=r.match(n);return i&&r.indexOf(i[0])==0&&(t.text=t.text+i[0]),o.call(this,e,t)},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\s*[0-9]{2,4})(\s*BE)?(\W|$)/i,t=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\W|$)/i;chrono.parsers.MonthNameLittleEndianParser=n}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.Parser(n,r,i);s.pattern=function(){return t},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=[],a=null;n=n.substr(i),originalText=n;var f=n.match(e);if(f&&n.indexOf(f[0])==0){var n=f[0];originalText=n,n=n.replace(f[1],""),n=n.replace(f[3],f[3]+" "),f[4]&&(n=n.replace(f[4],"")),f[9]&&(n=n.replace(f[9],"")),f[10]&&(n=n.replace(",",""));if(f[12]){var l=f[11];l=" "+(parseInt(l)-543),n=n.replace(f[12],""),n=n.replace(f[11],l)}a=moment(n,"MMMM DD YYYY");if(!a)return null}else{f=n.match(t);if(!f)return null;n=f[0].substr(0,f[0].length-f[10].length),originalText=n,n=n.replace(f[1],""),n=n.replace(f[3],f[3]+" "),f[4]&&(n=n.replace(f[4],"")),a=moment(n,"MMMM DD");if(!a)return null;u.push("year"),a.year(moment(r).year());var c=a.clone().add("y",1),h=a.clone().add("y",-1);Math.abs(c.diff(moment(r)))<Math.abs(a.diff(moment(r)))?a=c:Math.abs(h.diff(moment(r)))<Math.abs(a.diff(moment(r)))&&(a=h)}if(f[4]){var p=parseInt(f[8]),d=parseInt(f[5]),v=a.clone();return a.date(d),v.date(p),a.format("D")!=f[5]?null:v.format("D")!=f[8]?null:new chrono.ParseResult({referenceDate:r,text:originalText,index:i,start:{day:a.date(),month:a.month(),year:a.year(),impliedComponents:u},end:{day:v.date(),month:v.month(),year:v.year(),impliedComponents:u}})}return a.format("D")!=f[8]?null:new chrono.ParseResult({referenceDate:r,text:originalText,index:i,start:{day:a.date(),month:a.month(),year:a.year(),impliedComponents:u}})};var o=s.extractTime;return s.extractTime=function(e,t){var n=/(\,|\(|\s)*(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)(\,|\)|\s)*/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length,15),i=r.match(n);i&&r.indexOf(i[0])==0&&(t.text=t.text+i[0]);if(!t.start.impliedComponents||t.start.impliedComponents.indexOf("year")<0)return o.call(this,e,t);var s=/(\s*[0-9]{4})(\s*BE)?/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length,15),i=r.match(s);if(
i&&r.indexOf(i[0])==0){var u=i[1];u=parseInt(u),u<100?u>20?u=null:u+=2e3:i[2]&&(u-=543);var a=t.start.impliedComponents.indexOf("year");t.start.impliedComponents.splice(a,1),t.start.year=u,t.text=t.text+i[0]}return o.call(this,e,t)},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?(Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)\s*(([0-9]{1,2})(st|nd|rd|th)?\s*(to|\-)\s*)?([0-9]{1,2})(st|nd|rd|th)?(,)?(\s*[0-9]{4})(\s*BE)?/i,t=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?(Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)\s*(([0-9]{1,2})(st|nd|rd|th)?\s*(to|\-)\s*)?([0-9]{1,2})(st|nd|rd|th)?([^0-9]|$)/i;chrono.parsers.MonthNameMiddleEndianParser=n}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var i=this.results(),s=i[i.length-1];if(s&&r<s.index+s.text.length)return null;var o=t.substr(r).match(e);if(o==null)return;var t=o[0].substr(o[1].length,o[0].length-o[5].length),u=t;r+=o[1].length;var a=null,f=o[4];f=parseInt(f),f<100&&(f>50?f=f+2500-543:f+=2e3,t=o[2]+"/"+o[3]+"/"+f),a=moment(t,"MM/DD/YYYY");if(!a||a.format("D")!=o[3]){a=moment(t,"DD/MM/YYYY");if(!a||a.format("D")!=o[2])return null}return new chrono.ParseResult({referenceDate:n,text:u,index:r,start:{day:a.date(),month:a.month(),year:a.year()}})},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(\W|^)([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4}|[0-9]{2})(\W|$)/i;chrono.parsers.SlashParser=t}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.parsers.THGeneralDateParser(n,r,i);return s.pattern=function(){return e},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=n.substr(i).match(e);if(u==null)return;var n=u[0],a=u[2];a=a.toLowerCase();var f=t[a];if(f===undefined)return null;var l=moment(r).clone(),c=u[3];return c=="นี้"?l.day(f):c=="หน้า"?l.day(f+7):c=="ที่แล้ว"?l.day(f-7):(l.day(f),n=u[0].substr(0,u[0].length-u[3].length)),new chrono.ParseResult({referenceDate:r,text:n,index:i,start:{day:l.date(),month:l.month(),year:l.year()}})},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(วัน)?(อาทิตย์|จันทร์|อังคาร|พุธ|พฤหัสบดี|ศุกร์|เสาร์)(หน้า|นี้|ที่แล้ว|.|$)/i,t={"อาทิตย์":0,"จันทร์":1,"อังคาร":2,"พุธ":3,"พฤหัสบดี":4,"ศุกร์":5,"เสาร์":6};chrono.parsers.THDayOfWeekParser=n}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=u[0].toLowerCase();a=u[0].substr(0,u[0].length-u[5].length);var f=null;if(a=="วันนี้")f=moment(n).clone();else if(a=="พรุ่งนี้")f=moment(n).clone().add("d",1);else if(a=="เมื่อวาน")f=moment(n).clone().add("d",-1);else if(a=="เมื่อคืน")f=moment(n).clone().add("d",-1);else{var l=u[2];l=parseInt(l),f=moment(n).clone().add("d",-l)}var c=new chrono.ParseResult({referenceDate:n,text:a,index:r,start:{day:f.date(),month:f.month(),year:f.year()}}),h=i.extractTime(t,c);return c=h||c,a.match("คืน")&&(h?h.start.hour<12&&(f.add("d",1),c.start.day=f.date(),c.start.month=f.month(),c.start.year=f.year(),c=new chrono.ParseResult(c)):(c.start.day=f.date()+1,c.start.hour=0,c.start.minute=0,c.start.second=0,c=new chrono.ParseResult(c))),c},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(วันนี้|พรุ่งนี้|เมื่อวาน|เมื่อคืน|([1-9]+)\s*(วัน|คืน)(ก่อน|ที่แล้ว))(\W|$)/i;chrono.parsers.THGeneralDateParser=t}(),function(){function r(r,i,s){s=s||{},i=i||new Date;var o=chrono.parsers.THGeneralDateParser(r,i,s);return o.pattern=function(){return t},o.extract=function(r,s){var o=this.results(),u=o[o.length-1];if(u&&s<u.index+u.text.length)return null;var a=null;r=r.substr(s),originalText=r;var f=r.match(e);if(f&&r.indexOf(f[0])==0){r=f[0],r=f[0].substr(0,f[0].length-f[8].length),originalText=r;var l=f[7];l=parseInt(l),f[3]&&f[3]=="ค.ศ."?l<=30?l+=2e3:l<100&&(l+=1900):(l<543&&(l+=2500),l-=543);var c=n[f[5]];if(typeof c!="number")return null;var h=f[1];h=parseInt(h);var p=l+"-"+(c+1)+"-"+h,a=moment(p,"YYYY-MM-DD");if(a.format("YYYY-M-D")!=p)return null}else{f=r.match(t);if(!f)return null;var r=f[0];r=f[0].substr(0,f[0].length-f[6].length),originalText=r;var c=n[f[5]];if(typeof c!="number")return null;var h=f[1];h=parseInt(h);var p=c+1+"-"+h,a=moment(p,"MM-DD");if(a.format("M-D")!=p)return null;a.year(moment(i).year());var d=a.clone().add("y",1),v=a.clone().add("y",-1);Math.abs(d.diff(moment(i)))<Math.abs(a.diff(moment(i)))?a=d:Math.abs(v.diff(moment(i)))<Math.abs(a.diff(moment(i)))&&(a=v)}if(f[4]){var m=parseInt(f[4]),g=parseInt(f[1]),y=a.clone();return a.date(g),y.date(m),a.format("D")!=f[1]?null:y.format("D")!=f[4]?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:a.date(),month:a.month(),year:a.year()},end:{day:y.date(),month:y.month(),year:y.year()}})}return new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:a.date(),month:a.month(),year:a.year()}})},o}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/([0-9]{1,2})(\s*(ถึง|\-)?\s*([0-9]{1,2}))?\s+(มกราคม|ม.ค.|กุมภาพัน|ก.พ.|มีนาคม|มี.ค.|เมษายน|เม.ย.|พฤษภาคม|พ.ค.|มิถุนายน|ม.ย.|มิ.ย.|กรกฎาคม|ก.ค.|สิงหาคม|ส.ค.|กันยายน|ก.ย.|ตุลาคม|ต.ค.|พฤศจิกายน|พ.ย.|ธันวาคม|ธ.ค.)(พ.ศ.|ค.ศ.)?(\s+[0-9]{2,4})(\W|$)/i,t=/([0-9]{1,2})(\s*(ถึง|\-)?\s*([0-9]{1,2}))?\s+(มกราคม|ม.ค.|กุมภาพัน|ก.พ.|มีนาคม|มี.ค.|เมษายน|เม.ย.|พฤษภาคม|พ.ค.|มิถุนายน|ม.ย.|มิ.ย.|กรกฏาคม|ก.ค.|สิงหาคม|ส.ค.|กันยายน|ก.ย.|ตุลาคม|ต.ค.|พฤศจิกายน|พ.ย.|ธันวาคม|ธ.ค.)(\W|$)/i,n={"มกราคม":0,"ม.ค.":0,"กุมภาพัน":1,"ก.พ.":1,"มีนาคม":2,"มี.ค.":2,"เมษายน":3,"เม.ย.":4,"พฤษภาคม":4,"พ.ค.":4,"มิถุนายน":5,"มิ.ย.":5,"กรกฎาคม":6,"ก.ค.":6,"สิงหาคม":7,"ส.ค.":7,"กันยายน":8,"ก.ย.":8,"ตุลาคม":9,"ต.ค.":9,"พฤศจิกายน":10,"พ.ย.":10,"ธันวาคม":11,"ธ.ค.":11};chrono.parsers.THMonthNameLittleEndianParser=r}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=u[0].toLowerCase();a=u[0].substr(0,u[0].length-u[3].length);var f=null;if(a=="今日")f=moment(n).clone();else if(a=="明日")f=moment(n).clone().add("d",1);else if(a=="昨日")f=moment(n).clone().add("d",-1);else{var l=u[2];l=parseInt(l),f=moment(n).clone().add("d",-l)}var c=new chrono.ParseResult({referenceDate:n,text:a,index:r,start:{day:f.date(),month:f.month(),year:f.year()}}),h=i.extractTime(t,c);return c=h||c,c};var s=i.extractTime;return i.extractTime=function(e,t){var n=s.call(this,e,t);if(n)return n;var r=/\s*(午前|午後)?\s*([0-9]{1,2})時?(([0-9]{1,2})分)?/i;if(e.length<=t.index+t.text.length)return null;e=e.substr(t.index+t.text.length);var i=e.match(r);if(!i||e.indexOf(i[0])!=0)return null;var o=0,u=0,a=i[2];a=parseInt(a);if(i[1]){if(a>12)return null;i[1]=="午後"&&(a+=12)}if(i[4]){o=i[4],o=parseInt(o);if(o>=60)return null}return t.text=t.text+i[0],t.start.hour==undefined&&(t.start.hour=a,t.start.minute=o,t.start.second=u),t.end&&t.end.hour==undefined&&(t.end.hour=a,t.end.minute=o,t.end.second=u),new chrono.ParseResult(t)},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(今日|昨日|明日|([1-9]+)\s*日前)(\W|$)/i;chrono.parsers.JPGeneralDateParser=t}(),function(){function t(e){var t=e;return t=t.replace(/0/g,"0"),t=t.replace(/1/g,"1"),t=t.replace(/2/g,"2"),t=t.replace(/3/g,"3"),t=t.replace(/4/g,"4"),t=t.replace(/5/g,"5"),t=t.replace(/6/g,"6"),t=t.replace(/7/g,"7"),t=t.replace(/8/g,"8"),t=t.replace(/9/g,"9"),t}function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.parsers.JPGeneralDateParser(n,r,i);s.pattern=function(){return e},s.extract=function(n,i){var o=this.results(),u=o[o.length-1];if(u&&i<u.index+u.text.length)return null;var a=n.substr(i).match(e);if(a==null){finished=!0;return}var f=a[0].toLowerCase(),l=null;f=a[0];var c=a[5];c=t(c),c=parseInt(c);if(!c||c==NaN)return null;var h=a[6];h=t(h),h=parseInt(h);if(!h||h==NaN)return null;var p=a[4];p&&(p=t(p),p=parseInt(p));if(p&&p!==NaN){a[3]=="平成"?p+=1989:p<100&&(p+=2e3);var d=p+"-"+c+"-"+h;l=moment(d,"YYYY-MM-DD");if(l.format("YYYY-M-D")!=d)return null}else{var d=c+"-"+h;l=moment(d,"MM-DD"),l.year(moment(r).year());var v=l.clone().add("y",1),m=l.clone().add("y",-1);Math.abs(v.diff(moment(r)))<Math.abs(l.diff(moment(r)))?l=v:Math.abs(m.diff(moment(r)))<Math.abs(l.diff(moment(r)))&&(l=m)}var g=new chrono.ParseResult({referenceDate:r,text:f,index:i,start:{day:l.date(),month:l.month(),year:l.year()}}),y=s.extractTime(n,g);return g=y||g,g};var o=s.extractTime;return s.extractTime=function(e,t){var n=/(\,|\(|(|\s)*(月|火|水|木|金|土|日)(曜日|曜)?\s*(\,|)|\))/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length),i=r.match(n);return i&&r.indexOf(i[0])==0&&(t.text=t.text+i[0]),o.call(this,e,t)},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(同|((平成)?([0-90-9]{2,4}))年)?\s*([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i;chrono.parsers.JPStandardDateParser=n}();
(function(){function padToken(e,t){return function(n){return leftZeroFill(e.call(this,n),t)}}function ordinalizeToken(e,t){return function(n){return this.lang().ordinal(e.call(this,n),t)}}function Language(){}function Moment(e){extend(this,e)}function Duration(e){var t=this._data={},n=e.years||e.year||e.y||0,r=e.months||e.month||e.M||0,i=e.weeks||e.week||e.w||0,s=e.days||e.day||e.d||0,o=e.hours||e.hour||e.h||0,u=e.minutes||e.minute||e.m||0,a=e.seconds||e.second||e.s||0,f=e.milliseconds||e.millisecond||e.ms||0;this._milliseconds=f+a*1e3+u*6e4+o*36e5,this._days=s+i*7,this._months=r+n*12,t.milliseconds=f%1e3,a+=absRound(f/1e3),t.seconds=a%60,u+=absRound(a/60),t.minutes=u%60,o+=absRound(u/60),t.hours=o%24,s+=absRound(o/24),s+=i*7,t.days=s%30,r+=absRound(s/30),t.months=r%12,n+=absRound(r/12),t.years=n}function extend(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function absRound(e){return e<0?Math.ceil(e):Math.floor(e)}function leftZeroFill(e,t){var n=e+"";while(n.length<t)n="0"+n;return n}function addOrSubtractDurationFromMoment(e,t,n,r){var i=t._milliseconds,s=t._days,o=t._months,u,a,f;i&&e._d.setTime(+e._d+i*n);if(s||o)u=e.minute(),a=e.hour();s&&e.date(e.date()+s*n),o&&(f=e.date(),e.date(1).month(e.month()+o*n).date(Math.min(f,e.daysInMonth()))),i&&!r&&moment.updateOffset(e);if(s||o)e.minute(u),e.hour(a)}function isArray(e){return Object.prototype.toString.call(e)==="[object Array]"}function compareArrays(e,t){var n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),i=0,s;for(s=0;s<n;s++)~~e[s]!==~~t[s]&&i++;return i+r}function normalizeUnits(e){return e?unitAliases[e]||e.toLowerCase().replace(/(.)s$/,"$1"):e}function loadLang(e,t){return t.abbr=e,languages[e]||(languages[e]=new Language),languages[e].set(t),languages[e]}function getLangDefinition(e){return e?(!languages[e]&&hasModule&&require("./lang/"+e),languages[e]):moment.fn._lang}function removeFormattingTokens(e){return e.match(/\[.*\]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function makeFormatFunction(e){var t=e.match(formattingTokens),n,r;for(n=0,r=t.length;n<r;n++)formatTokenFunctions[t[n]]?t[n]=formatTokenFunctions[t[n]]:t[n]=removeFormattingTokens(t[n]);return function(s){var o="";for(n=0;n<r;n++)o+=t[n]instanceof Function?t[n].call(s,e):t[n];return o}}function formatMoment(e,t){function r(t){return e.lang().longDateFormat(t)||t}var n=5;while(n--&&localFormattingTokens.test(t))t=t.replace(localFormattingTokens,r);return formatFunctions[t]||(formatFunctions[t]=makeFormatFunction(t)),formatFunctions[t](e)}function getParseRegexForToken(e,t){switch(e){case"DDDD":return parseTokenThreeDigits;case"YYYY":return parseTokenFourDigits;case"YYYYY":return parseTokenSixDigits;case"S":case"SS":case"SSS":case"DDD":return parseTokenOneToThreeDigits;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return parseTokenWord;case"a":case"A":return getLangDefinition(t._l)._meridiemParse;case"X":return parseTokenTimestampMs;case"Z":case"ZZ":return parseTokenTimezone;case"T":return parseTokenT;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return parseTokenOneOrTwoDigits;default:return new RegExp(e.replace("\\",""))}}function timezoneMinutesFromString(e){var t=(parseTokenTimezone.exec(e)||[])[0],n=(t+"").match(parseTimezoneChunker)||["-",0,0],r=+(n[1]*60)+~~n[2];return n[0]==="+"?-r:r}function addTimeToArrayFromToken(e,t,n){var r,i,s=n._a;switch(e){case"M":case"MM":s[1]=t==null?0:~~t-1;break;case"MMM":case"MMMM":r=getLangDefinition(n._l).monthsParse(t),r!=null?s[1]=r:n._isValid=!1;break;case"D":case"DD":case"DDD":case"DDDD":t!=null&&(s[2]=~~t);break;case"YY":s[0]=~~t+(~~t>68?1900:2e3);break;case"YYYY":case"YYYYY":s[0]=~~t;break;case"a":case"A":n._isPm=getLangDefinition(n._l).isPM(t);break;case"H":case"HH":case"h":case"hh":s[3]=~~t;break;case"m":case"mm":s[4]=~~t;break;case"s":case"ss":s[5]=~~t;break;case"S":case"SS":case"SSS":s[6]=~~(("0."+t)*1e3);break;case"X":n._d=new Date(parseFloat(t)*1e3);break;case"Z":case"ZZ":n._useUTC=!0,n._tzm=timezoneMinutesFromString(t)}t==null&&(n._isValid=!1)}function dateFromArray(e){var t,n,r=[];if(e._d)return;for(t=0;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];r[3]+=~~((e._tzm||0)/60),r[4]+=~~((e._tzm||0)%60),n=new Date(0),e._useUTC?(n.setUTCFullYear(r[0],r[1],r[2]),n.setUTCHours(r[3],r[4],r[5],r[6])):(n.setFullYear(r[0],r[1],r[2]),n.setHours(r[3],r[4],r[5],r[6])),e._d=n}function makeDateFromStringAndFormat(e){var t=e._f.match(formattingTokens),n=e._i,r,i;e._a=[];for(r=0;r<t.length;r++)i=(getParseRegexForToken(t[r],e).exec(n)||[])[0],i&&(n=n.slice(n.indexOf(i)+i.length)),formatTokenFunctions[t[r]]&&addTimeToArrayFromToken(t[r],i,e);n&&(e._il=n),e._isPm&&e._a[3]<12&&(e._a[3]+=12),e._isPm===!1&&e._a[3]===12&&(e._a[3]=0),dateFromArray(e)}function makeDateFromStringAndArray(e){var t,n,r,i=99,s,o;for(s=0;s<e._f.length;s++)t=extend({},e),t._f=e._f[s],makeDateFromStringAndFormat(t),n=new Moment(t),o=compareArrays(t._a,n.toArray()),n._il&&(o+=n._il.length),o<i&&(i=o,r=n);extend(e,r)}function makeDateFromString(e){var t,n=e._i,r=isoRegex.exec(n);if(r){e._f="YYYY-MM-DD"+(r[2]||" ");for(t=0;t<4;t++)if(isoTimes[t][1].exec(n)){e._f+=isoTimes[t][0];break}parseTokenTimezone.exec(n)&&(e._f+=" Z"),makeDateFromStringAndFormat(e)}else e._d=new Date(n)}function makeDateFromInput(e){var t=e._i,n=aspNetJsonRegex.exec(t);t===undefined?e._d=new Date:n?e._d=new Date(+n[1]):typeof t=="string"?makeDateFromString(e):isArray(t)?(e._a=t.slice(0),dateFromArray(e)):e._d=t instanceof Date?new Date(+t):new Date(t)}function substituteTimeAgo(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function relativeTime(e,t,n){var r=round(Math.abs(e)/1e3),i=round(r/60),s=round(i/60),o=round(s/24),u=round(o/365),a=r<45&&["s",r]||i===1&&["m"]||i<45&&["mm",i]||s===1&&["h"]||s<22&&["hh",s]||o===1&&["d"]||o<=25&&["dd",o]||o<=45&&["M"]||o<345&&["MM",round(o/30)]||u===1&&["y"]||["yy",u];return a[2]=t,a[3]=e>0,a[4]=n,substituteTimeAgo.apply({},a)}function weekOfYear(e,t,n){var r=n-t,i=n-e.day(),s;return i>r&&(i-=7),i<r-7&&(i+=7),s=moment(e).add("d",i),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function makeMoment(e){var t=e._i,n=e._f;return t===null||t===""?null:(typeof t=="string"&&(e._i=t=getLangDefinition().preparse(t)),moment.isMoment(t)?(e=extend({},t),e._d=new Date(+t._d)):n?isArray(n)?makeDateFromStringAndArray(e):makeDateFromStringAndFormat(e):makeDateFromInput(e),new Moment(e))}function makeGetterAndSetter(e,t){moment.fn[e]=moment.fn[e+"s"]=function(e){var n=this._isUTC?"UTC":"";return e!=null?(this._d["set"+n+t](e),moment.updateOffset(this),this):this._d["get"+n+t]()}}function makeDurationGetter(e){moment.duration.fn[e]=function(){return this._data[e]}}function makeDurationAsGetter(e,t){moment.duration.fn["as"+e]=function(){return+this/t}}var moment,VERSION="2.0.0",round=Math.round,i,languages={},hasModule=typeof module!="undefined"&&module.exports,aspNetJsonRegex=/^\/?Date\((\-?\d+)/i,aspNetTimeSpanJsonRegex=/(\-)?(\d*)?\.?(\d+)\:(\d+)\:(\d+)\.?(\d{3})?/,formattingTokens=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|SS?S?|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,parseMultipleFormatChunker=/([0-9a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+)/gi,parseTokenOneOrTwoDigits=/\d\d?/,parseTokenOneToThreeDigits=/\d{1,3}/,parseTokenThreeDigits=/\d{3}/,parseTokenFourDigits=/\d{1,4}/,parseTokenSixDigits=/[+\-]?\d{1,6}/,parseTokenWord=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,parseTokenTimezone=/Z|[\+\-]\d\d:?\d\d/i,parseTokenT=/T/i,parseTokenTimestampMs=/[\+\-]?\d+(\.\d{1,3})?/,isoRegex=/^\s*\d{4}-\d\d-\d\d((T| )(\d\d(:\d\d(:\d\d(\.\d\d?\d?)?)?)?)?([\+\-]\d\d:?\d\d)?)?/,isoFormat="YYYY-MM-DDTHH:mm:ssZ",isoTimes=[["HH:mm:ss.S",/(T| )\d\d:\d\d:\d\d\.\d{1,3}/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],parseTimezoneChunker=/([\+\-]|\d\d)/gi,proxyGettersAndSetters="Date|Hours|Minutes|Seconds|Milliseconds".split("|"),unitMillisecondFactors={Milliseconds:1,Seconds:1e3,Minutes:6e4,Hours:36e5,Days:864e5,Months:2592e6,Years:31536e6},unitAliases={ms:"millisecond",s:"second",m:"minute",h:"hour",d:"day",w:"week",M:"month",y:"year"},formatFunctions={},ordinalizeTokens="DDD w W M D d".split(" "),paddedTokens="M D H h m s w W".split(" "),formatTokenFunctions={M:function(){return this.month()+1},MMM:function(e){return this.lang().monthsShort(this,e)},MMMM:function(e){return this.lang().months(this,e)},D:function(){return this.date()},DDD:function(){return this.dayOfYear()},d:function(){return this.day()},dd:function(e){return this.lang().weekdaysMin(this,e)},ddd:function(e){return this.lang().weekdaysShort(this,e)},dddd:function(e){return this.lang().weekdays(this,e)},w:function(){return this.week()},W:function(){return this.isoWeek()},YY:function(){return leftZeroFill(this.year()%100,2)},YYYY:function(){return leftZeroFill(this.year(),4)},YYYYY:function(){return leftZeroFill(this.year(),5)},gg:function(){return leftZeroFill(this.weekYear()%100,2)},gggg:function(){return this.weekYear()},ggggg:function(){return leftZeroFill(this.weekYear(),5)},GG:function(){return leftZeroFill(this.isoWeekYear()%100,2)},GGGG:function(){return this.isoWeekYear()},GGGGG:function(){return leftZeroFill(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return~~(this.milliseconds()/100)},SS:function(){return leftZeroFill(~~(this.milliseconds()/10),2)},SSS:function(){return leftZeroFill(this.milliseconds(),3)},Z:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+leftZeroFill(~~(e/60),2)+":"+leftZeroFill(~~e%60,2)},ZZ:function(){var e=-this.zone(),t="+";return e<0&&(e=-e,t="-"),t+leftZeroFill(~~(10*e/6),4)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()}};while(ordinalizeTokens.length)i=ordinalizeTokens.pop(),formatTokenFunctions[i+"o"]=ordinalizeToken(formatTokenFunctions[i],i);while(paddedTokens.length)i=paddedTokens.pop(),formatTokenFunctions[i+i]=padToken(formatTokenFunctions[i],2);formatTokenFunctions.DDDD=padToken(formatTokenFunctions.DDD,3),Language.prototype={set:function(e){var t,n;for(n in e)t=e[n],typeof t=="function"?this[n]=t:this["_"+n]=t},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(e){return this._months[e.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(e){return this._monthsShort[e.month()]},monthsParse:function(e){var t,n,r;this._monthsParse||(this._monthsParse=[]);for(t=0;t<12;t++){this._monthsParse[t]||(n=moment([2e3,t]),r="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[t]=new RegExp(r.replace(".",""),"i"));if(this._monthsParse[t].test(e))return t}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(e){return this._weekdays[e.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(e){return this._weekdaysShort[e.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(e){return this._weekdaysMin[e.day()]},weekdaysParse:function(e){var t,n,r;this._weekdaysParse||(this._weekdaysParse=[]);for(t=0;t<7;t++){this._weekdaysParse[t]||(n=moment([2e3,1]).day(t),r="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[t]=new RegExp(r.replace(".",""),"i"));if(this._weekdaysParse[t].test(e))return t}},_longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},longDateFormat:function(e){var t=this._longDateFormat[e];return!t&&this._longDateFormat[e.toUpperCase()]&&(t=this._longDateFormat[e.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e]=t),t},isPM:function(e){return(e+"").toLowerCase()[0]==="p"},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(e,t){var n=this._calendar[e];return typeof n=="function"?n.apply(t):n},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(e,t,n,r){var i=this._relativeTime[n];return typeof i=="function"?i(e,t,n,r):i.replace(/%d/i,e)},pastFuture:function(e,t){var n=this._relativeTime[e>0?"future":"past"];return typeof n=="function"?n(t):n.replace(/%s/i,t)},ordinal:function(e){return this._ordinal.replace("%d",e)},_ordinal:"%d",preparse:function(e){return e},postformat:function(e){return e},week:function(e){return weekOfYear(e,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6}},moment=function(e,t,n){return makeMoment({_i:e,_f:t,_l:n,_isUTC:!1})},moment.utc=function(e,t,n){return makeMoment({_useUTC:!0,_isUTC:!0,_l:n,_i:e,_f:t})},moment.unix=function(e){return moment(e*1e3)},moment.duration=function(e,t){var n=moment.isDuration(e),r=typeof e=="number",i=n?e._data:r?{}:e,s=aspNetTimeSpanJsonRegex.exec(e),o,u;return r?t?i[t]=e:i.milliseconds=e:s&&(o=s[1]==="-"?-1:1,i={y:0,d:~~s[2]*o,h:~~s[3]*o,m:~~s[4]*o,s:~~s[5]*o,ms:~~s[6]*o}),u=new Duration(i),n&&e.hasOwnProperty("_lang")&&(u._lang=e._lang),u},moment.version=VERSION,moment.defaultFormat=isoFormat,moment.updateOffset=function(){},moment.lang=function(e,t){var n;if(!e)return moment.fn._lang._abbr;t?loadLang(e,t):languages[e]||getLangDefinition(e),moment.duration.fn._lang=moment.fn._lang=getLangDefinition(e)},moment.langData=function(e){return e&&e._lang&&e._lang._abbr&&(e=e._lang._abbr),getLangDefinition(e)},moment.isMoment=function(e){return e instanceof Moment},moment.isDuration=function(e){return e instanceof Duration},moment.fn=Moment.prototype={clone:function(){return moment(this)},valueOf:function(){return+this._d+(this._offset||0)*6e4},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){return formatMoment(moment(this).utc(),"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")},toArray:function(){var e=this;return[e.year(),e.month(),e.date(),e.hours(),e.minutes(),e.seconds(),e.milliseconds()]},isValid:function(){return this._isValid==null&&(this._a?this._isValid=!compareArrays(this._a,(this._isUTC?moment.utc(this._a):moment(this._a)).toArray()):this._isValid=!isNaN(this._d.getTime())),!!this._isValid},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(e){var t=formatMoment(this,e||moment.defaultFormat);return this.lang().postformat(t)},add:function(e,t){var n;return typeof e=="string"?n=moment.duration(+t,e):n=moment.duration(e,t),addOrSubtractDurationFromMoment(this,n,1),this},subtract:function(e,t){var n;return typeof e=="string"?n=moment.duration(+t,e):n=moment.duration(e,t),addOrSubtractDurationFromMoment(this,n,-1),this},diff:function(e,t,n){var r=this._isUTC?moment(e).zone(this._offset||0):moment(e).local(),i=(this.zone()-r.zone())*6e4,s,o;return t=normalizeUnits(t),t==="year"||t==="month"?(s=(this.daysInMonth()+r.daysInMonth())*432e5,o=(this.year()-r.year())*12+(this.month()-r.month()),o+=(this-moment(this).startOf("month")-(r-moment(r).startOf("month")))/s,t==="year"&&(o/=12)):(s=this-r-i,o=t==="second"?s/1e3:t==="minute"?s/6e4:t==="hour"?s/36e5:t==="day"?s/864e5:t==="week"?s/6048e5:s),n?o:absRound(o)},from:function(e,t){return moment.duration(this.diff(e)).lang(this.lang()._abbr).humanize(!t)},fromNow:function(e){return this.from(moment(),e)},calendar:function(){var e=this.diff(moment().startOf("day"),"days",!0),t=e<-6?"sameElse":e<-1?"lastWeek":e<0?"lastDay":e<1?"sameDay":e<2?"nextDay":e<7?"nextWeek":"sameElse";return this.format(this.lang().calendar(t,this))},isLeapYear:function(){var e=this.year();return e%4===0&&e%100!==0||e%400===0},isDST:function(){return this.zone()<this.clone().month(0).zone()||this.zone()<this.clone().month(5).zone()},day:function(e){var t=this._isUTC?this._d.getUTCDay():this._d.getDay();if(e!=null){if(typeof e=="string"){e=this.lang().weekdaysParse(e);if(typeof e!="number")return this}return this.add({d:e-t})}return t},month:function(e){var t=this._isUTC?"UTC":"";if(e!=null){if(typeof e=="string"){e=this.lang().monthsParse(e);if(typeof e!="number")return this}return this._d["set"+t+"Month"](e),moment.updateOffset(this),this}return this._d["get"+t+"Month"]()},startOf:function(e){e=normalizeUnits(e);switch(e){case"year":this.month(0);case"month":this.date(1);case"week":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return e==="week"&&this.weekday(0),this},endOf:function(e){return this.startOf(e).add(e,1).subtract("ms",1)},isAfter:function(e,t){return t=typeof t!="undefined"?t:"millisecond",+this.clone().startOf(t)>+moment(e).startOf(t)},isBefore:function(e,t){return t=typeof t!="undefined"?t:"millisecond",+this.clone().startOf(t)<+moment(e).startOf(t)},isSame:function(e,t){return t=typeof t!="undefined"?t:"millisecond",+this.clone().startOf(t)===+moment(e).startOf(t)},min:function(e){return e=moment.apply(null,arguments),e<this?this:e},max:function(e){return e=moment.apply(null,arguments),e>this?this:e},zone:function(e){var t=this._offset||0;return e==null?this._isUTC?t:this._d.getTimezoneOffset():(typeof e=="string"&&(e=timezoneMinutesFromString(e)),Math.abs(e)<16&&(e*=60),this._offset=e,this._isUTC=!0,t!==e&&addOrSubtractDurationFromMoment(this,moment.duration(t-e,"m"),1,!0),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},daysInMonth:function(){return moment.utc([this.year(),this.month()+1,0]).date()},dayOfYear:function(e){var t=round((moment(this).startOf("day")-moment(this).startOf("year"))/864e5)+1;return e==null?t:this.add("d",e-t)},weekYear:function(e){var t=weekOfYear(this,this.lang()._week.dow,this.lang()._week.doy).year;return e==null?t:this.add("y",e-t)},isoWeekYear:function(e){var t=weekOfYear(this,1,4).year;return e==null?t:this.add("y",e-t)},week:function(e){var t=this.lang().week(this);return e==null?t:this.add("d",(e-t)*7)},isoWeek:function(e){var t=weekOfYear(this,1,4).week;return e==null?t:this.add("d",(e-t)*7)},weekday:function(e){var t=(this._d.getDay()+7-this.lang()._week.dow)%7;return e==null?t:this.add("d",e-t)},isoWeekday:function(e){var t=(this._d.getDay()+6)%7;return e==null?t:this.add("d",e-t)},lang:function(e){return e===undefined?this._lang:(this._lang=getLangDefinition(e),this)}};for(i=0;i<proxyGettersAndSetters.length;i++)makeGetterAndSetter(proxyGettersAndSetters[i].toLowerCase().replace(/s$/,""),proxyGettersAndSetters[i]);makeGetterAndSetter("year","FullYear"),moment.fn.days=moment.fn.day,moment.fn.months=moment.fn.month,moment.fn.weeks=moment.fn.week,moment.fn.isoWeeks=moment.fn.isoWeek,moment.fn.toJSON=moment.fn.toISOString,moment.duration.fn=Duration.prototype={weeks:function(){return absRound(this.days()/7)},valueOf:function(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+~~(this._months/12)*31536e6},humanize:function(e){var t=+this,n=relativeTime(t,!e,this.lang());return e&&(n=this.lang().pastFuture(t,n)),this.lang().postformat(n)},add:function(e,t){var n=moment.duration(e,t);return this._milliseconds+=n._milliseconds,this._days+=n._days,this._months+=n._months,this},subtract:function(e,t){var n=moment.duration(e,t);return this._milliseconds-=n._milliseconds,this._days-=n._days,this._months-=n._months,this},get:function(e){return e=normalizeUnits(e),this[e.toLowerCase()+"s"]()},as:function(e){return e=normalizeUnits(e),this["as"+e.charAt(0).toUpperCase()+e.slice(1)+"s"]()},lang:moment.fn.lang};for(i in unitMillisecondFactors)unitMillisecondFactors.hasOwnProperty(i)&&(makeDurationAsGetter(i,unitMillisecondFactors[i]),makeDurationGetter(i.toLowerCase()));makeDurationAsGetter("Weeks",6048e5),moment.duration.fn.asMonths=function(){return(+this-this.years()*31536e6)/2592e6+this.years()*12},moment.lang("en",{ordinal:function(e){var t=e%10,n=~~(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}}),hasModule&&(module.exports=moment),function(){var chrono={};chrono.parsers={},chrono.refiners={},chrono.parse=function(e,t,n){var r=this.integratedParse(e,t,n),r=this.integratedRefine(e,r);return r},chrono.parseDate=function(e,t,n){var r=this.parse(e,t,n);return r.length>=1?r[0].startDate:null};if(typeof exports=="undefined"){var moment=moment||window.moment;window.chrono=chrono}else{var fs=require("fs"),moment=require("./moment");function loadModuleDirs(dir){var module_dirs=fs.readdirSync(__dirname+"/"+dir);module_dirs=module_dirs.filter(function(e){return!e.match(/\./)});for(var i in module_dirs){var dirname=module_dirs[i];if(typeof dirname=="function")continue;var parser_files=fs.readdirSync(__dirname+"/"+dir+"/"+dirname);for(var j in parser_files){var filename=parser_files[j];if(typeof filename=="function")continue;if(!filename.match(/\.js$/))continue;eval(fs.readFileSync(__dirname+"/"+dir+"/"+dirname+"/"+filename)+"")}}}eval(fs.readFileSync(__dirname+"/parsers/ParseResult.js")+""),eval(fs.readFileSync(__dirname+"/parsers/Parser.js")+""),eval(fs.readFileSync(__dirname+"/parsers/IntegratedParsing.js")+""),loadModuleDirs("parsers"),eval(fs.readFileSync(__dirname+"/refiners/IntegratedRefinement.js")+""),loadModuleDirs("refiners"),module.exports=chrono}}(),function(){function e(e){this.year=e.year,this.month=e.month,this.day=e.day,this.hour=e.hour,this.minute=e.minute,this.second=e.second,this.timezoneOffset=e.timezoneOffset,this.dayOfWeek=e.dayOfWeek,e.meridiem&&(this.meridiem=e.meridiem.toLowerCase()),e.impliedComponents&&e.impliedComponents.length>0&&(this.impliedComponents=e.impliedComponents),this.isCertain=function(e){return this.impliedComponents?this.impliedComponents.indexOf(e)<0:!0},this.date=function(e){e=e||(new Date).getTimezoneOffset(),e-=this.timezoneOffset||(new Date).getTimezoneOffset();var t=moment(new Date(this.year,this.month,this.day));return t.hours(this.hour),t.minutes(this.minute),t.seconds(this.second),this.timezoneOffset&&t.add("minutes",-e),t.toDate()}}function t(t){this.start=new e(t.start),this.startDate=this.start.date(),t.end&&(this.end=new e(t.end),this.endDate=this.end.date()),this.referenceDate=t.referenceDate,this.index=t.index,this.text=t.text,this.concordance=t.concordance,t.timezoneOffset&&(this.timezoneOffset=t.timezoneOffset)}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.DateComponents=e,chrono.ParseResult=t}(),function(){function e(e,t,n){var r=0,i=e,s=!1,o=[],u={};return u.pattern=function(){return/./i},u.extract=function(e,t){return null},u.results=function(){return o},u.finished=function(){return s},u.mergeOverlapResult=function(e,t,n){if(n.index<t.index){var r=t;t=n,n=r}var i=t.index+t.text.length,s=n.index;if(s<i&&t.index<n.index&&i<n.index+n.text.length){var o=t.index,u=e.substring(t.index,n.index+n.text.length),a=t.start.impliedComponents||[],f=n.start.impliedComponents||[];if(a.length<f.length){var r=t;t=n,n=r,a=t.start.impliedComponents||[],f=n.start.impliedComponents||[]}if(a.indexOf("day")<0||a.indexOf("month")<0||a.indexOf("year")<0)return;return new chrono.ParseResult({referenceDate:t.ref,index:o,start:n.start,end:n.end,text:u,referenceDate:t.referenceDate})}var l=e.substring(i,s),c=/^\s*(to|\-)\s*$/i;if(!l.match(c))return null;var u=t.text+l+n.text,h=new Object(t.start),p=new Object(n.start),a=t.start.impliedComponents||[],f=n.start.impliedComponents||[];return a.forEach(function(e){if(!p.impliedComponents||p.impliedComponents.indexOf(e)<0){h[e]=p[e];var t=h.impliedComponents.indexOf(e);h.impliedComponents.splice(t,1)}}),f.forEach(function(e){if(!h.impliedComponents||h.impliedComponents.indexOf(e)<0){p[e]=h[e];var t=p.impliedComponents.indexOf(e);p.impliedComponents.splice(t,1)}}),moment(p.date()).diff(moment(h.date()))>0?new chrono.ParseResult({referenceDate:t.ref,index:t.index,start:h,end:p,text:u,referenceDate:t.referenceDate}):new chrono.ParseResult({referenceDate:t.ref,index:t.index,start:p,end:h,text:u,referenceDate:t.referenceDate})},u.extractTime=function(e,t){var n=/^\s*,?\s*(at|from)?\s*,?\s*([0-9]{1,4}|noon|midnight)((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i,r=/^\s*(\-|\~|\〜|to|\W)\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;if(e.length<=t.index+t.text.length)return null;e=e.substr(t.index+t.text.length);var i=e.match(n);if(!i)return null;var s=0,o=0,u=i[2];u.toLowerCase()=="noon"?(t.start.meridiem="pm",u=12):u.toLowerCase()=="midnight"?(t.start.meridiem="am",u=0):u=parseInt(u);if(i[5]){s=i[5],s=parseInt(s);if(s>=60)return null}else u>100&&(s=u%100,u=(u-s)/100);if(i[8]){o=i[8],o=parseInt(o);if(o>=60)return null}if(i[10]){if(u>12)return null;i[10].toLowerCase()=="am"&&u==12&&(u=0),i[10].toLowerCase()=="pm"&&u!=12&&(u+=12),t.start.meridiem=i[10].toLowerCase()}u>=12&&(t.start.meridiem="pm"),t.text=t.text+i[0],t.start.hour==undefined&&(t.start.hour=u,t.start.minute=s,t.start.second=o),e=e.substr(i[0].length);var i=e.match(r);if(!i)return t.end&&t.end.hour==undefined&&(t.end.hour=u,t.end.minute=s,t.end.second=o),new chrono.ParseResult(t);var s=0,o=0,u=i[2];u=parseInt(u);if(i[5]){s=i[5],s=parseInt(s);if(s>=60)return null}else u>100&&(s=u%100,u=(u-s)/100);if(i[8]){o=i[8],o=parseInt(o);if(o>=60)return null}if(i[10]){if(u>12)return null;i[10].toLowerCase()=="am"&&u==12&&(u=0,t.end||(t.end=new chrono.DateComponents(t.start)),t.end.day+=1),i[10].toLowerCase()=="pm"&&u!=12&&(u+=12),t.start.meridiem||(i[10].toLowerCase()=="am"&&t.start.hour==12&&(t.start.hour=0),i[10].toLowerCase()=="pm"&&t.start.hour!=12&&(t.start.hour+=12),t.start.meridiem=i[10].toLowerCase(),t.start.impliedComponents=t.start.impliedComponents||[],t.start.impliedComponents.push("meridiem"))}return t.text=t.text+i[0],t.end?(t.end.hour=u,t.end.minute=s,t.end.second=o):(t.end=new chrono.DateComponents(t.start),t.end.hour=u,t.end.minute=s,t.end.second=o),i[10]&&(t.end.meridiem=i[10].toLowerCase()),u>=12&&(t.end.meridiem="pm"),new chrono.ParseResult(t)},u.extractTimezone=function(e,t){var n=/^\s*(GMT|UTC)(\+|\-)(\d{1,2})(\d{2})/;if(e.length<=t.index+t.text.length)return null;e=e.substr(t.index+t.text.length);var r=e.match(n);if(r){var i=parseInt(r[3])*60+parseInt(r[4]),i=parseInt(r[2]+i)*-1;t.end&&(t.end.timezoneOffset=i),t.start.timezoneOffset=i,t.text+=r[0],e=e.substr(r[0].length)}var n=/^\s*\(?([A-Z]{3,4})\)?/,r=e.match(n);if(r){var s=r[1];t.start.timezoneOffset===undefined,t.text+=r[0]}return t},u.extractConcordance=function(e,t){var n=30;return preText=e.substr(0,t.index),preText=preText.replace(/(\r\n|\n|\r)/gm," "),preText=preText.replace(/(\s+)/gm," "),preText.length>n?preText="..."+preText.substr(preText.length-n+3,n-3):preText=preText.substr(0,n),posText=e.substr(t.index+t.text.length),posText=posText.replace(/(\r\n|\n|\r)/gm," "),posText=posText.replace(/(\s+)/gm," "),posText.length>n?posText=posText.substr(0,n-3)+"...":posText=posText.substr(0,n),t.concordance=preText+t.text+posText,new chrono.ParseResult(t)},u.exec=function(){if(s)return null;var t=i.search(this.pattern());if(t<0)return s=!0,null;var n=t+r,u=this.extract(e,n);if(u){if(o.length>0){var a=o[o.length-1],f=this.mergeOverlapResult(e,a,u);u=f||u}if(u.start.hour===undefined||u.end&&u.end.hour===undefined){var l=this.extractTime(e,u);u=l||u}if(u.start.timezoneOffset===undefined||u.end&&u.end.timezoneOffset===undefined){var c=this.extractTimezone(e,u);u=c||u}u.start.hour===undefined&&(u.startDate=moment(u.startDate).startOf("day").hours(12).toDate()),u.end&&u.end.hour===undefined&&(u.endDate=moment(u.endDate).startOf("day").hours(12).toDate()),this.extractConcordance(e,u),o.push(u)}return i=i.substr(t+1),r=n+1,u},u.execAll=function(){while(!this.finished())this.exec()},u}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.Parser=e}(),function(){function e(e,n,r,i){r=r||{},n=n||new Date,i=i||Object.keys(chrono.parsers);var s=0,o=[],u=[];for(var a=0;a<i.length;a++)chrono.parsers[i[a]]&&o.push(new chrono.parsers[i[a]](e,n,r));while(s<o.length){var f=o[s];while(!f.finished()){var l=f.exec();l&&t(u,l)}s++}return u}function t(e,t){var n=0;while(n<e.length&&e[n].index<t.index)n++;if(n<e.length){var r=n;while(r<e.length&&e[r].index<t.index+t.text.length){if(e[r].text.length>=t.text.length)return e;r++}e.splice(n,r-n)}if(n-1>=0){var i=e[n-1];if(t.index<i.index+i.text.length){if(i.text.length>=t.text.length)return e;e.splice(n-1,1),n-=1}}return e.splice(n,0,t),e}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.integratedParse=e}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.Parser(n,r,i);return s.pattern=function(){return e},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=n.substr(i).match(e);if(u==null){finished=!0;return}var n=u[0];i+=u[1].length,n=u[0].substr(u[1].length,u[0].length-u[9].length-u[1].length);var a=u[5],f=u[6];f=f.toLowerCase();var l=t[f];if(l===undefined)return null;var c=moment(r).clone();if(a)a=a.toLowerCase(),a=="last"?c.day(l-7):a=="next"?c.day(l+7):a=="this"&&c.day(l);else{var h=c.day();l>h?c.day(l):c.day(l+7)}return new chrono.ParseResult({referenceDate:r,text:n,index:i,start:{day:c.date(),month:c.month(),year:c.year(),dayOfWeek:l,impliedComponents:["day","month","year"]}})},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(\W|^)((\,|\(|\()\s*)?((this|last|next)\s*)?(Sunday|Sun|Monday|Mon|Tuesday|Wednesday|Wed|Thursday|Thurs|Thur|Friday|Fri|Saturday|Sat)(\s*(\,|\)|\)))?(\W|$)/i,t={sunday:0,sun:0,monday:1,mon:1,tuesday:2,tue:2,wednesday:3,wed:3,thursday:4,thurs:4,thur:4,thu:4,friday:5,fri:5,saturday:6,sat:6};chrono.parsers.DayOfWeekParser=n}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=null,f=u[0].toLowerCase();f=u[0].substr(0,u[0].length-u[11].length);var l=null,c=f.toLowerCase();if(c=="today"||c=="tonight")l=moment(n).clone();else if(c=="tomorrow")moment(n).hour()<4?l=moment(n).clone().hour(6):l=moment(n).clone().add("d",1);else if(c=="yesterday")l=moment(n).clone().add("d",-1);else if(c.match("last"))l=moment(n).clone().add("d",-1);else if(c.match("ago")){var h=u[2];h=parseInt(h),l=moment(n).clone().add("d",-h)}else{while(t.charAt(r)==" ")r++;a=["year","month","day"],l=moment(n).clone(),f=""}var p=new chrono.ParseResult({referenceDate:n,text:f,index:r,start:{day:l.date(),month:l.month(),year:l.year(),impliedComponents:a}}),d=i.extractTime(t,p);return p=d||p,c.match("night")&&(d?d.start.hour<6?(l.add("d",1),p.start.day=l.date(),p.start.month=l.month(),p.start.year=l.year(),p=new chrono.ParseResult(p)):d.start.hour<12&&!d.start.meridiem&&(p.start.hour=d.start.hour+12,p.start.meridiem="pm",p.start.impliedComponents=p.start.impliedComponents||[],p.start.impliedComponents.push("meridiem"),p=new chrono.ParseResult(p)):(p.start.day=l.date()+1,p.start.hour=0,p.start.minute=0,p.start.second=0,p.start.impliedComponents=["hour","minute","second"],p=new chrono.ParseResult(p))),p},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(today|tonight|tomorrow|yesterday|last\s*night|([1-9]+)\s*day(s)\s*ago|([0-9]{1,2})(\.|\:|\:)([0-9]{1,2}).*|([0-9]{1,2}\s*\W?\s*)?([0-9]{1,2})\s*(AM|PM)|at\s*([0-9]{1,2}|noon|midnight))(\W|$)/i;chrono.parsers.GeneralDateParser=t}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var i=this.results(),s=i[i.length-1];if(s&&r<s.index+s.text.length)return null;var o=t.substr(r).match(e);if(o==null){finished=!0;return}var t=o[0];t=o[0].substr(0,o[0].length-o[4].length);var u=moment(t,"YYYY-MM-DD");return u.format("YYYY-M-D")!=t&&u.format("YYYY-MM-DD")!=t?null:new chrono.ParseResult
({referenceDate:n,text:t,index:r,start:{day:u.date(),month:u.month(),year:u.year(),dayOfWeek:u.day()}})},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/([0-9]{4})\-([0-9]{1,2})\-([0-9]{1,2})(\W|$)/i;chrono.parsers.InternationalStandardParser=t}(),function(){function r(r,i,s){s=s||{},i=i||new Date;var o=chrono.Parser(r,i,s);o.pattern=function(){return n},o.extract=function(r,s){var o=this.results(),u=o[o.length-1];if(u&&s<u.index+u.text.length)return null;var a=[],f=null,l=null;r=r.substr(s),originalText=r;var c=r.match(t);if(c&&r.indexOf(c[0])==0){r=c[0],r=c[0].substr(0,c[0].length-c[12].length),originalText=r,c[4]&&(r=r.replace(c[4],"")),c[5]&&(r=r.replace(c[5],""));var h=c[10];h=parseInt(h),h<100?h>20?h=null:h+=2e3:c[11]&&(r=r.replace(c[11],""),h-=543),r=r.replace(c[10]," "+h),f=moment(r,"DD MMMM YYYY");if(!f)return null}else{c=r.match(n);if(!c)return null;var r=c[0];r=c[0].substr(0,c[0].length-c[10].length),originalText=r,c[4]&&(r=r.replace(c[4],"")),c[5]&&(r=r.replace(c[5],"")),f=moment(r,"DD MMMM");if(!f)return null;a.push("year"),f.year(moment(i).year());var p=f.clone().add("y",1),d=f.clone().add("y",-1);Math.abs(p.diff(moment(i)))<Math.abs(f.diff(moment(i)))?f=p:Math.abs(d.diff(moment(i)))<Math.abs(f.diff(moment(i)))&&(f=d)}c[2]&&(l=e[c[2].toLowerCase()]);if(c[7]){var v=parseInt(c[7]),m=parseInt(c[3]),g=f.clone();return f.date(m),g.date(v),f.format("D")!=c[3]?null:g.format("D")!=c[7]?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:f.date(),month:f.month(),year:f.year(),dayOfWeek:l,impliedComponents:a},end:{day:g.date(),month:g.month(),year:g.year(),impliedComponents:a}})}return f.format("D")!=c[3]?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:f.date(),month:f.month(),year:f.year(),dayOfWeek:l,impliedComponents:a}})};var u=o.extractTime;return o.extractTime=function(e,t){var n=/(\,|\(|\s)*(Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thur|Thursday|Fri|Friday|Sat|Saturday)(\,|\)|\s)*/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length),i=r.match(n);return i&&r.indexOf(i[0])==0&&(t.text=t.text+i[0]),u.call(this,e,t)},o}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e={sunday:0,sun:0,monday:1,mon:1,tuesday:2,tue:2,wednesday:3,wed:3,thursday:4,thur:4,thu:4,friday:5,fri:5,saturday:6,sat:6},t=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\s*[0-9]{2,4})(\s*BE)?(\W|$)/i,n=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\W|$)/i;chrono.parsers.MonthNameLittleEndianParser=r}(),function(){function r(r,i,s){s=s||{},i=i||new Date;var o=chrono.Parser(r,i,s);o.pattern=function(){return n},o.extract=function(r,s){var o=this.results(),u=o[o.length-1];if(u&&s<u.index+u.text.length)return null;var a=[],f=null,l=null;r=r.substr(s),originalText=r;var c=r.match(t);if(c&&r.indexOf(c[0])==0){var r=c[0];originalText=r,r=r.replace(c[1],""),r=r.replace(c[3],c[3]+" "),c[4]&&(r=r.replace(c[4],"")),c[9]&&(r=r.replace(c[9],"")),c[10]&&(r=r.replace(",",""));if(c[12]){var h=c[11];h=" "+(parseInt(h)-543),r=r.replace(c[12],""),r=r.replace(c[11],h)}r=r.replace(c[8],parseInt(c[8])+""),f=moment(r,"MMMM DD YYYY");if(!f)return null}else{c=r.match(n);if(!c)return null;r=c[0].substr(0,c[0].length-c[10].length),originalText=r,r=r.replace(c[1],""),r=r.replace(c[3],c[3]+" "),c[4]&&(r=r.replace(c[4],"")),f=moment(r,"MMMM DD");if(!f)return null;a.push("year"),f.year(moment(i).year());var p=f.clone().add("y",1),d=f.clone().add("y",-1);Math.abs(p.diff(moment(i)))<Math.abs(f.diff(moment(i)))?f=p:Math.abs(d.diff(moment(i)))<Math.abs(f.diff(moment(i)))&&(f=d)}c[2]&&(l=e[c[2].toLowerCase()]);if(c[4]){var v=parseInt(c[8]),m=parseInt(c[5]),g=f.clone();return f.date(m),g.date(v),f.format("D")!=c[5]?null:g.format("D")!=c[8]?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:f.date(),month:f.month(),year:f.year(),dayOfWeek:l,impliedComponents:a},end:{day:g.date(),month:g.month(),year:g.year(),impliedComponents:a}})}return f.format("D")!=parseInt(c[8])+""?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:f.date(),month:f.month(),year:f.year(),dayOfWeek:l,impliedComponents:a}})};var u=o.extractTime;return o.extractTime=function(t,n){var r=/(\,|\(|\s)*(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)(\,|\)|\s)*/i;if(t.length<=n.index+n.text.length)return null;var i=t.substr(n.index+n.text.length,15),s=i.match(r);if(s&&i.indexOf(s[0])==0){n.text=n.text+s[0];var o=e[s[2].toLowerCase()];n.start.dayOfWeek=o}if(!n.start.impliedComponents||n.start.impliedComponents.indexOf("year")<0)return u.call(this,t,n);var a=/(\s*[0-9]{4})(\s*BE)?/i;if(t.length<=n.index+n.text.length)return null;var i=t.substr(n.index+n.text.length,15),s=i.match(a);if(s&&i.indexOf(s[0])==0){var f=s[1];f=parseInt(f),f<100?f>20?f=null:f+=2e3:s[2]&&(f-=543);var l=n.start.impliedComponents.indexOf("year");n.start.impliedComponents.splice(l,1),n.start.year=f,n.text=n.text+s[0]}return u.call(this,t,n)},o}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e={sunday:0,sun:0,monday:1,mon:1,tuesday:2,tue:2,wednesday:3,wed:3,thursday:4,thur:4,thu:4,friday:5,fri:5,saturday:6,sat:6},t=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?(Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)\s*(([0-9]{1,2})(st|nd|rd|th)?\s*(to|\-)\s*)?([0-9]{1,2})(st|nd|rd|th)?(,)?(\s*[0-9]{4})(\s*BE)?/i,n=/((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?(Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)\s*(([0-9]{1,2})(st|nd|rd|th)?\s*(to|\-)\s*)?([0-9]{1,2})(st|nd|rd|th)?([^0-9]|$)/i;chrono.parsers.MonthNameMiddleEndianParser=r}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.Parser(n,r,i);return s.pattern=function(){return t},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=n.substr(i).match(t);if(u==null)return;var n=u[0].substr(u[1].length,u[0].length-u[7].length),a=n;i+=u[1].length;var f=null,l=u[6]||moment(r).year()+"",c=u[3],h=u[4],p=null;u[2]&&(p=e[u[2].toLowerCase()]),c=parseInt(c),h=parseInt(h),l=parseInt(l),l<100&&(l>50?l=l+2500-543:l+=2e3),n=c+"/"+h+"/"+l,f=moment(n,"M/D/YYYY");if(!f||f.date()!=h){f=moment(n,"D/M/YYYY");if(!f||f.date()!=c)return null}return new chrono.ParseResult({referenceDate:r,text:a,index:i,start:{day:f.date(),month:f.month(),year:f.year(),dayOfWeek:p}})},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e={sunday:0,sun:0,monday:1,mon:1,tuesday:2,wednesday:3,wed:3,thursday:4,thur:4,friday:5,fri:5,saturday:6,sat:6},t=/(\W|^)(Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thur|Thursday|Fri|Friday|Sat|Saturday)?\s*\,?\s*([0-9]{1,2})[\/\.]([0-9]{1,2})([\/\.]([0-9]{4}|[0-9]{2}))?(\W|$)/i;chrono.parsers.SlashParser=n}(),function(){function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.parsers.THGeneralDateParser(n,r,i);return s.pattern=function(){return e},s.extract=function(n,i){var s=this.results(),o=s[s.length-1];if(o&&i<o.index+o.text.length)return null;var u=n.substr(i).match(e);if(u==null)return;var n=u[0],a=u[2];a=a.toLowerCase();var f=t[a];if(f===undefined)return null;var l=moment(r).clone(),c=u[3];return c=="นี้"?l.day(f):c=="หน้า"?l.day(f+7):c=="ที่แล้ว"?l.day(f-7):(l.day(f),n=u[0].substr(0,u[0].length-u[3].length)),new chrono.ParseResult({referenceDate:r,text:n,index:i,start:{day:l.date(),month:l.month(),year:l.year()}})},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(วัน)?(อาทิตย์|จันทร์|อังคาร|พุธ|พฤหัสบดี|ศุกร์|เสาร์)(หน้า|นี้|ที่แล้ว|.|$)/i,t={"อาทิตย์":0,"จันทร์":1,"อังคาร":2,"พุธ":3,"พฤหัสบดี":4,"ศุกร์":5,"เสาร์":6};chrono.parsers.THDayOfWeekParser=n}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);return i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=u[0].toLowerCase();a=u[0].substr(0,u[0].length-u[5].length);var f=null;if(a=="วันนี้")f=moment(n).clone();else if(a=="พรุ่งนี้")f=moment(n).clone().add("d",1);else if(a=="เมื่อวาน")f=moment(n).clone().add("d",-1);else if(a=="เมื่อคืน")f=moment(n).clone().add("d",-1);else{var l=u[2];l=parseInt(l),f=moment(n).clone().add("d",-l)}var c=new chrono.ParseResult({referenceDate:n,text:a,index:r,start:{day:f.date(),month:f.month(),year:f.year()}}),h=i.extractTime(t,c);return c=h||c,a.match("คืน")&&(h?h.start.hour<12&&(f.add("d",1),c.start.day=f.date(),c.start.month=f.month(),c.start.year=f.year(),c=new chrono.ParseResult(c)):(c.start.day=f.date()+1,c.start.hour=0,c.start.minute=0,c.start.second=0,c=new chrono.ParseResult(c))),c},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(วันนี้|พรุ่งนี้|เมื่อวาน|เมื่อคืน|([1-9]+)\s*(วัน|คืน)(ก่อน|ที่แล้ว))(\W|$)/i;chrono.parsers.THGeneralDateParser=t}(),function(){function r(r,i,s){s=s||{},i=i||new Date;var o=chrono.parsers.THGeneralDateParser(r,i,s);return o.pattern=function(){return t},o.extract=function(r,s){var o=this.results(),u=o[o.length-1];if(u&&s<u.index+u.text.length)return null;var a=null;r=r.substr(s),originalText=r;var f=r.match(e);if(f&&r.indexOf(f[0])==0){r=f[0],r=f[0].substr(0,f[0].length-f[8].length),originalText=r;var l=f[7];l=parseInt(l),f[3]&&f[3]=="ค.ศ."?l<=30?l+=2e3:l<100&&(l+=1900):(l<543&&(l+=2500),l-=543);var c=n[f[5]];if(typeof c!="number")return null;var h=f[1];h=parseInt(h);var p=l+"-"+(c+1)+"-"+h,a=moment(p,"YYYY-MM-DD");if(a.format("YYYY-M-D")!=p)return null}else{f=r.match(t);if(!f)return null;var r=f[0];r=f[0].substr(0,f[0].length-f[6].length),originalText=r;var c=n[f[5]];if(typeof c!="number")return null;var h=f[1];h=parseInt(h);var p=c+1+"-"+h,a=moment(p,"MM-DD");if(a.format("M-D")!=p)return null;a.year(moment(i).year());var d=a.clone().add("y",1),v=a.clone().add("y",-1);Math.abs(d.diff(moment(i)))<Math.abs(a.diff(moment(i)))?a=d:Math.abs(v.diff(moment(i)))<Math.abs(a.diff(moment(i)))&&(a=v)}if(f[4]){var m=parseInt(f[4]),g=parseInt(f[1]),y=a.clone();return a.date(g),y.date(m),a.format("D")!=f[1]?null:y.format("D")!=f[4]?null:new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:a.date(),month:a.month(),year:a.year()},end:{day:y.date(),month:y.month(),year:y.year()}})}return new chrono.ParseResult({referenceDate:i,text:originalText,index:s,start:{day:a.date(),month:a.month(),year:a.year()}})},o}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/([0-9]{1,2})(\s*(ถึง|\-)?\s*([0-9]{1,2}))?\s+(มกราคม|ม.ค.|กุมภาพัน|ก.พ.|มีนาคม|มี.ค.|เมษายน|เม.ย.|พฤษภาคม|พ.ค.|มิถุนายน|ม.ย.|มิ.ย.|กรกฎาคม|ก.ค.|สิงหาคม|ส.ค.|กันยายน|ก.ย.|ตุลาคม|ต.ค.|พฤศจิกายน|พ.ย.|ธันวาคม|ธ.ค.)(พ.ศ.|ค.ศ.)?(\s+[0-9]{2,4})(\W|$)/i,t=/([0-9]{1,2})(\s*(ถึง|\-)?\s*([0-9]{1,2}))?\s+(มกราคม|ม.ค.|กุมภาพัน|ก.พ.|มีนาคม|มี.ค.|เมษายน|เม.ย.|พฤษภาคม|พ.ค.|มิถุนายน|ม.ย.|มิ.ย.|กรกฏาคม|ก.ค.|สิงหาคม|ส.ค.|กันยายน|ก.ย.|ตุลาคม|ต.ค.|พฤศจิกายน|พ.ย.|ธันวาคม|ธ.ค.)(\W|$)/i,n={"มกราคม":0,"ม.ค.":0,"กุมภาพัน":1,"ก.พ.":1,"มีนาคม":2,"มี.ค.":2,"เมษายน":3,"เม.ย.":4,"พฤษภาคม":4,"พ.ค.":4,"มิถุนายน":5,"มิ.ย.":5,"กรกฎาคม":6,"ก.ค.":6,"สิงหาคม":7,"ส.ค.":7,"กันยายน":8,"ก.ย.":8,"ตุลาคม":9,"ต.ค.":9,"พฤศจิกายน":10,"พ.ย.":10,"ธันวาคม":11,"ธ.ค.":11};chrono.parsers.THMonthNameLittleEndianParser=r}(),function(){function t(t,n,r){r=r||{},n=n||new Date;var i=chrono.Parser(t,n,r);i.pattern=function(){return e},i.extract=function(t,r){var s=this.results(),o=s[s.length-1];if(o&&r<o.index+o.text.length)return null;var u=t.substr(r).match(e);if(u==null){finished=!0;return}var a=u[0].toLowerCase();a=u[0].substr(0,u[0].length-u[3].length);var f=null;if(a=="今日")f=moment(n).clone();else if(a=="明日")f=moment(n).clone().add("d",1);else if(a=="昨日")f=moment(n).clone().add("d",-1);else{var l=u[2];l=parseInt(l),f=moment(n).clone().add("d",-l)}var c=new chrono.ParseResult({referenceDate:n,text:a,index:r,start:{day:f.date(),month:f.month(),year:f.year()}}),h=i.extractTime(t,c);return c=h||c,c};var s=i.extractTime;return i.extractTime=function(e,t){var n=s.call(this,e,t);if(n)return n;var r=/\s*(午前|午後)?\s*([0-9]{1,2})時?(([0-9]{1,2})分)?/i;if(e.length<=t.index+t.text.length)return null;e=e.substr(t.index+t.text.length);var i=e.match(r);if(!i||e.indexOf(i[0])!=0)return null;var o=0,u=0,a=i[2];a=parseInt(a);if(i[1]){if(a>12)return null;i[1]=="午後"&&(a+=12)}if(i[4]){o=i[4],o=parseInt(o);if(o>=60)return null}return t.text=t.text+i[0],t.start.hour==undefined&&(t.start.hour=a,t.start.minute=o,t.start.second=u),t.end&&t.end.hour==undefined&&(t.end.hour=a,t.end.minute=o,t.end.second=u),new chrono.ParseResult(t)},i}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/(今日|昨日|明日|([1-9]+)\s*日前)(\W|$)/i;chrono.parsers.JPGeneralDateParser=t}(),function(){function t(e){var t=e;return t=t.replace(/0/g,"0"),t=t.replace(/1/g,"1"),t=t.replace(/2/g,"2"),t=t.replace(/3/g,"3"),t=t.replace(/4/g,"4"),t=t.replace(/5/g,"5"),t=t.replace(/6/g,"6"),t=t.replace(/7/g,"7"),t=t.replace(/8/g,"8"),t=t.replace(/9/g,"9"),t}function n(n,r,i){i=i||{},r=r||new Date;var s=chrono.parsers.JPGeneralDateParser(n,r,i);s.pattern=function(){return e},s.extract=function(n,i){var o=this.results(),u=o[o.length-1];if(u&&i<u.index+u.text.length)return null;var a=n.substr(i).match(e);if(a==null){finished=!0;return}var f=a[0].toLowerCase(),l=null;f=a[0];var c=a[6];c=t(c),c=parseInt(c);if(!c||c==NaN)return null;var h=a[7];h=t(h),h=parseInt(h);if(!h||h==NaN)return null;var p=a[5];p&&(p=t(p),p=parseInt(p));if(p&&p!==NaN){a[4]=="平成"?p+=1989:p<100&&(p+=2e3);var d=p+"-"+c+"-"+h;l=moment(d,"YYYY-MM-DD");if(l.format("YYYY-M-D")!=d)return null}else{var d=c+"-"+h;l=moment(d,"MM-DD"),l.year(moment(r).year());var v=l.clone().add("y",1),m=l.clone().add("y",-1);Math.abs(v.diff(moment(r)))<Math.abs(l.diff(moment(r)))?l=v:Math.abs(m.diff(moment(r)))<Math.abs(l.diff(moment(r)))&&(l=m)}var g=new chrono.ParseResult({referenceDate:r,text:f,index:i,start:{day:l.date(),month:l.month(),year:l.year()}}),y=s.extractTime(n,g);return g=y||g,g};var o=s.extractTime;return s.extractTime=function(e,t){var n=/(\,|\(|(|\s)*(月|火|水|木|金|土|日)(曜日|曜)?\s*(\,|)|\))/i;if(e.length<=t.index+t.text.length)return null;var r=e.substr(t.index+t.text.length),i=r.match(n);return i&&r.indexOf(i[0])==0&&(t.text=t.text+i[0]),o.call(this,e,t)},s}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";var e=/((同|((平成)?([0-90-9]{2,4})))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i;chrono.parsers.JPStandardDateParser=n}(),function(){function e(e,t,n){var r={};for(var i in chrono.refiners){var s=chrono.refiners[i],o=s.order||0;r[o]=r[o]||[],r[o].push(s)}for(var o in r)r[o].forEach(function(r){t=r.refine(e,t,n)});return t}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.integratedRefine=e}(),function(){function e(e,t,n){if(t.length<2)return t;var r=[];for(var i=0;i<t.length-1;i++){var s=t[i+1],o=t[i],u=e.substring(o.index+o.text.length,s.index),a=/^\s*(of|on|\W)?\s*$/i;if(!u.match(a)){r.push(o);continue}if(o.start.hour===undefined){if(s.start.hour===undefined){r.push(o);continue}var f=new Object(o.start),l=new Object(s.start)}else{if(s.start.hour!==undefined){r.push(o);continue}var l=new Object(o.start),f=new Object(s.start)}f.hour=l.hour,f.minute=l.minute,f.second=l.second,f.impliedComponents=f.impliedComponents||[],o.start=new chrono.DateComponents(f);if(o.end||s.end)o.start.hour!==undefined?(l=o.end||l,f=s.end||f):(f=o.end||f,l=s.end||l),f.hour=l.hour,f.minute=l.minute,f.second=l.second,f.impliedComponents=f.impliedComponents||[],o.end=new chrono.DateComponents(f);o.text=o.text+u+s.text,r.push(new chrono.ParseResult(o)),i++}return t}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.refiners.MergeComponentsRefine={refine:e}}(),function(){function e(e,t,n){if(t.length<2)return t;for(var r=0;r<t.length;r++){var i=null,s=t[r];if(!t[r+1])i=t[r-1];else if(!t[r-1])i=t[r+1];else{var o=t[r+1],u=o.index-(s.index+s.text.length),a=t[r-1],f=s.index-(a.index+a.text.length);f>u?i=o:i=a}var l=s.start.impliedComponents||[],c=i.start.impliedComponents||[];s.start.hour===undefined&&l.push("hour"),s.start.minute===undefined&&l.push("minute"),l.forEach(function(e){c.indexOf(e)<0&&i.start[e]&&(s.start[e]=i.start[e])}),s.start.impliedComponents=l;if(l.indexOf("day")>=0&&l.indexOf("month")>=0&&s.start.dayOfWeek!==undefined&&l.indexOf("dayOfWeek")<0){var h=moment(s.start.date());h.day(s.start.dayOfWeek),s.start.day=h.date(),s.start.month=h.month()}if(s.start.dayOfWeek===undefined||l.indexOf("dayOfWeek")>=0){var h=moment(s.start.date());s.start.dayOfWeek=h.day(),l.indexOf("dayOfWeek")<0&&s.start.impliedComponents.push("dayOfWeek")}}return t}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.refiners.MissingComponentsRefiner={refine:e,order:500}}(),function(){function e(e,n,r){var i=[],s=/(\W)\s*$/,o=/^\s*(\W)/;for(var u=0;u<n.length;u++)t(i,n[u]);return i}function t(e,t){var n=0;while(n<e.length&&e[n].index<t.index)n++;if(n<e.length){var r=n;while(r<e.length&&e[r].index<t.index+t.text.length){if(e[r].text.length>=t.text.length)return e;r++}e.splice(n,r-n)}if(n-1>=0){var i=e[n-1];if(t.index<i.index+i.text.length){if(i.text.length>=t.text.length)return e;e.splice(n-1,1),n-=1}}return e.splice(n,0,t),e}if(typeof chrono=="undefined")throw"Cannot find the chrono main module";chrono.refiners.RemoveReplicateRefiner={refine:e,order:1e3}}()})();

@@ -18,2 +18,4 @@ // Karma configuration

'parsers/*/*.js',
'refiners/*.js',
'refiners/*/*.js',
'test-qunit/Test*.js',

@@ -20,0 +22,0 @@ ];

@@ -7,4 +7,2 @@ // moment.js

(function (undefined) {
/************************************

@@ -1621,16 +1619,2 @@ Constants

module.exports = moment;
}
/*global ender:false */
if (typeof ender === 'undefined') {
// here, `this` means `window` in the browser, or `global` on the server
// add `moment` as a global object via a string identifier,
// for Closure Compiler "advanced" mode
this['moment'] = moment;
}
/*global define:false */
if (typeof define === "function" && define.amd) {
define("moment", [], function () {
return moment;
});
}
}).call(this);
}

@@ -9,5 +9,6 @@ {

},
"version": "0.0.4",
"version": "0.1.1",
"directories" : {
"parser" : "./parser",
"improvers" : "./improvers",
"parsers" : "./parsers",
"test-nodeunit" : "./test-nodeunit",

@@ -14,0 +15,0 @@ "test-qunit" : "./test-qunit"

@@ -11,7 +11,8 @@ /*

var PATTERN = /(\W|^)((\,|\(|\()\s*)?((this|last|next)\s*)?(Sunday|Sun|Monday|Mon|Tuesday|Wednesday|Wed|Thursday|Thur|Friday|Fri|Saturday|Sat)(\s*(\,|\)|\)))?(\W|$)/i;
var DAYS_OFFSET = { 'sunday': 0, 'sun': 0, 'monday': 1, 'mon': 1,'tuesday': 2, 'wednesday': 3, 'wed': 3,
'thursday': 4, 'thur': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,}
var PATTERN = /(\W|^)((\,|\(|\()\s*)?((this|last|next)\s*)?(Sunday|Sun|Monday|Mon|Tuesday|Wednesday|Wed|Thursday|Thurs|Thur|Friday|Fri|Saturday|Sat)(\s*(\,|\)|\)))?(\W|$)/i;
var DAYS_OFFSET = { 'sunday': 0, 'sun': 0, 'monday': 1, 'mon': 1,'tuesday': 2, 'tue':2, 'wednesday': 3, 'wed': 3,
'thursday': 4, 'thurs':4, 'thur': 4, 'thu': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,}
/**

@@ -90,3 +91,4 @@ * DayOfWeekParser - Create a parser object

year:date.year(),
impliedComponents: ['year', 'month', 'day'],
dayOfWeek: offset,
impliedComponents: ['day','month','year'],
}

@@ -93,0 +95,0 @@ })

@@ -11,3 +11,3 @@ /*

var PATTERN = /(today|tomorrow|yesterday|last\s*night|([1-9]+)\s*day(s)\s*ago|([0-9]{1,2})(\.|\:|\:)([0-9]{1,2}))(\W|$)/i;
var PATTERN = /(today|tonight|tomorrow|yesterday|last\s*night|([1-9]+)\s*day(s)\s*ago|([0-9]{1,2})(\.|\:|\:)([0-9]{2}).*|([0-9]{1,2}\s*\W?\s*)?([0-9]{1,2})\s*(AM|PM)|at\s*([0-9]{1,2}|noon|midnight)|(noon|midnight))(\W|$)/i;

@@ -32,10 +32,2 @@ /**

var results = this.results();
var lastResult = results[results.length -1];
if( lastResult ){
//Duplicate...
if( index < lastResult.index + lastResult.text.length )
return null;
}
var matchedTokens = full_text.substr(index).match(PATTERN);

@@ -49,10 +41,13 @@ if(matchedTokens == null){

var text = matchedTokens[0].toLowerCase();
text = matchedTokens[0].substr(0, matchedTokens[0].length - matchedTokens[7].length);
text = matchedTokens[0].substr(0, matchedTokens[0].length - matchedTokens[12].length);
var date = null;
var lowercase_text = text.toLowerCase();
if(lowercase_text == 'today')
if(lowercase_text == 'today' || lowercase_text == 'tonight'){
date = moment(ref).clone();
else if(lowercase_text == 'tomorrow')
date = moment(ref).clone().add('d',1);
}
else if(lowercase_text == 'tomorrow'){
if(moment(ref).hour() < 4) date = moment(ref).clone().hour(6);
else date = moment(ref).clone().add('d',1);
}
else if(lowercase_text == 'yesterday')

@@ -67,2 +62,3 @@ date = moment(ref).clone().add('d',-1);

}else{
while(full_text.charAt(index) == ' ') index++;
impliedComponents = ['year', 'month', 'day'];

@@ -99,3 +95,3 @@ date = moment(ref).clone();

}else if(resultWithTime.start.hour < 12){ //Today's 0am - 12am
}else if(resultWithTime.start.hour < 6){ //Today's 0am - 12am

@@ -107,2 +103,10 @@ date.add('d',1);

result = new chrono.ParseResult(result);
}else if(resultWithTime.start.hour < 12 && !resultWithTime.start.meridiem){ //Today's 0am - 12am
result.start.hour = resultWithTime.start.hour + 12;
result.start.meridiem = 'pm';
result.start.impliedComponents = result.start.impliedComponents || [];
result.start.impliedComponents.push('meridiem')
result = new chrono.ParseResult(result);
}

@@ -109,0 +113,0 @@ }

@@ -31,10 +31,2 @@ /*

var results = this.results();
var lastResult = results[results.length -1];
if( lastResult ){
//Duplicate...
if( index < lastResult.index + lastResult.text.length )
return null;
}
var matchedTokens = text.substr(index).match(PATTERN);

@@ -62,3 +54,4 @@ if(matchedTokens == null){

month:date.month(),
year:date.year()
year:date.year(),
dayOfWeek:date.day()
}

@@ -65,0 +58,0 @@ })

@@ -11,2 +11,5 @@ /*

var DAYS_OFFSET = { 'sunday': 0, 'sun': 0, 'monday': 1, 'mon': 1,'tuesday': 2, 'tue':2, 'wednesday': 3, 'wed': 3,
'thursday': 4, 'thur': 4, 'thu': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,}
var regFullPattern = /((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\s*[0-9]{2,4})(\s*BE)?(\W|$)/i;

@@ -25,8 +28,5 @@ var regShortPattern = /((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?([0-9]{1,2})(st|nd|rd|th)?(\s*(to|\-)?\s*([0-9]{1,2})(st|nd|rd|th)?)?\s*(January|Jan|February|Feb|March|Mar|April|Apr|May|June|Jun|July|Jul|August|Aug|September|Sep|October|Oct|November|Nov|December|Dec)(\W|$)/i;

var results = this.results();
var lastResult = results[results.length -1];
if( lastResult ){ if( index < lastResult.index + lastResult.text.length ) return null; }
var impliedComponents = [];
var date = null;
var dayOfWeek = null;
text = text.substr(index);

@@ -59,76 +59,81 @@ originalText = text;

if(!date) return null;
}else{
matchedTokens = text.match(regShortPattern);
if(!matchedTokens) return null;
//Short Pattern (without years)
var text = matchedTokens[0];
text = matchedTokens[0].substr(0, matchedTokens[0].length - matchedTokens[10].length);
originalText = text;
if(matchedTokens[4]) text = text.replace(matchedTokens[4],'');
if(matchedTokens[5]) text = text.replace(matchedTokens[5],'');
}else{
matchedTokens = text.match(regShortPattern);
if(!matchedTokens) return null;
//Short Pattern (without years)
var text = matchedTokens[0];
text = matchedTokens[0].substr(0, matchedTokens[0].length - matchedTokens[10].length);
originalText = text;
if(matchedTokens[4]) text = text.replace(matchedTokens[4],'');
if(matchedTokens[5]) text = text.replace(matchedTokens[5],'');
date = moment(text,'DD MMMM');
if(!date) return null;
//Find the most appropriated year
impliedComponents.push('year')
date.year(moment(ref).year());
var nextYear = date.clone().add('y',1);
var lastYear = date.clone().add('y',-1);
if( Math.abs(nextYear.diff(moment(ref))) < Math.abs(date.diff(moment(ref))) ){
date = nextYear;
}
else if( Math.abs(lastYear.diff(moment(ref))) < Math.abs(date.diff(moment(ref))) ){
date = lastYear;
}
}
date = moment(text,'DD MMMM');
if(!date) return null;
//Day of week
if(matchedTokens[2]) dayOfWeek = DAYS_OFFSET[matchedTokens[2].toLowerCase()]
//Find the most appropriated year
impliedComponents.push('year')
date.year(moment(ref).year());
var nextYear = date.clone().add('y',1);
var lastYear = date.clone().add('y',-1);
if( Math.abs(nextYear.diff(moment(ref))) < Math.abs(date.diff(moment(ref))) ){
date = nextYear;
// Text text can be 'range' value. Such as '12 - 13 January 2012'
if(matchedTokens[7]){
var endDay = parseInt(matchedTokens[7]);
var startDay = parseInt(matchedTokens[3]);
var endDate = date.clone();
date.date(startDay);
endDate.date(endDay);
//Check leap day or impossible date
if(date.format('D') != matchedTokens[3]) return null;
if(endDate.format('D') != matchedTokens[7]) return null;
return new chrono.ParseResult({
referenceDate:ref,
text:originalText,
index:index,
start:{
day:date.date(),
month:date.month(),
year:date.year(),
dayOfWeek: dayOfWeek,
impliedComponents: impliedComponents
},
end:{
day:endDate.date(),
month:endDate.month(),
year:endDate.year(),
impliedComponents: impliedComponents
}
});
}
else if( Math.abs(lastYear.diff(moment(ref))) < Math.abs(date.diff(moment(ref))) ){
date = lastYear;
else{
//Check leap day or impossible date
if(date.format('D') != matchedTokens[3]) return null;
return new chrono.ParseResult({
referenceDate:ref,
text:originalText,
index:index,
start:{
day:date.date(),
month:date.month(),
year:date.year(),
dayOfWeek: dayOfWeek,
impliedComponents: impliedComponents
}
});
}
}
// Text text can be 'range' value. Such as '12 - 13 January 2012'
if(matchedTokens[7]){
var endDay = parseInt(matchedTokens[7]);
var startDay = parseInt(matchedTokens[3]);
var endDate = date.clone();
date.date(startDay);
endDate.date(endDay);
//Check leap day or impossible date
if(date.format('D') != matchedTokens[3]) return null;
if(endDate.format('D') != matchedTokens[7]) return null;
return new chrono.ParseResult({
referenceDate:ref,
text:originalText,
index:index,
start:{
day:date.date(),
month:date.month(),
year:date.year(),
impliedComponents: impliedComponents
},
end:{
day:endDate.date(),
month:endDate.month(),
year:endDate.year(),
impliedComponents: impliedComponents
}
});
}
else{
//Check leap day or impossible date
if(date.format('D') != matchedTokens[3]) return null;
return new chrono.ParseResult({
referenceDate:ref,
text:originalText,
index:index,
start:{
day:date.date(),
month:date.month(),
year:date.year(),
impliedComponents: impliedComponents
}
});
}
};

@@ -135,0 +140,0 @@

@@ -17,2 +17,4 @@ /*

var DAYS_OFFSET = { 'sunday': 0, 'sun': 0, 'monday': 1, 'mon': 1,'tuesday': 2, 'tue':2, 'wednesday': 3, 'wed': 3,
'thursday': 4, 'thur': 4, 'thu': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,}

@@ -33,12 +35,5 @@ var regFullPattern = /((Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s*,?\s*)?(Jan|January|Feb|February|Mar|March|Apr|April|May|Jun|June|Jul|July|Aug|August|Sep|September|Oct|October|Nov|November|Dec|December)\s*(([0-9]{1,2})(st|nd|rd|th)?\s*(to|\-)\s*)?([0-9]{1,2})(st|nd|rd|th)?(,)?(\s*[0-9]{4})(\s*BE)?/i;

var results = this.results();
var lastResult = results[results.length -1];
if( lastResult ){
//Duplicate...
if( index < lastResult.index + lastResult.text.length )
return null;
}
var impliedComponents = [];
var date = null;
var dayOfWeek = null;
text = text.substr(index);

@@ -64,3 +59,4 @@ originalText = text;

}
text = text.replace(matchedTokens[8],parseInt(matchedTokens[8])+'');
date = moment(text,'MMMM DD YYYY');

@@ -98,12 +94,16 @@ if(!date) return null;

if(matchedTokens[4]){
var endDay = parseInt(matchedTokens[8]);
var startDay = parseInt(matchedTokens[5]);
var endDate = date.clone();
date.date(startDay);
endDate.date(endDay);
//Check leap day or impossible date
//Day of week
if(matchedTokens[2]) dayOfWeek = DAYS_OFFSET[matchedTokens[2].toLowerCase()]
if(matchedTokens[4]){
var endDay = parseInt(matchedTokens[8]);
var startDay = parseInt(matchedTokens[5]);
var endDate = date.clone();
date.date(startDay);
endDate.date(endDay);
//Check leap day or impossible date
if(date.format('D') != matchedTokens[5]) return null;

@@ -120,2 +120,3 @@ if(endDate.format('D') != matchedTokens[8]) return null;

year:date.year(),
dayOfWeek:dayOfWeek,
impliedComponents: impliedComponents

@@ -132,4 +133,4 @@ },

}else{
if(date.format('D') != matchedTokens[8]) return null;
if(date.format('D') != parseInt(matchedTokens[8]) + '') return null;

@@ -144,2 +145,3 @@ return new chrono.ParseResult({

year:date.year(),
dayOfWeek:dayOfWeek,
impliedComponents: impliedComponents

@@ -161,3 +163,3 @@ }

if(text.length <= result.index + result.text.length) return null;
var suffix_text = text.substr(result.index + result.text.length, 15);

@@ -167,2 +169,5 @@ var matchedTokens = suffix_text.match(DAY_OF_WEEK_SUFFIX_PATTERN);

result.text = result.text + matchedTokens[0];
var dayOfWeek = DAYS_OFFSET[matchedTokens[2].toLowerCase()]
result.start.dayOfWeek = dayOfWeek;
}

@@ -169,0 +174,0 @@

@@ -11,4 +11,7 @@ /*

var PATTERN = /(\W|^)([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{4}|[0-9]{2})(\W|$)/i;
var DAYS_OFFSET = { 'sunday': 0, 'sun': 0, 'monday': 1, 'mon': 1,'tuesday': 2, 'wednesday': 3, 'wed': 3,
'thursday': 4, 'thur': 4,'friday': 5, 'fri': 5,'saturday': 6, 'sat': 6,}
var PATTERN = /(\W|^)(Sun|Sunday|Mon|Monday|Tue|Tuesday|Wed|Wednesday|Thur|Thursday|Fri|Friday|Sat|Saturday)?\s*\,?\s*([0-9]{1,2})[\/\.]([0-9]{1,2})([\/\.]([0-9]{4}|[0-9]{2}))?(\W|$)/i;
function SlashParser(text, ref, opt){

@@ -24,39 +27,41 @@

var results = this.results();
var lastResult = results[results.length -1];
if( lastResult ){
//Duplicate...
if( index < lastResult.index + lastResult.text.length )
return null;
}
var matchedTokens = text.substr(index).match(PATTERN);
if(matchedTokens == null)return;
if(matchedTokens == null) return;
if(matchedTokens[1] == '/' || matchedTokens[7] == '/') return;
var text = matchedTokens[0].substr(matchedTokens[1].length, matchedTokens[0].length - matchedTokens[5].length);
var orginalText = text;
index += matchedTokens[1].length;
var date = null;
var years = matchedTokens[4];
years = parseInt(years);
if(years < 100){
if(years > 50){
years = years + 2500 - 543; //BE
}else{
years = years + 2000; //AD
}
text = matchedTokens[2] +'/'+ matchedTokens[3] + '/' +years;
}
date = moment(text,'MM/DD/YYYY');
if(!date || (date.format('D') != matchedTokens[3])) {
date = moment(text,'DD/MM/YYYY');
if(!date || (date.format('D') != matchedTokens[2])) return null;
var text = matchedTokens[0].substr(matchedTokens[1].length, matchedTokens[0].length - matchedTokens[7].length);
var orginalText = text;
if(text.match(/^\d.\d$/)) return;
index += matchedTokens[1].length;
var date = null;
var years = matchedTokens[6] || moment(ref).year() + '';
var month = matchedTokens[3];
var day = matchedTokens[4];
//Day of week
var dayOfWeek = null;
if(matchedTokens[2]) dayOfWeek = DAYS_OFFSET[matchedTokens[2].toLowerCase()]
month = parseInt(month);
day = parseInt(day);
years = parseInt(years);
if(years < 100){
if(years > 50){
years = years + 2500 - 543; //BE
}else{
years = years + 2000; //AD
}
}
text = month+'/'+day+'/'+years
date = moment(text,'M/D/YYYY');
if(!date || (date.date() != day)) {
date = moment(text,'D/M/YYYY');
if(!date || (date.date() != month)) return null;
}
return new chrono.ParseResult({

@@ -69,3 +74,4 @@ referenceDate:ref,

month:date.month(),
year:date.year()
year:date.year(),
dayOfWeek: dayOfWeek,
}

@@ -72,0 +78,0 @@ })

@@ -11,3 +11,3 @@ /*

var PATTERN = /(同|((平成)?([0-90-9]{2,4}))年)?\s*([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i;
var PATTERN = /((同|((平成)?([0-90-9]{2,4})))年\s*)?([0-90-9]{1,2})月\s*([0-90-9]{1,2})日/i;

@@ -67,3 +67,3 @@ function cleanZengakuNumber(str){

var months = matchedTokens[5];
var months = matchedTokens[6];
months = cleanZengakuNumber(months);

@@ -73,3 +73,3 @@ months = parseInt(months);

var days = matchedTokens[6];
var days = matchedTokens[7];
days = cleanZengakuNumber(days);

@@ -79,3 +79,3 @@ days = parseInt(days);

var years = matchedTokens[4];
var years = matchedTokens[5];
if(years){

@@ -88,3 +88,3 @@ years = cleanZengakuNumber(years);

if(matchedTokens[3]=='平成'){
if(matchedTokens[4]=='平成'){
years = years + 1989;

@@ -91,0 +91,0 @@ }

@@ -186,4 +186,4 @@ /*

var SUFFIX_PATTERN = /\s*(at)?\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;
var TO_SUFFIX_PATTERN = /\s*(\-|\~|\〜|to)?\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;
var SUFFIX_PATTERN = /^\s*,?\s*(at|from)?\s*,?\s*([0-9]{1,4}|noon|midnight)((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;
var TO_SUFFIX_PATTERN = /^\s*(\-|\~|\〜|to|\W)\s*([0-9]{1,4})((\.|\:|\:)([0-9]{1,2})((\.|\:|\:)([0-9]{1,2}))?)?(\s*(AM|PM))?/i;

@@ -194,3 +194,3 @@ if(text.length <= result.index + result.text.length) return null;

var matchedTokens = text.match(SUFFIX_PATTERN);
if( !matchedTokens || text.indexOf(matchedTokens[0]) != 0) return null;
if( !matchedTokens ) return null;

@@ -200,3 +200,11 @@ var minute = 0;

var hour = matchedTokens[2];
hour = parseInt(hour);
if(hour.toLowerCase() == 'noon'){
result.start.meridiem = 'pm'
hour = 12;
}else if(hour.toLowerCase() == 'midnight'){
result.start.meridiem = 'am'
hour = 0;
}
else
hour = parseInt(hour);

@@ -224,8 +232,13 @@ if(matchedTokens[5]){

if(hour > 12) return null;
if(matchedTokens[10].toLowerCase() == "am"){
if(hour == 12) hour = 0;
}
if(matchedTokens[10].toLowerCase() == "pm"){
hour += 12;
if(hour != 12) hour += 12;
}
result.start.meridiem = matchedTokens[10].toLowerCase();
}
if(hour >= 12) result.start.meridiem = 'pm';
result.text = result.text + matchedTokens[0];

@@ -242,3 +255,3 @@

var matchedTokens = text.match(TO_SUFFIX_PATTERN)
if( !matchedTokens || text.indexOf(matchedTokens[0]) != 0) {
if( !matchedTokens ) {

@@ -284,11 +297,32 @@ //Time in POINT format.

if(hour > 12) return null;
if(matchedTokens[10].toLowerCase() == "am"){
if(hour == 12) {
hour = 0;
if(!result.end) result.end = new chrono.DateComponents(result.start);
result.end.day += 1;
}
}
if(matchedTokens[10].toLowerCase() == "pm"){
hour += 12;
if(hour != 12) hour += 12;
}
if(!result.start.meridiem){
if(matchedTokens[10].toLowerCase() == "am"){
if(result.start.hour == 12) result.start.hour = 0;
}
if(matchedTokens[10].toLowerCase() == "pm"){
if(result.start.hour != 12) result.start.hour += 12;
}
result.start.meridiem = matchedTokens[10].toLowerCase();
result.start.impliedComponents = result.start.impliedComponents || [];
result.start.impliedComponents.push('meridiem');
}
}
result.text = result.text + matchedTokens[0];
if(!result.end){
result.end = JSON.parse(JSON.stringify(result.start));
result.end = new chrono.DateComponents(result.start);
result.end.hour = hour;

@@ -303,5 +337,42 @@ result.end.minute = minute;

if(matchedTokens[10]) result.end.meridiem = matchedTokens[10].toLowerCase();
if(hour >= 12) result.end.meridiem = 'pm';
return new chrono.ParseResult(result);
}
parser.extractTimezone = function(text, result) {
var PATTERN = /^\s*(GMT|UTC)(\+|\-)(\d{1,2})(\d{2})/;
if(text.length <= result.index + result.text.length) return null;
text = text.substr(result.index + result.text.length);
var matchedTokens = text.match(PATTERN);
if(matchedTokens){
var timezoneOffset = parseInt(matchedTokens[3])*60 + parseInt(matchedTokens[4])
var timezoneOffset = parseInt(matchedTokens[2] + timezoneOffset)*(-1);
if(result.end) result.end.timezoneOffset = timezoneOffset;
result.start.timezoneOffset = timezoneOffset;
result.text += matchedTokens[0];
text = text.substr(matchedTokens[0].length);
}
var PATTERN = /^\s*\(?([A-Z]{3,4})\)?/;
var matchedTokens = text.match(PATTERN);
if(matchedTokens){
var timezoneAbbr = matchedTokens[1];
if(result.start.timezoneOffset === undefined){
//var timezoneOffset = ??
//if(result.end) result.end.timezoneOffset = timezoneOffset;
//result.start.timezoneOffset = timezoneOffset;
//result.text += matchedTokens[0];
}
result.text += matchedTokens[0];
}
return result;
}
/**

@@ -348,40 +419,45 @@ * Parser.extractConcordance

//Search for the pattern
var index = searchingText.search( this.pattern() );
if(index < 0) {
searchingFinished = true;
return null;
}
//Extract the result
var matchedIndex = index + searchingIndex;
var result = this.extract(text, matchedIndex);
if(result){
if(searchingResults.length > 0){
var oldResult = searchingResults[searchingResults.length - 1];
var overlapResult = this.mergeOverlapResult(text, oldResult, result);
result = overlapResult || result;
}
if(result.start.hour === undefined || (result.end && result.end.hour === undefined)){
var timedResult = this.extractTime(text, result);
result = timedResult || result;
}
if(result.start.hour === undefined)
result.startDate = moment(result.startDate).startOf('day').hours(12).toDate();
if(result.end && result.end.hour === undefined)
result.endDate = moment(result.endDate).startOf('day').hours(12).toDate();
this.extractConcordance(text, result);
searchingResults.push(result);
}
//Move on
searchingText = searchingText.substr(index + 1);
searchingIndex = matchedIndex + 1;
return result;
var index = searchingText.search( this.pattern() );
if(index < 0) {
searchingFinished = true;
return null;
}
//Extract the result
var matchedIndex = index + searchingIndex;
var result = this.extract(text, matchedIndex);
if(!result){ // Failed to extract the date result, MOVE ON
searchingText = searchingText.substr(index + 1);
searchingIndex = matchedIndex + 1;
return null;
}
// Try merging overlap results
if(searchingResults.length > 0){
var oldResult = searchingResults[searchingResults.length - 1];
var overlapResult = this.mergeOverlapResult(text, oldResult, result);
result = overlapResult || result;
}
// Try extracting time infomation
if(result.start.hour === undefined || (result.end && result.end.hour === undefined)){
var timedResult = this.extractTime(text, result);
result = timedResult || result;
}
// Try extracting timezone infomation
if(result.start.timezoneOffset === undefined || (result.end && result.end.timezoneOffset === undefined)){
var resultWithTimezone = this.extractTimezone(text, result);
result = resultWithTimezone || result;
}
// Extract Concordance
this.extractConcordance(text, result);
searchingResults.push(result);
searchingText = text.substr(result.index + result.text.length + 1);
searchingIndex = result.index + result.text.length + 1;
return result;
}

@@ -399,6 +475,4 @@

chrono.Parser = Parser;
})();

@@ -48,3 +48,8 @@ /*

this.second = components.second;
this.timezoneOffset = components.timezoneOffset;
this.dayOfWeek = components.dayOfWeek;
if(components.meridiem)
this.meridiem = components.meridiem.toLowerCase(); // am/pm
if(components.impliedComponents && components.impliedComponents.length > 0){

@@ -54,7 +59,23 @@ this.impliedComponents = components.impliedComponents

this.date = function() {
this.isCertain = function(component) {
return (this[component] !== undefined && this[component] !== null)
&& (this.impliedComponents ? this.impliedComponents.indexOf(component) < 0 : true);
}
this.date = function(timezoneOffset) {
if(timezoneOffset === undefined || timezoneOffset === null)
timezoneOffset = new Date().getTimezoneOffset()
timezoneOffset -= (this.timezoneOffset || new Date().getTimezoneOffset());
var dateMoment = moment(new Date(this.year,this.month,this.day));
dateMoment.hours(this.hour);
//If there is only date representation, move the represent time to 12 AM
if(this.hour === undefined || this.hour === null) dateMoment.hours(12);
else dateMoment.hours(this.hour);
dateMoment.minutes(this.minute);
dateMoment.seconds(this.second);
dateMoment.add('minutes', timezoneOffset);
return dateMoment.toDate();

@@ -69,6 +90,8 @@ }

if(result.end){
this.end = new DateComponents(result.end)
this.endDate = this.end.date();
}

@@ -75,0 +98,0 @@

@@ -32,3 +32,3 @@ test("Test - Module Status", function() {

var extract_called = 0;
var expected_result = new chrono.ParseResult({ start:{}, text:'', index:0 });
var expected_result = new chrono.ParseResult({ start:{}, text:'pattern', index:0 });
parser.pattern = function () { return /pattern/ }

@@ -70,2 +70,39 @@ parser.extract = function(text, index) {

test("Test - Create Custom Parser", function() {
var text = '01234-pattern-01234-pattern';
var extract_called = 0;
chrono.parsers.TestCustomParser = function(text, ref, opt) {
var parser = chrono.Parser(text, ref, opt);
parser.pattern = function () { return /pattern/ }
parser.extract = function(text, index) {
var expected_result = new chrono.ParseResult({ start:{}, text:'pattern', index:0 });
if(extract_called == 0){
ok(index == 6, 'matched index0:' + index);
expected_result.index = 6
}
else if(extract_called == 1){
ok(index == 20, 'matched index1:' + index);
expected_result.index = 20
}
extract_called++;
return new Object(expected_result);
}
return parser;
}
var results = chrono.parse(text)
ok(results.length == 2, JSON.stringify(results));
ok(results[0] && results[0].index == 6);
ok(results[1] && results[1].index == 20);
delete chrono.parsers.TestCustomParser;
});
test("Test - Day of Week Parser", function() {

@@ -87,5 +124,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,6,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,6,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -108,5 +145,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,14,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,14,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -128,5 +165,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,10,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,10,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -155,5 +192,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,6,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,6,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -179,5 +216,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,13,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,13,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -205,5 +242,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,13,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,13,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -230,5 +267,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,9,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,9,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -251,5 +288,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,7,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,7,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -271,5 +308,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,10,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,10,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -279,12 +316,10 @@

test("Test - Integrated Parser", function() {
test("Test - Integrated Parsing", function() {
var text = "Let's finish this before this Monday.";
var parser = chrono.IntegratedParser(text, new Date(2012,7,8));
ok(parser, parser)
parser.execAll();
ok(parser.results().length == 1, JSON.stringify( parser.results() ) )
var results = chrono.integratedParse(text, new Date(2012,7,8));
ok(results.length == 1, JSON.stringify( results ) )
var result = parser.results()[0];
var result = results[0];
if(result){

@@ -296,15 +331,12 @@ ok(result.start, JSON.stringify(result.start) )

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,6,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,6,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
var text = "Let's finish this before this 2012-8-9.";
var parser = chrono.IntegratedParser(text, new Date(2012,7,8));
ok(parser, parser)
parser.execAll();
ok(parser.results().length == 1, JSON.stringify( parser.results() ) )
var results = chrono.integratedParse(text, new Date(2012,7,8));
var result = parser.results()[0];
ok(results.length == 1, JSON.stringify( results ) )
var result = results[0];
if(result){

@@ -316,7 +348,7 @@ ok(result.start, JSON.stringify(result.start) )

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,9,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,9,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
});
test("Test - General", function() {
test("Test - General (JP)", function() {

@@ -19,5 +19,5 @@ var text = "今日感じたことを忘れずに";

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,10,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,10,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -40,5 +40,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,9,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,9,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -48,3 +48,3 @@

test("Test - Standard", function() {
test("Test - Standard (JP)", function() {

@@ -66,5 +66,5 @@ var text = "主な株主(2012年3月31日現在)";

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,2,31,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,2,31,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -88,5 +88,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,8,3,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,8,3,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -102,2 +102,22 @@

ok(result.text == "同年4月23日", result.text )
ok(result.start, JSON.stringify(result.start) )
ok(result.start.year == 2012, 'Test Result - (Year) ' + JSON.stringify(result.start) )
ok(result.start.month == 3, 'Test Result - (Month) ' + JSON.stringify(result.start) )
ok(result.start.day == 23, 'Test Result - (Day) ' + JSON.stringify(result.start) )
var resultDate = (result.startDate);
var expectDate = (new Date(2012,3,23,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
var text = "初めて動画が投稿されたのは同 4月23日である";
var results = chrono.parse(text, new Date(2012,7,10));
ok(results.length == 1, JSON.stringify( results ) )
var result = results[0];
if(result){
ok(result.text == "4月23日", result.text )

@@ -110,8 +130,9 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,3,23,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,3,23,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
var text = "平成18年6月1日午前11時から帝国ホテルで行われた、";

@@ -133,6 +154,6 @@ var results = chrono.parse(text, new Date(2012,7,10));

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2007,5,1,11));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2007,5,1,11));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
});

@@ -19,5 +19,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,10,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,10,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -41,5 +41,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,11,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,11,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -62,5 +62,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,9,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,9,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -84,5 +84,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,5,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,5,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -110,5 +110,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(1989,2,28,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(1989,2,28,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -133,5 +133,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,8,22,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,8,22,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -154,5 +154,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,8,22,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,8,22,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)

@@ -165,5 +165,5 @@

var resultMoment = moment(result.endDate);
var expectMoment = moment(new Date(2012,8,30,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.endDate);
var expectDate = (new Date(2012,8,30,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)

@@ -193,5 +193,5 @@ }

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,8,4,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,8,4,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -215,5 +215,5 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,8,11,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,8,11,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}

@@ -237,7 +237,7 @@

var resultMoment = moment(result.startDate);
var expectMoment = moment(new Date(2012,7,28,12));
ok(Math.abs(resultMoment.diff(expectMoment)) < 100000, 'Test result.startDate ' + resultMoment +'/' +expectMoment)
var resultDate = (result.startDate);
var expectDate = (new Date(2012,7,28,12));
ok(Math.abs(expectDate.getTime() - resultDate.getTime()) < 100000, 'Test result.startDate ' + resultDate +'/' +expectDate)
}
})

@@ -89,15 +89,161 @@

ok(result.end.minute == 0)
}
});
test("Test - Email 2", function() {
var text = "This is a reminder for:\nTitle: block for workout\nWhen: Mon Apr 29, 2013 6:30am ? 9:30am Eastern Time\nCalendar:...";
var results = chrono.parse(text, new Date(2013,7,10));
//ok(results.length == 1, 'Unexpected Count' )
//ok(results.length == 1, JSON.stringify( results ))
var result = results[0];
if(result){
ok(result.start.year == 2013);
ok(result.start.month == 3);
ok(result.start.day == 29);
ok(result.start.hour == 6);
ok(result.start.minute == 30);
//ok(result.index == 0, 'Index : '+result.index)
//ok(result.text == 'October 7, 2011', 'Text :'+ result.text )
ok(result.end.year == 2013)
ok(result.end.month == 3)
ok(result.end.day == 29)
ok(result.end.hour == 9)
ok(result.end.minute == 30)
ok(result.text == 'Mon Apr 29, 2013 6:30am ? 9:30am', result.text)
}
});
test("Test - Email 3", function() {
var text = "Hey, 11:15pm at hq works great. I'm at if you need it. See you tomorrow!";
var results = chrono.parse(text, new Date(2013,3,30, 22, 04));
var result = results[0];
if(result){
ok(result.start.year == 2013);
ok(result.start.month == 4);
ok(result.start.day == 1);
ok(result.start.hour == 23);
ok(result.start.minute == 15);
}
});
test("Test - Email 4", function() {
var text = "Begin forwarded message:\nFrom> Date: April 30, 2013, 20:38:26 EDT\nTo:\nSubject: Re: Advice\n\nThanks! Friday lunch would be wonderful--12:30?";
var results = chrono.parse(text, new Date(2013,3,30, 22, 04));
ok(results.length==3, results)
var result = results[0];
if(result){
ok(result.text == 'April 30, 2013, 20:38:26 EDT', result.text +' != '+'April 30, 2013, 20:38:26')
}
var result = results[1];
if(result){
ok(result.text == 'Friday', result.text +'!= Friday')
ok(result.start.year == 2013);
ok(result.start.month == 4, result.start.month);
ok(result.start.day == 3, result.start.day);
ok(result.start.hour == 12);
ok(result.start.minute == 30);
}
var result = results[2];
if(result){
ok(result.text == '12:30', result.text +'!= 12:30')
}
});
test("Test - Email 5", function() {
var text = "Lets pencil in Tuesday at kings fish house at 12?";
var results = chrono.parse(text, new Date(2013, 4, 30, 19, 22));
ok(results.length==2, JSON.stringify(results))
var result = results[0];
if(result){
ok(result.text == 'Tuesday', result.text +' != '+'Tuesday')
ok(result.start.year == 2013);
ok(result.start.month == 5, result.start.month);
ok(result.start.day == 4, result.start.day);
}
var result = results[1];
if(result){
ok(result.text == 'at 12', result.text +' != '+'at 12')
ok(result.start.hour == 12, result.start.day);
}
var text = "@gmail.com> wrote: yes. my friday looks good. same location?";
var results = chrono.parse(text, new Date(2013, 5, 6, 9, 2));
ok(results.length==1, results)
var result = results[0];
if(result){
ok(result.text == 'friday', result.text +' != '+'Tuesday')
ok(result.start.year == 2013);
ok(result.start.month == 5, result.start.month);
ok(result.start.day == 7, result.start.day);
}
var text = "Great! I have your call confirmed for Mon, 5/20 at 4:30pm. You can reach at ";
var results = chrono.parse(text, new Date(2013, 3, 6, 9, 2));
ok(results.length==1, JSON.stringify(results))
var result = results[0];
if(result){
ok(result.text == 'Mon, 5/20 at 4:30pm', result.text +' != '+'Mon, 5/20 at 4:30pm')
ok(result.start.year == 2013);
ok(result.start.month == 4, result.start.month);
ok(result.start.day == 20, result.start.day);
ok(result.start.hour == 16, result.start.month);
ok(result.start.minute == 30, result.start.day);
}
var text = "6 PM on 7/26";
var results = chrono.parse(text, new Date(2013, 3, 6, 9, 2));
var result = results[0];
if(result){
ok(result.start.year == 2013);
ok(result.start.month == 6, result.start);
ok(result.start.day == 26, result.start);
ok(result.start.hour == 18, result.start);
ok(result.start.minute == 00, result.start);
}
var text = "Date: Wed, Jun 19, 2013 at 12:43 AM\nSubject: Mixology Class\n...is holding mixology classes at Roon this Saturday from 3 to 5 PM.";
var results = chrono.parse(text, new Date(2013, 5, 19, 9, 2));
var result = results[1];
if(result){
ok(result.start.year == 2013);
ok(result.start.month == 5, JSON.stringify(result.start));
ok(result.start.day == 22, JSON.stringify(result.start));
ok(result.start.hour == 15, JSON.stringify(result.start));
ok(result.start.minute == 00, JSON.stringify(result.start));
}
});
 

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc