UNPKG

moh-common-lib

Version:

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

172 lines 12.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; // Contains information licensed under the Open Government Licence – British Columbia. import { Injectable } from '@angular/core'; import { AbstractHttpService } from './abstract-api-service'; import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { map } from 'rxjs/operators'; import { throwError } from 'rxjs'; import { CANADA } from '../components/country/country.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; /** * @record */ export function GeoAddressResult() { } if (false) { /** * String from the API that includes street, city, province, and country. * @type {?} */ GeoAddressResult.prototype.fullAddress; /** @type {?} */ GeoAddressResult.prototype.city; /** @type {?} */ GeoAddressResult.prototype.street; /** @type {?} */ GeoAddressResult.prototype.country; /** @type {?} */ GeoAddressResult.prototype.province; } var GeocoderService = /** @class */ (function (_super) { tslib_1.__extends(GeocoderService, _super); function GeocoderService(http) { var _this = _super.call(this, http) || this; _this.http = http; _this._headers = new HttpHeaders(); _this.BASE_URL = 'https://geocoder.api.gov.bc.ca'; _this.ADDRESS_URL = _this.BASE_URL + "/addresses.json?"; return _this; } // https://github.com/bcgov/api-specs/blob/master/geocoder/geocoder-developer-guide.md // https://github.com/bcgov/api-specs/blob/master/geocoder/geocoder-developer-guide.md /** * @param {?} address * @return {?} */ GeocoderService.prototype.lookup = // https://github.com/bcgov/api-specs/blob/master/geocoder/geocoder-developer-guide.md /** * @param {?} address * @return {?} */ function (address) { /** @type {?} */ var params = new HttpParams() .set('minScore', '50') .set('maxResults', '10') .set('echo', 'true') .set('interpolation', 'adaptive') .set('addressString', address); return this.get(this.ADDRESS_URL, params).pipe(map(this.processResponse)); }; /** * Formats the response from ADDRESS_URL, trimming irrelevant fields. * * This works for other requests for the same API too, however it may error * out on some items if matchPrecisionNot is not set. * * @param obj The response from ADDRESS_URL */ /** * Formats the response from ADDRESS_URL, trimming irrelevant fields. * * This works for other requests for the same API too, however it may error * out on some items if matchPrecisionNot is not set. * * @protected * @param {?} obj The response from ADDRESS_URL * @return {?} */ GeocoderService.prototype.processResponse = /** * Formats the response from ADDRESS_URL, trimming irrelevant fields. * * This works for other requests for the same API too, however it may error * out on some items if matchPrecisionNot is not set. * * @protected * @param {?} obj The response from ADDRESS_URL * @return {?} */ function (obj) { return obj.features.map((/** * @param {?} feature * @return {?} */ function (feature) { /** @type {?} */ var props = feature.properties; /** @type {?} */ var city = props.localityName; // We get street just by trimming everything before city, more // stable than looking for commas, etc. /** @type {?} */ var cityIndex = props.fullAddress.indexOf(", " + city); /** @type {?} */ var street = props.fullAddress.slice(0, cityIndex); /** @type {?} */ var province = props.provinceCode; /** @type {?} */ var country = CANADA; return { fullAddress: props.fullAddress.replace('--', '-'), city: city, street: street.replace('--', '-'), province: province, country: country }; })); }; /** * @protected * @param {?} error * @return {?} */ GeocoderService.prototype.handleError = /** * @protected * @param {?} error * @return {?} */ function (error) { console.error('GeoCoder network error', { error: error }); return throwError('Geocoder error'); }; GeocoderService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ GeocoderService.ctorParameters = function () { return [ { type: HttpClient } ]; }; /** @nocollapse */ GeocoderService.ngInjectableDef = i0.defineInjectable({ factory: function GeocoderService_Factory() { return new GeocoderService(i0.inject(i1.HttpClient)); }, token: GeocoderService, providedIn: "root" }); return GeocoderService; }(AbstractHttpService)); export { GeocoderService }; if (false) { /** * @type {?} * @protected */ GeocoderService.prototype._headers; /** * @type {?} * @protected */ GeocoderService.prototype.BASE_URL; /** * @type {?} * @protected */ GeocoderService.prototype.ADDRESS_URL; /** * @type {?} * @protected */ GeocoderService.prototype.http; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvY29kZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2dlb2NvZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFFakUsc0NBUUM7Ozs7OztJQU5HLHVDQUFvQjs7SUFDcEIsZ0NBQWE7O0lBQ2Isa0NBQWU7O0lBRWYsbUNBQWdCOztJQUNoQixvQ0FBaUI7O0FBR3JCO0lBR3FDLDJDQUFtQjtJQU1wRCx5QkFBc0IsSUFBZ0I7UUFBdEMsWUFDSSxrQkFBTSxJQUFJLENBQUMsU0FDZDtRQUZxQixVQUFJLEdBQUosSUFBSSxDQUFZO1FBSjVCLGNBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMxQyxjQUFRLEdBQUcsZ0NBQWdDLENBQUM7UUFDM0MsaUJBQVcsR0FBTSxLQUFJLENBQUMsUUFBUSxxQkFBa0IsQ0FBQzs7SUFJNUQsQ0FBQztJQUVELHNGQUFzRjs7Ozs7O0lBQ3RGLGdDQUFNOzs7Ozs7SUFBTixVQUFPLE9BQWU7O1lBQ1osTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO2FBQzFCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDO2FBQ3JCLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDO2FBQ3ZCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO2FBQ25CLEdBQUcsQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDO2FBQ2hDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDO1FBRWxDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7Ozs7Ozs7Ozs7O0lBQ08seUNBQWU7Ozs7Ozs7Ozs7SUFBekIsVUFBMEIsR0FBRztRQUN6QixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsT0FBTzs7Z0JBQ3JCLEtBQUssR0FBRyxPQUFPLENBQUMsVUFBVTs7Z0JBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsWUFBWTs7OztnQkFHekIsU0FBUyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQUssSUFBTSxDQUFDOztnQkFDbEQsTUFBTSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7O2dCQUM5QyxRQUFRLEdBQUcsS0FBSyxDQUFDLFlBQVk7O2dCQUM3QixPQUFPLEdBQUcsTUFBTTtZQUV0QixPQUFPO2dCQUNMLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDO2dCQUNqRCxJQUFJLE1BQUE7Z0JBQ0osTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFDakMsUUFBUSxVQUFBO2dCQUNSLE9BQU8sU0FBQTthQUNSLENBQUM7UUFDTixDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7OztJQUVTLHFDQUFXOzs7OztJQUFyQixVQUFzQixLQUF3QjtRQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsS0FBSyxPQUFBLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE9BQU8sVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0JBekRKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7Ozs7Z0JBakJRLFVBQVU7OzswQkFIbkI7Q0E0RUMsQUExREQsQ0FHcUMsbUJBQW1CLEdBdUR2RDtTQXZEWSxlQUFlOzs7Ozs7SUFFeEIsbUNBQW9EOzs7OztJQUNwRCxtQ0FBc0Q7Ozs7O0lBQ3RELHNDQUE0RDs7Ozs7SUFFaEQsK0JBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29udGFpbnMgaW5mb3JtYXRpb24gbGljZW5zZWQgdW5kZXIgdGhlIE9wZW4gR292ZXJubWVudCBMaWNlbmNlIMKWIEJyaXRpc2ggQ29sdW1iaWEuXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RIdHRwU2VydmljZSB9IGZyb20gJy4vYWJzdHJhY3QtYXBpLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDQU5BREEgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvdW50cnkvY291bnRyeS5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZW9BZGRyZXNzUmVzdWx0IHtcclxuICAgIC8qKiBTdHJpbmcgZnJvbSB0aGUgQVBJIHRoYXQgaW5jbHVkZXMgc3RyZWV0LCBjaXR5LCBwcm92aW5jZSwgYW5kIGNvdW50cnkuICovXHJcbiAgICBmdWxsQWRkcmVzczogc3RyaW5nO1xyXG4gICAgY2l0eTogc3RyaW5nO1xyXG4gICAgc3RyZWV0OiBzdHJpbmc7XHJcbiAgICAvLyBTZXQgdG8gZGVmYXVsdHMgaW4gcmVzcG9uc2VcclxuICAgIGNvdW50cnk6IHN0cmluZztcclxuICAgIHByb3ZpbmNlOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VvY29kZXJTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RIdHRwU2VydmljZSB7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9oZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgcHJvdGVjdGVkIEJBU0VfVVJMID0gJ2h0dHBzOi8vZ2VvY29kZXIuYXBpLmdvdi5iYy5jYSc7XHJcbiAgICBwcm90ZWN0ZWQgIEFERFJFU1NfVVJMID0gYCR7dGhpcy5CQVNFX1VSTH0vYWRkcmVzc2VzLmpzb24/YDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKGh0dHApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iY2dvdi9hcGktc3BlY3MvYmxvYi9tYXN0ZXIvZ2VvY29kZXIvZ2VvY29kZXItZGV2ZWxvcGVyLWd1aWRlLm1kXHJcbiAgICBsb29rdXAoYWRkcmVzczogc3RyaW5nKTogT2JzZXJ2YWJsZTxHZW9BZGRyZXNzUmVzdWx0W10+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgICAgICAgIC5zZXQoJ21pblNjb3JlJywgJzUwJylcclxuICAgICAgICAgICAgLnNldCgnbWF4UmVzdWx0cycsICcxMCcpXHJcbiAgICAgICAgICAgIC5zZXQoJ2VjaG8nLCAndHJ1ZScpXHJcbiAgICAgICAgICAgIC5zZXQoJ2ludGVycG9sYXRpb24nLCAnYWRhcHRpdmUnKVxyXG4gICAgICAgICAgICAuc2V0KCdhZGRyZXNzU3RyaW5nJywgYWRkcmVzcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldCh0aGlzLkFERFJFU1NfVVJMLCBwYXJhbXMpLnBpcGUobWFwKHRoaXMucHJvY2Vzc1Jlc3BvbnNlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRzIHRoZSByZXNwb25zZSBmcm9tIEFERFJFU1NfVVJMLCB0cmltbWluZyBpcnJlbGV2YW50IGZpZWxkcy5cclxuICAgICAqXHJcbiAgICAgKiBUaGlzIHdvcmtzIGZvciBvdGhlciByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgQVBJIHRvbywgaG93ZXZlciBpdCBtYXkgZXJyb3JcclxuICAgICAqIG91dCBvbiBzb21lIGl0ZW1zIGlmIG1hdGNoUHJlY2lzaW9uTm90IGlzIG5vdCBzZXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG9iaiBUaGUgcmVzcG9uc2UgZnJvbSBBRERSRVNTX1VSTFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc1Jlc3BvbnNlKG9iaik6IEdlb0FkZHJlc3NSZXN1bHRbXSB7XHJcbiAgICAgICAgcmV0dXJuIG9iai5mZWF0dXJlcy5tYXAoZmVhdHVyZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZmVhdHVyZS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICBjb25zdCBjaXR5ID0gcHJvcHMubG9jYWxpdHlOYW1lO1xyXG4gICAgICAgICAgICAvLyBXZSBnZXQgc3RyZWV0IGp1c3QgYnkgdHJpbW1pbmcgZXZlcnl0aGluZyBiZWZvcmUgY2l0eSwgbW9yZVxyXG4gICAgICAgICAgICAvLyBzdGFibGUgdGhhbiBsb29raW5nIGZvciBjb21tYXMsIGV0Yy5cclxuICAgICAgICAgICAgY29uc3QgY2l0eUluZGV4ID0gcHJvcHMuZnVsbEFkZHJlc3MuaW5kZXhPZihgLCAke2NpdHl9YCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0cmVldCA9IHByb3BzLmZ1bGxBZGRyZXNzLnNsaWNlKDAsIGNpdHlJbmRleCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb3ZpbmNlID0gcHJvcHMucHJvdmluY2VDb2RlO1xyXG4gICAgICAgICAgICBjb25zdCBjb3VudHJ5ID0gQ0FOQURBOyAvLyBBTFdBWVMgcmV0dXJuIENhbmFkYVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBmdWxsQWRkcmVzczogcHJvcHMuZnVsbEFkZHJlc3MucmVwbGFjZSgnLS0nLCAnLScpLFxyXG4gICAgICAgICAgICAgIGNpdHksXHJcbiAgICAgICAgICAgICAgc3RyZWV0OiBzdHJlZXQucmVwbGFjZSgnLS0nLCAnLScpLFxyXG4gICAgICAgICAgICAgIHByb3ZpbmNlLFxyXG4gICAgICAgICAgICAgIGNvdW50cnlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignR2VvQ29kZXIgbmV0d29yayBlcnJvcicsIHsgZXJyb3IgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ0dlb2NvZGVyIGVycm9yJyk7XHJcbiAgICB9XHJcbn1cclxuIl19