UNPKG

@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.1 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.calendar.js"),require("kendo.popup.js"),require("kendo.dateinput.js"),require("kendo.html.button.js"),require("kendo.label.js"),require("kendo.actionsheet.js")):"function"==typeof define&&define.amd?define(["exports","kendo.calendar","kendo.popup","kendo.dateinput","kendo.html.button","kendo.label","kendo.actionsheet"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Datepicker={}))}(this,(function(e){!function(e,t){var a=window.kendo,n=a.ui,l=a.html,o=a.mediaQuery,i=n.Widget,r=a.parseDate,s=a.keys,d=a.support,u=a.template,p=a._activeElement,c="<div />",m=".kendoDatePicker",_="click"+m,f=d.mouseAndTouchPresent?a.applyEventMap("up",m.slice(1)):_,v="open",b="close",h="change",g="disabled",y="readonly",w="k-focus",k="k-selected",D="k-disabled",I="mouseenter"+m+" mouseleave"+m,x="mousedown"+m,C="navigate",V="id",A="month",M="aria-disabled",T="aria-readonly",L="aria-expanded",P="aria-hidden",S="aria-activedescendant",Q=a.calendar,O=Q.isInRange,F=Q.restrictValue,R=Q.isEqualDatePart,j=e.extend,E=Date;function H(t){var a=t.parseFormats,n=t.format;Q.normalize(t),(a=Array.isArray(a)?a:[a]).length||a.push("yyyy-MM-dd"),-1===e.inArray(n,a)&&a.splice(0,0,t.format),t.parseFormats=a}function z(e){e.preventDefault()}var N=function(t){var l,i=this,r=document.body,s=e(c).attr(P,"true").addClass("k-calendar-container");i.options=t=t||{},l=t.id,i.bigScreenMQL=o("large"),i.smallScreenMQL=o("small"),"auto"==t.adaptiveMode&&i.smallScreenMQL.onChange((function(){i.popup&&a.isFunction(i.popup.fullscreen)&&i.popup.fullscreen(i.smallScreenMQL.mediaQueryList.matches)})),t.omitPopup?s=t.dateDiv:(s.appendTo(r),"auto"!=t.adaptiveMode||i.bigScreenMQL.mediaQueryList.matches?i.popup=new n.Popup(s,j(t.popup,t,{name:"Popup",isRtl:a.support.isRtl(t.anchor)})):i.popup=new n.ActionSheet(s,{adaptive:!0,title:"Set dates",subtitle:"DD / MM / YY",closeButton:!0,focusOnActivate:!1,fullscreen:i.smallScreenMQL.mediaQueryList.matches,popup:j(t.popup,t,{name:"Popup",isRtl:a.support.isRtl(t.anchor)})})),l&&(l+="_dateview",s.attr(V,l),i._dateViewID=l),i.div=s,i.value(t.value)};N.prototype={_calendar:function(){var t,l=this,o=l.calendar,i=l.options;if(!o){var r="auto"!=i.adaptiveMode||this.bigScreenMQL.mediaQueryList.matches?this.options.size:"large";t=e(c).attr(V,a.guid()).appendTo(i.omitPopup?i.dateDiv:l.popup._content||l.popup.element).on(x,z).on(_,"td:has(.k-link)",l._click.bind(l)),l.calendar=o=new n.Calendar(t,{componentType:i.componentType,size:r,messages:i.messages}),l._setOptions(i),t.addClass(a.getValidCssClass("k-calendar-","size",r)),o.navigate(l._value||l._current,i.start),l.value(l._value)}},_setOptions:function(e){this.calendar.setOptions({focusOnNav:!1,componentType:e.componentType,change:e.change,culture:e.culture,dates:e.dates,depth:e.depth,footer:e.footer,format:e.format,max:e.max,min:e.min,month:e.month,weekNumber:e.weekNumber,start:e.start,messages:e.messages,disableDates:e.disableDates})},setOptions:function(e){var t=this,a=t.options,n=e.disableDates;n&&(e.disableDates=Q.disabled(n)),t.options=j(a,e,{change:a.change,close:a.close,open:a.open}),t.calendar&&t._setOptions(t.options)},destroy:function(){var e=this;this.popup&&this.popup.destroy(),e.bigScreenMQL&&(e.bigScreenMQL.destroy(),e.bigScreenMQL=null),e.smallScreenMQL&&(e.smallScreenMQL.destroy(),e.smallScreenMQL=null)},open:function(){var e,t=this;t._calendar(),e=t.popup._hovered,t.popup._hovered=!0,t.popup.open(),setTimeout((function(){t.popup._hovered=e}),1)},close:function(){this.popup&&this.popup.close()},min:function(e){this._option("min",e)},max:function(e){this._option("max",e)},toggle:function(){this[this.popup.visible()?b:v]()},move:function(e){var t=this,a=e.keyCode,n=t.calendar,l=e.ctrlKey&&a==s.DOWN||a==s.ENTER,o=!1;if(e.altKey)a==s.DOWN?(t.open(),e.preventDefault(),o=!0):a==s.UP&&(t.close(),e.preventDefault(),o=!0);else if(t.popup&&t.popup.visible()){if(a==s.ESC||l&&n._cell.hasClass(k))return t.close(),e.preventDefault(),!0;a!=s.SPACEBAR&&(t._current=n._move(e)),o=!0}return o},current:function(e){this._current=e,this.calendar&&this.calendar._focus(e)},value:function(e){var t=this,a=t.calendar,n=t.options,l=n.disableDates;l&&l(e)&&(e=null),t._value=e,t._current=new E(+F(e,n.min,n.max)),a&&a.value(e)},_click:function(e){-1!==e.currentTarget.className.indexOf(k)&&(this.calendar.trigger("change"),this.close())},_option:function(e,t){var a=this.calendar;this.options[e]=t,a&&a[e](t)}},N.normalize=H,a.DateView=N;var q=i.extend({init:function(n,l){var s,d=this;i.fn.init.call(d,n,l),n=d.element,(l=d.options).disableDates=a.calendar.disabled(l.disableDates),l.min=r(n.attr("min"))||r(l.min),l.max=r(n.attr("max"))||r(l.max),d.options.readonly=l.readonly!==t?l.readonly:Boolean(d.element.attr("readonly")),d.options.enable=l.enable!==t?l.enable:!Boolean(n.is("[disabled]")||e(n).parents("fieldset").is(":disabled")),H(l),d._initialOptions=j({},l),d._wrapper(),d._createDateView(),d._createDateViewProxy=d._createDateView.bind(d),d.bigScreenMQL=o("large"),"auto"==d.options.adaptiveMode&&d.bigScreenMQL.onChange((()=>{d._createDateViewProxy(),d.dateView.value(d._value)})),d._icon();try{n[0].setAttribute("type","text")}catch(e){n[0].type="text"}n.addClass("k-input-inner").attr({role:"combobox","aria-expanded":!1,"aria-haspopup":"grid","aria-controls":d.dateView._dateViewID,autocomplete:"off"}),d._reset(),d._template(),!d.options.enable?d.enable(!1):d.readonly(n.is("[readonly]")),s=r(l.value||d.element.val(),l.parseFormats,l.culture),d._createDateInput(l),d._old=d._update(s||d.element.val()),d._oldText=n.val(),d._applyCssClasses(),l.label&&d._label(),d.element.removeAttr("style"),a.notify(d)},events:[v,b,h],options:{name:"DatePicker",autoAdjust:!0,value:null,footer:"",format:"",culture:"",parseFormats:[],min:new Date(1900,0,1),max:new Date(2099,11,31),start:A,depth:A,animation:{},month:{},dates:[],disableDates:null,ARIATemplate:({valueType:e,text:t})=>`Current focused ${e} is ${t}`,dateInput:!1,weekNumber:!1,messages:{weekColumnHeader:""},componentType:"classic",adaptiveMode:"none",size:"medium",fillMode:"solid",rounded:"medium",label:null,autoFill:!1,autoCorrectParts:!0},_createDateView:function(){var e,t=this,a=t.options,n=t.element;t.dateView&&(t.dateView.destroy(),t.dateView=null),t.dateView=new N(j({},a,{id:n.attr(V),anchor:t.wrapper,change:function(){t._change(this.value()),t.close()},close:function(a){t.trigger(b)?a.preventDefault():(n.attr(L,!1),e.attr(P,!0),setTimeout((function(){n.removeAttr("aria-activedescendant")})))},open:function(a){var l,o=t.options;t.trigger(v)?a.preventDefault():(t.element.val()!==t._oldText&&(l=r(n.val(),o.parseFormats,o.culture),t.dateView[l?"current":"value"](l)),n.attr(L,!0),e.attr(P,!1),t._updateARIA(l))}})),e=t.dateView.div},setOptions:function(e){var n=this,l=n._value;i.fn.setOptions.call(n,e),(e=n.options).min=r(e.min),e.max=r(e.max),H(e),n._dateIcon.off(m),n._dateIcon.remove(),n.dateView.setOptions(e),n._icon(),n._editable({readonly:e.readonly===t?n.options.readonly:e.readonly,disable:!(e.enable===t?n.options.enable:e.enable)}),n._createDateInput(e),n._dateInput||n.element.val(a.toString(l,e.format,e.culture)),l&&n._updateARIA(l),e.label&&n._inputLabel?n.label.setOptions(e.label):!1===e.label?(n.label._unwrapFloating(),n._inputLabel.remove(),delete n._inputLabel):e.label&&n._label()},_editable:function(e){var t=this,a=t._dateIcon.off(m),n=t.element.off(m),l=t.wrapper.off(m),o=e.readonly,i=e.disable;o||i?(l.addClass(i?D:"").removeClass(i?"":D),n.attr(g,i).attr(y,o).attr(M,i).attr(T,o)):(l.removeClass(D).on(I,t._toggleHover),n&&n.length&&(n[0].removeAttribute(g),n[0].removeAttribute(y)),n.attr(M,!1).attr(T,!1).on("keydown"+m,t._keydown.bind(t)).on("focusout"+m,t._blur.bind(t)).on("focus"+m,(function(){t.wrapper.addClass(w)})),a.on(f,t._click.bind(t)).on(x,z))},readonly:function(e){this._editable({readonly:e===t||e,disable:!1}),this._dateInput&&this._dateInput._editable({readonly:e===t||e,disable:!1}),this.label&&this.label.floatingLabel&&this.label.floatingLabel.readonly(e===t||e)},enable:function(e){this._editable({readonly:!1,disable:!(e=e===t||e)}),this._dateInput&&this._dateInput._editable({readonly:!1,disable:!(e=e===t||e)}),this.label&&this.label.floatingLabel&&this.label.floatingLabel.enable(e=e===t||e)},_label:function(){var t=this,n=t.options,l=e.isPlainObject(n.label)?n.label:{content:n.label};t._dateInput&&(l.floatCheck=()=>!(t.value()||t._dateInput._hasDateInput()&&""!==t.element.val()||document.activeElement===t.element[0])&&(t.element.val(""),!0)),t.label=new a.ui.Label(null,e.extend({},l,{widget:t})),t._inputLabel=t.label.element},destroy:function(){var e=this;e.label&&e.label.destroy(),i.fn.destroy.call(e),e.dateView.calendar&&e._navigateCalendarHandler&&(e.dateView.calendar.unbind(C,e._navigateCalendarHandler),e._navigateCalendarHandler=null),e.dateView.destroy(),e.element.off(m),e._dateIcon.off(m),e._form&&e._form.off("reset",e._resetHandler),e.bigScreenMQL&&e.bigScreenMQL.destroy(),e._createDateViewProxy=null},open:function(){this.dateView.open(),this._navigateCalendar()},close:function(){this.dateView.close()},min:function(e){return this._option("min",e)},max:function(e){return this._option("max",e)},value:function(e){var a=this;if(e===t)return a._value;a._old=a._update(e),null===a._old&&(a._dateInput?a._dateInput.value(a._old):a.element.val("")),a._oldText=a.element.val(),a.label&&a.label.floatingLabel&&a.label.floatingLabel.refresh()},_toggleHover:function(t){e(t.currentTarget).toggleClass("k-hover","mouseenter"===t.type)},_isReset:function(e){var t=this;return t.options.dateInput&&t.options.autoFill&&t._dateInput._emptyMask==e},_blur:function(){var e=this,t=e.element.val();e.close(),t!==e._oldText&&(e.options.autoFill&&!e._isReset(t)&&(e._dateInput.dateInputInstance.autoFill(),t=e.element.val()),e._change(t),t||e.dateView.current(a.calendar.getToday())),e.wrapper.removeClass(w)},_click:function(e){var t=this;t.dateView.toggle(),t._navigateCalendar(),t._focusElement(e.type)},_focusElement:function(e){var t=this.element;d.touch&&(!d.mouseAndTouchPresent||(e||"").match(/touch/i))||t[0]===p()||t.trigger("focus")},_change:function(e){var t,n=this,l=n.element.val();e=n._update(e);var o=(t=!a.calendar.isEqualDate(n._old,e))&&!n._typing,i=l!==n.element.val();(o||i)&&n.element.trigger(h),t&&(n._old=e,n._oldText=n.element.val(),n.trigger(h)),n._typing=!1},_keydown:function(e){var t=this,a=t.dateView,n=t.element.val(),l=!1;a.popup.visible()||e.keyCode!=s.ENTER||n===t._oldText?(l=a.move(e),t._updateARIA(a._current),l?t._dateInput&&e.stopImmediatePropagation&&e.stopImmediatePropagation():t._typing=!0):t._change(n)},_icon:function(){var t,a=this,n=a.element,o=a.options;(t=n.next("button.k-input-button"))[0]||(t=e(l.renderButton('<button aria-label="select" tabindex="-1" class="k-input-button k-button k-icon-button"></button>',{icon:"calendar",size:o.size,fillMode:o.fillMode,shape:"none",rounded:"none"})).insertAfter(n)),a._dateIcon=t.attr({role:"button"})},_setCalendarAttribute:function(){var e=this;setTimeout((function(){e.element.attr(S,e.dateView.calendar._table.attr(S))}))},_navigateCalendar:function(){var e=this;e._navigateCalendarHandler||(e._navigateCalendarHandler=e._setCalendarAttribute.bind(e)),e.dateView.calendar&&e.dateView.calendar.unbind(C,e._navigateCalendarHandler).bind(C,e._navigateCalendarHandler)},_option:function(e,a){var n=this,l=n.options;if(a===t)return l[e];(a=r(a,l.parseFormats,l.culture))&&(l[e]=new E(+a),n.dateView[e](a),n._dateInput&&n._dateInput[e](a))},_update:function(e){var t,n=this,l=n.options,o=l.min,i=l.max,s=n._value,d=r(e,l.parseFormats,l.culture),u=null===d&&null===s||d instanceof Date&&s instanceof Date;return l.disableDates(d)&&(d=null,n._old||n.element.val()||(e=null)),+d==+s&&u?((t=a.toString(d,l.format,l.culture))===e||n._dateInput&&!d||n.element.val(null===d?e:t),d):(null!==d&&R(d,o)?d=F(d,o,i):O(d,o,i)||(d=null),n._value=d,n.dateView.value(d),n._dateInput&&d?n._dateInput.value(d||e):n.element.val(a.toString(d||e,l.format,l.culture)),n._updateARIA(d),d)},_wrapper:function(){var e,t=this.element;(e=t.parents(".k-datepicker"))[0]||(e=t.wrap("<span />").parent()),e[0].style.cssText=t[0].style.cssText,t.css({height:t[0].style.height}),this.wrapper=e.addClass("k-datepicker k-input").addClass(t[0].className).removeClass("input-validation-error")},_reset:function(){var t=this,n=t.element,l=n.attr("form"),o=t.options,i=o.disableDates,r=o.parseFormats.length?o.parseFormats:null,s=t._initialOptions.value,d=l?e("#"+l):n.closest("form"),u=n[0].defaultValue;s&&i&&i(s)&&(s=null),u&&a.parseDate(u,r,o.culture)||!s||n.attr("value",a.toString(s,o.format,o.culture)),d[0]&&(t._resetHandler=function(){t.value(s||n[0].defaultValue),t.max(t._initialOptions.max),t.min(t._initialOptions.min)},t._form=d.on("reset",t._resetHandler))},_template:function(){this._ariaTemplate=u(this.options.ARIATemplate).bind(this)},_createDateInput:function(e){this._dateInput&&(this._dateInput.destroy(),this._dateInput=null),e.dateInput&&(this._dateInput=new n.DateInput(this.element,{autoAdjust:e.autoAdjust,culture:e.culture,format:e.format,size:e.size,fillMode:e.fillMode,rounded:e.rounded,min:e.min,max:e.max,messages:e.messages.dateInput,autoFill:e.autoFill,autoCorrectParts:e.autoCorrectParts}))},_updateARIA:function(e){var t=this,a=t.dateView.calendar;t.element&&t.element.length&&t.element[0].removeAttribute(S),a&&t.element.attr(S,a._updateAria(t._ariaTemplate,e))}});a.cssProperties.registerPrefix("DatePicker","k-input-"),a.cssProperties.registerValues("DatePicker",[{prop:"rounded",values:a.cssProperties.roundedValues.concat([["full","full"]])}]),n.plugin(q)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"datepicker",name:"DatePicker",category:"web",description:"The DatePicker widget allows the user to select a date from a calendar or by direct input.",depends:["calendar","popup","html.button","label","actionsheet"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.datepicker.min.js.map