@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.
@@ -2022,6 +2022,8 @@ class WebsyForm {
2022
2022
  // }
2023
2023
  el.addEventListener('change', this.handleChange.bind(this))
2024
2024
  el.addEventListener('click', this.handleClick.bind(this))
2025
+ el.addEventListener('beforeinput', this.handleBeforeInput.bind(this))
2026
+ el.addEventListener('input', this.handleInput.bind(this))
2025
2027
  el.addEventListener('focusout', this.handleFocusOut.bind(this))
2026
2028
  el.addEventListener('keyup', this.handleKeyUp.bind(this))
2027
2029
  el.addEventListener('keydown', this.handleKeyDown.bind(this))
@@ -2114,7 +2116,7 @@ class WebsyForm {
2114
2116
  let index = event.target.getAttribute('data-index')
2115
2117
  if (this.options.fields[index] && (this.options.fields[index].required || this.options.fields[index].validate)) {
2116
2118
  this.validateField(this.options.fields[index], event.target.value)
2117
- }
2119
+ }
2118
2120
  }
2119
2121
  }
2120
2122
  handleClick (event) {
@@ -2136,20 +2138,72 @@ class WebsyForm {
2136
2138
  }
2137
2139
  }
2138
2140
  handleKeyDown (event) {
2139
- if (event.key === 'enter') {
2141
+ if (event.key === 'enter' && this.options.submitOnEnter === true) {
2140
2142
  this.submitForm()
2141
2143
  }
2144
+ // if (event.target.getAttribute('data-user-type') === 'expiry') {
2145
+ // let isNumeric = !isNaN(event.key)
2146
+ // let validKey = false
2147
+ // if (!validKey) {
2148
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2149
+ // }
2150
+ // if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2151
+ // event.preventDefault()
2152
+ // return false
2153
+ // }
2154
+ // if (event.key === 'Backspace') {
2155
+ // if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2156
+ // let chars = event.target.value.split('')
2157
+ // chars.pop()
2158
+ // event.target.value = chars.join('')
2159
+ // }
2160
+ // }
2161
+ // }
2162
+ // if (event.target.getAttribute('data-user-type') === 'cvv') {
2163
+ // let isNumeric = !isNaN(event.key)
2164
+ // let validKey = false
2165
+ // if (!validKey) {
2166
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2167
+ // }
2168
+ // if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2169
+ // event.preventDefault()
2170
+ // return false
2171
+ // }
2172
+ // }
2173
+ }
2174
+ handleKeyUp (event) {
2175
+ // if (event.target.getAttribute('data-user-type') === 'expiry') {
2176
+ // let chars = event.target.value.split('')
2177
+ // let isNumeric = !isNaN(event.key)
2178
+ // if (event.key === 'Backspace') {
2179
+ // if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2180
+ // chars.pop()
2181
+ // event.target.value = chars.join('')
2182
+ // return
2183
+ // }
2184
+ // }
2185
+ // if (event.target.selectionStart === 2) {
2186
+ // if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2187
+ // event.target.setSelectionRange(3, 3)
2188
+ // }
2189
+ // else if (isNumeric) {
2190
+ // event.target.value += '/'
2191
+ // }
2192
+ // }
2193
+ // }
2194
+ }
2195
+ handleBeforeInput (event) {
2142
2196
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2143
- let isNumeric = !isNaN(event.key)
2197
+ let isNumeric = !isNaN(+event.data)
2144
2198
  let validKey = false
2145
2199
  if (!validKey) {
2146
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2200
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1
2147
2201
  }
2148
2202
  if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2149
2203
  event.preventDefault()
2150
2204
  return false
2151
2205
  }
2152
- if (event.key === 'Backspace') {
2206
+ if (event.inputType === 'deleteContentBackward') {
2153
2207
  if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2154
2208
  let chars = event.target.value.split('')
2155
2209
  chars.pop()
@@ -2158,10 +2212,10 @@ class WebsyForm {
2158
2212
  }
2159
2213
  }
2160
2214
  if (event.target.getAttribute('data-user-type') === 'cvv') {
2161
- let isNumeric = !isNaN(event.key)
2215
+ let isNumeric = !isNaN(+event.data)
2162
2216
  let validKey = false
2163
2217
  if (!validKey) {
2164
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2218
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1
2165
2219
  }
2166
2220
  if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2167
2221
  event.preventDefault()
@@ -2169,10 +2223,10 @@ class WebsyForm {
2169
2223
  }
2170
2224
  }
2171
2225
  }
2172
- handleKeyUp (event) {
2226
+ handleInput (event) {
2173
2227
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2174
2228
  let chars = event.target.value.split('')
2175
- let isNumeric = !isNaN(event.key)
2229
+ let isNumeric = !isNaN(+event.data)
2176
2230
  if (event.key === 'Backspace') {
2177
2231
  if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2178
2232
  chars.pop()
@@ -2181,7 +2235,7 @@ class WebsyForm {
2181
2235
  }
2182
2236
  }
2183
2237
  if (event.target.selectionStart === 2) {
2184
- if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2238
+ if (chars[2] && ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) === -1) {
2185
2239
  event.target.setSelectionRange(3, 3)
2186
2240
  }
2187
2241
  else if (isNumeric) {
@@ -2276,6 +2276,8 @@ var WebsyForm = /*#__PURE__*/function () {
2276
2276
  // }
2277
2277
  el.addEventListener('change', this.handleChange.bind(this));
2278
2278
  el.addEventListener('click', this.handleClick.bind(this));
2279
+ el.addEventListener('beforeinput', this.handleBeforeInput.bind(this));
2280
+ el.addEventListener('input', this.handleInput.bind(this));
2279
2281
  el.addEventListener('focusout', this.handleFocusOut.bind(this));
2280
2282
  el.addEventListener('keyup', this.handleKeyUp.bind(this));
2281
2283
  el.addEventListener('keydown', this.handleKeyDown.bind(this));
@@ -2388,16 +2390,70 @@ var WebsyForm = /*#__PURE__*/function () {
2388
2390
  }, {
2389
2391
  key: "handleKeyDown",
2390
2392
  value: function handleKeyDown(event) {
2391
- if (event.key === 'enter') {
2393
+ if (event.key === 'enter' && this.options.submitOnEnter === true) {
2392
2394
  this.submitForm();
2393
- }
2395
+ } // if (event.target.getAttribute('data-user-type') === 'expiry') {
2396
+ // let isNumeric = !isNaN(event.key)
2397
+ // let validKey = false
2398
+ // if (!validKey) {
2399
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2400
+ // }
2401
+ // if ((event.target.value.length === 5 && !validKey) || (!validKey && !isNumeric)) {
2402
+ // event.preventDefault()
2403
+ // return false
2404
+ // }
2405
+ // if (event.key === 'Backspace') {
2406
+ // if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2407
+ // let chars = event.target.value.split('')
2408
+ // chars.pop()
2409
+ // event.target.value = chars.join('')
2410
+ // }
2411
+ // }
2412
+ // }
2413
+ // if (event.target.getAttribute('data-user-type') === 'cvv') {
2414
+ // let isNumeric = !isNaN(event.key)
2415
+ // let validKey = false
2416
+ // if (!validKey) {
2417
+ // validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1
2418
+ // }
2419
+ // if ((event.target.value.length === 3 && !validKey) || (!validKey && !isNumeric)) {
2420
+ // event.preventDefault()
2421
+ // return false
2422
+ // }
2423
+ // }
2394
2424
 
2425
+ }
2426
+ }, {
2427
+ key: "handleKeyUp",
2428
+ value: function handleKeyUp(event) {// if (event.target.getAttribute('data-user-type') === 'expiry') {
2429
+ // let chars = event.target.value.split('')
2430
+ // let isNumeric = !isNaN(event.key)
2431
+ // if (event.key === 'Backspace') {
2432
+ // if (chars[chars.length - 1] === '/' && chars.length !== 3) {
2433
+ // chars.pop()
2434
+ // event.target.value = chars.join('')
2435
+ // return
2436
+ // }
2437
+ // }
2438
+ // if (event.target.selectionStart === 2) {
2439
+ // if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2440
+ // event.target.setSelectionRange(3, 3)
2441
+ // }
2442
+ // else if (isNumeric) {
2443
+ // event.target.value += '/'
2444
+ // }
2445
+ // }
2446
+ // }
2447
+ }
2448
+ }, {
2449
+ key: "handleBeforeInput",
2450
+ value: function handleBeforeInput(event) {
2395
2451
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2396
- var isNumeric = !isNaN(event.key);
2452
+ var isNumeric = !isNaN(+event.data);
2397
2453
  var validKey = false;
2398
2454
 
2399
2455
  if (!validKey) {
2400
- validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1;
2456
+ validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1;
2401
2457
  }
2402
2458
 
2403
2459
  if (event.target.value.length === 5 && !validKey || !validKey && !isNumeric) {
@@ -2405,7 +2461,7 @@ var WebsyForm = /*#__PURE__*/function () {
2405
2461
  return false;
2406
2462
  }
2407
2463
 
2408
- if (event.key === 'Backspace') {
2464
+ if (event.inputType === 'deleteContentBackward') {
2409
2465
  if (event.target.value.indexOf('/') === event.target.selectionStart - 1) {
2410
2466
  var chars = event.target.value.split('');
2411
2467
  chars.pop();
@@ -2415,12 +2471,12 @@ var WebsyForm = /*#__PURE__*/function () {
2415
2471
  }
2416
2472
 
2417
2473
  if (event.target.getAttribute('data-user-type') === 'cvv') {
2418
- var _isNumeric = !isNaN(event.key);
2474
+ var _isNumeric = !isNaN(+event.data);
2419
2475
 
2420
2476
  var _validKey = false;
2421
2477
 
2422
2478
  if (!_validKey) {
2423
- _validKey = ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].indexOf(event.key) !== -1;
2479
+ _validKey = ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) !== -1;
2424
2480
  }
2425
2481
 
2426
2482
  if (event.target.value.length === 3 && !_validKey || !_validKey && !_isNumeric) {
@@ -2430,11 +2486,11 @@ var WebsyForm = /*#__PURE__*/function () {
2430
2486
  }
2431
2487
  }
2432
2488
  }, {
2433
- key: "handleKeyUp",
2434
- value: function handleKeyUp(event) {
2489
+ key: "handleInput",
2490
+ value: function handleInput(event) {
2435
2491
  if (event.target.getAttribute('data-user-type') === 'expiry') {
2436
2492
  var chars = event.target.value.split('');
2437
- var isNumeric = !isNaN(event.key);
2493
+ var isNumeric = !isNaN(+event.data);
2438
2494
 
2439
2495
  if (event.key === 'Backspace') {
2440
2496
  if (chars[chars.length - 1] === '/' && chars.length !== 3) {
@@ -2445,7 +2501,7 @@ var WebsyForm = /*#__PURE__*/function () {
2445
2501
  }
2446
2502
 
2447
2503
  if (event.target.selectionStart === 2) {
2448
- if (chars[2] && ['ArrowLeft', 'ArrowRight', 'Backspace', 'Delete'].indexOf(event.key) === -1) {
2504
+ if (chars[2] && ['deleteContentBackward', 'deleteContentForward'].indexOf(event.inputType) === -1) {
2449
2505
  event.target.setSelectionRange(3, 3);
2450
2506
  } else if (isNumeric) {
2451
2507
  event.target.value += '/';