fleetcor-lwc 3.13.1 → 3.13.3

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.
package/README.md CHANGED
@@ -946,6 +946,18 @@ You can override them as you wish by global css variables as priority.
946
946
  <details>
947
947
  <summary>Click to expand/collapse</summary>
948
948
 
949
+ v.3.13.3
950
+
951
+ - Bug fix `flt-input-phone` component
952
+
953
+ ---
954
+
955
+ v.3.13.2
956
+
957
+ - Bug fix `flt-input-phone` component
958
+
959
+ ---
960
+
949
961
  v.3.13.1
950
962
 
951
963
  - Bug fix `flt-input-phone` and `flt-input-text` component
@@ -41,6 +41,26 @@ export default class InputPhone extends UserDataValidator {
41
41
  }
42
42
  }
43
43
 
44
+ get maskOptions() {
45
+ let settings = {
46
+ mask: /[1-9]/,
47
+ overwrite: false,
48
+ lazy: false
49
+ }
50
+
51
+ if (this.codeValue == CODE_VALUE_SB) {
52
+ settings = {
53
+ mask: '#000000000',
54
+ definitions: {
55
+ '#': /[1-9]/
56
+ },
57
+ overwrite: false,
58
+ lazy: false
59
+ }
60
+ }
61
+ return settings
62
+ }
63
+
44
64
  @api getData(silent) {
45
65
  return {
46
66
  ...super.getData(silent),
@@ -153,63 +173,37 @@ export default class InputPhone extends UserDataValidator {
153
173
  reInitIMask() {
154
174
  this.mask?.destroy()
155
175
  this.mask = null
156
- let settings = {
157
- mask: /[1-9]/,
158
- overwrite: false,
159
- lazy: false
160
- }
161
-
162
- if (this.codeValue == CODE_VALUE_SB) {
163
- settings = {
164
- mask: '#000000000',
165
- definitions: {
166
- '#': /[1-9]/
167
- },
168
- overwrite: false,
169
- lazy: false
170
- }
171
- }
172
-
173
176
  const inputEl = this.querySelector('input')
174
- this.mask = IMask(inputEl, settings)
177
+ this.mask = IMask(inputEl, this.maskOptions)
175
178
  const inputElement = this.querySelector('flt-input-text')
176
179
  this.mask.unmaskedValue = this.phoneNumber
177
180
  inputElement.value = this.mask.value
178
181
  this.mask.on('accept', () => {
182
+ let value = inputElement.value?.replace(/[^\w\\s]/gi, '')
179
183
  if (inputElement.value?.at(0) == '+' || inputElement.value?.at(0) == '0') {
180
- let value = inputElement.value.replace(/[^\w\\s]/gi, '')
181
184
  if (inputElement.value?.at(0) == '0') {
182
185
  value = CODE_VALUE_SB + value.slice(1)
186
+ } else {
187
+ value = '+' + value
183
188
  }
184
189
  let phoneNumberUtil = new LIB_PHONE_NUMBER.PhoneNumberUtil()
185
- let number = phoneNumberUtil.parseAndKeepRawInput('+' + value)
190
+ let number = phoneNumberUtil.parseAndKeepRawInput(value)
186
191
  let regionCode = phoneNumberUtil.getRegionCodeForNumber(number)
187
192
  let result = phoneNumberUtil.isValidNumberForRegion(number, regionCode)
188
193
  if (result) {
189
194
  const newCodeValue = `+${number.getCountryCode()}`
190
- this.pastePhoneNumber = number.getNationalNumber() + ''
191
-
192
- inputElement.value = this.pastePhoneNumber
193
- this.mask.value = this.pastePhoneNumber
194
- this.pastePhoneNumber = null
195
- this.phoneNumber = this.mask.unmaskedValue
196
-
195
+ const newPhoneNumber = number.getNationalNumber() + ''
197
196
  if (newCodeValue != this.codeValue) {
198
197
  this.codeValue = newCodeValue
199
- requestAnimationFrame(() => {
200
- this.reInitIMask()
201
- })
198
+ this.mask.updateOptions(this.maskOptions)
202
199
  }
200
+ inputElement.value = newPhoneNumber
201
+ this.mask.value = newPhoneNumber
203
202
  }
204
- } else {
205
- if (this.pastePhoneNumber) {
206
- inputElement.value = this.pastePhoneNumber
207
- this.mask.value = this.pastePhoneNumber
208
- this.pastePhoneNumber = null
209
- }
210
- this.phoneNumber = this.mask.unmaskedValue
211
- this.handleChange()
212
203
  }
204
+
205
+ this.phoneNumber = this.mask.unmaskedValue
206
+ this.handleChange()
213
207
  })
214
208
  }
215
209
 
@@ -224,27 +218,8 @@ export default class InputPhone extends UserDataValidator {
224
218
  } else {
225
219
  value = '+' + value
226
220
  }
227
- this.pastePhone(value)
228
- }
229
- }
230
- }
231
-
232
- pastePhone(value) {
233
- try {
234
- let phoneNumberUtil = new LIB_PHONE_NUMBER.PhoneNumberUtil()
235
- let number = phoneNumberUtil.parseAndKeepRawInput(value)
236
- let regionCode = phoneNumberUtil.getRegionCodeForNumber(number)
237
- let result = phoneNumberUtil.isValidNumberForRegion(number, regionCode)
238
- if (result) {
239
- const newCodeValue = `+${number.getCountryCode()}`
240
- this.pastePhoneNumber = number.getNationalNumber() + ''
241
- if (newCodeValue != this.codeValue) {
242
- this.codeValue = newCodeValue
243
- this.reInitIMask()
244
- }
221
+ this.querySelector('input').value = ''
245
222
  }
246
- } catch (error) {
247
- console.log('error', error)
248
223
  }
249
224
  }
250
225
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetcor-lwc",
3
- "version": "3.13.1",
3
+ "version": "3.13.3",
4
4
  "description": "LWC framework by Fleetcor",
5
5
  "repository": {
6
6
  "type": "git",