{"version":3,"file":"bravura-ui-phone-number.mjs","sources":["../../../projects/ui/phone-number/phone-number.pipe.ts","../../../projects/ui/phone-number/phone-number.validator.ts","../../../projects/ui/phone-number/phone-number.directive.ts","../../../projects/ui/phone-number/phone-number.module.ts","../../../projects/ui/phone-number/bravura-ui-phone-number.ts"],"sourcesContent":["import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\r\n\r\ndeclare const intlTelInputUtils: any;\r\n\r\n/**\r\n * @internal\r\n */\r\n@Pipe({\r\n\tname: 'buiPhone',\r\n\tpure: true,\r\n\tstandalone: false\r\n})\r\nexport class PhoneNumberPipe implements PipeTransform {\r\n\tconstructor(@Inject(LOCALE_ID) private _locale: string) {}\r\n\r\n\ttransform(value: any, mode?: string, renderLink?: boolean): string {\r\n\t\tif (!value) {\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tconst countryCode = getCountryCodeFromLocale(this._locale);\r\n\r\n\t\tlet format: number;\r\n\t\tswitch (mode) {\r\n\t\t\tcase 'NATIONAL':\r\n\t\t\t\tformat = intlTelInputUtils.numberFormat.NATIONAL;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tformat = intlTelInputUtils.numberFormat.INTERNATIONAL;\r\n\t\t}\r\n\t\tconst result = intlTelInputUtils.formatNumber(value, countryCode, format);\r\n\t\tif (renderLink) {\r\n\t\t\treturn `<a href=\"tel:${result}\">${result}</a>`;\r\n\t\t} else {\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport function getCountryCodeFromLocale(locale: string): string {\r\n\treturn locale.replace(/.+[-_]([a-z][a-z])$/i, '$1');\r\n}\r\n","import { Directive, ElementRef, Input, StaticProvider, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const SELECTOR =\r\n\t'[buiTelInput], input([type=tel])[ngModel], input([type=tel])[formControlName], input([type=tel])[formControl]';\r\n\r\n/**\r\n * @internal\r\n */\r\nexport const PHONE_VALIDATOR: StaticProvider = {\r\n\tprovide: NG_VALIDATORS,\r\n\tuseExisting: forwardRef(() => PhoneNumberValidator),\r\n\tmulti: true\r\n};\r\n\r\n/**\r\n * @internal\r\n */\r\nexport type TEL_TYPE = 'MOBILE' | 'FIXED_LINE_OR_MOBILE' | 'FIXED_LINE';\r\n\r\n/**\r\n * @internal\r\n */\r\ndeclare const intlTelInputUtils: any;\r\n\r\n/**\r\n * @internal\r\n */\r\n@Directive({\r\n\tselector: SELECTOR,\r\n\tproviders: [PHONE_VALIDATOR],\r\n\tstandalone: false\r\n})\r\nexport class PhoneNumberValidator implements Validator {\r\n\t@Input()\r\n\ttelType: TEL_TYPE = 'FIXED_LINE';\r\n\r\n\tstatic validateControl(inp: HTMLInputElement, type: TEL_TYPE, update: boolean): { [key: string]: any } | null {\r\n\t\tconst err = { tel: true };\r\n\t\tif (!inp.value) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst iti = (inp as any).$$iti;\r\n\t\tif (!iti) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (iti.isValidNumber()) {\r\n\t\t\tconst n = iti.getNumber(intlTelInputUtils.numberFormat.INTERNATIONAL);\r\n\t\t\tif (update) {\r\n\t\t\t\tinp.value = n;\r\n\t\t\t}\r\n\r\n\t\t\tconst t = iti.getNumberType();\r\n\t\t\tif (t !== intlTelInputUtils.numberType.FIXED_LINE_OR_MOBILE) {\r\n\t\t\t\tif (\r\n\t\t\t\t\t(type === 'MOBILE' && t !== intlTelInputUtils.numberType.MOBILE) ||\r\n\t\t\t\t\t(type === 'FIXED_LINE' && t !== intlTelInputUtils.numberType.FIXED_LINE)\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn err;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\treturn err;\r\n\t}\r\n\r\n\tconstructor(private _el: ElementRef<HTMLInputElement>) {}\r\n\r\n\tvalidate(_: AbstractControl): { [key: string]: any } | null {\r\n\t\treturn PhoneNumberValidator.validateControl(this._el.nativeElement, this.telType, false);\r\n\t}\r\n}\r\n","import {\r\n\tDirective,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHostListener,\r\n\tInject,\r\n\tInput,\r\n\tLOCALE_ID,\r\n\tNgZone,\r\n\tOnChanges,\r\n\tOnDestroy,\r\n\tOnInit,\r\n\tOptional,\r\n\tOutput,\r\n\tSimpleChanges\r\n} from '@angular/core';\r\nimport { FormControlDirective, FormControlName, NgModel, UntypedFormControl } from '@angular/forms';\r\nimport { MatFormField } from '@angular/material/form-field';\r\nimport intlTelInput from 'intl-tel-input';\r\nimport { of } from 'rxjs';\r\nimport { debounceTime, take } from 'rxjs/operators';\r\nimport { getCountryCodeFromLocale } from './phone-number.pipe';\r\nimport { PhoneNumberValidator, SELECTOR, TEL_TYPE } from './phone-number.validator';\r\n\r\n/**\r\n * @ignore\r\n */\r\ndeclare const intlTelInputUtils: any;\r\n\r\n/**\r\n * Add phone number validation support by specifying the `type` attribute as `tel` in an `<input>` element.\r\n *\r\n * To use this feature, please install a peer dependency `intl-tel-input` in your project and add the following\r\n * to your application polyfills:\r\n *\r\n * ```javascript\r\n * import 'intl-tel-input/build/js/utils.js';\r\n * ```\r\n *\r\n * You will also need to add the following statements to one of your global SCSS files:\r\n *\r\n * ```scss\r\n * @import url('intl-tel-input/build/css/intlTelInput');\r\n * ```\r\n */\r\n@Directive({\r\n\tselector: SELECTOR,\r\n\tstandalone: false\r\n})\r\nexport class PhoneNumberDirective implements OnInit, OnChanges, OnDestroy {\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tstatic POST_RENDER_INIT_DELAY = 20;\r\n\r\n\t/**\r\n\t * @ignore\r\n\t */\r\n\tstatic BYPASS_SHADOW_DETECTION = false;\r\n\r\n\t/**\r\n\t * The type of phone number to validate for\r\n\t */\r\n\t@Input()\r\n\ttelType: TEL_TYPE = 'FIXED_LINE';\r\n\r\n\t/**\r\n\t * Disable country dropdown by setting this property to `false`.\r\n\t */\r\n\t@Input()\r\n\ttelDropdown = true;\r\n\r\n\t/**\r\n\t * This event is triggered when a new country is selected from the dropdown. The event detail is the ISO country code.\r\n\t */\r\n\t@Output()\r\n\ttelCountryChange = new EventEmitter<string>();\r\n\r\n\tprivate _control: UntypedFormControl | undefined;\r\n\tprivate _reactive = false;\r\n\tprivate _countryChangeListener: () => void = () => null;\r\n\tprivate _input: HTMLInputElement | undefined;\r\n\tprivate _iti: any;\r\n\r\n\tconstructor(\r\n\t\tprivate _el: ElementRef<HTMLInputElement>,\r\n\t\t@Optional() private _ngModel: NgModel,\r\n\t\t@Optional() private _formControlName: FormControlName,\r\n\t\t@Optional() private _formControlDirective: FormControlDirective,\r\n\t\t@Inject(LOCALE_ID) private _locale: string,\r\n\t\tprivate _zone: NgZone,\r\n\t\t@Optional() private _matField: MatFormField\r\n\t) {}\r\n\r\n\t/** @internal */\r\n\t@HostListener('input')\r\n\tonInput() {\r\n\t\tconst err = PhoneNumberValidator.validateControl(this._input!, this.telType, true);\r\n\t\tthis._control!.patchValue(this._input!.value, { emitEvent: false });\r\n\r\n\t\tif (this._reactive && err) {\r\n\t\t\tthis._control!.setErrors({ ...this._control!.errors, ...err });\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tconst ctrDirective = this._ngModel || this._formControlName || this._formControlDirective;\r\n\t\tthis._control = ctrDirective.control as UntypedFormControl;\r\n\t\tthis._reactive = this._ngModel ? false : true;\r\n\t\tthis._input = this._el.nativeElement;\r\n\r\n\t\tthis._countryChangeListener = (() => {\r\n\t\t\tthis._zone.run(() => {\r\n\t\t\t\tthis._control!.markAsDirty();\r\n\t\t\t\tthis._control!.updateValueAndValidity({ emitEvent: true });\r\n\t\t\t\tthis.telCountryChange.emit(this._iti.getSelectedCountryData().iso2);\r\n\t\t\t});\r\n\t\t}).bind(this);\r\n\r\n\t\t(PhoneNumberDirective.BYPASS_SHADOW_DETECTION ? of(0 as any) : this._zone.onStable)\r\n\t\t\t.pipe(debounceTime(10), take(1))\r\n\t\t\t.subscribe(() => this.initElement());\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis._input!.removeEventListener('countrychange', this._countryChangeListener);\r\n\t\tthis._iti?.destroy();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges): void {\r\n\t\tconst td = changes.telDropdown;\r\n\t\tif (td && !td.firstChange) {\r\n\t\t\tthis.ngOnDestroy();\r\n\t\t\tthis.ngOnInit();\r\n\t\t}\r\n\t\tconst type = changes.telType;\r\n\t\tif (type && !type.firstChange) {\r\n\t\t\tthis.onInput();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initElement() {\r\n\t\tconst countryCode = getCountryCodeFromLocale(this._locale).toLowerCase();\r\n\r\n\t\tconst root: ShadowRoot | Document = this._input!.getRootNode() as ShadowRoot | Document;\r\n\t\tif (!root.querySelector('#bui-tel-input-style')) {\r\n\t\t\tconst styleTag = document.createElement('style');\r\n\t\t\tstyleTag.id = 'bui-tel-input-style';\r\n\t\t\tstyleTag.innerText =\r\n\t\t\t\t'.mat-mdc-form-field .bui-tel-input-placeholder:not(.mdc-floating-label--float-above){margin-left:44px;}' +\r\n\t\t\t\t'.iti--allow-dropdown{margin-left:-8px}' +\r\n\t\t\t\t'.bui-tel-input-with-value:disabled{cursor:pointer;}';\r\n\t\t\t(root instanceof Document ? (root.querySelector('head') as any) : root).appendChild(styleTag);\r\n\t\t}\r\n\t\tthis._iti = intlTelInput(this._input!, {\r\n\t\t\tinitialCountry: countryCode,\r\n\t\t\tplaceholderNumberType: this.telType,\r\n\t\t\tpreferredCountries: [countryCode, ...['au', 'ca', 'nz', 'us', 'gb'].filter(c => c !== countryCode)],\r\n\t\t\tdropdownContainer: root instanceof ShadowRoot ? root.querySelector('overlay-root') || root : (root.body as any),\r\n\t\t\tautoPlaceholder: 'off',\r\n\t\t\tallowDropdown: this.telDropdown\r\n\t\t});\r\n\r\n\t\t(this._input as any).$$iti = this._iti;\r\n\t\tthis._input!.addEventListener('countrychange', this._countryChangeListener);\r\n\r\n\t\tconst frameTime = Date.now();\r\n\t\tconst postRenderWork = () => {\r\n\t\t\tif (frameTime + PhoneNumberDirective.POST_RENDER_INIT_DELAY > Date.now()) {\r\n\t\t\t\twindow.requestAnimationFrame(postRenderWork);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet label: HTMLLabelElement | undefined;\r\n\t\t\tif (this._matField?.getLabelId() && typeof root.getElementById === 'function') {\r\n\t\t\t\tlabel = root.getElementById(this._matField.getLabelId()!) as HTMLLabelElement;\r\n\t\t\t\tlabel?.classList.remove('bui-tel-input-placeholder');\r\n\t\t\t}\r\n\t\t\tif (label && this.telDropdown) {\r\n\t\t\t\tlabel.classList.add('bui-tel-input-placeholder');\r\n\t\t\t}\r\n\r\n\t\t\tif (this._input?.value) {\r\n\t\t\t\tthis._input.classList.add('bui-tel-input-with-value');\r\n\t\t\t}\r\n\t\t};\r\n\t\twindow.requestAnimationFrame(postRenderWork);\r\n\r\n\t\tthis._input!.addEventListener('click', () => {\r\n\t\t\tif (this._control?.disabled && this._control.value) {\r\n\t\t\t\twindow.location.href = 'tel://' + this._control.value;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis._control?.registerOnDisabledChange(isDisabled => this._patchValueByState(isDisabled));\r\n\t\tthis._patchValueByState(this._control!.disabled);\r\n\t}\r\n\r\n\tprivate _patchValueByState(isDisabled: boolean) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (!isDisabled) {\r\n\t\t\t\tthis.onInput();\r\n\t\t\t} else {\r\n\t\t\t\tconst v = this._iti.getNumber(intlTelInputUtils.numberFormat.NATIONAL);\r\n\t\t\t\tthis._input!.value = v;\r\n\t\t\t\tthis._control?.patchValue(this._input?.value, { emitEvent: false });\r\n\t\t\t}\r\n\t\t}, 20);\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { PhoneNumberDirective } from './phone-number.directive';\r\nimport { PhoneNumberPipe } from './phone-number.pipe';\r\nimport { PhoneNumberValidator } from './phone-number.validator';\r\n\r\n/**\r\n * @internal\r\n */\r\n@NgModule({\r\n\tdeclarations: [PhoneNumberPipe, PhoneNumberDirective, PhoneNumberValidator],\r\n\timports: [CommonModule],\r\n\texports: [PhoneNumberDirective, PhoneNumberPipe, PhoneNumberValidator]\r\n})\r\nexport class PhoneModule {}\r\n\r\nexport { PhoneNumberDirective, PhoneNumberPipe, PhoneNumberValidator };\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}