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
JavaScript
/**
* @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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