{"version":3,"file":"kendo.timepicker.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendotimepicker","js","this","$","undefined$1","kendo","window","keys","html","parse","parseDate","encode","htmlEncode","activeElement","_activeElement","extractFormat","_extractFormat","support","browser","mediaQuery","ui","Widget","OPEN","CLOSE","CHANGE","ns","CLICK","DISABLED","READONLY","LI","FOCUSED","HOVER","HOVEREVENTS","MOUSEDOWN","MS_PER_MINUTE","MS_PER_DAY","SELECTED","STATEDISABLED","ARIA_SELECTED","ARIA_EXPANDED","ARIA_HIDDEN","ARIA_DISABLED","ARIA_READONLY","ARIA_ACTIVEDESCENDANT","ID","isArray","Array","extend","DATE","Date","TODAY","MODERN_RENDERING_TEMPLATE","mainSize","messages","buttonSize","renderButton","now","fillMode","size","NEW_RENDERING_FOOTER","set","themeColor","cancel","getFullYear","getMonth","getDate","TimeView","options","that","focusTime","id","_dates","bigScreenMQL","smallScreenMQL","adaptiveMode","onChange","popup","isFunction","fullscreen","mediaQueryList","matches","timeView","list","addTranslate","_updateRanges","_createList","_focusTime","getHours","getMinutes","getSeconds","_timeViewID","_optionID","ul","attr","_heightHandler","_height","bind","_popup","getMilliseconds","date","isInRange","value","min","max","msValue","msMin","msMax","prototype","scroll","_createScrollList","_createClassicRenderingList","templateOptions","getValidCssClass","popupContent","template","on","preventDefault","find","_nowClickHandler","_cancelClickHandler","_setClickHandler","_mouseOverHandler","_scrollerKeyDownHandler","e","key","keyCode","currentTarget","lists","length","index","isRtl","wrapper","itemHeight","getItemHeight","eq","container","RIGHT","LEFT","_focusList","UP","scrollTop","DOWN","ENTER","ESC","removeClass","addClass","trigger","_scrollTop","listParent","css","overflow","kineticScrollNeeded","_click","append","data","current","candidate","active","_current","removeAttribute","_updateTitle","toString","_value","format","culture","applyValue","designator","is12hourFormat","includes","toLowerCase","hours","minutes","seconds","indexAttr","hoursList","minutessList","secondsList","designatorList","_internalScroll","_scrollListToPosition","item","pad","close","destroy","off","open","popupHovered","firstChild","_hovered","setTimeout","dataBind","dates","idx","_html","refresh","interval","today","midnight","noon","offset","getTimezoneOffset","ignoreDST","parsedValue","mergeDateAndTime","msLastTime","setMinutes","msInterval","start","useValueToRender","startDate","_createListContent","splitDateFormat","getDatesInRange","msStart","forEach","_showAllHiddenItems","items","i","show","_updateListBottomOffset","bottomOffset","outerHeight","height","_updateHoursRange","useMax","useMin","minHours","_minHours","maxHours","_maxHours","selectedDesignator","_findSelectedValue","each","_","_validateMin","_validateMax","hide","_updateMinutesRange","minutesList","minMinutes","_minMinutes","maxMinutes","_maxMinutes","selectedHour","_updateSecondsRange","minSeconds","_minSeconds","maxSeconds","selectedMinutes","_updateDesignatorRange","specifiedRange","_currentlySelected","endTime","startTime","validateDate","_maxSeconds","listHeight","translate","transform","_itemClickHandler","_listScrollHandler","change","_scrollingTimeout","clearTimeout","_updateCurrentlySelected","selectedSeconds","is","setHours","setSeconds","firstOccurence","Math","round","originalEvent","result","push","setTime","getTime","maxSet","parts","part","values","type","_literalTemplate","_getValues","_itemTemplate","title","shouldPad","end","step","currentStep","isPlainObject","hour12","isDayTimePattern","pattern","innerHTML","unbind","one","select","scrollIntoViewIfNeeded","element","centerIfNeeded","makeRange","coverRange","inner","outer","makePoint","x","y","dX","dY","absolute","elem","pt","offsetLeft","offsetTop","offsetParent","origin","target","extent","offsetWidth","offsetHeight","parentNode","HTMLElement","clientLeft","clientTop","scrollLeft","clientWidth","clientHeight","li","selection","text","grep","childNodes","node","textContent","innerText","_distinctSelection","currentValue","selectionIndex","inArray","children","setOptions","old","toggle","visible","isDefaultPrevented","parent","closest","elements","add","scrollHeight","_parse","parseFormats","_adjustListWidth","computedStyle","computedWidth","width","style","anchor","outerWidth","_outerWidth","getComputedStyle","parseFloat","mozilla","msie","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","fontFamily","omitPopup","appendTo","timeDiv","Popup","animation","activate","document","body","ActionSheet","adaptive","focusOnActivate","subtitle","closeButton","move","down","altKey","nextSibling","previousSibling","lastChild","TAB","TimePicker","init","componentType","fn","call","_specifiedRange","normalize","_initialOptions","_wrapper","_createTimeViewProxy","_update","val","_createTimeView","_icon","_reset","setAttribute","role","autocomplete","parents","enable","readonly","dateInput","_dateInput","DateInput","rounded","autoCorrectParts","_old","_oldText","_applyCssClasses","label","_label","notify","name","hour","minute","second","millisecond","events","componentTypes","classic","modern","_arrow","remove","_editable","_inputLabel","_unwrapFloating","disable","arrow","_unbindInput","_toggleHover","_keydown","_blur","_bindInput","labelOptions","content","floatCheck","_hasDateInput","Label","widget","floatingLabel","_form","_resetHandler","_option","_typing","_change","touch","dateChanged","oldValue","valueUpdated","calendar","isEqualDate","textFormatted","_ariaLabel","next","icon","shape","insertAfter","stopImmediatePropagation","option","toggleClass","wrap","cssText","className","formId","form","defaultValue","getCulture","calendars","standard","patterns","t","splice","time","subStr","returnValue","indexOf","s","String","getBoundingClientRect","cssProperties","registerPrefix","registerValues","prop","roundedValues","concat","plugin","jQuery"],"sources":["kendo.timepicker.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(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')) :\n typeof define === 'function' && define.amd ? define(['kendo.calendar', 'kendo.popup', 'kendo.dateinput', 'kendo.html.button', 'kendo.label', 'kendo.actionsheet'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendotimepicker = global.kendotimepicker || {}, global.kendotimepicker.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"timepicker\",\n name: \"TimePicker\",\n category: \"web\",\n description: \"The TimePicker widget allows the end user to select a value from a list of predefined values or to type a new value.\",\n depends: [ \"calendar\", \"popup\", \"html.button\", \"label\", \"actionsheet\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n keys = kendo.keys,\n html = kendo.html,\n parse = kendo.parseDate,\n encode = kendo.htmlEncode,\n activeElement = kendo._activeElement,\n extractFormat = kendo._extractFormat,\n support = kendo.support,\n browser = support.browser,\n mediaQuery = kendo.mediaQuery,\n ui = kendo.ui,\n Widget = ui.Widget,\n OPEN = \"open\",\n CLOSE = \"close\",\n CHANGE = \"change\",\n ns = \".kendoTimePicker\",\n CLICK = \"click\" + ns,\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n LI = \"li\",\n SPAN = \"\",\n FOCUSED = \"k-focus\",\n HOVER = \"k-hover\",\n HOVEREVENTS = \"mouseenter\" + ns + \" mouseleave\" + ns,\n MOUSEDOWN = \"mousedown\" + ns,\n MS_PER_MINUTE = 60000,\n MS_PER_DAY = 86400000,\n SELECTED = \"k-selected\",\n STATEDISABLED = \"k-disabled\",\n ARIA_SELECTED = \"aria-selected\",\n ARIA_EXPANDED = \"aria-expanded\",\n ARIA_HIDDEN = \"aria-hidden\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n ARIA_ACTIVEDESCENDANT = \"aria-activedescendant\",\n ID = \"id\",\n isArray = Array.isArray,\n extend = $.extend,\n DATE = Date,\n TODAY = new DATE(),\n MODERN_RENDERING_TEMPLATE = ({ mainSize, messages, buttonSize }) =>\n '
' +\n `
` +\n '
' +\n '' +\n kendo.html.renderButton(``, {\n fillMode: \"flat\",\n size: buttonSize\n }) +\n '
' +\n '
' +\n '' +\n '
' +\n '
' +\n NEW_RENDERING_FOOTER(buttonSize, messages) +\n '
',\n NEW_RENDERING_FOOTER = (buttonSize, messages) => '',\n HIGHLIGHTCONTAINER = '';\n\n TODAY = new Date(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDate(), 0, 0, 0);\n\n var TimeView = function(options) {\n var that = this,\n focusTime = options.focusTime,\n id = options.id;\n\n that.options = options;\n that._dates = [];\n\n that.bigScreenMQL = mediaQuery(\"large\");\n that.smallScreenMQL = mediaQuery(\"small\");\n if (that.options.adaptiveMode == \"auto\") {\n that.smallScreenMQL.onChange(function() {\n if (that.popup && kendo.isFunction(that.popup.fullscreen)) {\n that.popup.fullscreen(that.smallScreenMQL.mediaQueryList.matches);\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n that.addTranslate();\n that._updateRanges();\n }\n }\n });\n }\n\n that._createList(options.timeView && options.timeView.list === \"scroll\");\n if (focusTime) {\n that._focusTime = new DATE(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDate(), focusTime.getHours(), focusTime.getMinutes(), focusTime.getSeconds());\n }\n\n if (id) {\n that._timeViewID = id + \"_timeview\";\n that._optionID = id + \"_option_selected\";\n\n that.ul.attr(ID, that._timeViewID);\n }\n\n that._heightHandler = that._height.bind(that);\n that._popup();\n };\n\n TimeView.prototype = {\n _createList: function(scroll) {\n if (scroll) {\n this._createScrollList();\n } else {\n this._createClassicRenderingList();\n }\n },\n _createScrollList: function() {\n var size = this.options.adaptiveMode != \"auto\" || this.bigScreenMQL.mediaQueryList.matches ? this.options.size || \"medium\" : \"large\";\n var templateOptions = $.extend({}, this.options, {\n mainSize: kendo.getValidCssClass(\"k-timeselector-\", \"size\", size),\n buttonSize: size\n });\n this.popupContent = $(kendo.template(MODERN_RENDERING_TEMPLATE)(templateOptions))\n .on(MOUSEDOWN, preventDefault);\n this.list = this.popupContent.find(\".k-timeselector\");\n\n this.ul = this.list.find(\".k-time-list-container\");\n this.list.on(\"click\" + ns, \".k-time-header button.k-time-now\", this._nowClickHandler.bind(this));\n this.popupContent.on(\"click\" + ns, \".k-time-footer button.k-time-cancel\", this._cancelClickHandler.bind(this));\n this.popupContent.on(\"click\" + ns, \".k-time-footer button.k-time-accept\", this._setClickHandler.bind(this));\n this.list.on(\"mouseover\" + ns, \".k-time-list-wrapper\", this._mouseOverHandler.bind(this));\n this.list.on(\"keydown\" + ns, this._scrollerKeyDownHandler.bind(this));\n },\n\n _scrollerKeyDownHandler: function(e) {\n var that = this,\n key = e.keyCode,\n list = $(e.currentTarget).find(\".k-time-list-wrapper.k-focus\"),\n lists = that.list.find(\".k-time-list-wrapper\"),\n length = lists.length,\n index = lists.index(list),\n isRtl = kendo.support.isRtl(that.wrapper),\n itemHeight = getItemHeight(list.find(\".k-item:visible\").eq(0)),\n container = list.find(\".k-time-container.k-content.k-scrollable\");\n\n if (!list.length) {\n return;\n }\n\n if (key == keys.RIGHT && !isRtl || key == keys.LEFT && isRtl) {\n if (index + 1 < length) {\n that._focusList(lists.eq(index + 1));\n }\n\n } else if (key == keys.LEFT && !isRtl || key == keys.RIGHT && isRtl) {\n if (index - 1 >= 0) {\n that._focusList(lists.eq(index - 1));\n }\n } else if (key == keys.UP) {\n container.scrollTop(container.scrollTop() - itemHeight);\n e.preventDefault();\n } else if (key == keys.DOWN) {\n container.scrollTop(container.scrollTop() + itemHeight);\n e.preventDefault();\n } else if (key === keys.ENTER) {\n that._setClickHandler(e);\n } else if (key === keys.ESC) {\n that._cancelClickHandler(e);\n }\n },\n\n _mouseOverHandler: function(e) {\n this._focusList($(e.currentTarget));\n },\n\n _focusList: function(list) {\n this.list.find(\".k-time-list-wrapper\").removeClass(FOCUSED);\n list.addClass(FOCUSED);\n this.list.trigger(\"focus\");\n this._scrollTop = list.find('.k-scrollable').scrollTop();\n },\n _createClassicRenderingList: function() {\n var that = this;\n var listParent = $('
');\n\n that.ul = listParent.find(\"ul\")\n .css({\n overflow: support.kineticScrollNeeded ? \"\" : \"auto\"\n })\n .on(CLICK, LI, that._click.bind(that))\n .on(\"mouseenter\" + ns, LI, function() {\n $(this).addClass(HOVER);\n })\n .on(\"mouseleave\" + ns, LI, function() {\n $(this).removeClass(HOVER);\n });\n\n that.list = $(\"
\")\n .append(listParent)\n .on(MOUSEDOWN, preventDefault);\n\n that.template = (data) => `
  • ${data}
  • `;\n\n },\n current: function(candidate) {\n var that = this,\n active = that.options.active;\n\n if (candidate !== undefined$1) {\n if (that._current) {\n that._current\n .removeClass(SELECTED);\n if (that._current && that._current.length) {\n that._current[0].removeAttribute(ID);\n that._current[0].removeAttribute(ARIA_SELECTED);\n }\n }\n\n if (candidate) {\n candidate = $(candidate).addClass(SELECTED)\n .attr(ID, that._optionID)\n .attr(ARIA_SELECTED, true);\n\n that.scroll(candidate[0]);\n }\n\n that._current = candidate;\n\n if (active) {\n active(candidate);\n }\n } else {\n return that._current;\n }\n },\n\n _updateTitle: function() {\n this.list.find(\".k-time-header > .k-title\").html(kendo.toString(this._value, this.options.format, this.options.culture));\n },\n\n applyValue: function(value) {\n if (!value) {\n return;\n }\n\n var is12hourFormat = includes(this.options.format.toLowerCase(), \"t\");\n var hours = value.getHours();\n var minutes = value.getMinutes();\n var seconds = value.getSeconds();\n var designator;\n var indexAttr = kendo.attr('index');\n var hoursList = this.ul.find('[' + indexAttr + '=\"1\"]');\n var minutessList = this.ul.find('[' + indexAttr + '=\"2\"]');\n var secondsList = this.ul.find('[' + indexAttr + '=\"3\"]');\n var designatorList = this.ul.find('[' + indexAttr + '=\"4\"]');\n\n if (is12hourFormat) {\n if (hours >= 12) {\n designator = \"PM\";\n if (hours > 12) {\n hours -= 12;\n }\n } else {\n designator = \"AM\";\n if (hours === 0) {\n hours = 12;\n }\n }\n }\n\n this._internalScroll = true;\n if (hoursList.length) {\n this._scrollListToPosition(hoursList, hours);\n }\n\n if (minutessList.length) {\n this._scrollListToPosition(minutessList, minutes);\n }\n\n if (secondsList.length) {\n this._scrollListToPosition(secondsList, seconds);\n }\n\n if (designatorList.length) {\n this._scrollListToPosition(designatorList, designator);\n }\n this._internalScroll = false;\n },\n\n _scrollListToPosition: function(list, value) {\n var item = list.find('.k-item[data-value=\"' + pad(value) + '\"]');\n var itemHeight = getItemHeight(item);\n\n list.scrollTop(list.find(\".k-item:visible\").index(item) * itemHeight);\n },\n\n close: function() {\n if (this.popup) {\n this.popup.close();\n }\n },\n\n destroy: function() {\n var that = this;\n\n that.ul.off(ns);\n that.list.off(ns);\n if (that.popupContent) {\n that.popupContent.off(ns);\n }\n if (that.popup) {\n that.popup.destroy();\n }\n\n if (that.bigScreenMQL) {\n that.bigScreenMQL.destroy();\n }\n\n if (that.smallScreenMQL) {\n that.smallScreenMQL.destroy();\n }\n },\n\n open: function() {\n var that = this;\n var popupHovered;\n\n if (!that.ul[0].firstChild || (that.ul.find(\"li\").length < 1)) {\n that.bind();\n }\n\n if (that._focusTime) {\n that.value(that._focusTime);\n }\n\n // In some cases when the popup is opened resize is triggered which will cause it to close\n // Setting the below flag will prevent this from happening\n // Reference: https://github.com/telerik/kendo/pull/7553\n popupHovered = that.popup._hovered;\n that.popup._hovered = true;\n\n that.popup.open();\n\n setTimeout(function() {\n that.popup._hovered = popupHovered;\n }, 1);\n\n if (that._current) {\n that.scroll(that._current[0]);\n }\n },\n\n dataBind: function(dates) {\n var that = this,\n options = that.options,\n format = options.format,\n toString = kendo.toString,\n template = that.template,\n length = dates.length,\n idx = 0,\n date,\n html = \"\";\n\n for (; idx < length; idx++) {\n date = dates[idx];\n\n if (isInRange(date, options.min, options.max)) {\n html += template(toString(date, format, options.culture));\n }\n }\n\n that._html(html);\n },\n\n refresh: function() {\n var that = this,\n options = that.options,\n format = options.format,\n offset = dst(),\n ignoreDST = offset < 0,\n value = kendo.parseDate(that._value),\n parsedValue = value ? mergeDateAndTime(value, options.min) : mergeDateAndTime(new Date(), options.min),\n min = options.min,\n max = options.max,\n msMin = getMilliseconds(min),\n msMax = getMilliseconds(max),\n msLastTime = getMilliseconds(lastTimeOption(options.interval)),\n msInterval = options.interval * MS_PER_MINUTE,\n toString = kendo.toString,\n template = that.template,\n start = options.useValueToRender ? parsedValue : new Date(+options.min),\n startDate = new DATE(start),\n msStart,\n length,\n html = \"\";\n\n if (ignoreDST) {\n length = (MS_PER_DAY + (offset * MS_PER_MINUTE)) / msInterval;\n } else {\n length = MS_PER_DAY / msInterval;\n }\n\n if (msMin != msMax || msLastTime === msMax) {\n if (msMin > msMax) {\n msMax += MS_PER_DAY;\n }\n\n length = ((msMax - msMin) / msInterval) + 1;\n }\n\n if (options.timeView && options.timeView.list === \"scroll\") {\n html = that._createListContent(kendo.date.splitDateFormat(format), options.interval);\n } else {\n that.getDatesInRange(msStart, msMax, startDate, max, msInterval, start).forEach(function(date) {\n html += template(toString(date, format, options.culture));\n });\n }\n\n that._html(html);\n },\n\n _showAllHiddenItems: function() {\n var items = this.list.find('.k-time-container');\n var length = items.length;\n var item;\n\n for (var i = 0; i < length; i++) {\n item = $(items[i]);\n item.find('.k-item:hidden').show();\n this._updateListBottomOffset(item);\n }\n },\n\n _updateListBottomOffset: function(list) {\n var itemHeight = getItemHeight(list.find(\".k-item:visible\").eq(0));\n var listHeight = list.outerHeight();\n var bottomOffset = listHeight - itemHeight;\n list.find(\".k-scrollable-placeholder\").css({\n height: list.find(\"ul\").height() + bottomOffset\n });\n },\n\n _updateHoursRange: function() {\n var that = this;\n var indexAttr = kendo.attr('index');\n var hoursList = this.ul.find('[' + indexAttr + '=\"1\"]');\n var minHours = this._minHours;\n var maxHours = this._maxHours;\n var is12hourFormat = includes(this.options.format.toLowerCase(), \"t\");\n var useMax;\n var useMin;\n var selectedDesignator = this._findSelectedValue(this.ul.find('[' + indexAttr + '=\"4\"]'));\n\n if (!hoursList.length) {\n return;\n }\n\n if (is12hourFormat && selectedDesignator) {\n\n if (selectedDesignator === \"AM\") {\n if (minHours < 12) {\n useMin = true;\n }\n\n if (maxHours < 12) {\n useMax = true;\n }\n } else if (selectedDesignator === \"PM\") {\n\n if (minHours > 12) {\n useMin = true;\n minHours -= 12;\n }\n\n if (maxHours > 12) {\n useMax = true;\n maxHours -= 12;\n }\n }\n\n hoursList.find(\".k-item\").each(function(_, item) {\n item = $(item);\n var value = +item.attr(\"data-value\");\n if ((that._validateMin && useMin && value < minHours) || (that._validateMax && useMax && value > maxHours)) {\n item.hide();\n } else {\n item.show();\n }\n });\n } else {\n hoursList.find(\".k-item\").each(function(_, item) {\n item = $(item);\n var value = +item.attr(\"data-value\");\n if ((that._validateMin && value < minHours) ||\n (that._validateMax && value > maxHours)) {\n item.hide();\n } else {\n item.show();\n }\n });\n }\n\n this._updateListBottomOffset(hoursList);\n },\n\n _updateMinutesRange: function() {\n var that = this;\n var indexAttr = kendo.attr('index');\n var minutesList = this.ul.find('[' + indexAttr + '=\"2\"]');\n var minHours = this._minHours;\n var maxHours = this._maxHours;\n var minMinutes = this._minMinutes;\n var maxMinutes = this._maxMinutes;\n var selectedHour = +this._findSelectedValue(this.ul.find('[' + indexAttr + '=\"1\"]'));\n var is12hourFormat = includes(this.options.format.toLowerCase(), \"t\");\n var selectedDesignator = this._findSelectedValue(this.ul.find('[' + indexAttr + '=\"4\"]'));\n\n if (is12hourFormat && selectedDesignator === \"PM\") {\n selectedHour += 12;\n }\n\n if (!minutesList.length) {\n return;\n }\n\n minutesList.find(\".k-item\").each(function(_, item) {\n item = $(item);\n var value = +item.attr(\"data-value\");\n if ((that._validateMin && value < minMinutes && minHours && selectedHour === minHours) ||\n (that._validateMax && value > maxMinutes && maxHours && selectedHour === maxHours)) {\n item.hide();\n } else {\n item.show();\n }\n });\n\n this._updateListBottomOffset(minutesList);\n },\n\n _updateSecondsRange: function() {\n var that = this;\n var indexAttr = kendo.attr('index');\n var secondsList = this.ul.find('[' + indexAttr + '=\"3\"]');\n var minSeconds = this._minSeconds;\n var maxSeconds = this._minSeconds;\n var minMinutes = this._minMinutes;\n var maxMinutes = this._maxMinutes;\n var selectedMinutes = +this._findSelectedValue(this.ul.find('[' + indexAttr + '=\"2\"]'));\n\n if (!secondsList.length) {\n return;\n }\n\n secondsList.find(\".k-item\").each(function(_, item) {\n item = $(item);\n var value = +item.attr(\"data-value\");\n if ((that._validateMin && value < minSeconds && minMinutes && selectedMinutes === minMinutes) ||\n (that._validateMax && value > maxSeconds && maxMinutes && selectedMinutes === maxMinutes)) {\n item.hide();\n } else {\n item.show();\n }\n });\n\n this._updateListBottomOffset(secondsList);\n },\n\n _updateDesignatorRange: function() {\n var minHours = this._minHours;\n var maxHours = this._maxHours;\n var indexAttr = kendo.attr('index');\n var designatorList = this.ul.find('[' + indexAttr + '=\"4\"]');\n\n if (!designatorList.length) {\n return;\n }\n\n if (this._validateMin && minHours >= 12) {\n designatorList.find('.k-item[data-value=\"AM\"]').hide();\n } else {\n designatorList.find('.k-item[data-value=\"AM\"]').show();\n }\n\n if (this._validateMax && maxHours < 12) {\n designatorList.find('.k-item[data-value=\"PM\"]').hide();\n } else {\n designatorList.find('.k-item[data-value=\"PM\"]').show();\n }\n },\n\n\n _updateRanges: function() {\n if (!this.options.specifiedRange) {\n return;\n }\n if (!this._currentlySelected) {\n this._currentlySelected = new Date();\n }\n\n var max = this.options.endTime ? this.options.endTime : this.options.max;\n var min = this.options.startTime ? this.options.startTime : this.options.min;\n\n if (this.options.validateDate) {\n if (max.getFullYear() === this._currentlySelected.getFullYear() &&\n max.getMonth() === this._currentlySelected.getMonth() &&\n max.getDate() === this._currentlySelected.getDate()) {\n this._validateMax = true;\n } else {\n this._validateMax = false;\n }\n\n if (min.getFullYear() === this._currentlySelected.getFullYear() &&\n min.getMonth() === this._currentlySelected.getMonth() &&\n min.getDate() === this._currentlySelected.getDate()) {\n this._validateMin = true;\n } else {\n this._validateMin = false;\n }\n\n if (!this._validateMax && !this._validateMin) {\n this._showAllHiddenItems();\n return;\n }\n } else {\n this._validateMax = true;\n this._validateMin = true;\n }\n\n this._minMinutes = min.getMinutes();\n this._maxMinutes = max.getMinutes();\n this._minHours = min.getHours();\n this._maxHours = max.getHours();\n this._minSeconds = min.getSeconds();\n this._maxSeconds = max.getSeconds();\n\n this._updateDesignatorRange();\n this._updateHoursRange();\n this._updateMinutesRange();\n this._updateSecondsRange();\n },\n\n addTranslate: function() {\n var lists = this.ul.find(\".k-time-container.k-content.k-scrollable\");\n var length = lists.length;\n var list;\n var itemHeight;\n var listHeight;\n var topOffset;\n var translate;\n var bottomOffset;\n\n for (var i = 0; i < length; i++) {\n list = lists.eq(i);\n itemHeight = getItemHeight(list.find(\".k-item:visible\").eq(0));\n listHeight = list.outerHeight();\n topOffset = (listHeight - itemHeight) / 2;\n translate = \"translateY(\" + topOffset + \"px)\";\n bottomOffset = listHeight - itemHeight;\n list.find(\"ul\").css({\n transform: translate,\n \"-ms-transform\": translate\n });\n list.find(\".k-scrollable-placeholder\").css({\n height: list.find(\"ul\").height() + bottomOffset\n });\n list.off(ns)\n .on(\"click\" + ns, \".k-item\", this._itemClickHandler.bind(this))\n .on(\"scroll\" + ns, this._listScrollHandler.bind(this));\n }\n },\n\n _nowClickHandler: function(e) {\n e.preventDefault();\n\n var now = new Date();\n this.value(now);\n this.options.change(kendo.toString(now, this.options.format, this.options.culture), true);\n },\n\n _cancelClickHandler: function(e) {\n e.preventDefault();\n this.value(this._value);\n if (this.popup) {\n this.popup.close();\n }\n },\n\n _setClickHandler: function(e) {\n e.preventDefault();\n this._value = new Date(this._currentlySelected);\n\n this.options.change(kendo.toString(this._currentlySelected, this.options.format, this.options.culture), true);\n if (this.popup) {\n this.popup.close();\n }\n },\n\n _listScrollHandler: function(e) {\n var that = this;\n var itemHeight = getItemHeight($(e.currentTarget).find(\".k-item:visible\").eq(0));\n\n if (that._internalScroll) {\n return;\n }\n\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n\n that._scrollingTimeout = setTimeout(function() {\n if (e.currentTarget.scrollTop % itemHeight > 1) {\n e.currentTarget.scrollTop += itemHeight - e.currentTarget.scrollTop % itemHeight;\n }\n that._scrollTop = e.currentTarget.scrollTop;\n that._updateCurrentlySelected();\n that._updateRanges();\n }, 100);\n },\n\n _updateCurrentlySelected: function() {\n var is12hourFormat = includes(this.options.format.toLowerCase(), \"t\");\n var indexAttr = kendo.attr('index');\n var hoursList = this.ul.find('[' + indexAttr + '=\"1\"]');\n var minutesList = this.ul.find('[' + indexAttr + '=\"2\"]');\n var secondsList = this.ul.find('[' + indexAttr + '=\"3\"]');\n var designatorList = this.ul.find('[' + indexAttr + '=\"4\"]');\n var selectedHour;\n var selectedMinutes;\n var selectedSeconds;\n var selectedDesignator;\n\n if (!this.ul.is(\":visible\")) {\n return;\n }\n\n if (!this._currentlySelected) {\n this._currentlySelected = this._value ? new Date(this._value) : new Date();\n }\n\n if (hoursList.length) {\n selectedHour = +this._findSelectedValue(hoursList);\n }\n\n if (minutesList.length) {\n selectedMinutes = +this._findSelectedValue(minutesList);\n }\n\n if (secondsList.length) {\n selectedSeconds = +this._findSelectedValue(secondsList);\n }\n\n if (designatorList.length) {\n selectedDesignator = this._findSelectedValue(designatorList);\n }\n\n if (is12hourFormat) {\n if (selectedDesignator == \"PM\") {\n selectedHour += 12;\n if (selectedHour == 24) {\n selectedHour = 12;\n }\n }\n\n if (selectedDesignator === \"AM\" && selectedHour === 12) {\n selectedHour = 0;\n }\n }\n\n if (selectedHour !== undefined$1) {\n this._currentlySelected.setHours(selectedHour);\n }\n\n if (selectedMinutes !== undefined$1) {\n this._currentlySelected.setMinutes(selectedMinutes);\n }\n\n if (selectedSeconds !== undefined$1) {\n this._currentlySelected.setSeconds(selectedSeconds);\n }\n },\n\n _findSelectedValue: function(list) {\n var firstOccurence = firstItemIndex(list.scrollTop(), getItemHeight(list.find(\".k-item:visible\").eq(0)));\n return list.find(\".k-item:visible\").eq(firstOccurence).attr(\"data-value\");\n },\n\n _itemClickHandler: function(e) {\n var list = $(e.originalEvent.currentTarget);\n var index = list.find(\".k-item:visible\").index($(e.currentTarget));\n var itemHeight = getItemHeight(list.find(\".k-item:visible\").eq(0));\n\n list.scrollTop(index * itemHeight);\n },\n\n getDatesInRange: function(msStart, msMax, startDate, max, msInterval, start) {\n var result = [];\n\n while (true) {\n if (msMax && (getMilliseconds(start) >= msMax || startDate.getDate() != start.getDate())) {\n msStart = getMilliseconds(start);\n if (startDate < start) {\n msStart += MS_PER_DAY;\n }\n if (msStart > msMax) {\n start = new DATE(+max);\n }\n if (getMilliseconds(start) > 0) {\n result.push(new Date(start));\n }\n break;\n }\n if (startDate.getDate() != start.getDate()) {\n break;\n }\n result.push(new Date(start));\n start.setTime(start.getTime() + msInterval);\n if (!msMax && this.options.maxSet) {\n break;\n }\n }\n\n return result;\n },\n\n _createListContent: function(parts, interval) {\n var length = parts.length;\n var result = \"\";\n var part;\n var values;\n\n for (var i = 0; i < length; i++) {\n part = parts[i];\n\n if (part.type === \"literal\" || part.type == \"dayperiod\") {\n result += this._literalTemplate(part);\n } else {\n values = this._getValues(part, true, interval);\n result += this._itemTemplate(values.values, part, this.options.messages[part.type], values.index);\n }\n }\n\n return result;\n },\n\n _itemTemplate: function(values, part, title, index) {\n var result = \"\";\n var length = values.length;\n var indexAttr = kendo.attr('index');\n\n result += '
    ' +\n '' + (title || part.type) + '' +\n '
    ' +\n '
    ' +\n '
      ';\n\n for ( var i = 0; i < length; i++) {\n result += '
    • ' +\n '' + values[i] + '' +\n '
    • ';\n }\n\n result += '
    ' +\n '
    ' +\n '
    ' +\n '
    ' +\n '
    ';\n\n return result;\n },\n\n _getValues: function(part, shouldPad, interval) {\n var result = [];\n var index;\n var start = 0;\n var end;\n var step = 0;\n var currentStep = 0;\n\n if ($.isPlainObject(interval)) {\n step = interval[part.type] || 0;\n }\n\n if (part.type === \"hour\") {\n start = part.hour12 ? 1 : 0;\n index = 1;\n end = part.hour12 ? 12 : 23;\n } else if (part.type === \"minute\") {\n index = 2;\n end = 59;\n } else if (part.type === \"second\") {\n index = 3;\n end = 59;\n }\n\n for (; start <= end; start++) {\n if (step > 0) {\n if (start === 0 || (start === 1 && part.type === \"hour\")) {\n result.push(shouldPad ? pad(currentStep) : currentStep);\n }\n\n if (start % step === 0 && currentStep + step <= end) {\n currentStep += step;\n result.push(shouldPad ? pad(currentStep) : currentStep);\n }\n } else {\n result.push(shouldPad ? pad(start) : start);\n }\n }\n\n return {\n values: result,\n index: index\n };\n },\n\n _literalTemplate: function(part) {\n var isDayTimePattern = part.pattern === \" tt\" || part.pattern === \"aa\";\n var result = '
    ' +\n (isDayTimePattern ? ':' : part.pattern) +\n '
    ';\n\n if (isDayTimePattern) {\n result += this._itemTemplate([\"AM\", \"PM\"], part, \"AM/PM\", 4);\n }\n\n return result;\n },\n\n bind: function() {\n var that = this,\n options = that.options,\n dates = options.dates;\n\n if (dates && dates[0] && !(options.timeView && options.timeView.list === \"scroll\")) {\n that.dataBind(dates);\n } else {\n that.refresh();\n that.addTranslate();\n if (that._value) {\n that.applyValue(that._value);\n }\n }\n },\n\n _html: function(html) {\n var that = this;\n\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n html = HIGHLIGHTCONTAINER + html;\n that.ul.html(html);\n } else {\n that.ul[0].innerHTML = html;\n that.popup.unbind(OPEN, that._heightHandler);\n that.popup.one(OPEN, that._heightHandler);\n\n that.current(null);\n that.select(that._value);\n }\n },\n\n scroll: function(item) {\n if (!item) {\n return;\n }\n\n if (item.scrollIntoViewIfNeeded) {\n item.scrollIntoViewIfNeeded();\n } else {\n scrollIntoViewIfNeeded(item);\n }\n },\n\n select: function(li) {\n var that = this,\n options = that.options,\n current = that._current,\n selection;\n\n if (li instanceof Date) {\n li = kendo.toString(li, options.format, options.culture);\n }\n\n if (typeof li === \"string\") {\n if (!current || current.text() !== li) {\n li = $.grep(that.ul[0].childNodes, function(node) {\n return (node.textContent || node.innerText) == li;\n });\n\n li = li[0] ? li : null;\n } else {\n li = current;\n }\n }\n selection = that._distinctSelection(li);\n that.current(selection);\n },\n\n _distinctSelection: function(selection) {\n var that = this,\n currentValue,\n selectionIndex;\n\n if (selection && selection.length > 1) {\n currentValue = getMilliseconds(that._value);\n selectionIndex = $.inArray(currentValue, that._dates);\n selection = that.ul.children()[selectionIndex];\n }\n\n return selection;\n },\n\n setOptions: function(options) {\n var old = this.options;\n\n options.min = parse(options.min);\n options.max = parse(options.max);\n\n this.options = extend(old, options, {\n active: old.active,\n change: old.change,\n close: old.close,\n open: old.open\n });\n\n this.bind();\n },\n\n toggle: function() {\n var that = this;\n\n if (that.popup.visible()) {\n that.close();\n } else {\n that.open();\n }\n },\n\n value: function(value) {\n var that = this;\n\n that._value = value;\n if (that.ul[0].firstChild) {\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n that.applyValue(value);\n } else {\n that.select(value);\n }\n }\n },\n\n _click: function(e) {\n var that = this,\n li = $(e.currentTarget),\n date = li.text(),\n dates = that.options.dates;\n\n if (dates && dates.length > 0) {\n date = dates[li.index()];\n }\n\n if (!e.isDefaultPrevented()) {\n that.select(li);\n that.options.change(date, true);\n that.close();\n }\n },\n\n _height: function() {\n var that = this;\n var list = that.list;\n var parent = list.parent(\".k-child-animation-container\");\n var container = parent.closest(\".k-animation-container\");\n var height = that.options.height;\n var elements = list.add(container);\n var ul = that.ul[0];\n\n if (ul.children.length) {\n elements.add(parent).show();\n\n list.add(parent)\n .height(ul.scrollHeight > height && (that.options.adaptiveMode != \"auto\" || that.bigScreenMQL.mediaQueryList.matches) ? height : \"auto\");\n\n elements.hide();\n }\n },\n\n _parse: function(value) {\n var that = this,\n options = that.options,\n min = getMilliseconds(options.min) != getMilliseconds(TODAY) ? options.min : null,\n max = getMilliseconds(options.max) != getMilliseconds(TODAY) ? options.max : null,\n current = that._value || min || max || TODAY;\n\n if (value instanceof DATE) {\n return value;\n }\n\n value = parse(value, options.parseFormats, options.culture);\n\n if (value) {\n value = new DATE(current.getFullYear(),\n current.getMonth(),\n current.getDate(),\n value.getHours(),\n value.getMinutes(),\n value.getSeconds(),\n value.getMilliseconds());\n }\n\n return value;\n },\n\n _adjustListWidth: function() {\n var that = this,\n list = this.list,\n width = list[0].style.width,\n wrapper = this.options.anchor,\n computedStyle, computedWidth,\n outerWidth = kendo._outerWidth;\n\n if (!list.data(\"width\") && width) {\n return;\n }\n\n computedStyle = window.getComputedStyle ? window.getComputedStyle(wrapper[0], null) : 0;\n computedWidth = computedStyle ? parseFloat(computedStyle.width) : outerWidth(wrapper);\n\n if (computedStyle && (browser.mozilla || browser.msie)) { // getComputedStyle returns different box in FF and IE.\n computedWidth += parseFloat(computedStyle.paddingLeft) + parseFloat(computedStyle.paddingRight) + parseFloat(computedStyle.borderLeftWidth) + parseFloat(computedStyle.borderRightWidth);\n }\n\n width = computedWidth - (outerWidth(list) - list.width());\n\n list.css({\n fontFamily: wrapper.css(\"font-family\"),\n width: that.options.adaptiveMode != \"auto\" || that.bigScreenMQL.mediaQueryList.matches ? width : \"100%\"\n })\n .data(\"width\", width);\n },\n\n _popup: function() {\n var that = this,\n list = that.list,\n options = that.options,\n anchor = options.anchor;\n\n if (!this.options.omitPopup) {\n if (options.adaptiveMode == \"auto\" && !that.bigScreenMQL.mediaQueryList.matches) {\n var popupContent = that.popupContent || list;\n popupContent.appendTo(document.body);\n\n that.popup = new ui.ActionSheet(popupContent, {\n adaptive: true,\n focusOnActivate: false,\n title: \"Set time\",\n subtitle: \"00/00/00\",\n closeButton: true,\n fullscreen: that.smallScreenMQL.mediaQueryList.matches,\n popup: extend(options.popup, {\n anchor: anchor,\n open: options.open,\n close: options.close,\n animation: options.animation,\n isRtl: support.isRtl(options.anchor),\n }),\n activate: function() {\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n that.addTranslate();\n if (that._value) {\n that.applyValue(that._value);\n } else {\n that._updateCurrentlySelected();\n }\n that._updateRanges();\n that._focusList(that.list.find(\".k-time-list-wrapper\").eq(0));\n }\n }\n });\n\n that._updateCurrentlySelected();\n that._updateRanges();\n popupContent.find(\".k-time-footer\").appendTo(popupContent);\n } else {\n that.popup = new ui.Popup(that.popupContent || list, extend(options.popup, {\n anchor: anchor,\n open: options.open,\n close: options.close,\n animation: options.animation,\n isRtl: support.isRtl(options.anchor),\n activate: function() {\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n that.addTranslate();\n if (that._value) {\n that.applyValue(that._value);\n } else {\n that._updateCurrentlySelected();\n }\n that._updateRanges();\n that._focusList(that.list.find(\".k-time-list-wrapper\").eq(0));\n }\n }\n }));\n }\n\n } else {\n list.appendTo(options.timeDiv);\n }\n },\n\n move: function(e) {\n var that = this,\n key = e.keyCode,\n ul = that.ul[0],\n current = that._current,\n down = key === keys.DOWN;\n\n if (key === keys.UP || down) {\n if (e.altKey) {\n that.toggle(down);\n return;\n } else if (down) {\n current = current ? current[0].nextSibling : ul.firstChild;\n } else {\n current = current ? current[0].previousSibling : ul.lastChild;\n }\n\n if (current) {\n that.select(current);\n }\n\n that.options.change(that._current.text());\n e.preventDefault();\n\n } else if (key === keys.ENTER || key === keys.TAB || key === keys.ESC) {\n e.preventDefault();\n if (current) {\n that.options.change(current.text(), true);\n }\n that.close();\n }\n }\n };\n\n function dst() {\n var today = new DATE(),\n midnight = new DATE(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0),\n noon = new DATE(today.getFullYear(), today.getMonth(), today.getDate(), 12, 0, 0);\n\n return -1 * (midnight.getTimezoneOffset() - noon.getTimezoneOffset());\n }\n\n function getMilliseconds(date) {\n return date.getHours() * 60 * MS_PER_MINUTE + date.getMinutes() * MS_PER_MINUTE + date.getSeconds() * 1000 + date.getMilliseconds();\n }\n\n function lastTimeOption(interval) {\n var date = new Date(2100, 0, 1);\n date.setMinutes(-interval);\n return date;\n }\n\n function isInRange(value, min, max) {\n var msMin = getMilliseconds(min),\n msMax = getMilliseconds(max),\n msValue;\n\n if (!value || msMin == msMax) {\n return true;\n }\n\n msValue = getMilliseconds(value);\n\n if (msMin > msValue) {\n msValue += MS_PER_DAY;\n }\n\n if (msMax < msMin) {\n msMax += MS_PER_DAY;\n }\n\n return msValue >= msMin && msValue <= msMax;\n }\n\n TimeView.getMilliseconds = getMilliseconds;\n\n kendo.TimeView = TimeView;\n\n var TimePicker = Widget.extend({\n init: function(element, options) {\n var that = this, disabled;\n\n options = options || {};\n options.componentType = options.componentType || \"classic\";\n\n if ($.isPlainObject(options.interval) && options.componentType !== \"modern\") {\n options.interval = 30; // If an object is passed to the classic picker, fall back to the default interval value.\n }\n\n Widget.fn.init.call(that, element, options);\n\n element = that.element;\n options = that.options;\n\n options.min = parse(element.attr(\"min\")) || parse(options.min);\n options.max = parse(element.attr(\"max\")) || parse(options.max);\n\n if (+options.max != +TODAY || +options.min != +TODAY) {\n this._specifiedRange = true;\n }\n\n normalize(options);\n\n that._initialOptions = extend({}, options);\n\n that._wrapper();\n\n if (that.options.timeView && that.options.timeView.list === \"scroll\") {\n that.options.height = null;\n }\n\n that.bigScreenMQL = mediaQuery(\"large\");\n if (that.options.adaptiveMode == \"auto\") {\n that.bigScreenMQL.onChange(()=> {\n that._createTimeViewProxy();\n that._update(that.element.val());\n });\n }\n\n that._createTimeView();\n that._createTimeViewProxy = that._createTimeView.bind(that);\n\n that._icon();\n that._reset();\n\n try {\n element[0].setAttribute(\"type\", \"text\");\n } catch (e) {\n element[0].type = \"text\";\n }\n\n element.addClass(\"k-input-inner\")\n .attr({\n \"role\": \"combobox\",\n \"aria-expanded\": false,\n \"aria-controls\": that.timeView._timeViewID,\n \"autocomplete\": \"off\"\n });\n\n disabled = element.is(\"[disabled]\") || $(that.element).parents(\"fieldset\").is(':disabled');\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is(\"[readonly]\"));\n }\n if (options.dateInput) {\n var min = options.min;\n var max = options.max;\n var today = new DATE();\n if (getMilliseconds(min) == getMilliseconds(max)) {\n min = new DATE(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);\n max = new DATE(today.getFullYear(), today.getMonth(), today.getDate(), 24, 0, 0);\n }\n\n that._dateInput = new ui.DateInput(element, {\n culture: options.culture,\n format: options.format,\n min: min,\n max: max,\n value: options.value,\n interval: options.interval,\n size: options.size,\n fillMode: options.fillMode,\n rounded: options.rounded,\n messages: options.messages.dateInput,\n autoCorrectParts: options.autoCorrectParts\n });\n }\n that._old = that._update(options.value || that.element.val());\n that._oldText = element.val();\n that._applyCssClasses();\n\n if (options.label) {\n that._label();\n }\n\n kendo.notify(that);\n },\n\n options: {\n name: \"TimePicker\",\n min: TODAY,\n max: TODAY,\n format: \"\",\n dates: [],\n parseFormats: [],\n focusTime: null,\n value: null,\n interval: 30,\n height: 200,\n animation: {},\n dateInput: false,\n messages: {\n set: \"Set\",\n cancel: \"Cancel\",\n hour: \"hour\",\n minute: \"minute\",\n second: \"second\",\n millisecond: \"millisecond\",\n now: \"Now\"\n },\n adaptiveMode: \"none\",\n componentType: \"classic\",\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n label: null,\n autoCorrectParts: true\n },\n\n events: [\n OPEN,\n CLOSE,\n CHANGE\n ],\n\n componentTypes: {\n \"classic\": {\n timeView: {\n list: \"list\"\n }\n },\n \"modern\": {\n timeView: {\n list: \"scroll\"\n }\n }\n },\n\n setOptions: function(options) {\n var that = this;\n var value = that._value;\n\n if ($.isPlainObject(options.interval) && options.componentType !== \"modern\") {\n options.interval = 30; // If an object is passed to the classic picker, fall back to the default interval value.\n }\n\n Widget.fn.setOptions.call(that, options);\n options = that.options;\n\n if (+options.max != +TODAY || +options.min != +TODAY) {\n this._specifiedRange = true;\n }\n\n that._arrow.off(ns);\n that._arrow.remove();\n\n normalize(options);\n\n that.timeView.setOptions(options);\n\n that._icon();\n that._editable(options);\n\n if (value) {\n that.element.val(kendo.toString(value, options.format, options.culture));\n }\n\n if (options.label && that._inputLabel) {\n that.label.setOptions(options.label);\n } else if (options.label === false) {\n that.label._unwrapFloating();\n that._inputLabel.remove();\n delete that._inputLabel;\n } else if (options.label) {\n that._label();\n }\n },\n\n dataBind: function(dates) {\n if (isArray(dates)) {\n this.timeView.dataBind(dates);\n }\n },\n\n _editable: function(options) {\n var that = this,\n disable = options.disable,\n readonly = options.readonly,\n arrow = that._arrow.off(ns),\n element = that.element.off(ns),\n wrapper = that.wrapper.off(ns);\n\n if (that._dateInput) {\n that._dateInput._unbindInput();\n }\n\n if (!readonly && !disable) {\n wrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n if (element && element.length) {\n element[0].removeAttribute(DISABLED);\n element[0].removeAttribute(READONLY);\n }\n element.attr(ARIA_DISABLED, false)\n .attr(ARIA_READONLY, false)\n .on(\"keydown\" + ns, that._keydown.bind(that))\n .on(\"focusout\" + ns, that._blur.bind(that))\n .on(\"focus\" + ns, function() {\n that.wrapper.addClass(FOCUSED);\n });\n\n if (that._dateInput) {\n that._dateInput._bindInput();\n }\n arrow.on(CLICK, that._click.bind(that))\n .on(MOUSEDOWN, preventDefault);\n } else {\n wrapper\n .addClass(disable ? STATEDISABLED : \"\")\n .removeClass(disable ? \"\" : STATEDISABLED);\n\n element.attr(DISABLED, disable)\n .attr(READONLY, readonly)\n .attr(ARIA_DISABLED, disable)\n .attr(ARIA_READONLY, readonly);\n }\n },\n\n _label: function() {\n var that = this;\n var options = that.options;\n var labelOptions = $.isPlainObject(options.label) ? options.label : {\n content: options.label\n };\n\n if (that._dateInput) {\n labelOptions.floatCheck = () => {\n\n if (!that.value() && (!that._dateInput._hasDateInput() || that.element.val() === \"\") && document.activeElement !== that.element[0]) {\n that.element.val(\"\");\n return true;\n }\n\n return false;\n };\n }\n\n that.label = new kendo.ui.Label(null, $.extend({}, labelOptions, {\n widget: that\n }));\n\n that._inputLabel = that.label.element;\n },\n\n readonly: function(readonly) {\n this._editable({\n readonly: readonly === undefined$1 ? true : readonly,\n disable: false\n });\n\n if (this.label && this.label.floatingLabel) {\n this.label.floatingLabel.readonly(readonly === undefined$1 ? true : readonly);\n }\n },\n\n enable: function(enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined$1 ? true : enable)\n });\n\n if (this.label && this.label.floatingLabel) {\n this.label.floatingLabel.enable(enable = enable === undefined$1 ? true : enable);\n }\n },\n\n destroy: function() {\n var that = this;\n\n Widget.fn.destroy.call(that);\n\n that.timeView.destroy();\n\n that.element.off(ns);\n that._arrow.off(ns);\n that.wrapper.off(ns);\n\n if (that._form) {\n that._form.off(\"reset\", that._resetHandler);\n }\n\n if (that.label) {\n that.label.destroy();\n }\n\n if (that.bigScreenMQL) {\n that.bigScreenMQL.destroy();\n }\n\n that._createTimeViewProxy = null;\n },\n\n close: function() {\n this.timeView.close();\n },\n\n open: function() {\n this.timeView.open();\n },\n\n min: function(value) {\n if (value) {\n this._specifiedRange = true;\n }\n\n return this._option(\"min\", value);\n },\n\n max: function(value) {\n if (value && this.timeView) {\n this._specifiedRange = true;\n this.timeView.options.maxSet = true;\n } else if (this.timeView) {\n this.timeView.options.maxSet = false;\n }\n return this._option(\"max\", value);\n },\n\n value: function(value) {\n var that = this;\n\n if (value === undefined$1) {\n return that._value;\n }\n\n that._old = that._update(value);\n\n if (that._old === null) {\n that.element.val(\"\");\n }\n\n that._oldText = that.element.val();\n\n if (that.label && that.label.floatingLabel) {\n that.label.floatingLabel.refresh();\n }\n },\n\n _blur: function() {\n var that = this,\n value = that.element.val();\n that._typing = false;\n\n if (!(that.options.timeView && that.options.timeView.list === \"scroll\")) {\n that.close();\n }\n\n if (value !== that._oldText) {\n that._change(value);\n }\n that.wrapper.removeClass(FOCUSED);\n },\n\n _click: function() {\n var that = this,\n element = that.element;\n\n that.timeView.toggle();\n\n if (!support.touch && element[0] !== activeElement() && !(that.options.timeView && that.options.timeView.list === \"scroll\")) {\n element.trigger(\"focus\");\n }\n },\n\n _change: function(value) {\n var that = this,\n oldValue = that.element.val(),\n dateChanged;\n\n value = that._update(value);\n dateChanged = !kendo.calendar.isEqualDate(that._old, value);\n\n var valueUpdated = dateChanged && !that._typing;\n var textFormatted = oldValue !== that.element.val();\n\n if (valueUpdated || textFormatted) {\n that.element.trigger(CHANGE);\n }\n\n if (dateChanged) {\n that._old = value;\n that._oldText = that.element.val();\n\n that.trigger(CHANGE);\n }\n\n that._typing = false;\n },\n\n _createTimeView: function() {\n var that = this;\n var options = that.options;\n var element = that.element;\n var timeView,\n ul;\n\n if (that.timeView) {\n that.timeView.destroy();\n that.timeView = null;\n }\n\n that.timeView = timeView = new TimeView(extend({}, options, {\n id: element.attr(ID),\n size: options.adaptiveMode != \"auto\" || that.bigScreenMQL.mediaQueryList.matches ? options.size : \"large\",\n anchor: that.wrapper,\n format: options.format,\n change: function(value, trigger) {\n if (trigger) {\n that._change(value);\n } else {\n element.val(value);\n }\n that.timeView._focusTime = null;\n },\n open: function(e) {\n if (that.options.timeView && that.options.timeView.list !== \"scroll\") {\n that.timeView._adjustListWidth();\n } else {\n that.timeView._updateTitle();\n }\n\n if (that.trigger(OPEN)) {\n e.preventDefault();\n } else {\n element.attr(ARIA_EXPANDED, true);\n ul.attr(ARIA_HIDDEN, false);\n\n if (timeView.current()) {\n element.attr(ARIA_ACTIVEDESCENDANT, timeView._optionID);\n }\n }\n },\n close: function(e) {\n if (that.trigger(CLOSE)) {\n e.preventDefault();\n } else {\n element.attr(ARIA_EXPANDED, false);\n ul.attr(ARIA_HIDDEN, true);\n element[0].removeAttribute(ARIA_ACTIVEDESCENDANT);\n }\n },\n active: function(current) {\n if (element && element.length) {\n element[0].removeAttribute(ARIA_ACTIVEDESCENDANT);\n }\n if (current) {\n element.attr(ARIA_ACTIVEDESCENDANT, timeView._optionID);\n }\n },\n specifiedRange: that._specifiedRange,\n maxSet: +options.max != +TODAY\n }));\n\n ul = timeView.ul;\n\n that._ariaLabel(ul);\n },\n\n _icon: function() {\n var that = this,\n element = that.element,\n options = that.options,\n arrow;\n\n arrow = element.next(\"button.k-input-button\");\n\n if (!arrow[0]) {\n arrow = $(html.renderButton('', {\n icon: \"clock\",\n size: options.size,\n fillMode: options.fillMode,\n shape: \"none\",\n rounded: \"none\"\n })).insertAfter(element);\n }\n\n that._arrow = arrow.attr({\n \"role\": \"button\"\n });\n },\n\n _keydown: function(e) {\n var that = this,\n key = e.keyCode,\n timeView = that.timeView,\n value = that.element.val();\n\n if (timeView.popup.visible() || e.altKey) {\n timeView.move(e);\n if (that._dateInput && e.stopImmediatePropagation) {\n e.stopImmediatePropagation();\n }\n } else if (key === keys.ENTER && value !== that._oldText) {\n that._change(value);\n } else {\n that._typing = true;\n }\n },\n\n _option: function(option, value) {\n var that = this,\n options = that.options;\n\n if (value === undefined$1) {\n return options[option];\n }\n\n value = that.timeView._parse(value);\n\n if (!value) {\n return;\n }\n\n value = new DATE(+value);\n\n options[option] = value;\n that.timeView.options[option] = value;\n that.timeView.bind();\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === \"mouseenter\");\n },\n\n _update: function(value) {\n var that = this,\n options = that.options,\n timeView = that.timeView,\n date = timeView._parse(value);\n\n if (!isInRange(date, options.min, options.max)) {\n date = null;\n }\n\n that._value = date;\n that._currentlySelected = date;\n if (that._dateInput && date) {\n that._dateInput.value(date || value);\n } else {\n that.element.val(kendo.toString(date || value, options.format, options.culture));\n }\n timeView.value(date);\n\n return date;\n },\n\n _wrapper: function() {\n var that = this,\n element = that.element,\n wrapper;\n\n wrapper = element.parents(\".k-timepicker\");\n\n if (!wrapper[0]) {\n wrapper = element.wrap(SPAN).parent();\n }\n\n wrapper[0].style.cssText = element[0].style.cssText;\n that.wrapper = wrapper.addClass(\"k-timepicker k-input\")\n .addClass(element[0].className);\n\n element.css({\n height: element[0].style.height\n });\n },\n\n _reset: function() {\n var that = this,\n element = that.element,\n formId = element.attr(\"form\"),\n form = formId ? $(\"#\" + formId) : element.closest(\"form\");\n\n if (form[0]) {\n that._resetHandler = function() {\n that.value(element[0].defaultValue);\n that.max(that._initialOptions.max);\n that.min(that._initialOptions.min);\n };\n\n that._form = form.on(\"reset\", that._resetHandler);\n }\n }\n });\n\n function normalize(options) {\n var parseFormats = options.parseFormats;\n\n options.format = extractFormat(options.format || kendo.getCulture(options.culture).calendars.standard.patterns.t);\n\n parseFormats = isArray(parseFormats) ? parseFormats : [parseFormats];\n parseFormats.splice(0, 0, options.format);\n options.parseFormats = parseFormats;\n }\n\n function preventDefault(e) {\n e.preventDefault();\n }\n\n function mergeDateAndTime(date, time) {\n return new Date(date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n time.getHours(),\n time.getMinutes(),\n time.getSeconds(),\n time.getMilliseconds());\n }\n\n function includes(text, subStr) {\n var returnValue = false;\n\n if (text.indexOf(subStr) !== -1) {\n returnValue = true;\n }\n\n return returnValue;\n }\n\n function pad(value, size) {\n var s = String(value);\n while (s.length < (size || 2)) {\n s = \"0\" + s;\n }\n return s;\n }\n\n function firstItemIndex(scrollTop, itemHeight) {\n return Math.max(Math.round(scrollTop / itemHeight), 0);\n }\n\n function getItemHeight(item) {\n return item.length && item[0].getBoundingClientRect().height;\n }\n\n function scrollIntoViewIfNeeded(element, centerIfNeeded) {\n\n function makeRange(start, length) {\n return { start: start, length: length, end: start + length };\n }\n\n function coverRange(inner, outer) {\n if (centerIfNeeded === false ||\n (outer.start < inner.end && inner.start < outer.end))\n {\n return Math.min(\n inner.start, Math.max(outer.start, inner.end - outer.length)\n );\n }\n return (inner.start + inner.end - outer.length) / 2;\n }\n\n function makePoint(x, y) {\n return {\n x: x, y: y,\n translate: function translate(dX, dY) {\n return makePoint(x + dX, y + dY);\n }\n };\n }\n\n function absolute(elem, pt) {\n while (elem) {\n pt = pt.translate(elem.offsetLeft, elem.offsetTop);\n elem = elem.offsetParent;\n }\n return pt;\n }\n\n var target = absolute(element, makePoint(0, 0)),\n extent = makePoint(element.offsetWidth, element.offsetHeight),\n elem = element.parentNode,\n origin;\n\n while (elem instanceof HTMLElement) {\n origin = absolute(elem, makePoint(elem.clientLeft, elem.clientTop));\n elem.scrollLeft = coverRange(\n makeRange(target.x - origin.x, extent.x),\n makeRange(elem.scrollLeft, elem.clientWidth)\n );\n elem.scrollTop = coverRange(\n makeRange(target.y - origin.y, extent.y),\n makeRange(elem.scrollTop, elem.clientHeight)\n );\n\n target = target.translate(-elem.scrollLeft, -elem.scrollTop);\n elem = elem.parentNode;\n }\n }\n\n\n kendo.cssProperties.registerPrefix(\"TimePicker\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"TimePicker\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(TimePicker);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}