@medipass/utils 11.68.0 → 11.68.2

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.
Files changed (96) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/billable-items-01050ba2.js +27 -0
  3. package/blah.js +2 -0
  4. package/build-validation-schema.js +1282 -0
  5. package/businesses-e3a20604.js +53 -0
  6. package/chart.js +45 -0
  7. package/claim-payment-status-formatted.js +12 -0
  8. package/claim-payment-status-icons.js +10 -0
  9. package/claim-payment-status-text-classes.js +10 -0
  10. package/constants.js +460 -0
  11. package/countries.js +1011 -0
  12. package/datetime.js +36 -0
  13. package/document-types-formatted.js +13 -0
  14. package/document-types-icons.js +10 -0
  15. package/document-types-text-classes.js +10 -0
  16. package/documents/workflow-state-formatted-text-classes.js +12 -0
  17. package/documents/workflow-state-formatted.js +15 -0
  18. package/documents/workflow-state-icons.js +10 -0
  19. package/form-applications/assign-values-to-sections.js +29 -0
  20. package/forms-f06ca97e.js +51 -0
  21. package/funders.js +122 -0
  22. package/get-env.js +196 -0
  23. package/get-select-options.js +65 -0
  24. package/get-staff-type-display-name.js +12 -0
  25. package/google-addresses.js +127 -0
  26. package/health-fund-accounts-3cd8650f.js +20 -0
  27. package/health-fund-settings-43327826.js +22 -0
  28. package/health-funds-300facef.js +194 -0
  29. package/i18n/index.js +59 -0
  30. package/i18n/translations.js +36 -0
  31. package/index.js +56 -0
  32. package/intercom.js +101 -0
  33. package/members-cb4f73a9.js +53 -0
  34. package/modalities-b360d521.js +19 -0
  35. package/normalise-abn.js +22 -0
  36. package/package.json +2 -2
  37. package/parse-health-fund-card-fields.js +12 -0
  38. package/patients-2083dd9c.js +46 -0
  39. package/payment-methods-4fa2d01f.js +26 -0
  40. package/payment-options.js +52 -0
  41. package/practices-3e703f22.js +87 -0
  42. package/products-bd313cb4.js +83 -0
  43. package/products.js +31 -0
  44. package/professional-categories-e2e5284b.js +19 -0
  45. package/redux-actions.js +161 -0
  46. package/redux-reducer.js +112 -0
  47. package/sanitise-url.js +17 -0
  48. package/scroll.js +9 -0
  49. package/sensitive-keys.js +9 -0
  50. package/sentry.js +112 -0
  51. package/service-items.js +230 -0
  52. package/services-2e25cdac.js +127 -0
  53. package/specialties-7640b7e3.js +20 -0
  54. package/staff-990794cd.js +161 -0
  55. package/status-icons.js +10 -0
  56. package/status-text-classes.js +10 -0
  57. package/subscriptions-45c1321a.js +160 -0
  58. package/test-framework/fixtures/accounts.js +34 -0
  59. package/test-framework/fixtures/billable-items.js +9 -0
  60. package/test-framework/fixtures/businesses.js +9 -0
  61. package/test-framework/fixtures/documents.js +121 -0
  62. package/test-framework/fixtures/form-application-templates.js +74 -0
  63. package/test-framework/fixtures/form-applications.js +39 -0
  64. package/test-framework/fixtures/forms.js +9 -0
  65. package/test-framework/fixtures/health-fund-accounts.js +9 -0
  66. package/test-framework/fixtures/health-fund-settings.js +9 -0
  67. package/test-framework/fixtures/health-funds.js +10 -0
  68. package/test-framework/fixtures/index.js +45 -0
  69. package/test-framework/fixtures/members.js +9 -0
  70. package/test-framework/fixtures/message-mappings.js +61 -0
  71. package/test-framework/fixtures/modalities.js +9 -0
  72. package/test-framework/fixtures/patients.js +9 -0
  73. package/test-framework/fixtures/payment-methods.js +9 -0
  74. package/test-framework/fixtures/practices.js +11 -0
  75. package/test-framework/fixtures/products.js +10 -0
  76. package/test-framework/fixtures/professional-categories.js +9 -0
  77. package/test-framework/fixtures/services.js +11 -0
  78. package/test-framework/fixtures/specialties.js +9 -0
  79. package/test-framework/fixtures/staff.js +12 -0
  80. package/test-framework/fixtures/subscriptions.js +13 -0
  81. package/test-framework/fixtures/transaction-reports.js +204 -0
  82. package/test-framework/fixtures/transactions.js +22 -0
  83. package/test-framework/fixtures/workflow-exceptions.js +32 -0
  84. package/test-framework/react.js +38 -0
  85. package/transaction-details-by-funder.js +81 -0
  86. package/transaction-status-formatted.js +13 -0
  87. package/transaction-status-helpers.js +77 -0
  88. package/transaction-status-icons.js +10 -0
  89. package/transaction-status-text-classes.js +10 -0
  90. package/transaction-status.js +42 -0
  91. package/transactions-6e5fd92d.js +1883 -0
  92. package/validate-form.js +388 -0
  93. package/validate.js +37 -0
  94. package/webpack-config.js +27 -0
  95. package/workflow-state-formatted-text-classes.js +12 -0
  96. package/workflow-state-formatted.js +13 -0
@@ -0,0 +1,1282 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
+
7
+ var _defineProperty = _interopDefault(require('@babel/runtime/helpers/defineProperty'));
8
+ var yup = require('yup');
9
+ var isMobileNumber = _interopDefault(require('is-mobile-number'));
10
+ var _get = _interopDefault(require('lodash/get'));
11
+
12
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
13
+
14
+ function createCommonjsModule(fn, module) {
15
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
16
+ }
17
+
18
+ var lib = createCommonjsModule(function (module) {
19
+ // Generated by CoffeeScript 1.10.0
20
+ (function() {
21
+ var QJ, rreturn, rtrim;
22
+
23
+ QJ = function(selector) {
24
+ if (QJ.isDOMElement(selector)) {
25
+ return selector;
26
+ }
27
+ return document.querySelectorAll(selector);
28
+ };
29
+
30
+ QJ.isDOMElement = function(el) {
31
+ return el && (el.nodeName != null);
32
+ };
33
+
34
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
35
+
36
+ QJ.trim = function(text) {
37
+ if (text === null) {
38
+ return "";
39
+ } else {
40
+ return (text + "").replace(rtrim, "");
41
+ }
42
+ };
43
+
44
+ rreturn = /\r/g;
45
+
46
+ QJ.val = function(el, val) {
47
+ var ret;
48
+ if (arguments.length > 1) {
49
+ return el.value = val;
50
+ } else {
51
+ ret = el.value;
52
+ if (typeof ret === "string") {
53
+ return ret.replace(rreturn, "");
54
+ } else {
55
+ if (ret === null) {
56
+ return "";
57
+ } else {
58
+ return ret;
59
+ }
60
+ }
61
+ }
62
+ };
63
+
64
+ QJ.preventDefault = function(eventObject) {
65
+ if (typeof eventObject.preventDefault === "function") {
66
+ eventObject.preventDefault();
67
+ return;
68
+ }
69
+ eventObject.returnValue = false;
70
+ return false;
71
+ };
72
+
73
+ QJ.normalizeEvent = function(e) {
74
+ var original;
75
+ original = e;
76
+ e = {
77
+ which: original.which != null ? original.which : void 0,
78
+ target: original.target || original.srcElement,
79
+ preventDefault: function() {
80
+ return QJ.preventDefault(original);
81
+ },
82
+ originalEvent: original,
83
+ data: original.data || original.detail
84
+ };
85
+ if (e.which == null) {
86
+ e.which = original.charCode != null ? original.charCode : original.keyCode;
87
+ }
88
+ return e;
89
+ };
90
+
91
+ QJ.on = function(element, eventName, callback) {
92
+ var el, i, j, len, len1, multEventName, originalCallback, ref;
93
+ if (element.length) {
94
+ for (i = 0, len = element.length; i < len; i++) {
95
+ el = element[i];
96
+ QJ.on(el, eventName, callback);
97
+ }
98
+ return;
99
+ }
100
+ if (eventName.match(" ")) {
101
+ ref = eventName.split(" ");
102
+ for (j = 0, len1 = ref.length; j < len1; j++) {
103
+ multEventName = ref[j];
104
+ QJ.on(element, multEventName, callback);
105
+ }
106
+ return;
107
+ }
108
+ originalCallback = callback;
109
+ callback = function(e) {
110
+ e = QJ.normalizeEvent(e);
111
+ return originalCallback(e);
112
+ };
113
+ if (element.addEventListener) {
114
+ return element.addEventListener(eventName, callback, false);
115
+ }
116
+ if (element.attachEvent) {
117
+ eventName = "on" + eventName;
118
+ return element.attachEvent(eventName, callback);
119
+ }
120
+ element['on' + eventName] = callback;
121
+ };
122
+
123
+ QJ.addClass = function(el, className) {
124
+ var e;
125
+ if (el.length) {
126
+ return (function() {
127
+ var i, len, results;
128
+ results = [];
129
+ for (i = 0, len = el.length; i < len; i++) {
130
+ e = el[i];
131
+ results.push(QJ.addClass(e, className));
132
+ }
133
+ return results;
134
+ })();
135
+ }
136
+ if (el.classList) {
137
+ return el.classList.add(className);
138
+ } else {
139
+ return el.className += ' ' + className;
140
+ }
141
+ };
142
+
143
+ QJ.hasClass = function(el, className) {
144
+ var e, hasClass, i, len;
145
+ if (el.length) {
146
+ hasClass = true;
147
+ for (i = 0, len = el.length; i < len; i++) {
148
+ e = el[i];
149
+ hasClass = hasClass && QJ.hasClass(e, className);
150
+ }
151
+ return hasClass;
152
+ }
153
+ if (el.classList) {
154
+ return el.classList.contains(className);
155
+ } else {
156
+ return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
157
+ }
158
+ };
159
+
160
+ QJ.removeClass = function(el, className) {
161
+ var cls, e, i, len, ref, results;
162
+ if (el.length) {
163
+ return (function() {
164
+ var i, len, results;
165
+ results = [];
166
+ for (i = 0, len = el.length; i < len; i++) {
167
+ e = el[i];
168
+ results.push(QJ.removeClass(e, className));
169
+ }
170
+ return results;
171
+ })();
172
+ }
173
+ if (el.classList) {
174
+ ref = className.split(' ');
175
+ results = [];
176
+ for (i = 0, len = ref.length; i < len; i++) {
177
+ cls = ref[i];
178
+ results.push(el.classList.remove(cls));
179
+ }
180
+ return results;
181
+ } else {
182
+ return el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
183
+ }
184
+ };
185
+
186
+ QJ.toggleClass = function(el, className, bool) {
187
+ var e;
188
+ if (el.length) {
189
+ return (function() {
190
+ var i, len, results;
191
+ results = [];
192
+ for (i = 0, len = el.length; i < len; i++) {
193
+ e = el[i];
194
+ results.push(QJ.toggleClass(e, className, bool));
195
+ }
196
+ return results;
197
+ })();
198
+ }
199
+ if (bool) {
200
+ if (!QJ.hasClass(el, className)) {
201
+ return QJ.addClass(el, className);
202
+ }
203
+ } else {
204
+ return QJ.removeClass(el, className);
205
+ }
206
+ };
207
+
208
+ QJ.append = function(el, toAppend) {
209
+ var e;
210
+ if (el.length) {
211
+ return (function() {
212
+ var i, len, results;
213
+ results = [];
214
+ for (i = 0, len = el.length; i < len; i++) {
215
+ e = el[i];
216
+ results.push(QJ.append(e, toAppend));
217
+ }
218
+ return results;
219
+ })();
220
+ }
221
+ return el.insertAdjacentHTML('beforeend', toAppend);
222
+ };
223
+
224
+ QJ.find = function(el, selector) {
225
+ if (el instanceof NodeList || el instanceof Array) {
226
+ el = el[0];
227
+ }
228
+ return el.querySelectorAll(selector);
229
+ };
230
+
231
+ QJ.trigger = function(el, name, data) {
232
+ var ev;
233
+ try {
234
+ ev = new CustomEvent(name, {
235
+ detail: data
236
+ });
237
+ } catch (error) {
238
+ ev = document.createEvent('CustomEvent');
239
+ if (ev.initCustomEvent) {
240
+ ev.initCustomEvent(name, true, true, data);
241
+ } else {
242
+ ev.initEvent(name, true, true, data);
243
+ }
244
+ }
245
+ return el.dispatchEvent(ev);
246
+ };
247
+
248
+ module.exports = QJ;
249
+
250
+ }).call(commonjsGlobal);
251
+ });
252
+
253
+ var lib$1 = createCommonjsModule(function (module) {
254
+ // Generated by CoffeeScript 1.10.0
255
+ (function() {
256
+ var Payment, QJ, cardFromNumber, cardFromType, cards, defaultFormat, formatBackCardNumber, formatBackExpiry, formatCardNumber, formatExpiry, formatForwardExpiry, formatForwardSlash, formatMonthExpiry, hasTextSelected, luhnCheck, reFormatCardNumber, restrictCVC, restrictCardNumber, restrictCombinedExpiry, restrictExpiry, restrictMonthExpiry, restrictNumeric, restrictYearExpiry, setCardType,
257
+ indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
258
+
259
+ QJ = lib;
260
+
261
+ defaultFormat = /(\d{1,4})/g;
262
+
263
+ cards = [
264
+ {
265
+ type: 'amex',
266
+ pattern: /^3[47]/,
267
+ format: /(\d{1,4})(\d{1,6})?(\d{1,5})?/,
268
+ length: [15],
269
+ cvcLength: [4],
270
+ luhn: true
271
+ }, {
272
+ type: 'dankort',
273
+ pattern: /^5019/,
274
+ format: defaultFormat,
275
+ length: [16],
276
+ cvcLength: [3],
277
+ luhn: true
278
+ }, {
279
+ type: 'hipercard',
280
+ pattern: /^(384100|384140|384160|606282|637095|637568|60(?!11))/,
281
+ format: defaultFormat,
282
+ length: [14, 15, 16, 17, 18, 19],
283
+ cvcLength: [3],
284
+ luhn: true
285
+ }, {
286
+ type: 'dinersclub',
287
+ pattern: /^(36|38|30[0-5])/,
288
+ format: /(\d{1,4})(\d{1,6})?(\d{1,4})?/,
289
+ length: [14],
290
+ cvcLength: [3],
291
+ luhn: true
292
+ }, {
293
+ type: 'discover',
294
+ pattern: /^(6011|65|64[4-9]|622)/,
295
+ format: defaultFormat,
296
+ length: [16],
297
+ cvcLength: [3],
298
+ luhn: true
299
+ }, {
300
+ type: 'jcb',
301
+ pattern: /^35/,
302
+ format: defaultFormat,
303
+ length: [16],
304
+ cvcLength: [3],
305
+ luhn: true
306
+ }, {
307
+ type: 'laser',
308
+ pattern: /^(6706|6771|6709)/,
309
+ format: defaultFormat,
310
+ length: [16, 17, 18, 19],
311
+ cvcLength: [3],
312
+ luhn: true
313
+ }, {
314
+ type: 'maestro',
315
+ pattern: /^(5018|5020|5038|6304|6703|6708|6759|676[1-3])/,
316
+ format: defaultFormat,
317
+ length: [12, 13, 14, 15, 16, 17, 18, 19],
318
+ cvcLength: [3],
319
+ luhn: true
320
+ }, {
321
+ type: 'mastercard',
322
+ pattern: /^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/,
323
+ format: defaultFormat,
324
+ length: [16],
325
+ cvcLength: [3],
326
+ luhn: true
327
+ }, {
328
+ type: 'unionpay',
329
+ pattern: /^62/,
330
+ format: defaultFormat,
331
+ length: [16, 17, 18, 19],
332
+ cvcLength: [3],
333
+ luhn: false
334
+ }, {
335
+ type: 'visaelectron',
336
+ pattern: /^4(026|17500|405|508|844|91[37])/,
337
+ format: defaultFormat,
338
+ length: [16],
339
+ cvcLength: [3],
340
+ luhn: true
341
+ }, {
342
+ type: 'elo',
343
+ pattern: /^(4011(78|79)|43(1274|8935)|45(1416|7393|763(1|2))|50(4175|6699|67[0-7][0-9]|9000)|627780|63(6297|6368)|650(03([^4])|04([0-9])|05(0|1)|4(0[5-9]|3[0-9]|8[5-9]|9[0-9])|5([0-2][0-9]|3[0-8])|9([2-6][0-9]|7[0-8])|541|700|720|901)|651652|655000|655021)/,
344
+ format: defaultFormat,
345
+ length: [16],
346
+ cvcLength: [3],
347
+ luhn: true
348
+ }, {
349
+ type: 'visa',
350
+ pattern: /^4/,
351
+ format: defaultFormat,
352
+ length: [13, 16, 19],
353
+ cvcLength: [3],
354
+ luhn: true
355
+ }
356
+ ];
357
+
358
+ cardFromNumber = function(num) {
359
+ var card, j, len;
360
+ num = (num + '').replace(/\D/g, '');
361
+ for (j = 0, len = cards.length; j < len; j++) {
362
+ card = cards[j];
363
+ if (card.pattern.test(num)) {
364
+ return card;
365
+ }
366
+ }
367
+ };
368
+
369
+ cardFromType = function(type) {
370
+ var card, j, len;
371
+ for (j = 0, len = cards.length; j < len; j++) {
372
+ card = cards[j];
373
+ if (card.type === type) {
374
+ return card;
375
+ }
376
+ }
377
+ };
378
+
379
+ luhnCheck = function(num) {
380
+ var digit, digits, j, len, odd, sum;
381
+ odd = true;
382
+ sum = 0;
383
+ digits = (num + '').split('').reverse();
384
+ for (j = 0, len = digits.length; j < len; j++) {
385
+ digit = digits[j];
386
+ digit = parseInt(digit, 10);
387
+ if ((odd = !odd)) {
388
+ digit *= 2;
389
+ }
390
+ if (digit > 9) {
391
+ digit -= 9;
392
+ }
393
+ sum += digit;
394
+ }
395
+ return sum % 10 === 0;
396
+ };
397
+
398
+ hasTextSelected = function(target) {
399
+ var ref;
400
+ try {
401
+ if ((target.selectionStart != null) && target.selectionStart !== target.selectionEnd) {
402
+ return true;
403
+ }
404
+ if ((typeof document !== "undefined" && document !== null ? (ref = document.selection) != null ? ref.createRange : void 0 : void 0) != null) {
405
+ if (document.selection.createRange().text) {
406
+ return true;
407
+ }
408
+ }
409
+ } catch (error) {
410
+ }
411
+ return false;
412
+ };
413
+
414
+ reFormatCardNumber = function(e) {
415
+ return setTimeout((function(_this) {
416
+ return function() {
417
+ var target, value;
418
+ target = e.target;
419
+ value = QJ.val(target);
420
+ value = Payment.fns.formatCardNumber(value);
421
+ QJ.val(target, value);
422
+ return QJ.trigger(target, 'change');
423
+ };
424
+ })());
425
+ };
426
+
427
+ formatCardNumber = function(maxLength) {
428
+ return function(e) {
429
+ var card, digit, i, j, len, length, re, target, upperLength, upperLengths, value;
430
+ digit = String.fromCharCode(e.which);
431
+ if (!/^\d+$/.test(digit)) {
432
+ return;
433
+ }
434
+ target = e.target;
435
+ value = QJ.val(target);
436
+ card = cardFromNumber(value + digit);
437
+ length = (value.replace(/\D/g, '') + digit).length;
438
+ upperLengths = [16];
439
+ if (card) {
440
+ upperLengths = card.length;
441
+ }
442
+ if (maxLength) {
443
+ upperLengths = upperLengths.filter(function(x) {
444
+ return x <= maxLength;
445
+ });
446
+ }
447
+ for (i = j = 0, len = upperLengths.length; j < len; i = ++j) {
448
+ upperLength = upperLengths[i];
449
+ if (length >= upperLength && upperLengths[i + 1]) {
450
+ continue;
451
+ }
452
+ if (length >= upperLength) {
453
+ return;
454
+ }
455
+ }
456
+ if (hasTextSelected(target)) {
457
+ return;
458
+ }
459
+ if (card && card.type === 'amex') {
460
+ re = /^(\d{4}|\d{4}\s\d{6})$/;
461
+ } else {
462
+ re = /(?:^|\s)(\d{4})$/;
463
+ }
464
+ if (re.test(value)) {
465
+ e.preventDefault();
466
+ QJ.val(target, value + ' ' + digit);
467
+ return QJ.trigger(target, 'change');
468
+ }
469
+ };
470
+ };
471
+
472
+ formatBackCardNumber = function(e) {
473
+ var target, value;
474
+ target = e.target;
475
+ value = QJ.val(target);
476
+ if (e.meta) {
477
+ return;
478
+ }
479
+ if (e.which !== 8) {
480
+ return;
481
+ }
482
+ if (hasTextSelected(target)) {
483
+ return;
484
+ }
485
+ if (/\d\s$/.test(value)) {
486
+ e.preventDefault();
487
+ QJ.val(target, value.replace(/\d\s$/, ''));
488
+ return QJ.trigger(target, 'change');
489
+ } else if (/\s\d?$/.test(value)) {
490
+ e.preventDefault();
491
+ QJ.val(target, value.replace(/\s\d?$/, ''));
492
+ return QJ.trigger(target, 'change');
493
+ }
494
+ };
495
+
496
+ formatExpiry = function(e) {
497
+ var digit, target, val;
498
+ digit = String.fromCharCode(e.which);
499
+ if (!/^\d+$/.test(digit)) {
500
+ return;
501
+ }
502
+ target = e.target;
503
+ val = QJ.val(target) + digit;
504
+ if (/^\d$/.test(val) && (val !== '0' && val !== '1')) {
505
+ e.preventDefault();
506
+ QJ.val(target, "0" + val + " / ");
507
+ return QJ.trigger(target, 'change');
508
+ } else if (/^\d\d$/.test(val)) {
509
+ e.preventDefault();
510
+ QJ.val(target, val + " / ");
511
+ return QJ.trigger(target, 'change');
512
+ }
513
+ };
514
+
515
+ formatMonthExpiry = function(e) {
516
+ var digit, target, val;
517
+ digit = String.fromCharCode(e.which);
518
+ if (!/^\d+$/.test(digit)) {
519
+ return;
520
+ }
521
+ target = e.target;
522
+ val = QJ.val(target) + digit;
523
+ if (/^\d$/.test(val) && (val !== '0' && val !== '1')) {
524
+ e.preventDefault();
525
+ QJ.val(target, "0" + val);
526
+ return QJ.trigger(target, 'change');
527
+ } else if (/^\d\d$/.test(val)) {
528
+ e.preventDefault();
529
+ QJ.val(target, "" + val);
530
+ return QJ.trigger(target, 'change');
531
+ }
532
+ };
533
+
534
+ formatForwardExpiry = function(e) {
535
+ var digit, target, val;
536
+ digit = String.fromCharCode(e.which);
537
+ if (!/^\d+$/.test(digit)) {
538
+ return;
539
+ }
540
+ target = e.target;
541
+ val = QJ.val(target);
542
+ if (/^\d\d$/.test(val)) {
543
+ QJ.val(target, val + " / ");
544
+ return QJ.trigger(target, 'change');
545
+ }
546
+ };
547
+
548
+ formatForwardSlash = function(e) {
549
+ var slash, target, val;
550
+ slash = String.fromCharCode(e.which);
551
+ if (slash !== '/') {
552
+ return;
553
+ }
554
+ target = e.target;
555
+ val = QJ.val(target);
556
+ if (/^\d$/.test(val) && val !== '0') {
557
+ QJ.val(target, "0" + val + " / ");
558
+ return QJ.trigger(target, 'change');
559
+ }
560
+ };
561
+
562
+ formatBackExpiry = function(e) {
563
+ var target, value;
564
+ if (e.metaKey) {
565
+ return;
566
+ }
567
+ target = e.target;
568
+ value = QJ.val(target);
569
+ if (e.which !== 8) {
570
+ return;
571
+ }
572
+ if (hasTextSelected(target)) {
573
+ return;
574
+ }
575
+ if (/\d(\s|\/)+$/.test(value)) {
576
+ e.preventDefault();
577
+ QJ.val(target, value.replace(/\d(\s|\/)*$/, ''));
578
+ return QJ.trigger(target, 'change');
579
+ } else if (/\s\/\s?\d?$/.test(value)) {
580
+ e.preventDefault();
581
+ QJ.val(target, value.replace(/\s\/\s?\d?$/, ''));
582
+ return QJ.trigger(target, 'change');
583
+ }
584
+ };
585
+
586
+ restrictNumeric = function(e) {
587
+ var input;
588
+ if (e.metaKey || e.ctrlKey) {
589
+ return true;
590
+ }
591
+ if (e.which === 32) {
592
+ return e.preventDefault();
593
+ }
594
+ if (e.which === 0) {
595
+ return true;
596
+ }
597
+ if (e.which < 33) {
598
+ return true;
599
+ }
600
+ input = String.fromCharCode(e.which);
601
+ if (!/[\d\s]/.test(input)) {
602
+ return e.preventDefault();
603
+ }
604
+ };
605
+
606
+ restrictCardNumber = function(maxLength) {
607
+ return function(e) {
608
+ var card, digit, length, target, value;
609
+ target = e.target;
610
+ digit = String.fromCharCode(e.which);
611
+ if (!/^\d+$/.test(digit)) {
612
+ return;
613
+ }
614
+ if (hasTextSelected(target)) {
615
+ return;
616
+ }
617
+ value = (QJ.val(target) + digit).replace(/\D/g, '');
618
+ card = cardFromNumber(value);
619
+ length = 16;
620
+ if (card) {
621
+ length = card.length[card.length.length - 1];
622
+ }
623
+ if (maxLength) {
624
+ length = Math.min(length, maxLength);
625
+ }
626
+ if (!(value.length <= length)) {
627
+ return e.preventDefault();
628
+ }
629
+ };
630
+ };
631
+
632
+ restrictExpiry = function(e, length) {
633
+ var digit, target, value;
634
+ target = e.target;
635
+ digit = String.fromCharCode(e.which);
636
+ if (!/^\d+$/.test(digit)) {
637
+ return;
638
+ }
639
+ if (hasTextSelected(target)) {
640
+ return;
641
+ }
642
+ value = QJ.val(target) + digit;
643
+ value = value.replace(/\D/g, '');
644
+ if (value.length > length) {
645
+ return e.preventDefault();
646
+ }
647
+ };
648
+
649
+ restrictCombinedExpiry = function(e) {
650
+ return restrictExpiry(e, 6);
651
+ };
652
+
653
+ restrictMonthExpiry = function(e) {
654
+ return restrictExpiry(e, 2);
655
+ };
656
+
657
+ restrictYearExpiry = function(e) {
658
+ return restrictExpiry(e, 4);
659
+ };
660
+
661
+ restrictCVC = function(e) {
662
+ var digit, target, val;
663
+ target = e.target;
664
+ digit = String.fromCharCode(e.which);
665
+ if (!/^\d+$/.test(digit)) {
666
+ return;
667
+ }
668
+ if (hasTextSelected(target)) {
669
+ return;
670
+ }
671
+ val = QJ.val(target) + digit;
672
+ if (!(val.length <= 4)) {
673
+ return e.preventDefault();
674
+ }
675
+ };
676
+
677
+ setCardType = function(e) {
678
+ var allTypes, card, cardType, target, val;
679
+ target = e.target;
680
+ val = QJ.val(target);
681
+ cardType = Payment.fns.cardType(val) || 'unknown';
682
+ if (!QJ.hasClass(target, cardType)) {
683
+ allTypes = (function() {
684
+ var j, len, results;
685
+ results = [];
686
+ for (j = 0, len = cards.length; j < len; j++) {
687
+ card = cards[j];
688
+ results.push(card.type);
689
+ }
690
+ return results;
691
+ })();
692
+ QJ.removeClass(target, 'unknown');
693
+ QJ.removeClass(target, allTypes.join(' '));
694
+ QJ.addClass(target, cardType);
695
+ QJ.toggleClass(target, 'identified', cardType !== 'unknown');
696
+ return QJ.trigger(target, 'payment.cardType', cardType);
697
+ }
698
+ };
699
+
700
+ Payment = (function() {
701
+ function Payment() {}
702
+
703
+ Payment.fns = {
704
+ cardExpiryVal: function(value) {
705
+ var month, prefix, ref, year;
706
+ value = value.replace(/\s/g, '');
707
+ ref = value.split('/', 2), month = ref[0], year = ref[1];
708
+ if ((year != null ? year.length : void 0) === 2 && /^\d+$/.test(year)) {
709
+ prefix = (new Date).getFullYear();
710
+ prefix = prefix.toString().slice(0, 2);
711
+ year = prefix + year;
712
+ }
713
+ month = parseInt(month, 10);
714
+ year = parseInt(year, 10);
715
+ return {
716
+ month: month,
717
+ year: year
718
+ };
719
+ },
720
+ validateCardNumber: function(num) {
721
+ var card, ref;
722
+ num = (num + '').replace(/\s+|-/g, '');
723
+ if (!/^\d+$/.test(num)) {
724
+ return false;
725
+ }
726
+ card = cardFromNumber(num);
727
+ if (!card) {
728
+ return false;
729
+ }
730
+ return (ref = num.length, indexOf.call(card.length, ref) >= 0) && (card.luhn === false || luhnCheck(num));
731
+ },
732
+ validateCardExpiry: function(month, year) {
733
+ var currentTime, expiry, prefix, ref, ref1;
734
+ if (typeof month === 'object' && 'month' in month) {
735
+ ref = month, month = ref.month, year = ref.year;
736
+ } else if (typeof month === 'string' && indexOf.call(month, '/') >= 0) {
737
+ ref1 = Payment.fns.cardExpiryVal(month), month = ref1.month, year = ref1.year;
738
+ }
739
+ if (!(month && year)) {
740
+ return false;
741
+ }
742
+ month = QJ.trim(month);
743
+ year = QJ.trim(year);
744
+ if (!/^\d+$/.test(month)) {
745
+ return false;
746
+ }
747
+ if (!/^\d+$/.test(year)) {
748
+ return false;
749
+ }
750
+ month = parseInt(month, 10);
751
+ if (!(month && month <= 12)) {
752
+ return false;
753
+ }
754
+ if (year.length === 2) {
755
+ prefix = (new Date).getFullYear();
756
+ prefix = prefix.toString().slice(0, 2);
757
+ year = prefix + year;
758
+ }
759
+ expiry = new Date(year, month);
760
+ currentTime = new Date;
761
+ expiry.setMonth(expiry.getMonth() - 1);
762
+ expiry.setMonth(expiry.getMonth() + 1, 1);
763
+ return expiry > currentTime;
764
+ },
765
+ validateCardCVC: function(cvc, type) {
766
+ var ref, ref1;
767
+ cvc = QJ.trim(cvc);
768
+ if (!/^\d+$/.test(cvc)) {
769
+ return false;
770
+ }
771
+ if (type && cardFromType(type)) {
772
+ return ref = cvc.length, indexOf.call((ref1 = cardFromType(type)) != null ? ref1.cvcLength : void 0, ref) >= 0;
773
+ } else {
774
+ return cvc.length >= 3 && cvc.length <= 4;
775
+ }
776
+ },
777
+ cardType: function(num) {
778
+ var ref;
779
+ if (!num) {
780
+ return null;
781
+ }
782
+ return ((ref = cardFromNumber(num)) != null ? ref.type : void 0) || null;
783
+ },
784
+ formatCardNumber: function(num) {
785
+ var card, groups, ref, upperLength;
786
+ card = cardFromNumber(num);
787
+ if (!card) {
788
+ return num;
789
+ }
790
+ upperLength = card.length[card.length.length - 1];
791
+ num = num.replace(/\D/g, '');
792
+ num = num.slice(0, upperLength);
793
+ if (card.format.global) {
794
+ return (ref = num.match(card.format)) != null ? ref.join(' ') : void 0;
795
+ } else {
796
+ groups = card.format.exec(num);
797
+ if (groups == null) {
798
+ return;
799
+ }
800
+ groups.shift();
801
+ groups = groups.filter(function(n) {
802
+ return n;
803
+ });
804
+ return groups.join(' ');
805
+ }
806
+ }
807
+ };
808
+
809
+ Payment.restrictNumeric = function(el) {
810
+ return QJ.on(el, 'keypress', restrictNumeric);
811
+ };
812
+
813
+ Payment.cardExpiryVal = function(el) {
814
+ return Payment.fns.cardExpiryVal(QJ.val(el));
815
+ };
816
+
817
+ Payment.formatCardCVC = function(el) {
818
+ Payment.restrictNumeric(el);
819
+ QJ.on(el, 'keypress', restrictCVC);
820
+ return el;
821
+ };
822
+
823
+ Payment.formatCardExpiry = function(el) {
824
+ var month, year;
825
+ Payment.restrictNumeric(el);
826
+ if (el.length && el.length === 2) {
827
+ month = el[0], year = el[1];
828
+ this.formatCardExpiryMultiple(month, year);
829
+ } else {
830
+ QJ.on(el, 'keypress', restrictCombinedExpiry);
831
+ QJ.on(el, 'keypress', formatExpiry);
832
+ QJ.on(el, 'keypress', formatForwardSlash);
833
+ QJ.on(el, 'keypress', formatForwardExpiry);
834
+ QJ.on(el, 'keydown', formatBackExpiry);
835
+ }
836
+ return el;
837
+ };
838
+
839
+ Payment.formatCardExpiryMultiple = function(month, year) {
840
+ QJ.on(month, 'keypress', restrictMonthExpiry);
841
+ QJ.on(month, 'keypress', formatMonthExpiry);
842
+ return QJ.on(year, 'keypress', restrictYearExpiry);
843
+ };
844
+
845
+ Payment.formatCardNumber = function(el, maxLength) {
846
+ Payment.restrictNumeric(el);
847
+ QJ.on(el, 'keypress', restrictCardNumber(maxLength));
848
+ QJ.on(el, 'keypress', formatCardNumber(maxLength));
849
+ QJ.on(el, 'keydown', formatBackCardNumber);
850
+ QJ.on(el, 'keyup blur', setCardType);
851
+ QJ.on(el, 'paste', reFormatCardNumber);
852
+ QJ.on(el, 'input', reFormatCardNumber);
853
+ return el;
854
+ };
855
+
856
+ Payment.getCardArray = function() {
857
+ return cards;
858
+ };
859
+
860
+ Payment.setCardArray = function(cardArray) {
861
+ cards = cardArray;
862
+ return true;
863
+ };
864
+
865
+ Payment.addToCardArray = function(cardObject) {
866
+ return cards.push(cardObject);
867
+ };
868
+
869
+ Payment.removeFromCardArray = function(type) {
870
+ var key, value;
871
+ for (key in cards) {
872
+ value = cards[key];
873
+ if (value.type === type) {
874
+ cards.splice(key, 1);
875
+ }
876
+ }
877
+ return true;
878
+ };
879
+
880
+ return Payment;
881
+
882
+ })();
883
+
884
+ module.exports = Payment;
885
+
886
+ commonjsGlobal.Payment = Payment;
887
+
888
+ }).call(commonjsGlobal);
889
+ });
890
+
891
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
892
+
893
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
894
+ var FIELD_VALIDATORS = {
895
+ firstName: {
896
+ type: 'string',
897
+ validators: [{
898
+ type: 'required',
899
+ message: 'Please enter your first name'
900
+ }]
901
+ },
902
+ lastName: {
903
+ type: 'string',
904
+ validators: [{
905
+ type: 'required',
906
+ message: 'Please enter your last name'
907
+ }]
908
+ },
909
+ dob: {
910
+ type: 'string',
911
+ validators: [{
912
+ type: 'required',
913
+ message: 'Please enter your date of birth'
914
+ }, {
915
+ type: 'test',
916
+ message: 'Please enter a valid day between 01 and 31',
917
+ fn: function fn(value) {
918
+ if (!value) {
919
+ return;
920
+ }
921
+
922
+ var day = _get(value.split('/'), '[0]', '').split(' ').join('');
923
+
924
+ return day ? /^0[1-9]|[12][0-9]|3[01]$/.test(day) : true;
925
+ }
926
+ }, {
927
+ type: 'test',
928
+ message: 'Please enter a valid month between 01 and 12',
929
+ fn: function fn(value) {
930
+ if (!value) {
931
+ return;
932
+ }
933
+
934
+ var month = _get(value.split('/'), '[1]', '');
935
+
936
+ return month ? /^(0[1-9]|1[012])$/.test(month) : true;
937
+ }
938
+ }, {
939
+ type: 'test',
940
+ message: 'Please enter a valid year',
941
+ fn: function fn(value) {
942
+ if (!value) {
943
+ return;
944
+ }
945
+
946
+ var year = _get(value.split('/'), '[2]', '');
947
+
948
+ return year ? /^[0-9]{4}$/.test(year) : true;
949
+ }
950
+ }, {
951
+ type: 'test',
952
+ message: 'Please enter a year greater than 1900',
953
+ fn: function fn(value) {
954
+ if (!value) {
955
+ return;
956
+ }
957
+
958
+ var year = _get(value.split('/'), '[2]', '');
959
+
960
+ return year ? parseInt(year, 10) >= 1900 : true;
961
+ }
962
+ }, {
963
+ type: 'test',
964
+ message: "Please enter a year before " + (new Date().getFullYear() + 1),
965
+ fn: function fn(value) {
966
+ if (!value) {
967
+ return;
968
+ }
969
+
970
+ var year = _get(value.split('/'), '[2]', '');
971
+
972
+ return year ? parseInt(year, 10) <= new Date().getFullYear() : true;
973
+ }
974
+ }]
975
+ },
976
+ email: {
977
+ type: 'string',
978
+ validators: [{
979
+ type: 'required',
980
+ message: 'Please enter your email address'
981
+ }, {
982
+ type: 'email',
983
+ message: 'Please enter a valid email address'
984
+ }]
985
+ },
986
+ mobile: {
987
+ type: 'string',
988
+ validators: [{
989
+ type: 'required',
990
+ message: 'Please enter your mobile number'
991
+ }, {
992
+ type: 'test',
993
+ message: 'Please enter a valid Australian mobile number',
994
+ fn: function fn(value) {
995
+ return value ? isMobileNumber(value, 'AU') : true;
996
+ }
997
+ }]
998
+ },
999
+ password: {
1000
+ type: 'string',
1001
+ validators: [{
1002
+ type: 'required',
1003
+ message: 'Please enter your password'
1004
+ }]
1005
+ },
1006
+ newPassword: {
1007
+ type: 'string',
1008
+ validators: [{
1009
+ key: 'required',
1010
+ type: 'required',
1011
+ message: 'Please enter your new password'
1012
+ }, {
1013
+ key: 'min-characters',
1014
+ type: 'min',
1015
+ length: 8,
1016
+ message: 'Your password must have at least 8 characters'
1017
+ }, {
1018
+ key: 'uppercase',
1019
+ type: 'matches',
1020
+ pattern: /[A-Z]/,
1021
+ message: 'Your password must have an uppercase character'
1022
+ }, {
1023
+ key: 'number',
1024
+ type: 'matches',
1025
+ pattern: /[0-9]/,
1026
+ message: 'Your password must have a number'
1027
+ }, {
1028
+ key: 'special-character',
1029
+ type: 'matches',
1030
+ pattern: /[!@?#$%^&*)(+=._-]/,
1031
+ message: 'Your password must have a special character (e.g. ! or @ or #)'
1032
+ }]
1033
+ },
1034
+ repeatPassword: {
1035
+ type: 'string',
1036
+ validators: [{
1037
+ type: 'required',
1038
+ message: 'Enter your new password again'
1039
+ }, {
1040
+ type: 'oneOf',
1041
+ fieldName: 'password',
1042
+ message: 'This password does not match the other password'
1043
+ }]
1044
+ },
1045
+ cardNumber: {
1046
+ type: 'string',
1047
+ validators: [{
1048
+ type: 'required',
1049
+ message: 'Please enter a card number'
1050
+ }, {
1051
+ type: 'test',
1052
+ message: 'Please enter a valid card number',
1053
+ fn: function fn(value) {
1054
+ return lib$1.fns.validateCardNumber(value);
1055
+ }
1056
+ }]
1057
+ },
1058
+ expiry: {
1059
+ type: 'string',
1060
+ validators: [{
1061
+ type: 'required',
1062
+ message: 'Please enter an expiry'
1063
+ }, {
1064
+ type: 'test',
1065
+ message: 'Please enter a valid expiry',
1066
+ fn: function fn(value) {
1067
+ return lib$1.fns.validateCardExpiry(value);
1068
+ }
1069
+ }]
1070
+ },
1071
+ cvc: {
1072
+ type: 'string',
1073
+ validators: [{
1074
+ type: 'required',
1075
+ message: 'Please enter a CVC'
1076
+ }, {
1077
+ type: 'test',
1078
+ message: 'Please enter a valid CVC',
1079
+ fn: function fn(value) {
1080
+ return lib$1.fns.validateCardCVC(value);
1081
+ }
1082
+ }]
1083
+ }
1084
+ };
1085
+
1086
+ var getFieldSchema = function getFieldSchema(field) {
1087
+ var key = field.key || field.name;
1088
+ var defaultFieldExists = Boolean(FIELD_VALIDATORS[key]);
1089
+ var fieldAttributes = defaultFieldExists ? FIELD_VALIDATORS[key] : field;
1090
+ var schema = yup;
1091
+
1092
+ switch (fieldAttributes.type) {
1093
+ case 'string':
1094
+ {
1095
+ schema = schema.string();
1096
+ break;
1097
+ }
1098
+
1099
+ case 'object':
1100
+ {
1101
+ schema = schema.object();
1102
+ break;
1103
+ }
1104
+
1105
+ case 'array':
1106
+ {
1107
+ schema = schema.array();
1108
+ break;
1109
+ }
1110
+
1111
+ case 'boolean':
1112
+ {
1113
+ schema = schema.boolean();
1114
+ break;
1115
+ }
1116
+
1117
+ case 'date':
1118
+ {
1119
+ schema = schema.date();
1120
+ break;
1121
+ }
1122
+
1123
+ case 'number':
1124
+ {
1125
+ schema = schema.number();
1126
+ break;
1127
+ }
1128
+
1129
+ default:
1130
+ {
1131
+ schema = schema.string();
1132
+ }
1133
+ }
1134
+
1135
+ if (fieldAttributes.validators) {
1136
+ fieldAttributes.validators.forEach(function (validator) {
1137
+ switch (validator.type) {
1138
+ case 'required':
1139
+ {
1140
+ if (defaultFieldExists && !field.required) {
1141
+ return;
1142
+ }
1143
+
1144
+ schema = schema.required(validator.message);
1145
+ break;
1146
+ }
1147
+
1148
+ case 'test':
1149
+ {
1150
+ schema = schema.test(field.name, validator.message, validator.fn);
1151
+ break;
1152
+ }
1153
+
1154
+ case 'email':
1155
+ {
1156
+ schema = schema.email(validator.message);
1157
+ break;
1158
+ }
1159
+
1160
+ case 'min':
1161
+ {
1162
+ schema = schema.min(validator.length, validator.message);
1163
+ break;
1164
+ }
1165
+
1166
+ case 'matches':
1167
+ {
1168
+ schema = schema.matches(validator.pattern, validator.message);
1169
+ break;
1170
+ }
1171
+
1172
+ case 'oneOf':
1173
+ {
1174
+ schema = schema.oneOf([yup.ref(validator.fieldName), null], validator.message);
1175
+ break;
1176
+ }
1177
+ }
1178
+ });
1179
+ }
1180
+
1181
+ return schema;
1182
+ };
1183
+
1184
+ var buildValidationSchema = (function (fields, overrideSchema) {
1185
+ if (overrideSchema === void 0) {
1186
+ overrideSchema = {};
1187
+ }
1188
+
1189
+ var schema = {};
1190
+ fields.forEach(function (field) {
1191
+ if (!field) {
1192
+ return;
1193
+ }
1194
+
1195
+ schema[field.name] = getFieldSchema(field);
1196
+ });
1197
+ return yup.object().shape(_objectSpread({}, schema, {}, overrideSchema));
1198
+ });
1199
+ /* ===== CUSTOM OVERRIDE SCHEMAS ===== */
1200
+
1201
+ var validateHealthFundDate = function validateHealthFundDate(schema, _ref) {
1202
+ var cardFields = _ref.cardFields,
1203
+ fieldKey = _ref.fieldKey,
1204
+ dayKey = _ref.dayKey,
1205
+ monthKey = _ref.monthKey,
1206
+ yearKey = _ref.yearKey;
1207
+ var newSchema = schema;
1208
+
1209
+ if (cardFields[dayKey]) {
1210
+ newSchema = newSchema.test(fieldKey, _get(cardFields, dayKey + ".validation.message"), function (value) {
1211
+ var dateArray = value ? value.split('/') : [];
1212
+ var day = dateArray[0];
1213
+ return new RegExp(_get(cardFields, dayKey + ".validation.regex")).test(day);
1214
+ });
1215
+ }
1216
+
1217
+ if (cardFields[monthKey]) {
1218
+ newSchema = newSchema.test(fieldKey, _get(cardFields, monthKey + ".validation.message"), function (value) {
1219
+ var dateArray = value ? value.split('/') : [];
1220
+ var month = dateArray[dateArray.length - 2];
1221
+ return new RegExp(_get(cardFields, monthKey + ".validation.regex")).test(month);
1222
+ });
1223
+ }
1224
+
1225
+ if (cardFields[yearKey]) {
1226
+ newSchema = newSchema.test(fieldKey, _get(cardFields, yearKey + ".validation.message"), function (value) {
1227
+ var dateArray = value ? value.split('/') : [];
1228
+ var year = dateArray[dateArray.length - 1];
1229
+ return new RegExp(_get(cardFields, yearKey + ".validation.regex")).test(year);
1230
+ });
1231
+ }
1232
+
1233
+ return newSchema;
1234
+ };
1235
+
1236
+ var paymentMethodValidationSchema = [{
1237
+ name: 'cardNumber'
1238
+ }, {
1239
+ name: 'expiry'
1240
+ }, {
1241
+ name: 'cvc'
1242
+ }];
1243
+ var getHealthFundAccountValidationSchema = function getHealthFundAccountValidationSchema(cardFields) {
1244
+ return _objectSpread({}, cardFields.cardNumber ? {
1245
+ cardNumber: yup.string().matches(new RegExp(_get(cardFields, 'cardNumber.validation.regex')), _get(cardFields, 'cardNumber.validation.message')).required("Please enter a " + _get(cardFields, 'cardNumber.displayName', 'card number').toLowerCase())
1246
+ } : {}, {}, cardFields.membershipNumber ? {
1247
+ membershipNumber: yup.string().min(_get(cardFields, 'membershipNumber.minLength'), _get(cardFields, 'membershipNumber.displayName', 'membership number') + " must be at least " + _get(cardFields, 'membershipNumber.minLength') + " numbers").max(_get(cardFields, 'membershipNumber.maxLength', 99), _get(cardFields, 'membershipNumber.displayName', 'membership number') + " must be less than " + _get(cardFields, 'membershipNumber.maxLength') + " numbers").matches(new RegExp(_get(cardFields, 'membershipNumber.validation.regex')), _get(cardFields, 'membershipNumber.validation.message')).required("Please enter a " + _get(cardFields, 'membershipNumber.displayName', 'membership number').toLowerCase())
1248
+ } : {}, {}, cardFields.cardRank ? {
1249
+ cardRank: yup.string().min(_get(cardFields, 'cardRank.minLength'), _get(cardFields, 'cardRank.displayName', 'card rank') + " must be at least " + _get(cardFields, 'cardRank.minLength') + " numbers").max(_get(cardFields, 'cardRank.maxLength', 99), _get(cardFields, 'cardRank.displayName', 'card rank') + " must be less than " + _get(cardFields, 'cardRank.maxLength') + " numbers").matches(new RegExp(_get(cardFields, 'cardRank.validation.regex')), _get(cardFields, 'cardRank.validation.message')).required("Please enter a " + _get(cardFields, 'cardRank.displayName', 'card rank').toLowerCase())
1250
+ } : {}, {}, cardFields.issueDay || cardFields.issueMonth || cardFields.issueYear ? function () {
1251
+ var issueDateSchema = yup.string().required('Please enter an issue date');
1252
+ issueDateSchema = validateHealthFundDate(issueDateSchema, {
1253
+ cardFields: cardFields,
1254
+ fieldKey: 'issueDate',
1255
+ dayKey: 'issueDay',
1256
+ monthKey: 'issueMonth',
1257
+ yearKey: 'issueYear'
1258
+ });
1259
+ return {
1260
+ issueDate: issueDateSchema
1261
+ };
1262
+ }() : {}, {}, cardFields.expiryDay || cardFields.expiryMonth || cardFields.expiryYear ? function () {
1263
+ var expiryDateSchema = yup.string().required('Please enter an expiry date');
1264
+ expiryDateSchema = validateHealthFundDate(expiryDateSchema, {
1265
+ cardFields: cardFields,
1266
+ fieldKey: 'expiryDate',
1267
+ dayKey: 'expiryDay',
1268
+ monthKey: 'expiryMonth',
1269
+ yearKey: 'expiryYear'
1270
+ });
1271
+ return {
1272
+ expiryDate: expiryDateSchema
1273
+ };
1274
+ }() : {}, {}, cardFields.cardIssueNumber ? {
1275
+ cardIssueNumber: yup.string().min(_get(cardFields, 'cardIssueNumber.minLength'), _get(cardFields, 'cardIssueNumber.displayName', 'issue number') + " must be at least " + _get(cardFields, 'cardIssueNumber.minLength') + " numbers").max(_get(cardFields, 'cardIssueNumber.maxLength', 99), _get(cardFields, 'cardIssueNumber.displayName', 'issue number') + " must be less than " + _get(cardFields, 'cardIssueNumber.maxLength') + " numbers").matches(new RegExp(_get(cardFields, 'cardIssueNumber.validation.regex')), _get(cardFields, 'cardIssueNumber.validation.message')).required("Please enter a " + _get(cardFields, 'cardIssueNumber.displayName', 'issue number').toLowerCase())
1276
+ } : {});
1277
+ };
1278
+
1279
+ exports.FIELD_VALIDATORS = FIELD_VALIDATORS;
1280
+ exports.default = buildValidationSchema;
1281
+ exports.getHealthFundAccountValidationSchema = getHealthFundAccountValidationSchema;
1282
+ exports.paymentMethodValidationSchema = paymentMethodValidationSchema;