{"version":3,"file":"kendo.timedurationpicker.min.js","names":["factory","define","amd","$","undefined$1","kendo","window","ui","Widget","html","map","extend","OPEN","CLOSE","CHANGE","FOCUSED","ARIA_EXPANDED","HOVEREVENTS","NS","STATEDISABLED","ARIA_HIDDEN","ARIA_DISABLED","ARIA_READONLY","DISABLED","READONLY","STATEINVALID","MASKCHAR","caret","keys","defaultColumns","hours","name","format","divider","min","max","step","minutes","seconds","milliseconds","days","TimeDurationPicker","init","element","options","columns","that","this","fn","call","_columns","column","extended","selectorFormat","repeat","match","length","readonly","Boolean","attr","enable","is","parents","_wrapper","_button","_applyCssClasses","_input","_popupView","_buildMask","_validation","_editable","disable","_ariaLabel","_timeSelector","_listsContainer","value","_old","_maskedInput","val","_canUpdateLast","notify","separator","shortcuts","size","fillMode","rounded","messages","set","cancel","events","destroy","wrapper","off","_value","parseInt","_updateValueFromTimeSelector","_toggleHover","e","currentTarget","toggleClass","type","add","addClass","removeClass","on","removeAttr","_attachHandlers","TimeSelector","id","anchor","focus","trigger","_selectNearestSection","_lastCaret","close","preventDefault","open","change","_removeInvalidState","button","next","renderButton","icon","shape","insertAfter","role","part","toAdd","_emtpyMask","_maskParts","i","replace","end","mask","symbolsLength","start","indexOf","numberEnd","lastIndexOf","numberStart","push","autocomplete","insertBefore","hide","wrap","parent","_keydown","bind","_inputHandler","_focus","_focusout","_paste","_mouseDown","_mouseUp","_click","_mouseOnInput","selection","_triggerChange","_lastValue","_updateValueFromInput","setTimeout","index","_getPartValue","startSeparator","lastSeparator","substring","_getEmptyPart","_fillParts","clipNumber","symbols","parts","split","join","_clearParts","endBoundary","_updatePart","oldValue","entered","emrtyPart","current","search","_replacePart","newPart","toggle","_switchPart","future","past","key","keyCode","_backward","BACKSPACE","LEFT","RIGHT","popup","visible","_scrollerKeyDownHandler","UP","DOWN","altKey","ENTER","partValue","masksToAdd","valueParts","rest","Math","floor","getTimeParts","_validationIcon","_addInvalidState","colValue","values","valid","emptyPart","_isPasted","_pasted","clipboardData","originalEvent","getData","_replaceEntire","_activeElement","validEntry","updatedPart","endSubstring","startSubstring","deletedPart","canUpdate","restored","oldpartValue","nextSeparator","old","lengthDiff","test","cssProperties","registerPrefix","registerValues","prop","roundedValues","concat","plugin","jQuery"],"sources":["kendo.timedurationpicker.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.timeselector'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"timedurationpicker\",\n name: \"TimeDurationPicker\",\n category: \"web\",\n description: \"The TimeDurationPicker widget allows the end user to select a time range stored in milliseconds.\",\n docsCategory: \"editors\",\n depends: [ \"timeselector\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n html = kendo.html,\n map = $.map,\n extend = $.extend,\n OPEN = \"open\",\n FOCUS = \"focus\",\n CLOSE = \"close\",\n CHANGE = \"change\",\n CLICK = \"click\",\n SPAN = \"\",\n KEYDOWN = \"keydown\",\n FOCUSOUT = \"focusout\",\n FOCUSED = \"k-focus\",\n MOUSEUP = \"mouseup\",\n MOUSEDOWN = \"mousedown\",\n PASTE = \"paste\",\n NS = \".kendoTimeDurationPicker\",\n ARIA_EXPANDED = \"aria-expanded\",\n HOVEREVENTS = \"mouseenter\" + NS + \" mouseleave\" + NS,\n STRING = \"string\",\n INPUT = \"input\",\n HOVER = \"k-hover\",\n CLASS_ICON = \"k-icon\",\n STATEDISABLED = \"k-disabled\",\n ARIA_HIDDEN = \"aria-hidden\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n ARIA_READONLY = \"aria-readonly\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n STATEINVALID = \"k-invalid\",\n MASKCHAR = \"_\",\n caret = kendo.caret,\n keys = kendo.keys,\n NS = \".kendoTimeDurationPicker\";\n html = kendo.html;\n\n var defaultColumns = {\n \"hours\": {\n name: \"hours\",\n format: \"## hours\",\n divider: 3600000,\n min: 0,\n max: 23,\n step: 1\n },\n \"minutes\": {\n name: \"minutes\",\n format: \"## mins\",\n divider: 60000,\n min: 0,\n max: 59,\n step: 1\n },\n \"seconds\": {\n name: \"seconds\",\n format: \"## sec\",\n divider: 1000,\n min: 0,\n max: 59,\n step: 1\n },\n \"milliseconds\": {\n name: \"milliseconds\",\n format: \"### msec\",\n min: 0,\n max: 999,\n step: 1\n },\n \"days\": {\n format: \"## days\",\n name: \"days\",\n divider: 86400000,\n min: 0,\n max: 365,\n step: 1\n }\n };\n\n function convertToMsec(value) {\n return ((value.days || 0) * 86400000) + ((value.hours || 0) * 3600000) + ((value.minutes || 0) * 60000) + ((value.seconds || 0) * 1000) + (value.milliseconds || 0);\n }\n\n function getTimeParts(value) {\n var rest;\n var days = Math.floor(value / 86400000);\n rest = value % 86400000;\n var hours = Math.floor(rest / 3600000);\n rest = value % 3600000;\n var minutes = Math.floor(rest / 60000);\n rest = value % 60000;\n var seconds = Math.floor(rest / 1000);\n rest = value % 1000;\n\n return {\n days: days,\n hours: hours,\n minutes: minutes,\n seconds: seconds,\n milliseconds: rest\n };\n }\n\n function normalizeColumns(columns) {\n return map(columns, function(column) {\n column = typeof column === STRING ? { name: column } : column;\n var extended = extend(true, {}, defaultColumns[column.name], column);\n extended.selectorFormat = \"{0:\" + \"0\".repeat(extended.format.match(/#/g).length) + \"}\";\n return extended;\n });\n }\n\n var TimeDurationPicker = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n options = options || {};\n\n Widget.fn.init.call(that, element, options);\n\n that._columns = normalizeColumns(options.columns);\n that.options.columns = that._columns;\n that.options.readonly = options.readonly !== undefined$1 ? options.readonly : Boolean(that.element.attr(\"readonly\"));\n that.options.enable = options.enable !== undefined$1 ? options.enable : !(Boolean(that.element.is(\"[disabled]\") || $(element).parents(\"fieldset\").is(':disabled')));\n\n that._wrapper();\n that._button();\n that._applyCssClasses();\n that._input();\n that._popupView();\n that._buildMask();\n that._validation();\n that._editable({\n readonly: that.options.readonly,\n disable: !that.options.enable\n });\n that._ariaLabel(that._timeSelector._listsContainer);\n if (that.options.value) {\n that.value(options.value);\n that._old = that._maskedInput.val();\n }\n that._canUpdateLast = true;\n\n kendo.notify(that);\n },\n\n options: {\n name: \"TimeDurationPicker\",\n columns: [],\n separator: \",\",\n shortcuts: [],\n value: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n messages: {\n set: \"Set\",\n cancel: \"Cancel\",\n days: \"Days\",\n hours: \"Hours\",\n minutes: \"Minutes\",\n milliseconds: \"Milliseconds\",\n seconds: \"Seconds\"\n }\n },\n\n events: [\n OPEN,\n CLOSE,\n CHANGE\n ],\n\n destroy: function() {\n var that = this;\n\n that.wrapper.off(NS);\n that._maskedInput.off(NS);\n if (that._timeSelector) {\n that._timeSelector.destroy();\n that._timeSelector = null;\n }\n },\n\n value: function(value) {\n var that = this;\n\n if (value === undefined$1) {\n return that._value;\n }\n\n if (typeof value === \"number\") {\n value = parseInt(value);\n } else {\n value = null;\n }\n\n that._value = value;\n that.element.val(that._value);\n that._timeSelector._value = that._value;\n that._updateValueFromTimeSelector();\n },\n\n _toggleHover: function(e) {\n $(e.currentTarget).toggleClass(HOVER, e.type === \"mouseenter\");\n },\n\n _editable: function(options) {\n var that = this,\n disable = options.disable,\n readonly = options.readonly,\n element = that._maskedInput.add(that.element).off(NS),\n wrapper = that.wrapper.off(NS);\n\n if (!readonly && !disable) {\n wrapper\n .removeClass(STATEDISABLED)\n .on(HOVEREVENTS, that._toggleHover);\n\n if (element && element.length) {\n element.removeAttr(DISABLED);\n element.removeAttr(READONLY);\n }\n element.attr(ARIA_DISABLED, false)\n .attr(ARIA_READONLY, false);\n\n that._attachHandlers();\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 readonly: function(readonly) {\n this._editable({\n readonly: readonly === undefined$1 ? true : readonly,\n disable: false\n });\n },\n\n enable: function(enable) {\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined$1 ? true : enable)\n });\n },\n\n _popupView: function() {\n var that = this;\n var options = that.options;\n\n if (!that._timeSelector) {\n that._timeSelector = new kendo.ui.TimeSelector(that._maskedInput, {\n id: that.element.attr(\"id\") + \"_timeSelector\",\n anchor: that.wrapper,\n columns: options.columns,\n shortcuts: options.shortcuts,\n value: options.value,\n size: options.size,\n fillMode: options.fillMode,\n rounded: options.rounded,\n messages: options.messages,\n focus: function() {\n that._maskedInput.trigger(\"focus\");\n that._selectNearestSection(that._lastCaret || 0);\n },\n close: function(e) {\n if (that.trigger(CLOSE)) {\n e.preventDefault();\n } else {\n that._maskedInput.attr(ARIA_EXPANDED, false);\n that._timeSelector._listsContainer.attr(ARIA_HIDDEN, true);\n }\n },\n open: function(e) {\n if (that.trigger(OPEN)) {\n e.preventDefault();\n } else {\n that._maskedInput.attr(ARIA_EXPANDED, true);\n that._timeSelector._listsContainer.attr(ARIA_HIDDEN, false);\n that._lastCaret = caret(that._maskedInput)[0];\n if (that._lastCaret === that._maskedInput.val().length) {\n that._lastCaret = 0;\n }\n }\n },\n change: function(value) {\n that._value = value;\n that._updateValueFromTimeSelector();\n that._removeInvalidState();\n that.trigger(CHANGE);\n }\n });\n }\n },\n\n _button: function() {\n var that = this,\n element = that.element,\n options = that.options,\n button;\n\n button = element.next(\"button.k-input-button\");\n\n if (!button[0]) {\n button = $(html.renderButton('', {\n icon: \"clock-arrow-rotate\",\n size: options.size,\n fillMode: options.fillMode,\n shape: \"none\",\n rounded: \"none\"\n })).insertAfter(element);\n }\n\n that._button = button.attr({\n \"role\": \"button\"\n });\n },\n\n _buildMask: function() {\n var columns = this.options.columns;\n var format;\n var toAdd = \"\";\n var part;\n\n this._emtpyMask = \"\";\n this._maskParts = [];\n\n for (var i = 0; i < columns.length; i++) {\n part = {};\n format = columns[i].format;\n\n if (i) {\n toAdd = this.options.separator;\n }\n\n toAdd += format.replace(/#/g, '_');\n this._emtpyMask += toAdd;\n part.end = this._emtpyMask.length - 1;\n part.mask = format.replace(/#/g, '_');\n part.symbolsLength = part.mask.match(/_/g).length;\n part.start = this._emtpyMask.indexOf(part.mask);\n part.numberEnd = this._emtpyMask.lastIndexOf(MASKCHAR) + 1;\n part.numberStart = this._emtpyMask.indexOf(MASKCHAR, part.start);\n\n this._maskParts.push(part);\n }\n\n this._old = this._emtpyMask;\n this._maskedInput.val(this._emtpyMask);\n },\n\n _input: function() {\n var that = this;\n\n that._maskedInput = $(\"\")\n .attr(kendo.attr(\"validate\"), false)\n .attr({\n \"role\": \"combobox\",\n \"aria-expanded\": false,\n \"aria-controls\": that.element.attr(\"id\") + \"_timeSelector\",\n \"autocomplete\": \"off\"\n })\n .addClass(\"k-input-inner\")\n .insertBefore(that.element);\n\n that.element.hide();\n },\n\n _wrapper: function() {\n var that = this,\n element = that.element,\n wrapper;\n\n wrapper = element.parents(\".k-timedurationpicker\");\n\n if (!wrapper[0]) {\n wrapper = element.wrap(SPAN).parent();\n }\n\n that.wrapper = wrapper.addClass(\"k-timedurationpicker k-input\");\n },\n\n _attachHandlers: function() {\n var that = this;\n\n that._maskedInput\n .on(KEYDOWN + NS, that._keydown.bind(that))\n .on(INPUT + NS, that._inputHandler.bind(that))\n .on(FOCUS + NS, that._focus.bind(that))\n .on(FOCUSOUT + NS, that._focusout.bind(that))\n .on(PASTE + NS, that._paste.bind(that))\n .on(MOUSEDOWN + NS, that._mouseDown.bind(that))\n .on(MOUSEUP + NS, that._mouseUp.bind(that));\n\n that.wrapper.on(CLICK + NS, \".k-input-button\", that._click.bind(that));\n },\n\n _mouseDown: function() {\n this._mouseOnInput = true;\n },\n\n _mouseUp: function() {\n var selection = caret(this._maskedInput[0]);\n var value = this._maskedInput[0].value;\n if (selection[0] === selection[1]) {\n this._selectNearestSection(selection[1] == value.length ? value.length - 1 : selection[1]);\n }\n },\n\n _triggerChange: function() {\n if ((this._lastValue == undefined$1 && this._value) || this._lastValue != this._value) {\n this._lastValue = this._value;\n this.trigger(CHANGE);\n }\n },\n\n _focusout: function() {\n this._updateValueFromInput();\n this._triggerChange();\n\n this._canUpdateLast = true;\n this.wrapper.removeClass(FOCUSED);\n },\n\n _focus: function() {\n var that = this;\n if (!that._mouseOnInput) {\n setTimeout(function() {\n that._selectNearestSection(0);\n }, 10);\n }\n that._mouseOnInput = false;\n that.wrapper.addClass(FOCUSED);\n },\n\n _selectNearestSection: function(index) {\n var part;\n\n for (var i = 0; i < this._maskParts.length; i++ ) {\n part = this._maskParts[i];\n if (index >= part.start && index <= part.end) {\n caret(this._maskedInput[0], part.numberStart, part.numberEnd);\n }\n }\n },\n\n _getPartValue: function(value, index) {\n var that = this;\n var separator = that.options.separator;\n var startSeparator = value.indexOf(separator,index);\n var lastSeparator = value.lastIndexOf(separator,index);\n return value.substring(lastSeparator < 0 ? 0 : lastSeparator + 1 , startSeparator < 0 ? value.length : startSeparator );\n },\n\n _getEmptyPart: function(index) {\n return this._getPartValue(this._emtpyMask, index);\n },\n\n _fillParts: function(clipNumber) {\n var parts = this._emtpyMask.split(this.options.separator);\n var symbols;\n clipNumber = clipNumber + \"\";\n\n for (var i = 0; i < parts.length; i++) {\n symbols = parts[i].match(/_/g).length;\n if (symbols > clipNumber.length) {\n parts[i] = parts[i].replace(MASKCHAR.repeat(symbols), \"0\".repeat(symbols - clipNumber.length) + clipNumber);\n } else {\n parts[i] = parts[i].replace(MASKCHAR.repeat(symbols), clipNumber.substring(0, symbols));\n clipNumber = clipNumber.substring(symbols, symbols.length);\n }\n }\n return parts.join(this.options.separator);\n },\n\n _clearParts: function(value, start, end) {\n var parts = value.split(this.options.separator);\n var index = 0;\n var endBoundary;\n\n for (var i = 0; i < parts.length; i++) {\n endBoundary = index + parts[i].length;\n if ((index <= start && endBoundary >= start) || (index <= end && endBoundary >= end)) {\n parts[i] = this._getEmptyPart(index);\n }\n index += (parts[i].length + 1);\n }\n return parts.join(this.options.separator);\n },\n\n _updatePart: function(oldValue, entered) {\n var emrtyPart = this._getEmptyPart(this._old.indexOf(oldValue));\n var current = oldValue.substring(emrtyPart.indexOf(MASKCHAR), emrtyPart.lastIndexOf(MASKCHAR) + 1);\n var format = \"{0:\" + \"0\".repeat(current.length) + \"}\";\n\n if (current.indexOf(MASKCHAR) >= 0 || !(oldValue[oldValue.search(/[0-9]/)] === \"0\") || entered.length > 1) {\n return oldValue.replace(current, kendo.format(format, parseInt(entered)));\n } else {\n return oldValue.replace(current, kendo.format(format, parseInt(current + entered)));\n }\n },\n\n _replacePart: function(oldValue, newPart, index) {\n return oldValue.replace(this._getPartValue(oldValue, index), newPart);\n },\n\n _click: function() {\n var that = this;\n\n if (!that._timeSelector) {\n return;\n }\n\n that._timeSelector.toggle();\n },\n\n _switchPart: function(options) {\n var separator = this.options.separator;\n var selection = options.caret != undefined$1 ? options.caret : caret(this._maskedInput[0])[0];\n var value = this._maskedInput.val();\n var index;\n\n if (options.next) {\n index = value.indexOf(separator, selection);\n if (index < 0) {\n index = value.length - 1;\n } else {\n index++;\n }\n } else {\n index = value.lastIndexOf(separator, selection);\n if (index < 0 ) {\n index = 0;\n } else {\n index--;\n }\n }\n this._selectNearestSection(index);\n },\n\n _keydown: function(e) {\n var key = e.keyCode;\n var separator = this.options.separator;\n var selection;\n var value;\n var index;\n var future;\n var past;\n\n this._backward = key === keys.BACKSPACE;\n if (key == keys.LEFT || key == keys.RIGHT) {\n e.preventDefault();\n selection = caret(this._maskedInput[0])[0];\n value = this._maskedInput.val();\n future = value.indexOf(separator, selection);\n past = value.lastIndexOf(separator, selection);\n\n if ((future < 0 && key == keys.RIGHT) || (past < 0 && key == keys.LEFT)) {\n return;\n }\n\n index = (key == keys.LEFT) ? (past - 1) : (future + 1);\n this._selectNearestSection(index);\n if (key == keys.LEFT) {\n this._canUpdateLast = true;\n }\n } else if (this._timeSelector.popup.visible()) {\n this._timeSelector._scrollerKeyDownHandler(e);\n } else if (key == keys.UP || key == keys.DOWN) {\n e.preventDefault();\n if (e.altKey) {\n this._timeSelector.toggle();\n }\n } else if (key == keys.ENTER) {\n this._updateValueFromInput();\n this._triggerChange();\n }\n },\n\n _updateValueFromTimeSelector: function() {\n var that = this;\n var valueParts = getTimeParts(that._value);\n var value = \"\";\n var column = this._columns[i];\n var part;\n var partValue;\n var masksToAdd;\n\n for (var i = 0; i < this._columns.length; i++) {\n column = this._columns[i];\n partValue = valueParts[column.name] + '';\n part = this._maskParts[i];\n\n if (i) {\n value += that.options.separator;\n }\n\n if (!valueParts[column.name]) {\n value += part.mask;\n continue;\n }\n\n masksToAdd = part.symbolsLength - partValue.length;\n value += part.mask.replace(MASKCHAR.repeat(part.symbolsLength), \"0\".repeat(masksToAdd < 0 ? 0 : masksToAdd) + partValue);\n }\n\n that._maskedInput.val(value);\n that._old = value;\n },\n\n _validation: function() {\n var that = this;\n var element = that.element;\n\n that._validationIcon = $(\"\").insertAfter(element);\n },\n\n _addInvalidState: function() {\n this.wrapper.addClass(STATEINVALID);\n this._validationIcon.removeClass('k-hidden');\n },\n\n _removeInvalidState: function() {\n this.wrapper.removeClass(STATEINVALID);\n this._validationIcon.addClass('k-hidden');\n },\n\n _updateValueFromInput: function() {\n var val = this._maskedInput.val();\n var values = {};\n var valid = true;\n var column;\n var part;\n var colValue;\n\n for (var i = 0; i < this._columns.length; i++) {\n column = this._columns[i];\n part = this._maskParts[i];\n colValue = val.substring(part.numberStart, part.numberEnd).replace(/_/g, \"\");\n colValue = kendo.parseInt(colValue || 0);\n\n if (colValue >= column.min && colValue <= column.max) {\n values[column.name] = colValue;\n } else {\n valid = false;\n break;\n }\n }\n\n if (valid) {\n this._value = convertToMsec(values);\n this.element.val(this._value || \"\");\n this._timeSelector._value = this._value;\n this._removeInvalidState();\n } else {\n this._addInvalidState();\n }\n },\n\n _paste: function(e) {\n this._isPasted = true;\n this._pasted = (e.clipboardData || e.originalEvent.clipboardData).getData('Text');\n var emptyPart;\n\n var selection = caret(this._maskedInput);\n\n if (this._maskedInput.val().length == selection[1] && !selection[0]) {\n this._replaceEntire = true;\n } else {\n emptyPart = this._getEmptyPart(selection[0]);\n this._pasted = this._pasted.substring(0, emptyPart.match(/_/g).length);\n }\n },\n\n _inputHandler: function() {\n if (kendo._activeElement() !== this._maskedInput[0]) {\n return;\n }\n\n var that = this;\n var old = that._old;\n var separator = that.options.separator;\n var value = that._maskedInput[0].value;\n var selection = caret(that._maskedInput)[0];\n var lengthDiff = old.length - value.length;\n var entered;\n var validEntry;\n var updatedPart;\n var endSubstring;\n var startSubstring;\n var deletedPart;\n var emptyPart;\n var canUpdate;\n var restored;\n var oldpartValue;\n var nextSeparator;\n\n entered = that._isPasted ? that._pasted : value.substring(selection - 1, selection);\n validEntry = /\\d/.test(entered);\n\n if (that._isPasted && that._replaceEntire && validEntry) {\n that._old = that._fillParts(parseInt(entered));\n that._maskedInput.val(that._old);\n that._selectNearestSection(0);\n that._isPasted = that._replaceEntire = false;\n return;\n }\n\n if (that._isPasted) {\n lengthDiff = 0;\n }\n\n that._isPasted = false;\n\n if ((entered === separator && !that._backward)) {\n that._maskedInput.val(that._old);\n that._switchPart({ caret: selection, next: true });\n return;\n }\n\n if (!value && that._backward) {\n that._old = that._emtpyMask;\n that._maskedInput.val(that._old);\n that._selectNearestSection(selection);\n return;\n }\n\n if ((!validEntry && !that._backward)) {\n that._maskedInput.val(that._old);\n that._selectNearestSection(selection);\n return;\n }\n\n if (!lengthDiff || lengthDiff > 0) {\n endSubstring = value.substring(selection, value.length);\n startSubstring = value.substring(0, selection);\n deletedPart = that._emtpyMask.substring(startSubstring.length, old.indexOf(endSubstring));\n\n restored = startSubstring + deletedPart + endSubstring;\n oldpartValue = that._getPartValue(that._old, selection);\n nextSeparator = that._old.indexOf(separator, that._old.indexOf(oldpartValue) + 1);\n\n if (that._backward) {\n // if multiple parts\n if (deletedPart.split(separator).length > 1) {\n that._old = this._clearParts(restored, selection, selection + deletedPart.length);\n } else {\n emptyPart = this._getEmptyPart(selection);\n if (emptyPart == oldpartValue) {\n that._maskedInput.val(that._old);\n that._switchPart({ caret: selection });\n return;\n }\n that._old = that._replacePart(restored, emptyPart, selection);\n }\n that._maskedInput.val(that._old);\n that._selectNearestSection(selection);\n return;\n }\n\n if (nextSeparator < 0 && oldpartValue.indexOf(MASKCHAR) === -1 && !that._canUpdateLast) {\n that._maskedInput.val(that._old);\n that._selectNearestSection(selection);\n return;\n }\n\n if (validEntry) {\n updatedPart = that._updatePart(oldpartValue, entered);\n canUpdate = updatedPart[updatedPart.search(/[0-9]/)] === \"0\";\n restored = that._replacePart(restored, updatedPart, selection);\n that._maskedInput.val(restored);\n if (nextSeparator > 0 && !canUpdate) {\n that._selectNearestSection(nextSeparator + 1, true);\n } else {\n that._selectNearestSection(selection);\n }\n\n that._canUpdateLast = !(nextSeparator < 0 && !canUpdate);\n }\n that._old = restored;\n } else if (lengthDiff < 0) {\n that._maskedInput.val(that._old);\n that._selectNearestSection(that._old.length - 1);\n }\n },\n\n });\n\n kendo.cssProperties.registerPrefix(\"TimeDurationPicker\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"TimeDurationPicker\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(TimeDurationPicker);\n\n })(window.kendo.jQuery);\n\n}));\n"]}