diff --git a/bower.json b/bower.json index d00b1a19..d1cf22cd 100644 --- a/bower.json +++ b/bower.json @@ -8,7 +8,7 @@ "form", "input" ], - "version": "0.6.14", + "version": "0.7.0", "author": { "name": "Max Huang", "email": "risonhuang@gmail.com", diff --git a/dist/cleave-angular.js b/dist/cleave-angular.js index 0391c45f..5cbe70fe 100644 --- a/dist/cleave-angular.js +++ b/dist/cleave-angular.js @@ -92,7 +92,7 @@ Cleave.prototype = { // external google closure lib try { pps.phoneFormatter = new Cleave.PhoneFormatter( - new window.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter ); } catch (ex) { @@ -484,6 +484,8 @@ var DefaultProperties = { target.blocks = opts.blocks || []; target.blocksLength = target.blocks.length; + target.root = (typeof global === "object" && global) ? global : window; + target.maxLength = 0; target.backspace = false; diff --git a/dist/cleave-angular.min.js b/dist/cleave-angular.min.js index 200e24c3..061d8895 100644 --- a/dist/cleave-angular.min.js +++ b/dist/cleave-angular.min.js @@ -1,8 +1,8 @@ /*! - * cleave.js - 0.6.14 + * cleave.js - 0.7.0 * https://github.com/nosir/cleave.js * Apache License Version 2.0 * * Copyright (C) 2012-2016 Max Huang https://github.com/nosir/ */ -!function(window,document,undefined){"use strict";var Cleave=function(element,opts){var owner=this;"string"==typeof element?owner.element=document.querySelector(element):owner.element="undefined"!=typeof element.length&&element.length>0?element[0]:element,opts.initValue=owner.element.value,owner.properties=Cleave.DefaultProperties.assign({},opts),owner.init()};Cleave.prototype={init:function(){var owner=this,pps=owner.properties;(pps.numeral||pps.phone||pps.creditCard||pps.date||0!==pps.blocksLength||pps.prefix)&&(pps.maxLength=Cleave.Util.getMaxLength(pps.blocks),owner.onChangeListener=owner.onChange.bind(owner),owner.onKeyDownListener=owner.onKeyDown.bind(owner),owner.onCutListener=owner.onCutOrCopy.bind(owner),owner.onCopyListener=owner.onCutOrCopy.bind(owner),owner.element.addEventListener("input",owner.onChangeListener),owner.element.addEventListener("keydown",owner.onKeyDownListener),owner.element.addEventListener("cut",owner.onCutListener),owner.element.addEventListener("copy",owner.onCopyListener),owner.initPhoneFormatter(),owner.initDateFormatter(),owner.initNumeralFormatter(),owner.onInput(pps.initValue))},initNumeralFormatter:function(){var owner=this,pps=owner.properties;pps.numeral&&(pps.numeralFormatter=new Cleave.NumeralFormatter(pps.numeralDecimalMark,pps.numeralDecimalScale,pps.numeralThousandsGroupStyle,pps.delimiter))},initDateFormatter:function(){var owner=this,pps=owner.properties;pps.date&&(pps.dateFormatter=new Cleave.DateFormatter(pps.datePattern),pps.blocks=pps.dateFormatter.getBlocks(),pps.blocksLength=pps.blocks.length,pps.maxLength=Cleave.Util.getMaxLength(pps.blocks))},initPhoneFormatter:function(){var owner=this,pps=owner.properties;if(pps.phone)try{pps.phoneFormatter=new Cleave.PhoneFormatter(new window.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),pps.delimiter)}catch(ex){throw new Error("Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(event){var owner=this,pps=owner.properties,charCode=event.which||event.keyCode;return 8===charCode&&Cleave.Util.isDelimiter(owner.element.value.slice(-1),pps.delimiter,pps.delimiters)?void(pps.backspace=!0):void(pps.backspace=!1)},onChange:function(){this.onInput(this.element.value)},onCutOrCopy:function(e){var owner=this,pps=owner.properties,Util=Cleave.Util,inputValue=owner.element.value,textToCopy="";textToCopy=pps.copyDelimiter?inputValue:Util.stripDelimiters(inputValue,pps.delimiter,pps.delimiters);try{e.clipboardData.setData("text/plain",textToCopy),e.preventDefault()}catch(ex){}},onInput:function(value){var owner=this,pps=owner.properties,prev=value,Util=Cleave.Util;return pps.numeral||!pps.backspace||Util.isDelimiter(value.slice(-1),pps.delimiter,pps.delimiters)||(value=Util.headStr(value,value.length-1)),pps.phone?(pps.result=pps.phoneFormatter.format(value),void owner.updateValueState()):pps.numeral?(pps.result=pps.prefix+pps.numeralFormatter.format(value),void owner.updateValueState()):(pps.date&&(value=pps.dateFormatter.getValidatedDate(value)),value=Util.stripDelimiters(value,pps.delimiter,pps.delimiters),value=Util.getPrefixStrippedValue(value,pps.prefix,pps.prefixLength),value=pps.numericOnly?Util.strip(value,/[^\d]/g):value,value=pps.uppercase?value.toUpperCase():value,value=pps.lowercase?value.toLowerCase():value,pps.prefix&&(value=pps.prefix+value,0===pps.blocksLength)?(pps.result=value,void owner.updateValueState()):(pps.creditCard&&owner.updateCreditCardPropsByValue(value),value=Util.headStr(value,pps.maxLength),pps.result=Util.getFormattedValue(value,pps.blocks,pps.blocksLength,pps.delimiter,pps.delimiters),void(prev===pps.result&&prev!==pps.prefix||owner.updateValueState())))},updateCreditCardPropsByValue:function(value){var creditCardInfo,owner=this,pps=owner.properties,Util=Cleave.Util;Util.headStr(pps.result,4)!==Util.headStr(value,4)&&(creditCardInfo=Cleave.CreditCardDetector.getInfo(value,pps.creditCardStrictMode),pps.blocks=creditCardInfo.blocks,pps.blocksLength=pps.blocks.length,pps.maxLength=Util.getMaxLength(pps.blocks),pps.creditCardType!==creditCardInfo.type&&(pps.creditCardType=creditCardInfo.type,pps.onCreditCardTypeChanged.call(owner,pps.creditCardType)))},updateValueState:function(){var owner=this;owner.element.value=owner.properties.result},setPhoneRegionCode:function(phoneRegionCode){var owner=this,pps=owner.properties;pps.phoneRegionCode=phoneRegionCode,owner.initPhoneFormatter(),owner.onChange()},setRawValue:function(value){var owner=this,pps=owner.properties;value=value.toString(),pps.numeral&&(value=value.replace(".",pps.numeralDecimalMark)),owner.element.value=value,owner.onInput(value)},getRawValue:function(){var owner=this,pps=owner.properties,Util=Cleave.Util,rawValue=owner.element.value;return pps.rawValueTrimPrefix&&(rawValue=Util.getPrefixStrippedValue(rawValue,pps.prefix,pps.prefixLength)),rawValue=pps.numeral?pps.numeralFormatter.getRawValue(rawValue):Util.stripDelimiters(rawValue,pps.delimiter,pps.delimiters)},getFormattedValue:function(){return this.element.value},destroy:function(){var owner=this;owner.element.removeEventListener("input",owner.onChangeListener),owner.element.removeEventListener("keydown",owner.onKeyDownListener),owner.element.removeEventListener("cut",owner.onCutListener),owner.element.removeEventListener("copy",owner.onCopyListener)},toString:function(){return"[Cleave Object]"}},"object"==typeof module&&"object"==typeof module.exports&&(Cleave.NumeralFormatter=require("./shortcuts/NumeralFormatter"),Cleave.DateFormatter=require("./shortcuts/DateFormatter"),Cleave.PhoneFormatter=require("./shortcuts/PhoneFormatter"),Cleave.CreditCardDetector=require("./shortcuts/CreditCardDetector"),Cleave.Util=require("./utils/Util"),Cleave.DefaultProperties=require("./common/DefaultProperties"),module.exports=exports=Cleave);var Util={noop:function(){},strip:function(value,re){return value.replace(re,"")},isDelimiter:function(letter,delimiter,delimiters){return 0===delimiters.length?letter===delimiter:delimiters.some(function(current){if(letter===current)return!0})},stripDelimiters:function(value,delimiter,delimiters){if(0===delimiters.length){var delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):"";return value.replace(delimiterRE,"")}return delimiters.forEach(function(current){value=value.replace(new RegExp("\\"+current,"g"),"")}),value},headStr:function(str,length){return str.slice(0,length)},getMaxLength:function(blocks){return blocks.reduce(function(previous,current){return previous+current},0)},getPrefixStrippedValue:function(value,prefix,prefixLength){if(value.slice(0,prefixLength)!==prefix){var diffIndex=this.getFirstDiffIndex(prefix,value.slice(0,prefixLength));value=prefix+value.slice(diffIndex,diffIndex+1)+value.slice(prefixLength+1)}return value.slice(prefixLength)},getFirstDiffIndex:function(prev,current){for(var index=0;prev.charAt(index)===current.charAt(index);)if(""===prev.charAt(index++))return-1;return index},getFormattedValue:function(value,blocks,blocksLength,delimiter,delimiters){var currentDelimiter,result="",multipleDelimiters=delimiters.length>0;return blocks.forEach(function(length,index){if(value.length>0){var sub=value.slice(0,length),rest=value.slice(length);result+=sub,currentDelimiter=multipleDelimiters?delimiters[index]||currentDelimiter:delimiter,sub.length===length&&index=0?opts.numeralDecimalScale:2,target.numeralDecimalMark=opts.numeralDecimalMark||".",target.numeralThousandsGroupStyle=opts.numeralThousandsGroupStyle||"thousand",target.numericOnly=target.creditCard||target.date||!!opts.numericOnly,target.uppercase=!!opts.uppercase,target.lowercase=!!opts.lowercase,target.prefix=target.creditCard||target.phone||target.date?"":opts.prefix||"",target.prefixLength=target.prefix.length,target.rawValueTrimPrefix=!!opts.rawValueTrimPrefix,target.copyDelimiter=!!opts.copyDelimiter,target.initValue=opts.initValue||"",target.delimiter=opts.delimiter||""===opts.delimiter?opts.delimiter:opts.date?"/":opts.numeral?",":(opts.phone," "),target.delimiters=opts.delimiters||[],target.blocks=opts.blocks||[],target.blocksLength=target.blocks.length,target.maxLength=0,target.backspace=!1,target.result="",target}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=DefaultProperties);var CreditCardDetector={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],generalLoose:[4,4,4,4],generalStrict:[4,4,4,7]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]|2[2-7])\d{0,14}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb:/^(?:2131|1800|35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,visa:/^4\d{0,15}/},getInfo:function(value,strictMode){var blocks=CreditCardDetector.blocks,re=CreditCardDetector.re;return strictMode=!!strictMode,re.amex.test(value)?{type:"amex",blocks:blocks.amex}:re.uatp.test(value)?{type:"uatp",blocks:blocks.uatp}:re.diners.test(value)?{type:"diners",blocks:blocks.diners}:re.discover.test(value)?{type:"discover",blocks:blocks.discover}:re.mastercard.test(value)?{type:"mastercard",blocks:blocks.mastercard}:re.dankort.test(value)?{type:"dankort",blocks:blocks.dankort}:re.instapayment.test(value)?{type:"instapayment",blocks:blocks.instapayment}:re.jcb.test(value)?{type:"jcb",blocks:blocks.jcb}:re.maestro.test(value)?{type:"maestro",blocks:blocks.maestro}:re.visa.test(value)?{type:"visa",blocks:blocks.visa}:strictMode?{type:"unknown",blocks:blocks.generalStrict}:{type:"unknown",blocks:blocks.generalLoose}}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=CreditCardDetector);var DateFormatter=function(datePattern){var owner=this;owner.blocks=[],owner.datePattern=datePattern,owner.initBlocks()};DateFormatter.prototype={initBlocks:function(){var owner=this;owner.datePattern.forEach(function(value){"Y"===value?owner.blocks.push(4):owner.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(value){var owner=this,result="";return value=value.replace(/[^\d]/g,""),owner.blocks.forEach(function(length,index){if(value.length>0){var sub=value.slice(0,length),sub0=sub.slice(0,1),rest=value.slice(length);switch(owner.datePattern[index]){case"d":"00"===sub?sub="01":parseInt(sub0,10)>3?sub="0"+sub0:parseInt(sub,10)>31&&(sub="31");break;case"m":"00"===sub?sub="01":parseInt(sub0,10)>1?sub="0"+sub0:parseInt(sub,10)>12&&(sub="12")}result+=sub,value=rest}}),result}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=DateFormatter);var NumeralFormatter=function(numeralDecimalMark,numeralDecimalScale,numeralThousandsGroupStyle,delimiter){var owner=this;owner.numeralDecimalMark=numeralDecimalMark||".",owner.numeralDecimalScale=numeralDecimalScale>=0?numeralDecimalScale:2,owner.numeralThousandsGroupStyle=numeralThousandsGroupStyle||NumeralFormatter.groupStyle.thousand,owner.delimiter=delimiter||""===delimiter?delimiter:",",owner.delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):""};NumeralFormatter.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},NumeralFormatter.prototype={getRawValue:function(value){return value.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(value){var parts,partInteger,owner=this,partDecimal="";switch(value=value.replace(/[A-Za-z]/g,"").replace(owner.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",owner.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),partInteger=value,value.indexOf(owner.numeralDecimalMark)>=0&&(parts=value.split(owner.numeralDecimalMark),partInteger=parts[0],partDecimal=owner.numeralDecimalMark+parts[1].slice(0,owner.numeralDecimalScale)),owner.numeralThousandsGroupStyle){case NumeralFormatter.groupStyle.lakh:partInteger=partInteger.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+owner.delimiter);break;case NumeralFormatter.groupStyle.wan:partInteger=partInteger.replace(/(\d)(?=(\d{4})+$)/g,"$1"+owner.delimiter);break;default:partInteger=partInteger.replace(/(\d)(?=(\d{3})+$)/g,"$1"+owner.delimiter)}return partInteger.toString()+(owner.numeralDecimalScale>0?partDecimal.toString():"")}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=NumeralFormatter);var PhoneFormatter=function(formatter,delimiter){var owner=this;owner.delimiter=delimiter||""===delimiter?delimiter:" ",owner.delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):"",owner.formatter=formatter};PhoneFormatter.prototype={setFormatter:function(formatter){this.formatter=formatter},format:function(phoneNumber){var owner=this;owner.formatter.clear(),phoneNumber=phoneNumber.replace(/[^\d+]/g,""),phoneNumber=phoneNumber.replace(owner.delimiterRE,"");for(var current,result="",validated=!1,i=0,iMax=phoneNumber.length;i0?element[0]:element,opts.initValue=owner.element.value,owner.properties=Cleave.DefaultProperties.assign({},opts),owner.init()};Cleave.prototype={init:function(){var owner=this,pps=owner.properties;(pps.numeral||pps.phone||pps.creditCard||pps.date||0!==pps.blocksLength||pps.prefix)&&(pps.maxLength=Cleave.Util.getMaxLength(pps.blocks),owner.onChangeListener=owner.onChange.bind(owner),owner.onKeyDownListener=owner.onKeyDown.bind(owner),owner.onCutListener=owner.onCutOrCopy.bind(owner),owner.onCopyListener=owner.onCutOrCopy.bind(owner),owner.element.addEventListener("input",owner.onChangeListener),owner.element.addEventListener("keydown",owner.onKeyDownListener),owner.element.addEventListener("cut",owner.onCutListener),owner.element.addEventListener("copy",owner.onCopyListener),owner.initPhoneFormatter(),owner.initDateFormatter(),owner.initNumeralFormatter(),owner.onInput(pps.initValue))},initNumeralFormatter:function(){var owner=this,pps=owner.properties;pps.numeral&&(pps.numeralFormatter=new Cleave.NumeralFormatter(pps.numeralDecimalMark,pps.numeralDecimalScale,pps.numeralThousandsGroupStyle,pps.delimiter))},initDateFormatter:function(){var owner=this,pps=owner.properties;pps.date&&(pps.dateFormatter=new Cleave.DateFormatter(pps.datePattern),pps.blocks=pps.dateFormatter.getBlocks(),pps.blocksLength=pps.blocks.length,pps.maxLength=Cleave.Util.getMaxLength(pps.blocks))},initPhoneFormatter:function(){var owner=this,pps=owner.properties;if(pps.phone)try{pps.phoneFormatter=new Cleave.PhoneFormatter(new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),pps.delimiter)}catch(ex){throw new Error("Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(event){var owner=this,pps=owner.properties,charCode=event.which||event.keyCode;return 8===charCode&&Cleave.Util.isDelimiter(owner.element.value.slice(-1),pps.delimiter,pps.delimiters)?void(pps.backspace=!0):void(pps.backspace=!1)},onChange:function(){this.onInput(this.element.value)},onCutOrCopy:function(e){var owner=this,pps=owner.properties,Util=Cleave.Util,inputValue=owner.element.value,textToCopy="";textToCopy=pps.copyDelimiter?inputValue:Util.stripDelimiters(inputValue,pps.delimiter,pps.delimiters);try{e.clipboardData.setData("text/plain",textToCopy),e.preventDefault()}catch(ex){}},onInput:function(value){var owner=this,pps=owner.properties,prev=value,Util=Cleave.Util;return pps.numeral||!pps.backspace||Util.isDelimiter(value.slice(-1),pps.delimiter,pps.delimiters)||(value=Util.headStr(value,value.length-1)),pps.phone?(pps.result=pps.phoneFormatter.format(value),void owner.updateValueState()):pps.numeral?(pps.result=pps.prefix+pps.numeralFormatter.format(value),void owner.updateValueState()):(pps.date&&(value=pps.dateFormatter.getValidatedDate(value)),value=Util.stripDelimiters(value,pps.delimiter,pps.delimiters),value=Util.getPrefixStrippedValue(value,pps.prefix,pps.prefixLength),value=pps.numericOnly?Util.strip(value,/[^\d]/g):value,value=pps.uppercase?value.toUpperCase():value,value=pps.lowercase?value.toLowerCase():value,pps.prefix&&(value=pps.prefix+value,0===pps.blocksLength)?(pps.result=value,void owner.updateValueState()):(pps.creditCard&&owner.updateCreditCardPropsByValue(value),value=Util.headStr(value,pps.maxLength),pps.result=Util.getFormattedValue(value,pps.blocks,pps.blocksLength,pps.delimiter,pps.delimiters),void(prev===pps.result&&prev!==pps.prefix||owner.updateValueState())))},updateCreditCardPropsByValue:function(value){var creditCardInfo,owner=this,pps=owner.properties,Util=Cleave.Util;Util.headStr(pps.result,4)!==Util.headStr(value,4)&&(creditCardInfo=Cleave.CreditCardDetector.getInfo(value,pps.creditCardStrictMode),pps.blocks=creditCardInfo.blocks,pps.blocksLength=pps.blocks.length,pps.maxLength=Util.getMaxLength(pps.blocks),pps.creditCardType!==creditCardInfo.type&&(pps.creditCardType=creditCardInfo.type,pps.onCreditCardTypeChanged.call(owner,pps.creditCardType)))},updateValueState:function(){var owner=this;owner.element.value=owner.properties.result},setPhoneRegionCode:function(phoneRegionCode){var owner=this,pps=owner.properties;pps.phoneRegionCode=phoneRegionCode,owner.initPhoneFormatter(),owner.onChange()},setRawValue:function(value){var owner=this,pps=owner.properties;value=value.toString(),pps.numeral&&(value=value.replace(".",pps.numeralDecimalMark)),owner.element.value=value,owner.onInput(value)},getRawValue:function(){var owner=this,pps=owner.properties,Util=Cleave.Util,rawValue=owner.element.value;return pps.rawValueTrimPrefix&&(rawValue=Util.getPrefixStrippedValue(rawValue,pps.prefix,pps.prefixLength)),rawValue=pps.numeral?pps.numeralFormatter.getRawValue(rawValue):Util.stripDelimiters(rawValue,pps.delimiter,pps.delimiters)},getFormattedValue:function(){return this.element.value},destroy:function(){var owner=this;owner.element.removeEventListener("input",owner.onChangeListener),owner.element.removeEventListener("keydown",owner.onKeyDownListener),owner.element.removeEventListener("cut",owner.onCutListener),owner.element.removeEventListener("copy",owner.onCopyListener)},toString:function(){return"[Cleave Object]"}},"object"==typeof module&&"object"==typeof module.exports&&(Cleave.NumeralFormatter=require("./shortcuts/NumeralFormatter"),Cleave.DateFormatter=require("./shortcuts/DateFormatter"),Cleave.PhoneFormatter=require("./shortcuts/PhoneFormatter"),Cleave.CreditCardDetector=require("./shortcuts/CreditCardDetector"),Cleave.Util=require("./utils/Util"),Cleave.DefaultProperties=require("./common/DefaultProperties"),module.exports=exports=Cleave);var Util={noop:function(){},strip:function(value,re){return value.replace(re,"")},isDelimiter:function(letter,delimiter,delimiters){return 0===delimiters.length?letter===delimiter:delimiters.some(function(current){return letter===current?!0:void 0})},stripDelimiters:function(value,delimiter,delimiters){if(0===delimiters.length){var delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):"";return value.replace(delimiterRE,"")}return delimiters.forEach(function(current){value=value.replace(new RegExp("\\"+current,"g"),"")}),value},headStr:function(str,length){return str.slice(0,length)},getMaxLength:function(blocks){return blocks.reduce(function(previous,current){return previous+current},0)},getPrefixStrippedValue:function(value,prefix,prefixLength){if(value.slice(0,prefixLength)!==prefix){var diffIndex=this.getFirstDiffIndex(prefix,value.slice(0,prefixLength));value=prefix+value.slice(diffIndex,diffIndex+1)+value.slice(prefixLength+1)}return value.slice(prefixLength)},getFirstDiffIndex:function(prev,current){for(var index=0;prev.charAt(index)===current.charAt(index);)if(""===prev.charAt(index++))return-1;return index},getFormattedValue:function(value,blocks,blocksLength,delimiter,delimiters){var currentDelimiter,result="",multipleDelimiters=delimiters.length>0;return blocks.forEach(function(length,index){if(value.length>0){var sub=value.slice(0,length),rest=value.slice(length);result+=sub,currentDelimiter=multipleDelimiters?delimiters[index]||currentDelimiter:delimiter,sub.length===length&&blocksLength-1>index&&(result+=currentDelimiter),value=rest}}),result}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=Util);var DefaultProperties={assign:function(target,opts){return target=target||{},opts=opts||{},target.creditCard=!!opts.creditCard,target.creditCardStrictMode=!!opts.creditCardStrictMode,target.creditCardType="",target.onCreditCardTypeChanged=opts.onCreditCardTypeChanged||function(){},target.phone=!!opts.phone,target.phoneRegionCode=opts.phoneRegionCode||"AU",target.phoneFormatter={},target.date=!!opts.date,target.datePattern=opts.datePattern||["d","m","Y"],target.dateFormatter={},target.numeral=!!opts.numeral,target.numeralDecimalScale=opts.numeralDecimalScale>=0?opts.numeralDecimalScale:2,target.numeralDecimalMark=opts.numeralDecimalMark||".",target.numeralThousandsGroupStyle=opts.numeralThousandsGroupStyle||"thousand",target.numericOnly=target.creditCard||target.date||!!opts.numericOnly,target.uppercase=!!opts.uppercase,target.lowercase=!!opts.lowercase,target.prefix=target.creditCard||target.phone||target.date?"":opts.prefix||"",target.prefixLength=target.prefix.length,target.rawValueTrimPrefix=!!opts.rawValueTrimPrefix,target.copyDelimiter=!!opts.copyDelimiter,target.initValue=opts.initValue||"",target.delimiter=opts.delimiter||""===opts.delimiter?opts.delimiter:opts.date?"/":opts.numeral?",":(opts.phone," "),target.delimiters=opts.delimiters||[],target.blocks=opts.blocks||[],target.blocksLength=target.blocks.length,target.root="object"==typeof global&&global?global:window,target.maxLength=0,target.backspace=!1,target.result="",target}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=DefaultProperties);var CreditCardDetector={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],generalLoose:[4,4,4,4],generalStrict:[4,4,4,7]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]|2[2-7])\d{0,14}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb:/^(?:2131|1800|35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,visa:/^4\d{0,15}/},getInfo:function(value,strictMode){var blocks=CreditCardDetector.blocks,re=CreditCardDetector.re;return strictMode=!!strictMode,re.amex.test(value)?{type:"amex",blocks:blocks.amex}:re.uatp.test(value)?{type:"uatp",blocks:blocks.uatp}:re.diners.test(value)?{type:"diners",blocks:blocks.diners}:re.discover.test(value)?{type:"discover",blocks:blocks.discover}:re.mastercard.test(value)?{type:"mastercard",blocks:blocks.mastercard}:re.dankort.test(value)?{type:"dankort",blocks:blocks.dankort}:re.instapayment.test(value)?{type:"instapayment",blocks:blocks.instapayment}:re.jcb.test(value)?{type:"jcb",blocks:blocks.jcb}:re.maestro.test(value)?{type:"maestro",blocks:blocks.maestro}:re.visa.test(value)?{type:"visa",blocks:blocks.visa}:strictMode?{type:"unknown",blocks:blocks.generalStrict}:{type:"unknown",blocks:blocks.generalLoose}}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=CreditCardDetector);var DateFormatter=function(datePattern){var owner=this;owner.blocks=[],owner.datePattern=datePattern,owner.initBlocks()};DateFormatter.prototype={initBlocks:function(){var owner=this;owner.datePattern.forEach(function(value){"Y"===value?owner.blocks.push(4):owner.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(value){var owner=this,result="";return value=value.replace(/[^\d]/g,""),owner.blocks.forEach(function(length,index){if(value.length>0){var sub=value.slice(0,length),sub0=sub.slice(0,1),rest=value.slice(length);switch(owner.datePattern[index]){case"d":"00"===sub?sub="01":parseInt(sub0,10)>3?sub="0"+sub0:parseInt(sub,10)>31&&(sub="31");break;case"m":"00"===sub?sub="01":parseInt(sub0,10)>1?sub="0"+sub0:parseInt(sub,10)>12&&(sub="12")}result+=sub,value=rest}}),result}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=DateFormatter);var NumeralFormatter=function(numeralDecimalMark,numeralDecimalScale,numeralThousandsGroupStyle,delimiter){var owner=this;owner.numeralDecimalMark=numeralDecimalMark||".",owner.numeralDecimalScale=numeralDecimalScale>=0?numeralDecimalScale:2,owner.numeralThousandsGroupStyle=numeralThousandsGroupStyle||NumeralFormatter.groupStyle.thousand,owner.delimiter=delimiter||""===delimiter?delimiter:",",owner.delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):""};NumeralFormatter.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},NumeralFormatter.prototype={getRawValue:function(value){return value.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(value){var parts,partInteger,owner=this,partDecimal="";switch(value=value.replace(/[A-Za-z]/g,"").replace(owner.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",owner.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),partInteger=value,value.indexOf(owner.numeralDecimalMark)>=0&&(parts=value.split(owner.numeralDecimalMark),partInteger=parts[0],partDecimal=owner.numeralDecimalMark+parts[1].slice(0,owner.numeralDecimalScale)),owner.numeralThousandsGroupStyle){case NumeralFormatter.groupStyle.lakh:partInteger=partInteger.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+owner.delimiter);break;case NumeralFormatter.groupStyle.wan:partInteger=partInteger.replace(/(\d)(?=(\d{4})+$)/g,"$1"+owner.delimiter);break;default:partInteger=partInteger.replace(/(\d)(?=(\d{3})+$)/g,"$1"+owner.delimiter)}return partInteger.toString()+(owner.numeralDecimalScale>0?partDecimal.toString():"")}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=NumeralFormatter);var PhoneFormatter=function(formatter,delimiter){var owner=this;owner.delimiter=delimiter||""===delimiter?delimiter:" ",owner.delimiterRE=delimiter?new RegExp("\\"+delimiter,"g"):"",owner.formatter=formatter};PhoneFormatter.prototype={setFormatter:function(formatter){this.formatter=formatter},format:function(phoneNumber){var owner=this;owner.formatter.clear(),phoneNumber=phoneNumber.replace(/[^\d+]/g,""),phoneNumber=phoneNumber.replace(owner.delimiterRE,"");for(var current,result="",validated=!1,i=0,iMax=phoneNumber.length;iMax>i;i++)current=owner.formatter.inputDigit(phoneNumber.charAt(i)),/[\s()-]/g.test(current)?(result=current,validated=!0):validated||(result=current);return result=result.replace(/[()]/g,""),result=result.replace(/[\s-]/g,owner.delimiter)}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=PhoneFormatter),Cleave.NumeralFormatter=NumeralFormatter,Cleave.DateFormatter=DateFormatter,Cleave.PhoneFormatter=PhoneFormatter,Cleave.CreditCardDetector=CreditCardDetector,Cleave.Util=Util,Cleave.DefaultProperties=DefaultProperties,"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=Cleave:"function"==typeof define&&define.amd?define(function(){return Cleave}):"object"==typeof window&&(window.Cleave=Cleave)}(window,document),angular.module("cleave.js",[]).directive("cleave",function(){return{restrict:"A",require:"ngModel",scope:{cleave:"=",onValueChange:"&?"},compile:function(){return{pre:function($scope,$element,attrs,ngModelCtrl){$scope.cleave=new window.Cleave($element[0],$scope.cleave),ngModelCtrl.$formatters.push(function(val){return $scope.cleave.setRawValue(val),$scope.cleave.getFormattedValue()}),ngModelCtrl.$parsers.push(function(newFormattedValue){return $scope.onValueChange&&$scope.onValueChange()(newFormattedValue),$scope.cleave.getRawValue()})}}}}}); \ No newline at end of file diff --git a/dist/cleave-react.js b/dist/cleave-react.js index 7c5c22a8..0c0dd3b4 100644 --- a/dist/cleave-react.js +++ b/dist/cleave-react.js @@ -177,7 +177,7 @@ return /******/ (function(modules) { // webpackBootstrap // Cleave.AsYouTypeFormatter should be provided by // external google closure lib try { - pps.phoneFormatter = new PhoneFormatter(new window.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter); + pps.phoneFormatter = new PhoneFormatter(new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter); } catch (ex) { throw new Error('Please include phone-type-formatter.{country}.js lib'); } @@ -342,7 +342,7 @@ return /******/ (function(modules) { // webpackBootstrap } }); - module.exports = window.Cleave = Cleave; + module.exports = Cleave; /***/ }, /* 1 */ @@ -854,7 +854,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 8 */ /***/ function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(module) {'use strict'; + /* WEBPACK VAR INJECTION */(function(global, module) {'use strict'; /** * Props Assignment @@ -912,6 +912,8 @@ return /******/ (function(modules) { // webpackBootstrap target.blocks = opts.blocks || []; target.blocksLength = target.blocks.length; + target.root = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) === "object" && global ? global : window; + target.maxLength = 0; target.backspace = false; @@ -924,7 +926,7 @@ return /******/ (function(modules) { // webpackBootstrap if (( false ? 'undefined' : _typeof(module)) === 'object' && _typeof(module.exports) === 'object') { module.exports = exports = DefaultProperties; } - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)(module))) + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(3)(module))) /***/ } /******/ ]) diff --git a/dist/cleave-react.min.js b/dist/cleave-react.min.js index 53871b40..ebc5e57d 100644 --- a/dist/cleave-react.min.js +++ b/dist/cleave-react.min.js @@ -1,8 +1,8 @@ /*! - * cleave.js - 0.6.14 + * cleave.js - 0.7.0 * https://github.com/nosir/cleave.js * Apache License Version 2.0 * * Copyright (C) 2012-2016 Max Huang https://github.com/nosir/ */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.Cleave=t(require("react")):e.Cleave=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}var o=Object.assign||function(e){for(var t=1;t=0?t:2,a.numeralThousandsGroupStyle=r||o.groupStyle.thousand,a.delimiter=n||""===n?n:",",a.delimiterRE=n?new RegExp("\\"+n,"g"):""};n.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},n.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,o=this,a="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",o.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),r=e,e.indexOf(o.numeralDecimalMark)>=0&&(t=e.split(o.numeralDecimalMark),r=t[0],a=o.numeralDecimalMark+t[1].slice(0,o.numeralDecimalScale)),o.numeralThousandsGroupStyle){case n.groupStyle.lakh:r=r.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+o.delimiter);break;case n.groupStyle.wan:r=r.replace(/(\d)(?=(\d{4})+$)/g,"$1"+o.delimiter);break;default:r=r.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return r.toString()+(o.numeralDecimalScale>0?a.toString():"")}},"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n=function(e){var t=this;t.blocks=[],t.datePattern=e,t.initBlocks()};n.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(n,o){if(e.length>0){var a=e.slice(0,n),i=a.slice(0,1),l=e.slice(n);switch(t.datePattern[o]){case"d":"00"===a?a="01":parseInt(i,10)>3?a="0"+i:parseInt(a,10)>31&&(a="31");break;case"m":"00"===a?a="01":parseInt(i,10)>1?a="0"+i:parseInt(a,10)>12&&(a="12")}r+=a,e=l}}),r}},"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n=function(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};n.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear(),e=e.replace(/[^\d+]/g,""),e=e.replace(t.delimiterRE,"");for(var r,n="",o=!1,a=0,i=e.length;a0;return t.forEach(function(t,c){if(e.length>0){var s=e.slice(0,t),u=e.slice(t);i+=s,a=l?o[c]||a:n,s.length===t&&c=0?t.numeralDecimalScale:2,e.numeralDecimalMark=t.numeralDecimalMark||".",e.numeralThousandsGroupStyle=t.numeralThousandsGroupStyle||"thousand",e.numericOnly=e.creditCard||e.date||!!t.numericOnly,e.uppercase=!!t.uppercase,e.lowercase=!!t.lowercase,e.prefix=e.creditCard||e.phone||e.date?"":t.prefix||"",e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!t.rawValueTrimPrefix,e.copyDelimiter=!!t.copyDelimiter,e.initValue=t.initValue||"",e.delimiter=t.delimiter||""===t.delimiter?t.delimiter:t.date?"/":t.numeral?",":(t.phone," "),e.delimiters=t.delimiters||[],e.blocks=t.blocks||[],e.blocksLength=e.blocks.length,e.maxLength=0,e.backspace=!1,e.result="",e}};"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))}])}); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.Cleave=t(require("react")):e.Cleave=t(e.React)}(this,function(e){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}var o=Object.assign||function(e){for(var t=1;t=0?t:2,a.numeralThousandsGroupStyle=r||o.groupStyle.thousand,a.delimiter=n||""===n?n:",",a.delimiterRE=n?new RegExp("\\"+n,"g"):""};n.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},n.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,o=this,a="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",o.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),r=e,e.indexOf(o.numeralDecimalMark)>=0&&(t=e.split(o.numeralDecimalMark),r=t[0],a=o.numeralDecimalMark+t[1].slice(0,o.numeralDecimalScale)),o.numeralThousandsGroupStyle){case n.groupStyle.lakh:r=r.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+o.delimiter);break;case n.groupStyle.wan:r=r.replace(/(\d)(?=(\d{4})+$)/g,"$1"+o.delimiter);break;default:r=r.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return r.toString()+(o.numeralDecimalScale>0?a.toString():"")}},"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n=function(e){var t=this;t.blocks=[],t.datePattern=e,t.initBlocks()};n.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(n,o){if(e.length>0){var a=e.slice(0,n),i=a.slice(0,1),l=e.slice(n);switch(t.datePattern[o]){case"d":"00"===a?a="01":parseInt(i,10)>3?a="0"+i:parseInt(a,10)>31&&(a="31");break;case"m":"00"===a?a="01":parseInt(i,10)>1?a="0"+i:parseInt(a,10)>12&&(a="12")}r+=a,e=l}}),r}},"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n=function(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};n.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear(),e=e.replace(/[^\d+]/g,""),e=e.replace(t.delimiterRE,"");for(var r,n="",o=!1,a=0,i=e.length;i>a;a++)r=t.formatter.inputDigit(e.charAt(a)),/[\s()-]/g.test(r)?(n=r,o=!0):o||(n=r);return n=n.replace(/[()]/g,""),n=n.replace(/[\s-]/g,t.delimiter)}},"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],generalLoose:[4,4,4,4],generalStrict:[4,4,4,7]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]|2[2-7])\d{0,14}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb:/^(?:2131|1800|35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,visa:/^4\d{0,15}/},getInfo:function(e,t){var r=n.blocks,o=n.re;return t=!!t,o.amex.test(e)?{type:"amex",blocks:r.amex}:o.uatp.test(e)?{type:"uatp",blocks:r.uatp}:o.diners.test(e)?{type:"diners",blocks:r.diners}:o.discover.test(e)?{type:"discover",blocks:r.discover}:o.mastercard.test(e)?{type:"mastercard",blocks:r.mastercard}:o.dankort.test(e)?{type:"dankort",blocks:r.dankort}:o.instapayment.test(e)?{type:"instapayment",blocks:r.instapayment}:o.jcb.test(e)?{type:"jcb",blocks:r.jcb}:o.maestro.test(e)?{type:"maestro",blocks:r.maestro}:o.visa.test(e)?{type:"visa",blocks:r.visa}:t?{type:"unknown",blocks:r.generalStrict}:{type:"unknown",blocks:r.generalLoose}}};"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t,r){(function(e){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},n={noop:function(){},strip:function(e,t){return e.replace(t,"")},isDelimiter:function(e,t,r){return 0===r.length?e===t:r.some(function(t){return e===t?!0:void 0})},stripDelimiters:function(e,t,r){if(0===r.length){var n=t?new RegExp("\\"+t,"g"):"";return e.replace(n,"")}return r.forEach(function(t){e=e.replace(new RegExp("\\"+t,"g"),"")}),e},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,r){if(e.slice(0,r)!==t){var n=this.getFirstDiffIndex(t,e.slice(0,r));e=t+e.slice(n,n+1)+e.slice(r+1)}return e.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(""===e.charAt(r++))return-1;return r},getFormattedValue:function(e,t,r,n,o){var a,i="",l=o.length>0;return t.forEach(function(t,c){if(e.length>0){var s=e.slice(0,t),u=e.slice(t);i+=s,a=l?o[c]||a:n,s.length===t&&r-1>c&&(i+=a),e=u}}),i}};"object"===r(e)&&"object"===r(e.exports)&&(e.exports=t=n)}).call(t,r(3)(e))},function(e,t,r){(function(e,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o={assign:function(t,r){return t=t||{},r=r||{},t.creditCard=!!r.creditCard,t.creditCardStrictMode=!!r.creditCardStrictMode,t.creditCardType="",t.onCreditCardTypeChanged=r.onCreditCardTypeChanged||function(){},t.phone=!!r.phone,t.phoneRegionCode=r.phoneRegionCode||"AU",t.phoneFormatter={},t.date=!!r.date,t.datePattern=r.datePattern||["d","m","Y"],t.dateFormatter={},t.numeral=!!r.numeral,t.numeralDecimalScale=r.numeralDecimalScale>=0?r.numeralDecimalScale:2,t.numeralDecimalMark=r.numeralDecimalMark||".",t.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",t.numericOnly=t.creditCard||t.date||!!r.numericOnly,t.uppercase=!!r.uppercase,t.lowercase=!!r.lowercase,t.prefix=t.creditCard||t.phone||t.date?"":r.prefix||"",t.prefixLength=t.prefix.length,t.rawValueTrimPrefix=!!r.rawValueTrimPrefix,t.copyDelimiter=!!r.copyDelimiter,t.initValue=r.initValue||"",t.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.numeral?",":(r.phone," "),t.delimiters=r.delimiters||[],t.blocks=r.blocks||[],t.blocksLength=t.blocks.length,t.root="object"===("undefined"==typeof e?"undefined":n(e))&&e?e:window,t.maxLength=0,t.backspace=!1,t.result="",t}};"object"===n(r)&&"object"===n(r.exports)&&(r.exports=t=o)}).call(t,function(){return this}(),r(3)(e))}])}); \ No newline at end of file diff --git a/dist/cleave.js b/dist/cleave.js index 609cd96f..34a9ab88 100644 --- a/dist/cleave.js +++ b/dist/cleave.js @@ -92,7 +92,7 @@ Cleave.prototype = { // external google closure lib try { pps.phoneFormatter = new Cleave.PhoneFormatter( - new window.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter ); } catch (ex) { @@ -484,6 +484,8 @@ var DefaultProperties = { target.blocks = opts.blocks || []; target.blocksLength = target.blocks.length; + target.root = (typeof global === "object" && global) ? global : window; + target.maxLength = 0; target.backspace = false; diff --git a/dist/cleave.min.js b/dist/cleave.min.js index 1dea74d6..b9dad880 100644 --- a/dist/cleave.min.js +++ b/dist/cleave.min.js @@ -1,8 +1,8 @@ /*! - * cleave.js - 0.6.14 + * cleave.js - 0.7.0 * https://github.com/nosir/cleave.js * Apache License Version 2.0 * * Copyright (C) 2012-2016 Max Huang https://github.com/nosir/ */ -!function(e,t,r){"use strict";var a=function(e,r){var n=this;"string"==typeof e?n.element=t.querySelector(e):n.element="undefined"!=typeof e.length&&e.length>0?e[0]:e,r.initValue=n.element.value,n.properties=a.DefaultProperties.assign({},r),n.init()};a.prototype={init:function(){var e=this,t=e.properties;(t.numeral||t.phone||t.creditCard||t.date||0!==t.blocksLength||t.prefix)&&(t.maxLength=a.Util.getMaxLength(t.blocks),e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onCutListener=e.onCutOrCopy.bind(e),e.onCopyListener=e.onCutOrCopy.bind(e),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initNumeralFormatter(),e.onInput(t.initValue))},initNumeralFormatter:function(){var e=this,t=e.properties;t.numeral&&(t.numeralFormatter=new a.NumeralFormatter(t.numeralDecimalMark,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.delimiter))},initDateFormatter:function(){var e=this,t=e.properties;t.date&&(t.dateFormatter=new a.DateFormatter(t.datePattern),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=a.Util.getMaxLength(t.blocks))},initPhoneFormatter:function(){var t=this,r=t.properties;if(r.phone)try{r.phoneFormatter=new a.PhoneFormatter(new e.Cleave.AsYouTypeFormatter(r.phoneRegionCode),r.delimiter)}catch(n){throw new Error("Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,r=t.properties,n=e.which||e.keyCode;return 8===n&&a.Util.isDelimiter(t.element.value.slice(-1),r.delimiter,r.delimiters)?void(r.backspace=!0):void(r.backspace=!1)},onChange:function(){this.onInput(this.element.value)},onCutOrCopy:function(e){var t=this,r=t.properties,n=a.Util,o=t.element.value,i="";i=r.copyDelimiter?o:n.stripDelimiters(o,r.delimiter,r.delimiters);try{e.clipboardData.setData("text/plain",i),e.preventDefault()}catch(l){}},onInput:function(e){var t=this,r=t.properties,n=e,o=a.Util;return r.numeral||!r.backspace||o.isDelimiter(e.slice(-1),r.delimiter,r.delimiters)||(e=o.headStr(e,e.length-1)),r.phone?(r.result=r.phoneFormatter.format(e),void t.updateValueState()):r.numeral?(r.result=r.prefix+r.numeralFormatter.format(e),void t.updateValueState()):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),e=o.stripDelimiters(e,r.delimiter,r.delimiters),e=o.getPrefixStrippedValue(e,r.prefix,r.prefixLength),e=r.numericOnly?o.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(e=r.prefix+e,0===r.blocksLength)?(r.result=e,void t.updateValueState()):(r.creditCard&&t.updateCreditCardPropsByValue(e),e=o.headStr(e,r.maxLength),r.result=o.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters),void(n===r.result&&n!==r.prefix||t.updateValueState())))},updateCreditCardPropsByValue:function(e){var t,r=this,n=r.properties,o=a.Util;o.headStr(n.result,4)!==o.headStr(e,4)&&(t=a.CreditCardDetector.getInfo(e,n.creditCardStrictMode),n.blocks=t.blocks,n.blocksLength=n.blocks.length,n.maxLength=o.getMaxLength(n.blocks),n.creditCardType!==t.type&&(n.creditCardType=t.type,n.onCreditCardTypeChanged.call(r,n.creditCardType)))},updateValueState:function(){var e=this;e.element.value=e.properties.result},setPhoneRegionCode:function(e){var t=this,r=t.properties;r.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=e.toString(),r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),t.element.value=e,t.onInput(e)},getRawValue:function(){var e=this,t=e.properties,r=a.Util,n=e.element.value;return t.rawValueTrimPrefix&&(n=r.getPrefixStrippedValue(n,t.prefix,t.prefixLength)),n=t.numeral?t.numeralFormatter.getRawValue(n):r.stripDelimiters(n,t.delimiter,t.delimiters)},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},"object"==typeof module&&"object"==typeof module.exports&&(a.NumeralFormatter=require("./shortcuts/NumeralFormatter"),a.DateFormatter=require("./shortcuts/DateFormatter"),a.PhoneFormatter=require("./shortcuts/PhoneFormatter"),a.CreditCardDetector=require("./shortcuts/CreditCardDetector"),a.Util=require("./utils/Util"),a.DefaultProperties=require("./common/DefaultProperties"),module.exports=exports=a);var n={noop:function(){},strip:function(e,t){return e.replace(t,"")},isDelimiter:function(e,t,r){return 0===r.length?e===t:r.some(function(t){if(e===t)return!0})},stripDelimiters:function(e,t,r){if(0===r.length){var a=t?new RegExp("\\"+t,"g"):"";return e.replace(a,"")}return r.forEach(function(t){e=e.replace(new RegExp("\\"+t,"g"),"")}),e},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,r){if(e.slice(0,r)!==t){var a=this.getFirstDiffIndex(t,e.slice(0,r));e=t+e.slice(a,a+1)+e.slice(r+1)}return e.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(""===e.charAt(r++))return-1;return r},getFormattedValue:function(e,t,r,a,n){var o,i="",l=n.length>0;return t.forEach(function(t,s){if(e.length>0){var c=e.slice(0,t),u=e.slice(t);i+=c,o=l?n[s]||o:a,c.length===t&&s=0?t.numeralDecimalScale:2,e.numeralDecimalMark=t.numeralDecimalMark||".",e.numeralThousandsGroupStyle=t.numeralThousandsGroupStyle||"thousand",e.numericOnly=e.creditCard||e.date||!!t.numericOnly,e.uppercase=!!t.uppercase,e.lowercase=!!t.lowercase,e.prefix=e.creditCard||e.phone||e.date?"":t.prefix||"",e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!t.rawValueTrimPrefix,e.copyDelimiter=!!t.copyDelimiter,e.initValue=t.initValue||"",e.delimiter=t.delimiter||""===t.delimiter?t.delimiter:t.date?"/":t.numeral?",":(t.phone," "),e.delimiters=t.delimiters||[],e.blocks=t.blocks||[],e.blocksLength=e.blocks.length,e.maxLength=0,e.backspace=!1,e.result="",e}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=o);var i={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],generalLoose:[4,4,4,4],generalStrict:[4,4,4,7]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]|2[2-7])\d{0,14}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb:/^(?:2131|1800|35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,visa:/^4\d{0,15}/},getInfo:function(e,t){var r=i.blocks,a=i.re;return t=!!t,a.amex.test(e)?{type:"amex",blocks:r.amex}:a.uatp.test(e)?{type:"uatp",blocks:r.uatp}:a.diners.test(e)?{type:"diners",blocks:r.diners}:a.discover.test(e)?{type:"discover",blocks:r.discover}:a.mastercard.test(e)?{type:"mastercard",blocks:r.mastercard}:a.dankort.test(e)?{type:"dankort",blocks:r.dankort}:a.instapayment.test(e)?{type:"instapayment",blocks:r.instapayment}:a.jcb.test(e)?{type:"jcb",blocks:r.jcb}:a.maestro.test(e)?{type:"maestro",blocks:r.maestro}:a.visa.test(e)?{type:"visa",blocks:r.visa}:t?{type:"unknown",blocks:r.generalStrict}:{type:"unknown",blocks:r.generalLoose}}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=i);var l=function(e){var t=this;t.blocks=[],t.datePattern=e,t.initBlocks()};l.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(a,n){if(e.length>0){var o=e.slice(0,a),i=o.slice(0,1),l=e.slice(a);switch(t.datePattern[n]){case"d":"00"===o?o="01":parseInt(i,10)>3?o="0"+i:parseInt(o,10)>31&&(o="31");break;case"m":"00"===o?o="01":parseInt(i,10)>1?o="0"+i:parseInt(o,10)>12&&(o="12")}r+=o,e=l}}),r}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=l);var s=function(e,t,r,a){var n=this;n.numeralDecimalMark=e||".",n.numeralDecimalScale=t>=0?t:2,n.numeralThousandsGroupStyle=r||s.groupStyle.thousand,n.delimiter=a||""===a?a:",",n.delimiterRE=a?new RegExp("\\"+a,"g"):""};s.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},s.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,a=this,n="";switch(e=e.replace(/[A-Za-z]/g,"").replace(a.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",a.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),r=e,e.indexOf(a.numeralDecimalMark)>=0&&(t=e.split(a.numeralDecimalMark),r=t[0],n=a.numeralDecimalMark+t[1].slice(0,a.numeralDecimalScale)),a.numeralThousandsGroupStyle){case s.groupStyle.lakh:r=r.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+a.delimiter);break;case s.groupStyle.wan:r=r.replace(/(\d)(?=(\d{4})+$)/g,"$1"+a.delimiter);break;default:r=r.replace(/(\d)(?=(\d{3})+$)/g,"$1"+a.delimiter)}return r.toString()+(a.numeralDecimalScale>0?n.toString():"")}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=s);var c=function(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};c.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear(),e=e.replace(/[^\d+]/g,""),e=e.replace(t.delimiterRE,"");for(var r,a="",n=!1,o=0,i=e.length;o0?e[0]:e,r.initValue=o.element.value,o.properties=a.DefaultProperties.assign({},r),o.init()};a.prototype={init:function(){var e=this,t=e.properties;(t.numeral||t.phone||t.creditCard||t.date||0!==t.blocksLength||t.prefix)&&(t.maxLength=a.Util.getMaxLength(t.blocks),e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onCutListener=e.onCutOrCopy.bind(e),e.onCopyListener=e.onCutOrCopy.bind(e),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initNumeralFormatter(),e.onInput(t.initValue))},initNumeralFormatter:function(){var e=this,t=e.properties;t.numeral&&(t.numeralFormatter=new a.NumeralFormatter(t.numeralDecimalMark,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.delimiter))},initDateFormatter:function(){var e=this,t=e.properties;t.date&&(t.dateFormatter=new a.DateFormatter(t.datePattern),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=a.Util.getMaxLength(t.blocks))},initPhoneFormatter:function(){var e=this,t=e.properties;if(t.phone)try{t.phoneFormatter=new a.PhoneFormatter(new t.root.Cleave.AsYouTypeFormatter(t.phoneRegionCode),t.delimiter)}catch(r){throw new Error("Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,r=t.properties,o=e.which||e.keyCode;return 8===o&&a.Util.isDelimiter(t.element.value.slice(-1),r.delimiter,r.delimiters)?void(r.backspace=!0):void(r.backspace=!1)},onChange:function(){this.onInput(this.element.value)},onCutOrCopy:function(e){var t=this,r=t.properties,o=a.Util,n=t.element.value,i="";i=r.copyDelimiter?n:o.stripDelimiters(n,r.delimiter,r.delimiters);try{e.clipboardData.setData("text/plain",i),e.preventDefault()}catch(l){}},onInput:function(e){var t=this,r=t.properties,o=e,n=a.Util;return r.numeral||!r.backspace||n.isDelimiter(e.slice(-1),r.delimiter,r.delimiters)||(e=n.headStr(e,e.length-1)),r.phone?(r.result=r.phoneFormatter.format(e),void t.updateValueState()):r.numeral?(r.result=r.prefix+r.numeralFormatter.format(e),void t.updateValueState()):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),e=n.stripDelimiters(e,r.delimiter,r.delimiters),e=n.getPrefixStrippedValue(e,r.prefix,r.prefixLength),e=r.numericOnly?n.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(e=r.prefix+e,0===r.blocksLength)?(r.result=e,void t.updateValueState()):(r.creditCard&&t.updateCreditCardPropsByValue(e),e=n.headStr(e,r.maxLength),r.result=n.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters),void(o===r.result&&o!==r.prefix||t.updateValueState())))},updateCreditCardPropsByValue:function(e){var t,r=this,o=r.properties,n=a.Util;n.headStr(o.result,4)!==n.headStr(e,4)&&(t=a.CreditCardDetector.getInfo(e,o.creditCardStrictMode),o.blocks=t.blocks,o.blocksLength=o.blocks.length,o.maxLength=n.getMaxLength(o.blocks),o.creditCardType!==t.type&&(o.creditCardType=t.type,o.onCreditCardTypeChanged.call(r,o.creditCardType)))},updateValueState:function(){var e=this;e.element.value=e.properties.result},setPhoneRegionCode:function(e){var t=this,r=t.properties;r.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=e.toString(),r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),t.element.value=e,t.onInput(e)},getRawValue:function(){var e=this,t=e.properties,r=a.Util,o=e.element.value;return t.rawValueTrimPrefix&&(o=r.getPrefixStrippedValue(o,t.prefix,t.prefixLength)),o=t.numeral?t.numeralFormatter.getRawValue(o):r.stripDelimiters(o,t.delimiter,t.delimiters)},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},"object"==typeof module&&"object"==typeof module.exports&&(a.NumeralFormatter=require("./shortcuts/NumeralFormatter"),a.DateFormatter=require("./shortcuts/DateFormatter"),a.PhoneFormatter=require("./shortcuts/PhoneFormatter"),a.CreditCardDetector=require("./shortcuts/CreditCardDetector"),a.Util=require("./utils/Util"),a.DefaultProperties=require("./common/DefaultProperties"),module.exports=exports=a);var o={noop:function(){},strip:function(e,t){return e.replace(t,"")},isDelimiter:function(e,t,r){return 0===r.length?e===t:r.some(function(t){return e===t?!0:void 0})},stripDelimiters:function(e,t,r){if(0===r.length){var a=t?new RegExp("\\"+t,"g"):"";return e.replace(a,"")}return r.forEach(function(t){e=e.replace(new RegExp("\\"+t,"g"),"")}),e},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,r){if(e.slice(0,r)!==t){var a=this.getFirstDiffIndex(t,e.slice(0,r));e=t+e.slice(a,a+1)+e.slice(r+1)}return e.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(""===e.charAt(r++))return-1;return r},getFormattedValue:function(e,t,r,a,o){var n,i="",l=o.length>0;return t.forEach(function(t,s){if(e.length>0){var c=e.slice(0,t),u=e.slice(t);i+=c,n=l?o[s]||n:a,c.length===t&&r-1>s&&(i+=n),e=u}}),i}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=o);var n={assign:function(t,r){return t=t||{},r=r||{},t.creditCard=!!r.creditCard,t.creditCardStrictMode=!!r.creditCardStrictMode,t.creditCardType="",t.onCreditCardTypeChanged=r.onCreditCardTypeChanged||function(){},t.phone=!!r.phone,t.phoneRegionCode=r.phoneRegionCode||"AU",t.phoneFormatter={},t.date=!!r.date,t.datePattern=r.datePattern||["d","m","Y"],t.dateFormatter={},t.numeral=!!r.numeral,t.numeralDecimalScale=r.numeralDecimalScale>=0?r.numeralDecimalScale:2,t.numeralDecimalMark=r.numeralDecimalMark||".",t.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",t.numericOnly=t.creditCard||t.date||!!r.numericOnly,t.uppercase=!!r.uppercase,t.lowercase=!!r.lowercase,t.prefix=t.creditCard||t.phone||t.date?"":r.prefix||"",t.prefixLength=t.prefix.length,t.rawValueTrimPrefix=!!r.rawValueTrimPrefix,t.copyDelimiter=!!r.copyDelimiter,t.initValue=r.initValue||"",t.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.numeral?",":(r.phone," "),t.delimiters=r.delimiters||[],t.blocks=r.blocks||[],t.blocksLength=t.blocks.length,t.root="object"==typeof global&&global?global:e,t.maxLength=0,t.backspace=!1,t.result="",t}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=n);var i={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],generalLoose:[4,4,4,4],generalStrict:[4,4,4,7]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]|2[2-7])\d{0,14}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb:/^(?:2131|1800|35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,visa:/^4\d{0,15}/},getInfo:function(e,t){var r=i.blocks,a=i.re;return t=!!t,a.amex.test(e)?{type:"amex",blocks:r.amex}:a.uatp.test(e)?{type:"uatp",blocks:r.uatp}:a.diners.test(e)?{type:"diners",blocks:r.diners}:a.discover.test(e)?{type:"discover",blocks:r.discover}:a.mastercard.test(e)?{type:"mastercard",blocks:r.mastercard}:a.dankort.test(e)?{type:"dankort",blocks:r.dankort}:a.instapayment.test(e)?{type:"instapayment",blocks:r.instapayment}:a.jcb.test(e)?{type:"jcb",blocks:r.jcb}:a.maestro.test(e)?{type:"maestro",blocks:r.maestro}:a.visa.test(e)?{type:"visa",blocks:r.visa}:t?{type:"unknown",blocks:r.generalStrict}:{type:"unknown",blocks:r.generalLoose}}};"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=i);var l=function(e){var t=this;t.blocks=[],t.datePattern=e,t.initBlocks()};l.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(a,o){if(e.length>0){var n=e.slice(0,a),i=n.slice(0,1),l=e.slice(a);switch(t.datePattern[o]){case"d":"00"===n?n="01":parseInt(i,10)>3?n="0"+i:parseInt(n,10)>31&&(n="31");break;case"m":"00"===n?n="01":parseInt(i,10)>1?n="0"+i:parseInt(n,10)>12&&(n="12")}r+=n,e=l}}),r}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=l);var s=function(e,t,r,a){var o=this;o.numeralDecimalMark=e||".",o.numeralDecimalScale=t>=0?t:2,o.numeralThousandsGroupStyle=r||s.groupStyle.thousand,o.delimiter=a||""===a?a:",",o.delimiterRE=a?new RegExp("\\"+a,"g"):""};s.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan"},s.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,a=this,o="";switch(e=e.replace(/[A-Za-z]/g,"").replace(a.numeralDecimalMark,"M").replace(/^\-/,"N").replace(/[^\dMN]/g,"").replace("N","-").replace("M",a.numeralDecimalMark).replace(/^(-)?0+(?=\d)/,"$1"),r=e,e.indexOf(a.numeralDecimalMark)>=0&&(t=e.split(a.numeralDecimalMark),r=t[0],o=a.numeralDecimalMark+t[1].slice(0,a.numeralDecimalScale)),a.numeralThousandsGroupStyle){case s.groupStyle.lakh:r=r.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+a.delimiter);break;case s.groupStyle.wan:r=r.replace(/(\d)(?=(\d{4})+$)/g,"$1"+a.delimiter);break;default:r=r.replace(/(\d)(?=(\d{3})+$)/g,"$1"+a.delimiter)}return r.toString()+(a.numeralDecimalScale>0?o.toString():"")}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=s);var c=function(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e};c.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear(),e=e.replace(/[^\d+]/g,""),e=e.replace(t.delimiterRE,"");for(var r,a="",o=!1,n=0,i=e.length;i>n;n++)r=t.formatter.inputDigit(e.charAt(n)),/[\s()-]/g.test(r)?(a=r,o=!0):o||(a=r);return a=a.replace(/[()]/g,""),a=a.replace(/[\s-]/g,t.delimiter)}},"object"==typeof module&&"object"==typeof module.exports&&(module.exports=exports=c),a.NumeralFormatter=s,a.DateFormatter=l,a.PhoneFormatter=c,a.CreditCardDetector=i,a.Util=o,a.DefaultProperties=n,"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=a:"function"==typeof define&&define.amd?define(function(){return a}):"object"==typeof e&&(e.Cleave=a)}(window,document); \ No newline at end of file diff --git a/package.json b/package.json index e7f73794..6903a436 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "form", "input" ], - "version": "0.6.14", + "version": "0.7.0", "author": { "name": "Max Huang", "url": "http://github.com/nosir", diff --git a/src/Cleave.js b/src/Cleave.js index 29f12f1a..f33a846c 100644 --- a/src/Cleave.js +++ b/src/Cleave.js @@ -90,7 +90,7 @@ Cleave.prototype = { // external google closure lib try { pps.phoneFormatter = new Cleave.PhoneFormatter( - new window.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter ); } catch (ex) { diff --git a/src/Cleave.react.js b/src/Cleave.react.js index 65a89c85..47a5714b 100644 --- a/src/Cleave.react.js +++ b/src/Cleave.react.js @@ -115,7 +115,7 @@ var Cleave = React.createClass({ // external google closure lib try { pps.phoneFormatter = new PhoneFormatter( - new Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), pps.delimiter ); } catch (ex) { diff --git a/src/common/DefaultProperties.js b/src/common/DefaultProperties.js index 57c7ba52..a70aa131 100644 --- a/src/common/DefaultProperties.js +++ b/src/common/DefaultProperties.js @@ -58,6 +58,8 @@ var DefaultProperties = { target.blocks = opts.blocks || []; target.blocksLength = target.blocks.length; + target.root = (typeof global === "object" && global) ? global : window; + target.maxLength = 0; target.backspace = false;