LocalCDN-Firefox-Chrome-Brave/resources/twix.js/1.3.0/twix.min.jsm

1 line
15 KiB
JavaScript

(function(){var hasModule,isArray,makeTwix,slice=[].slice;hasModule=typeof module!=="undefined"&&module!==null&&module.exports!=null&&typeof require==="function";isArray=function(input){return Object.prototype.toString.call(input)==="[object Array]"};makeTwix=function(moment){var Twix;if(moment==null){throw new Error("Can't find moment")}Twix=function(){function Twix(start,end,parseFormat,options){var ref;if(options==null){options={}}if(typeof parseFormat!=="string"){options=parseFormat!=null?parseFormat:{};parseFormat=null}if(typeof options==="boolean"){options={allDay:options}}this._oStart=moment(start,parseFormat,options.parseStrict);this._oEnd=moment(end,parseFormat,options.parseStrict);this.allDay=(ref=options.allDay)!=null?ref:false;this._mutated()}Twix._extend=function(){var attr,first,j,len,other,others;first=arguments[0],others=2<=arguments.length?slice.call(arguments,1):[];for(j=0,len=others.length;j<len;j++){other=others[j];for(attr in other){if(typeof other[attr]!=="undefined"){first[attr]=other[attr]}}}return first};Twix.prototype.start=function(){return this._start.clone()};Twix.prototype.end=function(){return this._end.clone()};Twix.prototype.isSame=function(period){return this._start.isSame(this._end,period)};Twix.prototype.length=function(period,floatingPoint){if(floatingPoint==null){floatingPoint=false}return this._displayEnd.diff(this._start,period,floatingPoint)};Twix.prototype.count=function(period){var end,start;start=this.start().startOf(period);end=this.end().startOf(period);return end.diff(start,period)+1};Twix.prototype.countInner=function(period){var end,ref,start;ref=this._inner(period),start=ref[0],end=ref[1];if(start>=end){return 0}return end.diff(start,period)};Twix.prototype.iterate=function(intervalAmount,period,minHours){var end,hasNext,ref,start;ref=this._prepIterateInputs(intervalAmount,period,minHours),intervalAmount=ref[0],period=ref[1],minHours=ref[2];start=this.start().startOf(period);end=this.end().startOf(period);if(this.allDay){end=end.add(1,"d")}hasNext=function(_this){return function(){return!_this.allDay&&start<=end&&(!minHours||!start.isSame(end)||_this._end.hours()>minHours)||_this.allDay&&start<end}}(this);return this._iterateHelper(period,start,hasNext,intervalAmount)};Twix.prototype.iterateInner=function(intervalAmount,period){var end,hasNext,ref,ref1,start;ref=this._prepIterateInputs(intervalAmount,period),intervalAmount=ref[0],period=ref[1];ref1=this._inner(period,intervalAmount),start=ref1[0],end=ref1[1];hasNext=function(){return start<end};return this._iterateHelper(period,start,hasNext,intervalAmount)};Twix.prototype.humanizeLength=function(){if(this.allDay){if(this.isSame("d")){return"all day"}else{return this._start.from(this.end().add(1,"d"),true)}}else{return this._start.from(this._end,true)}};Twix.prototype.asDuration=function(units){var diff;diff=this._end.diff(this._start);return moment.duration(diff)};Twix.prototype.isPast=function(){return this._lastMilli<moment()};Twix.prototype.isFuture=function(){return this._start>moment()};Twix.prototype.isCurrent=function(){return!this.isPast()&&!this.isFuture()};Twix.prototype.contains=function(mom){if(!moment.isMoment(mom)){mom=moment(mom)}return this._start<=mom&&this._lastMilli>=mom};Twix.prototype.isEmpty=function(){return this._start.isSame(this._displayEnd)};Twix.prototype.overlaps=function(other){return this._displayEnd.isAfter(other._start)&&this._start.isBefore(other._displayEnd)};Twix.prototype.engulfs=function(other){return this._start<=other._start&&this._displayEnd>=other._displayEnd};Twix.prototype.union=function(other){var allDay,newEnd,newStart;allDay=this.allDay&&other.allDay;newStart=this._start<other._start?this._start:other._start;newEnd=this._lastMilli>other._lastMilli?allDay?this._end:this._displayEnd:allDay?other._end:other._displayEnd;return new Twix(newStart,newEnd,allDay)};Twix.prototype.intersection=function(other){var allDay,newEnd,newStart;allDay=this.allDay&&other.allDay;newStart=this._start>other._start?this._start:other._start;newEnd=this._lastMilli<other._lastMilli?allDay?this._end:this._displayEnd:allDay?other._end:other._displayEnd;return new Twix(newStart,newEnd,allDay)};Twix.prototype.xor=function(){var allDay,arr,endTime,i,item,j,k,last,len,len1,o,open,other,others,ref,results,start,t;others=1<=arguments.length?slice.call(arguments,0):[];open=0;start=null;results=[];allDay=function(){var j,len,results1;results1=[];for(j=0,len=others.length;j<len;j++){o=others[j];if(o.allDay){results1.push(o)}}return results1}().length===others.length;arr=[];ref=[this].concat(others);for(i=j=0,len=ref.length;j<len;i=++j){item=ref[i];arr.push({time:item._start,i:i,type:0});arr.push({time:item._displayEnd,i:i,type:1})}arr=arr.sort(function(a,b){return a.time-b.time});for(k=0,len1=arr.length;k<len1;k++){other=arr[k];if(other.type===1){open-=1}if(open===other.type){start=other.time}if(open===(other.type+1)%2){if(start){last=results[results.length-1];if(last&&last._end.isSame(start)){last._oEnd=other.time;last._mutated()}else{endTime=allDay?other.time.clone().subtract(1,"d"):other.time;t=new Twix(start,endTime,allDay);if(!t.isEmpty()){results.push(t)}}}start=null}if(other.type===0){open+=1}}return results};Twix.prototype.difference=function(){var j,len,others,ref,results1,t;others=1<=arguments.length?slice.call(arguments,0):[];ref=this.xor.apply(this,others).map(function(_this){return function(i){return _this.intersection(i)}}(this));results1=[];for(j=0,len=ref.length;j<len;j++){t=ref[j];if(!t.isEmpty()&&t.isValid()){results1.push(t)}}return results1};Twix.prototype.split=function(){var args,dur,end,final,i,mom,start,time,times,vals;args=1<=arguments.length?slice.call(arguments,0):[];end=start=this.start();if(moment.isDuration(args[0])){dur=args[0]}else if(!moment.isMoment(args[0])&&!isArray(args[0])&&typeof args[0]==="object"||typeof args[0]==="number"&&typeof args[1]==="string"){dur=moment.duration(args[0],args[1])}else if(isArray(args[0])){times=args[0]}else{times=args}if(times){times=function(){var j,len,results1;results1=[];for(j=0,len=times.length;j<len;j++){time=times[j];results1.push(moment(time))}return results1}();times=function(){var j,len,results1;results1=[];for(j=0,len=times.length;j<len;j++){mom=times[j];if(mom.isValid()&&mom>=start){results1.push(mom)}}return results1}().sort(function(a,b){return a.valueOf()-b.valueOf()})}if(dur&&dur.asMilliseconds()===0||times&&times.length===0){return[this]}vals=[];i=0;final=this._displayEnd;while(start<final&&(times==null||times[i])){end=dur?start.clone().add(dur):times[i].clone();end=moment.min(final,end);if(!start.isSame(end)){vals.push(moment.twix(start,end))}start=end;i+=1}if(!end.isSame(this._displayEnd)&&times){vals.push(moment.twix(end,this._displayEnd))}return vals};Twix.prototype.divide=function(parts){return this.split(this.length()/parts,"ms").slice(0,+(parts-1)+1||9e9)};Twix.prototype.isValid=function(){return this._start.isValid()&&this._end.isValid()&&this._start<=this._displayEnd};Twix.prototype.equals=function(other){return other instanceof Twix&&this.allDay===other.allDay&&this._start.valueOf()===other._start.valueOf()&&this._end.valueOf()===other._end.valueOf()};Twix.prototype.toString=function(){return"{start: "+this._start.format()+", end: "+this._end.format()+", allDay: "+(this.allDay?"true":"false")+"}"};Twix.prototype.toArray=function(intervalAmount,period,minHours){var itr,range;itr=this.iterate(intervalAmount,period,minHours);range=[];while(itr.hasNext()){range.push(itr.next())}return range};Twix.prototype.simpleFormat=function(momentOpts,inopts){var options,s;options={allDay:"(all day)",template:Twix.formatTemplate};Twix._extend(options,inopts||{});s=options.template(this._start.format(momentOpts),this._end.format(momentOpts));if(this.allDay&&options.allDay){s+=" "+options.allDay}return s};Twix.prototype.format=function(inopts){var americanish,atomicMonthDate,common_bucket,end_bucket,fold,format,fs,global_first,goesIntoTheMorning,j,len,localFormat,momentHourFormat,needDate,needsMeridiem,options,process,start_bucket,together;if(this.isEmpty()){return""}momentHourFormat=this._start.localeData()._longDateFormat["LT"][0];options={groupMeridiems:true,spaceBeforeMeridiem:true,spaceBeforeMonth:true,spaceBeforeDay:true,showDayOfWeek:false,showYearFirst:false,hideTime:false,hideYear:false,implicitMinutes:true,implicitDate:false,implicitYear:true,yearFormat:"YYYY",monthFormat:"MMM",weekdayFormat:"ddd",dayFormat:"D",meridiemFormat:"A",hourFormat:momentHourFormat,minuteFormat:"mm",allDay:"all day",explicitAllDay:false,lastNightEndsAt:0,template:Twix.formatTemplate};Twix._extend(options,inopts||{});fs=[];needsMeridiem=options.hourFormat&&options.hourFormat[0]==="h";localFormat=this._start.localeData()._longDateFormat["L"];americanish=localFormat.indexOf("M")<localFormat.indexOf("D");goesIntoTheMorning=options.lastNightEndsAt>0&&!this.allDay&&this.end().startOf("d").valueOf()===this.start().add(1,"d").startOf("d").valueOf()&&this._start.hours()>12&&this._end.hours()<options.lastNightEndsAt;needDate=!options.hideDate&&(!options.implicitDate||this.start().startOf("d").valueOf()!==moment().startOf("d").valueOf()||!(this.isSame("d")||goesIntoTheMorning));atomicMonthDate=!(this.allDay||options.hideTime);if(this.allDay&&this.isSame("d")&&(options.implicitDate||options.explicitAllDay)){fs.push({name:"all day simple",fn:function(){return options.allDay},pre:" ",slot:0})}if(needDate&&!options.hideYear&&(!options.implicitYear||this._start.year()!==moment().year()||!this.isSame("y"))){fs.push({name:"year",fn:function(date){return date.format(options.yearFormat)},pre:americanish?", ":" ",slot:options.showYearFirst?-1:4})}if(atomicMonthDate&&needDate){fs.push({name:"month-date",fn:function(date){var format;format=americanish?options.monthFormat+" "+options.dayFormat:options.dayFormat+" "+options.monthFormat;return date.format(format)},ignoreEnd:function(){return goesIntoTheMorning},pre:" ",slot:2})}if(!atomicMonthDate&&needDate){fs.push({name:"month",fn:function(date){return date.format(options.monthFormat)},pre:options.spaceBeforeMonth?" ":"",slot:americanish?2:3})}if(!atomicMonthDate&&needDate){fs.push({name:"date",fn:function(date){return date.format(options.dayFormat)},pre:options.spaceBeforeDay?" ":"",slot:americanish?3:2})}if(needDate&&options.showDayOfWeek){fs.push({name:"day of week",fn:function(date){return date.format(options.weekdayFormat)},pre:" ",slot:1})}if(options.groupMeridiems&&needsMeridiem&&!this.allDay&&!options.hideTime){fs.push({name:"meridiem",fn:function(t){return t.format(options.meridiemFormat)},slot:6,pre:options.spaceBeforeMeridiem?" ":""})}if(!this.allDay&&!options.hideTime){fs.push({name:"time",fn:function(date){var str;str=date.minutes()===0&&options.implicitMinutes&&needsMeridiem?date.format(options.hourFormat):date.format(options.hourFormat+":"+options.minuteFormat);if(!options.groupMeridiems&&needsMeridiem){if(options.spaceBeforeMeridiem){str+=" "}str+=date.format(options.meridiemFormat)}return str},slot:5,pre:", "})}start_bucket=[];end_bucket=[];common_bucket=[];together=true;process=function(_this){return function(format){var end_str,start_group,start_str;start_str=format.fn(_this._start);end_str=format.ignoreEnd&&format.ignoreEnd()?start_str:format.fn(_this._end);start_group={format:format,value:function(){return start_str}};if(end_str===start_str&&together){return common_bucket.push(start_group)}else{if(together){together=false;common_bucket.push({format:{slot:format.slot,pre:""},value:function(){return options.template(fold(start_bucket),fold(end_bucket,true).trim())}})}start_bucket.push(start_group);return end_bucket.push({format:format,value:function(){return end_str}})}}}(this);for(j=0,len=fs.length;j<len;j++){format=fs[j];process(format)}global_first=true;fold=function(array,skip_pre){var k,len1,local_first,ref,section,str;local_first=true;str="";ref=array.sort(function(a,b){return a.format.slot-b.format.slot});for(k=0,len1=ref.length;k<len1;k++){section=ref[k];if(!global_first){if(local_first&&skip_pre){str+=" "}else{str+=section.format.pre}}str+=section.value();global_first=false;local_first=false}return str};return fold(common_bucket)};Twix.prototype._iterateHelper=function(period,iter,hasNext,intervalAmount){return{next:function(){var val;if(!hasNext()){return null}else{val=iter.clone();iter.add(intervalAmount,period);return val}},hasNext:hasNext}};Twix.prototype._prepIterateInputs=function(){var inputs,intervalAmount,minHours,period,ref,ref1;inputs=1<=arguments.length?slice.call(arguments,0):[];if(typeof inputs[0]==="number"){return inputs}if(typeof inputs[0]==="string"){period=inputs.shift();intervalAmount=(ref=inputs.pop())!=null?ref:1;if(inputs.length){minHours=(ref1=inputs[0])!=null?ref1:false}}if(moment.isDuration(inputs[0])){period="ms";intervalAmount=inputs[0].as(period)}return[intervalAmount,period,minHours]};Twix.prototype._inner=function(period,intervalAmount){var durationCount,durationPeriod,end,modulus,start;if(period==null){period="ms"}if(intervalAmount==null){intervalAmount=1}start=this.start();end=this._displayEnd.clone();if(start>start.clone().startOf(period)){start.startOf(period).add(intervalAmount,period)}if(end<end.clone().endOf(period)){end.startOf(period)}durationPeriod=start.twix(end).asDuration(period);durationCount=durationPeriod.get(period);modulus=durationCount%intervalAmount;end.subtract(modulus,period);return[start,end]};Twix.prototype._mutated=function(){this._start=this.allDay?this._oStart.clone().startOf("d"):this._oStart;this._lastMilli=this.allDay?this._oEnd.clone().endOf("d"):this._oEnd;this._end=this.allDay?this._oEnd.clone().startOf("d"):this._oEnd;return this._displayEnd=this.allDay?this._end.clone().add(1,"d"):this._end};return Twix}();Twix._extend(moment.locale(),{_twix:Twix.defaults});Twix.formatTemplate=function(leftSide,rightSide){return leftSide+" - "+rightSide};moment.twix=function(){return function(func,args,ctor){ctor.prototype=func.prototype;var child=new ctor,result=func.apply(child,args);return Object(result)===result?result:child}(Twix,arguments,function(){})};moment.fn.twix=function(){return function(func,args,ctor){ctor.prototype=func.prototype;var child=new ctor,result=func.apply(child,args);return Object(result)===result?result:child}(Twix,[this].concat(slice.call(arguments)),function(){})};moment.fn.forDuration=function(duration,allDay){return new Twix(this,this.clone().add(duration),allDay)};if(moment.duration.fn){moment.duration.fn.afterMoment=function(startingTime,allDay){return new Twix(startingTime,moment(startingTime).clone().add(this),allDay)};moment.duration.fn.beforeMoment=function(startingTime,allDay){return new Twix(moment(startingTime).clone().subtract(this),startingTime,allDay)}}moment.twixClass=Twix;return Twix};if(hasModule){return module.exports=makeTwix(require("moment"))}if(typeof define==="function"&&define.amd){define("twix",["moment"],function(moment){return makeTwix(moment)})}if(this.moment){this.Twix=makeTwix(this.moment)}else if(typeof moment!=="undefined"&&moment!==null){this.Twix=makeTwix(moment)}}).call(this);