{"version":3,"file":"kendo.maskedtextbox.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendomaskedtextbox","js","this","$","kendo","jQuery","addInputPrefixSuffixContainers","widget","wrapper","options","prefixInsertBefore","suffixInsertAfter","prefixContainer","suffixContainer","prefix","prefixOptions","suffix","suffixOptions","hasPrefixContent","template","icon","hasSuffixContent","layoutFlow","containerOrientation","INPUT_SEPARATOR","children","insertBefore","prependTo","html","renderIcon","separator","insertAfter","appendTo","_prefixContainer","_suffixContainer","undefined$1","window","min","Math","caret","keys","ui","Widget","NS","isPlainObject","setTimeout","STATEDISABLED","STATEINVALID","FOCUSED","DISABLED","READONLY","CHANGE","MOUSEUP","DROP","KEYDOWN","PASTE","ns","name","INPUT_EVENT_NAME","support","propertyChangeEvent","MaskedTextBox","extend","init","element","DOMElement","that","fn","call","_rules","rules","_wrapper","_tokenize","_form","addClass","attr","on","value","_togglePrompt","_old","_emptyMask","_oldValue","_timeoutId","_maskLength","val","clearTimeout","removeClass","_change","mask","length","is","parents","enable","readonly","_validationIcon","iconClass","_label","_applyCssClasses","floatingLabel","refresh","notify","clearPromptChar","unmaskOnPost","promptChar","culture","label","size","fillMode","rounded","events","L","C","A","a","setOptions","_unbindInput","_bindInput","destroy","off","_formElement","_resetHandler","_submitHandler","raw","_unmask","replace","RegExp","escapeRegExp","emptyMask","_mask","_unmaskedValue","_activeElement","show","_editable","disable","_keydown","bind","_drop","_trackChange","_inputHandler","browser","msie","version","join","_legacyIEInputHandler","toggleClass","prop","trigger","__changing","inputChange","backward","old","cursor","lengthDiff","mobile","mobileOS","__dropping","android","contentStart","str1","str2","i","stringDiffStart","content","substring","caretPos","endContent","_trimStartPromptChars","unmasked","_findCaretPosBackwards","count","indexOf","pos","caretStart","_find","__backward","e","input","type","__pasting","formId","form","closest","key","keyCode","BACKSPACE","ENTER","idx","step","charAt","tokens","start","end","valueLength","chr","current","empty","chrIdx","split","token","tokenIdx","tokensLength","result","test","isFunction","_blinkInvalidState","floating","labelText","id","_floatingLabelContainer","wrap","parent","FloatingLabel","guid","_inputLabel","style","cssText","width","className","_addInvalidState","_invalidStateTimeout","_removeInvalidState","rule","maskChars","numberFormat","getCulture","currency","symbol","l","text","cssProperties","registerPrefix","registerValues","values","roundedValues","concat","plugin"],"sources":["kendo.maskedtextbox.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.floatinglabel.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.floatinglabel', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendomaskedtextbox = global.kendomaskedtextbox || {}, global.kendomaskedtextbox.js = factory()));\n})(this, (function () {\n let $ = kendo.jQuery;\n\n function addInputPrefixSuffixContainers({ widget, wrapper, options, prefixInsertBefore, suffixInsertAfter }) {\n var prefix = options.prefixOptions,\n suffix = options.suffixOptions,\n hasPrefixContent = prefix.template || prefix.icon,\n hasSuffixContent = suffix.template || suffix.icon,\n suffixInsertAfter = suffixInsertAfter || prefixInsertBefore,\n layoutFlow = options.layoutFlow,\n containerOrientation = layoutFlow ? (layoutFlow == \"vertical\" ? \"horizontal\" : \"vertical\") : \"horizontal\",\n separatorOrientation = layoutFlow == \"vertical\" ? \"horizontal\" : \"vertical\",\n INPUT_SEPARATOR = ``,\n prefixContainer,\n suffixContainer;\n\n if (prefix && hasPrefixContent) {\n prefixContainer = wrapper.children(\".k-input-prefix\");\n\n if (!prefixContainer[0]) {\n prefixContainer = $(``);\n if (prefixInsertBefore) {\n prefixContainer.insertBefore(prefixInsertBefore);\n } else {\n prefixContainer.prependTo(wrapper);\n }\n }\n\n if (prefix.icon) {\n prefixContainer.html(kendo.html.renderIcon({ icon: prefix.icon }));\n }\n\n if (prefix.template) {\n prefixContainer.html(kendo.template(prefix.template)({}));\n }\n\n if (prefix.separator) {\n $(INPUT_SEPARATOR).insertAfter(prefixContainer);\n }\n }\n\n if (suffix && hasSuffixContent) {\n suffixContainer = wrapper.children(\".k-input-suffix\");\n\n if (!suffixContainer[0]) {\n suffixContainer = $(``).appendTo(wrapper);\n if (suffixInsertAfter) {\n suffixContainer.insertAfter(suffixInsertAfter);\n } else {\n suffixContainer.appendTo(wrapper);\n }\n }\n\n if (suffix.icon) {\n suffixContainer.html(kendo.html.renderIcon({ icon: suffix.icon }));\n }\n\n if (suffix.template) {\n suffixContainer.html(kendo.template(suffix.template)({}));\n }\n\n if (suffix.separator) {\n $(INPUT_SEPARATOR).insertBefore(suffixContainer);\n }\n }\n\n widget._prefixContainer = prefixContainer;\n widget._suffixContainer = suffixContainer;\n }\n\n var __meta__ = {\n id: \"maskedtextbox\",\n name: \"MaskedTextBox\",\n category: \"web\",\n description: \"The MaskedTextBox widget allows to specify a mask type on an input field.\",\n depends: [\"core\", \"floatinglabel\", \"icons\"]\n };\n\n (function($, undefined$1) {\n var global = window;\n var min = global.Math.min;\n var kendo = global.kendo;\n var caret = kendo.caret;\n var keys = kendo.keys;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var NS = \".kendoMaskedTextBox\";\n var isPlainObject = $.isPlainObject;\n var setTimeout = window.setTimeout;\n\n var LABELCLASSES = \"k-label k-input-label\";\n var FLOATINGLABELCLASS = \"k-floating-label\";\n var STATEDISABLED = \"k-disabled\";\n var STATEINVALID = \"k-invalid\";\n var FOCUSED = \"k-focus\";\n var DISABLED = \"disabled\";\n var READONLY = \"readonly\";\n var CHANGE = \"change\";\n var MOUSEUP = \"mouseup\";\n var DROP = \"drop\";\n var KEYDOWN = \"keydown\";\n var PASTE = \"paste\";\n var INPUT = \"input\";\n\n function ns(name) { return name + NS; }\n\n var INPUT_EVENT_NAME = ns(kendo.support.propertyChangeEvent ? \"propertychange\" : INPUT);\n\n function stringDiffStart(str1, str2) {\n var i = 0;\n while (i < str2.length) {\n if (str1[i] !== str2[i]) {\n break;\n }\n i++;\n }\n\n return i;\n }\n var MaskedTextBox = Widget.extend({\n init: function(element, options) {\n var that = this;\n var DOMElement;\n\n Widget.fn.init.call(that, element, options);\n\n that._rules = $.extend({}, that.rules, that.options.rules);\n\n element = that.element;\n DOMElement = element[0];\n\n that._wrapper();\n that._tokenize();\n that._form();\n\n that.element\n .addClass(\"k-input-inner\")\n .attr(\"autocomplete\", \"off\")\n .on(\"focus\" + NS, function() {\n var value = DOMElement.value;\n\n if (!value) {\n DOMElement.value = that._old = that._emptyMask;\n } else {\n that._togglePrompt(true);\n }\n\n that._oldValue = value;\n that.wrapper.addClass(FOCUSED);\n\n that._timeoutId = setTimeout(function() {\n caret(element, 0, value ? that._maskLength : 0);\n });\n })\n .on(\"focusout\" + NS, function() {\n var value = element.val();\n\n clearTimeout(that._timeoutId);\n DOMElement.value = that._old = \"\";\n\n if (value !== that._emptyMask) {\n DOMElement.value = that._old = value;\n }\n\n that.wrapper.removeClass(FOCUSED);\n that._change();\n that._togglePrompt();\n });\n\n if (that.options.mask && that.options.mask.length > 0) {\n that.element.attr(\"aria-placeholder\", that.options.mask);\n }\n\n var disabled = element.is(\"[disabled]\") || $(that.element).parents(\"fieldset\").is(':disabled');\n\n if (disabled) {\n that.enable(false);\n } else {\n that.readonly(element.is(\"[readonly]\"));\n }\n\n that._validationIcon = $(kendo.ui.icon({ icon: \"exclamation-circle\", iconClass: \"k-input-validation-icon k-hidden\" })).insertAfter(element);\n\n that.value(that.options.value || element.val());\n\n that._label();\n that._applyCssClasses();\n\n addInputPrefixSuffixContainers({ widget: that, wrapper: that.wrapper, options: that.options, suffixInsertAfter: that._validationIcon });\n if (that.floatingLabel) {\n that.floatingLabel.refresh();\n }\n\n kendo.notify(that);\n },\n\n options: {\n name: \"MaskedTextBox\",\n clearPromptChar: false,\n unmaskOnPost: false,\n promptChar: \"_\",\n culture: \"\",\n rules: {},\n value: \"\",\n mask: \"\",\n label: null,\n size: \"medium\",\n fillMode: \"solid\",\n rounded: \"medium\",\n prefixOptions: {\n separator: true\n },\n suffixOptions: {\n separator: true\n }\n },\n\n events: [\n CHANGE\n ],\n\n rules: {\n \"0\": /\\d/,\n \"9\": /\\d|\\s/,\n \"#\": /\\d|\\s|\\+|\\-/,\n \"L\": /[a-zA-Z]/,\n \"?\": /[a-zA-Z]|\\s/,\n \"&\": /\\S/,\n \"C\": /./,\n \"A\": /[a-zA-Z0-9]/,\n \"a\": /[a-zA-Z0-9]|\\s/\n },\n\n setOptions: function(options) {\n var that = this;\n\n Widget.fn.setOptions.call(that, options);\n\n that._rules = $.extend({}, that.rules, that.options.rules);\n\n that._tokenize();\n\n this._unbindInput();\n this._bindInput();\n\n that.value(that.element.val());\n },\n\n destroy: function() {\n var that = this;\n\n if (that.floatingLabel) {\n that.floatingLabel.destroy();\n }\n\n that.element.off(NS);\n\n if (that._formElement) {\n that._formElement.off(\"reset\", that._resetHandler);\n that._formElement.off(\"submit\", that._submitHandler);\n }\n\n Widget.fn.destroy.call(that);\n },\n\n raw: function() {\n var unmasked = this._unmask(this.element.val(), 0);\n return unmasked.replace(new RegExp(escapeRegExp(this.options.promptChar), \"g\"), \"\");\n },\n\n value: function(value) {\n var element = this.element;\n var emptyMask = this._emptyMask;\n\n if (value === undefined$1) {\n return this.element.val();\n }\n\n if (value === null) {\n value = \"\";\n }\n\n if (!emptyMask) {\n this._oldValue = value;\n element.val(value);\n return;\n }\n\n value = this._unmask(value + \"\");\n\n element.val(value ? emptyMask : \"\");\n\n this._mask(0, this._maskLength, value);\n this._unmaskedValue = null;\n\n value = element.val();\n this._oldValue = value;\n\n if (kendo._activeElement() !== element) {\n if (value === emptyMask) {\n element.val(\"\");\n } else {\n this._togglePrompt();\n }\n }\n\n if (this.floatingLabel) {\n this.floatingLabel.refresh();\n }\n },\n\n _togglePrompt: function(show) {\n var DOMElement = this.element[0];\n var value = DOMElement.value;\n\n if (this.options.clearPromptChar) {\n if (!show) {\n value = value.replace(new RegExp(escapeRegExp(this.options.promptChar), \"g\"), \" \");\n } else {\n value = this._oldValue;\n }\n\n DOMElement.value = this._old = value;\n }\n },\n\n readonly: function(readonly) {\n var that = this;\n\n this._editable({\n readonly: readonly === undefined$1 ? true : readonly,\n disable: false\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.readonly(readonly === undefined$1 ? true : readonly);\n }\n },\n\n enable: function(enable) {\n var that = this;\n\n this._editable({\n readonly: false,\n disable: !(enable = enable === undefined$1 ? true : enable)\n });\n\n if (that.floatingLabel) {\n that.floatingLabel.enable(enable = enable === undefined$1 ? true : enable);\n }\n },\n\n _bindInput: function() {\n var that = this;\n\n if (that._maskLength) {\n that.element\n .on(ns(KEYDOWN), that._keydown.bind(that))\n .on(ns(DROP), that._drop.bind(that))\n .on(ns(CHANGE), that._trackChange.bind(that))\n .on(INPUT_EVENT_NAME, that._inputHandler.bind(that));\n\n\n if (kendo.support.browser.msie) {\n var version = kendo.support.browser.version;\n if (version > 8 && version < 11) {\n var events = [ns(MOUSEUP), ns(DROP), ns(KEYDOWN), ns(PASTE)].join(\" \");\n that.element.on(events, that._legacyIEInputHandler.bind(that));\n }\n }\n }\n },\n\n _unbindInput: function() {\n var events = [INPUT_EVENT_NAME, ns(KEYDOWN), ns(MOUSEUP), ns(DROP), ns(PASTE)].join(\" \");\n\n this.element.off(events);\n },\n\n _editable: function(options) {\n var that = this;\n var element = that.element;\n var wrapper = that.wrapper;\n var disable = options.disable;\n var readonly = options.readonly;\n\n that._unbindInput();\n\n if (!readonly && !disable) {\n element.prop(DISABLED, false)\n .prop(READONLY, false);\n\n wrapper.removeClass(STATEDISABLED);\n\n that._bindInput();\n } else {\n element.attr(DISABLED, disable)\n .attr(READONLY, readonly);\n\n wrapper.toggleClass(STATEDISABLED, disable);\n }\n },\n\n _change: function() {\n var that = this;\n var value = that.value();\n\n if (value !== that._oldValue) {\n that._oldValue = value;\n\n that.trigger(CHANGE);\n that.element.trigger(CHANGE);\n }\n else if (value === \"\" && that.__changing) {//ensure change is raised when empty value (mask is stripped from input content) for consistent ngjs model update\n that.element.trigger(CHANGE);\n }\n },\n\n inputChange: function(backward) {\n var that = this;\n var old = that._old;\n var element = that.element[0];\n var value = element.value;\n var selection = caret(element);\n var cursor = selection[1];\n var lengthDiff = value.length - old.length;\n var mobile = kendo.support.mobileOS;\n\n if (that.__dropping && lengthDiff < 0) {//dropping in same input on WebKit is raised once for the removal phase and once for the adding phase\n return;\n }\n\n if (lengthDiff === -1 && mobile.android && mobile.browser === \"chrome\") {\n backward = true;\n }\n\n var contentStart = min(cursor, stringDiffStart(value, old));\n var content = value.substring(contentStart, cursor);\n\n element.value = value.substring(0, contentStart) + that._emptyMask.substring(contentStart);\n\n var caretPos = that._mask(contentStart, cursor, content);\n var endContent = that._trimStartPromptChars(value.substring(cursor), min(lengthDiff, caretPos - contentStart));\n\n var unmasked = that._unmask(endContent, old.length - endContent.length);\n that._mask(caretPos, caretPos, unmasked);\n\n if (backward) {\n caretPos = that._findCaretPosBackwards(contentStart);\n }\n\n caret(element, caretPos);\n\n //clean-up flags\n that.__dropping = false;\n },\n\n _trimStartPromptChars: function(content, count) {\n var promptChar = this.options.promptChar;\n\n while (count-- > 0 && content.indexOf(promptChar) === 0) {\n content = content.substring(1);\n }\n\n return content;\n },\n\n _findCaretPosBackwards: function(pos) {\n var caretStart = this._find(pos, true);\n if (caretStart < pos) {\n caretStart += 1;\n }\n\n return caretStart;\n },\n\n _inputHandler: function() {\n if (kendo._activeElement() !== this.element[0]) {\n return;\n }\n\n this.inputChange(this.__backward);\n },\n\n _legacyIEInputHandler: function(e) {\n var that = this;\n var input = that.element[0];\n var value = input.value;\n var type = e.type;\n\n that.__pasting = (type === \"paste\");\n\n setTimeout(function() {\n if (type === \"mouseup\" && that.__pasting) {\n return;\n }\n if (input.value && input.value !== value) {\n that.inputChange(that.__backward);\n }\n });\n },\n\n _trackChange: function() {\n var that = this;\n\n that.__changing = true;\n setTimeout(function() { that.__changing = false; });\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\n if (form[0]) {\n that._resetHandler = function() {\n setTimeout(function() {\n that.value(element[0].value);\n });\n };\n\n that._submitHandler = function() {\n that.element[0].value = that._old = that.raw();\n };\n\n if (that.options.unmaskOnPost) {\n form.on(\"submit\", that._submitHandler);\n }\n\n that._formElement = form.on(\"reset\", that._resetHandler);\n }\n },\n\n _keydown: function(e) {\n var key = e.keyCode;\n\n this.__backward = key === keys.BACKSPACE;\n\n if (key === keys.ENTER) {\n this._change();\n }\n },\n\n _drop: function() {\n this.__dropping = true;\n },\n\n _find: function(idx, backward) {\n var value = this.element.val() || this._emptyMask;\n var step = 1;\n\n if (backward === true) {\n step = -1;\n }\n\n while (idx > -1 || idx <= this._maskLength) {\n if (value.charAt(idx) !== this.tokens[idx]) {\n return idx;\n }\n\n idx += step;\n }\n\n return -1;\n },\n\n _mask: function(start, end, value, backward) {\n var element = this.element[0];\n var current = element.value || this._emptyMask;\n var empty = this.options.promptChar;\n var valueLength;\n var chrIdx = 0;\n var unmasked;\n var chr;\n var idx;\n\n start = this._find(start, backward);\n\n if (start > end) {\n end = start;\n }\n\n unmasked = this._unmask(current.substring(end), end);\n value = this._unmask(value, start);\n valueLength = value.length;\n\n if (value) {\n unmasked = unmasked.replace(new RegExp(\"^_{0,\" + valueLength + \"}\"), \"\");\n }\n\n value += unmasked;\n current = current.split(\"\");\n chr = value.charAt(chrIdx);\n\n while (start < this._maskLength) {\n current[start] = chr || empty;\n chr = value.charAt(++chrIdx);\n\n if (idx === undefined$1 && chrIdx > valueLength) {\n idx = start;\n }\n\n start = this._find(start + 1);\n }\n\n element.value = this._old = current.join(\"\");\n\n if (kendo._activeElement() === element) {\n if (idx === undefined$1) {\n idx = this._maskLength;\n }\n\n caret(element, idx);\n }\n\n return idx;\n },\n\n _unmask: function(value, idx) {\n if (!value) {\n return \"\";\n }\n\n if (this._unmaskedValue === value) {\n return this._unmaskedValue;\n }\n value = (value + \"\").split(\"\");\n\n var chr;\n var token;\n var chrIdx = 0;\n var tokenIdx = idx || 0;\n\n var empty = this.options.promptChar;\n\n var valueLength = value.length;\n var tokensLength = this.tokens.length;\n\n var result = \"\";\n\n while (tokenIdx < tokensLength) {\n chr = value[chrIdx];\n token = this.tokens[tokenIdx];\n\n if (chr === token || chr === empty) {\n result += chr === empty ? empty : \"\";\n\n chrIdx += 1;\n tokenIdx += 1;\n } else if (typeof token !== \"string\") {\n if ((token && token.test && token.test(chr)) || (kendo.isFunction(token) && token(chr))) {\n result += chr;\n tokenIdx += 1;\n } else {\n if (valueLength === 1) {\n this._blinkInvalidState();\n }\n }\n\n chrIdx += 1;\n } else {\n tokenIdx += 1;\n }\n\n if (chrIdx >= valueLength) {\n break;\n }\n }\n this._unmaskedValue = result;\n return result;\n },\n\n _label: function() {\n var that = this;\n var element = that.element;\n var options = that.options;\n var id = element.attr(\"id\");\n var floating;\n var labelText;\n\n if (options.label !== null) {\n floating = isPlainObject(options.label) ? options.label.floating : false;\n labelText = isPlainObject(options.label) ? options.label.content : options.label;\n\n if (floating) {\n that._floatingLabelContainer = that.wrapper.wrap(\"\").parent();\n that.floatingLabel = new kendo.ui.FloatingLabel(that._floatingLabelContainer, { widget: that });\n }\n\n if (kendo.isFunction(labelText)) {\n labelText = labelText.call(that);\n }\n\n if (!labelText) {\n labelText = \"\";\n }\n\n if (!id) {\n id = options.name + \"_\" + kendo.guid();\n element.attr(\"id\", id);\n }\n\n that._inputLabel = $(\"'\")[floating ? \"insertAfter\" : \"insertBefore\"](that.wrapper);\n }\n },\n\n _wrapper: function() {\n var that = this;\n var element = that.element;\n var DOMElement = element[0];\n\n var wrapper = element.wrap(\"\").parent();\n wrapper[0].style.cssText = DOMElement.style.cssText;\n DOMElement.style.width = \"100%\";\n that.wrapper = wrapper.addClass(DOMElement.className).removeClass('input-validation-error');\n },\n\n _blinkInvalidState: function() {\n var that = this;\n\n that._addInvalidState();\n clearTimeout(that._invalidStateTimeout);\n that._invalidStateTimeout = setTimeout(that._removeInvalidState.bind(that), 100);\n },\n\n _addInvalidState: function() {\n var that = this;\n\n that.wrapper.addClass(STATEINVALID);\n that._validationIcon.removeClass(\"k-hidden\");\n },\n\n _removeInvalidState: function() {\n var that = this;\n\n that.wrapper.removeClass(STATEINVALID);\n that._validationIcon.addClass(\"k-hidden\");\n that._invalidStateTimeout = null;\n },\n\n _tokenize: function() {\n var tokens = [];\n var tokenIdx = 0;\n\n var mask = this.options.mask || \"\";\n var maskChars = mask.split(\"\");\n var length = maskChars.length;\n var idx = 0;\n var chr;\n var rule;\n\n var emptyMask = \"\";\n var promptChar = this.options.promptChar;\n var numberFormat = kendo.getCulture(this.options.culture).numberFormat;\n var rules = this._rules;\n\n for (; idx < length; idx++) {\n chr = maskChars[idx];\n rule = rules[chr];\n\n if (rule) {\n tokens[tokenIdx] = rule;\n emptyMask += promptChar;\n tokenIdx += 1;\n } else {\n if (chr === \".\" || chr === \",\") {\n chr = numberFormat[chr];\n } else if (chr === \"$\") {\n chr = numberFormat.currency.symbol;\n } else if (chr === \"\\\\\") {\n idx += 1;\n chr = maskChars[idx];\n }\n\n chr = chr.split(\"\");\n\n for (var i = 0, l = chr.length; i < l; i++) {\n tokens[tokenIdx] = chr[i];\n emptyMask += chr[i];\n tokenIdx += 1;\n }\n }\n }\n\n this.tokens = tokens;\n\n this._emptyMask = emptyMask;\n this._maskLength = emptyMask.length;\n }\n });\n\n function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n kendo.cssProperties.registerPrefix(\"MaskedTextBox\", \"k-input-\");\n\n kendo.cssProperties.registerValues(\"MaskedTextBox\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(MaskedTextBox);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}