@hipay/hipay-material-ui 3.5.1 → 3.6.0-rc1

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.
@@ -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;