@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 14.2 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js"),require("kendo.multiviewcalendar.js"),require("kendo.datepicker.js"),require("kendo.html.button.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.multiviewcalendar","kendo.datepicker","kendo.html.button"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Daterangepicker={}))}(this,(function(e){!function(e,t){let n=window.kendo,a=n.ui,i=n.html,r=n.keys,o=n.mediaQuery,l=a.Widget,s="month",d="open",u="close",p="change",c=n.template,_=e.extend,g=n.support,f=g.mobileOS,m="aria-expanded",b="aria-disabled",h="aria-activedescendant",v="k-disabled",D="k-hidden",w="disabled",k="readonly",I="aria-hidden",y="start",C="end",x=".kendoDateRangePicker",V="click"+x,B="mousedown"+x,A=g.mouseAndTouchPresent?n.applyEventMap("up",x.slice(1)):V,M=n.parseDate;var T=function(e){n.DateView.call(this,e)};function L(e){e.preventDefault()}(T.prototype=Object.create(n.DateView.prototype))._calendar=function(){var t,i=this,r=i.calendar,o=i.options;if(!r){var l=i.popup._content||i.popup.element;"auto"!=o.adaptiveMode||i.bigScreenMQL.mediaQueryList.matches||(l=l.append(e('<div class="k-scrollable-wrap"></div>')).find(".k-scrollable-wrap")),t=e("<div />").attr("id",n.guid()).appendTo(l),i.calendar=r=new a.MultiViewCalendar(t,{size:"auto"!=o.adaptiveMode||i.bigScreenMQL.mediaQueryList.matches?o.size||"medium":"large",orientation:"auto"!=o.adaptiveMode||i.bigScreenMQL.mediaQueryList.matches?"horizontal":"vertical",views:"auto"!=o.adaptiveMode||i.bigScreenMQL.mediaQueryList.matches?2:1}),i._setOptions(o),r.navigate(i._value||i._current,o.start),i._range=i._range||o.range||{},t.on(B,L).on(V,"td:has(.k-link)",i._click.bind(i)),i.calendar.selectRange(i._range)}},T.prototype._setOptions=function(e){this.calendar.setOptions({allowReverse:e.allowReverse,focusOnNav:!1,change:e.change,culture:e.culture,dates:e.dates,depth:e.depth,footer:e.footer,format:e.format,selectable:e.selectable,max:e.max,min:e.min,month:e.month,weekNumber:e.weekNumber,start:e.start,disableDates:e.disableDates,range:e.range,size:"auto"!=e.adaptiveMode||this.bigScreenMQL.mediaQueryList.matches?e.size||"medium":"large"})},T.prototype.range=function(e){this._range=e,this.calendar&&(e.start||e.end?this.calendar.selectRange(e):(this.calendar.selectRange(e),this.calendar.rangeSelectable.clear()))},T.prototype.move=function(e){var t=this,n=e.keyCode,a=t.calendar,i=e.ctrlKey&&n==r.DOWN||n==r.ENTER,o=!1;if(e.altKey)n==r.DOWN?(t.open(),e.preventDefault(),o=!0):n==r.UP&&(t.close(),e.preventDefault(),o=!0);else if(t.popup.visible()){if(n==r.ESC||i&&a._cell.hasClass("k-selected"))return t.close(),e.preventDefault(),!0;t._current=a._move(e),o=!0}return o},T.prototype._click=function(t){this.options.autoClose&&(f.ios||f.android&&("firefox"==f.browser||"chrome"==f.browser)?this._range&&this._range.end&&this.close():this._range&&this._range.start&&this._range.end&&e(t.currentTarget).closest(".k-calendar-view").is(".k-calendar-monthview")&&this.close())},n.DateRangeView=T;var z=l.extend({init:function(e,t){var a=this;l.fn.init.call(a,e,t),e=a.element,(t=a.options).disableDates=n.calendar.disabled(t.disableDates),t.min=M(e.attr("min"))||M(t.min),t.max=M(e.attr("max"))||M(t.max),t.inputMode=t.inputMode||e.attr("inputmode")||"text",a._initialOptions=_({},t),a._buildHTML(),a._range=a.options.range,a._changeTriggered=!1,a._initializeDateView(),a._initializeDateViewProxy=a._initializeDateView.bind(a),a.bigScreenMQL=o("large"),a.bigScreenMQL.onChange((()=>{a._initializeDateViewProxy()})),a._ariaTemplate=c(this.options.ARIATemplate).bind(a),a._reset(),a._aria(),a._inputs.on(A+x,a._click.bind(a)).on("keydown"+x,a._keydown.bind(a)),a._initializeDateInputs(),a._expandButton(),a._clearButton(),e.is("[disabled]")?a.enable(!1):a.readonly(e.is("[readonly]"))},options:{name:"DateRangePicker",labels:!0,autoAdjust:!0,allowReverse:!1,autoClose:!0,calendarButton:!1,clearButton:!1,footer:"",format:"",culture:"",min:new Date(1900,0,1),max:new Date(2099,11,31),start:s,depth:s,adaptiveMode:"none",animation:{},month:{},startField:"",endField:"",dates:[],disableDates:null,range:null,ARIATemplate:({valueType:e,text:t})=>`Current focused ${e} is ${t}`,weekNumber:!1,messages:{startLabel:"Start",endLabel:"End"},size:"medium",fillMode:"solid",rounded:"medium"},events:[d,u,p],setOptions:function(e){var t=this;l.fn.setOptions.call(t,e),(e=t.options).min=M(e.min),e.max=M(e.max),t._inputs.off(x),t._initializeDateInputs(),t.dateView.setOptions(e),t._expandButton(),t._clearButton(),t._range=e.range},_aria:function(){this._inputs.attr({role:"combobox","aria-haspopup":"grid","aria-expanded":!1,"aria-controls":this.dateView._dateViewID,autocomplete:"off"})},_clearButton:function(){let t=this,a=t.options,i=t._startInput,r=t._endInput,o=t.range();a.clearButton&&(t._startClearButton||(t._startClearButton=e(`<span unselectable="on" class="k-clear-value ${o&&o.start?"":"k-hidden"}" title="Clear the start date value">${n.ui.icon("x")}</span>`).attr({role:"button",tabIndex:-1}).insertAfter(i).on("click",t._clearValue.bind(t))),t._endClearButton||(t._endClearButton=e(`<span unselectable="on" class="k-clear-value ${o&&o.start?"":"k-hidden"}" title="Clear the end date value">${n.ui.icon("x")}</span>`).attr({role:"button",tabIndex:-1}).insertAfter(r).on("click",t._clearValue.bind(t))))},_expandButton:function(){let t,n,a=this,r=a._startInput,o=a._endInput,l=a.options;l.calendarButton&&(t=r.next("button.k-input-button"),n=o.next("button.k-input-button"),t[0]||(t=e(i.renderButton('<button aria-label="select" tabindex="-1" class="k-input-button k-button k-icon-button"></button>',{icon:"calendar",size:l.size,fillMode:l.fillMode,shape:"none",rounded:"none"})).insertAfter(r)),n[0]||(n=e(i.renderButton('<button aria-label="select" tabindex="-1" class="k-input-button k-button k-icon-button"></button>',{icon:"calendar",size:l.size,fillMode:l.fillMode,shape:"none",rounded:"none"})).insertAfter(o)),a._startDateButton=t.attr({role:"button"}).on(V,a._expandButtonClick.bind(a)),a._endDateButton=n.attr({role:"button"}).on(V,a._expandButtonClick.bind(a)))},_click:function(){let e=this;e.options.calendarButton||e._preventInputAction||e.dateView.popup.visible()||e.dateView.open()},_toggleClearButton:function(e,t){let n=this;e&&n.options.clearButton&&(e===y&&n._startClearButton.toggleClass(D,!t),e===C&&n._endClearButton.toggleClass(D,!t))},_clearValue:function(t){let n=this,a=e(t.target).closest(".k-input").find(".k-input-inner").data("input"),i=n._startDateInput,r=n._endDateInput,o=n.range();a===y&&(i.value(null),i.trigger(p),n.range({start:null,end:o.end})),a===C&&(r.value(null),r.trigger(p),n.range({start:o.start,end:null})),n._toggleClearButton(a,!1)},_expandButtonClick:function(t){let n=this;n._preventInputAction||n.dateView.popup.visible()||(n.dateView.open(),e(t.target).closest(".k-input").find(".k-input-inner").trigger("focus"))},_keydown:function(e){var t,n=this,a=n.dateView;n._preventInputAction?e.stopImmediatePropagation():(t=a.move(e),n._updateARIA(a._current),t&&e.stopImmediatePropagation&&e.stopImmediatePropagation())},_updateARIA:function(t){var n=this,a=n.dateView.calendar;n._inputs&&n._inputs.length&&n._inputs.removeAttr(h),a&&(t&&!a._dateInViews(t)&&a.navigate(t),e.contains(n.element[0],document.activeElement)&&n._inputs.attr(h,a._updateAria(n._ariaTemplate,t)))},_inputFocus:function(t){let n=this,a=n.range();n._currentTarget!==e(t.target).data("input")&&(n._currentTarget=e(t.target).data("input"),a?(a.start=n._startDateInput.value(),a.end=n._endDateInput.value(),n.range(a)):n.range({start:null,end:null}))},_startChange:function(e){var t=this,n=e.sender.value(),a=t._endDateInput.value();t.options.disableDates(n)&&(e.sender.value(null),n=null),t.range({start:n,end:a}),t._changeTriggered||t.trigger(p),t._toggleClearButton(y,null!==n)},_endChange:function(e){var t=this,n=e.sender.value(),a=t._startDateInput.value();t.options.disableDates(n)&&(e.sender.value(null),n=null),t.range({start:a,end:n}),t._changeTriggered||t.trigger(p),e.blur||(t._currentTarget===C?a&&t.options.autoClose?t._endDateInput.dateInputInstance.focus():t._startDateInput.dateInputInstance.focus():n&&t.options.autoClose?t._startDateInput.dateInputInstance.focus():t._endDateInput.dateInputInstance.focus()),t._toggleClearButton(C,null!==n)},_initializeDateView:function(){var e,t=this;t.dateView&&(t.dateView.popup&&t.dateView.popup.wrapper&&t.dateView.popup.wrapper.remove(),t.dateView.destroy(),t.dateView=null),t.dateView=new T(_({},t.options,{id:t.element.attr("id"),anchor:t.wrapper,views:2,selectable:{mode:"range",reverse:t.options.allowReverse,resetOnStart:!1},value:t._range?.start||t._range?.end,range:t._range,change:function(){var e=this.selectRange();t.range(e),t.trigger(p),t._changeTriggered=!0,t._startDateInput.trigger(p),t._endDateInput.trigger(p),t._changeTriggered=!1},close:function(n){let a=t.range();t.trigger(u)?n.preventDefault():(t._inputs.attr(m,!1),e.attr(I,!0),setTimeout((function(){t._inputs&&t._inputs.removeAttr(h),a&&t.dateView&&t.dateView.calendar&&t.dateView.calendar.rangeSelectable&&t.range(a)})))},open:function(n){t.trigger(d)?n.preventDefault():(t._inputs.attr(m,!0),e.attr(I,!1),t._updateARIA())}})),e=t.dateView.div},_initializeDateInputs:function(){var e=this,t=e.options,n=t.range||{},a={autoAdjust:t.autoAdjust,footer:t.footer,format:t.format,culture:t.culture,min:t.min,max:t.max,start:t.start,startField:t.startField,endField:t.endField,depth:t.depth,animation:t.animation,month:t.month,dates:t.dates,disableDates:t.disableDates,ARIATemplate:t.ARIATemplate,weekNumber:t.weekNumber,size:t.size,fillMode:t.fillMode,rounded:t.rounded,toggleDayPeriod:!0,inputMode:t.inputMode};e._startDateInput&&(e._startDateInput.destroy(),e._endDateInput.destroy(),e.wrapper.empty(),e._buildHTML(),e._inputs.on(A+x,e._click.bind(e)).on("keydown"+x,e._keydown.bind(e))),e._startDateInput=e._startInput.kendoDateInput(_(!0,a,{value:n.start})).getKendoDateInput(),e._endDateInput=e._endInput.kendoDateInput(_(!0,a,{value:n.end})).getKendoDateInput(),e._startChangeHandler=e._startChange.bind(e),e._startDateInput.bind(p,e._startChangeHandler),e._endChangeHandler=e._endChange.bind(e),e._endDateInput.bind(p,e._endChangeHandler),e._inputs.on("focus"+x,e._inputFocus.bind(e))},_buildHTML:function(){var t,a=this,i=a.element;a.wrapper||(a.wrapper=i.addClass("k-daterangepicker")),a.options.labels?(t=n.guid(),e('<span class="k-floating-label-container"><input data-input="start" id="'+t+'"/><label for="'+t+'" class="k-floating-label">'+n.htmlEncode(a.options.messages.startLabel)+"</label></span>").appendTo(a.wrapper),t=n.guid(),e('<span> </span><span class="k-floating-label-container"><input data-input="end" id="'+t+'"/><label for="'+t+'" class="k-floating-label">'+n.htmlEncode(a.options.messages.endLabel)+"</label></span>").appendTo(a.wrapper)):e('<input data-input="start" /><span> </span><input data-input="end" />').appendTo(a.wrapper),a._startInput=a.wrapper.find("input").eq(0),a._endInput=a.wrapper.find("input").eq(1),""!==a.options.startField&&(a._startInput.attr(n.attr("bind"),"value: "+a.options.startField),a._startInput.attr("name",a.options.startField)),""!==a.options.endField&&(a._endInput.attr(n.attr("bind"),"value: "+a.options.endField),a._endInput.attr("name",a.options.endField)),a._inputs=a._startInput.add(a._endInput)},_option:function(e,n){var a=this,i=a.options,r=a._startDateInput,o=a._endDateInput;if(n===t)return i[e];(n=M(n,i.parseFormats,i.culture))&&(i[e]=new Date(+n),a.dateView[e](n),r&&r[e](n),o&&o[e](n))},_reset:function(){var t=this,n=t.element,a=n.attr("form"),i=a?e("#"+a):n.closest("form");i[0]&&(t._resetHandler=function(){t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=i.on("reset",t._resetHandler))},_editable:function(t){var n=this,a=n._inputs,i=t.readonly,r=t.disable;i||r?(n.wrapper.addClass(r?v:"").removeClass(r?"":v),a.attr(w,r).attr(k,i).attr(b,r),n._preventInputAction=!0):(n.wrapper.removeClass(v),e.each(a,(function(e,t){t.removeAttribute(w),t.removeAttribute(k)})),a.attr(b,!1),n._preventInputAction=!1)},destroy:function(){var e=this;e._startDateInput&&(e._startDateInput.unbind(p,e._startChangeHandler),e._startDateInput.destroy(),e._startChangeHandler=null),e._endDateInput&&(e._endDateInput.unbind(p,e._endChangeHandler),e._endDateInput.destroy(),e._endChangeHandler=null),e._startDateButton&&e._startDateButton.off(V,e._expandButtonClick),e._endDateButton&&e._endDateButton.off(V,e._expandButtonClick),e._startDateClear&&e._startDateClear.off(V,e._clearValue),e._endDateClear&&e._endDateClear.off(V,e._clearValue),e._form&&e._form.off("reset",e._resetHandler),e._inputs.off(x),e._inputs=null,e.bigScreenMQL&&e.bigScreenMQL.destroy(),e._createDateViewProxy=null,e.dateView.destroy(),e.element.off(x),l.fn.destroy.call(e)},range:function(e){let n=this,a=n._currentTarget||y;if(e===t)return n._range;n._range=e,n._range.target=a,n.dateView.range({start:null,end:null,target:a}),e||(n._startDateInput.value(null),n._endDateInput.value(null)),n._startDateInput.value(e.start?e.start:null),n._endDateInput.value(e.end?e.end:null),a===y&&n.dateView.range({start:e.start,end:e.end||null,target:a}),a===C&&n.dateView.range({start:e.start||null,end:e.end,target:a})},open:function(){this.dateView.open()},close:function(){this.dateView.close()},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},readonly:function(e){this._startDateInput.readonly(e),this._endDateInput.readonly(e),this._editable({readonly:e===t||e,disable:!1})},enable:function(e){this._startDateInput.enable(e),this._endDateInput.enable(e),e||this.close(),this._editable({readonly:!1,disable:!(e=e===t||e)})}});n.ui.plugin(z)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"daterangepicker",name:"DateRangePicker",category:"web",description:"Date range picker.",depends:["core","multiviewcalendar","datepicker","html.button"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.daterangepicker.min.js.map