@evervault/evervault-react-native 0.5.3 → 1.0.0
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.
- package/dist/commonjs/components/Card/Card.js.map +1 -1
- package/dist/commonjs/components/Card/CardCVC.js +6 -19
- package/dist/commonjs/components/Card/CardCVC.js.map +1 -1
- package/dist/commonjs/components/Card/CardExpiry.js +8 -20
- package/dist/commonjs/components/Card/CardExpiry.js.map +1 -1
- package/dist/commonjs/components/Card/CardHolder.js +5 -20
- package/dist/commonjs/components/Card/CardHolder.js.map +1 -1
- package/dist/commonjs/components/Card/CardNumber.js +5 -20
- package/dist/commonjs/components/Card/CardNumber.js.map +1 -1
- package/dist/commonjs/components/Card/context.js +7 -1
- package/dist/commonjs/components/Card/context.js.map +1 -1
- package/dist/module/components/Card/Card.js.map +1 -1
- package/dist/module/components/Card/CardCVC.js +7 -20
- package/dist/module/components/Card/CardCVC.js.map +1 -1
- package/dist/module/components/Card/CardExpiry.js +9 -21
- package/dist/module/components/Card/CardExpiry.js.map +1 -1
- package/dist/module/components/Card/CardHolder.js +6 -21
- package/dist/module/components/Card/CardHolder.js.map +1 -1
- package/dist/module/components/Card/CardNumber.js +6 -21
- package/dist/module/components/Card/CardNumber.js.map +1 -1
- package/dist/module/components/Card/context.js +5 -0
- package/dist/module/components/Card/context.js.map +1 -1
- package/dist/typescript/src/components/Card/Card.d.ts +4 -8
- package/dist/typescript/src/components/Card/Card.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/CardCVC.d.ts +1 -1
- package/dist/typescript/src/components/Card/CardCVC.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/CardExpiry.d.ts +1 -1
- package/dist/typescript/src/components/Card/CardExpiry.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/CardHolder.d.ts +1 -2
- package/dist/typescript/src/components/Card/CardHolder.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/CardNumber.d.ts +1 -2
- package/dist/typescript/src/components/Card/CardNumber.d.ts.map +1 -1
- package/dist/typescript/src/components/Card/context.d.ts +1 -0
- package/dist/typescript/src/components/Card/context.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Card/Card.tsx +12 -14
- package/src/components/Card/CardCVC.tsx +6 -18
- package/src/components/Card/CardExpiry.tsx +7 -18
- package/src/components/Card/CardHolder.tsx +5 -22
- package/src/components/Card/CardNumber.tsx +7 -22
- package/src/components/Card/context.tsx +9 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_useForm","_utilities","_CardNumber","_context","_sdk","_CardCVC","_CardHolder","_CardExpiry","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","useState","Set","form","useForm","initialValues","cvc","expiry","number","name","validate","values","undefined","length","cardValidation","validateNumber","isValid","isAcceptedBrand","acceptedBrands","expiryValidation","validateExpiry","cvcValidation","validateCVC","formState","triggerChange","cardData","changePayload","encrypt","Array","from","createElement","CardContext","Provider","value","register","View","CardNamespace","exports","assign","Number","CardNumber","CVC","CardCVC","Holder","CardHolder","Expiry","CardExpiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,KAAA,GAAAF,MAAA;AAE/B,IAAAG,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,IAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;
|
|
1
|
+
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_useForm","_utilities","_CardNumber","_context","_sdk","_CardCVC","_CardHolder","_CardExpiry","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","useState","Set","form","useForm","initialValues","cvc","expiry","number","name","validate","values","undefined","length","cardValidation","validateNumber","isValid","isAcceptedBrand","acceptedBrands","expiryValidation","validateExpiry","cvcValidation","validateCVC","formState","triggerChange","cardData","changePayload","encrypt","Array","from","createElement","CardContext","Provider","value","register","View","CardNamespace","exports","assign","Number","CardNumber","CVC","CardCVC","Holder","CardHolder","Expiry","CardExpiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAA+B,IAAAG,KAAA,GAAAF,MAAA;AAE/B,IAAAG,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,IAAA,GAAAR,OAAA;AACA,IAAAS,QAAA,GAAAT,OAAA;AACA,IAAAU,WAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,YAAA,GAAAZ,OAAA;AAA0E,SAAAa,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAZ,wBAAAY,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAqB1E,SAASW,IAAIA,CAAC;EAAEC,YAAY;EAAEC,MAAM;EAAEC,QAAQ;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAE;EAC5E,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAC,eAAQ,EACtD,IAAIC,GAAG,CAAC,CACV,CAAC;EAED,MAAMC,IAAI,GAAG,IAAAC,gBAAO,EAAW;IAC7BC,aAAa,EAAEX,YAAY,IAAI;MAC7BY,GAAG,EAAE,EAAE;MACPC,MAAM,EAAE,EAAE;MACVC,MAAM,EAAE,EAAE;MACVC,IAAI,EAAE;IACR,CAAC;IACDC,QAAQ,EAAE;MACRD,IAAI,EAAGE,MAAM,IAAK;QAChB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,MAAM,CAAC,EAAE;UACjC,OAAOgC,SAAS;QAClB;QAEA,IAAID,MAAM,CAACF,IAAI,CAACI,MAAM,KAAK,CAAC,EAAE;UAC5B,OAAO,SAAS;QAClB;QAEA,OAAOD,SAAS;MAClB,CAAC;MACDJ,MAAM,EAAGG,MAAM,IAAK;QAClB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,QAAQ,CAAC,EAAE;UACnC,OAAOgC,SAAS;QAClB;QACA,MAAME,cAAc,GAAG,IAAAC,6BAAc,EAACJ,MAAM,CAACH,MAAM,CAAC;QACpD,IAAI,CAACM,cAAc,CAACE,OAAO,EAAE;UAC3B,OAAO,SAAS;QAClB;QAEA,IAAI,CAAC,IAAAC,0BAAe,EAACtB,MAAM,EAAEuB,cAAc,EAAEJ,cAAc,CAAC,EAAE;UAC5D,OAAO,kBAAkB;QAC3B;QAEA,OAAOF,SAAS;MAClB,CAAC;MACDL,MAAM,EAAGI,MAAM,IAAK;QAClB,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,QAAQ,CAAC,EAAE;UACnC,OAAOgC,SAAS;QAClB;QACA,MAAMO,gBAAgB,GAAG,IAAAC,6BAAc,EAACT,MAAM,CAACJ,MAAM,CAAC;QACtD,IAAI,CAACY,gBAAgB,CAACH,OAAO,EAAE;UAC7B,OAAO,SAAS;QAClB;QAEA,OAAOJ,SAAS;MAClB,CAAC;MACDN,GAAG,EAAGK,MAAM,IAAK;QACf,IAAI,CAACZ,gBAAgB,CAACnB,GAAG,CAAC,KAAK,CAAC,EAAE;UAChC,OAAOgC,SAAS;QAClB;QACA,MAAMS,aAAa,GAAG,IAAAC,0BAAW,EAACX,MAAM,CAACL,GAAG,EAAEK,MAAM,CAACH,MAAM,CAAC;QAC5D,IAAI,CAACa,aAAa,CAACL,OAAO,EAAE;UAC1B,OAAO,SAAS;QAClB;QAEA,OAAOJ,SAAS;MAClB;IACF,CAAC;IACDf,QAAQ,EAAG0B,SAAS,IAAK;MACvB,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;QAChC,MAAMC,QAAQ,GAAG,MAAM,IAAAC,wBAAa,EAClCC,YAAO,EACPJ,SAAS,EACTK,KAAK,CAACC,IAAI,CAAC9B,gBAAgB,CAC7B,CAAC;QACD,IAAIF,QAAQ,EAAE;UACZA,QAAQ,CAAC4B,QAAQ,CAAC;QACpB;MACF,CAAC;MAEDD,aAAa,CAAC,CAAC;IACjB;EACF,CAAC,CAAC;EAEF,oBACE7D,KAAA,CAAAmE,aAAA,CAAC/D,QAAA,CAAAgE,WAAW,CAACC,QAAQ;IACnBC,KAAK,EAAE;MACLtB,MAAM,EAAER,IAAI,CAACQ,MAAM;MACnBuB,QAAQ,EAAE/B,IAAI,CAAC+B,QAAQ;MACvBlC;IACF;EAAE,gBAEFrC,KAAA,CAAAmE,aAAA,CAAC1D,YAAA,CAAA+D,IAAI;IAACrC,KAAK,EAAEA;EAAM,GAAEF,QAAe,CAChB,CAAC;AAE3B;AAEA,MAAMwC,aAAa,GAAAC,OAAA,CAAA5C,IAAA,GAAGR,MAAM,CAACqD,MAAM,CAAC7C,IAAI,EAAE;EACxC8C,MAAM,EAAEC,sBAAU;EAClBC,GAAG,EAAEC,gBAAO;EACZC,MAAM,EAAEC,sBAAU;EAClBC,MAAM,EAAEC;AACV,CAAC,CAAC","ignoreList":[]}
|
|
@@ -11,12 +11,8 @@ var _reactNativeMaskedText = require("react-native-masked-text");
|
|
|
11
11
|
var _context = require("./context");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
disabled,
|
|
17
|
-
placeholder,
|
|
18
|
-
readOnly
|
|
19
|
-
}) => {
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
+
const CardCVC = props => {
|
|
20
16
|
const context = (0, _context.useCardContext)();
|
|
21
17
|
const mask = (0, _react.useMemo)(() => {
|
|
22
18
|
if (!context.values.number) {
|
|
@@ -34,30 +30,21 @@ const CardCVC = ({
|
|
|
34
30
|
} = context.register('cvc');
|
|
35
31
|
(0, _react.useEffect)(() => {
|
|
36
32
|
context.setRegisteredFields(prev => new Set(prev).add('cvc'));
|
|
37
|
-
return () => context.setRegisteredFields(prev =>
|
|
38
|
-
const next = new Set(prev);
|
|
39
|
-
next.delete('cvc');
|
|
40
|
-
return next;
|
|
41
|
-
});
|
|
33
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, 'cvc'));
|
|
42
34
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
43
35
|
}, []);
|
|
44
|
-
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, {
|
|
36
|
+
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
45
37
|
type: "custom",
|
|
46
38
|
options: {
|
|
47
39
|
mask
|
|
48
40
|
},
|
|
49
|
-
style: style,
|
|
50
41
|
value: context.values.cvc,
|
|
51
42
|
onChangeText: t => onChange(t),
|
|
52
43
|
id: "cvc",
|
|
53
|
-
editable: disabled,
|
|
54
|
-
selectTextOnFocus: disabled,
|
|
55
44
|
onBlur: onBlur,
|
|
56
|
-
placeholder: placeholder,
|
|
57
45
|
inputMode: "numeric",
|
|
58
|
-
autoComplete: "cc-csc"
|
|
59
|
-
|
|
60
|
-
});
|
|
46
|
+
autoComplete: "cc-csc"
|
|
47
|
+
}));
|
|
61
48
|
};
|
|
62
49
|
exports.CardCVC = CardCVC;
|
|
63
50
|
//# sourceMappingURL=CardCVC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","
|
|
1
|
+
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardCVC","props","context","useCardContext","mask","useMemo","values","number","type","validateNumber","brand","onChange","onBlur","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInputMask","options","value","cvc","onChangeText","id","inputMode","autoComplete","exports"],"sourceRoot":"../../../../src","sources":["components/Card/CardCVC.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,12 +10,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var React = _react;
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
placeholder,
|
|
16
|
-
readOnly,
|
|
17
|
-
style
|
|
18
|
-
}) {
|
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
|
+
function CardExpiry(props) {
|
|
19
15
|
const context = (0, _context.useCardContext)();
|
|
20
16
|
const {
|
|
21
17
|
onBlur,
|
|
@@ -23,19 +19,12 @@ function CardExpiry({
|
|
|
23
19
|
} = context.register('expiry');
|
|
24
20
|
(0, _react.useEffect)(() => {
|
|
25
21
|
context.setRegisteredFields(prev => new Set(prev).add('expiry'));
|
|
26
|
-
return () => context.setRegisteredFields(prev =>
|
|
27
|
-
const next = new Set(prev);
|
|
28
|
-
next.delete('expiry');
|
|
29
|
-
return next;
|
|
30
|
-
});
|
|
22
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, 'expiry'));
|
|
31
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32
24
|
}, []);
|
|
33
|
-
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, {
|
|
34
|
-
style: style,
|
|
25
|
+
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
35
26
|
type: "datetime",
|
|
36
|
-
value: context.values.expiry
|
|
37
|
-
editable: disabled,
|
|
38
|
-
selectTextOnFocus: disabled
|
|
27
|
+
value: context.values.expiry
|
|
39
28
|
// store the expiry as MMYY not MM / YY
|
|
40
29
|
,
|
|
41
30
|
onChangeText: rawExpiry => onChange(rawExpiry.replace(' / ', '')),
|
|
@@ -44,10 +33,9 @@ function CardExpiry({
|
|
|
44
33
|
},
|
|
45
34
|
id: "expiry",
|
|
46
35
|
onBlur: onBlur,
|
|
47
|
-
placeholder: placeholder ?? 'MM / YY',
|
|
36
|
+
placeholder: props.placeholder ?? 'MM / YY',
|
|
48
37
|
inputMode: "numeric",
|
|
49
|
-
autoComplete: "cc-exp"
|
|
50
|
-
|
|
51
|
-
});
|
|
38
|
+
autoComplete: "cc-exp"
|
|
39
|
+
}));
|
|
52
40
|
}
|
|
53
41
|
//# sourceMappingURL=CardExpiry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeMaskedText","require","_context","_react","_interopRequireWildcard","React","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","
|
|
1
|
+
{"version":3,"names":["_reactNativeMaskedText","require","_context","_react","_interopRequireWildcard","React","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardExpiry","props","context","useCardContext","onBlur","onChange","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInputMask","type","value","values","expiry","onChangeText","rawExpiry","replace","options","format","id","placeholder","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardExpiry.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,13 +10,8 @@ var _reactNative = require("react-native");
|
|
|
10
10
|
var _context = require("./context");
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
|
-
function
|
|
14
|
-
|
|
15
|
-
disabled,
|
|
16
|
-
placeholder,
|
|
17
|
-
readOnly,
|
|
18
|
-
style
|
|
19
|
-
}) {
|
|
13
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
|
+
function CardHolder(props) {
|
|
20
15
|
const context = (0, _context.useCardContext)();
|
|
21
16
|
const {
|
|
22
17
|
onBlur,
|
|
@@ -24,28 +19,18 @@ function CardHolder({
|
|
|
24
19
|
} = context.register('name');
|
|
25
20
|
(0, _react.useEffect)(() => {
|
|
26
21
|
context.setRegisteredFields(prev => new Set(prev).add('name'));
|
|
27
|
-
return () => context.setRegisteredFields(prev =>
|
|
28
|
-
const next = new Set(prev);
|
|
29
|
-
next.delete('name');
|
|
30
|
-
return next;
|
|
31
|
-
});
|
|
22
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, 'name'));
|
|
32
23
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
24
|
}, []);
|
|
34
|
-
return /*#__PURE__*/React.createElement(_reactNative.TextInput, {
|
|
25
|
+
return /*#__PURE__*/React.createElement(_reactNative.TextInput, _extends({}, props, {
|
|
35
26
|
id: "name",
|
|
36
|
-
style: style,
|
|
37
27
|
value: context.values.name,
|
|
38
|
-
readOnly: readOnly,
|
|
39
28
|
onBlur: onBlur,
|
|
40
|
-
autoFocus: autoFocus,
|
|
41
|
-
editable: disabled,
|
|
42
|
-
selectTextOnFocus: disabled,
|
|
43
|
-
placeholder: placeholder,
|
|
44
29
|
autoComplete: _reactNative.Platform.select({
|
|
45
30
|
ios: 'cc-name',
|
|
46
31
|
android: 'name'
|
|
47
32
|
}),
|
|
48
33
|
onChangeText: v => onChange(v)
|
|
49
|
-
});
|
|
34
|
+
}));
|
|
50
35
|
}
|
|
51
36
|
//# sourceMappingURL=CardHolder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_reactNative","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardHolder","props","context","useCardContext","onBlur","onChange","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInput","id","value","values","name","autoComplete","Platform","select","ios","android","onChangeText","v"],"sourceRoot":"../../../../src","sources":["components/Card/CardHolder.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,13 +11,8 @@ var _reactNativeMaskedText = require("react-native-masked-text");
|
|
|
11
11
|
var _context = require("./context");
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
disabled,
|
|
17
|
-
placeholder,
|
|
18
|
-
readOnly,
|
|
19
|
-
style
|
|
20
|
-
}) {
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
+
function CardNumber(props) {
|
|
21
16
|
const context = (0, _context.useCardContext)();
|
|
22
17
|
const ref = (0, _react.useRef)(null);
|
|
23
18
|
const [innerValue, mask] = (0, _react.useMemo)(() => {
|
|
@@ -41,15 +36,10 @@ function CardNumber({
|
|
|
41
36
|
} = context.register('number');
|
|
42
37
|
(0, _react.useEffect)(() => {
|
|
43
38
|
context.setRegisteredFields(prev => new Set(prev).add('number'));
|
|
44
|
-
return () => context.setRegisteredFields(prev =>
|
|
45
|
-
const next = new Set(prev);
|
|
46
|
-
next.delete('name');
|
|
47
|
-
return next;
|
|
48
|
-
});
|
|
39
|
+
return () => context.setRegisteredFields(prev => (0, _context.removeFieldFromSet)(prev, 'number'));
|
|
49
40
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
50
41
|
}, []);
|
|
51
|
-
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, {
|
|
52
|
-
style: style,
|
|
42
|
+
return /*#__PURE__*/React.createElement(_reactNativeMaskedText.TextInputMask, _extends({}, props, {
|
|
53
43
|
ref: ref,
|
|
54
44
|
type: "custom",
|
|
55
45
|
options: {
|
|
@@ -59,13 +49,8 @@ function CardNumber({
|
|
|
59
49
|
value: innerValue,
|
|
60
50
|
onChangeText: onChange,
|
|
61
51
|
onBlur: onBlur,
|
|
62
|
-
readOnly: readOnly,
|
|
63
52
|
inputMode: "numeric",
|
|
64
|
-
autoFocus: autoFocus,
|
|
65
|
-
placeholder: placeholder,
|
|
66
|
-
editable: disabled,
|
|
67
|
-
selectTextOnFocus: disabled,
|
|
68
53
|
autoComplete: "cc-number"
|
|
69
|
-
});
|
|
54
|
+
}));
|
|
70
55
|
}
|
|
71
56
|
//# sourceMappingURL=CardNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","
|
|
1
|
+
{"version":3,"names":["_cardValidator","require","_react","_interopRequireWildcard","React","_reactNativeMaskedText","_context","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","prototype","apply","CardNumber","props","context","useCardContext","ref","useRef","innerValue","mask","useMemo","value","values","number","brand","validateNumber","masks","onBlur","onChange","register","useEffect","setRegisteredFields","prev","Set","add","removeFieldFromSet","createElement","TextInputMask","type","options","id","onChangeText","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardNumber.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.useCardContext = exports.CardContext = void 0;
|
|
6
|
+
exports.useCardContext = exports.removeFieldFromSet = exports.CardContext = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
|
+
const removeFieldFromSet = (prev, field) => {
|
|
9
|
+
const next = new Set(prev);
|
|
10
|
+
next.delete('name');
|
|
11
|
+
return next;
|
|
12
|
+
};
|
|
13
|
+
exports.removeFieldFromSet = removeFieldFromSet;
|
|
8
14
|
const CardContext = exports.CardContext = /*#__PURE__*/(0, _react.createContext)({
|
|
9
15
|
values: {
|
|
10
16
|
name: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","
|
|
1
|
+
{"version":3,"names":["_react","require","removeFieldFromSet","prev","field","next","Set","delete","exports","CardContext","createContext","values","name","number","cvc","expiry","register","onChange","onBlur","setRegisteredFields","useCardContext","useContext"],"sourceRoot":"../../../../src","sources":["components/Card/context.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AASO,MAAMC,kBAAkB,GAAGA,CAACC,IAAoB,EAAEC,KAAgB,KAAK;EAC5E,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAACH,IAAI,CAAC;EAC1BE,IAAI,CAACE,MAAM,CAAC,MAAM,CAAC;EACnB,OAAOF,IAAI;AACb,CAAC;AAACG,OAAA,CAAAN,kBAAA,GAAAA,kBAAA;AAEK,MAAMO,WAAW,GAAAD,OAAA,CAAAC,WAAA,gBAAG,IAAAC,oBAAa,EAAoB;EAC1DC,MAAM,EAAE;IACNC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE,EAAE;IACVC,GAAG,EAAE,EAAE;IACPC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAEA,CAAA,MAAO;IACfC,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;IAClBC,MAAM,EAAEA,CAAA,KAAM,CAAC;EACjB,CAAC,CAAC;EACFC,mBAAmB,EAAEA,CAAA,KAAM,CAAC;AAC9B,CAAC,CAAC;AAEK,MAAMC,cAAc,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACZ,WAAW,CAAC;AAACD,OAAA,CAAAY,cAAA,GAAAA,cAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"AAAA,SACEA,cAAc,EACdC,WAAW,EACXC,cAAc,QACT,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAA+BC,QAAQ,QAAQ,OAAO;AACtD,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,aAAa,EAAEC,eAAe,QAAoB,aAAa;AAExE,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,WAAW,QAAQ,WAAW;AACvC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAA+
|
|
1
|
+
{"version":3,"names":["validateNumber","validateCVC","validateExpiry","React","useState","useForm","changePayload","isAcceptedBrand","CardNumber","CardContext","encrypt","CardCVC","CardHolder","CardExpiry","View","Card","initialValue","config","children","onChange","style","registeredFields","setRegisteredFields","Set","form","initialValues","cvc","expiry","number","name","validate","values","has","undefined","length","cardValidation","isValid","acceptedBrands","expiryValidation","cvcValidation","formState","triggerChange","cardData","Array","from","createElement","Provider","value","register","CardNamespace","Object","assign","Number","CVC","Holder","Expiry"],"sourceRoot":"../../../../src","sources":["components/Card/Card.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import { validateNumber } from '@evervault/card-validator';
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { useEffect, useMemo } from 'react';
|
|
4
5
|
import { TextInputMask } from 'react-native-masked-text';
|
|
5
|
-
import { useCardContext } from './context';
|
|
6
|
-
export const CardCVC =
|
|
7
|
-
style,
|
|
8
|
-
disabled,
|
|
9
|
-
placeholder,
|
|
10
|
-
readOnly
|
|
11
|
-
}) => {
|
|
6
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
7
|
+
export const CardCVC = props => {
|
|
12
8
|
const context = useCardContext();
|
|
13
9
|
const mask = useMemo(() => {
|
|
14
10
|
if (!context.values.number) {
|
|
@@ -26,29 +22,20 @@ export const CardCVC = ({
|
|
|
26
22
|
} = context.register('cvc');
|
|
27
23
|
useEffect(() => {
|
|
28
24
|
context.setRegisteredFields(prev => new Set(prev).add('cvc'));
|
|
29
|
-
return () => context.setRegisteredFields(prev =>
|
|
30
|
-
const next = new Set(prev);
|
|
31
|
-
next.delete('cvc');
|
|
32
|
-
return next;
|
|
33
|
-
});
|
|
25
|
+
return () => context.setRegisteredFields(prev => removeFieldFromSet(prev, 'cvc'));
|
|
34
26
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
35
27
|
}, []);
|
|
36
|
-
return /*#__PURE__*/React.createElement(TextInputMask, {
|
|
28
|
+
return /*#__PURE__*/React.createElement(TextInputMask, _extends({}, props, {
|
|
37
29
|
type: "custom",
|
|
38
30
|
options: {
|
|
39
31
|
mask
|
|
40
32
|
},
|
|
41
|
-
style: style,
|
|
42
33
|
value: context.values.cvc,
|
|
43
34
|
onChangeText: t => onChange(t),
|
|
44
35
|
id: "cvc",
|
|
45
|
-
editable: disabled,
|
|
46
|
-
selectTextOnFocus: disabled,
|
|
47
36
|
onBlur: onBlur,
|
|
48
|
-
placeholder: placeholder,
|
|
49
37
|
inputMode: "numeric",
|
|
50
|
-
autoComplete: "cc-csc"
|
|
51
|
-
|
|
52
|
-
});
|
|
38
|
+
autoComplete: "cc-csc"
|
|
39
|
+
}));
|
|
53
40
|
};
|
|
54
41
|
//# sourceMappingURL=CardCVC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateNumber","React","useEffect","useMemo","TextInputMask","
|
|
1
|
+
{"version":3,"names":["validateNumber","React","useEffect","useMemo","TextInputMask","removeFieldFromSet","useCardContext","CardCVC","props","context","mask","values","number","type","brand","onChange","onBlur","register","setRegisteredFields","prev","Set","add","createElement","_extends","options","value","cvc","onChangeText","t","id","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardCVC.tsx"],"mappings":";AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC1C,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,WAAW;AAK9D,OAAO,MAAMC,OAAO,GAAIC,KAAe,IAAK;EAC1C,MAAMC,OAAO,GAAGH,cAAc,CAAC,CAAC;EAChC,MAAMI,IAAI,GAAGP,OAAO,CAAC,MAAM;IACzB,IAAI,CAACM,OAAO,CAACE,MAAM,CAACC,MAAM,EAAE;MAC1B,OAAO,MAAM;IACf;IACA,MAAMC,IAAI,GAAGb,cAAc,CAACS,OAAO,CAACE,MAAM,CAACC,MAAM,CAAC,CAACE,KAAK;IACxD,IAAID,IAAI,KAAK,kBAAkB,EAAE;MAC/B,OAAO,MAAM;IACf;IACA,OAAO,KAAK;EACd,CAAC,EAAE,CAACJ,OAAO,CAACE,MAAM,CAACC,MAAM,CAAC,CAAC;EAE3B,MAAM;IAAEG,QAAQ;IAAEC;EAAO,CAAC,GAAGP,OAAO,CAACQ,QAAQ,CAAC,KAAK,CAAC;EAEpDf,SAAS,CAAC,MAAM;IACdO,OAAO,CAACS,mBAAmB,CAAEC,IAAI,IAAK,IAAIC,GAAG,CAACD,IAAI,CAAC,CAACE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/D,OAAO,MACLZ,OAAO,CAACS,mBAAmB,CAAEC,IAAI,IAAKd,kBAAkB,CAACc,IAAI,EAAE,KAAK,CAAC,CAAC;IACxE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACElB,KAAA,CAAAqB,aAAA,CAAClB,aAAa,EAAAmB,QAAA,KACRf,KAAK;IACTK,IAAI,EAAC,QAAQ;IACbW,OAAO,EAAE;MAAEd;IAAK,CAAE;IAClBe,KAAK,EAAEhB,OAAO,CAACE,MAAM,CAACe,GAAI;IAC1BC,YAAY,EAAGC,CAAC,IAAKb,QAAQ,CAACa,CAAC,CAAE;IACjCC,EAAE,EAAC,KAAK;IACRb,MAAM,EAAEA,MAAO;IACfc,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAQ,EACtB,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import { TextInputMask } from 'react-native-masked-text';
|
|
2
|
-
import { useCardContext } from './context';
|
|
3
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
3
4
|
import * as React from 'react';
|
|
4
5
|
import { useEffect } from 'react';
|
|
5
|
-
export function CardExpiry({
|
|
6
|
-
disabled,
|
|
7
|
-
placeholder,
|
|
8
|
-
readOnly,
|
|
9
|
-
style
|
|
10
|
-
}) {
|
|
6
|
+
export function CardExpiry(props) {
|
|
11
7
|
const context = useCardContext();
|
|
12
8
|
const {
|
|
13
9
|
onBlur,
|
|
@@ -15,19 +11,12 @@ export function CardExpiry({
|
|
|
15
11
|
} = context.register('expiry');
|
|
16
12
|
useEffect(() => {
|
|
17
13
|
context.setRegisteredFields(prev => new Set(prev).add('expiry'));
|
|
18
|
-
return () => context.setRegisteredFields(prev =>
|
|
19
|
-
const next = new Set(prev);
|
|
20
|
-
next.delete('expiry');
|
|
21
|
-
return next;
|
|
22
|
-
});
|
|
14
|
+
return () => context.setRegisteredFields(prev => removeFieldFromSet(prev, 'expiry'));
|
|
23
15
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
24
16
|
}, []);
|
|
25
|
-
return /*#__PURE__*/React.createElement(TextInputMask, {
|
|
26
|
-
style: style,
|
|
17
|
+
return /*#__PURE__*/React.createElement(TextInputMask, _extends({}, props, {
|
|
27
18
|
type: "datetime",
|
|
28
|
-
value: context.values.expiry
|
|
29
|
-
editable: disabled,
|
|
30
|
-
selectTextOnFocus: disabled
|
|
19
|
+
value: context.values.expiry
|
|
31
20
|
// store the expiry as MMYY not MM / YY
|
|
32
21
|
,
|
|
33
22
|
onChangeText: rawExpiry => onChange(rawExpiry.replace(' / ', '')),
|
|
@@ -36,10 +25,9 @@ export function CardExpiry({
|
|
|
36
25
|
},
|
|
37
26
|
id: "expiry",
|
|
38
27
|
onBlur: onBlur,
|
|
39
|
-
placeholder: placeholder ?? 'MM / YY',
|
|
28
|
+
placeholder: props.placeholder ?? 'MM / YY',
|
|
40
29
|
inputMode: "numeric",
|
|
41
|
-
autoComplete: "cc-exp"
|
|
42
|
-
|
|
43
|
-
});
|
|
30
|
+
autoComplete: "cc-exp"
|
|
31
|
+
}));
|
|
44
32
|
}
|
|
45
33
|
//# sourceMappingURL=CardExpiry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TextInputMask","useCardContext","React","useEffect","CardExpiry","
|
|
1
|
+
{"version":3,"names":["TextInputMask","removeFieldFromSet","useCardContext","React","useEffect","CardExpiry","props","context","onBlur","onChange","register","setRegisteredFields","prev","Set","add","createElement","_extends","type","value","values","expiry","onChangeText","rawExpiry","replace","options","format","id","placeholder","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardExpiry.tsx"],"mappings":";AAAA,SAASA,aAAa,QAAQ,0BAA0B;AACxD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,WAAW;AAC9D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,QAAQ,OAAO;AAKjC,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,OAAO,GAAGL,cAAc,CAAC,CAAC;EAEhC,MAAM;IAAEM,MAAM;IAAEC;EAAS,CAAC,GAAGF,OAAO,CAACG,QAAQ,CAAC,QAAQ,CAAC;EAEvDN,SAAS,CAAC,MAAM;IACdG,OAAO,CAACI,mBAAmB,CAAEC,IAAI,IAAK,IAAIC,GAAG,CAACD,IAAI,CAAC,CAACE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,MACLP,OAAO,CAACI,mBAAmB,CAAEC,IAAI,IAAKX,kBAAkB,CAACW,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3E;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACET,KAAA,CAAAY,aAAA,CAACf,aAAa,EAAAgB,QAAA,KACRV,KAAK;IACTW,IAAI,EAAC,UAAU;IACfC,KAAK,EAAEX,OAAO,CAACY,MAAM,CAACC;IACtB;IAAA;IACAC,YAAY,EAAGC,SAAS,IAAKb,QAAQ,CAACa,SAAS,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAE;IACpEC,OAAO,EAAE;MACPC,MAAM,EAAE;IACV,CAAE;IACFC,EAAE,EAAC,QAAQ;IACXlB,MAAM,EAAEA,MAAO;IACfmB,WAAW,EAAErB,KAAK,CAACqB,WAAW,IAAI,SAAU;IAC5CC,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAQ,EACtB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import { useEffect } from 'react';
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { Platform, TextInput } from 'react-native';
|
|
4
|
-
import { useCardContext } from './context';
|
|
5
|
-
export function CardHolder({
|
|
6
|
-
autoFocus,
|
|
7
|
-
disabled,
|
|
8
|
-
placeholder,
|
|
9
|
-
readOnly,
|
|
10
|
-
style
|
|
11
|
-
}) {
|
|
5
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
6
|
+
export function CardHolder(props) {
|
|
12
7
|
const context = useCardContext();
|
|
13
8
|
const {
|
|
14
9
|
onBlur,
|
|
@@ -16,28 +11,18 @@ export function CardHolder({
|
|
|
16
11
|
} = context.register('name');
|
|
17
12
|
useEffect(() => {
|
|
18
13
|
context.setRegisteredFields(prev => new Set(prev).add('name'));
|
|
19
|
-
return () => context.setRegisteredFields(prev =>
|
|
20
|
-
const next = new Set(prev);
|
|
21
|
-
next.delete('name');
|
|
22
|
-
return next;
|
|
23
|
-
});
|
|
14
|
+
return () => context.setRegisteredFields(prev => removeFieldFromSet(prev, 'name'));
|
|
24
15
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25
16
|
}, []);
|
|
26
|
-
return /*#__PURE__*/React.createElement(TextInput, {
|
|
17
|
+
return /*#__PURE__*/React.createElement(TextInput, _extends({}, props, {
|
|
27
18
|
id: "name",
|
|
28
|
-
style: style,
|
|
29
19
|
value: context.values.name,
|
|
30
|
-
readOnly: readOnly,
|
|
31
20
|
onBlur: onBlur,
|
|
32
|
-
autoFocus: autoFocus,
|
|
33
|
-
editable: disabled,
|
|
34
|
-
selectTextOnFocus: disabled,
|
|
35
|
-
placeholder: placeholder,
|
|
36
21
|
autoComplete: Platform.select({
|
|
37
22
|
ios: 'cc-name',
|
|
38
23
|
android: 'name'
|
|
39
24
|
}),
|
|
40
25
|
onChangeText: v => onChange(v)
|
|
41
|
-
});
|
|
26
|
+
}));
|
|
42
27
|
}
|
|
43
28
|
//# sourceMappingURL=CardHolder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","React","Platform","TextInput","
|
|
1
|
+
{"version":3,"names":["useEffect","React","Platform","TextInput","removeFieldFromSet","useCardContext","CardHolder","props","context","onBlur","onChange","register","setRegisteredFields","prev","Set","add","createElement","_extends","id","value","values","name","autoComplete","select","ios","android","onChangeText","v"],"sourceRoot":"../../../../src","sources":["components/Card/CardHolder.tsx"],"mappings":";AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,SAAS,QAAQ,cAAc;AAClD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,WAAW;AAK9D,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,OAAO,GAAGH,cAAc,CAAC,CAAC;EAEhC,MAAM;IAAEI,MAAM;IAAEC;EAAS,CAAC,GAAGF,OAAO,CAACG,QAAQ,CAAC,MAAM,CAAC;EAErDX,SAAS,CAAC,MAAM;IACdQ,OAAO,CAACI,mBAAmB,CAAEC,IAAI,IAAK,IAAIC,GAAG,CAACD,IAAI,CAAC,CAACE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,MACLP,OAAO,CAACI,mBAAmB,CAAEC,IAAI,IAAKT,kBAAkB,CAACS,IAAI,EAAE,MAAM,CAAC,CAAC;IACzE;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEZ,KAAA,CAAAe,aAAA,CAACb,SAAS,EAAAc,QAAA,KACJV,KAAK;IACTW,EAAE,EAAC,MAAM;IACTC,KAAK,EAAEX,OAAO,CAACY,MAAM,CAACC,IAAK;IAC3BZ,MAAM,EAAEA,MAAO;IACfa,YAAY,EAAEpB,QAAQ,CAACqB,MAAM,CAAC;MAC5BC,GAAG,EAAE,SAAS;MACdC,OAAO,EAAE;IACX,CAAC,CAAE;IACHC,YAAY,EAAGC,CAAC,IAAKjB,QAAQ,CAACiB,CAAC;EAAE,EAClC,CAAC;AAEN","ignoreList":[]}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import { validateNumber } from '@evervault/card-validator';
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { useEffect, useMemo, useRef } from 'react';
|
|
4
5
|
import { TextInputMask } from 'react-native-masked-text';
|
|
5
|
-
import { useCardContext } from './context';
|
|
6
|
-
export function CardNumber({
|
|
7
|
-
autoFocus,
|
|
8
|
-
disabled,
|
|
9
|
-
placeholder,
|
|
10
|
-
readOnly,
|
|
11
|
-
style
|
|
12
|
-
}) {
|
|
6
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
7
|
+
export function CardNumber(props) {
|
|
13
8
|
const context = useCardContext();
|
|
14
9
|
const ref = useRef(null);
|
|
15
10
|
const [innerValue, mask] = useMemo(() => {
|
|
@@ -33,15 +28,10 @@ export function CardNumber({
|
|
|
33
28
|
} = context.register('number');
|
|
34
29
|
useEffect(() => {
|
|
35
30
|
context.setRegisteredFields(prev => new Set(prev).add('number'));
|
|
36
|
-
return () => context.setRegisteredFields(prev =>
|
|
37
|
-
const next = new Set(prev);
|
|
38
|
-
next.delete('name');
|
|
39
|
-
return next;
|
|
40
|
-
});
|
|
31
|
+
return () => context.setRegisteredFields(prev => removeFieldFromSet(prev, 'number'));
|
|
41
32
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
42
33
|
}, []);
|
|
43
|
-
return /*#__PURE__*/React.createElement(TextInputMask, {
|
|
44
|
-
style: style,
|
|
34
|
+
return /*#__PURE__*/React.createElement(TextInputMask, _extends({}, props, {
|
|
45
35
|
ref: ref,
|
|
46
36
|
type: "custom",
|
|
47
37
|
options: {
|
|
@@ -51,13 +41,8 @@ export function CardNumber({
|
|
|
51
41
|
value: innerValue,
|
|
52
42
|
onChangeText: onChange,
|
|
53
43
|
onBlur: onBlur,
|
|
54
|
-
readOnly: readOnly,
|
|
55
44
|
inputMode: "numeric",
|
|
56
|
-
autoFocus: autoFocus,
|
|
57
|
-
placeholder: placeholder,
|
|
58
|
-
editable: disabled,
|
|
59
|
-
selectTextOnFocus: disabled,
|
|
60
45
|
autoComplete: "cc-number"
|
|
61
|
-
});
|
|
46
|
+
}));
|
|
62
47
|
}
|
|
63
48
|
//# sourceMappingURL=CardNumber.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["validateNumber","React","useEffect","useMemo","useRef","TextInputMask","
|
|
1
|
+
{"version":3,"names":["validateNumber","React","useEffect","useMemo","useRef","TextInputMask","removeFieldFromSet","useCardContext","CardNumber","props","context","ref","innerValue","mask","value","values","number","brand","masks","default","onBlur","onChange","register","setRegisteredFields","prev","Set","add","createElement","_extends","type","options","id","onChangeText","inputMode","autoComplete"],"sourceRoot":"../../../../src","sources":["components/Card/CardNumber.tsx"],"mappings":";AAAA,SAASA,cAAc,QAAQ,2BAA2B;AAC1D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAClD,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,WAAW;AAK9D,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAE;EACjD,MAAMC,OAAO,GAAGH,cAAc,CAAC,CAAC;EAChC,MAAMI,GAAG,GAAGP,MAAM,CAAgB,IAAI,CAAC;EAEvC,MAAM,CAACQ,UAAU,EAAEC,IAAI,CAAC,GAAGV,OAAO,CAAC,MAAM;IACvC,MAAMW,KAAK,GAAGJ,OAAO,CAACK,MAAM,CAACC,MAAM;IAEnC,MAAM;MAAEC;IAAM,CAAC,GAAGjB,cAAc,CAACc,KAAK,CAAC;IAEvC,MAAMI,KAAK,GAAG;MACZ,SAAS,EAAE,qBAAqB;MAChC,UAAU,EAAE,yBAAyB;MACrC,kBAAkB,EAAE;IACtB,CAA2B;IAE3B,IAAID,KAAK,IAAI,CAAC,CAACC,KAAK,CAACD,KAAK,CAAC,EAAE;MAC3B,OAAO,CAACH,KAAK,EAAEI,KAAK,CAACD,KAAK,CAAC,CAAC;IAC9B;IACA,OAAO,CAACH,KAAK,EAAEI,KAAK,CAACC,OAAO,CAAC;EAC/B,CAAC,EAAE,CAACT,OAAO,CAACK,MAAM,CAACC,MAAM,CAAC,CAAC;EAE3B,MAAM;IAAEI,MAAM;IAAEC;EAAS,CAAC,GAAGX,OAAO,CAACY,QAAQ,CAAC,QAAQ,CAAC;EAEvDpB,SAAS,CAAC,MAAM;IACdQ,OAAO,CAACa,mBAAmB,CAAEC,IAAI,IAAK,IAAIC,GAAG,CAACD,IAAI,CAAC,CAACE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO,MACLhB,OAAO,CAACa,mBAAmB,CAAEC,IAAI,IAAKlB,kBAAkB,CAACkB,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3E;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEvB,KAAA,CAAA0B,aAAA,CAACtB,aAAa,EAAAuB,QAAA,KACRnB,KAAK;IACTE,GAAG,EAAEA,GAAI;IACTkB,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE;MAAEjB;IAAK,CAAE;IAClBkB,EAAE,EAAC,QAAQ;IACXjB,KAAK,EAAEF,UAAW;IAClBoB,YAAY,EAAEX,QAAS;IACvBD,MAAM,EAAEA,MAAO;IACfa,SAAS,EAAC,SAAS;IACnBC,YAAY,EAAC;EAAW,EACzB,CAAC;AAEN","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","CardContext","values","name","number","cvc","expiry","register","onChange","onBlur","setRegisteredFields","useCardContext"],"sourceRoot":"../../../../src","sources":["components/Card/context.tsx"],"mappings":"AACA,SAAmCA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAS3E,OAAO,MAAMC,WAAW,
|
|
1
|
+
{"version":3,"names":["createContext","useContext","removeFieldFromSet","prev","field","next","Set","delete","CardContext","values","name","number","cvc","expiry","register","onChange","onBlur","setRegisteredFields","useCardContext"],"sourceRoot":"../../../../src","sources":["components/Card/context.tsx"],"mappings":"AACA,SAAmCA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAS3E,OAAO,MAAMC,kBAAkB,GAAGA,CAACC,IAAoB,EAAEC,KAAgB,KAAK;EAC5E,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAACH,IAAI,CAAC;EAC1BE,IAAI,CAACE,MAAM,CAAC,MAAM,CAAC;EACnB,OAAOF,IAAI;AACb,CAAC;AAED,OAAO,MAAMG,WAAW,gBAAGR,aAAa,CAAoB;EAC1DS,MAAM,EAAE;IACNC,IAAI,EAAE,EAAE;IACRC,MAAM,EAAE,EAAE;IACVC,GAAG,EAAE,EAAE;IACPC,MAAM,EAAE;EACV,CAAC;EACDC,QAAQ,EAAEA,CAAA,MAAO;IACfC,QAAQ,EAAEA,CAAA,KAAM,CAAC,CAAC;IAClBC,MAAM,EAAEA,CAAA,KAAM,CAAC;EACjB,CAAC,CAAC;EACFC,mBAAmB,EAAEA,CAAA,KAAM,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAMjB,UAAU,CAACO,WAAW,CAAC","ignoreList":[]}
|
|
@@ -4,12 +4,8 @@ import type { CardForm, CardConfig, CardPayload } from './types';
|
|
|
4
4
|
import { CardNumber } from './CardNumber';
|
|
5
5
|
import { CardHolder } from './CardHolder';
|
|
6
6
|
import { CardExpiry } from './CardExpiry';
|
|
7
|
-
import { StyleProp, TextStyle } from 'react-native';
|
|
8
|
-
export interface BaseProps {
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
placeholder?: string;
|
|
11
|
-
readOnly?: boolean;
|
|
12
|
-
style?: StyleProp<TextStyle>;
|
|
7
|
+
import { StyleProp, TextInputProps, TextStyle } from 'react-native';
|
|
8
|
+
export interface BaseProps extends Omit<TextInputProps, 'onChange' | 'onBlur' | 'onChangeText' | 'inputMode' | 'autoComplete' | 'value'> {
|
|
13
9
|
}
|
|
14
10
|
export interface CardProps {
|
|
15
11
|
initialValue?: CardForm;
|
|
@@ -18,10 +14,10 @@ export interface CardProps {
|
|
|
18
14
|
onChange?: (payload: CardPayload) => void;
|
|
19
15
|
style?: StyleProp<TextStyle>;
|
|
20
16
|
}
|
|
21
|
-
declare function Card({ initialValue, config, children, onChange, style
|
|
17
|
+
declare function Card({ initialValue, config, children, onChange, style }: CardProps): React.JSX.Element;
|
|
22
18
|
declare const CardNamespace: typeof Card & {
|
|
23
19
|
Number: typeof CardNumber;
|
|
24
|
-
CVC: (
|
|
20
|
+
CVC: (props: import("./CardCVC").CVCProps) => React.JSX.Element;
|
|
25
21
|
Holder: typeof CardHolder;
|
|
26
22
|
Expiry: typeof CardExpiry;
|
|
27
23
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAQ,MAAM,cAAc,CAAC;AAE1E,MAAM,WAAW,SACf,SAAQ,IAAI,CACV,cAAc,EACZ,UAAU,GACV,QAAQ,GACR,cAAc,GACd,WAAW,GACX,cAAc,GACd,OAAO,CACV;CAAG;AAEN,MAAM,WAAW,SAAS;IACxB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,iBAAS,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,SAAS,qBAyF3E;AAED,QAAA,MAAM,aAAa;;;;;CAKjB,CAAC;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -2,5 +2,5 @@ import * as React from 'react';
|
|
|
2
2
|
import { BaseProps } from './Card';
|
|
3
3
|
export interface CVCProps extends BaseProps {
|
|
4
4
|
}
|
|
5
|
-
export declare const CardCVC: (
|
|
5
|
+
export declare const CardCVC: (props: CVCProps) => React.JSX.Element;
|
|
6
6
|
//# sourceMappingURL=CardCVC.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardCVC.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardCVC.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,QAAS,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"CardCVC.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardCVC.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,QAAS,SAAQ,SAAS;CAAG;AAE9C,eAAO,MAAM,OAAO,UAAW,QAAQ,sBAmCtC,CAAC"}
|
|
@@ -2,5 +2,5 @@ import * as React from 'react';
|
|
|
2
2
|
import { BaseProps } from './Card';
|
|
3
3
|
export interface CardExpiryProps extends BaseProps {
|
|
4
4
|
}
|
|
5
|
-
export declare function CardExpiry(
|
|
5
|
+
export declare function CardExpiry(props: CardExpiryProps): React.JSX.Element;
|
|
6
6
|
//# sourceMappingURL=CardExpiry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardExpiry.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardExpiry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"CardExpiry.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardExpiry.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;CAAG;AAErD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,qBA6BhD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BaseProps } from './Card';
|
|
3
3
|
export interface CardHolderProps extends BaseProps {
|
|
4
|
-
autoFocus?: boolean;
|
|
5
4
|
}
|
|
6
|
-
export declare function CardHolder(
|
|
5
|
+
export declare function CardHolder(props: CardHolderProps): React.JSX.Element;
|
|
7
6
|
//# sourceMappingURL=CardHolder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardHolder.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardHolder.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"CardHolder.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardHolder.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,eAAgB,SAAQ,SAAS;CAAG;AAErD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,qBAyBhD"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BaseProps } from './Card';
|
|
3
3
|
interface CardNumberProps extends BaseProps {
|
|
4
|
-
autoFocus?: boolean;
|
|
5
4
|
}
|
|
6
|
-
export declare function CardNumber(
|
|
5
|
+
export declare function CardNumber(props: CardNumberProps): React.JSX.Element;
|
|
7
6
|
export {};
|
|
8
7
|
//# sourceMappingURL=CardNumber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardNumber.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardNumber.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,UAAU,eAAgB,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"CardNumber.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/CardNumber.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnC,UAAU,eAAgB,SAAQ,SAAS;CAAG;AAE9C,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,qBA6ChD"}
|
|
@@ -6,6 +6,7 @@ type Context<T> = {
|
|
|
6
6
|
register: UseFormReturn<T>['register'];
|
|
7
7
|
setRegisteredFields: Dispatch<SetStateAction<Set<CardField>>>;
|
|
8
8
|
};
|
|
9
|
+
export declare const removeFieldFromSet: (prev: Set<CardField>, field: CardField) => Set<CardField>;
|
|
9
10
|
export declare const CardContext: import("react").Context<Context<CardForm>>;
|
|
10
11
|
export declare const useCardContext: () => Context<CardForm>;
|
|
11
12
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAA6B,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvC,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/components/Card/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAA6B,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvC,mBAAmB,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,IAAI,SAAS,CAAC,SAAS,SAAS,mBAIxE,CAAC;AAEF,eAAO,MAAM,WAAW,4CAYtB,CAAC;AAEH,eAAO,MAAM,cAAc,yBAAgC,CAAC"}
|
package/package.json
CHANGED
|
@@ -14,14 +14,18 @@ import { encrypt } from '../../sdk';
|
|
|
14
14
|
import { CardCVC } from './CardCVC';
|
|
15
15
|
import { CardHolder } from './CardHolder';
|
|
16
16
|
import { CardExpiry } from './CardExpiry';
|
|
17
|
-
import { StyleProp, TextStyle, View } from 'react-native';
|
|
17
|
+
import { StyleProp, TextInputProps, TextStyle, View } from 'react-native';
|
|
18
18
|
|
|
19
|
-
export interface BaseProps
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
export interface BaseProps
|
|
20
|
+
extends Omit<
|
|
21
|
+
TextInputProps,
|
|
22
|
+
| 'onChange'
|
|
23
|
+
| 'onBlur'
|
|
24
|
+
| 'onChangeText'
|
|
25
|
+
| 'inputMode'
|
|
26
|
+
| 'autoComplete'
|
|
27
|
+
| 'value'
|
|
28
|
+
> {}
|
|
25
29
|
|
|
26
30
|
export interface CardProps {
|
|
27
31
|
initialValue?: CardForm;
|
|
@@ -31,13 +35,7 @@ export interface CardProps {
|
|
|
31
35
|
style?: StyleProp<TextStyle>;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
|
-
function Card({
|
|
35
|
-
initialValue,
|
|
36
|
-
config,
|
|
37
|
-
children,
|
|
38
|
-
onChange,
|
|
39
|
-
style,
|
|
40
|
-
}: CardProps) {
|
|
38
|
+
function Card({ initialValue, config, children, onChange, style }: CardProps) {
|
|
41
39
|
const [registeredFields, setRegisteredFields] = useState<Set<CardField>>(
|
|
42
40
|
new Set()
|
|
43
41
|
);
|
|
@@ -2,17 +2,12 @@ import { validateNumber } from '@evervault/card-validator';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useEffect, useMemo } from 'react';
|
|
4
4
|
import { TextInputMask } from 'react-native-masked-text';
|
|
5
|
-
import { useCardContext } from './context';
|
|
5
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
6
6
|
import { BaseProps } from './Card';
|
|
7
7
|
|
|
8
|
-
export interface CVCProps extends BaseProps {
|
|
8
|
+
export interface CVCProps extends BaseProps {}
|
|
9
9
|
|
|
10
|
-
export const CardCVC = ({
|
|
11
|
-
style,
|
|
12
|
-
disabled,
|
|
13
|
-
placeholder,
|
|
14
|
-
readOnly,
|
|
15
|
-
}: CVCProps) => {
|
|
10
|
+
export const CardCVC = (props: CVCProps) => {
|
|
16
11
|
const context = useCardContext();
|
|
17
12
|
const mask = useMemo(() => {
|
|
18
13
|
if (!context.values.number) {
|
|
@@ -29,29 +24,22 @@ export const CardCVC = ({
|
|
|
29
24
|
|
|
30
25
|
useEffect(() => {
|
|
31
26
|
context.setRegisteredFields((prev) => new Set(prev).add('cvc'));
|
|
32
|
-
return () =>
|
|
33
|
-
|
|
34
|
-
next.delete('cvc');
|
|
35
|
-
return next;
|
|
36
|
-
});
|
|
27
|
+
return () =>
|
|
28
|
+
context.setRegisteredFields((prev) => removeFieldFromSet(prev, 'cvc'));
|
|
37
29
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
38
30
|
}, []);
|
|
39
31
|
|
|
40
32
|
return (
|
|
41
33
|
<TextInputMask
|
|
34
|
+
{...props}
|
|
42
35
|
type="custom"
|
|
43
36
|
options={{ mask }}
|
|
44
|
-
style={style}
|
|
45
37
|
value={context.values.cvc}
|
|
46
38
|
onChangeText={(t) => onChange(t)}
|
|
47
39
|
id="cvc"
|
|
48
|
-
editable={disabled}
|
|
49
|
-
selectTextOnFocus={disabled}
|
|
50
40
|
onBlur={onBlur}
|
|
51
|
-
placeholder={placeholder}
|
|
52
41
|
inputMode="numeric"
|
|
53
42
|
autoComplete="cc-csc"
|
|
54
|
-
readOnly={readOnly}
|
|
55
43
|
/>
|
|
56
44
|
);
|
|
57
45
|
};
|
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
import { TextInputMask } from 'react-native-masked-text';
|
|
2
|
-
import { useCardContext } from './context';
|
|
2
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useEffect } from 'react';
|
|
5
5
|
import { BaseProps } from './Card';
|
|
6
6
|
|
|
7
|
-
export interface CardExpiryProps extends BaseProps {
|
|
7
|
+
export interface CardExpiryProps extends BaseProps {}
|
|
8
8
|
|
|
9
|
-
export function CardExpiry({
|
|
10
|
-
disabled,
|
|
11
|
-
placeholder,
|
|
12
|
-
readOnly,
|
|
13
|
-
style
|
|
14
|
-
}: CardExpiryProps) {
|
|
9
|
+
export function CardExpiry(props: CardExpiryProps) {
|
|
15
10
|
const context = useCardContext();
|
|
16
11
|
|
|
17
12
|
const { onBlur, onChange } = context.register('expiry');
|
|
18
13
|
|
|
19
14
|
useEffect(() => {
|
|
20
15
|
context.setRegisteredFields((prev) => new Set(prev).add('expiry'));
|
|
21
|
-
return () =>
|
|
22
|
-
|
|
23
|
-
next.delete('expiry');
|
|
24
|
-
return next;
|
|
25
|
-
});
|
|
16
|
+
return () =>
|
|
17
|
+
context.setRegisteredFields((prev) => removeFieldFromSet(prev, 'expiry'));
|
|
26
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
19
|
}, []);
|
|
28
20
|
|
|
29
21
|
return (
|
|
30
22
|
<TextInputMask
|
|
31
|
-
|
|
23
|
+
{...props}
|
|
32
24
|
type="datetime"
|
|
33
25
|
value={context.values.expiry}
|
|
34
|
-
editable={disabled}
|
|
35
|
-
selectTextOnFocus={disabled}
|
|
36
26
|
// store the expiry as MMYY not MM / YY
|
|
37
27
|
onChangeText={(rawExpiry) => onChange(rawExpiry.replace(' / ', ''))}
|
|
38
28
|
options={{
|
|
@@ -40,10 +30,9 @@ export function CardExpiry({
|
|
|
40
30
|
}}
|
|
41
31
|
id="expiry"
|
|
42
32
|
onBlur={onBlur}
|
|
43
|
-
placeholder={placeholder ?? 'MM / YY'}
|
|
33
|
+
placeholder={props.placeholder ?? 'MM / YY'}
|
|
44
34
|
inputMode="numeric"
|
|
45
35
|
autoComplete="cc-exp"
|
|
46
|
-
readOnly={readOnly}
|
|
47
36
|
/>
|
|
48
37
|
);
|
|
49
38
|
}
|
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Platform, TextInput } from 'react-native';
|
|
4
|
-
import { useCardContext } from './context';
|
|
4
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
5
5
|
import { BaseProps } from './Card';
|
|
6
6
|
|
|
7
|
-
export interface CardHolderProps extends BaseProps {
|
|
8
|
-
autoFocus?: boolean;
|
|
9
|
-
}
|
|
7
|
+
export interface CardHolderProps extends BaseProps {}
|
|
10
8
|
|
|
11
|
-
export function CardHolder({
|
|
12
|
-
autoFocus,
|
|
13
|
-
disabled,
|
|
14
|
-
placeholder,
|
|
15
|
-
readOnly,
|
|
16
|
-
style,
|
|
17
|
-
}: CardHolderProps) {
|
|
9
|
+
export function CardHolder(props: CardHolderProps) {
|
|
18
10
|
const context = useCardContext();
|
|
19
11
|
|
|
20
12
|
const { onBlur, onChange } = context.register('name');
|
|
@@ -22,25 +14,16 @@ export function CardHolder({
|
|
|
22
14
|
useEffect(() => {
|
|
23
15
|
context.setRegisteredFields((prev) => new Set(prev).add('name'));
|
|
24
16
|
return () =>
|
|
25
|
-
context.setRegisteredFields((prev) =>
|
|
26
|
-
const next = new Set(prev);
|
|
27
|
-
next.delete('name');
|
|
28
|
-
return next;
|
|
29
|
-
});
|
|
17
|
+
context.setRegisteredFields((prev) => removeFieldFromSet(prev, 'name'));
|
|
30
18
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
31
19
|
}, []);
|
|
32
20
|
|
|
33
21
|
return (
|
|
34
22
|
<TextInput
|
|
23
|
+
{...props}
|
|
35
24
|
id="name"
|
|
36
|
-
style={style}
|
|
37
25
|
value={context.values.name}
|
|
38
|
-
readOnly={readOnly}
|
|
39
26
|
onBlur={onBlur}
|
|
40
|
-
autoFocus={autoFocus}
|
|
41
|
-
editable={disabled}
|
|
42
|
-
selectTextOnFocus={disabled}
|
|
43
|
-
placeholder={placeholder}
|
|
44
27
|
autoComplete={Platform.select({
|
|
45
28
|
ios: 'cc-name',
|
|
46
29
|
android: 'name',
|
|
@@ -2,20 +2,12 @@ import { validateNumber } from '@evervault/card-validator';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { TextInputMask } from 'react-native-masked-text';
|
|
5
|
-
import { useCardContext } from './context';
|
|
5
|
+
import { removeFieldFromSet, useCardContext } from './context';
|
|
6
6
|
import { BaseProps } from './Card';
|
|
7
7
|
|
|
8
|
-
interface CardNumberProps extends BaseProps {
|
|
9
|
-
autoFocus?: boolean;
|
|
10
|
-
}
|
|
8
|
+
interface CardNumberProps extends BaseProps {}
|
|
11
9
|
|
|
12
|
-
export function CardNumber({
|
|
13
|
-
autoFocus,
|
|
14
|
-
disabled,
|
|
15
|
-
placeholder,
|
|
16
|
-
readOnly,
|
|
17
|
-
style,
|
|
18
|
-
}: CardNumberProps) {
|
|
10
|
+
export function CardNumber(props: CardNumberProps) {
|
|
19
11
|
const context = useCardContext();
|
|
20
12
|
const ref = useRef<TextInputMask>(null);
|
|
21
13
|
|
|
@@ -40,17 +32,15 @@ export function CardNumber({
|
|
|
40
32
|
|
|
41
33
|
useEffect(() => {
|
|
42
34
|
context.setRegisteredFields((prev) => new Set(prev).add('number'));
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return next;
|
|
47
|
-
});
|
|
35
|
+
|
|
36
|
+
return () =>
|
|
37
|
+
context.setRegisteredFields((prev) => removeFieldFromSet(prev, 'number'));
|
|
48
38
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
49
39
|
}, []);
|
|
50
40
|
|
|
51
41
|
return (
|
|
52
42
|
<TextInputMask
|
|
53
|
-
|
|
43
|
+
{...props}
|
|
54
44
|
ref={ref}
|
|
55
45
|
type="custom"
|
|
56
46
|
options={{ mask }}
|
|
@@ -58,12 +48,7 @@ export function CardNumber({
|
|
|
58
48
|
value={innerValue}
|
|
59
49
|
onChangeText={onChange}
|
|
60
50
|
onBlur={onBlur}
|
|
61
|
-
readOnly={readOnly}
|
|
62
51
|
inputMode="numeric"
|
|
63
|
-
autoFocus={autoFocus}
|
|
64
|
-
placeholder={placeholder}
|
|
65
|
-
editable={disabled}
|
|
66
|
-
selectTextOnFocus={disabled}
|
|
67
52
|
autoComplete="cc-number"
|
|
68
53
|
/>
|
|
69
54
|
);
|
|
@@ -8,6 +8,12 @@ type Context<T> = {
|
|
|
8
8
|
setRegisteredFields: Dispatch<SetStateAction<Set<CardField>>>;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
+
export const removeFieldFromSet = (prev: Set<CardField>, field: CardField) => {
|
|
12
|
+
const next = new Set(prev);
|
|
13
|
+
next.delete('name');
|
|
14
|
+
return next;
|
|
15
|
+
};
|
|
16
|
+
|
|
11
17
|
export const CardContext = createContext<Context<CardForm>>({
|
|
12
18
|
values: {
|
|
13
19
|
name: '',
|
|
@@ -17,9 +23,9 @@ export const CardContext = createContext<Context<CardForm>>({
|
|
|
17
23
|
},
|
|
18
24
|
register: () => ({
|
|
19
25
|
onChange: () => {},
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
onBlur: () => {},
|
|
27
|
+
}),
|
|
22
28
|
setRegisteredFields: () => {},
|
|
23
|
-
|
|
29
|
+
});
|
|
24
30
|
|
|
25
31
|
export const useCardContext = () => useContext(CardContext);
|