@@ -26,7 +26,7 @@ export class OsdsPhoneNumber implements OdsPhoneNumberAttribute, OdsPhoneNumberE
26
26
controller = new OdsPhoneNumberController ( this ) ;
27
27
parsedCountries : ODS_COUNTRY_ISO_CODE [ ] = [ ] ;
28
28
29
- phoneUtil = PhoneNumberUtil . getInstance ( ) ;
29
+ phoneUtils = PhoneNumberUtil . getInstance ( ) ;
30
30
31
31
/** @see OdsPhoneNumberAttribute.clearable */
32
32
@Prop ( { reflect : true } ) clearable ?: boolean = DEFAULT_ATTRIBUTE . clearable ;
@@ -60,6 +60,9 @@ export class OsdsPhoneNumber implements OdsPhoneNumberAttribute, OdsPhoneNumberE
60
60
// order matter
61
61
this . handlerCountries ( ) ;
62
62
this . isoCode = this . controller . getDefaultIsoCode ( ) ;
63
+ // const number = this.phoneUtils.parseAndKeepRawInput('0642664231', 'fr');
64
+ // console.log('number', number)
65
+ // console.log('this.isValidNumberForRegion', this.phoneUtils.isValidNumberForRegion(number, 'fr'))
63
66
this . locale = this . controller . getDefaultLocale ( ) ;
64
67
this . handlerLocale ( this . locale ) ;
65
68
this . validateValue ( ) ;
@@ -110,8 +113,8 @@ export class OsdsPhoneNumber implements OdsPhoneNumberAttribute, OdsPhoneNumberE
110
113
const oldNumber = this . controller . parseNumber ( event . oldValue ) ;
111
114
this . odsValueChange . emit ( {
112
115
...event ,
113
- value : number && this . phoneUtil . format ( number , PhoneNumberFormat . E164 ) ,
114
- oldValue : oldNumber && this . phoneUtil . format ( oldNumber , PhoneNumberFormat . E164 ) || undefined ,
116
+ value : number && this . phoneUtils . format ( number , PhoneNumberFormat . E164 ) ,
117
+ oldValue : oldNumber && this . phoneUtils . format ( oldNumber , PhoneNumberFormat . E164 ) || undefined ,
115
118
isoCode : this . isoCode ,
116
119
} )
117
120
}
@@ -129,15 +132,37 @@ export class OsdsPhoneNumber implements OdsPhoneNumberAttribute, OdsPhoneNumberE
129
132
if ( ! number ) {
130
133
return false ;
131
134
}
132
- return this . phoneUtil . isPossibleNumber ( number ) && this . phoneUtil . isValidNumberForRegion ( number , this . isoCode ) ;
135
+ return this . phoneUtils . isPossibleNumber ( number ) && this . phoneUtils . isValidNumberForRegion ( number , this . isoCode ) ;
133
136
}
134
137
135
138
getPlaceholder ( ) : string | undefined {
136
139
if ( ! this . isoCode ) {
137
140
return undefined ;
138
141
}
139
- const exampleNumber = this . phoneUtil . getExampleNumber ( this . isoCode ) ;
140
- return this . phoneUtil . format ( exampleNumber , PhoneNumberFormat . E164 ) ;
142
+ const exampleNumber = this . phoneUtils . getExampleNumber ( this . isoCode ) ;
143
+ return this . phoneUtils . format ( exampleNumber , PhoneNumberFormat . E164 ) ;
144
+ }
145
+
146
+ @Listen ( 'odsValueChange' )
147
+ handlerInputEventChange ( event : CustomEvent < OdsInputValueChangeEventDetail > ) : void {
148
+ event . preventDefault ( ) ;
149
+ this . error = this . isValidInput ( ) ;
150
+ console . log ( 'this.error' , this . error )
151
+ if ( this . error ) {
152
+ return ;
153
+ }
154
+ this . odsValueChange . emit ( {
155
+ ...event . detail ,
156
+ isoCode : this . isoCode ,
157
+ } )
158
+ }
159
+
160
+ isValidInput ( ) : boolean {
161
+ const number = this . phoneUtils . parse ( this . value ?? '' , this . isoCode ) ;
162
+ console . log ( 'number' , number ) ;
163
+ console . log ( 'this.phoneUtils.isPossibleNumber(number)' , this . phoneUtils . isPossibleNumber ( number ) ) ;
164
+ console . log ( 'this.phoneUtils.isValidNumberForRegion(number, this.isoCode)' , this . phoneUtils . isValidNumberForRegion ( number , this . isoCode ) )
165
+ return this . phoneUtils . isPossibleNumber ( number ) && this . phoneUtils . isValidNumberForRegion ( number , this . isoCode ) ;
141
166
}
142
167
143
168
render ( ) {
0 commit comments