@hipay/hipay-material-ui 3.5.1 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,60 +1,99 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports.default = exports.styles = void 0;
10
+ exports.default = exports.useStyles = exports.formatReferenceNumber = exports.formatIBANNumber = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
9
15
 
10
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
17
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _classnames = _interopRequireDefault(require("classnames"));
21
+
22
+ var _styles = require("@material-ui/core/styles");
13
23
 
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
24
+ var formatCardNumber = function formatCardNumber(cardNumber) {
25
+ cardNumber = cardNumber.replace(/X/g, "*");
15
26
 
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
27
+ if (cardNumber.search(" ") < 0) {
28
+ cardNumber = "".concat(cardNumber.substring(0, 4), " ").concat(cardNumber.substring(4, 8), " ").concat(cardNumber.substring(8, 12), " ").concat(cardNumber.substring(12, 16));
29
+ }
17
30
 
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/possibleConstructorReturn"));
31
+ return cardNumber;
32
+ };
33
+ /**
34
+ * Format number with group of $size char
35
+ * ie : ("123456789", 4) => "1234 5678 9"
36
+ */
19
37
 
20
- var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/getPrototypeOf"));
21
38
 
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
39
+ var formatNumber = function formatNumber(number) {
40
+ var digitGroupLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
41
+ // 1) remove spaces
42
+ var res = number.replace(/\s/g, ""); // 2) add space each 4 chars
23
43
 
24
- var _react = _interopRequireDefault(require("react"));
44
+ return (0, _toConsumableArray2.default)(res).map(function (char, index) {
45
+ return index > 0 && index % digitGroupLength === 0 ? " ".concat(char) : char;
46
+ }).join("");
47
+ };
25
48
 
26
- var _classnames = _interopRequireDefault(require("classnames"));
49
+ var CREDIT_CARD = "credit-card";
50
+ var DEBIT_CARD = "debit-card";
51
+ var PREPAID_CARD = "prepraid-card";
52
+ var OPEN_INVOICE = "open-invoice";
53
+ var CREDIT_CONSUMPTION = "credit-consumption";
54
+ var REALTIME_BANKING = "realtime-banking";
55
+ var PAYMENT_REFERENCE = "payment-reference";
56
+ var EWALLET = "ewallet";
57
+
58
+ var formatIBANNumber = function formatIBANNumber(value) {
59
+ return formatNumber(value, 4);
60
+ };
27
61
 
28
- var _styles = require("@material-ui/core/styles");
62
+ exports.formatIBANNumber = formatIBANNumber;
63
+
64
+ var formatReferenceNumber = function formatReferenceNumber(value) {
65
+ return formatNumber(value, 3);
66
+ };
29
67
 
30
- var styles = function styles(theme) {
68
+ exports.formatReferenceNumber = formatReferenceNumber;
69
+ var useStyles = (0, _styles.makeStyles)(function (theme) {
31
70
  return {
32
71
  bankCard: {
33
- position: 'relative',
72
+ position: "relative",
34
73
  width: 256,
35
74
  height: 160,
36
75
  borderRadius: 13
37
76
  },
38
77
  wallet: {
39
- position: 'relative',
78
+ position: "relative",
40
79
  width: 256,
41
80
  height: 160,
42
- filter: 'drop-shadow(30px 10px 4px #4444dd)',
43
- webkitFilter: 'drop-shadow(30px 10px 4px #4444dd)'
81
+ filter: "drop-shadow(30px 10px 4px #4444dd)",
82
+ webkitFilter: "drop-shadow(30px 10px 4px #4444dd)"
44
83
  },
45
84
  shadow: {
46
- boxShadow: '0px 2px 5px rgba(0, 0, 0, 0.24)'
85
+ boxShadow: "0px 2px 5px rgba(0, 0, 0, 0.24)"
47
86
  },
48
87
  walletShadow: {
49
88
  width: 256,
50
89
  height: 160,
51
- backgroundSize: '100%',
52
- filter: 'drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))',
53
- webkitFilter: 'drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))',
54
- mozFilter: 'drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))'
90
+ backgroundSize: "100%",
91
+ filter: "drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))",
92
+ webkitFilter: "drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))",
93
+ mozFilter: "drop-shadow(0px 2px 5px rgba(0, 0, 0, 0.24))"
55
94
  },
56
95
  sepa: {
57
- position: 'relative',
96
+ position: "relative",
58
97
  width: 256,
59
98
  height: 160,
60
99
  borderRadius: 3
@@ -64,33 +103,33 @@ var styles = function styles(theme) {
64
103
  marginTop: 2
65
104
  },
66
105
  logoRight: {
67
- float: 'right',
106
+ float: "right",
68
107
  marginRight: 18
69
108
  },
70
109
  logoLeft: {
71
110
  marginLeft: 18
72
111
  },
73
112
  logoMerchant: {
74
- marginLeft: '-31px'
113
+ marginLeft: "-31px"
75
114
  },
76
115
  stripe: {
77
116
  width: 96,
78
117
  height: 40,
79
- background: '#FFFFFF'
118
+ background: "#FFFFFF"
80
119
  },
81
120
  stripeTopRight: {
82
- display: 'inline-block',
83
- float: 'right',
121
+ display: "inline-block",
122
+ float: "right",
84
123
  marginTop: 11
85
124
  },
86
125
  stripeTopLeft: {
87
- display: 'inline-block',
88
- float: 'left',
126
+ display: "inline-block",
127
+ float: "left",
89
128
  marginTop: 11
90
129
  },
91
130
  stripeBottomLeft: {
92
- display: 'inline-block',
93
- float: 'left',
131
+ display: "inline-block",
132
+ float: "left",
94
133
  marginTop: 38
95
134
  },
96
135
  stripeGradient: {
@@ -98,74 +137,74 @@ var styles = function styles(theme) {
98
137
  height: 40
99
138
  },
100
139
  stripeGradientTopRight: {
101
- background: 'linear-gradient(to right, rgba(0,255,0,0), #FFFFFF)',
140
+ background: "linear-gradient(to right, rgba(0,255,0,0), #FFFFFF)",
102
141
  marginTop: 11
103
142
  },
104
143
  stripeGradientTopLeft: {
105
- background: 'linear-gradient(to left, rgba(0,255,0,0), #FFFFFF)',
144
+ background: "linear-gradient(to left, rgba(0,255,0,0), #FFFFFF)",
106
145
  marginTop: 11
107
146
  },
108
147
  stripeGradientBottomLeft: {
109
- background: 'linear-gradient(to left, rgba(0,255,0,0), #FFFFFF)',
148
+ background: "linear-gradient(to left, rgba(0,255,0,0), #FFFFFF)",
110
149
  marginTop: 38
111
150
  },
112
151
  labelMedium: {
113
- display: 'block',
152
+ display: "block",
114
153
  fontFamily: theme.typography.fontFamily,
115
154
  fontSize: 10,
116
- color: '#FFFFFF'
155
+ color: "#FFFFFF"
117
156
  },
118
157
  corporateNumberLabel: {
119
- float: 'left',
158
+ float: "left",
120
159
  marginTop: 5,
121
160
  paddingLeft: 22,
122
161
  height: 10,
123
162
  width: 234
124
163
  },
125
164
  cardNumberLabel: {
126
- float: 'left',
165
+ float: "left",
127
166
  paddingLeft: 22,
128
167
  height: 10,
129
168
  width: 234,
130
169
  marginBottom: 18
131
170
  },
132
171
  giftCardNumberLabel: {
133
- float: 'left',
172
+ float: "left",
134
173
  paddingLeft: 21,
135
174
  height: 10,
136
175
  width: 234,
137
176
  marginTop: 25
138
177
  },
139
178
  ibanLabel: {
140
- float: 'left',
179
+ float: "left",
141
180
  marginTop: 23,
142
181
  paddingLeft: 12,
143
182
  height: 10,
144
183
  width: 234
145
184
  },
146
185
  number: {
147
- display: 'block',
148
- float: 'left',
186
+ display: "block",
187
+ float: "left",
149
188
  fontFamily: theme.typography.fontFamily,
150
- color: '#FFFFFF'
189
+ color: "#FFFFFF"
151
190
  },
152
191
  cardNumber: {
153
192
  fontSize: 18,
154
193
  width: 235,
155
194
  paddingLeft: 21,
156
195
  marginTop: 16,
157
- overflow: 'hidden',
158
- whiteSpace: 'nowrap',
159
- textOverflow: 'ellipsis'
196
+ overflow: "hidden",
197
+ whiteSpace: "nowrap",
198
+ textOverflow: "ellipsis"
160
199
  },
161
200
  giftCardNumber: {
162
201
  fontSize: 18,
163
202
  width: 235,
164
203
  paddingLeft: 21,
165
204
  marginBottom: 28,
166
- overflow: 'hidden',
167
- whiteSpace: 'nowrap',
168
- textOverflow: 'ellipsis'
205
+ overflow: "hidden",
206
+ whiteSpace: "nowrap",
207
+ textOverflow: "ellipsis"
169
208
  },
170
209
  corporateNumber: {
171
210
  fontSize: 18,
@@ -173,9 +212,9 @@ var styles = function styles(theme) {
173
212
  width: 234,
174
213
  paddingLeft: 22,
175
214
  marginBottom: 4,
176
- overflow: 'hidden',
177
- whiteSpace: 'nowrap',
178
- textOverflow: 'ellipsis'
215
+ overflow: "hidden",
216
+ whiteSpace: "nowrap",
217
+ textOverflow: "ellipsis"
179
218
  },
180
219
  ibanNumber: {
181
220
  fontSize: 14,
@@ -183,420 +222,353 @@ var styles = function styles(theme) {
183
222
  width: 256,
184
223
  paddingLeft: 12,
185
224
  marginBottom: 11,
186
- overflow: 'hidden',
187
- whiteSpace: 'nowrap',
188
- textOverflow: 'ellipsis'
225
+ overflow: "hidden",
226
+ whiteSpace: "nowrap",
227
+ textOverflow: "ellipsis"
189
228
  },
190
229
  memberSince: {
191
- display: 'block',
192
- float: 'left',
230
+ display: "block",
231
+ float: "left",
193
232
  paddingLeft: 22,
194
233
  maxHeight: 19,
195
234
  maxWidth: 52,
196
- lineHeight: '9px',
197
- textAlign: 'right',
198
- verticalAlign: 'middle',
235
+ lineHeight: "9px",
236
+ textAlign: "right",
237
+ verticalAlign: "middle",
199
238
  fontFamily: theme.typography.fontFamily,
200
239
  fontSize: 8,
201
- color: '#FFFFFF'
240
+ color: "#FFFFFF"
202
241
  },
203
242
  yearMember: {
204
- display: 'block',
205
- float: 'left',
243
+ display: "block",
244
+ float: "left",
206
245
  marginLeft: 4,
207
246
  marginTop: 2,
208
247
  height: 19,
209
248
  width: 33,
210
249
  fontFamily: theme.typography.fontFamily,
211
250
  fontSize: 14,
212
- color: '#FFFFFF'
251
+ color: "#FFFFFF"
213
252
  },
214
253
  validThru: {
215
- position: 'absolute',
254
+ position: "absolute",
216
255
  right: 67,
217
256
  bottom: 22,
218
- display: 'block',
257
+ display: "block",
219
258
  maxHeight: 19,
220
259
  maxWidth: 35,
221
- lineHeight: '9px',
222
- textAlign: 'right',
223
- verticalAlign: 'middle',
260
+ lineHeight: "9px",
261
+ textAlign: "right",
262
+ verticalAlign: "middle",
224
263
  fontFamily: theme.typography.fontFamily,
225
264
  fontSize: 8,
226
- color: '#FFFFFF'
265
+ color: "#FFFFFF"
227
266
  },
228
267
  dateValid: {
229
- position: 'absolute',
268
+ position: "absolute",
230
269
  left: 192,
231
270
  bottom: 20,
232
- display: 'block',
271
+ display: "block",
233
272
  height: 19,
234
273
  width: 55,
235
274
  fontFamily: theme.typography.fontFamily,
236
275
  fontSize: 14,
237
- color: '#FFFFFF'
276
+ color: "#FFFFFF"
238
277
  },
239
278
  labelLarge: {
240
- display: 'block',
279
+ display: "block",
241
280
  fontFamily: theme.typography.fontFamily,
242
281
  fontSize: 13,
243
- color: '#FFFFFF',
282
+ color: "#FFFFFF",
244
283
  overflow: "hidden",
245
284
  whiteSpace: "nowrap",
246
285
  textOverflow: "ellipsis"
247
286
  },
248
287
  userNameCard: {
249
- position: 'absolute',
288
+ position: "absolute",
250
289
  left: 22,
251
290
  bottom: 21,
252
291
  height: 16,
253
292
  width: 150
254
293
  },
255
294
  userNameSepa: {
256
- position: 'absolute',
295
+ position: "absolute",
257
296
  left: 12,
258
297
  bottom: 21,
259
298
  height: 16,
260
299
  width: 150
261
300
  },
262
301
  userNameCorporate: {
263
- float: 'left',
302
+ float: "left",
264
303
  marginTop: 8,
265
304
  paddingLeft: 22,
266
305
  height: 16,
267
306
  width: 234
268
307
  },
269
308
  userNameWallet: {
270
- float: 'left',
309
+ float: "left",
271
310
  marginTop: 54,
272
311
  paddingLeft: 22,
273
312
  height: 16,
274
313
  width: 184
275
314
  },
276
315
  businessName: {
277
- float: 'left',
316
+ float: "left",
278
317
  paddingLeft: 22,
279
318
  height: 16,
280
319
  width: 234
281
320
  },
282
321
  labelDebitCredit: {
283
- position: 'absolute',
322
+ position: "absolute",
284
323
  right: 15,
285
324
  bottom: 8,
286
325
  height: 15,
287
- fontWeight: '500'
326
+ fontWeight: "500"
288
327
  },
289
328
  corporateLabel: {
290
- float: 'right',
291
- marginRight: '-25px',
329
+ float: "right",
330
+ marginRight: "-25px",
292
331
  marginTop: 10,
293
332
  fontFamily: theme.typography.fontFamily,
294
333
  fontSize: 18,
295
- fontWeight: '500'
334
+ fontWeight: "500"
296
335
  }
297
336
  };
298
- };
299
-
300
- exports.styles = styles;
301
-
302
- var HiPaymentMeans =
303
- /*#__PURE__*/
304
- function (_React$Component) {
305
- (0, _inherits2.default)(HiPaymentMeans, _React$Component);
306
-
307
- function HiPaymentMeans() {
308
- var _getPrototypeOf2;
309
-
310
- var _this;
311
-
312
- (0, _classCallCheck2.default)(this, HiPaymentMeans);
313
-
314
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
315
- args[_key] = arguments[_key];
337
+ });
338
+ exports.useStyles = useStyles;
339
+
340
+ var HiPaymentMeans = function HiPaymentMeans(props) {
341
+ var businessName = props.businessName,
342
+ cardNumber = props.cardNumber,
343
+ cardUser = props.cardUser,
344
+ cardUserGender = props.cardUserGender,
345
+ cardValidity = props.cardValidity,
346
+ colorPrimary = props.colorPrimary,
347
+ colorSecondary = props.colorSecondary,
348
+ credit = props.credit,
349
+ logo = props.logo,
350
+ logoMerchant = props.logoMerchant,
351
+ svgPath = props.svgPath,
352
+ translations = props.translations,
353
+ type = props.type,
354
+ yearMember = props.yearMember,
355
+ fallbackImage = props.fallbackImage;
356
+ var classes = useStyles(props);
357
+ var theme = (0, _styles.useTheme)();
358
+ var formatNumber = (0, _react.useMemo)(function () {
359
+ if ([CREDIT_CARD, DEBIT_CARD, PREPAID_CARD].includes(type)) {
360
+ return cardNumber && formatCardNumber(cardNumber);
316
361
  }
317
362
 
318
- _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(HiPaymentMeans)).call.apply(_getPrototypeOf2, [this].concat(args)));
319
-
320
- _this.buildPaymentLayoutByType = function () {
321
- var _classNames;
322
-
323
- var _this$props = _this.props,
324
- businessName = _this$props.businessName,
325
- cardNumber = _this$props.cardNumber,
326
- cardUser = _this$props.cardUser,
327
- cardUserGender = _this$props.cardUserGender,
328
- cardValidity = _this$props.cardValidity,
329
- classes = _this$props.classes,
330
- colorPrimary = _this$props.colorPrimary,
331
- colorSecondary = _this$props.colorSecondary,
332
- credit = _this$props.credit,
333
- logo = _this$props.logo,
334
- logoMerchant = _this$props.logoMerchant,
335
- svgPath = _this$props.svgPath,
336
- theme = _this$props.theme,
337
- translations = _this$props.translations,
338
- type = _this$props.type,
339
- yearMember = _this$props.yearMember,
340
- fallbackImage = _this$props.fallbackImage;
341
- var formatNumber;
342
-
343
- if (type === 'credit-card' || type === 'debit-card' || type === 'prepaid-card') {
344
- formatNumber = cardNumber && _this.formatCardNumber(cardNumber);
345
- } else if (type === 'open-invoice' || type === 'payment-reference' || type === 'credit-consumption' || type === 'realtime-banking') {
346
- formatNumber = cardNumber && _this.formatIBANNumber(cardNumber);
347
- }
348
-
349
- var color1 = colorPrimary;
350
- var color2 = colorSecondary;
363
+ if ([OPEN_INVOICE, CREDIT_CONSUMPTION, REALTIME_BANKING].includes(type)) {
364
+ return cardNumber && formatIBANNumber(cardNumber);
365
+ }
351
366
 
352
- if (!color1) {
353
- color1 = theme.palette.primary.main;
354
- color2 = theme.palette.primary.dark;
355
- }
367
+ if (PAYMENT_REFERENCE === type) {
368
+ return cardNumber && formatReferenceNumber(cardNumber);
369
+ }
356
370
 
357
- var brandLogo = logo;
371
+ return cardNumber;
372
+ }, [type, cardNumber]);
358
373
 
359
- if (!brandLogo) {
360
- brandLogo = "".concat(svgPath, "sans_logo_full.svg");
361
- }
374
+ var _ref = colorPrimary ? [colorPrimary, colorSecondary] : [theme.palette.primary.main, theme.palette.primary.dark],
375
+ _ref2 = (0, _slicedToArray2.default)(_ref, 2),
376
+ color1 = _ref2[0],
377
+ color2 = _ref2[1];
362
378
 
363
- var username = cardUser;
379
+ var username = cardUser;
364
380
 
365
- if (cardUserGender === 'F') {
366
- username = "".concat(translations.gender_female, " ").concat(cardUser);
367
- } else if (cardUserGender === 'M') {
368
- username = "".concat(translations.gender_male, " ").concat(cardUser);
369
- }
381
+ if (cardUserGender === "F") {
382
+ username = "".concat(translations.gender_female, " ").concat(cardUser);
383
+ } else if (cardUserGender === "M") {
384
+ username = "".concat(translations.gender_male, " ").concat(cardUser);
385
+ }
370
386
 
371
- var creditDebit = null;
387
+ var creditDebit = null;
372
388
 
373
- if (translations.credit && translations.debit) {
374
- creditDebit = (credit ? translations.credit : translations.debit).toUpperCase();
375
- }
389
+ if (translations.credit && translations.debit) {
390
+ creditDebit = (credit ? translations.credit : translations.debit).toUpperCase();
391
+ }
376
392
 
377
- var imgComponent = _react.default.createElement("img", {
378
- src: brandLogo,
379
- alt: '',
380
- className: (0, _classnames.default)(classes.logo, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.logoLeft, ['ewallet', 'open-invoice', 'payment-reference', 'credit-consumption', 'realtime-banking'].indexOf(type) >= 0), (0, _defineProperty2.default)(_classNames, classes.logoRight, ['ewallet', 'open-invoice', 'payment-reference', 'credit-consumption', 'realtime-banking'].indexOf(type) < 0), _classNames)),
381
- onError: function onError(e) {
382
- if (fallbackImage) {
383
- e.target.src = "".concat(fallbackImage);
384
- } else {
385
- e.target.style.display = 'none';
386
- }
393
+ var imgComponent = (0, _react.useMemo)(function () {
394
+ var _classNames;
395
+
396
+ return _react.default.createElement("img", {
397
+ src: logo || "".concat(svgPath, "sans_logo_full.svg"),
398
+ alt: "",
399
+ className: (0, _classnames.default)(classes.logo, (_classNames = {}, (0, _defineProperty2.default)(_classNames, classes.logoLeft, [EWALLET, OPEN_INVOICE, PAYMENT_REFERENCE, CREDIT_CONSUMPTION, REALTIME_BANKING].includes(type)), (0, _defineProperty2.default)(_classNames, classes.logoRight, ![EWALLET, OPEN_INVOICE, PAYMENT_REFERENCE, CREDIT_CONSUMPTION, REALTIME_BANKING].includes(type)), _classNames)),
400
+ onError: function onError(e) {
401
+ if (fallbackImage) {
402
+ e.target.src = fallbackImage;
403
+ } else {
404
+ e.target.style.display = "none";
387
405
  }
388
- });
389
-
390
- var cardLayout;
391
-
392
- switch (type) {
393
- case 'ewallet':
394
- cardLayout = _react.default.createElement("div", {
395
- style: {
396
- backgroundImage: "url(\"".concat(svgPath, "Wallet_shape.svg\")")
397
- },
398
- className: classes.walletShadow
399
- }, _react.default.createElement("div", {
400
- style: {
401
- background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")"),
402
- WebkitMask: "url(\"".concat(svgPath, "Wallet_shape.svg\")")
403
- },
404
- className: classes.wallet
405
- }, _react.default.createElement("div", {
406
- className: (0, _classnames.default)(classes.labelLarge, classes.userNameWallet),
407
- title: username
408
- }, username), _react.default.createElement("span", {
409
- className: (0, _classnames.default)(classes.stripe, classes.stripeBottomLeft)
410
- }, imgComponent), _react.default.createElement("span", {
411
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeBottomLeft, classes.stripeGradientBottomLeft)
412
- })));
413
- break;
414
-
415
- case 'credit-card':
416
- case 'debit-card':
417
- cardLayout = _react.default.createElement("div", {
418
- className: (0, _classnames.default)(classes.bankCard, classes.shadow),
419
- style: {
420
- background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
421
- }
422
- }, _react.default.createElement("span", {
423
- className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
424
- }, imgComponent), _react.default.createElement("span", {
425
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
426
- }), _react.default.createElement("div", {
427
- className: (0, _classnames.default)(classes.number, classes.cardNumber)
428
- }, formatNumber), cardNumber && _react.default.createElement("div", {
429
- className: (0, _classnames.default)(classes.labelMedium, classes.cardNumberLabel)
430
- }, "Card number"), _react.default.createElement("div", {
431
- className: (0, _classnames.default)(classes.labelLarge, classes.userNameCard),
432
- title: username
433
- }, username), _react.default.createElement("div", {
434
- className: classes.dateValid
435
- }, cardValidity), cardValidity && _react.default.createElement("div", {
436
- className: classes.validThru
437
- }, "Valid Thru"));
438
- break;
439
-
440
- case 'corporate':
441
- cardLayout = _react.default.createElement("div", {
442
- className: (0, _classnames.default)(classes.bankCard, classes.shadow),
443
- style: {
444
- background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
445
- }
446
- }, _react.default.createElement("span", {
447
- className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
448
- }, imgComponent), _react.default.createElement("span", {
449
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
450
- }, _react.default.createElement("div", {
451
- className: classes.corporateLabel,
452
- style: {
453
- color: color1
454
- }
455
- }, "CORPORATE")), cardNumber && _react.default.createElement("div", {
456
- className: (0, _classnames.default)(classes.labelMedium, classes.corporateNumberLabel)
457
- }, "Card number"), _react.default.createElement("div", {
458
- className: (0, _classnames.default)(classes.number, classes.corporateNumber)
459
- }, cardNumber), yearMember && _react.default.createElement("div", {
460
- className: classes.memberSince
461
- }, "Member Since"), _react.default.createElement("div", {
462
- className: classes.yearMember
463
- }, yearMember), _react.default.createElement("div", {
464
- className: classes.dateValid
465
- }, cardValidity), cardValidity && _react.default.createElement("div", {
466
- className: classes.validThru
467
- }, "Valid Thru"), _react.default.createElement("div", {
468
- className: (0, _classnames.default)(classes.labelLarge, classes.userNameCorporate),
469
- title: cardUser
470
- }, cardUser), _react.default.createElement("div", {
471
- className: (0, _classnames.default)(classes.labelLarge, classes.businessName),
472
- title: businessName
473
- }, businessName));
474
- break;
475
-
476
- case 'open-invoice':
477
- case 'payment-reference':
478
- case 'credit-consumption':
479
- case 'realtime-banking':
480
- cardLayout = _react.default.createElement("div", {
481
- className: (0, _classnames.default)(classes.sepa, classes.shadow),
482
- style: {
483
- background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
484
- }
485
- }, _react.default.createElement("span", {
486
- className: (0, _classnames.default)(classes.stripe, classes.stripeTopLeft)
487
- }, imgComponent), _react.default.createElement("span", {
488
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopLeft, classes.stripeGradientTopLeft)
489
- }), cardNumber && _react.default.createElement("div", {
490
- className: (0, _classnames.default)(classes.labelMedium, classes.ibanLabel)
491
- }, "IBAN"), _react.default.createElement("div", {
492
- className: (0, _classnames.default)(classes.number, classes.ibanNumber)
493
- }, formatNumber), _react.default.createElement("div", {
494
- className: (0, _classnames.default)(classes.labelLarge, classes.userNameSepa),
495
- title: username
496
- }, username), _react.default.createElement("div", {
497
- className: (0, _classnames.default)(classes.labelLarge, classes.labelDebitCredit)
498
- }, creditDebit));
499
- break;
500
-
501
- case 'prepaid-card':
502
- cardLayout = _react.default.createElement("div", {
503
- className: (0, _classnames.default)(classes.bankCard, classes.shadow),
504
- style: {
505
- background: "url(\"".concat(svgPath, "Gift_shape.svg\"), linear-gradient(").concat(color1, ",\n ").concat(color2 || color1, ")")
506
- }
507
- }, _react.default.createElement("span", {
508
- className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
509
- }, imgComponent), _react.default.createElement("span", {
510
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
511
- }, _react.default.createElement("img", {
512
- src: logoMerchant,
513
- alt: '',
514
- className: (0, _classnames.default)(classes.logo, classes.logoMerchant)
515
- })), cardNumber && _react.default.createElement("div", {
516
- className: (0, _classnames.default)(classes.labelMedium, classes.giftCardNumberLabel)
517
- }, "Card number"), _react.default.createElement("div", {
518
- className: (0, _classnames.default)(classes.number, classes.giftCardNumber)
519
- }, cardNumber), _react.default.createElement("div", {
520
- className: (0, _classnames.default)(classes.labelLarge, classes.labelDebitCredit)
521
- }, translations.gift_card));
522
- break;
523
-
524
- default:
525
- cardLayout = _react.default.createElement("div", {
526
- className: (0, _classnames.default)(classes.bankCard, classes.shadow),
527
- style: {
528
- background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
529
- }
530
- }, _react.default.createElement("span", {
531
- className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
532
- }, imgComponent), _react.default.createElement("span", {
533
- className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
534
- }), _react.default.createElement("div", {
535
- className: (0, _classnames.default)(classes.number, classes.cardNumber)
536
- }, cardNumber), cardNumber && _react.default.createElement("div", {
537
- className: (0, _classnames.default)(classes.labelMedium, classes.cardNumberLabel)
538
- }, "Card number"), _react.default.createElement("div", {
539
- className: (0, _classnames.default)(classes.labelLarge, classes.userNameCard),
540
- title: username
541
- }, username), _react.default.createElement("div", {
542
- className: classes.dateValid
543
- }, cardValidity), cardValidity && _react.default.createElement("div", {
544
- className: classes.validThru
545
- }, "Valid Thru"));
546
- }
547
-
548
- return cardLayout;
549
- };
550
-
551
- _this.formatCardNumber = function (cardNumber) {
552
- if (cardNumber.search(/X/g) >= 0) {
553
- cardNumber = cardNumber.replace(/X/g, '*');
554
- }
555
-
556
- if (cardNumber.search(' ') < 0) {
557
- cardNumber = "".concat(cardNumber.substring(0, 4), " ").concat(cardNumber.substring(4, 8), " ").concat(cardNumber.substring(8, 12), " ").concat(cardNumber.substring(12, 16));
558
406
  }
559
-
560
- return cardNumber;
561
- };
562
-
563
- _this.formatIBANNumber = function (iban) {
564
- // 1) remove spaces
565
- var res = iban.replace(/\s/g, ''); // 2) add space each 4 chars
566
-
567
- return (0, _toConsumableArray2.default)(res).map(function (char, index) {
568
- return index > 0 && index % 4 === 0 ? ' ' + char : char;
569
- }).join('');
570
- };
571
-
572
- return _this;
407
+ });
408
+ }, [classes, fallbackImage, logo, type, svgPath]); // RENDER
409
+
410
+ switch (type) {
411
+ case EWALLET:
412
+ return _react.default.createElement("div", {
413
+ className: classes.walletShadow,
414
+ style: {
415
+ backgroundImage: "url(\"".concat(svgPath, "Wallet_shape.svg\")")
416
+ }
417
+ }, _react.default.createElement("div", {
418
+ className: classes.wallet,
419
+ style: {
420
+ background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")"),
421
+ WebkitMask: "url(\"".concat(svgPath, "Wallet_shape.svg\")")
422
+ }
423
+ }, _react.default.createElement("div", {
424
+ className: (0, _classnames.default)(classes.labelLarge, classes.userNameWallet),
425
+ title: username
426
+ }, username), _react.default.createElement("span", {
427
+ className: (0, _classnames.default)(classes.stripe, classes.stripeBottomLeft)
428
+ }, imgComponent), _react.default.createElement("span", {
429
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeBottomLeft, classes.stripeGradientBottomLeft)
430
+ })));
431
+
432
+ case "credit-card":
433
+ case "debit-card":
434
+ return _react.default.createElement("div", {
435
+ className: (0, _classnames.default)(classes.bankCard, classes.shadow),
436
+ style: {
437
+ background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
438
+ }
439
+ }, _react.default.createElement("span", {
440
+ className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
441
+ }, imgComponent), _react.default.createElement("span", {
442
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
443
+ }), _react.default.createElement("div", {
444
+ className: (0, _classnames.default)(classes.number, classes.cardNumber)
445
+ }, formatNumber), cardNumber && _react.default.createElement("div", {
446
+ className: (0, _classnames.default)(classes.labelMedium, classes.cardNumberLabel)
447
+ }, "Card number"), _react.default.createElement("div", {
448
+ className: (0, _classnames.default)(classes.labelLarge, classes.userNameCard),
449
+ title: username
450
+ }, username), _react.default.createElement("div", {
451
+ className: classes.dateValid
452
+ }, cardValidity), cardValidity && _react.default.createElement("div", {
453
+ className: classes.validThru
454
+ }, "Valid Thru"));
455
+
456
+ case "corporate":
457
+ return _react.default.createElement("div", {
458
+ className: (0, _classnames.default)(classes.bankCard, classes.shadow),
459
+ style: {
460
+ background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
461
+ }
462
+ }, _react.default.createElement("span", {
463
+ className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
464
+ }, imgComponent), _react.default.createElement("span", {
465
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
466
+ }, _react.default.createElement("div", {
467
+ className: classes.corporateLabel,
468
+ style: {
469
+ color: color1
470
+ }
471
+ }, "CORPORATE")), cardNumber && _react.default.createElement("div", {
472
+ className: (0, _classnames.default)(classes.labelMedium, classes.corporateNumberLabel)
473
+ }, "Card number"), _react.default.createElement("div", {
474
+ className: (0, _classnames.default)(classes.number, classes.corporateNumber)
475
+ }, cardNumber), yearMember && _react.default.createElement("div", {
476
+ className: classes.memberSince
477
+ }, "Member Since"), _react.default.createElement("div", {
478
+ className: classes.yearMember
479
+ }, yearMember), _react.default.createElement("div", {
480
+ className: classes.dateValid
481
+ }, cardValidity), cardValidity && _react.default.createElement("div", {
482
+ className: classes.validThru
483
+ }, "Valid Thru"), _react.default.createElement("div", {
484
+ className: (0, _classnames.default)(classes.labelLarge, classes.userNameCorporate),
485
+ title: cardUser
486
+ }, cardUser), _react.default.createElement("div", {
487
+ className: (0, _classnames.default)(classes.labelLarge, classes.businessName),
488
+ title: businessName
489
+ }, businessName));
490
+
491
+ case OPEN_INVOICE:
492
+ case PAYMENT_REFERENCE:
493
+ case CREDIT_CONSUMPTION:
494
+ case REALTIME_BANKING:
495
+ return _react.default.createElement("div", {
496
+ className: (0, _classnames.default)(classes.sepa, classes.shadow),
497
+ style: {
498
+ background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
499
+ }
500
+ }, _react.default.createElement("span", {
501
+ className: (0, _classnames.default)(classes.stripe, classes.stripeTopLeft)
502
+ }, imgComponent), _react.default.createElement("span", {
503
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopLeft, classes.stripeGradientTopLeft)
504
+ }), cardNumber && _react.default.createElement("div", {
505
+ className: (0, _classnames.default)(classes.labelMedium, classes.ibanLabel)
506
+ }, PAYMENT_REFERENCE === type ? "REFERENCE" : "IBAN"), _react.default.createElement("div", {
507
+ className: (0, _classnames.default)(classes.number, classes.ibanNumber)
508
+ }, formatNumber), _react.default.createElement("div", {
509
+ className: (0, _classnames.default)(classes.labelLarge, classes.userNameSepa),
510
+ title: username
511
+ }, username), _react.default.createElement("div", {
512
+ className: (0, _classnames.default)(classes.labelLarge, classes.labelDebitCredit)
513
+ }, creditDebit));
514
+
515
+ case "prepaid-card":
516
+ return _react.default.createElement("div", {
517
+ className: (0, _classnames.default)(classes.bankCard, classes.shadow),
518
+ style: {
519
+ background: "url(\"".concat(svgPath, "Gift_shape.svg\"), linear-gradient(").concat(color1, ", ").concat(color2 || color1, ")")
520
+ }
521
+ }, _react.default.createElement("span", {
522
+ className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
523
+ }, imgComponent), _react.default.createElement("span", {
524
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
525
+ }, _react.default.createElement("img", {
526
+ src: logoMerchant,
527
+ alt: "",
528
+ className: (0, _classnames.default)(classes.logo, classes.logoMerchant)
529
+ })), cardNumber && _react.default.createElement("div", {
530
+ className: (0, _classnames.default)(classes.labelMedium, classes.giftCardNumberLabel)
531
+ }, "Card number"), _react.default.createElement("div", {
532
+ className: (0, _classnames.default)(classes.number, classes.giftCardNumber)
533
+ }, cardNumber), _react.default.createElement("div", {
534
+ className: (0, _classnames.default)(classes.labelLarge, classes.labelDebitCredit)
535
+ }, translations.gift_card));
536
+
537
+ default:
538
+ return _react.default.createElement("div", {
539
+ className: (0, _classnames.default)(classes.bankCard, classes.shadow),
540
+ style: {
541
+ background: "linear-gradient(".concat(color1, ", ").concat(color2 || color1, ")")
542
+ }
543
+ }, _react.default.createElement("span", {
544
+ className: (0, _classnames.default)(classes.stripe, classes.stripeTopRight)
545
+ }, imgComponent), _react.default.createElement("span", {
546
+ className: (0, _classnames.default)(classes.stripeGradient, classes.stripeTopRight, classes.stripeGradientTopRight)
547
+ }), _react.default.createElement("div", {
548
+ className: (0, _classnames.default)(classes.number, classes.cardNumber)
549
+ }, cardNumber), cardNumber && _react.default.createElement("div", {
550
+ className: (0, _classnames.default)(classes.labelMedium, classes.cardNumberLabel)
551
+ }, "Card number"), _react.default.createElement("div", {
552
+ className: (0, _classnames.default)(classes.labelLarge, classes.userNameCard),
553
+ title: username
554
+ }, username), _react.default.createElement("div", {
555
+ className: classes.dateValid
556
+ }, cardValidity), cardValidity && _react.default.createElement("div", {
557
+ className: classes.validThru
558
+ }, "Valid Thru"));
573
559
  }
574
-
575
- (0, _createClass2.default)(HiPaymentMeans, [{
576
- key: "render",
577
- value: function render() {
578
- return this.buildPaymentLayoutByType();
579
- }
580
- }]);
581
- return HiPaymentMeans;
582
- }(_react.default.Component);
560
+ };
583
561
 
584
562
  HiPaymentMeans.defaultProps = {
585
- cardUserGender: 'U',
563
+ cardUserGender: "U",
586
564
  credit: true,
587
565
  translations: {
588
- credit: 'credit',
589
- debit: 'debit',
590
- gift_card: 'GIFT CARD',
591
- gender_female: 'Mrs',
592
- gender_male: 'Mr'
566
+ credit: "credit",
567
+ debit: "debit",
568
+ gift_card: "GIFT CARD",
569
+ gender_female: "Mrs",
570
+ gender_male: "Mr"
593
571
  }
594
572
  };
595
-
596
- var _default = (0, _styles.withStyles)(styles, {
597
- hiComponent: true,
598
- name: 'HmuiHiPaymentMean',
599
- withTheme: true
600
- })(HiPaymentMeans);
601
-
573
+ var _default = HiPaymentMeans;
602
574
  exports.default = _default;