{"version":3,"sources":["webpack:///./node_modules/vue-cleave-component/dist/vue-cleave.min.js","webpack:///./node_modules/cleave.js/dist/cleave-esm.js"],"names":["e","t","module","exports","self","n","r","o","i","l","call","m","c","d","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","u","assign","arguments","length","apply","this","a","name","render","attrs","type","on","blur","onBlur","props","required","validator","String","options","raw","Boolean","data","cleave","onValueChangedFn","mounted","$el","getOptions","methods","onValueChanged","target","rawValue","$emit","watch","deep","handler","destroy","setRawValue","getRawValue","beforeDestroy","component","install","NumeralFormatter","numeralDecimalMark","numeralIntegerScale","numeralDecimalScale","numeralThousandsGroupStyle","numeralPositiveOnly","stripLeadingZeroes","prefix","signBeforePrefix","tailPrefix","delimiter","owner","groupStyle","thousand","delimiterRE","RegExp","lakh","wan","none","replace","format","parts","partSign","partSignAndPrefix","partInteger","partDecimal","slice","indexOf","split","toString","NumeralFormatter_1","DateFormatter","datePattern","dateMin","dateMax","date","blocks","reverse","map","x","parseInt","unshift","initBlocks","forEach","push","getISOFormatDate","addLeadingZero","getBlocks","getValidatedDate","result","index","sub","sub0","rest","getFixedDateString","day","month","year","dayIndex","monthIndex","yearIndex","dayStartIndex","monthStartIndex","yearStartIndex","fullYearDone","toLowerCase","getFixedDate","getRangeFixedDate","reduce","previous","current","addLeadingZeroForYear","find","Math","min","isLeapYear","number","fullYearMode","DateFormatter_1","TimeFormatter","timePattern","timeFormat","time","getISOFormatTime","getTimeFormatOptions","maxHourFirstDigit","maxHours","maxMinutesFirstDigit","maxMinutes","getValidatedTime","timeFormatOptions","getFixedTimeString","second","minute","hour","secondIndex","minuteIndex","hourIndex","secondStartIndex","minuteStartIndex","hourStartIndex","getFixedTime","TimeFormatter_1","PhoneFormatter","formatter","setFormatter","phoneNumber","clear","validated","iMax","inputDigit","charAt","test","PhoneFormatter_1","CreditCardDetector","uatp","amex","diners","discover","mastercard","dankort","instapayment","jcb15","jcb","maestro","visa","mir","unionPay","general","re","getStrictBlocks","block","total","prev","concat","getInfo","strictMode","key","matchedBlocks","CreditCardDetector_1","Util","noop","strip","getPostDelimiter","delimiters","matchedDelimiter","getDelimiterREByDelimiter","getNextCursorPosition","prevPos","oldValue","newValue","getPositionOffset","oldRawValue","newRawValue","lengthOffset","stripDelimiters","abs","letter","headStr","str","getMaxLength","getPrefixStrippedValue","prefixLength","prevResult","noImmediatePrefix","prevValue","getFirstDiffIndex","getFormattedValue","blocksLength","delimiterLazyShow","multipleDelimiters","currentDelimiter","fixPrefixCursor","el","val","appendix","setSelectionRange","len","setTimeout","checkFullSelection","selection","window","getSelection","document","ex","setSelection","element","position","doc","getActiveElement","createTextRange","range","move","select","console","warn","parent","activeElement","shadowRoot","isAndroid","navigator","userAgent","isAndroidBackspaceKeydown","lastInputValue","currentInputValue","Util_1","DefaultProperties","opts","creditCard","creditCardStrictMode","creditCardType","onCreditCardTypeChanged","phone","phoneRegionCode","phoneFormatter","timeFormatter","dateFormatter","numeral","swapHiddenInput","numericOnly","uppercase","lowercase","rawValueTrimPrefix","copyDelimiter","initValue","undefined","delimiterLength","root","commonjsGlobal","maxLength","backspace","DefaultProperties_1","Cleave","hasMultipleElements","querySelector","querySelectorAll","Error","properties","init","pps","isBackward","onChangeListener","onChange","onKeyDownListener","onKeyDown","onFocusListener","onFocus","onCutListener","onCut","onCopyListener","onCopy","initSwapHiddenInput","addEventListener","initPhoneFormatter","initDateFormatter","initTimeFormatter","initNumeralFormatter","onInput","inputFormatter","cloneNode","parentNode","insertBefore","elementSwapHidden","id","numeralFormatter","AsYouTypeFormatter","event","charCode","which","keyCode","inputType","postDelimiter","postDelimiterBackspace","copyClipboardData","inputValue","textToCopy","clipboardData","setData","preventDefault","postDelimiterAfter","updateValueState","toUpperCase","updateCreditCardPropsByValue","creditCardInfo","endPos","selectionEnd","callOnValueChanged","setPhoneRegionCode","removeEventListener","Cleave_1"],"mappings":"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","file":"js/chunk-25ec5b84.29f180f3.js","sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"cleave.js\")):\"function\"==typeof define&&define.amd?define(\"VueCleave\",[\"cleave.js\"],t):\"object\"==typeof exports?exports.VueCleave=t(require(\"cleave.js\")):e.VueCleave=t(e.Cleave)}(\"undefined\"!=typeof self?self:this,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1)}([function(t,n){t.exports=e},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n.n(r);function u(){return(u=Object.assign||function(e){for(var t=1;t 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.prefix = (prefix || prefix === '') ? prefix : '';\n owner.signBeforePrefix = !!signBeforePrefix;\n owner.tailPrefix = !!tailPrefix;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n};\n\nNumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none' \n};\n\nNumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partSign, partSignAndPrefix, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partSign = value.slice(0, 1) === '-' ? '-' : '';\n if (typeof owner.prefix != 'undefined') {\n if (owner.signBeforePrefix) {\n partSignAndPrefix = partSign + owner.prefix;\n } else {\n partSignAndPrefix = owner.prefix + partSign;\n }\n } else {\n partSignAndPrefix = partSign;\n }\n \n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if(partSign === '-') {\n partInteger = partInteger.slice(1);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale);\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n if (owner.tailPrefix) {\n return partSign + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '') + owner.prefix;\n }\n\n return partSignAndPrefix + partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n};\n\nvar NumeralFormatter_1 = NumeralFormatter;\n\nvar DateFormatter = function (datePattern, dateMin, dateMax) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.dateMin = dateMin\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMin.length === 2) owner.dateMin.unshift(0);\n\n owner.dateMax = dateMax\n .split('-')\n .reverse()\n .map(function(x) {\n return parseInt(x, 10);\n });\n if (owner.dateMax.length === 2) owner.dateMax.unshift(0);\n \n owner.initBlocks();\n};\n\nDateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n // mm-yy || yy-mm\n if (value.length === 4 && (datePattern[0] === 'y' || datePattern[1] === 'y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 2;\n yearStartIndex = 2 - monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 2), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 2).length === 2;\n\n date = [0, month, year];\n }\n\n // mm-yyyy || yyyy-mm\n if (value.length === 6 && (datePattern[0] === 'Y' || datePattern[1] === 'Y')) {\n monthStartIndex = datePattern[0] === 'm' ? 0 : 4;\n yearStartIndex = 2 - 0.5 * monthStartIndex;\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = [0, month, year];\n }\n\n date = owner.getRangeFixedDate(date);\n owner.date = date;\n\n var result = date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + (date[0] === 0 ? '' : owner.addLeadingZero(date[0]));\n case 'm':\n return previous + (date[1] === 0 ? '' : owner.addLeadingZero(date[1]));\n case 'y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], false) : '');\n case 'Y':\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2], true) : '');\n }\n }, '');\n\n return result;\n },\n\n getRangeFixedDate: function (date) {\n var owner = this,\n datePattern = owner.datePattern,\n dateMin = owner.dateMin || [],\n dateMax = owner.dateMax || [];\n\n if (!date.length || (dateMin.length < 3 && dateMax.length < 3)) return date;\n\n if (\n datePattern.find(function(x) {\n return x.toLowerCase() === 'y';\n }) &&\n date[2] === 0\n ) return date;\n\n if (dateMax.length && (dateMax[2] < date[2] || (\n dateMax[2] === date[2] && (dateMax[1] < date[1] || (\n dateMax[1] === date[1] && dateMax[0] < date[0]\n ))\n ))) return dateMax;\n\n if (dateMin.length && (dateMin[2] > date[2] || (\n dateMin[2] === date[2] && (dateMin[1] > date[1] || (\n dateMin[1] === date[1] && dateMin[0] > date[0]\n ))\n ))) return dateMin;\n\n return date;\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number, fullYearMode) {\n if (fullYearMode) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar DateFormatter_1 = DateFormatter;\n\nvar TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n};\n\nTimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n};\n\nvar TimeFormatter_1 = TimeFormatter;\n\nvar PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n};\n\nPhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n};\n\nvar PhoneFormatter_1 = PhoneFormatter;\n\nvar CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62/81; 16 digits\n unionPay: /^(62|81)\\d{0,14}/\n },\n\n getStrictBlocks: function (block) {\n var total = block.reduce(function (prev, current) {\n return prev + current;\n }, 0);\n\n return block.concat(19 - total);\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var matchedBlocks = blocks[key];\n return {\n type: key,\n blocks: strictMode ? this.getStrictBlocks(matchedBlocks) : matchedBlocks\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? this.getStrictBlocks(blocks.general) : blocks.general\n };\n }\n};\n\nvar CreditCardDetector_1 = CreditCardDetector;\n\nvar Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Value is prefix\n if (value === prefix && value !== '') {\n return '';\n }\n\n if (signBeforePrefix && (value.slice(0, 1) == '-')) {\n var prev = (prevResult.slice(0, 1) == '-') ? prevResult.slice(1) : prevResult;\n return '-' + this.getPrefixStrippedValue(value.slice(1), prefix, prefixLength, prev, delimiter, delimiters, noImmediatePrefix, tailPrefix, signBeforePrefix);\n }\n\n // Pre result prefix string does not match pre-defined prefix\n if (prevResult.slice(0, prefixLength) !== prefix && !tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n } else if (prevResult.slice(-prefixLength) !== prefix && tailPrefix) {\n // Check if the first time user entered something\n if (noImmediatePrefix && !prevResult && value) return value;\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix && !tailPrefix) {\n return prevValue.slice(prefixLength);\n } else if (value.slice(-prefixLength) !== prefix && tailPrefix) {\n return prevValue.slice(0, -prefixLength - 1);\n }\n\n // No issue, strip prefix for new value\n return tailPrefix ? value.slice(0, -prefixLength) : value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter = '';\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) <= val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n // Check if input field is fully selected\n checkFullSelection: function(value) {\n try {\n var selection = window.getSelection() || document.getSelection() || {};\n return selection.toString().length === value.length;\n } catch (ex) {\n // Ignore\n }\n\n return false;\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function(parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n};\n\nvar Util_1 = Util;\n\n/**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\nvar DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateMin = opts.dateMin || '';\n target.dateMax = opts.dateMax || '';\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n target.signBeforePrefix = !!opts.signBeforePrefix;\n target.tailPrefix = !!opts.tailPrefix;\n\n // others\n target.swapHiddenInput = !!opts.swapHiddenInput;\n \n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () {});\n\n return target;\n }\n};\n\nvar DefaultProperties_1 = DefaultProperties;\n\n/**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\nvar Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n};\n\nCleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n owner.isBackward = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.initSwapHiddenInput();\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for \n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initSwapHiddenInput: function () {\n var owner = this, pps = owner.properties;\n if (!pps.swapHiddenInput) return;\n\n var inputFormatter = owner.element.cloneNode(true);\n owner.element.parentNode.insertBefore(inputFormatter, owner.element);\n\n owner.elementSwapHidden = owner.element;\n owner.elementSwapHidden.type = 'hidden';\n\n owner.element = inputFormatter;\n owner.element.id = '';\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.prefix,\n pps.signBeforePrefix,\n pps.tailPrefix,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function() {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern, pps.dateMin, pps.dateMax);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this,\n charCode = event.which || event.keyCode;\n\n owner.lastInputValue = owner.element.value;\n owner.isBackward = charCode === 8;\n },\n\n onChange: function (event) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n owner.isBackward = owner.isBackward || event.inputType === 'deleteContentBackward';\n\n var postDelimiter = Util.getPostDelimiter(owner.lastInputValue, pps.delimiter, pps.delimiters);\n\n if (owner.isBackward && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n owner.lastInputValue = owner.element.value;\n\n if (pps.prefix && pps.noImmediatePrefix && !owner.element.value) {\n this.onInput(pps.prefix);\n }\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n if (!Cleave.Util.checkFullSelection(this.element.value)) return;\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n // Do not show prefix when noImmediatePrefix is specified\n // This mostly because we need to show user the native input placeholder\n if (pps.prefix && pps.noImmediatePrefix && value.length === 0) {\n pps.result = '';\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prevent from showing prefix when no immediate option enabled with empty input value\n if (pps.prefix) {\n if (pps.tailPrefix) {\n value = value + pps.prefix;\n } else {\n value = pps.prefix + value;\n }\n\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n if (pps.swapHiddenInput) owner.elementSwapHidden.value = owner.getRawValue();\n\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n name: owner.element.name,\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters, pps.noImmediatePrefix, pps.tailPrefix, pps.signBeforePrefix);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n};\n\nCleave.NumeralFormatter = NumeralFormatter_1;\nCleave.DateFormatter = DateFormatter_1;\nCleave.TimeFormatter = TimeFormatter_1;\nCleave.PhoneFormatter = PhoneFormatter_1;\nCleave.CreditCardDetector = CreditCardDetector_1;\nCleave.Util = Util_1;\nCleave.DefaultProperties = DefaultProperties_1;\n\n// for angular directive\n((typeof commonjsGlobal === 'object' && commonjsGlobal) ? commonjsGlobal : window)['Cleave'] = Cleave;\n\n// CommonJS\nvar Cleave_1 = Cleave;\n\nexport default Cleave_1;\n"],"sourceRoot":""}