@websy/websy-designs 1.7.1 → 1.7.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.
@@ -2220,6 +2220,8 @@ class WebsyForm {
2220
2220
  // }
2221
2221
  el.addEventListener('change', this.handleChange.bind(this))
2222
2222
  el.addEventListener('click', this.handleClick.bind(this))
2223
+ el.addEventListener('beforeinput', this.handleBeforeInput.bind(this))
2224
+ el.addEventListener('input', this.handleInput.bind(this))
2223
2225
  el.addEventListener('focusout', this.handleFocusOut.bind(this))
2224
2226
  el.addEventListener('keyup', this.handleKeyUp.bind(this))
2225
2227
  el.addEventListener('keydown', this.handleKeyDown.bind(this))
@@ -2312,7 +2314,7 @@ class WebsyForm {
2312
2314
  let index = event.target.getAttribute('data-index')
2313
2315
  if (this.options.fields[index] && (this.options.fields[index].required || this.options.fields[index].validate)) {
2314
2316
  this.validateField(this.options.fields[index], event.target.value)
2315
- }
2317
+ }
2316
2318
  }
2317
2319
  }
2318
2320
  handleClick (event) {
@@ -2334,20 +2336,72 @@ class WebsyForm {
2334
2336
  }
2335
2337
  }
2336
2338
  handleKeyDown (event) {
2337
- if (event.key === 'enter') {
2339
+ if (event.key === 'enter' && this.options.submitOnEnter === true) {
2338
2340
  this.submitForm()
2339
2341
  }
2342
+ // if (event.target.getAttribute('data-user-type') === 'expiry') {
2343
+ // let isNumeric = !isNaN(event.key)
2344
+ // let validKey = false
2345
+ // if (!validKey) {
2346
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2347
+ // }
2348
+ // if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2349
+ // event.preventDefault()
2350
+ // return false
2351
+ // }
2352
+ // if (event.key === 'Backspace') {
2353
+ // if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2354
+ // let chars = event.target.value.split('')
2355
+ // chars.pop()
2356
+ // event.target.value = chars.join('')
2357
+ // }
2358
+ // }
2359
+ // }
2360
+ // if (event.target.getAttribute('data-user-type') === 'cvv') {
2361
+ // let isNumeric = !isNaN(event.key)
2362
+ // let validKey = false
2363
+ // if (!validKey) {
2364
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2365
+ // }
2366
+ // if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2367
+ // event.preventDefault()
2368
+ // return false
2369
+ // }
2370
+ // }
2371
+ }
2372
+ handleKeyUp (event) {
2373
+ // if (event.target.getAttribute('data-user-type') === 'expiry') {
2374
+ // let chars = event.target.value.split('')
2375
+ // let isNumeric = !isNaN(event.key)
2376
+ // if (event.key === 'Backspace') {
2377
+ // if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2378
+ // chars.pop()
2379
+ // event.target.value = chars.join('')
2380
+ // return
2381
+ // }
2382
+ // }
2383
+ // if (event.target.selectionStart === 2) {
2384
+ // if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2385
+ // event.target.setSelectionRange(3, 3)
2386
+ // }
2387
+ // else if (isNumeric) {
2388
+ // event.target.value += '/'
2389
+ // }
2390
+ // }
2391
+ // }
2392
+ }
2393
+ handleBeforeInput (event) {
2340
2394
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2341
- let isNumeric = !isNaN(event.key)
2395
+ let isNumeric = !isNaN(+event.data)
2342
2396
  let validKey = false
2343
2397
  if (!validKey) {
2344
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2398
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1
2345
2399
  }
2346
2400
  if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2347
2401
  event.preventDefault()
2348
2402
  return false
2349
2403
  }
2350
- if (event.key === 'Backspace') {
2404
+ if (event.inputType === 'deleteContentBackward') {
2351
2405
  if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2352
2406
  let chars = event.target.value.split('')
2353
2407
  chars.pop()
@@ -2356,10 +2410,10 @@ class WebsyForm {
2356
2410
  }
2357
2411
  }
2358
2412
  if (event.target.getAttribute('data-user-type') === 'cvv') {
2359
- let isNumeric = !isNaN(event.key)
2413
+ let isNumeric = !isNaN(+event.data)
2360
2414
  let validKey = false
2361
2415
  if (!validKey) {
2362
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2416
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1
2363
2417
  }
2364
2418
  if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2365
2419
  event.preventDefault()
@@ -2367,10 +2421,10 @@ class WebsyForm {
2367
2421
  }
2368
2422
  }
2369
2423
  }
2370
- handleKeyUp (event) {
2424
+ handleInput (event) {
2371
2425
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2372
2426
  let chars = event.target.value.split('')
2373
- let isNumeric = !isNaN(event.key)
2427
+ let isNumeric = !isNaN(+event.data)
2374
2428
  if (event.key === 'Backspace') {
2375
2429
  if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2376
2430
  chars.pop()
@@ -2379,7 +2433,7 @@ class WebsyForm {
2379
2433
  }
2380
2434
  }
2381
2435
  if (event.target.selectionStart === 2) {
2382
- if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2436
+ if (chars[2] && ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) === -1) {
2383
2437
  event.target.setSelectionRange(3, 3)
2384
2438
  }
2385
2439
  else if (isNumeric) {
@@ -2511,6 +2511,8 @@ var WebsyForm = /*#__PURE__*/function () {
2511
2511
  // }
2512
2512
  el.addEventListener('change', this.handleChange.bind(this));
2513
2513
  el.addEventListener('click', this.handleClick.bind(this));
2514
+ el.addEventListener('beforeinput', this.handleBeforeInput.bind(this));
2515
+ el.addEventListener('input', this.handleInput.bind(this));
2514
2516
  el.addEventListener('focusout', this.handleFocusOut.bind(this));
2515
2517
  el.addEventListener('keyup', this.handleKeyUp.bind(this));
2516
2518
  el.addEventListener('keydown', this.handleKeyDown.bind(this));
@@ -2623,16 +2625,70 @@ var WebsyForm = /*#__PURE__*/function () {
2623
2625
  }, {
2624
2626
  key: "handleKeyDown",
2625
2627
  value: function handleKeyDown(event) {
2626
- if (event.key === 'enter') {
2628
+ if (event.key === 'enter' && this.options.submitOnEnter === true) {
2627
2629
  this.submitForm();
2628
- }
2630
+ } // if (event.target.getAttribute('data-user-type') === 'expiry') {
2631
+ // let isNumeric = !isNaN(event.key)
2632
+ // let validKey = false
2633
+ // if (!validKey) {
2634
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2635
+ // }
2636
+ // if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2637
+ // event.preventDefault()
2638
+ // return false
2639
+ // }
2640
+ // if (event.key === 'Backspace') {
2641
+ // if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2642
+ // let chars = event.target.value.split('')
2643
+ // chars.pop()
2644
+ // event.target.value = chars.join('')
2645
+ // }
2646
+ // }
2647
+ // }
2648
+ // if (event.target.getAttribute('data-user-type') === 'cvv') {
2649
+ // let isNumeric = !isNaN(event.key)
2650
+ // let validKey = false
2651
+ // if (!validKey) {
2652
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2653
+ // }
2654
+ // if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2655
+ // event.preventDefault()
2656
+ // return false
2657
+ // }
2658
+ // }
2629
2659
 
2660
+ }
2661
+ }, {
2662
+ key: "handleKeyUp",
2663
+ value: function handleKeyUp(event) {// if (event.target.getAttribute('data-user-type') === 'expiry') {
2664
+ // let chars = event.target.value.split('')
2665
+ // let isNumeric = !isNaN(event.key)
2666
+ // if (event.key === 'Backspace') {
2667
+ // if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2668
+ // chars.pop()
2669
+ // event.target.value = chars.join('')
2670
+ // return
2671
+ // }
2672
+ // }
2673
+ // if (event.target.selectionStart === 2) {
2674
+ // if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2675
+ // event.target.setSelectionRange(3, 3)
2676
+ // }
2677
+ // else if (isNumeric) {
2678
+ // event.target.value += '/'
2679
+ // }
2680
+ // }
2681
+ // }
2682
+ }
2683
+ }, {
2684
+ key: "handleBeforeInput",
2685
+ value: function handleBeforeInput(event) {
2630
2686
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2631
- var isNumeric = !isNaN(event.key);
2687
+ var isNumeric = !isNaN(+event.data);
2632
2688
  var validKey = false;
2633
2689
 
2634
2690
  if (!validKey) {
2635
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1;
2691
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1;
2636
2692
  }
2637
2693
 
2638
2694
  if (event.target.value.length === 5 && !validKey || !validKey && !isNumeric) {
@@ -2640,7 +2696,7 @@ var WebsyForm = /*#__PURE__*/function () {
2640
2696
  return false;
2641
2697
  }
2642
2698
 
2643
- if (event.key === 'Backspace') {
2699
+ if (event.inputType === 'deleteContentBackward') {
2644
2700
  if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2645
2701
  var chars = event.target.value.split('');
2646
2702
  chars.pop();
@@ -2650,12 +2706,12 @@ var WebsyForm = /*#__PURE__*/function () {
2650
2706
  }
2651
2707
 
2652
2708
  if (event.target.getAttribute('data-user-type') === 'cvv') {
2653
- var _isNumeric = !isNaN(event.key);
2709
+ var _isNumeric = !isNaN(+event.data);
2654
2710
 
2655
2711
  var _validKey = false;
2656
2712
 
2657
2713
  if (!_validKey) {
2658
- _validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1;
2714
+ _validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1;
2659
2715
  }
2660
2716
 
2661
2717
  if (event.target.value.length === 3 && !_validKey || !_validKey && !_isNumeric) {
@@ -2665,11 +2721,11 @@ var WebsyForm = /*#__PURE__*/function () {
2665
2721
  }
2666
2722
  }
2667
2723
  }, {
2668
- key: "handleKeyUp",
2669
- value: function handleKeyUp(event) {
2724
+ key: "handleInput",
2725
+ value: function handleInput(event) {
2670
2726
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2671
2727
  var chars = event.target.value.split('');
2672
- var isNumeric = !isNaN(event.key);
2728
+ var isNumeric = !isNaN(+event.data);
2673
2729
 
2674
2730
  if (event.key === 'Backspace') {
2675
2731
  if (chars[chars.length - 1] === '/' && chars.length !== 3) {
@@ -2680,7 +2736,7 @@ var WebsyForm = /*#__PURE__*/function () {
2680
2736
  }
2681
2737
 
2682
2738
  if (event.target.selectionStart === 2) {
2683
- if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2739
+ if (chars[2] && ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) === -1) {
2684
2740
  event.target.setSelectionRange(3, 3);
2685
2741
  } else if (isNumeric) {
2686
2742
  event.target.value += '/';