{"version":3,"sources":["kendo.dateinput.js"],"names":["f","define","$","undefined","approximateStringMatching","oldText","oldFormat","newText","caret","diff","i","deletedSymbol","symbol","oldTextSeparator","length","substring","push","indexOf","knownSymbols","Math","max","customDateTime","global","window","kendo","ui","Widget","keys","ns","proxy","objectToString","toString","INPUT_EVENT_NAME","support","propertyChangeEvent","STATEDISABLED","STATEDEFAULT","STATEINVALID","DISABLED","READONLY","CHANGE","DateInput","extend","init","element","options","insidePicker","disabled","that","this","fn","call","format","_extractFormat","getCulture","culture","calendars","standard","patterns","d","min","parseDate","attr","parent","wrapper","wrap","addClass","className","removeClass","style","cssText","css","width","height","_inputWrapper","insertAfter","_form","on","_change","setAttribute","e","type","is","parents","enable","readonly","value","val","notify","name","Date","messages","year","month","day","weekday","hour","minute","second","dayperiod","events","setOptions","_unbindInput","_bindInput","_updateElementValue","destroy","off","_formElement","_resetHandler","_dateTime","getDateObject","getTime","_oldValue","stringAndFromat","toPair","_oldText","_format","_editable","disable","_paste","_keydown","_input","_mouseUp","_scroll","removeAttribute","oldValue","trigger","navigationOnly","valid","difSym","newEvent","stateInvalid","blinkInvalid","_activeElement","parsePart","_selectSegment","setTimeout","keyCode","preventDefault","clearTimeout","_blinkInvalidTimeout","selection","_selectNearestSegment","event","shiftKey","wheelDelta","detail","returnValue","stopPropagation","formId","form","closest","initialValue","dir","index","interval","keycode","key","modifyPart","browser","msie","version","which","ENTER","j","start","begin","end","plugin","initDate","initFormat","initCulture","initMessages","pad","number","digits","zeros","generateMatcher","retFormat","returnsFormat","matcher","setExisting","setMonth","typedMonthPart","date","hours","typedDayPeriodPart","minutes","seconds","sampleFormat","milliseconds","placeholders","dateFormatRegExp","months","calendar","days","match","mins","sign","result","formatResult","getDate","namesAbbr","getDay","names","getMonth","getFullYear","getHours","getMinutes","getSeconds","floor","getMilliseconds","AM","PM","getTimezoneOffset","abs","split","slice","setValue","getValue","offset","newMonth","newValue","setFullYear","setDate","setHours","setMinutes","setSeconds","currentChar","newHours","newDate","monthNames","newYear","newMinutes","newSeconds","parseInt","isNaN","toLowerCase","replace","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.dateinput.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.dateinput', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'dateinput',\n name: 'DateInput',\n category: 'web',\n description: 'The DateInput widget allows to edit date by typing.',\n depends: ['core']\n };\n (function ($, undefined) {\n var global = window;\n var kendo = global.kendo;\n var caret = kendo.caret;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var keys = kendo.keys;\n var ns = '.kendoDateInput';\n var proxy = $.proxy;\n var objectToString = {}.toString;\n var INPUT_EVENT_NAME = (kendo.support.propertyChangeEvent ? 'propertychange.kendoDateInput input' : 'input') + ns;\n var STATEDISABLED = 'k-state-disabled';\n var STATEDEFAULT = 'k-state-default';\n var STATEINVALID = 'k-state-invalid';\n var DISABLED = 'disabled';\n var READONLY = 'readonly';\n var CHANGE = 'change';\n var knownSymbols = 'dMyHhmftsz';\n var DateInput = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n element = that.element;\n options = that.options;\n options.format = kendo._extractFormat(options.format || kendo.getCulture(options.culture).calendars.standard.patterns.d);\n options.min = kendo.parseDate(element.attr('min')) || kendo.parseDate(options.min);\n options.max = kendo.parseDate(element.attr('max')) || kendo.parseDate(options.max);\n var insidePicker = (element.parent().attr('class') || '').indexOf('k-picker-wrap') >= 0;\n if (insidePicker) {\n that.wrapper = element.parent();\n } else {\n that.wrapper = element.wrap('').parent();\n that.wrapper.addClass(element[0].className).removeClass('input-validation-error');\n that.wrapper[0].style.cssText = element[0].style.cssText;\n element.css({\n width: '100%',\n height: element[0].style.height\n });\n }\n that._inputWrapper = $(that.wrapper[0]);\n $('').insertAfter(element);\n that._form();\n that.element.addClass(insidePicker ? ' ' : 'k-textbox').attr('autocomplete', 'off').on('focusout' + ns, function () {\n that._change();\n });\n try {\n element[0].setAttribute('type', 'text');\n } catch (e) {\n element[0].type = 'text';\n }\n var 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 that.value(that.options.value || element.val());\n kendo.notify(that);\n },\n options: {\n name: 'DateInput',\n culture: '',\n value: '',\n format: '',\n min: new Date(1900, 0, 1),\n max: new Date(2099, 11, 31),\n messages: {\n 'year': 'year',\n 'month': 'month',\n 'day': 'day',\n 'weekday': 'day of the week',\n 'hour': 'hours',\n 'minute': 'minutes',\n 'second': 'seconds',\n 'dayperiod': 'AM/PM'\n }\n },\n events: [CHANGE],\n min: function (value) {\n if (value !== undefined) {\n this.options.min = value;\n } else {\n return this.options.min;\n }\n },\n max: function (value) {\n if (value !== undefined) {\n this.options.max = value;\n } else {\n return this.options.max;\n }\n },\n setOptions: function (options) {\n var that = this;\n Widget.fn.setOptions.call(that, options);\n this._unbindInput();\n this._bindInput();\n this._updateElementValue();\n },\n destroy: function () {\n var that = this;\n that.element.off(ns);\n if (that._formElement) {\n that._formElement.off('reset', that._resetHandler);\n }\n Widget.fn.destroy.call(that);\n },\n value: function (value) {\n if (value === undefined) {\n return this._dateTime.getDateObject();\n }\n if (value === null) {\n value = '';\n }\n if (objectToString.call(value) !== '[object Date]') {\n value = kendo.parseDate(value, this.options.format, this.options.culture);\n }\n if (value && !value.getTime()) {\n value = null;\n }\n this._dateTime = new customDateTime(value, this.options.format, this.options.culture, this.options.messages);\n this._updateElementValue();\n this._oldValue = value;\n },\n _updateElementValue: function () {\n var stringAndFromat = this._dateTime.toPair(this.options.format, this.options.culture, this.options.messages);\n this.element.val(stringAndFromat[0]);\n this._oldText = stringAndFromat[0];\n this._format = stringAndFromat[1];\n },\n readonly: function (readonly) {\n this._editable({\n readonly: readonly === undefined ? true : readonly,\n disable: false\n });\n },\n enable: function (enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined ? true : enable)\n });\n },\n _bindInput: function () {\n var that = this;\n that.element.on('focusout' + ns, function () {\n that._change();\n }).on('paste' + ns, proxy(that._paste, that)).on('keydown' + ns, proxy(that._keydown, that)).on(INPUT_EVENT_NAME, proxy(that._input, that)).on('mouseup' + ns, proxy(that._mouseUp, that)).on('DOMMouseScroll' + ns + ' mousewheel' + ns, proxy(that._scroll, that));\n },\n _unbindInput: function () {\n this.element.off('keydown' + ns).off('paste' + ns).off('focusout' + ns).off(INPUT_EVENT_NAME).off('mouseup' + ns).off('DOMMouseScroll' + ns + ' mousewheel' + ns);\n },\n _editable: function (options) {\n var that = this;\n var element = that.element;\n var disable = options.disable;\n var readonly = options.readonly;\n var wrapper = that.wrapper;\n that._unbindInput();\n if (!readonly && !disable) {\n wrapper.addClass(STATEDEFAULT).removeClass(STATEDISABLED);\n if (element && element.length) {\n element[0].removeAttribute(DISABLED);\n element[0].removeAttribute(READONLY);\n }\n that._bindInput();\n } else {\n if (disable) {\n wrapper.addClass(STATEDISABLED).removeClass(STATEDEFAULT);\n element.attr(DISABLED, disable);\n if (element && element.length) {\n element[0].removeAttribute(READONLY);\n }\n }\n if (readonly) {\n element.attr(READONLY, readonly);\n }\n }\n },\n _change: function () {\n var that = this;\n var oldValue = that._oldValue;\n var value = that.value();\n if (value && that.min() && value < that.min()) {\n that.value(that.min());\n value = that.value();\n }\n if (value && that.max() && value > that.max()) {\n that.value(that.max());\n value = that.value();\n }\n if (oldValue && value && value.getTime() !== oldValue.getTime() || oldValue && !value || !oldValue && value) {\n that._oldValue = value;\n that.trigger(CHANGE);\n that.element.trigger(CHANGE);\n }\n },\n _input: function () {\n var that = this;\n var element = that.element[0];\n var blinkInvalid = false;\n if (kendo._activeElement() !== element) {\n return;\n }\n var diff = approximateStringMatching(this._oldText, this._format, this.element[0].value, caret(this.element[0])[0]);\n var navigationOnly = diff.length === 1 && diff[0][1] === ' ';\n if (!navigationOnly) {\n for (var i = 0; i < diff.length; i++) {\n var valid = this._dateTime.parsePart(diff[i][0], diff[i][1]);\n blinkInvalid = blinkInvalid || !valid;\n }\n }\n this._updateElementValue();\n if (diff.length && diff[0][0] !== ' ') {\n this._selectSegment(diff[0][0]);\n if (!navigationOnly) {\n var difSym = diff[0][0];\n setTimeout(function () {\n that._selectSegment(difSym);\n });\n }\n }\n if (navigationOnly) {\n var newEvent = {\n keyCode: 39,\n preventDefault: function () {\n }\n };\n this._keydown(newEvent);\n }\n if (blinkInvalid) {\n clearTimeout(that._blinkInvalidTimeout);\n var stateInvalid = STATEINVALID;\n that.wrapper.addClass(STATEINVALID);\n that._blinkInvalidTimeout = setTimeout(function () {\n that.wrapper.removeClass(stateInvalid);\n }, 100);\n }\n },\n _mouseUp: function () {\n var selection = caret(this.element[0]);\n if (selection[0] === selection[1]) {\n this._selectNearestSegment();\n }\n },\n _scroll: function (e) {\n if (kendo._activeElement() !== this.element[0] || this.element.is('[readonly]')) {\n return;\n }\n e = window.event || e;\n var newEvent = {\n keyCode: 37,\n preventDefault: function () {\n }\n };\n if (e.shiftKey) {\n newEvent.keyCode = (e.wheelDelta || -e.detail) > 0 ? 37 : 39;\n } else {\n newEvent.keyCode = (e.wheelDelta || -e.detail) > 0 ? 38 : 40;\n }\n this._keydown(newEvent);\n e.returnValue = false;\n if (e.preventDefault) {\n e.preventDefault();\n }\n if (e.stopPropagation) {\n e.stopPropagation();\n }\n },\n _form: function () {\n var that = this;\n var element = that.element;\n var formId = element.attr('form');\n var form = formId ? $('#' + formId) : element.closest('form');\n var initialValue = element[0].value;\n if (!initialValue && that.options.value) {\n initialValue = that.options.value;\n }\n if (form[0]) {\n that._resetHandler = function () {\n setTimeout(function () {\n that.value(initialValue);\n });\n };\n that._formElement = form.on('reset', that._resetHandler);\n }\n },\n _paste: function (e) {\n e.preventDefault();\n },\n _keydown: function (e) {\n var key = e.keyCode;\n var selection;\n if (key == 37 || key == 39) {\n e.preventDefault();\n selection = caret(this.element[0]);\n if (selection[0] != selection[1]) {\n this._selectNearestSegment();\n }\n var dir = key == 37 ? -1 : 1;\n var index = dir == -1 ? caret(this.element[0])[0] - 1 : caret(this.element[0])[1] + 1;\n while (index >= 0 && index < this._format.length) {\n if (knownSymbols.indexOf(this._format[index]) >= 0) {\n this._selectSegment(this._format[index]);\n break;\n }\n index += dir;\n }\n }\n if (key == 38 || key == 40) {\n e.preventDefault();\n selection = caret(this.element[0]);\n var symbol = this._format[selection[0]];\n if (knownSymbols.indexOf(symbol) >= 0) {\n var interval = 1;\n if (symbol == 'm') {\n interval = this.options.interval || 1;\n }\n this._dateTime.modifyPart(symbol, key == 38 ? interval * 1 : interval * -1);\n this._updateElementValue();\n this._selectSegment(symbol);\n this.element.trigger(CHANGE);\n }\n }\n if (kendo.support.browser.msie && kendo.support.browser.version < 10) {\n var keycode = e.keyCode ? e.keyCode : e.which;\n if (keycode === 8 || keycode === 46) {\n var that = this;\n setTimeout(function () {\n that._input();\n }, 0);\n }\n }\n if (key === keys.ENTER) {\n this._change();\n }\n },\n _selectNearestSegment: function () {\n var selection = caret(this.element[0]);\n var start = selection[0];\n for (var i = start, j = start - 1; i < this._format.length || j >= 0; i++, j--) {\n if (i < this._format.length && knownSymbols.indexOf(this._format[i]) !== -1) {\n this._selectSegment(this._format[i]);\n return;\n }\n if (j >= 0 && knownSymbols.indexOf(this._format[j]) !== -1) {\n this._selectSegment(this._format[j]);\n return;\n }\n }\n },\n _selectSegment: function (symbol) {\n var begin = -1, end = 0;\n for (var i = 0; i < this._format.length; i++) {\n if (this._format[i] === symbol) {\n end = i + 1;\n if (begin === -1) {\n begin = i;\n }\n }\n }\n if (begin < 0) {\n begin = 0;\n }\n caret(this.element, begin, end);\n }\n });\n ui.plugin(DateInput);\n var customDateTime = function (initDate, initFormat, initCulture, initMessages) {\n var value = null;\n var year = true, month = true, date = true, hours = true, minutes = true, seconds = true, milliseconds = true;\n var typedMonthPart = '';\n var typedDayPeriodPart = '';\n var placeholders = {};\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000'\n ];\n function pad(number, digits, end) {\n number = number + '';\n digits = digits || 2;\n end = digits - number.length;\n if (end) {\n return zeros[digits].substring(0, end) + number;\n }\n return number;\n }\n var dateFormatRegExp = /dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|HH|H|hh|h|mm|m|fff|ff|f|tt|ss|s|zzz|zz|z|\"[^\"]*\"|'[^']*'/g;\n var months = null, calendar = null, days = null, returnsFormat = false;\n var matcher = function (match) {\n var mins, sign;\n var result;\n switch (match) {\n case 'd':\n result = date ? value.getDate() : placeholders.day;\n break;\n case 'dd':\n result = date ? pad(value.getDate()) : placeholders.day;\n break;\n case 'ddd':\n result = date && month && year ? days.namesAbbr[value.getDay()] : placeholders.weekday;\n break;\n case 'dddd':\n result = date && month && year ? days.names[value.getDay()] : placeholders.weekday;\n break;\n case 'M':\n result = month ? value.getMonth() + 1 : placeholders.month;\n break;\n case 'MM':\n result = month ? pad(value.getMonth() + 1) : placeholders.month;\n break;\n case 'MMM':\n result = month ? months.namesAbbr[value.getMonth()] : placeholders.month;\n break;\n case 'MMMM':\n result = month ? months.names[value.getMonth()] : placeholders.month;\n break;\n case 'yy':\n result = year ? pad(value.getFullYear() % 100) : placeholders.year;\n break;\n case 'yyyy':\n result = year ? pad(value.getFullYear(), 4) : placeholders.year;\n break;\n case 'h':\n result = hours ? value.getHours() % 12 || 12 : placeholders.hour;\n break;\n case 'hh':\n result = hours ? pad(value.getHours() % 12 || 12) : placeholders.hour;\n break;\n case 'H':\n result = hours ? value.getHours() : placeholders.hour;\n break;\n case 'HH':\n result = hours ? pad(value.getHours()) : placeholders.hour;\n break;\n case 'm':\n result = minutes ? value.getMinutes() : placeholders.minute;\n break;\n case 'mm':\n result = minutes ? pad(value.getMinutes()) : placeholders.minute;\n break;\n case 's':\n result = seconds ? value.getSeconds() : placeholders.second;\n break;\n case 'ss':\n result = seconds ? pad(value.getSeconds()) : placeholders.second;\n break;\n case 'f':\n result = milliseconds ? Math.floor(value.getMilliseconds() / 100) : milliseconds;\n break;\n case 'ff':\n result = value.getMilliseconds();\n if (result > 99) {\n result = Math.floor(result / 10);\n }\n result = milliseconds ? pad(result) : match;\n break;\n case 'fff':\n result = milliseconds ? pad(value.getMilliseconds(), 3) : match;\n break;\n case 'tt':\n result = hours ? value.getHours() < 12 ? calendar.AM[0] : calendar.PM[0] : placeholders.dayperiod;\n break;\n case 'zzz':\n mins = value.getTimezoneOffset();\n sign = mins < 0;\n result = Math.abs(mins / 60).toString().split('.')[0];\n mins = Math.abs(mins) - result * 60;\n result = (sign ? '+' : '-') + pad(result);\n result += ':' + pad(mins);\n break;\n case 'z':\n case 'zz':\n result = value.getTimezoneOffset() / 60;\n sign = result < 0;\n result = Math.abs(result).toString().split('.')[0];\n result = (sign ? '+' : '-') + (match === 'zz' ? pad(result) : result);\n break;\n }\n result = result !== undefined ? result : match.slice(1, match.length - 1);\n if (returnsFormat) {\n result = '' + result;\n var formatResult = '';\n if (match == 'ddd') {\n match = 'EEE';\n }\n if (match == 'dddd') {\n match = 'EEEE';\n }\n for (var i = 0; i < result.length; i++) {\n formatResult += match[0];\n }\n return formatResult;\n } else {\n return result;\n }\n };\n function generateMatcher(retFormat) {\n returnsFormat = retFormat;\n return matcher;\n }\n function setExisting(symbol, val) {\n switch (symbol) {\n case 'y':\n year = val;\n break;\n case 'M':\n month = val;\n if (!val) {\n value.setMonth(0);\n typedMonthPart = '';\n }\n break;\n case 'd':\n date = val;\n break;\n case 'H':\n case 'h':\n hours = val;\n if (!val) {\n typedDayPeriodPart = '';\n }\n break;\n case 'm':\n minutes = val;\n break;\n case 's':\n seconds = val;\n break;\n default:\n return;\n }\n }\n this.setValue = function (val) {\n date = val;\n };\n this.getValue = function () {\n return date;\n };\n this.modifyPart = function (symbol, offset) {\n var newValue = new Date(value && value.getTime ? value.getTime() : value);\n switch (symbol) {\n case 'y':\n newValue.setFullYear(newValue.getFullYear() + offset);\n break;\n case 'M':\n var newMonth = newValue.getMonth() + offset;\n newValue.setMonth(newMonth);\n if (newValue.getMonth() % 12 !== (newMonth + 12) % 12) {\n newValue.setDate(1);\n newValue.setMonth(newMonth);\n }\n break;\n case 'd':\n case 'E':\n newValue.setDate(newValue.getDate() + offset);\n break;\n case 'H':\n case 'h':\n newValue.setHours(newValue.getHours() + offset);\n break;\n case 'm':\n newValue.setMinutes(newValue.getMinutes() + offset);\n break;\n case 's':\n newValue.setSeconds(newValue.getSeconds() + offset);\n break;\n case 't':\n newValue.setHours((newValue.getHours() + 12) % 24);\n break;\n default:\n break;\n }\n if (newValue.getFullYear() > 0) {\n setExisting(symbol, true);\n value = newValue;\n }\n };\n this.parsePart = function (symbol, currentChar) {\n if (!currentChar) {\n setExisting(symbol, false);\n return true;\n }\n var newValue = new Date(value && value.getTime ? value.getTime() : value);\n var newHours;\n switch (symbol) {\n case 'd':\n var newDate = (date ? newValue.getDate() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newDate)) {\n return;\n }\n while (newDate > 31) {\n newDate = parseInt(newDate.toString().slice(1), 10);\n }\n if (newDate < 1) {\n date = false;\n } else {\n newValue.setDate(newDate);\n if (newValue.getMonth() !== value.getMonth()) {\n return;\n }\n date = true;\n }\n break;\n case 'M':\n var newMonth = (month ? (newValue.getMonth() + 1) * 10 : 0) + parseInt(currentChar, 10);\n if (!isNaN(newMonth)) {\n while (newMonth > 12) {\n newMonth = parseInt(newMonth.toString().slice(1), 10);\n }\n if (newMonth < 1) {\n month = false;\n } else {\n newValue.setMonth(newMonth - 1);\n if (newValue.getMonth() !== newMonth - 1) {\n newValue.setDate(1);\n newValue.setMonth(newMonth - 1);\n }\n month = true;\n }\n } else {\n var monthNames = calendar.months.names;\n typedMonthPart += currentChar.toLowerCase();\n while (typedMonthPart.length > 0) {\n for (var i = 0; i < monthNames.length; i++) {\n if (monthNames[i].toLowerCase().indexOf(typedMonthPart) === 0) {\n newValue.setMonth(i);\n month = true;\n value = newValue;\n return true;\n }\n }\n typedMonthPart = typedMonthPart.substring(1, typedMonthPart.length);\n }\n return false;\n }\n break;\n case 'y':\n var newYear = (year ? newValue.getFullYear() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newYear)) {\n return;\n }\n while (newYear > 9999) {\n newYear = parseInt(newYear.toString().slice(1), 10);\n }\n if (newYear < 1) {\n year = false;\n } else {\n newValue.setFullYear(newYear);\n year = true;\n }\n break;\n case 'h':\n newHours = (hours ? (newValue.getHours() % 12 || 12) * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newHours)) {\n return;\n }\n while (newHours > 12) {\n newHours = parseInt(newHours.toString().slice(1), 10);\n }\n newValue.setHours(Math.floor(newValue.getHours() / 12) * 12 + newHours % 12);\n hours = true;\n break;\n case 'H':\n newHours = (hours ? newValue.getHours() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newHours)) {\n return;\n }\n while (newHours > 23) {\n newHours = parseInt(newHours.toString().slice(1), 10);\n }\n newValue.setHours(newHours);\n hours = true;\n break;\n case 'm':\n var newMinutes = (minutes ? newValue.getMinutes() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newMinutes)) {\n return;\n }\n while (newMinutes > 59) {\n newMinutes = parseInt(newMinutes.toString().slice(1), 10);\n }\n newValue.setMinutes(newMinutes);\n minutes = true;\n break;\n case 's':\n var newSeconds = (seconds ? newValue.getSeconds() * 10 : 0) + parseInt(currentChar, 10);\n if (isNaN(newSeconds)) {\n return;\n }\n while (newSeconds > 59) {\n newSeconds = parseInt(newSeconds.toString().slice(1), 10);\n }\n newValue.setSeconds(newSeconds);\n seconds = true;\n break;\n case 't':\n if (hours) {\n typedDayPeriodPart += currentChar.toLowerCase();\n while (typedDayPeriodPart.length > 0) {\n if (calendar.AM[0].toLowerCase().indexOf(typedDayPeriodPart) === 0 && newValue.getHours() >= 12 || calendar.PM[0].toLowerCase().indexOf(typedDayPeriodPart) === 0 && newValue.getHours() < 12) {\n newValue.setHours((newValue.getHours() + 12) % 24);\n value = newValue;\n return true;\n }\n typedDayPeriodPart = typedDayPeriodPart.substring(1, typedDayPeriodPart.length);\n }\n return false;\n }\n break;\n default:\n break;\n }\n value = newValue;\n return true;\n };\n this.toPair = function (format, culture, messages) {\n if (!format) {\n return [\n '',\n ''\n ];\n }\n culture = kendo.getCulture(culture);\n calendar = culture.calendars.standard;\n format = calendar.patterns[format] || format;\n days = calendar.days;\n months = calendar.months;\n placeholders = messages;\n return [\n format.replace(dateFormatRegExp, generateMatcher(false)),\n format.replace(dateFormatRegExp, generateMatcher(true))\n ];\n };\n this.getDateObject = function () {\n return year && month && date && hours && minutes && seconds && milliseconds ? new Date(value.getTime()) : null;\n };\n if (!initDate) {\n value = new Date();\n var sampleFormat = this.toPair(initFormat, initCulture, initMessages)[1];\n for (var i = 0; i < sampleFormat.length; i++) {\n setExisting(sampleFormat[i], false);\n }\n } else {\n value = new Date(initDate.getTime());\n }\n };\n function approximateStringMatching(oldText, oldFormat, newText, caret) {\n var oldTextSeparator = oldText[caret + oldText.length - newText.length];\n oldText = oldText.substring(0, caret + oldText.length - newText.length);\n newText = newText.substring(0, caret);\n var diff = [];\n var i;\n if (oldText === newText && caret > 0) {\n diff.push([\n oldFormat[caret - 1],\n newText[caret - 1]\n ]);\n return diff;\n }\n if (oldText.indexOf(newText) === 0 && (newText.length === 0 || oldFormat[newText.length - 1] !== oldFormat[newText.length])) {\n var deletedSymbol = '';\n for (i = newText.length; i < oldText.length; i++) {\n if (oldFormat[i] !== deletedSymbol && knownSymbols.indexOf(oldFormat[i]) >= 0) {\n deletedSymbol = oldFormat[i];\n diff.push([\n deletedSymbol,\n ''\n ]);\n }\n }\n return diff;\n }\n if (newText[newText.length - 1] === ' ' || newText[newText.length - 1] === oldTextSeparator) {\n return [[\n oldFormat[caret - 1],\n ' '\n ]];\n }\n if (newText.indexOf(oldText) === 0 || knownSymbols.indexOf(oldFormat[caret - 1]) === -1) {\n var symbol = oldFormat[0];\n for (i = Math.max(0, oldText.length - 1); i < oldFormat.length; i++) {\n if (knownSymbols.indexOf(oldFormat[i]) >= 0) {\n symbol = oldFormat[i];\n break;\n }\n }\n return [[\n symbol,\n newText[caret - 1]\n ]];\n }\n return [[\n oldFormat[caret - 1],\n newText[caret - 1]\n ]];\n }\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}