cleavejs-rails 1.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +16 -0
- data/lib/cleavejs-rails.rb +7 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ac.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ad.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ae.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.af.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ag.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ai.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.al.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.am.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ao.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ar.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.as.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.at.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.au-cn.js +85 -0
- data/vendor/assets/javascripts/addons/cleave-phone.au.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.aw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ax.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.az.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ba.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bb.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bd.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.be.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bi.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bj.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bo.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bq.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.br.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bs.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.by.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.bz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ca.js +111 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cd.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ch.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ci.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ck.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.co.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cv.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cx.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cy.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.cz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.de.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.dj.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.dk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.dm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.do.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.dz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ec.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ee.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.eg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.eh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.er.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.es.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.et.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fi.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fj.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fo.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.fr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ga.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gb.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gd.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ge.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gi.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gp.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gq.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.gy.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.hk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.hn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.hr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ht.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.hu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.i18n.js +58 -0
- data/vendor/assets/javascripts/addons/cleave-phone.id.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ie.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.il.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.im.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.in.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.io.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.iq.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ir.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.is.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.it.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.je.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.jm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.jo.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.jp.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ke.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ki.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.km.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kp.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ky.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.kz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.la.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lb.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.li.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ls.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.lv.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ly.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ma.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.md.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.me.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ml.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mo.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mp.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mq.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ms.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mv.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mx.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.my.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.mz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.na.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ne.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ng.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ni.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.no.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.np.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.nz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.om.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pa.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pe.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ph.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ps.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.pw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.py.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.qa.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.re.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ro.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.rs.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ru.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.rw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sa.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sb.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sd.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.se.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sh.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.si.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sj.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.so.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ss.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.st.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sv.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sx.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sy.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.sz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ta.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.td.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.th.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tj.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tk.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tl.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.to.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tr.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tv.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tw.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.tz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ua.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ug.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.us.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.uy.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.uz.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.va.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.vc.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ve.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.vg.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.vi.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.vn.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.vu.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.wf.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ws.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.ye.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.yt.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.za.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.zm.js +51 -0
- data/vendor/assets/javascripts/addons/cleave-phone.zw.js +51 -0
- data/vendor/assets/javascripts/cleave-angular.js +1292 -0
- data/vendor/assets/javascripts/cleave-angular.min.js +8 -0
- data/vendor/assets/javascripts/cleave-react-node.js +2443 -0
- data/vendor/assets/javascripts/cleave-react-node.min.js +8 -0
- data/vendor/assets/javascripts/cleave-react.js +2638 -0
- data/vendor/assets/javascripts/cleave-react.min.js +8 -0
- data/vendor/assets/javascripts/cleave.js +1235 -0
- data/vendor/assets/javascripts/cleave.min.js +8 -0
- metadata +343 -0
@@ -0,0 +1,8 @@
|
|
1
|
+
/*!
|
2
|
+
* cleave.js - 1.3.7
|
3
|
+
* https://github.com/nosir/cleave.js
|
4
|
+
* Apache License Version 2.0
|
5
|
+
*
|
6
|
+
* Copyright (C) 2012-2018 Max Huang https://github.com/nosir/
|
7
|
+
*/
|
8
|
+
!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(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(1),a=n(2),s=n(10),u=n(11),c=n(12),l=n(13),p=n(14),d=n(15),m=a({componentDidMount:function(){this.init()},componentDidUpdate:function(){var e=this,t=e.properties;p.setSelection(e.element,e.state.cursorPosition,t.document)},componentWillReceiveProps:function(e){var t=this,n=(e.options||{}).phoneRegionCode,r=e.value;void 0!==r&&(r=r.toString(),r!==t.properties.initValue&&r!==t.properties.result&&(t.properties.initValue=r,t.onInput(r,!0))),n&&n!==t.properties.phoneRegionCode&&(t.properties.phoneRegionCode=n,t.initPhoneFormatter(),t.onInput(t.properties.result))},getInitialState:function(){var e=this,t=e.props,n=t.value,r=t.options,o=t.onKeyDown,i=t.onChange,a=t.onFocus,s=t.onBlur,u=t.onInit;return e.registeredEvents={onInit:u||p.noop,onChange:i||p.noop,onFocus:a||p.noop,onBlur:s||p.noop,onKeyDown:o||p.noop},r||(r={}),r.initValue=n,e.properties=d.assign({},r),{value:e.properties.result,cursorPosition:0}},init:function(){var e=this,t=e.properties;return t.numeral||t.phone||t.creditCard||t.date||0!==t.blocksLength||t.prefix?(t.maxLength=p.getMaxLength(t.blocks),e.isAndroid=p.isAndroid(),e.initPhoneFormatter(),e.initDateFormatter(),e.initNumeralFormatter(),(t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue),void e.registeredEvents.onInit(e)):(e.onInput(t.initValue),void e.registeredEvents.onInit(e))},initNumeralFormatter:function(){var e=this,t=e.properties;t.numeral&&(t.numeralFormatter=new s(t.numeralDecimalMark,t.numeralIntegerScale,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.numeralPositiveOnly,t.stripLeadingZeroes,t.delimiter))},initDateFormatter:function(){var e=this,t=e.properties;t.date&&(t.dateFormatter=new u(t.datePattern),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=p.getMaxLength(t.blocks))},initPhoneFormatter:function(){var e=this,t=e.properties;if(t.phone)try{t.phoneFormatter=new c(new t.root.Cleave.AsYouTypeFormatter(t.phoneRegionCode),t.delimiter)}catch(n){throw new Error("Please include phone-type-formatter.{country}.js lib")}},setRawValue:function(e){var t=this,n=t.properties;e=void 0!==e&&null!==e?e.toString():"",n.numeral&&(e=e.replace(".",n.numeralDecimalMark)),n.backspace=!1,t.onChange({target:{value:e},stopPropagation:p.noop,preventDefault:p.noop,persist:p.noop})},getRawValue:function(){var e=this,t=e.properties,n=t.result;return t.rawValueTrimPrefix&&(n=p.getPrefixStrippedValue(n,t.prefix,t.prefixLength,t.result)),n=t.numeral?t.numeralFormatter?t.numeralFormatter.getRawValue(n):"":p.stripDelimiters(n,t.delimiter,t.delimiters)},getISOFormatDate:function(){var e=this,t=e.properties;return t.date?t.dateFormatter.getISOFormatDate():""},onInit:function(e){return e},onKeyDown:function(e){var t=this,n=t.properties,r=e.which||e.keyCode;8===r&&p.isDelimiter(n.result.slice(-n.delimiterLength),n.delimiter,n.delimiters)?n.backspace=!0:n.backspace=!1,t.registeredEvents.onKeyDown(e)},onFocus:function(e){var t=this,n=t.properties;e.target.rawValue=t.getRawValue(),e.target.value=n.result,t.registeredEvents.onFocus(e),p.fixPrefixCursor(t.element,n.prefix,n.delimiter,n.delimiters)},onBlur:function(e){var t=this,n=t.properties;e.target.rawValue=t.getRawValue(),e.target.value=n.result,t.registeredEvents.onBlur(e)},onChange:function(e){var t=this,n=t.properties;t.onInput(e.target.value),e.target.rawValue=t.getRawValue(),e.target.value=n.result,t.registeredEvents.onChange(e)},onInput:function(e,t){var n=this,r=n.properties;return p.isAndroidBackspaceKeydown(n.lastInputValue,n.element.value)&&p.isDelimiter(r.result.slice(-r.delimiterLength),r.delimiter,r.delimiters)&&(r.backspace=!0),t||r.numeral||!r.backspace||p.isDelimiter(e.slice(-r.delimiterLength),r.delimiter,r.delimiters)||(e=p.headStr(e,e.length-r.delimiterLength)),r.phone?(r.result=r.phoneFormatter.format(e),void n.updateValueState()):r.numeral?(!r.prefix||r.noImmediatePrefix&&!e.length?r.result=r.numeralFormatter.format(e):r.result=r.prefix+r.numeralFormatter.format(e),void n.updateValueState()):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),e=p.stripDelimiters(e,r.delimiter,r.delimiters),e=p.getPrefixStrippedValue(e,r.prefix,r.prefixLength,r.result),e=r.numericOnly?p.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,!r.prefix||r.noImmediatePrefix&&!e.length||(e=r.prefix+e,0!==r.blocksLength)?(r.creditCard&&n.updateCreditCardPropsByValue(e),e=r.maxLength>0?p.headStr(e,r.maxLength):e,r.result=p.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters,r.delimiterLazyShow),void n.updateValueState()):(r.result=e,void n.updateValueState()))},updateCreditCardPropsByValue:function(e){var t,n=this,r=n.properties;p.headStr(r.result,4)!==p.headStr(e,4)&&(t=l.getInfo(e,r.creditCardStrictMode),r.blocks=t.blocks,r.blocksLength=r.blocks.length,r.maxLength=p.getMaxLength(r.blocks),r.creditCardType!==t.type&&(r.creditCardType=t.type,r.onCreditCardTypeChanged.call(n,r.creditCardType)))},updateValueState:function(){var e=this,t=e.properties;e.element||e.setState({value:t.result});var n=e.element.selectionEnd,r=e.element.value,o=t.result;return e.lastInputValue=o,n=p.getNextCursorPosition(n,r,o,t.delimiter,t.delimiters),e.isAndroid?void window.setTimeout(function(){e.setState({value:o,cursorPosition:n})},1):void e.setState({value:o,cursorPosition:n})},render:function(){var e=this,t=e.props,n=(t.value,t.options,t.onKeyDown,t.onFocus,t.onBlur,t.onChange,t.onInit,t.htmlRef),a=r(t,["value","options","onKeyDown","onFocus","onBlur","onChange","onInit","htmlRef"]);return i.createElement("input",o({type:"text",ref:function(t){e.element=t,n&&n.apply(this,arguments)},value:e.state.value,onKeyDown:e.onKeyDown,onChange:e.onChange,onFocus:e.onFocus,onBlur:e.onBlur},a))}});e.exports=m},function(t,n){t.exports=e},function(e,t,n){"use strict";var r=n(1),o=n(3);if("undefined"==typeof r)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var i=(new r.Component).updater;e.exports=o(r.Component,r.isValidElement,i)},function(e,t,n){(function(t){"use strict";function r(e){return e}function o(e,n,o){function p(e,n,r){for(var o in n)n.hasOwnProperty(o)&&"production"!==t.env.NODE_ENV&&u("function"==typeof n[o],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e.displayName||"ReactClass",c[r],o)}function d(e,t){var n=x.hasOwnProperty(t)?x[t]:null;S.hasOwnProperty(t)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function m(e,r){if(r){s("function"!=typeof r,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!n(r),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var o=e.prototype,i=o.__reactAutoBindPairs;r.hasOwnProperty(l)&&w.mixins(e,r.mixins);for(var a in r)if(r.hasOwnProperty(a)&&a!==l){var c=r[a],p=o.hasOwnProperty(a);if(d(p,a),w.hasOwnProperty(a))w[a](e,c);else{var m=x.hasOwnProperty(a),f="function"==typeof c,h=f&&!m&&!p&&r.autobind!==!1;if(h)i.push(a,c),o[a]=c;else if(p){var v=x[a];s(m&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,a),"DEFINE_MANY_MERGED"===v?o[a]=g(o[a],c):"DEFINE_MANY"===v&&(o[a]=y(o[a],c))}else o[a]=c,"production"!==t.env.NODE_ENV&&"function"==typeof c&&r.displayName&&(o[a].displayName=r.displayName+"_"+a)}}}else if("production"!==t.env.NODE_ENV){var E=typeof r,D="object"===E&&null!==r;"production"!==t.env.NODE_ENV&&u(D,"%s: You're attempting to include a mixin that is either null or not an object. Check the mixins included by the component, as well as any mixins they include themselves. Expected object but got %s.",e.displayName||"ReactClass",null===r?null:E)}}function f(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in w;s(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var i=n in e;s(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function h(e,t){s(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(s(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function g(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return h(o,n),h(o,r),o}}function y(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function v(e,n){var r=n.bind(e);if("production"!==t.env.NODE_ENV){r.__reactBoundContext=e,r.__reactBoundMethod=n,r.__reactBoundArguments=null;var o=e.constructor.displayName,i=r.bind;r.bind=function(a){for(var s=arguments.length,c=Array(s>1?s-1:0),l=1;l<s;l++)c[l-1]=arguments[l];if(a!==e&&null!==a)"production"!==t.env.NODE_ENV&&u(!1,"bind(): React component methods may only be bound to the component instance. See %s",o);else if(!c.length)return"production"!==t.env.NODE_ENV&&u(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",o),r;var p=i.apply(r,arguments);return p.__reactBoundContext=e,p.__reactBoundMethod=n,p.__reactBoundArguments=c,p}}return r}function E(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=v(e,o)}}function D(e){var n=r(function(e,r,i){"production"!==t.env.NODE_ENV&&u(this instanceof n,"Something is calling a React component directly. Use a factory or JSX instead. See: https://fb.me/react-legacyfactory"),this.__reactAutoBindPairs.length&&E(this),this.props=e,this.context=r,this.refs=a,this.updater=i||o,this.state=null;var c=this.getInitialState?this.getInitialState():null;"production"!==t.env.NODE_ENV&&void 0===c&&this.getInitialState._isMockFunction&&(c=null),s("object"==typeof c&&!Array.isArray(c),"%s.getInitialState(): must return an object or null",n.displayName||"ReactCompositeComponent"),this.state=c});n.prototype=new I,n.prototype.constructor=n,n.prototype.__reactAutoBindPairs=[],b.forEach(m.bind(null,n)),m(n,N),m(n,e),m(n,C),n.getDefaultProps&&(n.defaultProps=n.getDefaultProps()),"production"!==t.env.NODE_ENV&&(n.getDefaultProps&&(n.getDefaultProps.isReactClassApproved={}),n.prototype.getInitialState&&(n.prototype.getInitialState.isReactClassApproved={})),s(n.prototype.render,"createClass(...): Class specification must implement a `render` method."),"production"!==t.env.NODE_ENV&&(u(!n.prototype.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",e.displayName||"A component"),u(!n.prototype.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",e.displayName||"A component"));for(var i in x)n.prototype[i]||(n.prototype[i]=null);return n}var b=[],x={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},w={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)m(e,t[n])},childContextTypes:function(e,n){"production"!==t.env.NODE_ENV&&p(e,n,"childContext"),e.childContextTypes=i({},e.childContextTypes,n)},contextTypes:function(e,n){"production"!==t.env.NODE_ENV&&p(e,n,"context"),e.contextTypes=i({},e.contextTypes,n)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=g(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,n){"production"!==t.env.NODE_ENV&&p(e,n,"prop"),e.propTypes=i({},e.propTypes,n)},statics:function(e,t){f(e,t)},autobind:function(){}},N={componentDidMount:function(){this.__isMounted=!0}},C={componentWillUnmount:function(){this.__isMounted=!1}},S={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return"production"!==t.env.NODE_ENV&&(u(this.__didWarnIsMounted,"%s: isMounted is deprecated. Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.",this.constructor&&this.constructor.displayName||this.name||"Component"),this.__didWarnIsMounted=!0),!!this.__isMounted}},I=function(){};return i(I.prototype,e.prototype,S),D}var i=n(5),a=n(6),s=n(7);if("production"!==t.env.NODE_ENV)var u=n(8);var c,l="mixins";c="production"!==t.env.NODE_ENV?{prop:"prop",context:"context",childContext:"child context"}:{},e.exports=o}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function i(e){if(p===clearTimeout)return clearTimeout(e);if((p===r||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{return p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}function a(){h&&m&&(h=!1,m.length?f=m.concat(f):g=-1,f.length&&s())}function s(){if(!h){var e=o(a);h=!0;for(var t=f.length;t;){for(m=f,f=[];++g<t;)m&&m[g].run();g=-1,t=f.length}m=null,h=!1,i(e)}}function u(e,t){this.fun=e,this.array=t}function c(){}var l,p,d=e.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:n}catch(e){l=n}try{p="function"==typeof clearTimeout?clearTimeout:r}catch(e){p=r}}();var m,f=[],h=!1,g=-1;d.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];f.push(new u(e,t)),1!==f.length||h||o(s)},u.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=c,d.addListener=c,d.once=c,d.off=c,d.removeListener=c,d.removeAllListeners=c,d.emit=c,d.prependListener=c,d.prependOnceListener=c,d.listeners=function(e){return[]},d.binding=function(e){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(e,t){"use strict";function n(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function r(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(i){return!1}}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=r()?Object.assign:function(e,t){for(var r,s,u=n(e),c=1;c<arguments.length;c++){r=Object(arguments[c]);for(var l in r)i.call(r,l)&&(u[l]=r[l]);if(o){s=o(r);for(var p=0;p<s.length;p++)a.call(r,s[p])&&(u[s[p]]=r[s[p]])}}return u}},function(e,t,n){(function(t){"use strict";var n={};"production"!==t.env.NODE_ENV&&Object.freeze(n),e.exports=n}).call(t,n(4))},function(e,t,n){(function(t){"use strict";function n(e,t,n,o,i,a,s,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,i,a,s,u],p=0;c=new Error(t.replace(/%s/g,function(){return l[p++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var r=function(e){};"production"!==t.env.NODE_ENV&&(r=function(e){if(void 0===e)throw new Error("invariant requires an error message argument")}),e.exports=n}).call(t,n(4))},function(e,t,n){(function(t){"use strict";var r=n(9),o=r;if("production"!==t.env.NODE_ENV){var i=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var o=0,i="Warning: "+e.replace(/%s/g,function(){return n[o++]});"undefined"!=typeof console&&console.error(i);try{throw new Error(i)}catch(a){}};o=function(e,t){if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];i.apply(void 0,[t].concat(r))}}}e.exports=o}).call(t,n(4))},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t){"use strict";var n=function r(e,t,n,o,i,a,s){var u=this;u.numeralDecimalMark=e||".",u.numeralIntegerScale=t>0?t:0,u.numeralDecimalScale=n>=0?n:2,u.numeralThousandsGroupStyle=o||r.groupStyle.thousand,u.numeralPositiveOnly=!!i,u.stripLeadingZeroes=a!==!1,u.delimiter=s||""===s?s:",",u.delimiterRE=s?new RegExp("\\"+s,"g"):""};n.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan",none:"none"},n.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var t,r,o=this,i="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/[^\dM-]/g,"").replace(/^\-/,"N").replace(/\-/g,"").replace("N",o.numeralPositiveOnly?"":"-").replace("M",o.numeralDecimalMark),o.stripLeadingZeroes&&(e=e.replace(/^(-)?0+(?=\d)/,"$1")),r=e,e.indexOf(o.numeralDecimalMark)>=0&&(t=e.split(o.numeralDecimalMark),r=t[0],i=o.numeralDecimalMark+t[1].slice(0,o.numeralDecimalScale)),o.numeralIntegerScale>0&&(r=r.slice(0,o.numeralIntegerScale+("-"===e.slice(0,1)?1:0))),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;case n.groupStyle.thousand:r=r.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return r.toString()+(o.numeralDecimalScale>0?i.toString():"")}},e.exports=n},function(e,t){"use strict";var n=function(e){var t=this;t.date=[],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)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+"-"+e.addLeadingZero(t[1])+"-"+e.addLeadingZero(t[0]):""},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,n="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(r,o){if(e.length>0){var i=e.slice(0,r),a=i.slice(0,1),s=e.slice(r);switch(t.datePattern[o]){case"d":"00"===i?i="01":parseInt(a,10)>3?i="0"+a:parseInt(i,10)>31&&(i="31");break;case"m":"00"===i?i="01":parseInt(a,10)>1?i="0"+a:parseInt(i,10)>12&&(i="12")}n+=i,e=s}}),this.getFixedDateString(n)},getFixedDateString:function(e){var t,n,r,o=this,i=o.datePattern,a=[],s=0,u=0,c=0,l=0,p=0,d=0,m=!1;return 4===e.length&&"y"!==i[0].toLowerCase()&&"y"!==i[1].toLowerCase()&&(l="d"===i[0]?0:2,p=2-l,t=parseInt(e.slice(l,l+2),10),n=parseInt(e.slice(p,p+2),10),a=this.getFixedDate(t,n,0)),8===e.length&&(i.forEach(function(e,t){switch(e){case"d":s=t;break;case"m":u=t;break;default:c=t}}),d=2*c,l=s<=c?2*s:2*s+2,p=u<=c?2*u:2*u+2,t=parseInt(e.slice(l,l+2),10),n=parseInt(e.slice(p,p+2),10),r=parseInt(e.slice(d,d+4),10),m=4===e.slice(d,d+4).length,a=this.getFixedDate(t,n,r)),o.date=a,0===a.length?e:i.reduce(function(e,t){switch(t){case"d":return e+o.addLeadingZero(a[0]);case"m":return e+o.addLeadingZero(a[1]);default:return e+(m?o.addLeadingZeroForYear(a[2]):"")}},"")},getFixedDate:function(e,t,n){return e=Math.min(e,31),t=Math.min(t,12),n=parseInt(n||0,10),(t<7&&t%2===0||t>8&&t%2===1)&&(e=Math.min(e,2===t?this.isLeapYear(n)?29:28:30)),[e,t,n]},isLeapYear:function(e){return e%4===0&&e%100!==0||e%400===0},addLeadingZero:function(e){return(e<10?"0":"")+e},addLeadingZeroForYear:function(e){return(e<10?"000":e<100?"00":e<1e3?"0":"")+e}},e.exports=n},function(e,t){"use strict";var n=function(e,t){var n=this;n.delimiter=t||""===t?t:" ",n.delimiterRE=t?new RegExp("\\"+t,"g"):"",n.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 n,r="",o=!1,i=0,a=e.length;i<a;i++)n=t.formatter.inputDigit(e.charAt(i)),/[\s()-]/g.test(n)?(r=n,o=!0):o||(r=n);return r=r.replace(/[()]/g,""),r=r.replace(/[\s-]/g,t.delimiter)}},e.exports=n},function(e,t){"use strict";var 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],jcb15:[4,6,5],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],mir:[4,4,4,4],unionPay:[4,4,4,4],general:[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]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb15:/^(?:2131|1800)\d{0,11}/,jcb:/^(?:35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,mir:/^220[0-4]\d{0,12}/,visa:/^4\d{0,15}/,unionPay:/^62\d{0,14}/},getInfo:function(e,t){var r=n.blocks,o=n.re;t=!!t;for(var i in o)if(o[i].test(e)){var a;return a=t?r.generalStrict:r[i],{type:i,blocks:a}}return{type:"unknown",blocks:t?r.generalStrict:r.general}}};e.exports=n},function(e,t){"use strict";var n={noop:function(){},strip:function(e,t){return e.replace(t,"")},isDelimiter:function(e,t,n){return 0===n.length?e===t:n.some(function(t){if(e===t)return!0})},getDelimiterREByDelimiter:function(e){return new RegExp(e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),"g")},getNextCursorPosition:function(e,t,n,r,o){return t.length===e?n.length:e+this.getPositionOffset(e,t,n,r,o)},getPositionOffset:function(e,t,n,r,o){var i,a,s;return i=this.stripDelimiters(t.slice(0,e),r,o),a=this.stripDelimiters(n.slice(0,e),r,o),s=i.length-a.length,0!==s?s/Math.abs(s):0},stripDelimiters:function(e,t,n){var r=this;if(0===n.length){var o=t?r.getDelimiterREByDelimiter(t):"";return e.replace(o,"")}return n.forEach(function(t){e=e.replace(r.getDelimiterREByDelimiter(t),"")}),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,n,r){if(e.slice(0,n)!==t)if(e.length<r.length)e=e.length>n?r:t;else{var o=this.getFirstDiffIndex(t,e.slice(0,n));e=t+e.slice(o,o+1)+e.slice(n+1)}return e.slice(n)},getFirstDiffIndex:function(e,t){for(var n=0;e.charAt(n)===t.charAt(n);)if(""===e.charAt(n++))return-1;return n},getFormattedValue:function(e,t,n,r,o,i){var a,s="",u=o.length>0;return 0===n?e:(t.forEach(function(t,c){if(e.length>0){var l=e.slice(0,t),p=e.slice(t);a=u?o[i?c-1:c]||a:r,i?(c>0&&(s+=a),s+=l):(s+=l,l.length===t&&c<n-1&&(s+=a)),e=p}}),s)},fixPrefixCursor:function(e,t,n,r){if(e){var o=e.value,i=n||r[0]||" ";if(e.setSelectionRange&&t&&!(t.length+i.length<o.length)){var a=2*o.length;setTimeout(function(){e.setSelectionRange(a,a)},1)}}},setSelection:function(e,t,n){if(e===n.activeElement&&!(e&&e.value.length<=t))if(e.createTextRange){var r=e.createTextRange();r.move("character",t),r.select()}else try{e.setSelectionRange(t,t)}catch(o){console.warn("The input element type does not support selection")}},isAndroid:function(){return navigator&&/android/i.test(navigator.userAgent)},isAndroidBackspaceKeydown:function(e,t){return!!(this.isAndroid()&&e&&t)&&t===e.slice(0,-1)}};e.exports=n},function(e,t){(function(t){"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&&e!==Symbol.prototype?"symbol":typeof e},r={assign:function(e,r){return e=e||{},r=r||{},e.creditCard=!!r.creditCard,e.creditCardStrictMode=!!r.creditCardStrictMode,e.creditCardType="",e.onCreditCardTypeChanged=r.onCreditCardTypeChanged||function(){},e.phone=!!r.phone,e.phoneRegionCode=r.phoneRegionCode||"AU",e.phoneFormatter={},e.date=!!r.date,e.datePattern=r.datePattern||["d","m","Y"],e.dateFormatter={},e.numeral=!!r.numeral,e.numeralIntegerScale=r.numeralIntegerScale>0?r.numeralIntegerScale:0,e.numeralDecimalScale=r.numeralDecimalScale>=0?r.numeralDecimalScale:2,e.numeralDecimalMark=r.numeralDecimalMark||".",e.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",e.numeralPositiveOnly=!!r.numeralPositiveOnly,e.stripLeadingZeroes=r.stripLeadingZeroes!==!1,e.numericOnly=e.creditCard||e.date||!!r.numericOnly,e.uppercase=!!r.uppercase,e.lowercase=!!r.lowercase,e.prefix=e.creditCard||e.date?"":r.prefix||"",e.noImmediatePrefix=!!r.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!r.rawValueTrimPrefix,e.copyDelimiter=!!r.copyDelimiter,e.initValue=void 0!==r.initValue&&null!==r.initValue?r.initValue.toString():"",e.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.numeral?",":(r.phone," "),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!r.delimiterLazyShow,e.delimiters=r.delimiters||[],e.blocks=r.blocks||[],e.blocksLength=e.blocks.length,e.document=r.document||document,e.root="object"===("undefined"==typeof t?"undefined":n(t))&&t?t:window,e.maxLength=0,e.backspace=!1,e.result="",e.onValueChanged=r.onValueChanged||function(){},e}};e.exports=r}).call(t,function(){return this}())}])});
|
@@ -0,0 +1,1235 @@
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
3
|
+
module.exports = factory();
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
5
|
+
define([], factory);
|
6
|
+
else if(typeof exports === 'object')
|
7
|
+
exports["Cleave"] = factory();
|
8
|
+
else
|
9
|
+
root["Cleave"] = factory();
|
10
|
+
})(this, function() {
|
11
|
+
return /******/ (function(modules) { // webpackBootstrap
|
12
|
+
/******/ // The module cache
|
13
|
+
/******/ var installedModules = {};
|
14
|
+
|
15
|
+
/******/ // The require function
|
16
|
+
/******/ function __webpack_require__(moduleId) {
|
17
|
+
|
18
|
+
/******/ // Check if module is in cache
|
19
|
+
/******/ if(installedModules[moduleId])
|
20
|
+
/******/ return installedModules[moduleId].exports;
|
21
|
+
|
22
|
+
/******/ // Create a new module (and put it into the cache)
|
23
|
+
/******/ var module = installedModules[moduleId] = {
|
24
|
+
/******/ exports: {},
|
25
|
+
/******/ id: moduleId,
|
26
|
+
/******/ loaded: false
|
27
|
+
/******/ };
|
28
|
+
|
29
|
+
/******/ // Execute the module function
|
30
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
31
|
+
|
32
|
+
/******/ // Flag the module as loaded
|
33
|
+
/******/ module.loaded = true;
|
34
|
+
|
35
|
+
/******/ // Return the exports of the module
|
36
|
+
/******/ return module.exports;
|
37
|
+
/******/ }
|
38
|
+
|
39
|
+
|
40
|
+
/******/ // expose the modules object (__webpack_modules__)
|
41
|
+
/******/ __webpack_require__.m = modules;
|
42
|
+
|
43
|
+
/******/ // expose the module cache
|
44
|
+
/******/ __webpack_require__.c = installedModules;
|
45
|
+
|
46
|
+
/******/ // __webpack_public_path__
|
47
|
+
/******/ __webpack_require__.p = "";
|
48
|
+
|
49
|
+
/******/ // Load entry module and return exports
|
50
|
+
/******/ return __webpack_require__(0);
|
51
|
+
/******/ })
|
52
|
+
/************************************************************************/
|
53
|
+
/******/ ([
|
54
|
+
/* 0 */
|
55
|
+
/***/ (function(module, exports, __webpack_require__) {
|
56
|
+
|
57
|
+
/* WEBPACK VAR INJECTION */(function(global) {'use strict';
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Construct a new Cleave instance by passing the configuration object
|
61
|
+
*
|
62
|
+
* @param {String | HTMLElement} element
|
63
|
+
* @param {Object} opts
|
64
|
+
*/
|
65
|
+
var Cleave = function (element, opts) {
|
66
|
+
var owner = this;
|
67
|
+
|
68
|
+
if (typeof element === 'string') {
|
69
|
+
owner.element = document.querySelector(element);
|
70
|
+
} else {
|
71
|
+
owner.element = ((typeof element.length !== 'undefined') && element.length > 0) ? element[0] : element;
|
72
|
+
}
|
73
|
+
|
74
|
+
if (!owner.element) {
|
75
|
+
throw new Error('[cleave.js] Please check the element');
|
76
|
+
}
|
77
|
+
|
78
|
+
opts.initValue = owner.element.value;
|
79
|
+
|
80
|
+
owner.properties = Cleave.DefaultProperties.assign({}, opts);
|
81
|
+
|
82
|
+
owner.init();
|
83
|
+
};
|
84
|
+
|
85
|
+
Cleave.prototype = {
|
86
|
+
init: function () {
|
87
|
+
var owner = this, pps = owner.properties;
|
88
|
+
|
89
|
+
// no need to use this lib
|
90
|
+
if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {
|
91
|
+
owner.onInput(pps.initValue);
|
92
|
+
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
|
96
|
+
pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);
|
97
|
+
|
98
|
+
owner.isAndroid = Cleave.Util.isAndroid();
|
99
|
+
owner.lastInputValue = '';
|
100
|
+
|
101
|
+
owner.onChangeListener = owner.onChange.bind(owner);
|
102
|
+
owner.onKeyDownListener = owner.onKeyDown.bind(owner);
|
103
|
+
owner.onFocusListener = owner.onFocus.bind(owner);
|
104
|
+
owner.onCutListener = owner.onCut.bind(owner);
|
105
|
+
owner.onCopyListener = owner.onCopy.bind(owner);
|
106
|
+
|
107
|
+
owner.element.addEventListener('input', owner.onChangeListener);
|
108
|
+
owner.element.addEventListener('keydown', owner.onKeyDownListener);
|
109
|
+
owner.element.addEventListener('focus', owner.onFocusListener);
|
110
|
+
owner.element.addEventListener('cut', owner.onCutListener);
|
111
|
+
owner.element.addEventListener('copy', owner.onCopyListener);
|
112
|
+
|
113
|
+
|
114
|
+
owner.initPhoneFormatter();
|
115
|
+
owner.initDateFormatter();
|
116
|
+
owner.initNumeralFormatter();
|
117
|
+
|
118
|
+
// avoid touch input field if value is null
|
119
|
+
// otherwise Firefox will add red box-shadow for <input required />
|
120
|
+
if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {
|
121
|
+
owner.onInput(pps.initValue);
|
122
|
+
}
|
123
|
+
},
|
124
|
+
|
125
|
+
initNumeralFormatter: function () {
|
126
|
+
var owner = this, pps = owner.properties;
|
127
|
+
|
128
|
+
if (!pps.numeral) {
|
129
|
+
return;
|
130
|
+
}
|
131
|
+
|
132
|
+
pps.numeralFormatter = new Cleave.NumeralFormatter(
|
133
|
+
pps.numeralDecimalMark,
|
134
|
+
pps.numeralIntegerScale,
|
135
|
+
pps.numeralDecimalScale,
|
136
|
+
pps.numeralThousandsGroupStyle,
|
137
|
+
pps.numeralPositiveOnly,
|
138
|
+
pps.stripLeadingZeroes,
|
139
|
+
pps.delimiter
|
140
|
+
);
|
141
|
+
},
|
142
|
+
|
143
|
+
initDateFormatter: function () {
|
144
|
+
var owner = this, pps = owner.properties;
|
145
|
+
|
146
|
+
if (!pps.date) {
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
|
150
|
+
pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);
|
151
|
+
pps.blocks = pps.dateFormatter.getBlocks();
|
152
|
+
pps.blocksLength = pps.blocks.length;
|
153
|
+
pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);
|
154
|
+
},
|
155
|
+
|
156
|
+
initPhoneFormatter: function () {
|
157
|
+
var owner = this, pps = owner.properties;
|
158
|
+
|
159
|
+
if (!pps.phone) {
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
|
163
|
+
// Cleave.AsYouTypeFormatter should be provided by
|
164
|
+
// external google closure lib
|
165
|
+
try {
|
166
|
+
pps.phoneFormatter = new Cleave.PhoneFormatter(
|
167
|
+
new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),
|
168
|
+
pps.delimiter
|
169
|
+
);
|
170
|
+
} catch (ex) {
|
171
|
+
throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');
|
172
|
+
}
|
173
|
+
},
|
174
|
+
|
175
|
+
onKeyDown: function (event) {
|
176
|
+
var owner = this, pps = owner.properties,
|
177
|
+
charCode = event.which || event.keyCode,
|
178
|
+
Util = Cleave.Util,
|
179
|
+
currentValue = owner.element.value;
|
180
|
+
|
181
|
+
if (Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)) {
|
182
|
+
charCode = 8;
|
183
|
+
}
|
184
|
+
|
185
|
+
owner.lastInputValue = currentValue;
|
186
|
+
|
187
|
+
// hit backspace when last character is delimiter
|
188
|
+
if (charCode === 8 && Util.isDelimiter(currentValue.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {
|
189
|
+
pps.backspace = true;
|
190
|
+
|
191
|
+
return;
|
192
|
+
}
|
193
|
+
|
194
|
+
pps.backspace = false;
|
195
|
+
},
|
196
|
+
|
197
|
+
onChange: function () {
|
198
|
+
this.onInput(this.element.value);
|
199
|
+
},
|
200
|
+
|
201
|
+
onFocus: function () {
|
202
|
+
var owner = this,
|
203
|
+
pps = owner.properties;
|
204
|
+
|
205
|
+
Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);
|
206
|
+
},
|
207
|
+
|
208
|
+
onCut: function (e) {
|
209
|
+
this.copyClipboardData(e);
|
210
|
+
this.onInput('');
|
211
|
+
},
|
212
|
+
|
213
|
+
onCopy: function (e) {
|
214
|
+
this.copyClipboardData(e);
|
215
|
+
},
|
216
|
+
|
217
|
+
copyClipboardData: function (e) {
|
218
|
+
var owner = this,
|
219
|
+
pps = owner.properties,
|
220
|
+
Util = Cleave.Util,
|
221
|
+
inputValue = owner.element.value,
|
222
|
+
textToCopy = '';
|
223
|
+
|
224
|
+
if (!pps.copyDelimiter) {
|
225
|
+
textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);
|
226
|
+
} else {
|
227
|
+
textToCopy = inputValue;
|
228
|
+
}
|
229
|
+
|
230
|
+
try {
|
231
|
+
if (e.clipboardData) {
|
232
|
+
e.clipboardData.setData('Text', textToCopy);
|
233
|
+
} else {
|
234
|
+
window.clipboardData.setData('Text', textToCopy);
|
235
|
+
}
|
236
|
+
|
237
|
+
e.preventDefault();
|
238
|
+
} catch (ex) {
|
239
|
+
// empty
|
240
|
+
}
|
241
|
+
},
|
242
|
+
|
243
|
+
onInput: function (value) {
|
244
|
+
var owner = this, pps = owner.properties,
|
245
|
+
Util = Cleave.Util;
|
246
|
+
|
247
|
+
// case 1: delete one more character "4"
|
248
|
+
// 1234*| -> hit backspace -> 123|
|
249
|
+
// case 2: last character is not delimiter which is:
|
250
|
+
// 12|34* -> hit backspace -> 1|34*
|
251
|
+
// note: no need to apply this for numeral mode
|
252
|
+
if (!pps.numeral && pps.backspace && !Util.isDelimiter(value.slice(-pps.delimiterLength), pps.delimiter, pps.delimiters)) {
|
253
|
+
value = Util.headStr(value, value.length - pps.delimiterLength);
|
254
|
+
}
|
255
|
+
|
256
|
+
// phone formatter
|
257
|
+
if (pps.phone) {
|
258
|
+
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
|
259
|
+
pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);
|
260
|
+
} else {
|
261
|
+
pps.result = pps.phoneFormatter.format(value);
|
262
|
+
}
|
263
|
+
owner.updateValueState();
|
264
|
+
|
265
|
+
return;
|
266
|
+
}
|
267
|
+
|
268
|
+
// numeral formatter
|
269
|
+
if (pps.numeral) {
|
270
|
+
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
|
271
|
+
pps.result = pps.prefix + pps.numeralFormatter.format(value);
|
272
|
+
} else {
|
273
|
+
pps.result = pps.numeralFormatter.format(value);
|
274
|
+
}
|
275
|
+
owner.updateValueState();
|
276
|
+
|
277
|
+
return;
|
278
|
+
}
|
279
|
+
|
280
|
+
// date
|
281
|
+
if (pps.date) {
|
282
|
+
value = pps.dateFormatter.getValidatedDate(value);
|
283
|
+
}
|
284
|
+
|
285
|
+
// strip delimiters
|
286
|
+
value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);
|
287
|
+
|
288
|
+
// strip prefix
|
289
|
+
value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result);
|
290
|
+
|
291
|
+
// strip non-numeric characters
|
292
|
+
value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value;
|
293
|
+
|
294
|
+
// convert case
|
295
|
+
value = pps.uppercase ? value.toUpperCase() : value;
|
296
|
+
value = pps.lowercase ? value.toLowerCase() : value;
|
297
|
+
|
298
|
+
// prefix
|
299
|
+
if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {
|
300
|
+
value = pps.prefix + value;
|
301
|
+
|
302
|
+
// no blocks specified, no need to do formatting
|
303
|
+
if (pps.blocksLength === 0) {
|
304
|
+
pps.result = value;
|
305
|
+
owner.updateValueState();
|
306
|
+
|
307
|
+
return;
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
// update credit card props
|
312
|
+
if (pps.creditCard) {
|
313
|
+
owner.updateCreditCardPropsByValue(value);
|
314
|
+
}
|
315
|
+
|
316
|
+
// strip over length characters
|
317
|
+
value = Util.headStr(value, pps.maxLength);
|
318
|
+
|
319
|
+
// apply blocks
|
320
|
+
pps.result = Util.getFormattedValue(
|
321
|
+
value,
|
322
|
+
pps.blocks, pps.blocksLength,
|
323
|
+
pps.delimiter, pps.delimiters, pps.delimiterLazyShow
|
324
|
+
);
|
325
|
+
|
326
|
+
owner.updateValueState();
|
327
|
+
},
|
328
|
+
|
329
|
+
updateCreditCardPropsByValue: function (value) {
|
330
|
+
var owner = this, pps = owner.properties,
|
331
|
+
Util = Cleave.Util,
|
332
|
+
creditCardInfo;
|
333
|
+
|
334
|
+
// At least one of the first 4 characters has changed
|
335
|
+
if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {
|
336
|
+
return;
|
337
|
+
}
|
338
|
+
|
339
|
+
creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);
|
340
|
+
|
341
|
+
pps.blocks = creditCardInfo.blocks;
|
342
|
+
pps.blocksLength = pps.blocks.length;
|
343
|
+
pps.maxLength = Util.getMaxLength(pps.blocks);
|
344
|
+
|
345
|
+
// credit card type changed
|
346
|
+
if (pps.creditCardType !== creditCardInfo.type) {
|
347
|
+
pps.creditCardType = creditCardInfo.type;
|
348
|
+
|
349
|
+
pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);
|
350
|
+
}
|
351
|
+
},
|
352
|
+
|
353
|
+
updateValueState: function () {
|
354
|
+
var owner = this,
|
355
|
+
Util = Cleave.Util,
|
356
|
+
pps = owner.properties;
|
357
|
+
|
358
|
+
if (!owner.element) {
|
359
|
+
return;
|
360
|
+
}
|
361
|
+
|
362
|
+
var endPos = owner.element.selectionEnd;
|
363
|
+
var oldValue = owner.element.value;
|
364
|
+
var newValue = pps.result;
|
365
|
+
|
366
|
+
endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);
|
367
|
+
|
368
|
+
// fix Android browser type="text" input field
|
369
|
+
// cursor not jumping issue
|
370
|
+
if (owner.isAndroid) {
|
371
|
+
window.setTimeout(function () {
|
372
|
+
owner.element.value = newValue;
|
373
|
+
Util.setSelection(owner.element, endPos, pps.document, false);
|
374
|
+
owner.callOnValueChanged();
|
375
|
+
}, 1);
|
376
|
+
|
377
|
+
return;
|
378
|
+
}
|
379
|
+
|
380
|
+
owner.element.value = newValue;
|
381
|
+
Util.setSelection(owner.element, endPos, pps.document, false);
|
382
|
+
owner.callOnValueChanged();
|
383
|
+
},
|
384
|
+
|
385
|
+
callOnValueChanged: function () {
|
386
|
+
var owner = this,
|
387
|
+
pps = owner.properties;
|
388
|
+
|
389
|
+
pps.onValueChanged.call(owner, {
|
390
|
+
target: {
|
391
|
+
value: pps.result,
|
392
|
+
rawValue: owner.getRawValue()
|
393
|
+
}
|
394
|
+
});
|
395
|
+
},
|
396
|
+
|
397
|
+
setPhoneRegionCode: function (phoneRegionCode) {
|
398
|
+
var owner = this, pps = owner.properties;
|
399
|
+
|
400
|
+
pps.phoneRegionCode = phoneRegionCode;
|
401
|
+
owner.initPhoneFormatter();
|
402
|
+
owner.onChange();
|
403
|
+
},
|
404
|
+
|
405
|
+
setRawValue: function (value) {
|
406
|
+
var owner = this, pps = owner.properties;
|
407
|
+
|
408
|
+
value = value !== undefined && value !== null ? value.toString() : '';
|
409
|
+
|
410
|
+
if (pps.numeral) {
|
411
|
+
value = value.replace('.', pps.numeralDecimalMark);
|
412
|
+
}
|
413
|
+
|
414
|
+
pps.backspace = false;
|
415
|
+
|
416
|
+
owner.element.value = value;
|
417
|
+
owner.onInput(value);
|
418
|
+
},
|
419
|
+
|
420
|
+
getRawValue: function () {
|
421
|
+
var owner = this,
|
422
|
+
pps = owner.properties,
|
423
|
+
Util = Cleave.Util,
|
424
|
+
rawValue = owner.element.value;
|
425
|
+
|
426
|
+
if (pps.rawValueTrimPrefix) {
|
427
|
+
rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result);
|
428
|
+
}
|
429
|
+
|
430
|
+
if (pps.numeral) {
|
431
|
+
rawValue = pps.numeralFormatter.getRawValue(rawValue);
|
432
|
+
} else {
|
433
|
+
rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);
|
434
|
+
}
|
435
|
+
|
436
|
+
return rawValue;
|
437
|
+
},
|
438
|
+
|
439
|
+
getISOFormatDate: function () {
|
440
|
+
var owner = this,
|
441
|
+
pps = owner.properties;
|
442
|
+
|
443
|
+
return pps.date ? pps.dateFormatter.getISOFormatDate() : '';
|
444
|
+
},
|
445
|
+
|
446
|
+
getFormattedValue: function () {
|
447
|
+
return this.element.value;
|
448
|
+
},
|
449
|
+
|
450
|
+
destroy: function () {
|
451
|
+
var owner = this;
|
452
|
+
|
453
|
+
owner.element.removeEventListener('input', owner.onChangeListener);
|
454
|
+
owner.element.removeEventListener('keydown', owner.onKeyDownListener);
|
455
|
+
owner.element.removeEventListener('focus', owner.onFocusListener);
|
456
|
+
owner.element.removeEventListener('cut', owner.onCutListener);
|
457
|
+
owner.element.removeEventListener('copy', owner.onCopyListener);
|
458
|
+
},
|
459
|
+
|
460
|
+
toString: function () {
|
461
|
+
return '[Cleave Object]';
|
462
|
+
}
|
463
|
+
};
|
464
|
+
|
465
|
+
Cleave.NumeralFormatter = __webpack_require__(1);
|
466
|
+
Cleave.DateFormatter = __webpack_require__(2);
|
467
|
+
Cleave.PhoneFormatter = __webpack_require__(3);
|
468
|
+
Cleave.CreditCardDetector = __webpack_require__(4);
|
469
|
+
Cleave.Util = __webpack_require__(5);
|
470
|
+
Cleave.DefaultProperties = __webpack_require__(6);
|
471
|
+
|
472
|
+
// for angular directive
|
473
|
+
((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;
|
474
|
+
|
475
|
+
// CommonJS
|
476
|
+
module.exports = Cleave;
|
477
|
+
|
478
|
+
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
|
479
|
+
|
480
|
+
/***/ }),
|
481
|
+
/* 1 */
|
482
|
+
/***/ (function(module, exports) {
|
483
|
+
|
484
|
+
'use strict';
|
485
|
+
|
486
|
+
var NumeralFormatter = function (numeralDecimalMark,
|
487
|
+
numeralIntegerScale,
|
488
|
+
numeralDecimalScale,
|
489
|
+
numeralThousandsGroupStyle,
|
490
|
+
numeralPositiveOnly,
|
491
|
+
stripLeadingZeroes,
|
492
|
+
delimiter) {
|
493
|
+
var owner = this;
|
494
|
+
|
495
|
+
owner.numeralDecimalMark = numeralDecimalMark || '.';
|
496
|
+
owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;
|
497
|
+
owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;
|
498
|
+
owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;
|
499
|
+
owner.numeralPositiveOnly = !!numeralPositiveOnly;
|
500
|
+
owner.stripLeadingZeroes = stripLeadingZeroes !== false;
|
501
|
+
owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';
|
502
|
+
owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : '';
|
503
|
+
};
|
504
|
+
|
505
|
+
NumeralFormatter.groupStyle = {
|
506
|
+
thousand: 'thousand',
|
507
|
+
lakh: 'lakh',
|
508
|
+
wan: 'wan',
|
509
|
+
none: 'none'
|
510
|
+
};
|
511
|
+
|
512
|
+
NumeralFormatter.prototype = {
|
513
|
+
getRawValue: function (value) {
|
514
|
+
return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');
|
515
|
+
},
|
516
|
+
|
517
|
+
format: function (value) {
|
518
|
+
var owner = this, parts, partInteger, partDecimal = '';
|
519
|
+
|
520
|
+
// strip alphabet letters
|
521
|
+
value = value.replace(/[A-Za-z]/g, '')
|
522
|
+
// replace the first decimal mark with reserved placeholder
|
523
|
+
.replace(owner.numeralDecimalMark, 'M')
|
524
|
+
|
525
|
+
// strip non numeric letters except minus and "M"
|
526
|
+
// this is to ensure prefix has been stripped
|
527
|
+
.replace(/[^\dM-]/g, '')
|
528
|
+
|
529
|
+
// replace the leading minus with reserved placeholder
|
530
|
+
.replace(/^\-/, 'N')
|
531
|
+
|
532
|
+
// strip the other minus sign (if present)
|
533
|
+
.replace(/\-/g, '')
|
534
|
+
|
535
|
+
// replace the minus sign (if present)
|
536
|
+
.replace('N', owner.numeralPositiveOnly ? '' : '-')
|
537
|
+
|
538
|
+
// replace decimal mark
|
539
|
+
.replace('M', owner.numeralDecimalMark);
|
540
|
+
|
541
|
+
// strip any leading zeros
|
542
|
+
if (owner.stripLeadingZeroes) {
|
543
|
+
value = value.replace(/^(-)?0+(?=\d)/, '$1');
|
544
|
+
}
|
545
|
+
|
546
|
+
partInteger = value;
|
547
|
+
|
548
|
+
if (value.indexOf(owner.numeralDecimalMark) >= 0) {
|
549
|
+
parts = value.split(owner.numeralDecimalMark);
|
550
|
+
partInteger = parts[0];
|
551
|
+
partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);
|
552
|
+
}
|
553
|
+
|
554
|
+
if (owner.numeralIntegerScale > 0) {
|
555
|
+
partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));
|
556
|
+
}
|
557
|
+
|
558
|
+
switch (owner.numeralThousandsGroupStyle) {
|
559
|
+
case NumeralFormatter.groupStyle.lakh:
|
560
|
+
partInteger = partInteger.replace(/(\d)(?=(\d\d)+\d$)/g, '$1' + owner.delimiter);
|
561
|
+
|
562
|
+
break;
|
563
|
+
|
564
|
+
case NumeralFormatter.groupStyle.wan:
|
565
|
+
partInteger = partInteger.replace(/(\d)(?=(\d{4})+$)/g, '$1' + owner.delimiter);
|
566
|
+
|
567
|
+
break;
|
568
|
+
|
569
|
+
case NumeralFormatter.groupStyle.thousand:
|
570
|
+
partInteger = partInteger.replace(/(\d)(?=(\d{3})+$)/g, '$1' + owner.delimiter);
|
571
|
+
|
572
|
+
break;
|
573
|
+
}
|
574
|
+
|
575
|
+
return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');
|
576
|
+
}
|
577
|
+
};
|
578
|
+
|
579
|
+
module.exports = NumeralFormatter;
|
580
|
+
|
581
|
+
|
582
|
+
/***/ }),
|
583
|
+
/* 2 */
|
584
|
+
/***/ (function(module, exports) {
|
585
|
+
|
586
|
+
'use strict';
|
587
|
+
|
588
|
+
var DateFormatter = function (datePattern) {
|
589
|
+
var owner = this;
|
590
|
+
|
591
|
+
owner.date = [];
|
592
|
+
owner.blocks = [];
|
593
|
+
owner.datePattern = datePattern;
|
594
|
+
owner.initBlocks();
|
595
|
+
};
|
596
|
+
|
597
|
+
DateFormatter.prototype = {
|
598
|
+
initBlocks: function () {
|
599
|
+
var owner = this;
|
600
|
+
owner.datePattern.forEach(function (value) {
|
601
|
+
if (value === 'Y') {
|
602
|
+
owner.blocks.push(4);
|
603
|
+
} else {
|
604
|
+
owner.blocks.push(2);
|
605
|
+
}
|
606
|
+
});
|
607
|
+
},
|
608
|
+
|
609
|
+
getISOFormatDate: function () {
|
610
|
+
var owner = this,
|
611
|
+
date = owner.date;
|
612
|
+
|
613
|
+
return date[2] ? (
|
614
|
+
date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])
|
615
|
+
) : '';
|
616
|
+
},
|
617
|
+
|
618
|
+
getBlocks: function () {
|
619
|
+
return this.blocks;
|
620
|
+
},
|
621
|
+
|
622
|
+
getValidatedDate: function (value) {
|
623
|
+
var owner = this, result = '';
|
624
|
+
|
625
|
+
value = value.replace(/[^\d]/g, '');
|
626
|
+
|
627
|
+
owner.blocks.forEach(function (length, index) {
|
628
|
+
if (value.length > 0) {
|
629
|
+
var sub = value.slice(0, length),
|
630
|
+
sub0 = sub.slice(0, 1),
|
631
|
+
rest = value.slice(length);
|
632
|
+
|
633
|
+
switch (owner.datePattern[index]) {
|
634
|
+
case 'd':
|
635
|
+
if (sub === '00') {
|
636
|
+
sub = '01';
|
637
|
+
} else if (parseInt(sub0, 10) > 3) {
|
638
|
+
sub = '0' + sub0;
|
639
|
+
} else if (parseInt(sub, 10) > 31) {
|
640
|
+
sub = '31';
|
641
|
+
}
|
642
|
+
|
643
|
+
break;
|
644
|
+
|
645
|
+
case 'm':
|
646
|
+
if (sub === '00') {
|
647
|
+
sub = '01';
|
648
|
+
} else if (parseInt(sub0, 10) > 1) {
|
649
|
+
sub = '0' + sub0;
|
650
|
+
} else if (parseInt(sub, 10) > 12) {
|
651
|
+
sub = '12';
|
652
|
+
}
|
653
|
+
|
654
|
+
break;
|
655
|
+
}
|
656
|
+
|
657
|
+
result += sub;
|
658
|
+
|
659
|
+
// update remaining string
|
660
|
+
value = rest;
|
661
|
+
}
|
662
|
+
});
|
663
|
+
|
664
|
+
return this.getFixedDateString(result);
|
665
|
+
},
|
666
|
+
|
667
|
+
getFixedDateString: function (value) {
|
668
|
+
var owner = this, datePattern = owner.datePattern, date = [],
|
669
|
+
dayIndex = 0, monthIndex = 0, yearIndex = 0,
|
670
|
+
dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,
|
671
|
+
day, month, year, fullYearDone = false;
|
672
|
+
|
673
|
+
// mm-dd || dd-mm
|
674
|
+
if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {
|
675
|
+
dayStartIndex = datePattern[0] === 'd' ? 0 : 2;
|
676
|
+
monthStartIndex = 2 - dayStartIndex;
|
677
|
+
day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);
|
678
|
+
month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);
|
679
|
+
|
680
|
+
date = this.getFixedDate(day, month, 0);
|
681
|
+
}
|
682
|
+
|
683
|
+
// yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd
|
684
|
+
if (value.length === 8) {
|
685
|
+
datePattern.forEach(function (type, index) {
|
686
|
+
switch (type) {
|
687
|
+
case 'd':
|
688
|
+
dayIndex = index;
|
689
|
+
break;
|
690
|
+
case 'm':
|
691
|
+
monthIndex = index;
|
692
|
+
break;
|
693
|
+
default:
|
694
|
+
yearIndex = index;
|
695
|
+
break;
|
696
|
+
}
|
697
|
+
});
|
698
|
+
|
699
|
+
yearStartIndex = yearIndex * 2;
|
700
|
+
dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);
|
701
|
+
monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);
|
702
|
+
|
703
|
+
day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);
|
704
|
+
month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);
|
705
|
+
year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);
|
706
|
+
|
707
|
+
fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;
|
708
|
+
|
709
|
+
date = this.getFixedDate(day, month, year);
|
710
|
+
}
|
711
|
+
|
712
|
+
owner.date = date;
|
713
|
+
|
714
|
+
return date.length === 0 ? value : datePattern.reduce(function (previous, current) {
|
715
|
+
switch (current) {
|
716
|
+
case 'd':
|
717
|
+
return previous + owner.addLeadingZero(date[0]);
|
718
|
+
case 'm':
|
719
|
+
return previous + owner.addLeadingZero(date[1]);
|
720
|
+
default:
|
721
|
+
return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : '');
|
722
|
+
}
|
723
|
+
}, '');
|
724
|
+
},
|
725
|
+
|
726
|
+
getFixedDate: function (day, month, year) {
|
727
|
+
day = Math.min(day, 31);
|
728
|
+
month = Math.min(month, 12);
|
729
|
+
year = parseInt((year || 0), 10);
|
730
|
+
|
731
|
+
if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {
|
732
|
+
day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);
|
733
|
+
}
|
734
|
+
|
735
|
+
return [day, month, year];
|
736
|
+
},
|
737
|
+
|
738
|
+
isLeapYear: function (year) {
|
739
|
+
return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);
|
740
|
+
},
|
741
|
+
|
742
|
+
addLeadingZero: function (number) {
|
743
|
+
return (number < 10 ? '0' : '') + number;
|
744
|
+
},
|
745
|
+
|
746
|
+
addLeadingZeroForYear: function (number) {
|
747
|
+
return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;
|
748
|
+
}
|
749
|
+
};
|
750
|
+
|
751
|
+
module.exports = DateFormatter;
|
752
|
+
|
753
|
+
|
754
|
+
|
755
|
+
/***/ }),
|
756
|
+
/* 3 */
|
757
|
+
/***/ (function(module, exports) {
|
758
|
+
|
759
|
+
'use strict';
|
760
|
+
|
761
|
+
var PhoneFormatter = function (formatter, delimiter) {
|
762
|
+
var owner = this;
|
763
|
+
|
764
|
+
owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';
|
765
|
+
owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : '';
|
766
|
+
|
767
|
+
owner.formatter = formatter;
|
768
|
+
};
|
769
|
+
|
770
|
+
PhoneFormatter.prototype = {
|
771
|
+
setFormatter: function (formatter) {
|
772
|
+
this.formatter = formatter;
|
773
|
+
},
|
774
|
+
|
775
|
+
format: function (phoneNumber) {
|
776
|
+
var owner = this;
|
777
|
+
|
778
|
+
owner.formatter.clear();
|
779
|
+
|
780
|
+
// only keep number and +
|
781
|
+
phoneNumber = phoneNumber.replace(/[^\d+]/g, '');
|
782
|
+
|
783
|
+
// strip delimiter
|
784
|
+
phoneNumber = phoneNumber.replace(owner.delimiterRE, '');
|
785
|
+
|
786
|
+
var result = '', current, validated = false;
|
787
|
+
|
788
|
+
for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {
|
789
|
+
current = owner.formatter.inputDigit(phoneNumber.charAt(i));
|
790
|
+
|
791
|
+
// has ()- or space inside
|
792
|
+
if (/[\s()-]/g.test(current)) {
|
793
|
+
result = current;
|
794
|
+
|
795
|
+
validated = true;
|
796
|
+
} else {
|
797
|
+
if (!validated) {
|
798
|
+
result = current;
|
799
|
+
}
|
800
|
+
// else: over length input
|
801
|
+
// it turns to invalid number again
|
802
|
+
}
|
803
|
+
}
|
804
|
+
|
805
|
+
// strip ()
|
806
|
+
// e.g. US: 7161234567 returns (716) 123-4567
|
807
|
+
result = result.replace(/[()]/g, '');
|
808
|
+
// replace library delimiter with user customized delimiter
|
809
|
+
result = result.replace(/[\s-]/g, owner.delimiter);
|
810
|
+
|
811
|
+
return result;
|
812
|
+
}
|
813
|
+
};
|
814
|
+
|
815
|
+
module.exports = PhoneFormatter;
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
/***/ }),
|
820
|
+
/* 4 */
|
821
|
+
/***/ (function(module, exports) {
|
822
|
+
|
823
|
+
'use strict';
|
824
|
+
|
825
|
+
var CreditCardDetector = {
|
826
|
+
blocks: {
|
827
|
+
uatp: [4, 5, 6],
|
828
|
+
amex: [4, 6, 5],
|
829
|
+
diners: [4, 6, 4],
|
830
|
+
discover: [4, 4, 4, 4],
|
831
|
+
mastercard: [4, 4, 4, 4],
|
832
|
+
dankort: [4, 4, 4, 4],
|
833
|
+
instapayment: [4, 4, 4, 4],
|
834
|
+
jcb15: [4, 6, 5],
|
835
|
+
jcb: [4, 4, 4, 4],
|
836
|
+
maestro: [4, 4, 4, 4],
|
837
|
+
visa: [4, 4, 4, 4],
|
838
|
+
mir: [4, 4, 4, 4],
|
839
|
+
unionPay: [4, 4, 4, 4],
|
840
|
+
general: [4, 4, 4, 4],
|
841
|
+
generalStrict: [4, 4, 4, 7]
|
842
|
+
},
|
843
|
+
|
844
|
+
re: {
|
845
|
+
// starts with 1; 15 digits, not starts with 1800 (jcb card)
|
846
|
+
uatp: /^(?!1800)1\d{0,14}/,
|
847
|
+
|
848
|
+
// starts with 34/37; 15 digits
|
849
|
+
amex: /^3[47]\d{0,13}/,
|
850
|
+
|
851
|
+
// starts with 6011/65/644-649; 16 digits
|
852
|
+
discover: /^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,
|
853
|
+
|
854
|
+
// starts with 300-305/309 or 36/38/39; 14 digits
|
855
|
+
diners: /^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,
|
856
|
+
|
857
|
+
// starts with 51-55/2221–2720; 16 digits
|
858
|
+
mastercard: /^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,
|
859
|
+
|
860
|
+
// starts with 5019/4175/4571; 16 digits
|
861
|
+
dankort: /^(5019|4175|4571)\d{0,12}/,
|
862
|
+
|
863
|
+
// starts with 637-639; 16 digits
|
864
|
+
instapayment: /^63[7-9]\d{0,13}/,
|
865
|
+
|
866
|
+
// starts with 2131/1800; 15 digits
|
867
|
+
jcb15: /^(?:2131|1800)\d{0,11}/,
|
868
|
+
|
869
|
+
// starts with 2131/1800/35; 16 digits
|
870
|
+
jcb: /^(?:35\d{0,2})\d{0,12}/,
|
871
|
+
|
872
|
+
// starts with 50/56-58/6304/67; 16 digits
|
873
|
+
maestro: /^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,
|
874
|
+
|
875
|
+
// starts with 22; 16 digits
|
876
|
+
mir: /^220[0-4]\d{0,12}/,
|
877
|
+
|
878
|
+
// starts with 4; 16 digits
|
879
|
+
visa: /^4\d{0,15}/,
|
880
|
+
|
881
|
+
// starts with 62; 16 digits
|
882
|
+
unionPay: /^62\d{0,14}/
|
883
|
+
},
|
884
|
+
|
885
|
+
getInfo: function (value, strictMode) {
|
886
|
+
var blocks = CreditCardDetector.blocks,
|
887
|
+
re = CreditCardDetector.re;
|
888
|
+
|
889
|
+
// Some credit card can have up to 19 digits number.
|
890
|
+
// Set strictMode to true will remove the 16 max-length restrain,
|
891
|
+
// however, I never found any website validate card number like
|
892
|
+
// this, hence probably you don't want to enable this option.
|
893
|
+
strictMode = !!strictMode;
|
894
|
+
|
895
|
+
for (var key in re) {
|
896
|
+
if (re[key].test(value)) {
|
897
|
+
var block;
|
898
|
+
|
899
|
+
if (strictMode) {
|
900
|
+
block = blocks.generalStrict;
|
901
|
+
} else {
|
902
|
+
block = blocks[key];
|
903
|
+
}
|
904
|
+
|
905
|
+
return {
|
906
|
+
type: key,
|
907
|
+
blocks: block
|
908
|
+
};
|
909
|
+
}
|
910
|
+
}
|
911
|
+
|
912
|
+
return {
|
913
|
+
type: 'unknown',
|
914
|
+
blocks: strictMode ? blocks.generalStrict : blocks.general
|
915
|
+
};
|
916
|
+
}
|
917
|
+
};
|
918
|
+
|
919
|
+
module.exports = CreditCardDetector;
|
920
|
+
|
921
|
+
|
922
|
+
/***/ }),
|
923
|
+
/* 5 */
|
924
|
+
/***/ (function(module, exports) {
|
925
|
+
|
926
|
+
'use strict';
|
927
|
+
|
928
|
+
var Util = {
|
929
|
+
noop: function () {
|
930
|
+
},
|
931
|
+
|
932
|
+
strip: function (value, re) {
|
933
|
+
return value.replace(re, '');
|
934
|
+
},
|
935
|
+
|
936
|
+
isDelimiter: function (letter, delimiter, delimiters) {
|
937
|
+
// single delimiter
|
938
|
+
if (delimiters.length === 0) {
|
939
|
+
return letter === delimiter;
|
940
|
+
}
|
941
|
+
|
942
|
+
// multiple delimiters
|
943
|
+
return delimiters.some(function (current) {
|
944
|
+
if (letter === current) {
|
945
|
+
return true;
|
946
|
+
}
|
947
|
+
});
|
948
|
+
},
|
949
|
+
|
950
|
+
getDelimiterREByDelimiter: function (delimiter) {
|
951
|
+
return new RegExp(delimiter.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'), 'g');
|
952
|
+
},
|
953
|
+
|
954
|
+
getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {
|
955
|
+
// If cursor was at the end of value, just place it back.
|
956
|
+
// Because new value could contain additional chars.
|
957
|
+
if (oldValue.length === prevPos) {
|
958
|
+
return newValue.length;
|
959
|
+
}
|
960
|
+
|
961
|
+
return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter ,delimiters);
|
962
|
+
},
|
963
|
+
|
964
|
+
getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {
|
965
|
+
var oldRawValue, newRawValue, lengthOffset;
|
966
|
+
|
967
|
+
oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);
|
968
|
+
newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);
|
969
|
+
lengthOffset = oldRawValue.length - newRawValue.length;
|
970
|
+
|
971
|
+
return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;
|
972
|
+
},
|
973
|
+
|
974
|
+
stripDelimiters: function (value, delimiter, delimiters) {
|
975
|
+
var owner = this;
|
976
|
+
|
977
|
+
// single delimiter
|
978
|
+
if (delimiters.length === 0) {
|
979
|
+
var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';
|
980
|
+
|
981
|
+
return value.replace(delimiterRE, '');
|
982
|
+
}
|
983
|
+
|
984
|
+
// multiple delimiters
|
985
|
+
delimiters.forEach(function (current) {
|
986
|
+
value = value.replace(owner.getDelimiterREByDelimiter(current), '');
|
987
|
+
});
|
988
|
+
|
989
|
+
return value;
|
990
|
+
},
|
991
|
+
|
992
|
+
headStr: function (str, length) {
|
993
|
+
return str.slice(0, length);
|
994
|
+
},
|
995
|
+
|
996
|
+
getMaxLength: function (blocks) {
|
997
|
+
return blocks.reduce(function (previous, current) {
|
998
|
+
return previous + current;
|
999
|
+
}, 0);
|
1000
|
+
},
|
1001
|
+
|
1002
|
+
// strip value by prefix length
|
1003
|
+
// for prefix: PRE
|
1004
|
+
// (PRE123, 3) -> 123
|
1005
|
+
// (PR123, 3) -> 23 this happens when user hits backspace in front of "PRE"
|
1006
|
+
getPrefixStrippedValue: function (value, prefix, prefixLength, prevValue) {
|
1007
|
+
if (value.slice(0, prefixLength) !== prefix) {
|
1008
|
+
|
1009
|
+
// Check whether if it is a deletion
|
1010
|
+
if (value.length < prevValue.length) {
|
1011
|
+
value = value.length > prefixLength ? prevValue : prefix;
|
1012
|
+
} else {
|
1013
|
+
var diffIndex = this.getFirstDiffIndex(prefix, value.slice(0, prefixLength));
|
1014
|
+
value = prefix + value.slice(diffIndex, diffIndex + 1) + value.slice(prefixLength + 1);
|
1015
|
+
}
|
1016
|
+
}
|
1017
|
+
|
1018
|
+
return value.slice(prefixLength);
|
1019
|
+
},
|
1020
|
+
|
1021
|
+
getFirstDiffIndex: function (prev, current) {
|
1022
|
+
var index = 0;
|
1023
|
+
|
1024
|
+
while (prev.charAt(index) === current.charAt(index)) {
|
1025
|
+
if (prev.charAt(index++) === '') {
|
1026
|
+
return -1;
|
1027
|
+
}
|
1028
|
+
}
|
1029
|
+
|
1030
|
+
return index;
|
1031
|
+
},
|
1032
|
+
|
1033
|
+
getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {
|
1034
|
+
var result = '',
|
1035
|
+
multipleDelimiters = delimiters.length > 0,
|
1036
|
+
currentDelimiter;
|
1037
|
+
|
1038
|
+
// no options, normal input
|
1039
|
+
if (blocksLength === 0) {
|
1040
|
+
return value;
|
1041
|
+
}
|
1042
|
+
|
1043
|
+
blocks.forEach(function (length, index) {
|
1044
|
+
if (value.length > 0) {
|
1045
|
+
var sub = value.slice(0, length),
|
1046
|
+
rest = value.slice(length);
|
1047
|
+
|
1048
|
+
if (multipleDelimiters) {
|
1049
|
+
currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;
|
1050
|
+
} else {
|
1051
|
+
currentDelimiter = delimiter;
|
1052
|
+
}
|
1053
|
+
|
1054
|
+
if (delimiterLazyShow) {
|
1055
|
+
if (index > 0) {
|
1056
|
+
result += currentDelimiter;
|
1057
|
+
}
|
1058
|
+
|
1059
|
+
result += sub;
|
1060
|
+
} else {
|
1061
|
+
result += sub;
|
1062
|
+
|
1063
|
+
if (sub.length === length && index < blocksLength - 1) {
|
1064
|
+
result += currentDelimiter;
|
1065
|
+
}
|
1066
|
+
}
|
1067
|
+
|
1068
|
+
// update remaining string
|
1069
|
+
value = rest;
|
1070
|
+
}
|
1071
|
+
});
|
1072
|
+
|
1073
|
+
return result;
|
1074
|
+
},
|
1075
|
+
|
1076
|
+
// move cursor to the end
|
1077
|
+
// the first time user focuses on an input with prefix
|
1078
|
+
fixPrefixCursor: function (el, prefix, delimiter, delimiters) {
|
1079
|
+
if (!el) {
|
1080
|
+
return;
|
1081
|
+
}
|
1082
|
+
|
1083
|
+
var val = el.value,
|
1084
|
+
appendix = delimiter || (delimiters[0] || ' ');
|
1085
|
+
|
1086
|
+
if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) {
|
1087
|
+
return;
|
1088
|
+
}
|
1089
|
+
|
1090
|
+
var len = val.length * 2;
|
1091
|
+
|
1092
|
+
// set timeout to avoid blink
|
1093
|
+
setTimeout(function () {
|
1094
|
+
el.setSelectionRange(len, len);
|
1095
|
+
}, 1);
|
1096
|
+
},
|
1097
|
+
|
1098
|
+
setSelection: function (element, position, doc) {
|
1099
|
+
if (element !== doc.activeElement) {
|
1100
|
+
return;
|
1101
|
+
}
|
1102
|
+
|
1103
|
+
// cursor is already in the end
|
1104
|
+
if (element && element.value.length <= position) {
|
1105
|
+
return;
|
1106
|
+
}
|
1107
|
+
|
1108
|
+
if (element.createTextRange) {
|
1109
|
+
var range = element.createTextRange();
|
1110
|
+
|
1111
|
+
range.move('character', position);
|
1112
|
+
range.select();
|
1113
|
+
} else {
|
1114
|
+
try {
|
1115
|
+
element.setSelectionRange(position, position);
|
1116
|
+
} catch (e) {
|
1117
|
+
// eslint-disable-next-line
|
1118
|
+
console.warn('The input element type does not support selection');
|
1119
|
+
}
|
1120
|
+
}
|
1121
|
+
},
|
1122
|
+
|
1123
|
+
isAndroid: function () {
|
1124
|
+
return navigator && /android/i.test(navigator.userAgent);
|
1125
|
+
},
|
1126
|
+
|
1127
|
+
// On Android chrome, the keyup and keydown events
|
1128
|
+
// always return key code 229 as a composition that
|
1129
|
+
// buffers the user’s keystrokes
|
1130
|
+
// see https://github.com/nosir/cleave.js/issues/147
|
1131
|
+
isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {
|
1132
|
+
if (!this.isAndroid() || !lastInputValue || !currentInputValue) {
|
1133
|
+
return false;
|
1134
|
+
}
|
1135
|
+
|
1136
|
+
return currentInputValue === lastInputValue.slice(0, -1);
|
1137
|
+
}
|
1138
|
+
};
|
1139
|
+
|
1140
|
+
module.exports = Util;
|
1141
|
+
|
1142
|
+
|
1143
|
+
/***/ }),
|
1144
|
+
/* 6 */
|
1145
|
+
/***/ (function(module, exports) {
|
1146
|
+
|
1147
|
+
/* WEBPACK VAR INJECTION */(function(global) {'use strict';
|
1148
|
+
|
1149
|
+
/**
|
1150
|
+
* Props Assignment
|
1151
|
+
*
|
1152
|
+
* Separate this, so react module can share the usage
|
1153
|
+
*/
|
1154
|
+
var DefaultProperties = {
|
1155
|
+
// Maybe change to object-assign
|
1156
|
+
// for now just keep it as simple
|
1157
|
+
assign: function (target, opts) {
|
1158
|
+
target = target || {};
|
1159
|
+
opts = opts || {};
|
1160
|
+
|
1161
|
+
// credit card
|
1162
|
+
target.creditCard = !!opts.creditCard;
|
1163
|
+
target.creditCardStrictMode = !!opts.creditCardStrictMode;
|
1164
|
+
target.creditCardType = '';
|
1165
|
+
target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () {});
|
1166
|
+
|
1167
|
+
// phone
|
1168
|
+
target.phone = !!opts.phone;
|
1169
|
+
target.phoneRegionCode = opts.phoneRegionCode || 'AU';
|
1170
|
+
target.phoneFormatter = {};
|
1171
|
+
|
1172
|
+
// date
|
1173
|
+
target.date = !!opts.date;
|
1174
|
+
target.datePattern = opts.datePattern || ['d', 'm', 'Y'];
|
1175
|
+
target.dateFormatter = {};
|
1176
|
+
|
1177
|
+
// numeral
|
1178
|
+
target.numeral = !!opts.numeral;
|
1179
|
+
target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;
|
1180
|
+
target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;
|
1181
|
+
target.numeralDecimalMark = opts.numeralDecimalMark || '.';
|
1182
|
+
target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';
|
1183
|
+
target.numeralPositiveOnly = !!opts.numeralPositiveOnly;
|
1184
|
+
target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;
|
1185
|
+
|
1186
|
+
// others
|
1187
|
+
target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;
|
1188
|
+
|
1189
|
+
target.uppercase = !!opts.uppercase;
|
1190
|
+
target.lowercase = !!opts.lowercase;
|
1191
|
+
|
1192
|
+
target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');
|
1193
|
+
target.noImmediatePrefix = !!opts.noImmediatePrefix;
|
1194
|
+
target.prefixLength = target.prefix.length;
|
1195
|
+
target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;
|
1196
|
+
target.copyDelimiter = !!opts.copyDelimiter;
|
1197
|
+
|
1198
|
+
target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';
|
1199
|
+
|
1200
|
+
target.delimiter =
|
1201
|
+
(opts.delimiter || opts.delimiter === '') ? opts.delimiter :
|
1202
|
+
(opts.date ? '/' :
|
1203
|
+
(opts.numeral ? ',' :
|
1204
|
+
(opts.phone ? ' ' :
|
1205
|
+
' ')));
|
1206
|
+
target.delimiterLength = target.delimiter.length;
|
1207
|
+
target.delimiterLazyShow = !!opts.delimiterLazyShow;
|
1208
|
+
target.delimiters = opts.delimiters || [];
|
1209
|
+
|
1210
|
+
target.blocks = opts.blocks || [];
|
1211
|
+
target.blocksLength = target.blocks.length;
|
1212
|
+
|
1213
|
+
target.document = opts.document || document;
|
1214
|
+
target.root = (typeof global === 'object' && global) ? global : window;
|
1215
|
+
|
1216
|
+
target.maxLength = 0;
|
1217
|
+
|
1218
|
+
target.backspace = false;
|
1219
|
+
target.result = '';
|
1220
|
+
|
1221
|
+
target.onValueChanged = opts.onValueChanged || (function () {});
|
1222
|
+
|
1223
|
+
return target;
|
1224
|
+
}
|
1225
|
+
};
|
1226
|
+
|
1227
|
+
module.exports = DefaultProperties;
|
1228
|
+
|
1229
|
+
|
1230
|
+
/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
|
1231
|
+
|
1232
|
+
/***/ })
|
1233
|
+
/******/ ])
|
1234
|
+
});
|
1235
|
+
;
|