@smart-webcomponents-angular/phoneinput 22.0.2 → 25.5.5

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.
@@ -137,7 +137,7 @@ class PhoneInputComponent extends BaseElement {
137
137
  * The registered callback function called when a blur event occurs on the form elements.
138
138
  */
139
139
  this._onTouched = () => { };
140
- /** @description This event is triggered when the selection is changed.
140
+ /** @description This event is triggered whenever the user modifies the current selection, such as highlighting different text or choosing another item from a selectable list. It helps you detect and respond to any change in what is selected within the relevant user interface component.
141
141
  * @param event. The custom event. Custom event was created with: event.detail( label, oldLabel, oldValue, value)
142
142
  * label - The label of the new selected item.
143
143
  * oldLabel - The label of the item that was previously selected before the event was triggered.
@@ -145,13 +145,13 @@ class PhoneInputComponent extends BaseElement {
145
145
  * value - The value of the new selected item.
146
146
  */
147
147
  this.onChange = new EventEmitter();
148
- /** @description This event is triggered on each key up event of the Input, if the value is changed.
148
+ /** @description This event is triggered each time a key is released (on key up) within the input field, but only if the input's value has changed as a result of the key press.
149
149
  * @param event. The custom event. Custom event was created with: event.detail( oldValue, value)
150
150
  * oldValue - The previous value before it was changed.
151
151
  * value - The new value.
152
152
  */
153
153
  this.onChanging = new EventEmitter();
154
- /** @description This event is triggered when the user clicks on an item from the popup list.
154
+ /** @description This event is triggered whenever the user selects an item by clicking on it within the popup list. It allows you to respond to user interaction by executing specific actions or updating the interface based on the selected item.
155
155
  * @param event. The custom event. Custom event was created with: event.detail( item, label, value)
156
156
  * item - The item that was clicked.
157
157
  * label - The label of the item that was clicked.
@@ -171,126 +171,126 @@ class PhoneInputComponent extends BaseElement {
171
171
  }
172
172
  return this.nativeElement;
173
173
  }
174
- /** @description Enables or disables the element. */
174
+ /** @description Determines whether the element is interactive or inactive. When enabled, the element can be interacted with by the user; when disabled, the element becomes unresponsive to user actions, often appearing visually distinct (e.g., grayed out). */
175
175
  get disabled() {
176
176
  return this.nativeElement ? this.nativeElement.disabled : undefined;
177
177
  }
178
178
  set disabled(value) {
179
179
  this.nativeElement ? this.nativeElement.disabled = value : undefined;
180
180
  }
181
- /** @description Sets additional class names to the Input drop down. */
181
+ /** @description Specifies extra CSS class names to be applied to the Input dropdown element, allowing for customized styling and theming beyond the default classes. */
182
182
  get dropDownClassList() {
183
183
  return this.nativeElement ? this.nativeElement.dropDownClassList : undefined;
184
184
  }
185
185
  set dropDownClassList(value) {
186
186
  this.nativeElement ? this.nativeElement.dropDownClassList = value : undefined;
187
187
  }
188
- /** @description Determines the position of the drop down button. */
188
+ /** @description Specifies the placement of the dropdown button relative to its associated element, such as positioning it to the left, right, above, or below the target UI component. */
189
189
  get dropDownButtonPosition() {
190
190
  return this.nativeElement ? this.nativeElement.dropDownButtonPosition : undefined;
191
191
  }
192
192
  set dropDownButtonPosition(value) {
193
193
  this.nativeElement ? this.nativeElement.dropDownButtonPosition = value : undefined;
194
194
  }
195
- /** @description Sets the height of the drop down. By default it's set to an empty string. In this case the height of the drop down is controlled by a CSS variable. */
195
+ /** @description Specifies the height of the dropdown menu. By default, this property is set to an empty string, which means the dropdown's height will be determined by a corresponding CSS variable. If a specific value is provided, it will override the CSS variable and explicitly set the dropdown's height. */
196
196
  get dropDownHeight() {
197
197
  return this.nativeElement ? this.nativeElement.dropDownHeight : undefined;
198
198
  }
199
199
  set dropDownHeight(value) {
200
200
  this.nativeElement ? this.nativeElement.dropDownHeight = value : undefined;
201
201
  }
202
- /** @description Sets the width of the drop down. By default it's set to an empty string. In this case the width of the drop down is controlled by a CSS variable. */
202
+ /** @description Specifies the width of the dropdown menu. By default, this value is an empty string (""). When left empty, the dropdown's width is determined by a CSS variable, allowing the width to be managed through external stylesheets rather than being hardcoded. This provides flexibility for responsive design and consistent styling across your application. If a specific width is provided (e.g., "200px" or "50%"), it will override the CSS variable and explicitly set the dropdown's width. */
203
203
  get dropDownWidth() {
204
204
  return this.nativeElement ? this.nativeElement.dropDownWidth : undefined;
205
205
  }
206
206
  set dropDownWidth(value) {
207
207
  this.nativeElement ? this.nativeElement.dropDownWidth = value : undefined;
208
208
  }
209
- /** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */
209
+ /** @description Defines or retrieves an object containing string values used throughout the widget’s user interface, allowing for easy localization of text. This property works together with the locale setting to display the widget’s content in different languages, based on the specified translations. Use this object to provide or customize all user-facing strings for multilingual support. */
210
210
  get messages() {
211
211
  return this.nativeElement ? this.nativeElement.messages : undefined;
212
212
  }
213
213
  set messages(value) {
214
214
  this.nativeElement ? this.nativeElement.messages = value : undefined;
215
215
  }
216
- /** @description Sets or gets the unlockKey which unlocks the product. */
216
+ /** @description Sets or retrieves the unlockKey property, which serves as a unique key required to unlock access to the product. When assigning a value, the unlockKey enables authorized usage; when retrieving, it provides the current key associated with the product’s access permissions. */
217
217
  get unlockKey() {
218
218
  return this.nativeElement ? this.nativeElement.unlockKey : undefined;
219
219
  }
220
220
  set unlockKey(value) {
221
221
  this.nativeElement ? this.nativeElement.unlockKey = value : undefined;
222
222
  }
223
- /** @description Sets or gets the name attribute for the element. Name is used when submiting data inside an HTML form. */
223
+ /** @description Defines or retrieves the value of the name attribute for the element. The name attribute uniquely identifies the element within an HTML form, allowing its data to be included and referenced when the form is submitted to a server. This is essential for processing form data on the server side. */
224
224
  get name() {
225
225
  return this.nativeElement ? this.nativeElement.name : undefined;
226
226
  }
227
227
  set name(value) {
228
228
  this.nativeElement ? this.nativeElement.name = value : undefined;
229
229
  }
230
- /** @description Determines whether the input will be in international or national mode i.e whether the input will start with '+'. */
230
+ /** @description Specifies whether the input should be in international or national format. In international mode, the input should begin with a '+' followed by the country code (e.g., +1 555-1234). In national mode, the input should omit the '+' and country code, using only the local number format. */
231
231
  get nationalMode() {
232
232
  return this.nativeElement ? this.nativeElement.nationalMode : undefined;
233
233
  }
234
234
  set nationalMode(value) {
235
235
  this.nativeElement ? this.nativeElement.nationalMode = value : undefined;
236
236
  }
237
- /** @description Determines whether the drop down is opened or not. */
237
+ /** @description Specifies whether the dropdown menu is currently visible (open) or hidden (closed). */
238
238
  get opened() {
239
239
  return this.nativeElement ? this.nativeElement.opened : undefined;
240
240
  }
241
241
  set opened(value) {
242
242
  this.nativeElement ? this.nativeElement.opened = value : undefined;
243
243
  }
244
- /** @description Sets or gets an array of country codes which will be used instead of the default one with all countries. The country code should be ISO 3166-1 alpha-2 codes(https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). */
244
+ /** @description Specifies or retrieves an array of country codes to customize the set of countries used, replacing the default list that includes all countries. Each country code must be a valid ISO 3166-1 alpha-2 code (see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), which consists of two uppercase letters (e.g., 'US' for the United States, 'FR' for France). Use this property to limit available options to a specific set of countries as needed. */
245
245
  get onlyCountries() {
246
246
  return this.nativeElement ? this.nativeElement.onlyCountries : undefined;
247
247
  }
248
248
  set onlyCountries(value) {
249
249
  this.nativeElement ? this.nativeElement.onlyCountries = value : undefined;
250
250
  }
251
- /** @description Determines the placeholder of the input. */
251
+ /** @description Specifies the placeholder text that appears inside the input field before the user enters any value, providing a hint or example of the expected input format. */
252
252
  get placeholder() {
253
253
  return this.nativeElement ? this.nativeElement.placeholder : undefined;
254
254
  }
255
255
  set placeholder(value) {
256
256
  this.nativeElement ? this.nativeElement.placeholder = value : undefined;
257
257
  }
258
- /** @description Sets or gets the selected country of the element. The country code should be ISO 3166-1 alpha-2 codes(https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). */
258
+ /** @description Gets or sets the selected country for the element using a country code. The country code must conform to the ISO 3166-1 alpha-2 standard (see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), which consists of a two-letter, uppercase code representing each country (e.g., "US" for United States, "FR" for France). */
259
259
  get selectedCountry() {
260
260
  return this.nativeElement ? this.nativeElement.selectedCountry : undefined;
261
261
  }
262
262
  set selectedCountry(value) {
263
263
  this.nativeElement ? this.nativeElement.selectedCountry = value : undefined;
264
264
  }
265
- /** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */
265
+ /** @description Gets or sets a value that determines whether the element's alignment is configured for right-to-left (RTL) languages (such as Arabic or Hebrew), enabling proper display and layout of text and content for those locales. */
266
266
  get rightToLeft() {
267
267
  return this.nativeElement ? this.nativeElement.rightToLeft : undefined;
268
268
  }
269
269
  set rightToLeft(value) {
270
270
  this.nativeElement ? this.nativeElement.rightToLeft = value : undefined;
271
271
  }
272
- /** @description Determines the theme for the element. Themes define the look of the elements. */
272
+ /** @description Specifies the visual theme to be applied to the element. The selected theme controls the element's overall appearance, including colors, fonts, spacing, and other stylistic properties, ensuring a consistent look and feel across the user interface. */
273
273
  get theme() {
274
274
  return this.nativeElement ? this.nativeElement.theme : undefined;
275
275
  }
276
276
  set theme(value) {
277
277
  this.nativeElement ? this.nativeElement.theme = value : undefined;
278
278
  }
279
- /** @description If is set to true, the element cannot be focused. */
279
+ /** @description When set to true, this property prevents the element from receiving keyboard focus, making it inaccessible via tab navigation and standard focus events. */
280
280
  get unfocusable() {
281
281
  return this.nativeElement ? this.nativeElement.unfocusable : undefined;
282
282
  }
283
283
  set unfocusable(value) {
284
284
  this.nativeElement ? this.nativeElement.unfocusable = value : undefined;
285
285
  }
286
- /** @description Sets or gets the value of the element. */
286
+ /** @description Retrieves the current value of the element or assigns a new value to it. This property can be used to access the data contained within form elements (such as input, textarea, or select) or to update their content programmatically. */
287
287
  get value() {
288
288
  return this.nativeElement ? this.nativeElement.value : undefined;
289
289
  }
290
290
  set value(value) {
291
291
  this.nativeElement ? this.nativeElement.value = value : undefined;
292
292
  }
293
- /** @description Closes the drop down.
293
+ /** @description Closes the dropdown menu, hiding its visible options from the user and collapsing the interface element.
294
294
  */
295
295
  close() {
296
296
  if (this.nativeElement.isRendered) {
@@ -302,7 +302,7 @@ class PhoneInputComponent extends BaseElement {
302
302
  });
303
303
  }
304
304
  }
305
- /** @description Ensures that the active ( selected ) item is always visible.
305
+ /** @description Guarantees that the currently active (selected) item remains visible within the viewport by automatically scrolling the container as needed. This ensures users can always see and interact with their selection, even as the list or content changes.
306
306
  */
307
307
  ensureVisible() {
308
308
  if (this.nativeElement.isRendered) {
@@ -314,7 +314,7 @@ class PhoneInputComponent extends BaseElement {
314
314
  });
315
315
  }
316
316
  }
317
- /** @description Returns the entered phone number with formatting.
317
+ /** @description Returns the provided phone number as a formatted string, applying standard formatting conventions (such as adding parentheses, spaces, or dashes) based on the specified locale or default format. Ensures consistency and improves readability for display or storage purposes.
318
318
  * @param {boolean} isInternational?. When you use 'false', the national phone number will be returned and the international phone number, when you use 'true' as parameter.
319
319
  * @returns {string}
320
320
  */
@@ -332,7 +332,13 @@ class PhoneInputComponent extends BaseElement {
332
332
  return result;
333
333
  });
334
334
  }
335
- /** @description Returns an item by its country dial code. The item is an object with 'label', 'value', 'iso2' and 'dialCode' properties.
335
+ getNumberSync(isInternational) {
336
+ if (this.nativeElement.isRendered) {
337
+ return this.nativeElement.getNumber(isInternational);
338
+ }
339
+ return null;
340
+ }
341
+ /** @description Retrieves an object representing a country based on its dial code. The returned object contains the following properties:- **label**: The local or English name of the country (e.g., "United States").- **value**: A unique identifier for the country (commonly the country name or abbreviation).- **iso2**: The two-letter ISO 3166-1 alpha-2 country code (e.g., "US").- **dialCode**: The international telephone dialing code associated with the country (e.g., "+1").
336
342
  * @param {string} dialCode?. Returns the national or international phone number
337
343
  * @returns {any}
338
344
  */
@@ -350,7 +356,13 @@ class PhoneInputComponent extends BaseElement {
350
356
  return result;
351
357
  });
352
358
  }
353
- /** @description Returns the selected item. The item is an object with 'label', 'value', 'iso2' and 'dialCode' properties.
359
+ getItemByDialCodeSync(dialCode) {
360
+ if (this.nativeElement.isRendered) {
361
+ return this.nativeElement.getItemByDialCode(dialCode);
362
+ }
363
+ return null;
364
+ }
365
+ /** @description Returns the currently selected item as an object. This object contains the following properties: - `label`: A string representing the display name of the item (e.g., country name). - `value`: A string or identifier associated with the item (e.g., country code). - `iso2`: A two-letter ISO 3166-1 alpha-2 country code string (e.g., 'US' for United States). - `dialCode`: A string representing the country’s international dialing code (e.g., '+1').
354
366
  * @returns {any}
355
367
  */
356
368
  getSelectedItem() {
@@ -367,7 +379,13 @@ class PhoneInputComponent extends BaseElement {
367
379
  return result;
368
380
  });
369
381
  }
370
- /** @description Returns true or false depending on whether the entered phone number is valid.
382
+ getSelectedItemSync() {
383
+ if (this.nativeElement.isRendered) {
384
+ return this.nativeElement.getSelectedItem();
385
+ }
386
+ return null;
387
+ }
388
+ /** @description Determines if the provided phone number meets the required format and validation rules, returning true for a valid phone number and false if the input is invalid.
371
389
  * @returns {boolean}
372
390
  */
373
391
  isValidNumber() {
@@ -384,7 +402,13 @@ class PhoneInputComponent extends BaseElement {
384
402
  return result;
385
403
  });
386
404
  }
387
- /** @description Validates the entered phone number.
405
+ isValidNumberSync() {
406
+ if (this.nativeElement.isRendered) {
407
+ return this.nativeElement.isValidNumber();
408
+ }
409
+ return null;
410
+ }
411
+ /** @description Validates whether the entered phone number is in the correct format and meets specified criteria, such as required length, allowed characters, and country or area code compliance.
388
412
  */
389
413
  validate() {
390
414
  if (this.nativeElement.isRendered) {
@@ -396,7 +420,7 @@ class PhoneInputComponent extends BaseElement {
396
420
  });
397
421
  }
398
422
  }
399
- /** @description Opens the drop down.
423
+ /** @description Displays the drop-down menu, making its list of selectable options visible to the user.
400
424
  */
401
425
  open() {
402
426
  if (this.nativeElement.isRendered) {
@@ -408,7 +432,7 @@ class PhoneInputComponent extends BaseElement {
408
432
  });
409
433
  }
410
434
  }
411
- /** @description Selects the text inside the input or if it is readonly then the element is focused.
435
+ /** @description Enhances the behavior of an input field by selecting its text content when it is editable. If the input field is marked as readonly, it will instead focus the element without selecting the text. This ensures that users can easily interact with editable inputs, while still providing focus to readonly fields for accessibility or further actions.
412
436
  */
413
437
  select() {
414
438
  if (this.nativeElement.isRendered) {
@@ -1 +1 @@
1
- {"version":3,"file":"smart-webcomponents-angular-phoneinput.mjs","sources":["../../phoneinput/src/smart.element.ts","../../phoneinput/src/smart.phoneinput.ts","../../phoneinput/src/smart.phoneinput.module.ts","../../phoneinput/src/smart-webcomponents-angular-phoneinput.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { PhoneInput } from './../index';\nimport { DropDownButtonPosition, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, forwardRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { DropDownButtonPosition, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { PhoneInput } from './../index';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PhoneInputComponent),\n multi: true\n}\n\n@Directive({\n\texportAs: 'smart-phone-input',\tselector: 'smart-phone-input, [smart-phone-input]',\n\tproviders: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\n\n})\n\nexport class PhoneInputComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\tconstructor(ref: ElementRef<PhoneInput>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as PhoneInput;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: PhoneInput;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <PhoneInput>document.createElement('smart-phone-input');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n /**\n * @description\n * The registered callback function called when a change event occurs on the form elements.\n */\n _onChange: (value: any) => void = () => {};\n /**\n * @description\n * The registered callback function called when a blur event occurs on the form elements.\n */\n _onTouched: () => any = () => {};\n\n\n\t/** @description Enables or disables the element. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Sets additional class names to the Input drop down. */\n\t@Input()\n\tget dropDownClassList(): any {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownClassList : undefined;\n\t}\n\tset dropDownClassList(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownClassList = value : undefined;\n\t}\n\n\t/** @description Determines the position of the drop down button. */\n\t@Input()\n\tget dropDownButtonPosition(): DropDownButtonPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownButtonPosition : undefined;\n\t}\n\tset dropDownButtonPosition(value: DropDownButtonPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownButtonPosition = value : undefined;\n\t}\n\n\t/** @description Sets the height of the drop down. By default it's set to an empty string. In this case the height of the drop down is controlled by a CSS variable. */\n\t@Input()\n\tget dropDownHeight(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownHeight : undefined;\n\t}\n\tset dropDownHeight(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownHeight = value : undefined;\n\t}\n\n\t/** @description Sets the width of the drop down. By default it's set to an empty string. In this case the width of the drop down is controlled by a CSS variable. */\n\t@Input()\n\tget dropDownWidth(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownWidth : undefined;\n\t}\n\tset dropDownWidth(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownWidth = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the unlockKey which unlocks the product. */\n\t@Input()\n\tget unlockKey(): string {\n\t\treturn this.nativeElement ? this.nativeElement.unlockKey : undefined;\n\t}\n\tset unlockKey(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.unlockKey = value : undefined;\n\t}\n\n\t/** @description Sets or gets the name attribute for the element. Name is used when submiting data inside an HTML form. */\n\t@Input()\n\tget name(): string {\n\t\treturn this.nativeElement ? this.nativeElement.name : undefined;\n\t}\n\tset name(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.name = value : undefined;\n\t}\n\n\t/** @description Determines whether the input will be in international or national mode i.e whether the input will start with '+'. */\n\t@Input()\n\tget nationalMode(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.nationalMode : undefined;\n\t}\n\tset nationalMode(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.nationalMode = value : undefined;\n\t}\n\n\t/** @description Determines whether the drop down is opened or not. */\n\t@Input()\n\tget opened(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.opened : undefined;\n\t}\n\tset opened(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.opened = value : undefined;\n\t}\n\n\t/** @description Sets or gets an array of country codes which will be used instead of the default one with all countries. The country code should be ISO 3166-1 alpha-2 codes(https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). */\n\t@Input()\n\tget onlyCountries(): any {\n\t\treturn this.nativeElement ? this.nativeElement.onlyCountries : undefined;\n\t}\n\tset onlyCountries(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.onlyCountries = value : undefined;\n\t}\n\n\t/** @description Determines the placeholder of the input. */\n\t@Input()\n\tget placeholder(): string {\n\t\treturn this.nativeElement ? this.nativeElement.placeholder : undefined;\n\t}\n\tset placeholder(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.placeholder = value : undefined;\n\t}\n\n\t/** @description Sets or gets the selected country of the element. The country code should be ISO 3166-1 alpha-2 codes(https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). */\n\t@Input()\n\tget selectedCountry(): string {\n\t\treturn this.nativeElement ? this.nativeElement.selectedCountry : undefined;\n\t}\n\tset selectedCountry(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.selectedCountry = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme for the element. Themes define the look of the elements. */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description If is set to true, the element cannot be focused. */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value of the element. */\n\t@Input()\n\tget value(): string {\n\t\treturn this.nativeElement ? this.nativeElement.value : undefined;\n\t}\n\tset value(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.value = value : undefined;\n\t}\n\n\t/** @description This event is triggered when the selection is changed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tlabel, \toldLabel, \toldValue, \tvalue)\n\t* label - The label of the new selected item.\n\t* oldLabel - The label of the item that was previously selected before the event was triggered.\n\t* oldValue - The value of the item that was previously selected before the event was triggered.\n\t* value - The value of the new selected item.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered on each key up event of the Input, if the value is changed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toldValue, \tvalue)\n\t* oldValue - The previous value before it was changed.\n\t* value - The new value.\n\t*/\n\t@Output() onChanging: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the user clicks on an item from the popup list.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\titem, \tlabel, \tvalue)\n\t* item - The item that was clicked.\n\t* label - The label of the item that was clicked.\n\t* value - The value of the item that was clicked.\n\t*/\n\t@Output() onItemClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Closes the drop down. \n\t*/\n public close(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.close();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.close();\n });\n }\n }\n\n\t/** @description Ensures that the active ( selected ) item is always visible. \n\t*/\n public ensureVisible(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.ensureVisible();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.ensureVisible();\n });\n }\n }\n\n\t/** @description Returns the entered phone number with formatting. \n\t* @param {boolean} isInternational?. When you use 'false', the national phone number will be returned and the international phone number, when you use 'true' as parameter.\n\t* @returns {string}\n */\n\tpublic async getNumber(isInternational?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getNumber(isInternational);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns an item by its country dial code. The item is an object with 'label', 'value', 'iso2' and 'dialCode' properties. \n\t* @param {string} dialCode?. Returns the national or international phone number\n\t* @returns {any}\n */\n\tpublic async getItemByDialCode(dialCode?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getItemByDialCode(dialCode);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns the selected item. The item is an object with 'label', 'value', 'iso2' and 'dialCode' properties. \n\t* @returns {any}\n */\n\tpublic async getSelectedItem(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelectedItem();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Returns true or false depending on whether the entered phone number is valid. \n\t* @returns {boolean}\n */\n\tpublic async isValidNumber(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.isValidNumber();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\t/** @description Validates the entered phone number. \n\t*/\n public validate(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.validate();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.validate();\n });\n }\n }\n\n\t/** @description Opens the drop down. \n\t*/\n public open(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.open();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.open();\n });\n }\n }\n\n\t/** @description Selects the text inside the input or if it is readonly then the element is focused. \n\t*/\n public select(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.select();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.select();\n });\n }\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tif (Smart) Smart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tif (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\t_initialChange = true; \n\n\tget ngValue(): any {\n\t\tif (!this.nativeElement) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst value = this.nativeElement.value;\n\t\treturn value;\n\t}\n\n\tset ngValue(value: any) {\n\t\tif (this.nativeElement) {\n\t\t this.writeValue(value);\n\t\t}\n\t}\n\n\twriteValue(value: any): void {\n const that = this;\n const normalizedValue = value == null ? '' : value;\n\n\t\tthat.nativeElement.whenRendered(() => {\n\t\t\tthat.value = normalizedValue;\n\t\t\tif (that._initialChange === false) {\n\t \t\tthat._onChange(that.value);\n }\n\t\t});\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\n\tprivate listen(): void {\n const that = this;\n\t\tthat.eventHandlers['changeHandler'] = (event: CustomEvent) => { that.onChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeHandler']);\n\n\t\tthat.eventHandlers['changingHandler'] = (event: CustomEvent) => { that.onChanging.emit(event); }\n\t\tthat.nativeElement.addEventListener('changing', that.eventHandlers['changingHandler']);\n\n\t\tthat.eventHandlers['itemClickHandler'] = (event: CustomEvent) => { that.onItemClick.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\n\n that.eventHandlers['changeModelHandler'] = (event: Event) => {\n that._initialChange = false;\n that._onChange(that.nativeElement.value);\n };\n that.eventHandlers['blurModelHandler'] = (event: Event) => {\n that._onTouched();\n };\n that.nativeElement.whenRendered(() => {\n if (that.nativeElement.querySelector('input')) {\n that.eventHandlers['keyupModelHandler'] = (event) => {\n setTimeout(() => { that.eventHandlers['changeModelHandler'](event); }, 50);\n };\n\n that.nativeElement.querySelector('input').addEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n });\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeModelHandler']);\n\t\tthat.nativeElement.addEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t}\n\n\t/** @description Remove event listeners. */\n\tprivate unlisten(): void {\n const that = this;\n\t\tif (that.eventHandlers['changeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('changing', that.eventHandlers['changingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['itemClickHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changeModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeModelHandler']);\n if (that.nativeElement.querySelector('input')) {\n that.nativeElement.querySelector('input').removeEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n\t\t}\n\t\tif (that.eventHandlers['blurModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { PhoneInputComponent } from './smart.phoneinput';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\n@NgModule({\n declarations: [PhoneInputComponent],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\texports: [PhoneInputComponent]\n})\n\nexport class PhoneInputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-webcomponents-angular-phoneinput.mjs","sources":["../../phoneinput/src/smart.element.ts","../../phoneinput/src/smart.phoneinput.ts","../../phoneinput/src/smart.phoneinput.module.ts","../../phoneinput/src/smart-webcomponents-angular-phoneinput.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { PhoneInput } from './../index';\nimport { DropDownButtonPosition, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, forwardRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { DropDownButtonPosition, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { PhoneInput } from './../index';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PhoneInputComponent),\n multi: true\n}\n\n@Directive({\n\texportAs: 'smart-phone-input',\tselector: 'smart-phone-input, [smart-phone-input]',\n\tproviders: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\n\n})\n\nexport class PhoneInputComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\tconstructor(ref: ElementRef<PhoneInput>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as PhoneInput;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: PhoneInput;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <PhoneInput>document.createElement('smart-phone-input');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n /**\n * @description\n * The registered callback function called when a change event occurs on the form elements.\n */\n _onChange: (value: any) => void = () => {};\n /**\n * @description\n * The registered callback function called when a blur event occurs on the form elements.\n */\n _onTouched: () => any = () => {};\n\n\n\t/** @description Determines whether the element is interactive or inactive. When enabled, the element can be interacted with by the user; when disabled, the element becomes unresponsive to user actions, often appearing visually distinct (e.g., grayed out). */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Specifies extra CSS class names to be applied to the Input dropdown element, allowing for customized styling and theming beyond the default classes. */\n\t@Input()\n\tget dropDownClassList(): any {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownClassList : undefined;\n\t}\n\tset dropDownClassList(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownClassList = value : undefined;\n\t}\n\n\t/** @description Specifies the placement of the dropdown button relative to its associated element, such as positioning it to the left, right, above, or below the target UI component. */\n\t@Input()\n\tget dropDownButtonPosition(): DropDownButtonPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownButtonPosition : undefined;\n\t}\n\tset dropDownButtonPosition(value: DropDownButtonPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownButtonPosition = value : undefined;\n\t}\n\n\t/** @description Specifies the height of the dropdown menu. By default, this property is set to an empty string, which means the dropdown's height will be determined by a corresponding CSS variable. If a specific value is provided, it will override the CSS variable and explicitly set the dropdown's height. */\n\t@Input()\n\tget dropDownHeight(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownHeight : undefined;\n\t}\n\tset dropDownHeight(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownHeight = value : undefined;\n\t}\n\n\t/** @description Specifies the width of the dropdown menu. By default, this value is an empty string (\"\"). When left empty, the dropdown's width is determined by a CSS variable, allowing the width to be managed through external stylesheets rather than being hardcoded. This provides flexibility for responsive design and consistent styling across your application. If a specific width is provided (e.g., \"200px\" or \"50%\"), it will override the CSS variable and explicitly set the dropdown's width. */\n\t@Input()\n\tget dropDownWidth(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownWidth : undefined;\n\t}\n\tset dropDownWidth(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownWidth = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves an object containing string values used throughout the widget’s user interface, allowing for easy localization of text. This property works together with the locale setting to display the widget’s content in different languages, based on the specified translations. Use this object to provide or customize all user-facing strings for multilingual support. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or retrieves the unlockKey property, which serves as a unique key required to unlock access to the product. When assigning a value, the unlockKey enables authorized usage; when retrieving, it provides the current key associated with the product’s access permissions. */\n\t@Input()\n\tget unlockKey(): string {\n\t\treturn this.nativeElement ? this.nativeElement.unlockKey : undefined;\n\t}\n\tset unlockKey(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.unlockKey = value : undefined;\n\t}\n\n\t/** @description Defines or retrieves the value of the name attribute for the element. The name attribute uniquely identifies the element within an HTML form, allowing its data to be included and referenced when the form is submitted to a server. This is essential for processing form data on the server side. */\n\t@Input()\n\tget name(): string {\n\t\treturn this.nativeElement ? this.nativeElement.name : undefined;\n\t}\n\tset name(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.name = value : undefined;\n\t}\n\n\t/** @description Specifies whether the input should be in international or national format. In international mode, the input should begin with a '+' followed by the country code (e.g., +1 555-1234). In national mode, the input should omit the '+' and country code, using only the local number format. */\n\t@Input()\n\tget nationalMode(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.nationalMode : undefined;\n\t}\n\tset nationalMode(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.nationalMode = value : undefined;\n\t}\n\n\t/** @description Specifies whether the dropdown menu is currently visible (open) or hidden (closed). */\n\t@Input()\n\tget opened(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.opened : undefined;\n\t}\n\tset opened(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.opened = value : undefined;\n\t}\n\n\t/** @description Specifies or retrieves an array of country codes to customize the set of countries used, replacing the default list that includes all countries. Each country code must be a valid ISO 3166-1 alpha-2 code (see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), which consists of two uppercase letters (e.g., 'US' for the United States, 'FR' for France). Use this property to limit available options to a specific set of countries as needed. */\n\t@Input()\n\tget onlyCountries(): any {\n\t\treturn this.nativeElement ? this.nativeElement.onlyCountries : undefined;\n\t}\n\tset onlyCountries(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.onlyCountries = value : undefined;\n\t}\n\n\t/** @description Specifies the placeholder text that appears inside the input field before the user enters any value, providing a hint or example of the expected input format. */\n\t@Input()\n\tget placeholder(): string {\n\t\treturn this.nativeElement ? this.nativeElement.placeholder : undefined;\n\t}\n\tset placeholder(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.placeholder = value : undefined;\n\t}\n\n\t/** @description Gets or sets the selected country for the element using a country code. The country code must conform to the ISO 3166-1 alpha-2 standard (see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), which consists of a two-letter, uppercase code representing each country (e.g., \"US\" for United States, \"FR\" for France). */\n\t@Input()\n\tget selectedCountry(): string {\n\t\treturn this.nativeElement ? this.nativeElement.selectedCountry : undefined;\n\t}\n\tset selectedCountry(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.selectedCountry = value : undefined;\n\t}\n\n\t/** @description Gets or sets a value that determines whether the element's alignment is configured for right-to-left (RTL) languages (such as Arabic or Hebrew), enabling proper display and layout of text and content for those locales. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Specifies the visual theme to be applied to the element. The selected theme controls the element's overall appearance, including colors, fonts, spacing, and other stylistic properties, ensuring a consistent look and feel across the user interface. */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description When set to true, this property prevents the element from receiving keyboard focus, making it inaccessible via tab navigation and standard focus events. */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description Retrieves the current value of the element or assigns a new value to it. This property can be used to access the data contained within form elements (such as input, textarea, or select) or to update their content programmatically. */\n\t@Input()\n\tget value(): string {\n\t\treturn this.nativeElement ? this.nativeElement.value : undefined;\n\t}\n\tset value(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.value = value : undefined;\n\t}\n\n\t/** @description This event is triggered whenever the user modifies the current selection, such as highlighting different text or choosing another item from a selectable list. It helps you detect and respond to any change in what is selected within the relevant user interface component.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tlabel, \toldLabel, \toldValue, \tvalue)\n\t* label - The label of the new selected item.\n\t* oldLabel - The label of the item that was previously selected before the event was triggered.\n\t* oldValue - The value of the item that was previously selected before the event was triggered.\n\t* value - The value of the new selected item.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered each time a key is released (on key up) within the input field, but only if the input's value has changed as a result of the key press.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toldValue, \tvalue)\n\t* oldValue - The previous value before it was changed.\n\t* value - The new value.\n\t*/\n\t@Output() onChanging: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered whenever the user selects an item by clicking on it within the popup list. It allows you to respond to user interaction by executing specific actions or updating the interface based on the selected item.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\titem, \tlabel, \tvalue)\n\t* item - The item that was clicked.\n\t* label - The label of the item that was clicked.\n\t* value - The value of the item that was clicked.\n\t*/\n\t@Output() onItemClick: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Closes the dropdown menu, hiding its visible options from the user and collapsing the interface element. \n\t*/\n public close(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.close();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.close();\n });\n }\n }\n\n\t/** @description Guarantees that the currently active (selected) item remains visible within the viewport by automatically scrolling the container as needed. This ensures users can always see and interact with their selection, even as the list or content changes. \n\t*/\n public ensureVisible(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.ensureVisible();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.ensureVisible();\n });\n }\n }\n\n\t/** @description Returns the provided phone number as a formatted string, applying standard formatting conventions (such as adding parentheses, spaces, or dashes) based on the specified locale or default format. Ensures consistency and improves readability for display or storage purposes. \n\t* @param {boolean} isInternational?. When you use 'false', the national phone number will be returned and the international phone number, when you use 'true' as parameter.\n\t* @returns {string}\n */\n\tpublic async getNumber(isInternational?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getNumber(isInternational);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic getNumberSync(isInternational?): string {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.getNumber(isInternational);\n }\n return null;\n }\n\n\t/** @description Retrieves an object representing a country based on its dial code. The returned object contains the following properties:- **label**: The local or English name of the country (e.g., \"United States\").- **value**: A unique identifier for the country (commonly the country name or abbreviation).- **iso2**: The two-letter ISO 3166-1 alpha-2 country code (e.g., \"US\").- **dialCode**: The international telephone dialing code associated with the country (e.g., \"+1\"). \n\t* @param {string} dialCode?. Returns the national or international phone number\n\t* @returns {any}\n */\n\tpublic async getItemByDialCode(dialCode?): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getItemByDialCode(dialCode);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic getItemByDialCodeSync(dialCode?): any {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.getItemByDialCode(dialCode);\n }\n return null;\n }\n\n\t/** @description Returns the currently selected item as an object. This object contains the following properties: - `label`: A string representing the display name of the item (e.g., country name). - `value`: A string or identifier associated with the item (e.g., country code). - `iso2`: A two-letter ISO 3166-1 alpha-2 country code string (e.g., 'US' for United States). - `dialCode`: A string representing the country’s international dialing code (e.g., '+1'). \n\t* @returns {any}\n */\n\tpublic async getSelectedItem(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.getSelectedItem();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic getSelectedItemSync(): any {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.getSelectedItem();\n }\n return null;\n }\n\n\t/** @description Determines if the provided phone number meets the required format and validation rules, returning true for a valid phone number and false if the input is invalid. \n\t* @returns {boolean}\n */\n\tpublic async isValidNumber(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.isValidNumber();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic isValidNumberSync(): boolean {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.isValidNumber();\n }\n return null;\n }\n\n\t/** @description Validates whether the entered phone number is in the correct format and meets specified criteria, such as required length, allowed characters, and country or area code compliance. \n\t*/\n public validate(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.validate();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.validate();\n });\n }\n }\n\n\t/** @description Displays the drop-down menu, making its list of selectable options visible to the user. \n\t*/\n public open(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.open();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.open();\n });\n }\n }\n\n\t/** @description Enhances the behavior of an input field by selecting its text content when it is editable. If the input field is marked as readonly, it will instead focus the element without selecting the text. This ensures that users can easily interact with editable inputs, while still providing focus to readonly fields for accessibility or further actions. \n\t*/\n public select(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.select();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.select();\n });\n }\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tif (Smart) Smart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tif (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\t_initialChange = true; \n\n\tget ngValue(): any {\n\t\tif (!this.nativeElement) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst value = this.nativeElement.value;\n\t\treturn value;\n\t}\n\n\tset ngValue(value: any) {\n\t\tif (this.nativeElement) {\n\t\t this.writeValue(value);\n\t\t}\n\t}\n\n\twriteValue(value: any): void {\n const that = this;\n const normalizedValue = value == null ? '' : value;\n\n\t\tthat.nativeElement.whenRendered(() => {\n\t\t\tthat.value = normalizedValue;\n\t\t\tif (that._initialChange === false) {\n\t \t\tthat._onChange(that.value);\n }\n\t\t});\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\n\tprivate listen(): void {\n const that = this;\n\t\tthat.eventHandlers['changeHandler'] = (event: CustomEvent) => { that.onChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeHandler']);\n\n\t\tthat.eventHandlers['changingHandler'] = (event: CustomEvent) => { that.onChanging.emit(event); }\n\t\tthat.nativeElement.addEventListener('changing', that.eventHandlers['changingHandler']);\n\n\t\tthat.eventHandlers['itemClickHandler'] = (event: CustomEvent) => { that.onItemClick.emit(event); }\n\t\tthat.nativeElement.addEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\n\n that.eventHandlers['changeModelHandler'] = (event: Event) => {\n that._initialChange = false;\n that._onChange(that.nativeElement.value);\n };\n that.eventHandlers['blurModelHandler'] = (event: Event) => {\n that._onTouched();\n };\n that.nativeElement.whenRendered(() => {\n if (that.nativeElement.querySelector('input')) {\n that.eventHandlers['keyupModelHandler'] = (event) => {\n setTimeout(() => { that.eventHandlers['changeModelHandler'](event); }, 50);\n };\n\n that.nativeElement.querySelector('input').addEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n });\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeModelHandler']);\n\t\tthat.nativeElement.addEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t}\n\n\t/** @description Remove event listeners. */\n\tprivate unlisten(): void {\n const that = this;\n\t\tif (that.eventHandlers['changeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('changing', that.eventHandlers['changingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['itemClickHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('itemClick', that.eventHandlers['itemClickHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changeModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeModelHandler']);\n if (that.nativeElement.querySelector('input')) {\n that.nativeElement.querySelector('input').removeEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n\t\t}\n\t\tif (that.eventHandlers['blurModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { PhoneInputComponent } from './smart.phoneinput';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\n@NgModule({\n declarations: [PhoneInputComponent],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\texports: [PhoneInputComponent]\n})\n\nexport class PhoneInputModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}