@wernfried/daterangepicker 4.16.10 → 4.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API_Doc.md +8 -0
- package/README.md +10 -670
- package/dist/esm/daterangepicker.js +31 -16
- package/dist/esm/daterangepicker.min.js +1 -1
- package/dist/global/daterangepicker.js +31 -16
- package/dist/global/daterangepicker.min.js +1 -1
- package/package.json +7 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var DateRangePicker=(()=>{const h=luxon.DateTime,D=luxon.Duration,S=luxon.Info,P=luxon.Settings;class I{#t=null;#e=null;constructor(s,t,a){this.parentEl="body",this.element=$(s),this.#t=h.now().startOf("day"),this.#e=h.now().plus({day:1}).startOf("day"),this.minDate=null,this.maxDate=null,this.maxSpan=null,this.minSpan=null,this.defaultSpan=null,this.initalMonth=h.now().startOf("month"),this.autoApply=!1,this.singleDatePicker=!1,this.singleMonthView=!1,this.showDropdowns=!1,this.minYear=h.now().minus({year:100}).year,this.maxYear=h.now().plus({year:100}).year,this.showWeekNumbers=!1,this.showISOWeekNumbers=!1,this.showCustomRangeLabel=!0,this.showLabel=!$(this.element).is("input:text"),this.timePicker=!1;const n=new Intl.DateTimeFormat(h.now().locale,{hour:"numeric"}).resolvedOptions();if(this.timePicker24Hour=!n.hour12,this.timePickerStepSize=D.fromObject({minutes:1}),this.linkedCalendars=!0,this.autoUpdateInput=!0,this.alwaysShowCalendars=!1,this.isInvalidDate=null,this.isInvalidTime=null,this.isCustomDate=null,this.onOutsideClick="apply",this.opens=this.element.hasClass("pull-right")?"left":"right",this.drops=this.element.hasClass("dropup")?"up":"down",this.buttonClasses="btn btn-sm",this.applyButtonClasses="btn-primary",this.cancelButtonClasses="btn-default",this.weekendClasses="weekend",this.weekendDayClasses="weekend-day",this.todayClasses="today",this.altInput=null,this.altFormat=null,this.externalStyle=null,this.ranges={},this.locale={direction:"ltr",format:h.DATE_SHORT,separator:" - ",applyLabel:"Apply",cancelLabel:"Cancel",weekLabel:"W",customRangeLabel:"Custom Range",daysOfWeek:S.weekdays("short"),monthNames:S.months("long"),firstDay:S.getStartOfWeek(),durationFormat:null},this.callback=function(){},this.isShowing=!1,this.leftCalendar={},this.rightCalendar={},(typeof t!="object"||t===null)&&(t={}),t=$.extend(this.element.data(),t),typeof t.singleDatePicker=="boolean"&&(this.singleDatePicker=t.singleDatePicker),!this.singleDatePicker&&typeof t.singleMonthView=="boolean"?this.singleMonthView=t.singleMonthView:this.singleMonthView=!1,typeof t.externalStyle=="string"&&["bulma"].includes(t.externalStyle)&&(this.externalStyle=t.externalStyle),typeof t.template!="string"&&!(t.template instanceof $)){let e=['<div class="daterangepicker">','<div class="ranges"></div>','<div class="drp-calendar left">','<table class="calendar-table">',"<thead></thead>","<tbody></tbody>","<tfoot>",'<tr class="calendar-time start-time"></tr>'];this.singleMonthView&&e.push('<tr class="calendar-time end-time"></tr>'),e.push("</tfoot>","</table>","</div>"),e.push('<div class="drp-calendar right">','<table class="calendar-table">',"<thead></thead>","<tbody></tbody>","<tfoot>",'<tr class="calendar-time end-time"></tr>',"</tfoot>","</table>","</div>"),e.push('<div class="drp-buttons">','<div class="drp-duration-label"></div>','<div class="drp-selected"></div>'),this.externalStyle==="bulma"?e.push('<div class="buttons">','<button class="cancelBtn button is-small" type="button"></button>','<button class="applyBtn button is-small" disabled type="button"></button>',"</div>"):e.push("<div>",'<button class="cancelBtn" type="button"></button>','<button class="applyBtn" disabled type="button"></button>',"</div>"),e.push("</div></div>"),t.template=e.join("")}if(this.parentEl=t.parentEl&&$(t.parentEl).length?$(t.parentEl):$(this.parentEl),this.container=$(t.template).appendTo(this.parentEl),typeof t.timePicker=="boolean"&&(this.timePicker=t.timePicker),this.timePicker&&(this.locale.format=h.DATETIME_SHORT),typeof t.locale=="object"){for(let e of["separator","applyLabel","cancelLabel","weekLabel"])typeof t.locale[e]=="string"&&(this.locale[e]=t.locale[e]);if(typeof t.locale.direction=="string"&&(["rtl","ltr"].includes(t.locale.direction)?this.locale.direction=t.locale.direction:console.error("Option 'options.locale.direction' must be 'rtl' or 'ltr'")),["string","object"].includes(typeof t.locale.format)&&(this.locale.format=t.locale.format),Array.isArray(t.locale.daysOfWeek)&&(t.locale.daysOfWeek.some(e=>typeof e!="string")?console.error("Option 'options.locale.daysOfWeek' must be an array of strings"):this.locale.daysOfWeek=t.locale.daysOfWeek.slice()),Array.isArray(t.locale.monthNames)&&(t.locale.monthNames.some(e=>typeof e!="string")?console.error("Option 'locale.monthNames' must be an array of strings"):this.locale.monthNames=t.locale.monthNames.slice()),typeof t.locale.firstDay=="number"&&(this.locale.firstDay=t.locale.firstDay),typeof t.locale.customRangeLabel=="string"){var r=document.createElement("textarea");r.innerHTML=t.locale.customRangeLabel;var i=r.value;this.locale.customRangeLabel=i}["string","object","function"].includes(typeof t.locale.durationFormat)&&t.locale.durationFormat!=null&&(this.locale.durationFormat=t.locale.durationFormat)}this.container.addClass(this.locale.direction);for(let e of["timePicker24Hour","showWeekNumbers","showISOWeekNumbers","showDropdowns","linkedCalendars","showCustomRangeLabel","alwaysShowCalendars","autoApply","autoUpdateInput","showLabel"])typeof t[e]=="boolean"&&(this[e]=t[e]);for(let e of["applyButtonClasses","cancelButtonClasses","weekendClasses","weekendDayClasses","todayClasses"])typeof t[e]=="string"?this[e]=t[e]:["weekendClasses","weekendDayClasses","todayClasses"].includes(e)&&t[e]===null&&(this[e]=t[e]);for(let e of["minYear","maxYear"])typeof t[e]=="number"&&(this[e]=t[e]);for(let e of["isInvalidDate","isInvalidTime","isCustomDate"])typeof t[e]=="function"?this[e]=t[e]:this[e]=function(){return!1};if(!this.singleDatePicker){for(let e of["minSpan","maxSpan","defaultSpan"])["string","number","object"].includes(typeof t[e])&&(D.isDuration(t[e])&&t[e].isValid?this[e]=t[e]:D.fromISO(t[e]).isValid?this[e]=D.fromISO(t[e]):typeof t[e]=="number"&&D.fromObject({seconds:t[e]}).isValid?this[e]=D.fromObject({seconds:t[e]}):t[e]===null?this[e]=null:console.error(`Option '${key}' is not valid`));this.minSpan&&this.maxSpan&&this.minSpan>this.maxSpan&&(this.minSpan=null,this.maxSpan=null,console.warn("Ignore option 'minSpan' and 'maxSpan', because 'minSpan' must be smaller than 'maxSpan'")),this.defaultSpan&&this.minSpan&&this.minSpan>this.defaultSpan?(this.defaultSpan=null,console.warn("Ignore option 'defaultSpan', because 'defaultSpan' must be greater than 'minSpan'")):this.defaultSpan&&this.maxSpan&&this.maxSpan<this.defaultSpan&&(this.defaultSpan=null,console.warn("Ignore option 'defaultSpan', because 'defaultSpan' must be smaller than 'maxSpan'"))}if(this.timePicker){if(typeof t.timePickerSeconds=="boolean"&&(this.timePickerStepSize=D.fromObject({[t.timePickerSeconds?"seconds":"minutes"]:1})),typeof t.timePickerIncrement=="number"&&(this.timePickerStepSize=D.fromObject({minutes:t.timePickerIncrement})),["string","object","number"].includes(typeof t.timePickerStepSize)){let e;D.isDuration(t.timePickerStepSize)&&t.timePickerStepSize.isValid?e=t.timePickerStepSize:D.fromISO(t.timePickerStepSize).isValid?e=D.fromISO(t.timePickerStepSize):typeof t.timePickerStepSize=="number"&&D.fromObject({seconds:t.timePickerStepSize}).isValid?e=D.fromObject({seconds:t.timePickerStepSize}):(console.error("Option 'timePickerStepSize' is not valid"),e=this.timePickerStepSize);var c=[];for(let l of["minutes","seconds"])c.push(...[1,2,3,4,5,6,10,12,15,20,30].map(d=>D.fromObject({[l]:d})));c.push(...[1,2,3,4,6].map(l=>D.fromObject({hours:l}))),this.timePicker24Hour&&c.push(...[8,12].map(l=>D.fromObject({hours:l}))),c.some(l=>e.rescale().equals(l))?this.timePickerStepSize=e.rescale():console.error(`Option 'timePickerStepSize' ${JSON.stringify(e.toObject())} is not valid`)}this.maxSpan&&this.timePickerStepSize>this.maxSpan&&console.error(`Option 'timePickerStepSize' ${JSON.stringify(this.timePickerStepSize.toObject())} must be smaller than 'maxSpan'`),this.timePickerOpts={showMinutes:this.timePickerStepSize<D.fromObject({hours:1}),showSeconds:this.timePickerStepSize<D.fromObject({minutes:1}),hourStep:this.timePickerStepSize>=D.fromObject({hours:1})?this.timePickerStepSize.hours:1,minuteStep:this.timePickerStepSize>=D.fromObject({minutes:1})?this.timePickerStepSize.minutes:1,secondStep:this.timePickerStepSize.seconds}}for(let e of["startDate","endDate","minDate","maxDate","initalMonth"])if(!(e==="endDate"&&this.singleDatePicker)){if(typeof t[e]=="object")h.isDateTime(t[e])&&t[e].isValid?this[e]=t[e]:t[e]instanceof Date?this[e]=h.fromJSDate(t[e]):t[e]===null?this[e]=null:console.error(`Option '${e}' must be a luxon.DateTime or Date or string`);else if(typeof t[e]=="string"){const l=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format);if(h.fromISO(t[e]).isValid)this[e]=h.fromISO(t[e]);else if(h.fromFormat(t[e],l,{locale:h.now().locale}).isValid)this[e]=h.fromFormat(t[e],l,{locale:h.now().locale});else{const d=h.fromFormat(t[e],l,{locale:h.now().locale}).invalidExplanation;console.error(`Option '${e}' is not a valid string: ${d}`)}}}if($(this.element).is("input:text")){const e=$(this.element).val();if(e!=""){const l=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format);if(this.singleDatePicker&&typeof t.startDate>"u"){const d=h.fromFormat(e,l,{locale:h.now().locale});d.isValid?this.#t=d:console.error(`Value "${e}" in <input> is not a valid string: ${d.invalidExplanation}`)}else if(!this.singleDatePicker&&typeof t.startDate>"u"&&typeof t.endDate>"u"){const d=e.split(this.locale.separator);if(d.length===2){const u=h.fromFormat(d[0],l,{locale:h.now().locale}),m=h.fromFormat(d[1],l,{locale:h.now().locale});u.isValid&&m.isValid?(this.#t=u,this.#e=m):console.error(`Value in <input> is not a valid string: ${u.invalidExplanation} - ${m.invalidExplanation}`)}else console.error(`Value "${e}" in <input> is not a valid string`)}}}if(this.timePicker||(this.minDate&&(this.minDate=this.minDate.startOf("day")),this.maxDate&&(this.maxDate=this.maxDate.endOf("day"))),this.singleDatePicker?this.#e=this.#t:this.#e<this.#t&&console.error(`Option 'endDate' ${this.#e} must not be earlier than 'startDate' ${this.#t}`),["function","string"].includes(typeof t.altFormat)&&(this.altFormat=t.altFormat),typeof t.altInput=="string"||Array.isArray(t.altInput))if(this.singleDatePicker&&typeof t.altInput=="string")this.altInput=$(t.altInput).is("input:text")?t.altInput:null;else if(!this.singleDatePicker&&Array.isArray(t.altInput)&&t.altInput.length===2)this.altInput=t.altInput.every(e=>typeof e=="string"&&$(e).is("input:text"))?t.altInput:null;else{const e='Value of "altInput" must be '+(this.singleDatePicker?"a string":"an array of two string elements");console.error(`Option 'altInput' ${JSON.stringify(t.altInput)} is not valid
|
|
2
|
-
`,e)}if(t.warnings!==void 0&&console.warn("Option 'warnings' not used anymore. Listen to event 'violated.daterangepicker'"),!this.#t&&this.initalMonth)this.#e=null,this.timePicker&&console.error("Option 'initalMonth' works only with 'timePicker: false'");else{const e=this.validateInput(null,!1);if(e!=null){let l=e.startDate.violations;if(l.length>0)if(l.some(d=>d.reason.startsWith("isInvalid")))console.error(`Value of startDate "${this.#t}" violates ${l.find(d=>d.reason.startsWith("isInvalid")).reason}`);else{const d=l.filter(u=>u.new!=null).at(-1).new;this.#t=d}if(!this.singleDatePicker&&(l=e.endDate.violations.filter(d=>d.new!=null),l.length>0))if(l.some(d=>d.reason.startsWith("isInvalid")))console.error(`Value of endDate "${this.#e}" violates ${l.find(d=>d.reason.startsWith("isInvalid")).reason}`);else{const d=l.filter(u=>u.new!=null).at(-1).new;this.#e=d}}}if(typeof t.opens=="string"&&(["left","right","center"].includes(t.opens)?this.opens=t.opens:console.error("Option 'options.opens' must be 'left', 'right' or 'center'")),typeof t.drops=="string"&&(["drop","down","auto"].includes(t.drops)?this.drops=t.drops:console.error("Option 'options.drops' must be 'drop', 'down' or 'auto'")),Array.isArray(t.buttonClasses)?this.buttonClasses=t.buttonClasses.join(" "):typeof t.buttonClasses=="string"&&(this.buttonClasses=t.buttonClasses),typeof t.onOutsideClick=="string"&&(["cancel","apply"].includes(t.onOutsideClick)?this.onOutsideClick=t.onOutsideClick:console.error("Option 'options.onOutsideClick' must be 'cancel' or 'apply'")),this.locale.firstDay!=1){let e=this.locale.firstDay;for(;e>1;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--}if(!this.singleDatePicker&&typeof t.ranges=="object"){for(let e in t.ranges){let l,d;if(["string","object"].includes(typeof t.ranges[e][0])&&(h.isDateTime(t.ranges[e][0])&&t.ranges[e][0].isValid?l=t.ranges[e][0]:t.ranges[e][0]instanceof Date?l=h.fromJSDate(t.ranges[e][0]):typeof t.ranges[e][0]=="string"&&h.fromISO(t.ranges[e][0]).isValid?l=h.fromISO(t.ranges[e][0]):console.error(`Option ranges['${e}'] is not am array of valid ISO-8601 string or luxon.DateTime or Date`)),["string","object"].includes(typeof t.ranges[e][1])&&(h.isDateTime(t.ranges[e][1])&&t.ranges[e][1].isValid?d=t.ranges[e][1]:t.ranges[e][1]instanceof Date?d=h.fromJSDate(t.ranges[e][1]):typeof t.ranges[e][1]=="string"&&h.fromISO(t.ranges[e][1]).isValid?d=h.fromISO(t.ranges[e][1]):console.error(`Option ranges['${e}'] is not a valid ISO-8601 string or luxon.DateTime or Date`)),!(l==null||d==null)){t.ranges[e]=[l,d];var r=document.createElement("textarea");r.innerHTML=e,this.ranges[r.value]=[l,d]}}var o="<ul>";for(let e in this.ranges)o+='<li data-range-key="'+e+'">'+e+"</li>";this.showCustomRangeLabel&&(o+='<li data-range-key="'+this.locale.customRangeLabel+'">'+this.locale.customRangeLabel+"</li>"),o+="</ul>",this.container.find(".ranges").prepend(o),this.container.addClass("show-ranges")}typeof a=="function"&&(this.callback=a),this.timePicker||(this.#t&&(this.#t=this.#t.startOf("day")),this.#e&&(this.#e=this.#e.endOf("day")),this.container.find(".calendar-time").hide()),this.timePicker&&this.autoApply&&(this.autoApply=!1),this.autoApply&&this.container.addClass("auto-apply"),(this.singleDatePicker||this.singleMonthView)&&(this.container.addClass("single"),this.container.find(".drp-calendar.left").addClass("single"),this.container.find(".drp-calendar.left").show(),this.container.find(".drp-calendar.right").hide(),!this.timePicker&&this.autoApply&&this.container.addClass("auto-apply")),(typeof t.ranges>"u"&&!this.singleDatePicker||this.alwaysShowCalendars)&&this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.container.find(".applyBtn, .cancelBtn").addClass(this.buttonClasses),this.applyButtonClasses.length&&this.container.find(".applyBtn").addClass(this.applyButtonClasses),this.cancelButtonClasses.length&&this.container.find(".cancelBtn").addClass(this.cancelButtonClasses),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".drp-calendar").on("click.daterangepicker",".prev",this.clickPrev.bind(this)).on("click.daterangepicker",".next",this.clickNext.bind(this)).on("mousedown.daterangepicker","td.available",this.clickDate.bind(this)).on("mouseenter.daterangepicker","td.available",this.hoverDate.bind(this)).on("change.daterangepicker","select.yearselect",this.monthOrYearChanged.bind(this)).on("change.daterangepicker","select.monthselect",this.monthOrYearChanged.bind(this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",this.timeChanged.bind(this)),this.container.find(".ranges").on("click.daterangepicker","li",this.clickRange.bind(this)).on("mouseenter.daterangepicker","li",this.hoverRange.bind(this)).on("mouseleave.daterangepicker","li",this.leaveRange.bind(this)),this.container.find(".drp-buttons").on("click.daterangepicker","button.applyBtn",this.clickApply.bind(this)).on("click.daterangepicker","button.cancelBtn",this.clickCancel.bind(this)),this.element.is("input")||this.element.is("button")?this.element.on({"click.daterangepicker":this.show.bind(this),"focus.daterangepicker":this.show.bind(this),"keyup.daterangepicker":this.elementChanged.bind(this),"keydown.daterangepicker":this.keydown.bind(this)}):(this.element.on("click.daterangepicker",this.toggle.bind(this)),this.element.on("keydown.daterangepicker",this.toggle.bind(this))),this.updateElement()}get startDate(){return this.#t}get endDate(){return this.singleDatePicker?null:this.#e}set startDate(s){this.#t=s}set endDate(s){this.#e=s}setStartDate(s,t=!0){if(!this.singleDatePicker)return setRange(s,this.#e,t);const a=this.#t;let n=this.parseDate(s);if(n.equals(a))return null;const r=this.validateInput([n,null],!0);if(r!=null)if(r.newDate!=null)n=r.newDate.startDate;else return r;return this.#t=n,this.#e=this.#t,this.updateElement(),t&&this.updateView(),r}setEndDate(s,t=!0){return this.singleDatePicker?null:setRange(this.#t,s,t)}setRange(s,t,a=!0){if(this.singleDatePicker)return;this.#e||(this.#e=this.#t);const n=[this.#t,this.#e];let r=[this.parseDate(s),this.parseDate(t)];if(n[0].equals(r[0])&&n[1].equals(r[1])||r[1]>r[0])return;const i=this.validateInput([r[0],r[1]],!0);if(i!=null)if(i.newDate!=null)r[0]=i.newDate.startDate,r[1]=i.newDate.endDate;else return i;return this.#t=r[0],this.#e=r[1],this.updateElement(),a&&this.updateView(),i}parseDate(s){if(typeof s=="object"){if(h.isDateTime(s)&&s.isValid)return s;if(s instanceof Date)return h.fromJSDate(s);throw RangeError("Value must be a luxon.DateTime or Date or string")}else if(typeof s=="string"){const t=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format);if(h.fromISO(s).isValid)return h.fromISO(s);if(h.fromFormat(s,t,{locale:h.now().locale}).isValid)return h.fromFormat(s,t,{locale:h.now().locale});{const a=h.fromFormat(s,t,{locale:h.now().locale}).invalidExplanation;throw RangeError(`Value is not a valid string: ${a}`)}}}logDate(s){return this.timePicker?s.toISO({suppressMilliseconds:!0}):s.toISODate()}formatDate(s,t=this.locale.format){if(typeof t=="object")return s.toLocaleString(t);if(P.defaultLocale===null){const a=h.now().locale;return s.toFormat(t,{locale:a})}else return s.toFormat(t)}updateLabel(){if(this.showLabel){let s=this.formatDate(this.#t);this.singleDatePicker||(s+=this.locale.separator,this.#e&&(s+=this.formatDate(this.#e))),this.container.find(".drp-selected").html(s)}if(!(this.singleDatePicker||this.locale.durationFormat==null)){if(!this.#e){this.container.find(".drp-duration-label").html("");return}if(typeof this.locale.durationFormat=="function")this.container.find(".drp-duration-label").html(this.locale.durationFormat(this.#t,this.#e));else{let s=this.#e.plus({milliseconds:1}).diff(this.#t).rescale().set({milliseconds:0});this.timePicker||(s=s.set({seconds:0,minutes:0,hours:0})),s=s.removeZeros(),typeof this.locale.durationFormat=="object"?this.container.find(".drp-duration-label").html(s.toHuman(this.locale.durationFormat)):this.container.find(".drp-duration-label").html(s.toFormat(this.locale.durationFormat))}}}validateInput(s,t=!1){let a=s==null?this.#t:s[0],n=s==null?this.#e:s[1];if(a==null)return null;let r={startDate:{violations:[]}},i={old:a,reason:this.timePicker?"timePickerStepSize":"timePicker"};if(this.timePicker){const e=this.timePickerStepSize.as("seconds");a=h.fromSeconds(e*Math.round(a.toSeconds()/e))}else a=a.startOf("day");i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i);const c=this.timePicker?this.timePickerStepSize.as("seconds"):D.fromObject({days:1}).as("seconds");this.minDate&&a<this.minDate?(i={old:a,reason:"minDate"},a=a.plus({seconds:Math.trunc(this.minDate.diff(a).as("seconds")/c)*c}),a<this.minDate&&(a=a.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i)):this.maxDate&&a>this.maxDate&&(i={old:a,reason:"maxDate"},a=a.minus({seconds:Math.trunc(a.diff(this.maxDate).as("seconds")/c)*c}),a>this.maxDate&&(a=a.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i));let o=["hour"];if(this.timePicker&&(this.timePickerOpts.showMinutes&&o.push("minute"),this.timePickerOpts.showSeconds&&o.push("second"),this.timePicker24Hour||o.push("ampm")),this.isInvalidDate(a)&&r.startDate.violations.push({old:a,reason:"isInvalidDate"}),this.timePicker)for(let e of o)this.isInvalidTime(a,e,"start")&&r.startDate.violations.push({old:a,reason:"isInvalidTime",unit:e});if(this.singleDatePicker){if(r.startDate.violations.length==0)return null;if(t){let e={startDate:a};return this.element.triggerHandler("violated.daterangepicker",[this,r,e])&&(r.newDate=e),r}else return r}if(n==null)return null;if(r.endDate={violations:[]},i={old:n,reason:this.timePicker?"stepSize":"timePicker"},this.timePicker){const e=this.timePickerStepSize.as("seconds");n=h.fromSeconds(e*Math.round(n.toSeconds()/e))}else n=n.endOf("day");if(i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i),this.maxDate&&n>this.maxDate?(i={old:n,reason:"maxDate"},n=n.minus({seconds:Math.trunc(n.diff(this.maxDate).as("seconds")/c)*c}),n>this.maxDate&&(n=n.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i)):this.minDate&&n<this.minDate&&(i={old:n,reason:"minDate"},n=n.plus({seconds:Math.trunc(this.minDate.diff(n).as("seconds")/c)*c}),n<this.minDate&&(n=n.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i)),this.maxSpan){const e=a.plus(this.maxSpan);n>e&&(i={old:n,reason:"maxSpan"},n=n.minus({seconds:Math.trunc(e.diff(n).as("seconds")/c)*c}),n>e&&(n=n.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i))}if(this.minSpan){const e=a.plus(this.defaultSpan??this.minSpan);n<e&&(i={old:n,reason:"minSpan"},n=n.plus({seconds:Math.trunc(e.diff(n).as("seconds")/c)*c}),n<e&&(n=n.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i))}if(this.isInvalidDate(n)&&r.endDate.violations.push({old:n,reason:"isInvalidDate"}),this.timePicker)for(let e of o)this.isInvalidTime(n,e,"end")&&r.endDate.violations.push({old:n,reason:"isInvalidTime",unit:e});if(r.startDate.violations.length==0&&r.endDate.violations.length==0)return null;if(t){let e={startDate:a,endDate:n};return this.element.triggerHandler("violated.daterangepicker",[this,r,e])&&(r.newDate=e),r}else return r}updateView(){this.timePicker&&(this.element.trigger("beforeRenderTimePicker.daterangepicker",this),this.renderTimePicker("start"),this.renderTimePicker("end"),this.#e?this.container.find(".calendar-time.end-time select").prop("disabled",!1).removeClass("disabled"):this.container.find(".calendar-time.end-time select").prop("disabled",!0).addClass("disabled")),this.updateLabel(),this.updateMonthsInView(),this.updateCalendars(),this.setApplyBtnState()}updateMonthsInView(){if(this.#e){if(!this.singleDatePicker&&this.leftCalendar.month&&this.rightCalendar.month&&(this.#t.hasSame(this.leftCalendar.month,"month")||this.#t.hasSame(this.rightCalendar.month,"month"))&&(this.#e.hasSame(this.leftCalendar.month,"month")||this.#e.hasSame(this.rightCalendar.month,"month")))return;this.leftCalendar.month=this.#t.startOf("month"),this.singleMonthView||(!this.linkedCalendars&&!this.#e.hasSame(this.#t,"month")?this.rightCalendar.month=this.#e.startOf("month"):this.rightCalendar.month=this.#t.startOf("month").plus({month:1}))}else!this.#t&&this.initalMonth?(this.leftCalendar.month=this.initalMonth,this.singleMonthView||(this.rightCalendar.month=this.initalMonth.plus({month:1}))):!this.leftCalendar.month.hasSame(this.#t,"month")&&!this.rightCalendar.month.hasSame(this.#t,"month")&&(this.leftCalendar.month=this.#t.startOf("month"),this.rightCalendar.month=this.#t.startOf("month").plus({month:1}));this.maxDate&&this.linkedCalendars&&!this.singleDatePicker&&!this.singleMonthView&&this.rightCalendar.month>this.maxDate&&(this.rightCalendar.month=this.maxDate.startOf("month"),this.leftCalendar.month=this.maxDate.startOf("month").minus({month:1}))}updateCalendars(){if(this.timePicker){var s,t,a;this.#e?(s=parseInt(this.container.find(".start-time .hourselect").val(),10),isNaN(s)&&(s=parseInt(this.container.find(".start-time .hourselect option:last").val(),10)),t=0,this.timePickerOpts.showMinutes&&(t=parseInt(this.container.find(".start-time .minuteselect").val(),10),isNaN(t)&&(t=parseInt(this.container.find(".start-time .minuteselect option:last").val(),10))),a=0,this.timePickerOpts.showSeconds&&(a=parseInt(this.container.find(".start-time .secondselect").val(),10),isNaN(a)&&(a=parseInt(this.container.find(".start-time .secondselect option:last").val(),10)))):(s=parseInt(this.container.find(".end-time .hourselect").val(),10),isNaN(s)&&(s=parseInt(this.container.find(".end-time .hourselect option:last").val(),10)),t=0,this.timePickerOpts.showMinutes&&(t=parseInt(this.container.find(".end-time .minuteselect").val(),10),isNaN(t)&&(t=parseInt(this.container.find(".end-time .minuteselect option:last").val(),10))),a=0,this.timePickerOpts.showSeconds&&(a=parseInt(this.container.find(".end-time .secondselect").val(),10),isNaN(a)&&(a=parseInt(this.container.find(".end-time .secondselect option:last").val(),10)))),this.leftCalendar.month=this.leftCalendar.month.set({hour:s,minute:t,second:a}),this.singleMonthView||(this.rightCalendar.month=this.rightCalendar.month.set({hour:s,minute:t,second:a}))}else this.leftCalendar.month=this.leftCalendar.month.set({hour:0,minute:0,second:0}),this.singleMonthView||(this.rightCalendar.month=this.rightCalendar.month.set({hour:0,minute:0,second:0}));this.element.trigger("beforeRenderCalendar.daterangepicker",this),this.renderCalendar("left"),this.renderCalendar("right"),this.container.find(".ranges li").removeClass("active"),this.#e!=null&&this.calculateChosenLabel()}renderCalendar(s){if(s==="right"&&this.singleMonthView)return;var i=s==="left"?this.leftCalendar:this.rightCalendar;i.month==null&&!this.#t&&this.initalMonth&&(i.month=this.initalMonth.startOf("month"));const t=i.month.startOf("month"),a=i.month.endOf("month").startOf("day");var n=i.month.startOf("month").minus({day:1});const r={hour:i.month.hour,minute:i.month.minute,second:i.month.second};var i=[];i.firstDay=t,i.lastDay=a;for(var c=0;c<6;c++)i[c]=[];for(;n.weekday!=this.locale.firstDay;)n=n.minus({day:1});for(let f=0,g=-1;f<42;f++,n=n.plus({day:1}))f%7===0&&g++,i[g][f%7]=n.set(r);s==="left"?this.leftCalendar.calendar=i:this.rightCalendar.calendar=i;var o=s==="left"?this.minDate:this.#t,e=this.maxDate,l="<tr>";(this.showWeekNumbers||this.showISOWeekNumbers)&&(l+="<th></th>"),(!o||o<i.firstDay)&&(!this.linkedCalendars||s==="left")?l+='<th class="prev available"><span></span></th>':l+="<th></th>";var d=`${this.locale.monthNames[i.firstDay.month-1]} ${i.firstDay.year}`;if(this.showDropdowns){const f=(e&&e.year)??this.maxYear,g=(o&&o.year)??this.minYear;let C=this.externalStyle==="bulma"?'<div class="select is-small mr-1">':"";for(var u=`${C}<select class="monthselect">`,m=1;m<=12;m++)u+=`<option value="${m}"${m===i.firstDay.month?" selected":""}`,(o&&i.firstDay.set({month:m})<o.startOf("month")||e&&i.firstDay.set({month:m})>e.endOf("month"))&&(u+=" disabled"),u+=`>${this.locale.monthNames[m-1]}</option>`;u+="</select>",this.externalStyle==="bulma"&&(u+="</div>"),C=this.externalStyle==="bulma"?'<div class="select is-small ml-1">':"";for(var p=`${C}<select class="yearselect">`,k=g;k<=f;k++)p+=`<option value="${k}"${k===i.firstDay.year?" selected":""}>${k}</option>`;p+="</select>",this.externalStyle==="bulma"&&(p+="</div>"),d=u+p}l+='<th colspan="5" class="month">'+d+"</th>",(!e||e>i.lastDay.endOf("day"))&&(!this.linkedCalendars||s==="right"||this.singleDatePicker||this.singleMonthView)?l+='<th class="next available"><span></span></th>':l+="<th></th>",l+="</tr>",l+="<tr>",(this.showWeekNumbers||this.showISOWeekNumbers)&&(l+=`<th class="week">${this.locale.weekLabel}</th>`);for(let[f,g]of this.locale.daysOfWeek.entries())l+="<th",this.weekendDayClasses&&this.weekendDayClasses.length&&S.getWeekendWeekdays().includes(f+1)&&(l+=` class="${this.weekendDayClasses}"`),l+=`>${g}</th>`;if(l+="</tr>",this.container.find(".drp-calendar."+s+" .calendar-table thead").html(l),l="",this.#e==null&&this.maxSpan){var y=this.#t.plus(this.maxSpan).endOf("day");(!e||y<e)&&(e=y)}var v;this.#e==null&&this.minSpan&&(v=this.#t.plus(this.minSpan).startOf("day"));for(let f=0;f<6;f++){l+="<tr>",this.showISOWeekNumbers?l+='<td class="week">'+i[f][0].weekNumber+"</td>":this.showWeekNumbers&&(l+='<td class="week">'+i[f][0].localWeekNumber+"</td>");for(let g=0;g<7;g++){var b=[];this.todayClasses&&this.todayClasses.length&&i[f][g].hasSame(h.now(),"day")&&b.push(this.todayClasses),this.weekendClasses&&this.weekendClasses.length&&S.getWeekendWeekdays().includes(i[f][g].weekday)&&b.push(this.weekendClasses),i[f][g].month!=i[1][1].month&&b.push("off","ends"),this.minDate&&i[f][g].startOf("day")<this.minDate.startOf("day")&&b.push("off","disabled"),e&&i[f][g].startOf("day")>e.startOf("day")&&b.push("off","disabled"),v&&i[f][g].startOf("day")>this.#t.startOf("day")&&i[f][g].startOf("day")<v.startOf("day")&&b.push("off","disabled"),this.isInvalidDate(i[f][g])&&b.push("off","disabled"),this.#t!=null&&i[f][g].hasSame(this.#t,"day")&&b.push("active","start-date"),this.#e!=null&&i[f][g].hasSame(this.#e,"day")&&b.push("active","end-date"),this.#e!=null&&i[f][g]>this.#t&&i[f][g]<this.#e&&b.push("in-range");var w=this.isCustomDate(i[f][g]);w!==!1&&(typeof w=="string"?b.push(w):Array.prototype.push.apply(b,w)),b.includes("disabled")||b.push("available"),l+=`<td class="${b.join(" ")}" data-title="r${f}c${g}">${i[f][g].day}</td>`}l+="</tr>"}this.container.find(".drp-calendar."+s+" .calendar-table tbody").html(l)}renderTimePicker(s){if(s==="end"&&!this.#e)return;var t,a,n,r=this.maxDate;let i="";if((this.showWeekNumbers||this.showISOWeekNumbers)&&(i+="<th></th>"),this.maxSpan&&(!this.maxDate||this.#t.plus(this.maxSpan)<this.maxDate)&&(r=this.#t.plus(this.maxSpan)),this.minSpan&&s==="end"&&(a=this.#t.plus(this.defaultSpan??this.minSpan)),s==="start")t=this.#t,n=this.minDate;else if(s==="end"){t=this.#e,n=this.#t;var c=this.container.find(".drp-calendar .calendar-time.end-time");c.html()!=""&&(t=t.set({hour:isNaN(t.hour)?c.find(".hourselect option:selected").val():t.hour,minute:isNaN(t.minute)?c.find(".minuteselect option:selected").val():t.minute,second:isNaN(t.second)?c.find(".secondselect option:selected").val():t.second})),t<this.#t&&(t=this.#t),r&&t>r&&(t=r)}i+='<th colspan="7">',this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="hourselect">';const o=t.toFormat("a",{locale:"en-US"});let e=0;this.timePicker24Hour||(e=o==="AM"?1:13);for(var l=e;l<=e+23;l+=this.timePickerOpts.hourStep){let p=t.set({hour:l%24}),k=!1;if(n&&p.set({minute:59})<n&&(k=!0),r&&p.set({minute:0})>r&&(k=!0),a&&p.endOf("hour")<a&&(k=!0),!k&&this.isInvalidTime(p,this.singleDatePicker?null:s,"hour")&&(k=!0),this.timePicker24Hour)!k&&l==t.hour?i+=`<option value="${l}" selected>${l}</option>`:k?i+=`<option value="${l}" disabled class="disabled">${l}</option>`:i+=`<option value="${l}">${l}</option>`;else{const y=h.fromFormat(`${l%24}`,"H").toFormat("h"),v=h.fromFormat(`${l%24}`,"H").toFormat("a",{locale:"en-US"});o==v?!k&&l==t.hour?i+=`<option ampm="${v}" value="${l%24}" selected>${y}</option>`:k?i+=`<option ampm="${v}" value="${l%24}" disabled class="disabled">${y}</option>`:i+=`<option ampm="${v}" value="${l%24}">${y}</option>`:i+=`<option ampm="${v}" hidden="hidden" value="${l%24}">${y}</option>`}}if(i+="</select>",this.externalStyle==="bulma"&&(i+="</div>"),this.timePickerOpts.showMinutes){i+=" : ",this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="minuteselect">';for(var l=0;l<60;l+=this.timePickerOpts.minuteStep){var d=l<10?"0"+l:l;let k=t.set({minute:l}),y=!1;n&&k.set({second:59})<n&&(y=!0),r&&k.set({second:0})>r&&(y=!0),a&&k.endOf("minute")<a&&(y=!0),!y&&this.isInvalidTime(k,this.singleDatePicker?null:s,"minute")&&(y=!0),t.minute==l&&!y?i+=`<option value="${l}" selected>${d}</option>`:y?i+=`<option value="${l}" disabled class="disabled">${d}</option>`:i+=`<option value="${l}">${d}</option>`}i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}if(this.timePickerOpts.showSeconds){i+=" : ",this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="secondselect">';for(var l=0;l<60;l+=this.timePickerOpts.secondStep){var d=l<10?"0"+l:l;let y=t.set({second:l}),v=!1;n&&y<n&&(v=!0),r&&y>r&&(v=!0),a&&y<a&&(v=!0),!v&&this.isInvalidTime(y,this.singleDatePicker?null:s,"second")&&(v=!0),t.second==l&&!v?i+=`<option value="${l}" selected>${d}</option>`:v?i+=`<option value="${l}" disabled class="disabled">${d}</option>`:i+=`<option value="${l}">${d}</option>`}i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}if(!this.timePicker24Hour){this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="ampmselect">';var u="",m="";let p=!1;n&&t.startOf("day")<n&&(p=!0),r&&t.endOf("day")>r&&(p=!0),a&&t.startOf("day")<a&&(p=!0),p?(u=' disabled class="disabled "',m=' disabled class="disabled"'):this.isInvalidTime(t,this.singleDatePicker?null:s,"ampm")&&(t.toFormat("a",{locale:"en-US"})==="AM"?m=' disabled class="disabled"':u=' disabled class="disabled"'),i+=`<option value="AM"${u}`,t.toFormat("a",{locale:"en-US"})==="AM"&&(i+=" selected"),i+=`>${S.meridiems()[0]}</option><option value="PM"${m}`,t.toFormat("a",{locale:"en-US"})==="PM"&&(i+=" selected"),i+=`>${S.meridiems()[1]}</option>`,i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}i+="</div></th>",this.container.find(`.drp-calendar .calendar-time.${s}-time`).html(i)}setApplyBtnState(){this.singleDatePicker||this.#e&&this.#t<=this.#e?this.container.find("button.applyBtn").prop("disabled",!1):this.container.find("button.applyBtn").prop("disabled",!0)}move(){var s={top:0,left:0},t,a=this.drops,n=$(window).width();switch(this.parentEl.is("body")||(s={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},n=this.parentEl[0].clientWidth+this.parentEl.offset().left),a){case"auto":t=this.element.offset().top+this.element.outerHeight()-s.top,t+this.container.outerHeight()>=this.parentEl[0].scrollHeight&&(t=this.element.offset().top-this.container.outerHeight()-s.top,a="up");break;case"up":t=this.element.offset().top-this.container.outerHeight()-s.top;break;default:t=this.element.offset().top+this.element.outerHeight()-s.top;break}this.container.css({top:0,left:0,right:"auto"});var r=this.container.outerWidth();if(this.container.toggleClass("drop-up",a==="up"),this.opens==="left"){var i=n-this.element.offset().left-this.element.outerWidth();r+i>$(window).width()?this.container.css({top:t,right:"auto",left:9}):this.container.css({top:t,right:i,left:"auto"})}else if(this.opens==="center"){var c=this.element.offset().left-s.left+this.element.outerWidth()/2-r/2;c<0?this.container.css({top:t,right:"auto",left:9}):c+r>$(window).width()?this.container.css({top:t,left:"auto",right:0}):this.container.css({top:t,left:c,right:"auto"})}else{var c=this.element.offset().left-s.left;c+r>$(window).width()?this.container.css({top:t,left:"auto",right:0}):this.container.css({top:t,left:c,right:"auto"})}}show(){this.isShowing||(this._outsideClickProxy=function(s){this.outsideClick(s)}.bind(this),$(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),$(window).on("resize.daterangepicker",function(s){this.move(s)}.bind(this)),this.oldStartDate=this.#t,this.oldEndDate=this.#e,this.updateView(),this.container.show(),this.move(),this.element.trigger("show.daterangepicker",this),this.isShowing=!0)}hide(){this.isShowing&&(this.#e||(this.#t=this.oldStartDate,this.#e=this.oldEndDate),(this.#t!=this.oldStartDate||this.#e!=this.oldEndDate)&&this.callback(this.startDate,this.endDate,this.chosenLabel),this.updateElement(),!this.element.triggerHandler("beforeHide.daterangepicker",this)&&($(document).off(".daterangepicker"),$(window).off(".daterangepicker"),this.container.hide(),this.element.trigger("hide.daterangepicker",this),this.isShowing=!1))}toggle(){this.isShowing?this.hide():this.show()}outsideClick(s){var t=$(s.target);s.type==="focusin"||t.closest(this.element).length||t.closest(this.container).length||t.closest(".calendar-table").length||(this.onOutsideClick==="cancel"&&(this.#t=this.oldStartDate,this.#e=this.oldEndDate),this.hide(),this.element.trigger("outsideClick.daterangepicker",this))}showCalendars(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)}hideCalendars(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)}clickRange(s){var t=s.target.getAttribute("data-range-key");if(this.chosenLabel=t,t==this.locale.customRangeLabel)this.showCalendars();else{var a=this.ranges[t];this.#t=a[0],this.#e=a[1],this.timePicker||(this.#t.startOf("day"),this.#e.endOf("day")),this.alwaysShowCalendars||this.hideCalendars(),this.element.triggerHandler("beforeHide.daterangepicker",this)&&this.updateView(),this.clickApply()}}clickPrev(s){var t=$(s.target).parents(".drp-calendar");t.hasClass("left")?(this.leftCalendar.month=this.leftCalendar.month.minus({month:1}),this.linkedCalendars&&!this.singleMonthView&&(this.rightCalendar.month=this.rightCalendar.month.minus({month:1}))):this.rightCalendar.month=this.rightCalendar.month.minus({month:1}),this.updateCalendars()}clickNext(s){var t=$(s.target).parents(".drp-calendar");t.hasClass("left")?this.leftCalendar.month=this.leftCalendar.month.plus({month:1}):(this.rightCalendar.month=this.rightCalendar.month.plus({month:1}),this.linkedCalendars&&(this.leftCalendar.month=this.leftCalendar.month.plus({month:1}))),this.updateCalendars()}hoverDate(s){if(!$(s.target).hasClass("available"))return;let t=$(s.target).attr("data-title");const a=t.substring(1,2),n=t.substring(3,4);var i=$(s.target).parents(".drp-calendar").hasClass("left")?this.leftCalendar.calendar[a][n]:this.rightCalendar.calendar[a][n];const c=this.leftCalendar,o=this.rightCalendar,e=this.#t,l=this.initalMonth;this.#e||this.container.find(".drp-calendar tbody td").each(function(d,u){if($(u).hasClass("week"))return;const m=$(u).attr("data-title"),p=m.substring(1,2),k=m.substring(3,4),v=$(u).parents(".drp-calendar").hasClass("left")?c.calendar[p][k]:o.calendar[p][k];!e&&l?$(u).removeClass("in-range"):v>e&&v<i||v.hasSame(i,"day")?$(u).addClass("in-range"):$(u).removeClass("in-range")})}hoverRange(s){const t=s.target.getAttribute("data-range-key"),a=[this.#t,this.#e],n=this.ranges[t]??[this.#t,this.#e],r=this.leftCalendar,i=this.rightCalendar;this.container.find(".drp-calendar tbody td").each(function(c,o){if($(o).hasClass("week"))return;const e=$(o).attr("data-title"),l=e.substring(1,2),d=e.substring(3,4),m=$(o).parents(".drp-calendar").hasClass("left")?r.calendar[l][d]:i.calendar[l][d];let p=!1;m.hasSame(n[0],"day")&&(p=$(o).addClass("start-hover").length>0),m.hasSame(a[0],"day")&&(p=$(o).addClass("start-date").length>0),m.hasSame(n[1],"day")&&(p=$(o).addClass("end-hover").length>0),a[1]!=null&&m.hasSame(a[1],"day")&&(p=$(o).addClass("end-date").length>0),m.startOf("day")>=n[0].startOf("day")&&m.startOf("day")<=n[1].startOf("day")&&(p=$(o).addClass("range-hover").length>0),m.startOf("day")>=a[0].startOf("day")&&a[1]!=null&&m.startOf("day")<=a[1].startOf("day")&&(p=$(o).addClass("in-range").length>0),p||($(o).removeClass("start-hover"),$(o).removeClass("end-hover"),$(o).removeClass("start-date"),$(o).removeClass("end-date"),$(o).removeClass("in-range"),$(o).removeClass("range-hover"))})}leaveRange(s){this.container.find(".drp-calendar tbody td").each(function(t,a){$(a).hasClass("week")||($(a).removeClass("start-hover"),$(a).removeClass("end-hover"),$(a).removeClass("range-hover"))})}clickDate(s){if(!$(s.target).hasClass("available"))return;var t=$(s.target).attr("data-title"),a=t.substring(1,2),n=t.substring(3,4),r=$(s.target).parents(".drp-calendar"),i=r.hasClass("left")?this.leftCalendar.calendar[a][n]:this.rightCalendar.calendar[a][n];let c;if(this.#e||!this.#t||i<this.#t.startOf("day")){if(this.timePicker){let o=parseInt(this.container.find(".start-time .hourselect").val(),10);isNaN(o)&&(o=parseInt(this.container.find(".start-time .hourselect option:last").val(),10));let e=0;this.timePickerOpts.showMinutes&&(e=parseInt(this.container.find(".start-time .minuteselect").val(),10),isNaN(e)&&(e=parseInt(this.container.find(".start-time .minuteselect option:last").val(),10)));let l=0;this.timePickerOpts.showSeconds&&(l=parseInt(this.container.find(".start-time .secondselect").val(),10),isNaN(l)&&(l=parseInt(this.container.find(".start-time .secondselect option:last").val(),10))),i=i.set({hour:o,minute:e,second:l})}else i=i.startOf("day");this.#e=null,this.#t=i,c="start"}else if(!this.#e&&i<this.#t)this.#e=this.#t,c="end";else{if(this.timePicker){let o=parseInt(this.container.find(".end-time .hourselect").val(),10);isNaN(o)&&(o=parseInt(this.container.find(".end-time .hourselect option:last").val(),10));let e=0;this.timePickerOpts.showMinutes&&(e=parseInt(this.container.find(".end-time .minuteselect").val(),10),isNaN(e)&&(e=parseInt(this.container.find(".end-time .minuteselect option:last").val(),10)));let l=0;this.timePickerOpts.showSeconds&&(l=parseInt(this.container.find(".end-time .secondselect").val(),10),isNaN(l)&&(l=parseInt(this.container.find(".end-time .secondselect option:last").val(),10))),i=i.set({hour:o,minute:e,second:l})}else i=i.endOf("day");this.#e=i,this.autoApply&&(this.calculateChosenLabel(),this.clickApply()),c="end"}this.singleDatePicker&&(this.#e=this.#t,!this.timePicker&&this.autoApply&&this.clickApply(),c=null),this.updateView(),s.stopPropagation(),this.autoUpdateInput&&this.updateElement(),this.element.trigger("dateChange.daterangepicker",[this,c])}calculateChosenLabel(){var s=!0,t=0;for(var a in this.ranges){var n=this.timePicker?"hour":"day";if(this.timePicker&&(this.timePickerOpts.showMinutes?n="minute":this.timePickerOpts.showSeconds&&(n="second")),this.#t.startOf(n).equals(this.ranges[a][0].startOf(n))&&this.#e.startOf(n).equals(this.ranges[a][1].startOf(n))){s=!1,this.chosenLabel=this.container.find(".ranges li:eq("+t+")").addClass("active").attr("data-range-key");break}t++}s&&(this.showCustomRangeLabel?this.chosenLabel=this.container.find(".ranges li:last").addClass("active").attr("data-range-key"):this.chosenLabel=null,this.showCalendars())}clickApply(){this.hide(),this.element.trigger("apply.daterangepicker",this)}clickCancel(){this.#t=this.oldStartDate,this.#e=this.oldEndDate,this.hide(),this.element.trigger("cancel.daterangepicker",this)}monthOrYearChanged(s){var t=$(s.target).closest(".drp-calendar").hasClass("left"),a=t?"left":"right",n=this.container.find(".drp-calendar."+a),r=parseInt(n.find(".monthselect").val(),10),i=n.find(".yearselect").val();t||(i<this.#t.year||i==this.#t.year&&r<this.#t.month)&&(r=this.#t.month,i=this.#t.year),this.minDate&&(i<this.minDate.year||i==this.minDate.year&&r<this.minDate.month)&&(r=this.minDate.month,i=this.minDate.year),this.maxDate&&(i>this.maxDate.year||i==this.maxDate.year&&r>this.maxDate.month)&&(r=this.maxDate.month,i=this.maxDate.year),t?(this.leftCalendar.month=this.leftCalendar.month.set({year:i,month:r}),this.linkedCalendars&&(this.rightCalendar.month=this.leftCalendar.month.plus({month:1}))):(this.rightCalendar.month=this.rightCalendar.month.set({year:i,month:r}),this.linkedCalendars&&(this.leftCalendar.month=this.rightCalendar.month.minus({month:1}))),this.updateCalendars()}timeChanged(s){const t=$(s.target).closest(".calendar-time"),a=t.hasClass("start-time")?"start":"end";var n=parseInt(t.find(".hourselect").val(),10);if(isNaN(n)&&(n=parseInt(t.find(".hourselect option:last").val(),10)),!this.timePicker24Hour){const c=t.find(".ampmselect").val();if(c==null&&t.find(".ampmselect option:last").val(),c!=h.fromFormat(`${n}`,"H").toFormat("a",{locale:"en-US"})){t.find(".hourselect > option").each(function(){const e=$(this).attr("hidden")||!1;$(this).attr("hidden",e)});const o=h.fromFormat(`${n}`,"H").toFormat("h");n=h.fromFormat(`${o}${c}`,"ha",{locale:"en-US"}).hour}}var r=0;this.timePickerOpts.showMinutes&&(r=parseInt(t.find(".minuteselect").val(),10),isNaN(r)&&(r=parseInt(t.find(".minuteselect option:last").val(),10)));var i=0;this.timePickerOpts.showSeconds&&(i=parseInt(t.find(".secondselect").val(),10),isNaN(i)&&(i=parseInt(t.find(".secondselect option:last").val(),10))),a==="start"?(this.#t&&(this.#t=this.#t.set({hour:n,minute:r,second:i})),this.singleDatePicker?this.#e=this.#t:this.#e&&this.#e.hasSame(this.#t,"day")&&this.#e<this.#t&&(this.#e=this.#t)):this.#e&&(this.#e=this.#e.set({hour:n,minute:r,second:i})),this.updateCalendars(),this.setApplyBtnState(),this.element.trigger("beforeRenderTimePicker.daterangepicker",this),this.renderTimePicker("start"),this.renderTimePicker("end"),this.autoUpdateInput&&this.updateElement(),this.element.trigger("timeChange.daterangepicker",[this,this.singleDatePicker?null:a])}elementChanged(){if(!this.element.is("input:text")||!this.element.val().length)return;const s=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format),t=this.element.val().split(this.locale.separator);if(this.singleDatePicker){let a=h.fromFormat(this.element.val(),s,{locale:h.now().locale});const n=this.#t;if(!a.isValid||n.equals(a))return;const r=this.validateInput([a,null],!0);if(r!=null)if(r.newDate!=null)a=r.newDate.startDate;else return null;this.#t=a,this.#e=this.#t}else if(!this.singleDatePicker&&t.length===2){const a=[1,2].map(i=>h.fromFormat(t[i],s,{locale:h.now().locale})),n=[this.#t,this.#e];if(!a[0].isValid||!a[1].isValid||n[0].equals(a[0])&&n[1].equals(a[1])||a[1]>a[0])return;const r=this.validateInput([a[0],a[1]],!0);if(r!=null)if(r.newDate!=null)a[0]=r.newDate.startDate,a[1]=r.newDate.endDate;else return;this.#t=a[0],this.#e=a[1]}else return;this.updateView(),this.updateElement(),this.element.trigger("inputChanged.daterangepicker",this)}keydown(s){(s.keyCode===9||s.keyCode===13)&&this.hide(),s.keyCode===27&&(s.preventDefault(),s.stopPropagation(),this.hide())}updateElement(){if(!(this.#t==null&&this.initalMonth))if(this.element.is("input:text")){let s=this.formatDate(this.#t);this.singleDatePicker||(s+=this.locale.separator,this.#e&&(s+=this.formatDate(this.#e))),this.updateAltInput(),s!==this.element.val()&&this.element.val(s).trigger("change")}else this.updateAltInput()}updateAltInput(){if(this.altInput!=null)if(this.singleDatePicker&&$(this.altInput[1]).val(null),this.altFormat==null){let s="day";this.timePicker&&(this.timePickerOpts.showSeconds?s="second":this.timePickerOpts.showMinutes?s="minute":s="hour");const t=this.#t.toISO({format:"basic",precision:s,includeOffset:!1});if($(this.singleDatePicker?this.altInput:this.altInput[0]).val(t),!this.singleDatePicker&&this.#e){const a=this.#e.toISO({format:"basic",precision:s,includeOffset:!1});$(this.altInput[1]).val(a)}}else{const s=typeof this.altFormat=="function"?this.altFormat(this.#t):this.formatDate(this.#t,this.altFormat);if($(this.singleDatePicker?this.altInput:this.altInput[0]).val(s),!this.singleDatePicker&&this.#e){const t=typeof this.altFormat=="function"?this.altFormat(this.#e):this.formatDate(this.#e,this.altFormat);$(this.altInput[1]).val(t)}}}remove(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData()}}$.fn.daterangepicker||($.fn.daterangepicker=function(O,s){const t=$.extend(!0,{},$.fn.daterangepicker.defaultOptions,O);return this.each(function(){const a=$(this);a.data("daterangepicker")&&a.data("daterangepicker").remove(),a.data("daterangepicker",new I(a,t,s))}),this});})();
|
|
2
|
+
`,e)}if(t.warnings!==void 0&&console.warn("Option 'warnings' not used anymore. Listen to event 'violated.daterangepicker'"),!this.#t&&this.initalMonth)this.#e=null,this.timePicker&&console.error("Option 'initalMonth' works only with 'timePicker: false'");else{const e=this.validateInput(null,!1);if(e!=null){let l=e.startDate.violations;if(l.length>0)if(l.some(d=>d.reason.startsWith("isInvalid")))console.error(`Value of startDate "${this.#t}" violates ${l.find(d=>d.reason.startsWith("isInvalid")).reason}`);else{const d=l.filter(u=>u.new!=null).at(-1).new;this.#t=d}if(!this.singleDatePicker&&(l=e.endDate.violations.filter(d=>d.new!=null),l.length>0))if(l.some(d=>d.reason.startsWith("isInvalid")))console.error(`Value of endDate "${this.#e}" violates ${l.find(d=>d.reason.startsWith("isInvalid")).reason}`);else{const d=l.filter(u=>u.new!=null).at(-1).new;this.#e=d}}}if(typeof t.opens=="string"&&(["left","right","center"].includes(t.opens)?this.opens=t.opens:console.error("Option 'options.opens' must be 'left', 'right' or 'center'")),typeof t.drops=="string"&&(["drop","down","auto"].includes(t.drops)?this.drops=t.drops:console.error("Option 'options.drops' must be 'drop', 'down' or 'auto'")),Array.isArray(t.buttonClasses)?this.buttonClasses=t.buttonClasses.join(" "):typeof t.buttonClasses=="string"&&(this.buttonClasses=t.buttonClasses),typeof t.onOutsideClick=="string"&&(["cancel","apply"].includes(t.onOutsideClick)?this.onOutsideClick=t.onOutsideClick:console.error("Option 'options.onOutsideClick' must be 'cancel' or 'apply'")),this.locale.firstDay!=1){let e=this.locale.firstDay;for(;e>1;)this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()),e--}if(!this.singleDatePicker&&typeof t.ranges=="object"){for(let e in t.ranges){let l,d;if(["string","object"].includes(typeof t.ranges[e][0])&&(h.isDateTime(t.ranges[e][0])&&t.ranges[e][0].isValid?l=t.ranges[e][0]:t.ranges[e][0]instanceof Date?l=h.fromJSDate(t.ranges[e][0]):typeof t.ranges[e][0]=="string"&&h.fromISO(t.ranges[e][0]).isValid?l=h.fromISO(t.ranges[e][0]):console.error(`Option ranges['${e}'] is not am array of valid ISO-8601 string or luxon.DateTime or Date`)),["string","object"].includes(typeof t.ranges[e][1])&&(h.isDateTime(t.ranges[e][1])&&t.ranges[e][1].isValid?d=t.ranges[e][1]:t.ranges[e][1]instanceof Date?d=h.fromJSDate(t.ranges[e][1]):typeof t.ranges[e][1]=="string"&&h.fromISO(t.ranges[e][1]).isValid?d=h.fromISO(t.ranges[e][1]):console.error(`Option ranges['${e}'] is not a valid ISO-8601 string or luxon.DateTime or Date`)),!(l==null||d==null)){t.ranges[e]=[l,d];var r=document.createElement("textarea");r.innerHTML=e,this.ranges[r.value]=[l,d]}}var o="<ul>";for(let e in this.ranges)o+='<li data-range-key="'+e+'">'+e+"</li>";this.showCustomRangeLabel&&(o+='<li data-range-key="'+this.locale.customRangeLabel+'">'+this.locale.customRangeLabel+"</li>"),o+="</ul>",this.container.find(".ranges").prepend(o),this.container.addClass("show-ranges")}typeof a=="function"&&(this.callback=a),this.timePicker||(this.#t&&(this.#t=this.#t.startOf("day")),this.#e&&(this.#e=this.#e.endOf("day")),this.container.find(".calendar-time").hide()),this.timePicker&&this.autoApply&&(this.autoApply=!1),this.autoApply&&this.container.addClass("auto-apply"),(this.singleDatePicker||this.singleMonthView)&&(this.container.addClass("single"),this.container.find(".drp-calendar.left").addClass("single"),this.container.find(".drp-calendar.left").show(),this.container.find(".drp-calendar.right").hide(),!this.timePicker&&this.autoApply&&this.container.addClass("auto-apply")),(typeof t.ranges>"u"&&!this.singleDatePicker||this.alwaysShowCalendars)&&this.container.addClass("show-calendar"),this.container.addClass("opens"+this.opens),this.container.find(".applyBtn, .cancelBtn").addClass(this.buttonClasses),this.applyButtonClasses.length&&this.container.find(".applyBtn").addClass(this.applyButtonClasses),this.cancelButtonClasses.length&&this.container.find(".cancelBtn").addClass(this.cancelButtonClasses),this.container.find(".applyBtn").html(this.locale.applyLabel),this.container.find(".cancelBtn").html(this.locale.cancelLabel),this.container.find(".drp-calendar").on("click.daterangepicker",".prev",this.clickPrev.bind(this)).on("click.daterangepicker",".next",this.clickNext.bind(this)).on("mousedown.daterangepicker","td.available",this.clickDate.bind(this)).on("mouseenter.daterangepicker","td.available",this.hoverDate.bind(this)).on("change.daterangepicker","select.yearselect",this.monthOrYearChanged.bind(this)).on("change.daterangepicker","select.monthselect",this.monthOrYearChanged.bind(this)).on("change.daterangepicker","select.hourselect,select.minuteselect,select.secondselect,select.ampmselect",this.timeChanged.bind(this)),this.container.find(".ranges").on("click.daterangepicker","li",this.clickRange.bind(this)).on("mouseenter.daterangepicker","li",this.hoverRange.bind(this)).on("mouseleave.daterangepicker","li",this.leaveRange.bind(this)),this.container.find(".drp-buttons").on("click.daterangepicker","button.applyBtn",this.clickApply.bind(this)).on("click.daterangepicker","button.cancelBtn",this.clickCancel.bind(this)),this.element.is("input")||this.element.is("button")?this.element.on({"click.daterangepicker":this.show.bind(this),"focus.daterangepicker":this.show.bind(this),"keyup.daterangepicker":this.elementChanged.bind(this),"keydown.daterangepicker":this.keydown.bind(this)}):(this.element.on("click.daterangepicker",this.toggle.bind(this)),this.element.on("keydown.daterangepicker",this.toggle.bind(this))),this.updateElement()}get startDate(){return this.timePicker?this.#t:this.#t.startOf("day")}get endDate(){return this.singleDatePicker?null:this.timePicker?this.#e:this.#e.endOf("day")}set startDate(s){this.#t=s}set endDate(s){this.#e=s}setStartDate(s,t=!0){if(!this.singleDatePicker)return setRange(s,this.#e,t);const a=this.#t;let n=this.parseDate(s);if(n.equals(a))return null;const r=this.validateInput([n,null],!0);if(r!=null)if(r.newDate!=null)n=r.newDate.startDate;else return r;return this.#t=n,this.#e=this.#t,this.timePicker||(this.#t=this.#t.startOf("day"),this.#e=this.#e.endOf("day")),this.updateElement(),t&&this.updateView(),r}setEndDate(s,t=!0){return this.singleDatePicker?null:setRange(this.#t,s,t)}setRange(s,t,a=!0){if(this.singleDatePicker)return;this.#e||(this.#e=this.#t);const n=[this.#t,this.#e];let r=[this.parseDate(s),this.parseDate(t)];if(n[0].equals(r[0])&&n[1].equals(r[1])||r[0]>r[1])return;const i=this.validateInput([r[0],r[1]],!0);if(i!=null)if(i.newDate!=null)r[0]=i.newDate.startDate,r[1]=i.newDate.endDate;else return i;return this.#t=r[0],this.#e=r[1],this.timePicker||(this.#t=this.#t.startOf("day"),this.#e=this.#e.endOf("day")),this.updateElement(),a&&this.updateView(),i}parseDate(s){if(typeof s=="object"){if(h.isDateTime(s)&&s.isValid)return s;if(s instanceof Date)return h.fromJSDate(s);throw RangeError("Value must be a luxon.DateTime or Date or string")}else if(typeof s=="string"){const t=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format);if(h.fromISO(s).isValid)return h.fromISO(s);if(h.fromFormat(s,t,{locale:h.now().locale}).isValid)return h.fromFormat(s,t,{locale:h.now().locale});{const a=h.fromFormat(s,t,{locale:h.now().locale}).invalidExplanation;throw RangeError(`Value is not a valid string: ${a}`)}}}logDate(s){return this.timePicker?s.toISO({suppressMilliseconds:!0}):s.toISODate()}formatDate(s,t=this.locale.format){if(typeof t=="object")return s.toLocaleString(t);if(P.defaultLocale===null){const a=h.now().locale;return s.toFormat(t,{locale:a})}else return s.toFormat(t)}updateLabel(){if(this.showLabel){let s=this.formatDate(this.#t);this.singleDatePicker||(s+=this.locale.separator,this.#e&&(s+=this.formatDate(this.#e))),this.container.find(".drp-selected").html(s)}if(!(this.singleDatePicker||this.locale.durationFormat==null)){if(!this.#e){this.container.find(".drp-duration-label").html("");return}if(typeof this.locale.durationFormat=="function")this.container.find(".drp-duration-label").html(this.locale.durationFormat(this.#t,this.#e));else{let s=this.#e.plus({milliseconds:1}).diff(this.#t).rescale().set({milliseconds:0});this.timePicker||(s=s.set({seconds:0,minutes:0,hours:0})),s=s.removeZeros(),typeof this.locale.durationFormat=="object"?this.container.find(".drp-duration-label").html(s.toHuman(this.locale.durationFormat)):this.container.find(".drp-duration-label").html(s.toFormat(this.locale.durationFormat))}}}validateInput(s,t=!1){let a=s==null?this.#t:s[0],n=s==null?this.#e:s[1];if(a==null)return null;let r={startDate:{violations:[]}},i={old:a,reason:this.timePicker?"timePickerStepSize":"timePicker"};if(this.timePicker){const e=this.timePickerStepSize.as("seconds");a=h.fromSeconds(e*Math.round(a.toSeconds()/e)),i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i)}else a=a.startOf("day");const c=this.timePicker?this.timePickerStepSize.as("seconds"):D.fromObject({days:1}).as("seconds");this.minDate&&a<this.minDate?(i={old:a,reason:"minDate"},a=a.plus({seconds:Math.trunc(this.minDate.diff(a).as("seconds")/c)*c}),a<this.minDate&&(a=a.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i)):this.maxDate&&a>this.maxDate&&(i={old:a,reason:"maxDate"},a=a.minus({seconds:Math.trunc(a.diff(this.maxDate).as("seconds")/c)*c}),a>this.maxDate&&(a=a.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=a,i.new.equals(i.old)||r.startDate.violations.push(i));let o=["hour"];if(this.timePicker&&(this.timePickerOpts.showMinutes&&o.push("minute"),this.timePickerOpts.showSeconds&&o.push("second"),this.timePicker24Hour||o.push("ampm")),this.isInvalidDate(a)&&r.startDate.violations.push({old:a,reason:"isInvalidDate"}),this.timePicker)for(let e of o)this.isInvalidTime(a,e,"start")&&r.startDate.violations.push({old:a,reason:"isInvalidTime",unit:e});if(this.singleDatePicker){if(r.startDate.violations.length==0)return null;if(t){let e={startDate:a};return this.element.triggerHandler("violated.daterangepicker",[this,r,e])&&(r.newDate=e),r}else return r}if(n==null)return null;if(r.endDate={violations:[]},i={old:n,reason:this.timePicker?"stepSize":"timePicker"},this.timePicker){const e=this.timePickerStepSize.as("seconds");n=h.fromSeconds(e*Math.round(n.toSeconds()/e)),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i)}else n=n.endOf("day");if(this.maxDate&&n>this.maxDate?(i={old:n,reason:"maxDate"},n=n.minus({seconds:Math.trunc(n.diff(this.maxDate).as("seconds")/c)*c}),n>this.maxDate&&(n=n.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i)):this.minDate&&n<this.minDate&&(i={old:n,reason:"minDate"},n=n.plus({seconds:Math.trunc(this.minDate.diff(n).as("seconds")/c)*c}),n<this.minDate&&(n=n.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i)),this.maxSpan){const e=a.plus(this.maxSpan);n>e&&(i={old:n,reason:"maxSpan"},n=n.minus({seconds:Math.trunc(e.diff(n).as("seconds")/c)*c}),n>e&&(n=n.minus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i))}if(this.minSpan){const e=a.plus(this.defaultSpan??this.minSpan);n<e&&(i={old:n,reason:"minSpan"},n=n.plus({seconds:Math.trunc(e.diff(n).as("seconds")/c)*c}),n<e&&(n=n.plus(this.timePicker?this.timePickerStepSize:{days:1})),i.new=n,i.new.equals(i.old)||r.endDate.violations.push(i))}if(this.isInvalidDate(n)&&r.endDate.violations.push({old:n,reason:"isInvalidDate"}),this.timePicker)for(let e of o)this.isInvalidTime(n,e,"end")&&r.endDate.violations.push({old:n,reason:"isInvalidTime",unit:e});if(r.startDate.violations.length==0&&r.endDate.violations.length==0)return null;if(t){let e={startDate:a,endDate:n};return this.element.triggerHandler("violated.daterangepicker",[this,r,e])&&(r.newDate=e),r}else return r}updateView(){this.timePicker&&(this.element.trigger("beforeRenderTimePicker.daterangepicker",this),this.renderTimePicker("start"),this.renderTimePicker("end"),this.#e?this.container.find(".calendar-time.end-time select").prop("disabled",!1).removeClass("disabled"):this.container.find(".calendar-time.end-time select").prop("disabled",!0).addClass("disabled")),this.updateLabel(),this.updateMonthsInView(),this.updateCalendars(),this.setApplyBtnState()}updateMonthsInView(){if(this.#e){if(!this.singleDatePicker&&this.leftCalendar.month&&this.rightCalendar.month&&(this.#t.hasSame(this.leftCalendar.month,"month")||this.#t.hasSame(this.rightCalendar.month,"month"))&&(this.#e.hasSame(this.leftCalendar.month,"month")||this.#e.hasSame(this.rightCalendar.month,"month")))return;this.leftCalendar.month=this.#t.startOf("month"),this.singleMonthView||(!this.linkedCalendars&&!this.#e.hasSame(this.#t,"month")?this.rightCalendar.month=this.#e.startOf("month"):this.rightCalendar.month=this.#t.startOf("month").plus({month:1}))}else!this.#t&&this.initalMonth?(this.leftCalendar.month=this.initalMonth,this.singleMonthView||(this.rightCalendar.month=this.initalMonth.plus({month:1}))):!this.leftCalendar.month.hasSame(this.#t,"month")&&!this.rightCalendar.month.hasSame(this.#t,"month")&&(this.leftCalendar.month=this.#t.startOf("month"),this.rightCalendar.month=this.#t.startOf("month").plus({month:1}));this.maxDate&&this.linkedCalendars&&!this.singleDatePicker&&!this.singleMonthView&&this.rightCalendar.month>this.maxDate&&(this.rightCalendar.month=this.maxDate.startOf("month"),this.leftCalendar.month=this.maxDate.startOf("month").minus({month:1}))}updateCalendars(){if(this.timePicker){var s,t,a;this.#e?(s=parseInt(this.container.find(".start-time .hourselect").val(),10),isNaN(s)&&(s=parseInt(this.container.find(".start-time .hourselect option:last").val(),10)),t=0,this.timePickerOpts.showMinutes&&(t=parseInt(this.container.find(".start-time .minuteselect").val(),10),isNaN(t)&&(t=parseInt(this.container.find(".start-time .minuteselect option:last").val(),10))),a=0,this.timePickerOpts.showSeconds&&(a=parseInt(this.container.find(".start-time .secondselect").val(),10),isNaN(a)&&(a=parseInt(this.container.find(".start-time .secondselect option:last").val(),10)))):(s=parseInt(this.container.find(".end-time .hourselect").val(),10),isNaN(s)&&(s=parseInt(this.container.find(".end-time .hourselect option:last").val(),10)),t=0,this.timePickerOpts.showMinutes&&(t=parseInt(this.container.find(".end-time .minuteselect").val(),10),isNaN(t)&&(t=parseInt(this.container.find(".end-time .minuteselect option:last").val(),10))),a=0,this.timePickerOpts.showSeconds&&(a=parseInt(this.container.find(".end-time .secondselect").val(),10),isNaN(a)&&(a=parseInt(this.container.find(".end-time .secondselect option:last").val(),10)))),this.leftCalendar.month=this.leftCalendar.month.set({hour:s,minute:t,second:a}),this.singleMonthView||(this.rightCalendar.month=this.rightCalendar.month.set({hour:s,minute:t,second:a}))}else this.leftCalendar.month=this.leftCalendar.month.set({hour:0,minute:0,second:0}),this.singleMonthView||(this.rightCalendar.month=this.rightCalendar.month.set({hour:0,minute:0,second:0}));this.element.trigger("beforeRenderCalendar.daterangepicker",this),this.renderCalendar("left"),this.renderCalendar("right"),this.container.find(".ranges li").removeClass("active"),this.#e!=null&&this.calculateChosenLabel()}renderCalendar(s){if(s==="right"&&this.singleMonthView)return;var i=s==="left"?this.leftCalendar:this.rightCalendar;i.month==null&&!this.#t&&this.initalMonth&&(i.month=this.initalMonth.startOf("month"));const t=i.month.startOf("month"),a=i.month.endOf("month").startOf("day");var n=i.month.startOf("month").minus({day:1});const r={hour:i.month.hour,minute:i.month.minute,second:i.month.second};var i=[];i.firstDay=t,i.lastDay=a;for(var c=0;c<6;c++)i[c]=[];for(;n.weekday!=this.locale.firstDay;)n=n.minus({day:1});for(let f=0,g=-1;f<42;f++,n=n.plus({day:1}))f%7===0&&g++,i[g][f%7]=n.set(r);s==="left"?this.leftCalendar.calendar=i:this.rightCalendar.calendar=i;var o=s==="left"?this.minDate:this.#t,e=this.maxDate,l="<tr>";(this.showWeekNumbers||this.showISOWeekNumbers)&&(l+="<th></th>"),(!o||o<i.firstDay)&&(!this.linkedCalendars||s==="left")?l+='<th class="prev available"><span></span></th>':l+="<th></th>";var d=`${this.locale.monthNames[i.firstDay.month-1]} ${i.firstDay.year}`;if(this.showDropdowns){const f=(e&&e.year)??this.maxYear,g=(o&&o.year)??this.minYear;let C=this.externalStyle==="bulma"?'<div class="select is-small mr-1">':"";for(var u=`${C}<select class="monthselect">`,m=1;m<=12;m++)u+=`<option value="${m}"${m===i.firstDay.month?" selected":""}`,(o&&i.firstDay.set({month:m})<o.startOf("month")||e&&i.firstDay.set({month:m})>e.endOf("month"))&&(u+=" disabled"),u+=`>${this.locale.monthNames[m-1]}</option>`;u+="</select>",this.externalStyle==="bulma"&&(u+="</div>"),C=this.externalStyle==="bulma"?'<div class="select is-small ml-1">':"";for(var p=`${C}<select class="yearselect">`,k=g;k<=f;k++)p+=`<option value="${k}"${k===i.firstDay.year?" selected":""}>${k}</option>`;p+="</select>",this.externalStyle==="bulma"&&(p+="</div>"),d=u+p}l+='<th colspan="5" class="month">'+d+"</th>",(!e||e>i.lastDay.endOf("day"))&&(!this.linkedCalendars||s==="right"||this.singleDatePicker||this.singleMonthView)?l+='<th class="next available"><span></span></th>':l+="<th></th>",l+="</tr>",l+="<tr>",(this.showWeekNumbers||this.showISOWeekNumbers)&&(l+=`<th class="week">${this.locale.weekLabel}</th>`);for(let[f,g]of this.locale.daysOfWeek.entries())l+="<th",this.weekendDayClasses&&this.weekendDayClasses.length&&S.getWeekendWeekdays().includes(f+1)&&(l+=` class="${this.weekendDayClasses}"`),l+=`>${g}</th>`;if(l+="</tr>",this.container.find(".drp-calendar."+s+" .calendar-table thead").html(l),l="",this.#e==null&&this.maxSpan){var y=this.#t.plus(this.maxSpan).endOf("day");(!e||y<e)&&(e=y)}var v;this.#e==null&&this.minSpan&&(v=this.#t.plus(this.minSpan).startOf("day"));for(let f=0;f<6;f++){l+="<tr>",this.showISOWeekNumbers?l+='<td class="week">'+i[f][0].weekNumber+"</td>":this.showWeekNumbers&&(l+='<td class="week">'+i[f][0].localWeekNumber+"</td>");for(let g=0;g<7;g++){var b=[];this.todayClasses&&this.todayClasses.length&&i[f][g].hasSame(h.now(),"day")&&b.push(this.todayClasses),this.weekendClasses&&this.weekendClasses.length&&S.getWeekendWeekdays().includes(i[f][g].weekday)&&b.push(this.weekendClasses),i[f][g].month!=i[1][1].month&&b.push("off","ends"),this.minDate&&i[f][g].startOf("day")<this.minDate.startOf("day")&&b.push("off","disabled"),e&&i[f][g].startOf("day")>e.startOf("day")&&b.push("off","disabled"),v&&i[f][g].startOf("day")>this.#t.startOf("day")&&i[f][g].startOf("day")<v.startOf("day")&&b.push("off","disabled"),this.isInvalidDate(i[f][g])&&b.push("off","disabled"),this.#t!=null&&i[f][g].hasSame(this.#t,"day")&&b.push("active","start-date"),this.#e!=null&&i[f][g].hasSame(this.#e,"day")&&b.push("active","end-date"),this.#e!=null&&i[f][g]>this.#t&&i[f][g]<this.#e&&b.push("in-range");var w=this.isCustomDate(i[f][g]);w!==!1&&(typeof w=="string"?b.push(w):Array.prototype.push.apply(b,w)),b.includes("disabled")||b.push("available"),l+=`<td class="${b.join(" ")}" data-title="r${f}c${g}">${i[f][g].day}</td>`}l+="</tr>"}this.container.find(".drp-calendar."+s+" .calendar-table tbody").html(l)}renderTimePicker(s){if(s==="end"&&!this.#e)return;var t,a,n,r=this.maxDate;let i="";if((this.showWeekNumbers||this.showISOWeekNumbers)&&(i+="<th></th>"),this.maxSpan&&(!this.maxDate||this.#t.plus(this.maxSpan)<this.maxDate)&&(r=this.#t.plus(this.maxSpan)),this.minSpan&&s==="end"&&(a=this.#t.plus(this.defaultSpan??this.minSpan)),s==="start")t=this.#t,n=this.minDate;else if(s==="end"){t=this.#e,n=this.#t;var c=this.container.find(".drp-calendar .calendar-time.end-time");c.html()!=""&&(t=t.set({hour:isNaN(t.hour)?c.find(".hourselect option:selected").val():t.hour,minute:isNaN(t.minute)?c.find(".minuteselect option:selected").val():t.minute,second:isNaN(t.second)?c.find(".secondselect option:selected").val():t.second})),t<this.#t&&(t=this.#t),r&&t>r&&(t=r)}i+='<th colspan="7">',this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="hourselect">';const o=t.toFormat("a",{locale:"en-US"});let e=0;this.timePicker24Hour||(e=o==="AM"?1:13);for(var l=e;l<=e+23;l+=this.timePickerOpts.hourStep){let p=t.set({hour:l%24}),k=!1;if(n&&p.set({minute:59})<n&&(k=!0),r&&p.set({minute:0})>r&&(k=!0),a&&p.endOf("hour")<a&&(k=!0),!k&&this.isInvalidTime(p,this.singleDatePicker?null:s,"hour")&&(k=!0),this.timePicker24Hour)!k&&l==t.hour?i+=`<option value="${l}" selected>${l}</option>`:k?i+=`<option value="${l}" disabled class="disabled">${l}</option>`:i+=`<option value="${l}">${l}</option>`;else{const y=h.fromFormat(`${l%24}`,"H").toFormat("h"),v=h.fromFormat(`${l%24}`,"H").toFormat("a",{locale:"en-US"});o==v?!k&&l==t.hour?i+=`<option ampm="${v}" value="${l%24}" selected>${y}</option>`:k?i+=`<option ampm="${v}" value="${l%24}" disabled class="disabled">${y}</option>`:i+=`<option ampm="${v}" value="${l%24}">${y}</option>`:i+=`<option ampm="${v}" hidden="hidden" value="${l%24}">${y}</option>`}}if(i+="</select>",this.externalStyle==="bulma"&&(i+="</div>"),this.timePickerOpts.showMinutes){i+=" : ",this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="minuteselect">';for(var l=0;l<60;l+=this.timePickerOpts.minuteStep){var d=l<10?"0"+l:l;let k=t.set({minute:l}),y=!1;n&&k.set({second:59})<n&&(y=!0),r&&k.set({second:0})>r&&(y=!0),a&&k.endOf("minute")<a&&(y=!0),!y&&this.isInvalidTime(k,this.singleDatePicker?null:s,"minute")&&(y=!0),t.minute==l&&!y?i+=`<option value="${l}" selected>${d}</option>`:y?i+=`<option value="${l}" disabled class="disabled">${d}</option>`:i+=`<option value="${l}">${d}</option>`}i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}if(this.timePickerOpts.showSeconds){i+=" : ",this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="secondselect">';for(var l=0;l<60;l+=this.timePickerOpts.secondStep){var d=l<10?"0"+l:l;let y=t.set({second:l}),v=!1;n&&y<n&&(v=!0),r&&y>r&&(v=!0),a&&y<a&&(v=!0),!v&&this.isInvalidTime(y,this.singleDatePicker?null:s,"second")&&(v=!0),t.second==l&&!v?i+=`<option value="${l}" selected>${d}</option>`:v?i+=`<option value="${l}" disabled class="disabled">${d}</option>`:i+=`<option value="${l}">${d}</option>`}i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}if(!this.timePicker24Hour){this.externalStyle==="bulma"&&(i+='<div class="select is-small mx-1">'),i+='<select class="ampmselect">';var u="",m="";let p=!1;n&&t.startOf("day")<n&&(p=!0),r&&t.endOf("day")>r&&(p=!0),a&&t.startOf("day")<a&&(p=!0),p?(u=' disabled class="disabled "',m=' disabled class="disabled"'):this.isInvalidTime(t,this.singleDatePicker?null:s,"ampm")&&(t.toFormat("a",{locale:"en-US"})==="AM"?m=' disabled class="disabled"':u=' disabled class="disabled"'),i+=`<option value="AM"${u}`,t.toFormat("a",{locale:"en-US"})==="AM"&&(i+=" selected"),i+=`>${S.meridiems()[0]}</option><option value="PM"${m}`,t.toFormat("a",{locale:"en-US"})==="PM"&&(i+=" selected"),i+=`>${S.meridiems()[1]}</option>`,i+="</select>",this.externalStyle==="bulma"&&(i+="</div>")}i+="</div></th>",this.container.find(`.drp-calendar .calendar-time.${s}-time`).html(i)}setApplyBtnState(){this.singleDatePicker||this.#e&&this.#t<=this.#e?this.container.find("button.applyBtn").prop("disabled",!1):this.container.find("button.applyBtn").prop("disabled",!0)}move(){var s={top:0,left:0},t,a=this.drops,n=$(window).width();switch(this.parentEl.is("body")||(s={top:this.parentEl.offset().top-this.parentEl.scrollTop(),left:this.parentEl.offset().left-this.parentEl.scrollLeft()},n=this.parentEl[0].clientWidth+this.parentEl.offset().left),a){case"auto":t=this.element.offset().top+this.element.outerHeight()-s.top,t+this.container.outerHeight()>=this.parentEl[0].scrollHeight&&(t=this.element.offset().top-this.container.outerHeight()-s.top,a="up");break;case"up":t=this.element.offset().top-this.container.outerHeight()-s.top;break;default:t=this.element.offset().top+this.element.outerHeight()-s.top;break}this.container.css({top:0,left:0,right:"auto"});var r=this.container.outerWidth();if(this.container.toggleClass("drop-up",a==="up"),this.opens==="left"){var i=n-this.element.offset().left-this.element.outerWidth();r+i>$(window).width()?this.container.css({top:t,right:"auto",left:9}):this.container.css({top:t,right:i,left:"auto"})}else if(this.opens==="center"){var c=this.element.offset().left-s.left+this.element.outerWidth()/2-r/2;c<0?this.container.css({top:t,right:"auto",left:9}):c+r>$(window).width()?this.container.css({top:t,left:"auto",right:0}):this.container.css({top:t,left:c,right:"auto"})}else{var c=this.element.offset().left-s.left;c+r>$(window).width()?this.container.css({top:t,left:"auto",right:0}):this.container.css({top:t,left:c,right:"auto"})}}show(){this.isShowing||(this._outsideClickProxy=function(s){this.outsideClick(s)}.bind(this),$(document).on("mousedown.daterangepicker",this._outsideClickProxy).on("touchend.daterangepicker",this._outsideClickProxy).on("click.daterangepicker","[data-toggle=dropdown]",this._outsideClickProxy).on("focusin.daterangepicker",this._outsideClickProxy),$(window).on("resize.daterangepicker",function(s){this.move(s)}.bind(this)),this.oldStartDate=this.#t,this.oldEndDate=this.#e,this.updateView(),this.container.show(),this.move(),this.element.trigger("show.daterangepicker",this),this.isShowing=!0)}hide(){this.isShowing&&(this.#e||(this.#t=this.oldStartDate,this.#e=this.oldEndDate),(!this.#t.equals(this.oldStartDate)||!this.#e.equals(this.oldEndDate))&&this.callback(this.startDate,this.endDate,this.chosenLabel),this.updateElement(),!this.element.triggerHandler("beforeHide.daterangepicker",this)&&($(document).off(".daterangepicker"),$(window).off(".daterangepicker"),this.container.hide(),this.element.trigger("hide.daterangepicker",this),this.isShowing=!1))}toggle(){this.isShowing?this.hide():this.show()}outsideClick(s){var t=$(s.target);s.type==="focusin"||t.closest(this.element).length||t.closest(this.container).length||t.closest(".calendar-table").length||(this.onOutsideClick==="cancel"&&(this.#t=this.oldStartDate,this.#e=this.oldEndDate),this.hide(),this.element.trigger("outsideClick.daterangepicker",this))}showCalendars(){this.container.addClass("show-calendar"),this.move(),this.element.trigger("showCalendar.daterangepicker",this)}hideCalendars(){this.container.removeClass("show-calendar"),this.element.trigger("hideCalendar.daterangepicker",this)}clickRange(s){var t=s.target.getAttribute("data-range-key");if(this.chosenLabel=t,t==this.locale.customRangeLabel)this.showCalendars();else{var a=this.ranges[t];this.#t=a[0],this.#e=a[1],this.timePicker||(this.#t.startOf("day"),this.#e.endOf("day")),this.alwaysShowCalendars||this.hideCalendars(),this.element.triggerHandler("beforeHide.daterangepicker",this)&&this.updateView(),this.clickApply()}}clickPrev(s){var t=$(s.target).parents(".drp-calendar");t.hasClass("left")?(this.leftCalendar.month=this.leftCalendar.month.minus({month:1}),this.linkedCalendars&&!this.singleMonthView&&(this.rightCalendar.month=this.rightCalendar.month.minus({month:1}))):this.rightCalendar.month=this.rightCalendar.month.minus({month:1}),this.updateCalendars()}clickNext(s){var t=$(s.target).parents(".drp-calendar");t.hasClass("left")?this.leftCalendar.month=this.leftCalendar.month.plus({month:1}):(this.rightCalendar.month=this.rightCalendar.month.plus({month:1}),this.linkedCalendars&&(this.leftCalendar.month=this.leftCalendar.month.plus({month:1}))),this.updateCalendars()}hoverDate(s){if(!$(s.target).hasClass("available"))return;let t=$(s.target).attr("data-title");const a=t.substring(1,2),n=t.substring(3,4);var i=$(s.target).parents(".drp-calendar").hasClass("left")?this.leftCalendar.calendar[a][n]:this.rightCalendar.calendar[a][n];const c=this.leftCalendar,o=this.rightCalendar,e=this.#t,l=this.initalMonth;this.#e||this.container.find(".drp-calendar tbody td").each(function(d,u){if($(u).hasClass("week"))return;const m=$(u).attr("data-title"),p=m.substring(1,2),k=m.substring(3,4),v=$(u).parents(".drp-calendar").hasClass("left")?c.calendar[p][k]:o.calendar[p][k];!e&&l?$(u).removeClass("in-range"):v>e&&v<i||v.hasSame(i,"day")?$(u).addClass("in-range"):$(u).removeClass("in-range")})}hoverRange(s){const t=s.target.getAttribute("data-range-key"),a=[this.#t,this.#e],n=this.ranges[t]??[this.#t,this.#e],r=this.leftCalendar,i=this.rightCalendar;this.container.find(".drp-calendar tbody td").each(function(c,o){if($(o).hasClass("week"))return;const e=$(o).attr("data-title"),l=e.substring(1,2),d=e.substring(3,4),m=$(o).parents(".drp-calendar").hasClass("left")?r.calendar[l][d]:i.calendar[l][d];let p=!1;m.hasSame(n[0],"day")&&(p=$(o).addClass("start-hover").length>0),m.hasSame(a[0],"day")&&(p=$(o).addClass("start-date").length>0),m.hasSame(n[1],"day")&&(p=$(o).addClass("end-hover").length>0),a[1]!=null&&m.hasSame(a[1],"day")&&(p=$(o).addClass("end-date").length>0),m.startOf("day")>=n[0].startOf("day")&&m.startOf("day")<=n[1].startOf("day")&&(p=$(o).addClass("range-hover").length>0),m.startOf("day")>=a[0].startOf("day")&&a[1]!=null&&m.startOf("day")<=a[1].startOf("day")&&(p=$(o).addClass("in-range").length>0),p||($(o).removeClass("start-hover"),$(o).removeClass("end-hover"),$(o).removeClass("start-date"),$(o).removeClass("end-date"),$(o).removeClass("in-range"),$(o).removeClass("range-hover"))})}leaveRange(s){this.container.find(".drp-calendar tbody td").each(function(t,a){$(a).hasClass("week")||($(a).removeClass("start-hover"),$(a).removeClass("end-hover"),$(a).removeClass("range-hover"))})}clickDate(s){if(!$(s.target).hasClass("available"))return;var t=$(s.target).attr("data-title"),a=t.substring(1,2),n=t.substring(3,4),r=$(s.target).parents(".drp-calendar"),i=r.hasClass("left")?this.leftCalendar.calendar[a][n]:this.rightCalendar.calendar[a][n];let c;if(this.#e||!this.#t||i<this.#t.startOf("day")){if(this.timePicker){let o=parseInt(this.container.find(".start-time .hourselect").val(),10);isNaN(o)&&(o=parseInt(this.container.find(".start-time .hourselect option:last").val(),10));let e=0;this.timePickerOpts.showMinutes&&(e=parseInt(this.container.find(".start-time .minuteselect").val(),10),isNaN(e)&&(e=parseInt(this.container.find(".start-time .minuteselect option:last").val(),10)));let l=0;this.timePickerOpts.showSeconds&&(l=parseInt(this.container.find(".start-time .secondselect").val(),10),isNaN(l)&&(l=parseInt(this.container.find(".start-time .secondselect option:last").val(),10))),i=i.set({hour:o,minute:e,second:l})}else i=i.startOf("day");this.#e=null,this.#t=i,c="start"}else if(!this.#e&&i<this.#t)this.#e=this.#t,c="end";else{if(this.timePicker){let o=parseInt(this.container.find(".end-time .hourselect").val(),10);isNaN(o)&&(o=parseInt(this.container.find(".end-time .hourselect option:last").val(),10));let e=0;this.timePickerOpts.showMinutes&&(e=parseInt(this.container.find(".end-time .minuteselect").val(),10),isNaN(e)&&(e=parseInt(this.container.find(".end-time .minuteselect option:last").val(),10)));let l=0;this.timePickerOpts.showSeconds&&(l=parseInt(this.container.find(".end-time .secondselect").val(),10),isNaN(l)&&(l=parseInt(this.container.find(".end-time .secondselect option:last").val(),10))),i=i.set({hour:o,minute:e,second:l})}else i=i.endOf("day");this.#e=i,this.autoApply&&(this.calculateChosenLabel(),this.clickApply()),c="end"}this.singleDatePicker&&(this.#e=this.#t,!this.timePicker&&this.autoApply&&this.clickApply(),c=null),this.updateView(),s.stopPropagation(),this.autoUpdateInput&&this.updateElement(),this.element.trigger("dateChange.daterangepicker",[this,c])}calculateChosenLabel(){var s=!0,t=0;for(var a in this.ranges){var n=this.timePicker?"hour":"day";if(this.timePicker&&(this.timePickerOpts.showMinutes?n="minute":this.timePickerOpts.showSeconds&&(n="second")),this.#t.startOf(n).equals(this.ranges[a][0].startOf(n))&&this.#e.startOf(n).equals(this.ranges[a][1].startOf(n))){s=!1,this.chosenLabel=this.container.find(".ranges li:eq("+t+")").addClass("active").attr("data-range-key");break}t++}s&&(this.showCustomRangeLabel?this.chosenLabel=this.container.find(".ranges li:last").addClass("active").attr("data-range-key"):this.chosenLabel=null,this.showCalendars())}clickApply(){this.hide(),this.element.trigger("apply.daterangepicker",this)}clickCancel(){this.#t=this.oldStartDate,this.#e=this.oldEndDate,this.hide(),this.element.trigger("cancel.daterangepicker",this)}monthOrYearChanged(s){var t=$(s.target).closest(".drp-calendar").hasClass("left"),a=t?"left":"right",n=this.container.find(".drp-calendar."+a),r=parseInt(n.find(".monthselect").val(),10),i=n.find(".yearselect").val();t||(i<this.#t.year||i==this.#t.year&&r<this.#t.month)&&(r=this.#t.month,i=this.#t.year),this.minDate&&(i<this.minDate.year||i==this.minDate.year&&r<this.minDate.month)&&(r=this.minDate.month,i=this.minDate.year),this.maxDate&&(i>this.maxDate.year||i==this.maxDate.year&&r>this.maxDate.month)&&(r=this.maxDate.month,i=this.maxDate.year),t?(this.leftCalendar.month=this.leftCalendar.month.set({year:i,month:r}),this.linkedCalendars&&(this.rightCalendar.month=this.leftCalendar.month.plus({month:1}))):(this.rightCalendar.month=this.rightCalendar.month.set({year:i,month:r}),this.linkedCalendars&&(this.leftCalendar.month=this.rightCalendar.month.minus({month:1}))),this.updateCalendars()}timeChanged(s){const t=$(s.target).closest(".calendar-time"),a=t.hasClass("start-time")?"start":"end";var n=parseInt(t.find(".hourselect").val(),10);if(isNaN(n)&&(n=parseInt(t.find(".hourselect option:last").val(),10)),!this.timePicker24Hour){const c=t.find(".ampmselect").val();if(c==null&&t.find(".ampmselect option:last").val(),c!=h.fromFormat(`${n}`,"H").toFormat("a",{locale:"en-US"})){t.find(".hourselect > option").each(function(){const e=$(this).attr("hidden")||!1;$(this).attr("hidden",e)});const o=h.fromFormat(`${n}`,"H").toFormat("h");n=h.fromFormat(`${o}${c}`,"ha",{locale:"en-US"}).hour}}var r=0;this.timePickerOpts.showMinutes&&(r=parseInt(t.find(".minuteselect").val(),10),isNaN(r)&&(r=parseInt(t.find(".minuteselect option:last").val(),10)));var i=0;this.timePickerOpts.showSeconds&&(i=parseInt(t.find(".secondselect").val(),10),isNaN(i)&&(i=parseInt(t.find(".secondselect option:last").val(),10))),a==="start"?(this.#t&&(this.#t=this.#t.set({hour:n,minute:r,second:i})),this.singleDatePicker?this.#e=this.#t:this.#e&&this.#e.hasSame(this.#t,"day")&&this.#e<this.#t&&(this.#e=this.#t)):this.#e&&(this.#e=this.#e.set({hour:n,minute:r,second:i})),this.updateCalendars(),this.setApplyBtnState(),this.element.trigger("beforeRenderTimePicker.daterangepicker",this),this.renderTimePicker("start"),this.renderTimePicker("end"),this.autoUpdateInput&&this.updateElement(),this.element.trigger("timeChange.daterangepicker",[this,this.singleDatePicker?null:a])}elementChanged(){if(!this.element.is("input:text")||!this.element.val().length)return;const s=typeof this.locale.format=="string"?this.locale.format:h.parseFormatForOpts(this.locale.format),t=this.element.val().split(this.locale.separator);if(this.singleDatePicker){let a=h.fromFormat(this.element.val(),s,{locale:h.now().locale});const n=this.#t;if(!a.isValid||n.equals(a))return;const r=this.validateInput([a,null],!0);if(r!=null)if(r.newDate!=null)a=r.newDate.startDate;else return;this.#t=a,this.#e=this.#t,this.timePicker||(this.#t=this.#t.startOf("day"),this.#e=this.#e.endOf("day"))}else if(!this.singleDatePicker&&t.length===2){const a=[0,1].map(i=>h.fromFormat(t[i],s,{locale:h.now().locale})),n=[this.#t,this.#e];if(!a[0].isValid||!a[1].isValid||n[0].equals(a[0])&&n[1].equals(a[1])||a[0]>a[1])return;const r=this.validateInput([a[0],a[1]],!0);if(r!=null)if(r.newDate!=null)a[0]=r.newDate.startDate,a[1]=r.newDate.endDate;else return;this.#t=a[0],this.#e=a[1],this.timePicker||(this.#t=this.#t.startOf("day"),this.#e=this.#e.endOf("day"))}else return;this.updateView(),this.updateElement(),this.element.trigger("inputChanged.daterangepicker",this)}keydown(s){(s.keyCode===9||s.keyCode===13)&&this.hide(),s.keyCode===27&&(s.preventDefault(),s.stopPropagation(),this.hide())}updateElement(){if(!(this.#t==null&&this.initalMonth))if(this.element.is("input:text")){let s=this.formatDate(this.#t);this.singleDatePicker||(s+=this.locale.separator,this.#e&&(s+=this.formatDate(this.#e))),this.updateAltInput(),s!==this.element.val()&&this.element.val(s).trigger("change")}else this.updateAltInput()}updateAltInput(){if(this.altInput!=null)if(this.singleDatePicker&&$(this.altInput[1]).val(null),this.altFormat==null){let s="day";this.timePicker&&(this.timePickerOpts.showSeconds?s="second":this.timePickerOpts.showMinutes?s="minute":s="hour");const t=this.#t.toISO({format:"basic",precision:s,includeOffset:!1});if($(this.singleDatePicker?this.altInput:this.altInput[0]).val(t),!this.singleDatePicker&&this.#e){const a=this.#e.toISO({format:"basic",precision:s,includeOffset:!1});$(this.altInput[1]).val(a)}}else{const s=typeof this.altFormat=="function"?this.altFormat(this.#t):this.formatDate(this.#t,this.altFormat);if($(this.singleDatePicker?this.altInput:this.altInput[0]).val(s),!this.singleDatePicker&&this.#e){const t=typeof this.altFormat=="function"?this.altFormat(this.#e):this.formatDate(this.#e,this.altFormat);$(this.altInput[1]).val(t)}}}remove(){this.container.remove(),this.element.off(".daterangepicker"),this.element.removeData()}}$.fn.daterangepicker||($.fn.daterangepicker=function(O,s){const t=$.extend(!0,{},$.fn.daterangepicker.defaultOptions,O);return this.each(function(){const a=$(this);a.data("daterangepicker")&&a.data("daterangepicker").remove(),a.data("daterangepicker",new I(a,t,s))}),this});})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wernfried/daterangepicker",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.17.0",
|
|
4
4
|
"description": "Date range picker with time component and pre-defined ranges",
|
|
5
5
|
"main": "dist/global/daterangepicker.js",
|
|
6
6
|
"module": "dist/esm/daterangepicker.js",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"source": "src/daterangepicker.js",
|
|
12
12
|
"type": "module",
|
|
13
13
|
"scripts": {
|
|
14
|
+
"postversion": "sed -bi -e 's/daterangepicker@[[:digit:]]\\.[[:digit:]]\\+\\.[[:digit:]]\\+/daterangepicker@%npm_package_version%/' README.md",
|
|
14
15
|
"prebuild": "cat src/global.js > src/__daterangepicker.js && sed -b -E \"s/^(im|ex)port .*//\" src/daterangepicker.js >> src/__daterangepicker.js",
|
|
15
16
|
"build": "npm run build_esm && npm run build_global",
|
|
16
17
|
"postbuild": "npm run minify_esm && npm run minify_global && npm run minify_css",
|
|
@@ -19,10 +20,9 @@
|
|
|
19
20
|
"minify_esm": "esbuild src/daterangepicker.js --outfile=dist/esm/daterangepicker.min.js --minify --format=esm",
|
|
20
21
|
"minify_global": "esbuild src/__daterangepicker.js --outfile=dist/global/daterangepicker.min.js --minify --format=iife --global-name=DateRangePicker",
|
|
21
22
|
"minify_css": "minify css/daterangepicker.css > css/daterangepicker.min.css && minify css/daterangepicker.bulma.css > css/daterangepicker.bulma.min.css",
|
|
22
|
-
"postversion": "sed -bi -e 's/daterangepicker@[[:digit:]]\\.[[:digit:]]\\+\\.[[:digit:]]\\+/daterangepicker@%npm_package_version%/' README.md",
|
|
23
23
|
"unix2dos": "unix2dos dist/esm/*.js dist/global/*.js css/*.min.css",
|
|
24
|
-
"prepack": "sed -bi '
|
|
25
|
-
"prepare": "jsdoc2md --EOL win32 --example-lang js src/daterangepicker.js >> README.md",
|
|
24
|
+
"prepack": "sed -bi '/API_Doc\\.md/q' README.md && npm run build && npm run unix2dos",
|
|
25
|
+
"prepare": "jsdoc2md --EOL win32 --example-lang js src/daterangepicker.js > API_Doc.md && sed -n '/## Options$/,$p' API_Doc.md >> README.md",
|
|
26
26
|
"postpack": "git commit -a -m \"Updated README.md\"",
|
|
27
27
|
"test": "node --experimental-vm-modules --no-warnings ./node_modules/jest/bin/jest.js --runInBand"
|
|
28
28
|
},
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"jest": "^30.3.0",
|
|
40
40
|
"jest-environment-jsdom": "^30.3.0",
|
|
41
41
|
"jsdoc-to-markdown": "^9.1.3",
|
|
42
|
+
"jsdoc2md": "^1.0.0",
|
|
42
43
|
"minify": "^15.2.0"
|
|
43
44
|
},
|
|
44
45
|
"author": {
|
|
@@ -57,7 +58,8 @@
|
|
|
57
58
|
],
|
|
58
59
|
"files": [
|
|
59
60
|
"/dist",
|
|
60
|
-
"/css"
|
|
61
|
+
"/css",
|
|
62
|
+
"API_Doc.md"
|
|
61
63
|
],
|
|
62
64
|
"license": "MIT",
|
|
63
65
|
"bugs": {
|