UNPKG

moh-common-lib

Version:

A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).

855 lines 71.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, Output, EventEmitter, forwardRef, ViewChild } from '@angular/core'; import { ControlContainer, NgForm, NG_VALUE_ACCESSOR } from '@angular/forms'; import { Base } from '../../models/base'; import { Address } from '../../models/address.model'; import { CANADA, COUNTRY_LIST } from '../country/country.component'; import { BRITISH_COLUMBIA, PROVINCE_LIST } from '../province/province.component'; import { CityComponent } from '../city/city.component'; /** * @record */ export function AddrLabelList() { } if (false) { /** @type {?|undefined} */ AddrLabelList.prototype.address1; /** @type {?|undefined} */ AddrLabelList.prototype.address2; /** @type {?|undefined} */ AddrLabelList.prototype.address3; /** @type {?|undefined} */ AddrLabelList.prototype.city; /** @type {?|undefined} */ AddrLabelList.prototype.province; /** @type {?|undefined} */ AddrLabelList.prototype.country; /** @type {?|undefined} */ AddrLabelList.prototype.postalCode; } /** * @record */ export function Maxlengths() { } if (false) { /** @type {?|undefined} */ Maxlengths.prototype.address; /** @type {?|undefined} */ Maxlengths.prototype.city; /** @type {?|undefined} */ Maxlengths.prototype.province; /** @type {?|undefined} */ Maxlengths.prototype.country; /** @type {?|undefined} */ Maxlengths.prototype.postalCode; } /** * @record */ export function ReadOnlyFields() { } if (false) { /** @type {?|undefined} */ ReadOnlyFields.prototype.address; /** @type {?|undefined} */ ReadOnlyFields.prototype.city; /** @type {?|undefined} */ ReadOnlyFields.prototype.province; /** @type {?|undefined} */ ReadOnlyFields.prototype.country; /** @type {?|undefined} */ ReadOnlyFields.prototype.postalCode; } /** * * Note - This component REQUIRES that `HttpClientModule` is registered in your NgModule. */ var AddressComponent = /** @class */ (function (_super) { tslib_1.__extends(AddressComponent, _super); function AddressComponent() { var _this = _super.call(this) || this; /* Disable all fields by sending in boolean, * disable specific fields by sending in ReadOnlyFields structure */ _this.disabled = false; _this.isRequired = false; _this.countryList = COUNTRY_LIST; _this.defaultCountry = CANADA; _this.provinceList = PROVINCE_LIST; _this.defaultProvince = BRITISH_COLUMBIA; _this.disableGeocoder = false; // This should eventually be refactored to `disableAddressValidator`. Leaving it for compatibility. _this.bcOnly = false; _this.addressChange = new EventEmitter(); /** * If true, adds a plus icon next to street and enables users to add a second * address line. This value binds to `address.addressLine2` */ _this.allowExtralines = false; _this.showLine2 = false; _this.showLine3 = false; // Labels defaulted to MSP _this.addrLabels = { address1: 'Full street address, rural route, PO box or general delivery', address2: 'Address Line 2', address3: 'Address Line 3', city: 'City', province: 'Province or state', country: 'Jurisdiction', postalCode: 'Postal Code or Zip Code' }; // Lengths defaulted to MSP _this.fieldMaxLengths = { address: '25', city: '25', province: '25', country: '250', postalCode: '25' }; _this.readOnlyFields = { address: false, city: false, province: false, country: false, postalCode: false, }; _this._onChange = (/** * @param {?} _ * @return {?} */ function (_) { }); _this._onTouched = (/** * @param {?} _ * @return {?} */ function (_) { }); return _this; } Object.defineProperty(AddressComponent.prototype, "address", { get: /** * @return {?} */ function () { return this.addr; }, set: /** * @param {?} val * @return {?} */ function (val) { if (val) { this.addr = val; } }, enumerable: true, configurable: true }); /** * @return {?} */ AddressComponent.prototype.ngOnInit = /** * @return {?} */ function () { this.setLabels(); this.setMaxlengths(); this.setReadOnlyFields(); if (this.addr) { if (!this.addr.country) { this.addr.country = this.setDefaultCountryAsOption(); } else { // If string for country submitted, need to find code to display value in select box this.addr.country = this.findCountryCode(this.addr.country); } if (!this.addr.province) { this.addr.province = this.setDefaultProvinceAsOption(this.addr.country); } // Make sure addressLine2 is visible if there is data persisted to display there. if (this.allowExtralines) { if (this.addr.addressLine2) { this.addLine(2); } if (this.addr.addressLine3) { this.addLine(3); } } } this.updateProvList(); }; /** * Set country province blank * @param value */ /** * Set country province blank * @param {?} value * @return {?} */ AddressComponent.prototype.setCountry = /** * Set country province blank * @param {?} value * @return {?} */ function (value) { this.addr.province = this.setDefaultProvinceAsOption(value); this.addr.country = value; this.updateProvList(); if (this.isCanada()) { // If Canada, clear postal code to display mask this.addr.postal = ''; if (!this.disableGeocoder) { this.showLine2 = false; this.showLine3 = false; this.addr.addressLine2 = ''; this.addr.addressLine3 = ''; } } this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * @param {?} value * @return {?} */ AddressComponent.prototype.setProvince = /** * @param {?} value * @return {?} */ function (value) { this.addr.province = value; this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * @param {?} value * @return {?} */ AddressComponent.prototype.setStreetAddress = /** * @param {?} value * @return {?} */ function (value) { // When emptying a search result from address validator, clear the rest of the fields as well. if (value === '' && !this.disableGeocoder) { this.addr.addressLine1 = ''; this.addr.addressLine2 = ''; this.addr.addressLine3 = ''; this.addr.city = ''; this.addr.postal = ''; if (!this.bcOnly) { this.addr.province = BRITISH_COLUMBIA; this.addr.country = CANADA; } if (this.allowExtralines) { this.showLine2 = false; this.showLine3 = false; } } this.addr.addressLine1 = value; this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * @param {?} value * @return {?} */ AddressComponent.prototype.setCity = /** * @param {?} value * @return {?} */ function (value) { this.addr.city = value; this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * Sets string after converted upper case * @param text */ /** * Sets string after converted upper case * @param {?} value * @return {?} */ AddressComponent.prototype.setPostalCode = /** * Sets string after converted upper case * @param {?} value * @return {?} */ function (value) { this.addr.postal = value; this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * @return {?} */ AddressComponent.prototype.isCanada = /** * @return {?} */ function () { return this.addr && CANADA === this.addr.country; }; /** * @param {?} changes * @return {?} */ AddressComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes['countryList'] && changes['countryList'].currentValue) { if (this.addr && !this.addr.country) { // Set defaults this.addr.country = this.setDefaultCountryAsOption(); // Set defaults this.addr.province = this.setDefaultProvinceAsOption(this.addr.country); } this.updateProvList(); } if (changes['provinceList'] && changes['provinceList'].currentValue) { if (this.addr && !this.addr.province) { // Set defaults this.addr.province = this.setDefaultProvinceAsOption(this.addr.country); } this.updateProvList(); } }; /** * @param {?=} line * @return {?} */ AddressComponent.prototype.addLine = /** * @param {?=} line * @return {?} */ function (line) { if (line === void 0) { line = null; } // Add lines in order if (line === null) { if (!this.showLine2) { this.showLine2 = true; } else if (!this.showLine3) { this.showLine3 = true; } } else { // Add specific line number /** @type {?} */ var lookup = "showLine" + line; this[lookup] = true; } }; /** * @param {?} line * @return {?} */ AddressComponent.prototype.removeLine = /** * @param {?} line * @return {?} */ function (line) { // We can remove lines in any order, depending on user input // Dynamically lookup variable based on line number input. /** @type {?} */ var lookup = "showLine" + line; this[lookup] = false; // TODO - Need to clear the data in the appropriate field, just null/undefined it out. /** @type {?} */ var addrLookup = "addressLine" + line; this.address[addrLookup] = undefined; }; /** * Updates the provList variable. Values must be stored in a variable and not * accessed via function invocation for performance. */ /** * Updates the provList variable. Values must be stored in a variable and not * accessed via function invocation for performance. * @private * @return {?} */ AddressComponent.prototype.updateProvList = /** * Updates the provList variable. Values must be stored in a variable and not * accessed via function invocation for performance. * @private * @return {?} */ function () { var _this = this; if (!this.provinceList) { return; } // When data is async and hasn't loaded this.provList = this.provinceList .map((/** * @param {?} prov * @return {?} */ function (prov) { if (prov.country === _this.addr.country) { return prov; } })) .filter((/** * @param {?} x * @return {?} */ function (x) { return x; })); }; /** * Sets the default province option value */ /** * Sets the default province option value * @private * @param {?} country * @return {?} */ AddressComponent.prototype.setDefaultProvinceAsOption = /** * Sets the default province option value * @private * @param {?} country * @return {?} */ function (country) { var _this = this; /** @type {?} */ var provObj = !this.provinceList ? null : this.provinceList.find((/** * @param {?} val * @return {?} */ function (val) { return (val.provinceCode === _this.defaultProvince || val.description === _this.defaultProvince) && val.country === country; })); return (provObj ? provObj.provinceCode : ''); }; /** * @private * @param {?} prov * @return {?} */ AddressComponent.prototype.findProvinceDescription = /** * @private * @param {?} prov * @return {?} */ function (prov) { /** @type {?} */ var provObj = !this.provinceList ? null : this.provinceList.find((/** * @param {?} val * @return {?} */ function (val) { return val.provinceCode === prov || val.description === prov; })); return (provObj ? provObj.description : null); }; /** * Set country to default * Search uses country code or country name to find item is list. */ /** * Set country to default * Search uses country code or country name to find item is list. * @private * @return {?} */ AddressComponent.prototype.setDefaultCountryAsOption = /** * Set country to default * Search uses country code or country name to find item is list. * @private * @return {?} */ function () { return this.findCountryCode(this.defaultCountry); }; /** * @private * @param {?} country * @return {?} */ AddressComponent.prototype.findCountryCode = /** * @private * @param {?} country * @return {?} */ function (country) { /** @type {?} */ var countryObj = !this.countryList ? null : this.countryList.find((/** * @param {?} val * @return {?} */ function (val) { return val.countryCode === country || val.description === country; })); return countryObj ? countryObj.countryCode : null; }; Object.defineProperty(AddressComponent.prototype, "useAddressValidator", { get: /** * @return {?} */ function () { if (this.disableGeocoder) { return false; } return this.isCanada(); }, enumerable: true, configurable: true }); // Only BC addresses therefore no need to copy province into structure. // Only BC addresses therefore no need to copy province into structure. /** * @param {?} data * @return {?} */ AddressComponent.prototype.setAddress = // Only BC addresses therefore no need to copy province into structure. /** * @param {?} data * @return {?} */ function (data) { this.addr.addressLine1 = data.street; this.addr.city = data.city; this.addr.province = data.province; this.addr.country = data.country; this.addressChange.emit(this.addr); }; /** * @param {?} address * @return {?} */ AddressComponent.prototype.selectSuggestedAddress = /** * @param {?} address * @return {?} */ function (address) { var _this = this; if (!address.street && !address.city && !address.postal) { return; } // Truncate long addresses and drop them down a line to addressLine2 etc. address = this.truncateAddressLines(address); if (this.bcOnly && address.province != BRITISH_COLUMBIA) { alert('Please select a valid BC address.'); setTimeout((/** * @return {?} */ function () { _this.addr.addressLine1 = ''; _this.addr.addressLine2 = ''; _this.addr.addressLine3 = ''; }), 0); return; } // Placed in timeout to override ngx-bootstrap population. setTimeout((/** * @return {?} */ function () { _this.addr.addressLine1 = address.addressLine1 || ''; }), 0); if (this.allowExtralines) { this.addr.addressLine2 = address.addressLine2 || ''; this.addr.addressLine3 = address.addressLine3 || ''; if (address.addressLine2) { this.showLine2 = true; } if (address.addressLine3) { this.showLine3 = true; } } this.addr.city = address.city; if (this._cityComponent) { this._cityComponent.onValueChange(this.addr.city); } this.addr.postal = address.postal; if (!this.bcOnly) { this.addr.province = address.province; } this._onChange(this.addr); this.addressChange.emit(this.addr); this._onTouched(this.addr); }; /** * @param {?} value * @return {?} */ AddressComponent.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { if (value) { this.addr = value; } }; /** * @param {?} fn * @return {?} */ AddressComponent.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this._onChange = fn; }; /** * @param {?} fn * @return {?} */ AddressComponent.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this._onTouched = fn; }; /** * @param {?} isDisabled * @return {?} */ AddressComponent.prototype.setDisabledState = /** * @param {?} isDisabled * @return {?} */ function (isDisabled) { this.disabled = isDisabled; this.setReadOnlyFields(); }; /** * @private * @return {?} */ AddressComponent.prototype.setLabels = /** * @private * @return {?} */ function () { var _this = this; if (this.labels) { Object.keys(this.labels).map((/** * @param {?} x * @return {?} */ function (x) { return _this.addrLabels[x] = _this.labels[x]; })); } }; /** * @private * @return {?} */ AddressComponent.prototype.setMaxlengths = /** * @private * @return {?} */ function () { var _this = this; if (this.maxlengths) { Object.keys(this.fieldMaxLengths).map((/** * @param {?} x * @return {?} */ function (x) { return _this.maxlengths[x] = _this.fieldMaxLengths[x]; })); } }; /** * @private * @return {?} */ AddressComponent.prototype.setReadOnlyFields = /** * @private * @return {?} */ function () { var _this = this; if (typeof this.disabled === 'boolean') { Object.keys(this.readOnlyFields).map((/** * @param {?} x * @return {?} */ function (x) { return _this.readOnlyFields[x] = _this.disabled; })); } else { Object.keys(this.disabled).map((/** * @param {?} x * @return {?} */ function (x) { return _this.readOnlyFields[x] = _this.disabled[x]; })); } }; /** * @private * @param {?} address * @return {?} */ AddressComponent.prototype.truncateAddressLines = /** * @private * @param {?} address * @return {?} */ function (address) { /** @type {?} */ var maxlength = parseInt(this.fieldMaxLengths.address, 10); /** @type {?} */ var lines = []; /** @type {?} */ var newLines = []; /** @type {?} */ var lineIndex = 0; // console.log('Before truncation: ', address); // Create `lines` array of address lines. for (var i = 1; i <= 3; i++) { if (address['addressLine' + i]) { lines.push(address['addressLine' + i]); } } for (var i = 0; i < lines.length; i++) { if (!lines[i]) { break; } newLines.push(''); /** @type {?} */ var words = lines[i].split(' '); if (lines[i].length > maxlength && words.length > 1) { // Iterate over words. while (words.length > 0) { newLines[lineIndex] += words[0] + ' '; words.splice(0, 1); if (words.length > 0) { /** @type {?} */ var tempNextLine = newLines[lineIndex] + words[0]; // Add next line in case words remain. if (tempNextLine.length > maxlength) { newLines[lineIndex] = newLines[lineIndex].trim(); newLines.push(''); lineIndex++; } } } newLines[lineIndex] = newLines[lineIndex].trim(); } else { newLines[lineIndex] = lines[i]; } lineIndex++; } ; for (var i = 0; i < newLines.length; i++) { address['addressLine' + (i + 1)] = newLines[i]; } // console.log('After truncatation: ', address); return address; }; AddressComponent.decorators = [ { type: Component, args: [{ selector: 'common-address', template: "<div class=\"form-group\">\r\n <div class=\"row\">\r\n <div [ngClass]=\"{'col-11': allowExtralines, 'col-12': !allowExtralines}\">\r\n <common-street *ngIf=\"!useAddressValidator\"\r\n name=\"street_{{objectId}}\"\r\n label=\"{{addrLabels.address1}}\"\r\n [ngModel]=\"addr?.addressLine1\"\r\n (ngModelChange)=\"setStreetAddress($event)\"\r\n (selectEvent)=\"setAddress($event)\"\r\n [required]=\"isRequired\"\r\n [disabled]=\"readOnlyFields.address\"\r\n [maxlength]=\"fieldMaxLengths.address\"\r\n commonValidateStreet></common-street>\r\n <!-- Address Validator -->\r\n <common-address-validator *ngIf=\"useAddressValidator\"\r\n name=\"street_{{objectId}}\"\r\n label=\"{{addrLabels.address1}}\"\r\n [(ngModel)]=\"addr.addressLine1\"\r\n (ngModelChange)=\"setStreetAddress($event)\"\r\n [required]=\"isRequired\"\r\n [disabled]=\"readOnlyFields.address\"\r\n [maxlength]=\"fieldMaxLengths.address\"\r\n [serviceUrl]=\"addressServiceUrl\"\r\n (select)=\"selectSuggestedAddress($event)\"\r\n [populateAddressOnSelect]=\"true\"\r\n commonValidateStreet>\r\n </common-address-validator>\r\n </div>\r\n\r\n <div class=\"col-1\"\r\n *ngIf='allowExtralines'>\r\n <div class=\"h-50\"></div>\r\n <button class=\" btn btn-transparent\"\r\n *ngIf='!(showLine2 && showLine3)'\r\n aria-label=\"Add Additional Address Line (optional)\"\r\n (click)=\"addLine()\">\r\n <i class=\"fa fa-plus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"form-group\"\r\n *ngIf='showLine2'>\r\n <div class=\"row\">\r\n\r\n <div class=\"col-11\">\r\n <common-street label=\"{{addrLabels.address2}}\"\r\n name=\"street_line_2_{{objectId}}\"\r\n [(ngModel)]='addr.addressLine2'\r\n [maxlength]=\"fieldMaxLengths.address\"\r\n [disabled]=\"readOnlyFields.address\"\r\n commonValidateStreet></common-street>\r\n </div>\r\n <div class=\"col-1\">\r\n <div class=\"h-50\"></div>\r\n <button class=\"btn btn-transparent\"\r\n *ngIf=\"!showLine3\"\r\n aria-label='Remove Address Line 2'\r\n (click)=\"removeLine(2)\">\r\n <i class=\"fa fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"form-group\"\r\n *ngIf='showLine3'>\r\n <div class=\"row\">\r\n\r\n\r\n <div class=\"col-11\">\r\n <common-street label=\"{{addrLabels.address3}}\"\r\n name=\"street_line_3_{{objectId}}\"\r\n [(ngModel)]='addr.addressLine3'\r\n [maxlength]=\"fieldMaxLengths.address\"\r\n [disabled]=\"readOnlyFields.address\"\r\n commonValidateStreet></common-street>\r\n </div>\r\n <div class=\"col-1\">\r\n <div class=\"h-50\"></div>\r\n <button class=\" btn btn-transparent\"\r\n aria-label='Remove Address Line 3 '\r\n (click)=\"removeLine(3)\">\r\n <i class=\"fa fa-minus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"form-group col-sm-11 p-sm-0\">\r\n <common-city #city\r\n name=\"city_{{objectId}}\"\r\n label=\"{{addrLabels.city}}\"\r\n [ngModel]=\"addr?.city\"\r\n (ngModelChange)=\"setCity($event)\"\r\n [required]=\"isRequired\"\r\n [disabled]=\"readOnlyFields.city\"\r\n [maxlength]=\"fieldMaxLengths.city\"\r\n commonValidateCity></common-city>\r\n</div>\r\n\r\n<div class=\"form-group col-sm-11 p-sm-0\">\r\n <common-province name=\"province_{{objectId}}\"\r\n label=\"{{addrLabels.province}}\"\r\n [ngModel]=\"addr?.province\"\r\n (ngModelChange)=\"setProvince($event)\"\r\n [provinceList]=\"provList\"\r\n [required]=\"isRequired\"\r\n [disabled]=\"readOnlyFields.province\"\r\n placeholder=\"{{ isCanada()? 'Select a Province': 'Select a State' }}\"\r\n [useDropDownList]=\"isCanada()\"\r\n [maxlength]=\"fieldMaxLengths.province\"\r\n commonValidateRegion></common-province>\r\n</div>\r\n\r\n<div class=\"form-group col-sm-11 p-sm-0\">\r\n <common-country name=\"country_{{objectId}}\"\r\n label=\"{{addrLabels.country}}\"\r\n [countryList]=\"countryList\"\r\n [ngModel]=\"addr?.country\"\r\n (ngModelChange)=\"setCountry($event)\"\r\n [required]=\"isRequired\"\r\n [disabled]=\"readOnlyFields.country\"\r\n [maxlen]=\"fieldMaxLengths.country\"></common-country>\r\n</div>\r\n\r\n<div class=\"form-group col-sm-4 p-sm-0\">\r\n <common-postal-code name=\"pc_{{objectId}}\"\r\n label=\"{{addrLabels.postalCode}}\"\r\n [displayMask]=\"isCanada()\"\r\n [disabled]=\"readOnlyFields.postalCode\"\r\n [ngModel]=\"addr?.postal\"\r\n (ngModelChange)=\"setPostalCode($event)\"\r\n [required]=\"isRequired\"\r\n [maxlen]=\"fieldMaxLengths.postalCode\"\r\n commonValidatePostalcode\r\n [hasMask]=\"isCanada()\"\r\n [bcOnly]=\"bcOnly\"></common-postal-code>\r\n</div>\r\n", /* Re-use the same ngForm that it's parent is using. The component will show * up in its parents `this.form`, and will auto-update `this.form.valid` */ viewProviders: [ { provide: ControlContainer, useExisting: forwardRef((/** * @return {?} */ function () { return NgForm; })) } ], providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ function () { return AddressComponent; })) } ] }] } ]; /** @nocollapse */ AddressComponent.ctorParameters = function () { return []; }; AddressComponent.propDecorators = { disabled: [{ type: Input }], isRequired: [{ type: Input }], countryList: [{ type: Input }], defaultCountry: [{ type: Input }], provinceList: [{ type: Input }], defaultProvince: [{ type: Input }], disableGeocoder: [{ type: Input }], labels: [{ type: Input }], maxlengths: [{ type: Input }], bcOnly: [{ type: Input }], addressServiceUrl: [{ type: Input }], _cityComponent: [{ type: ViewChild, args: ['city',] }], address: [{ type: Input }], addressChange: [{ type: Output }], allowExtralines: [{ type: Input }] }; return AddressComponent; }(Base)); export { AddressComponent }; if (false) { /** @type {?} */ AddressComponent.prototype.disabled; /** @type {?} */ AddressComponent.prototype.isRequired; /** @type {?} */ AddressComponent.prototype.countryList; /** @type {?} */ AddressComponent.prototype.defaultCountry; /** @type {?} */ AddressComponent.prototype.provinceList; /** @type {?} */ AddressComponent.prototype.defaultProvince; /** @type {?} */ AddressComponent.prototype.disableGeocoder; /** @type {?} */ AddressComponent.prototype.labels; /** @type {?} */ AddressComponent.prototype.maxlengths; /** @type {?} */ AddressComponent.prototype.bcOnly; /** @type {?} */ AddressComponent.prototype.addressServiceUrl; /** * @type {?} * @private */ AddressComponent.prototype._cityComponent; /** @type {?} */ AddressComponent.prototype.addressChange; /** * If true, adds a plus icon next to street and enables users to add a second * address line. This value binds to `address.addressLine2` * @type {?} */ AddressComponent.prototype.allowExtralines; /** @type {?} */ AddressComponent.prototype.addr; /** @type {?} */ AddressComponent.prototype.provList; /** @type {?} */ AddressComponent.prototype.showLine2; /** @type {?} */ AddressComponent.prototype.showLine3; /** @type {?} */ AddressComponent.prototype.addrLabels; /** @type {?} */ AddressComponent.prototype.fieldMaxLengths; /** @type {?} */ AddressComponent.prototype.readOnlyFields; /** @type {?} */ AddressComponent.prototype._onChange; /** @type {?} */ AddressComponent.prototype._onTouched; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLFVBQVUsRUFFVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUF3QixNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBZSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakYsT0FBTyxFQUFnQixnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFdkQsbUNBUUM7OztJQVBDLGlDQUFrQjs7SUFDbEIsaUNBQWtCOztJQUNsQixpQ0FBa0I7O0lBQ2xCLDZCQUFjOztJQUNkLGlDQUFrQjs7SUFDbEIsZ0NBQWlCOztJQUNqQixtQ0FBb0I7Ozs7O0FBR3RCLGdDQU1DOzs7SUFMQyw2QkFBaUI7O0lBQ2pCLDBCQUFjOztJQUNkLDhCQUFrQjs7SUFDbEIsNkJBQWlCOztJQUNqQixnQ0FBb0I7Ozs7O0FBR3RCLG9DQU1DOzs7SUFMQyxpQ0FBa0I7O0lBQ2xCLDhCQUFlOztJQUNmLGtDQUFtQjs7SUFDbkIsaUNBQWtCOztJQUNsQixvQ0FBcUI7Ozs7OztBQU92QjtJQWFzQyw0Q0FBSTtJQXdFeEM7UUFBQSxZQUNFLGlCQUFPLFNBQ1I7Ozs7UUFwRVEs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