New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

angular-geocoder

Package Overview
Dependencies
Maintainers
1
Versions
99
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-geocoder - npm Package Compare versions

Comparing version
19.4.0
to
19.5.0
+2
-2
fesm2022/angular-geocoder.mjs

@@ -422,7 +422,7 @@ import * as i0 from '@angular/core';

static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: GeocoderComponent, deps: [{ token: GeocoderService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: GeocoderComponent, isStandalone: false, selector: "angular-geocoder", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, searchInput: { classPropertyName: "searchInput", publicName: "searchInput", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, resultCountLimit: { classPropertyName: "resultCountLimit", publicName: "resultCountLimit", isSignal: true, isRequired: false, transformFunction: null }, province: { classPropertyName: "province", publicName: "province", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, microphone: { classPropertyName: "microphone", publicName: "microphone", isSignal: true, isRequired: false, transformFunction: null }, boxshadow: { classPropertyName: "boxshadow", publicName: "boxshadow", isSignal: true, isRequired: false, transformFunction: null }, borderradius: { classPropertyName: "borderradius", publicName: "borderradius", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placeFound: "placeFound", clearResults: "clearResults", query: "query", freeSearchResults: "freeSearchResults", blur: "blur" }, host: { listeners: { "document:click": "clickout($event)" }, properties: { "class.geocoder--selected": "this.hostGeocoderClass" }, classAttribute: "geocoder" }, viewQueries: [{ propertyName: "geocoderRef", first: true, predicate: ["geocoder"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() && fullscreen()\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>", styles: ["*:focus{outline:0}::placeholder{color:#797979}.geocoder-container{position:relative;width:100%;height:100%;max-width:100%;overscroll-behavior-y:none;line-height:19px;font-size:13px;color:#444}.geocoder-container--fullscreen{position:fixed;top:0;right:0;left:0;height:100vh;height:100dvh}.geocoder-search{position:relative;display:flex;align-items:center;width:100%;z-index:1;background:#fff;box-sizing:border-box;border:1px solid #eee}.geocoder-search__input{flex:1 1 auto;margin:0;padding:14px 15px;max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;border-radius:15px;border:none}button{display:flex;align-items:center;padding:0 15px;cursor:pointer;background:#fff;border:none}button.close{position:absolute;right:0}button.mic{padding:0 8px 0 0}button.back{padding-right:0}svg{width:18px;height:auto;color:#797979}button.back svg{width:21px}button.mic svg{width:17px}button.close svg{width:15px}button:hover svg{color:#008cba}button.mic--active svg{animation:pulse 1s infinite}@keyframes pulse{0%{color:#797979}50%{color:#3498db}to{color:#797979}}.geocoder-suggestions{position:relative;width:100%;z-index:2;max-height:calc(100% - 49px);overflow-y:auto;overscroll-behavior-y:none;border:1px solid #eee;border-width:0 1px 1px;background:#fff}.geocoder-suggestions__list{margin:0;padding:0;list-style-type:none}.geocoder-suggestion{display:flex;gap:5px;align-items:center;margin:0;padding:12px 15px;border-bottom:1px solid #eee;cursor:pointer}.geocoder-suggestion:last-of-type{border-bottom:none}.geocoder-suggestion:hover,.geocoder-suggestion--focus{background-color:#f7f7f7}.geocoder-suggestion__content{margin-right:10px}.geocoder-suggestion__content__subtitle{color:#838383}.geocoder-suggestion__type{margin:0 0 0 auto;font-size:11px;font-weight:700;text-transform:uppercase;color:#bfbfbf}.geocoder-noresults{position:relative;width:100%;padding:18px 15px;z-index:1;background:#fff;border:1px solid #eee;border-width:0 1px 1px;box-sizing:border-box}.geocoder-backdrop{position:fixed;inset:0;height:100%;width:100%;z-index:0;background:#f5f5f5}.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:0 0 15px 15px}@media (min-width: 787px){.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:15px}}.borderradius button,.borderradius .geocoder-suggestions,.borderradius .geocoder-noresults{border-radius:15px}.boxshadow .geocoder-search,.boxshadow .geocoder-suggestions,.boxshadow .geocoder-noresults{box-shadow:0 2px 4px #0003,0 -1px #00000005;border:none}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: GeocoderComponent, isStandalone: false, selector: "angular-geocoder", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, searchInput: { classPropertyName: "searchInput", publicName: "searchInput", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, resultCountLimit: { classPropertyName: "resultCountLimit", publicName: "resultCountLimit", isSignal: true, isRequired: false, transformFunction: null }, province: { classPropertyName: "province", publicName: "province", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null }, microphone: { classPropertyName: "microphone", publicName: "microphone", isSignal: true, isRequired: false, transformFunction: null }, boxshadow: { classPropertyName: "boxshadow", publicName: "boxshadow", isSignal: true, isRequired: false, transformFunction: null }, borderradius: { classPropertyName: "borderradius", publicName: "borderradius", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placeFound: "placeFound", clearResults: "clearResults", query: "query", freeSearchResults: "freeSearchResults", blur: "blur" }, host: { listeners: { "document:click": "clickout($event)" }, properties: { "class.geocoder--selected": "this.hostGeocoderClass" }, classAttribute: "geocoder" }, viewQueries: [{ propertyName: "geocoderRef", first: true, predicate: ["geocoder"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() === true && fullscreen() === true\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>", styles: ["*:focus{outline:0}::placeholder{color:#797979}.geocoder-container{position:relative;width:100%;height:100%;max-width:100%;overscroll-behavior-y:none;line-height:19px;font-size:13px;color:#444}.geocoder-container--fullscreen{position:fixed;top:0;right:0;left:0;height:100vh;height:100dvh}.geocoder-search{position:relative;display:flex;align-items:center;width:100%;z-index:1;background:#fff;box-sizing:border-box;border:1px solid #eee}.geocoder-search__input{flex:1 1 auto;margin:0;padding:14px 15px;max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;border-radius:15px;border:none}button{display:flex;align-items:center;padding:0 15px;cursor:pointer;background:#fff;border:none}button.close{position:absolute;right:0}button.mic{padding:0 8px 0 0}button.back{padding-right:0}svg{width:18px;height:auto;color:#797979}button.back svg{width:21px}button.mic svg{width:17px}button.close svg{width:15px}button:hover svg{color:#008cba}button.mic--active svg{animation:pulse 1s infinite}@keyframes pulse{0%{color:#797979}50%{color:#3498db}to{color:#797979}}.geocoder-suggestions{position:relative;width:100%;z-index:2;max-height:calc(100% - 49px);overflow-y:auto;overscroll-behavior-y:none;border:1px solid #eee;border-width:0 1px 1px;background:#fff}.geocoder-suggestions__list{margin:0;padding:0;list-style-type:none}.geocoder-suggestion{display:flex;gap:5px;align-items:center;margin:0;padding:12px 15px;border-bottom:1px solid #eee;cursor:pointer}.geocoder-suggestion:last-of-type{border-bottom:none}.geocoder-suggestion:hover,.geocoder-suggestion--focus{background-color:#f7f7f7}.geocoder-suggestion__content{margin-right:10px}.geocoder-suggestion__content__subtitle{color:#838383}.geocoder-suggestion__type{margin:0 0 0 auto;font-size:11px;font-weight:700;text-transform:uppercase;color:#bfbfbf}.geocoder-noresults{position:relative;width:100%;padding:18px 15px;z-index:1;background:#fff;border:1px solid #eee;border-width:0 1px 1px;box-sizing:border-box}.geocoder-backdrop{position:fixed;inset:0;height:100%;width:100%;z-index:0;background:#f5f5f5}.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:0 0 15px 15px}@media (min-width: 787px){.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:15px}}.borderradius button,.borderradius .geocoder-suggestions,.borderradius .geocoder-noresults{border-radius:15px}.boxshadow .geocoder-search,.boxshadow .geocoder-suggestions,.boxshadow .geocoder-noresults{box-shadow:0 2px 4px #0003,0 -1px #00000005;border:none}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: GeocoderComponent, decorators: [{
type: Component,
args: [{ selector: 'angular-geocoder', host: { 'class': 'geocoder' }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() && fullscreen()\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>", styles: ["*:focus{outline:0}::placeholder{color:#797979}.geocoder-container{position:relative;width:100%;height:100%;max-width:100%;overscroll-behavior-y:none;line-height:19px;font-size:13px;color:#444}.geocoder-container--fullscreen{position:fixed;top:0;right:0;left:0;height:100vh;height:100dvh}.geocoder-search{position:relative;display:flex;align-items:center;width:100%;z-index:1;background:#fff;box-sizing:border-box;border:1px solid #eee}.geocoder-search__input{flex:1 1 auto;margin:0;padding:14px 15px;max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;border-radius:15px;border:none}button{display:flex;align-items:center;padding:0 15px;cursor:pointer;background:#fff;border:none}button.close{position:absolute;right:0}button.mic{padding:0 8px 0 0}button.back{padding-right:0}svg{width:18px;height:auto;color:#797979}button.back svg{width:21px}button.mic svg{width:17px}button.close svg{width:15px}button:hover svg{color:#008cba}button.mic--active svg{animation:pulse 1s infinite}@keyframes pulse{0%{color:#797979}50%{color:#3498db}to{color:#797979}}.geocoder-suggestions{position:relative;width:100%;z-index:2;max-height:calc(100% - 49px);overflow-y:auto;overscroll-behavior-y:none;border:1px solid #eee;border-width:0 1px 1px;background:#fff}.geocoder-suggestions__list{margin:0;padding:0;list-style-type:none}.geocoder-suggestion{display:flex;gap:5px;align-items:center;margin:0;padding:12px 15px;border-bottom:1px solid #eee;cursor:pointer}.geocoder-suggestion:last-of-type{border-bottom:none}.geocoder-suggestion:hover,.geocoder-suggestion--focus{background-color:#f7f7f7}.geocoder-suggestion__content{margin-right:10px}.geocoder-suggestion__content__subtitle{color:#838383}.geocoder-suggestion__type{margin:0 0 0 auto;font-size:11px;font-weight:700;text-transform:uppercase;color:#bfbfbf}.geocoder-noresults{position:relative;width:100%;padding:18px 15px;z-index:1;background:#fff;border:1px solid #eee;border-width:0 1px 1px;box-sizing:border-box}.geocoder-backdrop{position:fixed;inset:0;height:100%;width:100%;z-index:0;background:#f5f5f5}.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:0 0 15px 15px}@media (min-width: 787px){.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:15px}}.borderradius button,.borderradius .geocoder-suggestions,.borderradius .geocoder-noresults{border-radius:15px}.boxshadow .geocoder-search,.boxshadow .geocoder-suggestions,.boxshadow .geocoder-noresults{box-shadow:0 2px 4px #0003,0 -1px #00000005;border:none}\n"] }]
args: [{ selector: 'angular-geocoder', host: { 'class': 'geocoder' }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() === true && fullscreen() === true\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>", styles: ["*:focus{outline:0}::placeholder{color:#797979}.geocoder-container{position:relative;width:100%;height:100%;max-width:100%;overscroll-behavior-y:none;line-height:19px;font-size:13px;color:#444}.geocoder-container--fullscreen{position:fixed;top:0;right:0;left:0;height:100vh;height:100dvh}.geocoder-search{position:relative;display:flex;align-items:center;width:100%;z-index:1;background:#fff;box-sizing:border-box;border:1px solid #eee}.geocoder-search__input{flex:1 1 auto;margin:0;padding:14px 15px;max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;border-radius:15px;border:none}button{display:flex;align-items:center;padding:0 15px;cursor:pointer;background:#fff;border:none}button.close{position:absolute;right:0}button.mic{padding:0 8px 0 0}button.back{padding-right:0}svg{width:18px;height:auto;color:#797979}button.back svg{width:21px}button.mic svg{width:17px}button.close svg{width:15px}button:hover svg{color:#008cba}button.mic--active svg{animation:pulse 1s infinite}@keyframes pulse{0%{color:#797979}50%{color:#3498db}to{color:#797979}}.geocoder-suggestions{position:relative;width:100%;z-index:2;max-height:calc(100% - 49px);overflow-y:auto;overscroll-behavior-y:none;border:1px solid #eee;border-width:0 1px 1px;background:#fff}.geocoder-suggestions__list{margin:0;padding:0;list-style-type:none}.geocoder-suggestion{display:flex;gap:5px;align-items:center;margin:0;padding:12px 15px;border-bottom:1px solid #eee;cursor:pointer}.geocoder-suggestion:last-of-type{border-bottom:none}.geocoder-suggestion:hover,.geocoder-suggestion--focus{background-color:#f7f7f7}.geocoder-suggestion__content{margin-right:10px}.geocoder-suggestion__content__subtitle{color:#838383}.geocoder-suggestion__type{margin:0 0 0 auto;font-size:11px;font-weight:700;text-transform:uppercase;color:#bfbfbf}.geocoder-noresults{position:relative;width:100%;padding:18px 15px;z-index:1;background:#fff;border:1px solid #eee;border-width:0 1px 1px;box-sizing:border-box}.geocoder-backdrop{position:fixed;inset:0;height:100%;width:100%;z-index:0;background:#f5f5f5}.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:0 0 15px 15px}@media (min-width: 787px){.borderradius .geocoder-search,.borderradius .geocoder-search__input{border-radius:15px}}.borderradius button,.borderradius .geocoder-suggestions,.borderradius .geocoder-noresults{border-radius:15px}.boxshadow .geocoder-search,.boxshadow .geocoder-suggestions,.boxshadow .geocoder-noresults{box-shadow:0 2px 4px #0003,0 -1px #00000005;border:none}\n"] }]
}], ctorParameters: () => [{ type: GeocoderService }], propDecorators: { hostGeocoderClass: [{

@@ -429,0 +429,0 @@ type: HostBinding,

@@ -1,1 +0,1 @@

{"version":3,"file":"angular-geocoder.mjs","sources":["../../../projects/angular-geocoder/src/lib/angular-geocoder.service.ts","../../../projects/angular-geocoder/src/lib/angular-geocoder.component.ts","../../../projects/angular-geocoder/src/lib/angular-geocoder.component.html","../../../projects/angular-geocoder/src/lib/angular-geocoder.module.ts","../../../projects/angular-geocoder/src/public-api.ts","../../../projects/angular-geocoder/src/angular-geocoder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SuggestResponse,\r\n ReverseOptions,\r\n ReverseGeometry,\r\n ReverseResponse,\r\n SuggestOptions,\r\n LookupOptions,\r\n LookupResponse,\r\n SuggestObject,\r\n SuggestObjectWithHighlight,\r\n ParsedPlaceObject\r\n} from './locatieserver.model';\r\n\r\nimport { wktToGeoJSON } from \"@terraformer/wkt\"\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeocoderService {\r\n public geocoderBaseUrl = 'https://api.pdok.nl/bzk/locatieserver/search/v3_1';\r\n constructor(\r\n private http: HttpClient,\r\n ) {\r\n }\r\n\r\n public suggest$(query: string, options?: SuggestOptions) {\r\n let params = {\r\n q: query,\r\n fq: '*', // Also get percelen\r\n start: 0, \r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<SuggestResponse>(`${this.geocoderBaseUrl}/suggest?`, { params: params as any })\r\n .pipe(\r\n map(suggestResultObject => {\r\n const collations = this.formatCollations(suggestResultObject.spellcheck.collations);\r\n const places = this.formatPlaces(suggestResultObject);\r\n return { collations, places };\r\n })\r\n );\r\n }\r\n\r\n public lookup$(id: string, options?: LookupOptions) {\r\n let params = {\r\n id: id,\r\n fl: '*'\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<LookupResponse>(`${this.geocoderBaseUrl}/lookup?`, { params: params as any }).pipe(\r\n map(lookupResponse => this.formatLookupResponse(lookupResponse))\r\n );\r\n }\r\n\r\n public free$(searchTerm: string, options?: SuggestOptions) {\r\n let params = {\r\n q: searchTerm,\r\n fl: '*',\r\n fq: '*',\r\n rows: 10,\r\n start: 0,\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<ReverseResponse>(`${this.geocoderBaseUrl}/free?`, { params: params as any }).pipe(\r\n map(freeResponse => this.formatReverseResponse(freeResponse))\r\n );\r\n }\r\n\r\n public reverse$(location: ReverseGeometry, options?: ReverseOptions) {\r\n let params = {\r\n fq: '*',\r\n fl: '*',\r\n rows: 10,\r\n distance: 200, // meter,\r\n lat: location.lat,\r\n lon: location.lon\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n const reverseUrl = `${this.geocoderBaseUrl}/reverse?`;\r\n return this.http.get<ReverseResponse>(reverseUrl, { params: params as any }).pipe(\r\n map((reverseResponse) => this.formatReverseResponse(reverseResponse))\r\n );\r\n }\r\n\r\n private formatCollations(collations) {\r\n const parsedCollations = [];\r\n for (let i = 0; i < collations.length; i += 2) {\r\n const collation = {\r\n id: i,\r\n naam: collations[i + 1].misspellingsAndCorrections[1],\r\n weergavenaam: `${collations[i + 1].hits} resultaten voor <strong> \"${collations[i + 1].misspellingsAndCorrections[1]}\"</strong>`,\r\n hits: collations[i + 1].hits,\r\n };\r\n parsedCollations.push(collation);\r\n }\r\n return parsedCollations;\r\n }\r\n\r\n private formatPlaces(suggestResponse: SuggestResponse) {\r\n const places: SuggestObjectWithHighlight[] = suggestResponse.response.docs.map((place: SuggestObject) => {\r\n return {\r\n ...place,\r\n highlight: suggestResponse.highlighting[place.id].suggest[0]\r\n };\r\n });\r\n return places;\r\n }\r\n\r\n /**\r\n * Parse WKT in lookup response.\r\n */\r\n private formatLookupResponse(lookupResponse: LookupResponse): ParsedPlaceObject | null {\r\n const formatted = lookupResponse.response.docs.map((lookupResult) => {\r\n const formattedLookupResult: ParsedPlaceObject = {\r\n ...lookupResult,\r\n ...(lookupResult.centroide_ll && { centroide_ll: wktToGeoJSON(lookupResult.centroide_ll) } as const),\r\n ...(lookupResult.centroide_rd && { centroide_rd: wktToGeoJSON(lookupResult.centroide_rd) } as const),\r\n ...(lookupResult.geometrie_rd && { geometrie_rd: wktToGeoJSON(lookupResult.geometrie_rd) } as const),\r\n ...(lookupResult.geometrie_ll && { geometrie_ll: wktToGeoJSON(lookupResult.geometrie_ll) } as const),\r\n highlight: lookupResult.weergavenaam,\r\n };\r\n return formattedLookupResult;\r\n });\r\n\r\n return formatted[0] || null;\r\n }\r\n\r\n private formatReverseResponse(lookupResultObject: ReverseResponse) {\r\n const formatted = lookupResultObject.response.docs.map((reverseResult) => {\r\n const formattedLookupResult = {\r\n ...reverseResult,\r\n ...(reverseResult.centroide_ll && { centroide_ll: wktToGeoJSON(reverseResult.centroide_ll) } as const),\r\n ...(reverseResult.centroide_rd && { centroide_rd: wktToGeoJSON(reverseResult.centroide_rd) } as const),\r\n ...(reverseResult.geometrie_rd && { geometrie_rd: wktToGeoJSON(reverseResult.geometrie_rd) } as const),\r\n ...(reverseResult.geometrie_ll && { geometrie_ll: wktToGeoJSON(reverseResult.geometrie_ll) } as const),\r\n highlight: reverseResult.weergavenaam,\r\n };\r\n return formattedLookupResult;\r\n });\r\n\r\n return formatted;\r\n }\r\n\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, OnChanges, OnInit, SimpleChanges, viewChild, input, output, signal, computed } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, firstValueFrom, merge, Subject, tap } from 'rxjs';\r\nimport { filter, debounceTime, distinctUntilChanged, switchMap, shareReplay, startWith, map } from 'rxjs/operators';\r\nimport { GeocoderService } from './angular-geocoder.service';\r\nimport { LocatieserverObjectType, ParsedPlaceObject, SuggestObjectWithHighlight, SuggestOptions } from './locatieserver.model';\r\n\r\n@Component({\r\n selector: 'angular-geocoder',\r\n templateUrl: 'angular-geocoder.component.html',\r\n styleUrls: ['angular-geocoder.component.scss'],\r\n host: { 'class': 'geocoder' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class GeocoderComponent implements OnInit, OnChanges {\r\n public searchThreshold = 2;\r\n\r\n readonly geocoderRef = viewChild<ElementRef>('geocoder');\r\n readonly type = input<LocatieserverObjectType>(undefined);\r\n readonly searchInput = input<string>(undefined);\r\n readonly placeholder = input<string>(undefined);\r\n readonly resultCountLimit = input(12);\r\n readonly province = input<string>(undefined);\r\n readonly fullscreen = input(false);\r\n readonly microphone = input(true);\r\n readonly boxshadow = input(true);\r\n readonly borderradius = input(true);\r\n readonly placeFound = output<ParsedPlaceObject | null>();\r\n readonly clearResults = output<any>();\r\n readonly query = output<string>();\r\n readonly freeSearchResults = output<ParsedPlaceObject[]>();\r\n readonly blur = output<any>();\r\n @HostBinding('class.geocoder--selected')\r\n get hostGeocoderClass() {\r\n return this.hasFocus();\r\n }\r\n readonly hasFocus = signal(false);\r\n\r\n // @ts-ignores\r\n public speechRecognizer: any | undefined;\r\n public formattedPlaceholder = computed(() => this.formatPlaceholder(this.placeholder()));\r\n\r\n // Microphone\r\n public searchControl = new FormControl<string | null | undefined>(undefined, { validators: [Validators.minLength(this.searchThreshold)] });\r\n public readonly microphoneActive = signal(false);\r\n\r\n // Reverse geocoding\r\n public userGpsLocation$ = new Subject<{ lat: number, lon: number }>();\r\n\r\n public suggest$ = this.searchControl.valueChanges.pipe(\r\n filter(searchInput => searchInput.length > this.searchThreshold),\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n tap((input) => this.query.emit(input)),\r\n switchMap(searchInput => this.suggest(searchInput)),\r\n shareReplay()\r\n );\r\n\r\n public reverseSuggest$ = this.userGpsLocation$.pipe(\r\n switchMap((params) => this.reverse(params)),\r\n shareReplay(),\r\n );\r\n\r\n public collationclear$ = new BehaviorSubject([]);\r\n public useMyLocationPlace = {\r\n weergavenaam: 'Gebruik huidige locatie',\r\n subtitle: 'Zoek met GPS/apparaatlocatie',\r\n type: 'gps',\r\n id: 'gps'\r\n } as any;\r\n\r\n public tooFewCharacters$ = this.searchControl.valueChanges.pipe(\r\n filter(searchInput => searchInput.length <= this.searchThreshold),\r\n map(() => [this.useMyLocationPlace]),\r\n startWith([this.useMyLocationPlace]),\r\n );\r\n\r\n public places$ = merge(\r\n this.suggest$.pipe(\r\n map((response) => response.places),\r\n ),\r\n this.reverseSuggest$,\r\n this.tooFewCharacters$\r\n );\r\n\r\n public readonly places = toSignal(this.places$);\r\n\r\n public readonly collations = toSignal(merge(\r\n this.suggest$.pipe(\r\n map(response => response.collations),\r\n ),\r\n this.collationclear$\r\n ));\r\n\r\n public foundPlace$ = new BehaviorSubject(null);\r\n public selectedIndex = -1;\r\n public readonly lookupResponseFound = signal(false);\r\n\r\n @HostListener('document:click', ['$event']) clickout(event) {\r\n if (this.geocoderRef().nativeElement.contains(event.target)) {\r\n this.showSuggestions();\r\n } else {\r\n this.hideResults();\r\n }\r\n }\r\n\r\n\r\n constructor(private geocoderService: GeocoderService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.searchInput) {\r\n this.searchControl.setValue(changes.searchInput.currentValue);\r\n }\r\n\r\n\r\n }\r\n\r\n private suggest(searchTerm: string) {\r\n const flArray = ['id', 'score', 'type', 'weergavenaam', 'straatnaam', 'huis_nlt', 'woonplaatsnaam', 'kadastrale_gemeentecode', 'kadastrale_sectie', 'perceelnummer', 'kadastrale_gemeentenaam'];\r\n const params = {\r\n fq: '*:*',\r\n fl: flArray.toString(),\r\n rows: this.resultCountLimit()\r\n } as SuggestOptions;\r\n const formattedSearchTerm = this.formatSearchTerm(searchTerm);\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n params.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n params.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n params.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n return this.geocoderService.suggest$(formattedSearchTerm, params);\r\n }\r\n\r\n private reverse(params: { lat: number, lon: number }) {\r\n const opts = {\r\n type: 'adres',\r\n fq: '*:*',\r\n rows: this.resultCountLimit()\r\n };\r\n\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n // Set type to all and use FQ to determine type, so that we can re-use logic\r\n opts.type = '*';\r\n\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n opts.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n opts.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n opts.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n\r\n return this.geocoderService.reverse$(params, opts);\r\n\r\n }\r\n\r\n public async lookup(id: string) {\r\n const lookupObj: any = await this.geocoderService.lookup$(id).toPromise();\r\n this.foundPlace$.next(lookupObj);\r\n this.fillInput(lookupObj.weergavenaam);\r\n this.placeFound.emit(lookupObj);\r\n this.lookupResponseFound.set(true);\r\n this.clearPlaces();\r\n this.hideResults();\r\n }\r\n\r\n public async reverseGeocode() {\r\n const gpsLocation = await this.getGpsLocation();\r\n this.userGpsLocation$.next(gpsLocation);\r\n }\r\n\r\n public async free() {\r\n const params = {\r\n fq: '*:*',\r\n rows: this.resultCountLimit()\r\n } as SuggestOptions;\r\n\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n params.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n params.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n params.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n\r\n const searchTerm = this.searchControl.value;\r\n const free = await firstValueFrom(this.geocoderService.free$(searchTerm, params));\r\n this.freeSearchResults.emit(free);\r\n }\r\n\r\n public clear(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.foundPlace$.next(null);\r\n this.searchControl.setValue('');\r\n this.clearPlaces();\r\n this.lookupResponseFound.set(false);\r\n this.hideResults();\r\n this.clearResults.emit(true);\r\n }\r\n\r\n public clearPlaces() {\r\n this.resetIndex();\r\n this.collationclear$.next([]);\r\n }\r\n\r\n public async handleSuggestClick(id: 'gps' | string) {\r\n if (id === 'gps') {\r\n this.reverseGeocode();\r\n } else {\r\n this.lookup(id);\r\n }\r\n }\r\n\r\n public handleEnter(places: SuggestObjectWithHighlight[]) {\r\n if (this.selectedIndex === -1) {\r\n return;\r\n }\r\n const selectedPlace = places[this.selectedIndex];\r\n this.lookup(selectedPlace.id);\r\n }\r\n\r\n public reachedThreshold$ = this.searchControl.valueChanges.pipe(\r\n startWith(''),\r\n map(val => (val && val.length) > this.searchThreshold)\r\n );\r\n\r\n public noPlacesFound$ = this.places$.pipe(\r\n map(places => places.length === 0),\r\n );\r\n\r\n public noResult$ = this.foundPlace$.pipe(\r\n map(place => place === null)\r\n );\r\n\r\n public readonly noResult = toSignal(this.noResult$);\r\n\r\n public readonly isNoResultsFound = toSignal(combineLatest([this.reachedThreshold$, this.noPlacesFound$, this.noResult$]).pipe(\r\n map(([reachedThreshold, noSuggestions, noResult]) => reachedThreshold && noSuggestions && noResult)\r\n ));\r\n\r\n public fillInput(content: string, emitEvent = false) {\r\n this.searchControl.setValue(content, {\r\n emitEvent: emitEvent\r\n });\r\n }\r\n\r\n public isHighlighted(i: number) {\r\n if (i === this.selectedIndex) {\r\n return true;\r\n }\r\n }\r\n\r\n public moveUp() {\r\n if (this.selectedIndex > 0) {\r\n this.selectedIndex--;\r\n }\r\n }\r\n\r\n public moveDown(places: SuggestObjectWithHighlight[]) {\r\n if (this.selectedIndex < places.length) {\r\n this.selectedIndex++;\r\n }\r\n }\r\n\r\n public resetIndex() {\r\n this.selectedIndex = -1;\r\n }\r\n\r\n public canQuery() {\r\n const searchInput = this.searchControl.value;\r\n return searchInput && searchInput.length > this.searchThreshold;\r\n }\r\n\r\n public canClear() {\r\n const searchInput = this.searchControl.value;\r\n return searchInput && searchInput.length > 0;\r\n }\r\n\r\n public formatPlaceholder(placeholder: string) {\r\n let placeholderText = 'Zoeken op de kaart...';\r\n\r\n if (placeholder) {\r\n placeholderText = placeholder;\r\n }\r\n return placeholderText;\r\n }\r\n\r\n public onCollationClick(name: string) {\r\n this.fillInput(name, true);\r\n }\r\n\r\n public showSuggestions() {\r\n this.hasFocus.set(true);\r\n }\r\n\r\n private getSpeechRecognition() {\r\n if (this.speechRecognizer) {\r\n return this.speechRecognizer;\r\n }\r\n\r\n //@ts-ignore\r\n const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\r\n const recognition = new SpeechRecognition();\r\n recognition.interimResults = false; // Set to true if you want interim results\r\n recognition.lang = 'nl-NL'; // Set the language here\r\n this.speechRecognizer = recognition;\r\n\r\n return this.speechRecognizer;\r\n\r\n }\r\n\r\n public speechToText(event: any) {\r\n const recognition = this.getSpeechRecognition();\r\n\r\n if (this.microphoneActive() === true) {\r\n return recognition.stop();\r\n }\r\n\r\n recognition.onresult = (event) => {\r\n this.searchControl.setValue(event.results[0][0]?.transcript);\r\n }\r\n\r\n recognition.onend = (event) => {\r\n this.microphoneActive.set(false);\r\n }\r\n\r\n this.microphoneActive.set(true);\r\n recognition.start();\r\n }\r\n\r\n private hideResults() {\r\n this.hasFocus.set(false);\r\n }\r\n\r\n private async getGpsLocation(): Promise<{ lat: number, lon: number } | null> {\r\n if (!navigator.geolocation) {\r\n alert('GPS wordt niet ondersteund door uw apparaat');\r\n return null;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n resolve({\r\n lat: position.coords.latitude,\r\n lon: position.coords.longitude\r\n });\r\n }, (error) => {\r\n\r\n const map = {\r\n 1: 'U heeft ons geen toestemming gegeven om uw locatie op te halen',\r\n 2: 'Uw locatie is niet beschikbaar',\r\n 3: 'Het duurt te lang om uw locatie op te halen'\r\n };\r\n\r\n alert(map[error.code] || 'Het is niet gelukt om uw locatie op te halen');\r\n\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n\r\n private formatSearchTerm(searchTerm: string) {\r\n const isKadastraleAanduidingRegex = /[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1,2}[0-9]{1,5}/;\r\n\r\n if (isKadastraleAanduidingRegex.test(searchTerm) === true) {\r\n // Use three capturing groups () () () to split the string by.\r\n const splitAanduidingRegex = /([a-zA-Z]{3}[0-9]{2})([a-zA-Z]{1,2})([0-9]{1,5})/;\r\n const formattedTerm = searchTerm.split(splitAanduidingRegex).filter(str => str !== '').join(' ');\r\n return formattedTerm;\r\n }\r\n\r\n return searchTerm;\r\n }\r\n}\r\n","<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() && fullscreen()\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>","import { provideHttpClient, withFetch } from '@angular/common/http';\r\nimport { NgModule, provideExperimentalZonelessChangeDetection } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { GeocoderComponent } from './angular-geocoder.component';\r\n\r\n@NgModule({\r\n declarations: [GeocoderComponent],\r\n exports: [GeocoderComponent],\r\n imports: [\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n provideHttpClient(\r\n withFetch()\r\n ),\r\n provideExperimentalZonelessChangeDetection(),\r\n ]\r\n})\r\nexport class GeocoderModule { }\r\n\r\n\r\n","/*\r\n * Public API Surface of angular-geocoder\r\n */\r\n\r\nexport * from './lib/angular-geocoder.service';\r\nexport * from './lib/angular-geocoder.component';\r\nexport * from './lib/angular-geocoder.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeocoderService"],"mappings":"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"}
{"version":3,"file":"angular-geocoder.mjs","sources":["../../../projects/angular-geocoder/src/lib/angular-geocoder.service.ts","../../../projects/angular-geocoder/src/lib/angular-geocoder.component.ts","../../../projects/angular-geocoder/src/lib/angular-geocoder.component.html","../../../projects/angular-geocoder/src/lib/angular-geocoder.module.ts","../../../projects/angular-geocoder/src/public-api.ts","../../../projects/angular-geocoder/src/angular-geocoder.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport {\r\n SuggestResponse,\r\n ReverseOptions,\r\n ReverseGeometry,\r\n ReverseResponse,\r\n SuggestOptions,\r\n LookupOptions,\r\n LookupResponse,\r\n SuggestObject,\r\n SuggestObjectWithHighlight,\r\n ParsedPlaceObject\r\n} from './locatieserver.model';\r\n\r\nimport { wktToGeoJSON } from \"@terraformer/wkt\"\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeocoderService {\r\n public geocoderBaseUrl = 'https://api.pdok.nl/bzk/locatieserver/search/v3_1';\r\n constructor(\r\n private http: HttpClient,\r\n ) {\r\n }\r\n\r\n public suggest$(query: string, options?: SuggestOptions) {\r\n let params = {\r\n q: query,\r\n fq: '*', // Also get percelen\r\n start: 0, \r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<SuggestResponse>(`${this.geocoderBaseUrl}/suggest?`, { params: params as any })\r\n .pipe(\r\n map(suggestResultObject => {\r\n const collations = this.formatCollations(suggestResultObject.spellcheck.collations);\r\n const places = this.formatPlaces(suggestResultObject);\r\n return { collations, places };\r\n })\r\n );\r\n }\r\n\r\n public lookup$(id: string, options?: LookupOptions) {\r\n let params = {\r\n id: id,\r\n fl: '*'\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<LookupResponse>(`${this.geocoderBaseUrl}/lookup?`, { params: params as any }).pipe(\r\n map(lookupResponse => this.formatLookupResponse(lookupResponse))\r\n );\r\n }\r\n\r\n public free$(searchTerm: string, options?: SuggestOptions) {\r\n let params = {\r\n q: searchTerm,\r\n fl: '*',\r\n fq: '*',\r\n rows: 10,\r\n start: 0,\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n return this.http.get<ReverseResponse>(`${this.geocoderBaseUrl}/free?`, { params: params as any }).pipe(\r\n map(freeResponse => this.formatReverseResponse(freeResponse))\r\n );\r\n }\r\n\r\n public reverse$(location: ReverseGeometry, options?: ReverseOptions) {\r\n let params = {\r\n fq: '*',\r\n fl: '*',\r\n rows: 10,\r\n distance: 200, // meter,\r\n lat: location.lat,\r\n lon: location.lon\r\n };\r\n\r\n if (options) {\r\n params = Object.assign(params, options);\r\n }\r\n\r\n const reverseUrl = `${this.geocoderBaseUrl}/reverse?`;\r\n return this.http.get<ReverseResponse>(reverseUrl, { params: params as any }).pipe(\r\n map((reverseResponse) => this.formatReverseResponse(reverseResponse))\r\n );\r\n }\r\n\r\n private formatCollations(collations) {\r\n const parsedCollations = [];\r\n for (let i = 0; i < collations.length; i += 2) {\r\n const collation = {\r\n id: i,\r\n naam: collations[i + 1].misspellingsAndCorrections[1],\r\n weergavenaam: `${collations[i + 1].hits} resultaten voor <strong> \"${collations[i + 1].misspellingsAndCorrections[1]}\"</strong>`,\r\n hits: collations[i + 1].hits,\r\n };\r\n parsedCollations.push(collation);\r\n }\r\n return parsedCollations;\r\n }\r\n\r\n private formatPlaces(suggestResponse: SuggestResponse) {\r\n const places: SuggestObjectWithHighlight[] = suggestResponse.response.docs.map((place: SuggestObject) => {\r\n return {\r\n ...place,\r\n highlight: suggestResponse.highlighting[place.id].suggest[0]\r\n };\r\n });\r\n return places;\r\n }\r\n\r\n /**\r\n * Parse WKT in lookup response.\r\n */\r\n private formatLookupResponse(lookupResponse: LookupResponse): ParsedPlaceObject | null {\r\n const formatted = lookupResponse.response.docs.map((lookupResult) => {\r\n const formattedLookupResult: ParsedPlaceObject = {\r\n ...lookupResult,\r\n ...(lookupResult.centroide_ll && { centroide_ll: wktToGeoJSON(lookupResult.centroide_ll) } as const),\r\n ...(lookupResult.centroide_rd && { centroide_rd: wktToGeoJSON(lookupResult.centroide_rd) } as const),\r\n ...(lookupResult.geometrie_rd && { geometrie_rd: wktToGeoJSON(lookupResult.geometrie_rd) } as const),\r\n ...(lookupResult.geometrie_ll && { geometrie_ll: wktToGeoJSON(lookupResult.geometrie_ll) } as const),\r\n highlight: lookupResult.weergavenaam,\r\n };\r\n return formattedLookupResult;\r\n });\r\n\r\n return formatted[0] || null;\r\n }\r\n\r\n private formatReverseResponse(lookupResultObject: ReverseResponse) {\r\n const formatted = lookupResultObject.response.docs.map((reverseResult) => {\r\n const formattedLookupResult = {\r\n ...reverseResult,\r\n ...(reverseResult.centroide_ll && { centroide_ll: wktToGeoJSON(reverseResult.centroide_ll) } as const),\r\n ...(reverseResult.centroide_rd && { centroide_rd: wktToGeoJSON(reverseResult.centroide_rd) } as const),\r\n ...(reverseResult.geometrie_rd && { geometrie_rd: wktToGeoJSON(reverseResult.geometrie_rd) } as const),\r\n ...(reverseResult.geometrie_ll && { geometrie_ll: wktToGeoJSON(reverseResult.geometrie_ll) } as const),\r\n highlight: reverseResult.weergavenaam,\r\n };\r\n return formattedLookupResult;\r\n });\r\n\r\n return formatted;\r\n }\r\n\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, OnChanges, OnInit, SimpleChanges, viewChild, input, output, signal, computed } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, firstValueFrom, merge, Subject, tap } from 'rxjs';\r\nimport { filter, debounceTime, distinctUntilChanged, switchMap, shareReplay, startWith, map } from 'rxjs/operators';\r\nimport { GeocoderService } from './angular-geocoder.service';\r\nimport { LocatieserverObjectType, ParsedPlaceObject, SuggestObjectWithHighlight, SuggestOptions } from './locatieserver.model';\r\n\r\n@Component({\r\n selector: 'angular-geocoder',\r\n templateUrl: 'angular-geocoder.component.html',\r\n styleUrls: ['angular-geocoder.component.scss'],\r\n host: { 'class': 'geocoder' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class GeocoderComponent implements OnInit, OnChanges {\r\n public searchThreshold = 2;\r\n\r\n readonly geocoderRef = viewChild<ElementRef>('geocoder');\r\n readonly type = input<LocatieserverObjectType>(undefined);\r\n readonly searchInput = input<string>(undefined);\r\n readonly placeholder = input<string>(undefined);\r\n readonly resultCountLimit = input(12);\r\n readonly province = input<string>(undefined);\r\n readonly fullscreen = input(false);\r\n readonly microphone = input(true);\r\n readonly boxshadow = input(true);\r\n readonly borderradius = input(true);\r\n readonly placeFound = output<ParsedPlaceObject | null>();\r\n readonly clearResults = output<any>();\r\n readonly query = output<string>();\r\n readonly freeSearchResults = output<ParsedPlaceObject[]>();\r\n readonly blur = output<any>();\r\n @HostBinding('class.geocoder--selected')\r\n get hostGeocoderClass() {\r\n return this.hasFocus();\r\n }\r\n readonly hasFocus = signal(false);\r\n\r\n // @ts-ignores\r\n public speechRecognizer: any | undefined;\r\n public formattedPlaceholder = computed(() => this.formatPlaceholder(this.placeholder()));\r\n\r\n // Microphone\r\n public searchControl = new FormControl<string | null | undefined>(undefined, { validators: [Validators.minLength(this.searchThreshold)] });\r\n public readonly microphoneActive = signal(false);\r\n\r\n // Reverse geocoding\r\n public userGpsLocation$ = new Subject<{ lat: number, lon: number }>();\r\n\r\n public suggest$ = this.searchControl.valueChanges.pipe(\r\n filter(searchInput => searchInput.length > this.searchThreshold),\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n tap((input) => this.query.emit(input)),\r\n switchMap(searchInput => this.suggest(searchInput)),\r\n shareReplay()\r\n );\r\n\r\n public reverseSuggest$ = this.userGpsLocation$.pipe(\r\n switchMap((params) => this.reverse(params)),\r\n shareReplay(),\r\n );\r\n\r\n public collationclear$ = new BehaviorSubject([]);\r\n public useMyLocationPlace = {\r\n weergavenaam: 'Gebruik huidige locatie',\r\n subtitle: 'Zoek met GPS/apparaatlocatie',\r\n type: 'gps',\r\n id: 'gps'\r\n } as any;\r\n\r\n public tooFewCharacters$ = this.searchControl.valueChanges.pipe(\r\n filter(searchInput => searchInput.length <= this.searchThreshold),\r\n map(() => [this.useMyLocationPlace]),\r\n startWith([this.useMyLocationPlace]),\r\n );\r\n\r\n public places$ = merge(\r\n this.suggest$.pipe(\r\n map((response) => response.places),\r\n ),\r\n this.reverseSuggest$,\r\n this.tooFewCharacters$\r\n );\r\n\r\n public readonly places = toSignal(this.places$);\r\n\r\n public readonly collations = toSignal(merge(\r\n this.suggest$.pipe(\r\n map(response => response.collations),\r\n ),\r\n this.collationclear$\r\n ));\r\n\r\n public foundPlace$ = new BehaviorSubject(null);\r\n public selectedIndex = -1;\r\n public readonly lookupResponseFound = signal(false);\r\n\r\n @HostListener('document:click', ['$event']) clickout(event) {\r\n if (this.geocoderRef().nativeElement.contains(event.target)) {\r\n this.showSuggestions();\r\n } else {\r\n this.hideResults();\r\n }\r\n }\r\n\r\n\r\n constructor(private geocoderService: GeocoderService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.searchInput) {\r\n this.searchControl.setValue(changes.searchInput.currentValue);\r\n }\r\n }\r\n\r\n private suggest(searchTerm: string) {\r\n const flArray = ['id', 'score', 'type', 'weergavenaam', 'straatnaam', 'huis_nlt', 'woonplaatsnaam', 'kadastrale_gemeentecode', 'kadastrale_sectie', 'perceelnummer', 'kadastrale_gemeentenaam'];\r\n const params = {\r\n fq: '*:*',\r\n fl: flArray.toString(),\r\n rows: this.resultCountLimit()\r\n } as SuggestOptions;\r\n const formattedSearchTerm = this.formatSearchTerm(searchTerm);\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n params.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n params.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n params.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n return this.geocoderService.suggest$(formattedSearchTerm, params);\r\n }\r\n\r\n private reverse(params: { lat: number, lon: number }) {\r\n const opts = {\r\n type: 'adres',\r\n fq: '*:*',\r\n rows: this.resultCountLimit()\r\n };\r\n\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n // Set type to all and use FQ to determine type, so that we can re-use logic\r\n opts.type = '*';\r\n\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n opts.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n opts.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n opts.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n\r\n return this.geocoderService.reverse$(params, opts);\r\n\r\n }\r\n\r\n public async lookup(id: string) {\r\n const lookupObj: any = await this.geocoderService.lookup$(id).toPromise();\r\n this.foundPlace$.next(lookupObj);\r\n this.fillInput(lookupObj.weergavenaam);\r\n this.placeFound.emit(lookupObj);\r\n this.lookupResponseFound.set(true);\r\n this.clearPlaces();\r\n this.hideResults();\r\n }\r\n\r\n public async reverseGeocode() {\r\n const gpsLocation = await this.getGpsLocation();\r\n this.userGpsLocation$.next(gpsLocation);\r\n }\r\n\r\n public async free() {\r\n const params = {\r\n fq: '*:*',\r\n rows: this.resultCountLimit()\r\n } as SuggestOptions;\r\n\r\n const type = this.type();\r\n const provinceValue = this.province();\r\n if (type) {\r\n const replace = ',';\r\n const regex = new RegExp(replace, 'g');\r\n const query = type.replace(regex, ' OR ');\r\n params.fq = `type:(${query})`;\r\n const province = this.province();\r\n if (province) {\r\n params.fq += ` AND provincienaam:(${province})`;\r\n }\r\n } else if (provinceValue) {\r\n params.fq = `provincienaam:(${provinceValue})`;\r\n }\r\n\r\n const searchTerm = this.searchControl.value;\r\n const free = await firstValueFrom(this.geocoderService.free$(searchTerm, params));\r\n this.freeSearchResults.emit(free);\r\n }\r\n\r\n public clear(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.foundPlace$.next(null);\r\n this.searchControl.setValue('');\r\n this.clearPlaces();\r\n this.lookupResponseFound.set(false);\r\n this.hideResults();\r\n this.clearResults.emit(true);\r\n }\r\n\r\n public clearPlaces() {\r\n this.resetIndex();\r\n this.collationclear$.next([]);\r\n }\r\n\r\n public async handleSuggestClick(id: 'gps' | string) {\r\n if (id === 'gps') {\r\n this.reverseGeocode();\r\n } else {\r\n this.lookup(id);\r\n }\r\n }\r\n\r\n public handleEnter(places: SuggestObjectWithHighlight[]) {\r\n if (this.selectedIndex === -1) {\r\n return;\r\n }\r\n const selectedPlace = places[this.selectedIndex];\r\n this.lookup(selectedPlace.id);\r\n }\r\n\r\n public reachedThreshold$ = this.searchControl.valueChanges.pipe(\r\n startWith(''),\r\n map(val => (val && val.length) > this.searchThreshold)\r\n );\r\n\r\n public noPlacesFound$ = this.places$.pipe(\r\n map(places => places.length === 0),\r\n );\r\n\r\n public noResult$ = this.foundPlace$.pipe(\r\n map(place => place === null)\r\n );\r\n\r\n public readonly noResult = toSignal(this.noResult$);\r\n\r\n public readonly isNoResultsFound = toSignal(combineLatest([this.reachedThreshold$, this.noPlacesFound$, this.noResult$]).pipe(\r\n map(([reachedThreshold, noSuggestions, noResult]) => reachedThreshold && noSuggestions && noResult)\r\n ));\r\n\r\n public fillInput(content: string, emitEvent = false) {\r\n this.searchControl.setValue(content, {\r\n emitEvent: emitEvent\r\n });\r\n }\r\n\r\n public isHighlighted(i: number) {\r\n if (i === this.selectedIndex) {\r\n return true;\r\n }\r\n }\r\n\r\n public moveUp() {\r\n if (this.selectedIndex > 0) {\r\n this.selectedIndex--;\r\n }\r\n }\r\n\r\n public moveDown(places: SuggestObjectWithHighlight[]) {\r\n if (this.selectedIndex < places.length) {\r\n this.selectedIndex++;\r\n }\r\n }\r\n\r\n public resetIndex() {\r\n this.selectedIndex = -1;\r\n }\r\n\r\n public canQuery() {\r\n const searchInput = this.searchControl.value;\r\n return searchInput && searchInput.length > this.searchThreshold;\r\n }\r\n\r\n public canClear() {\r\n const searchInput = this.searchControl.value;\r\n return searchInput && searchInput.length > 0;\r\n }\r\n\r\n public formatPlaceholder(placeholder: string) {\r\n let placeholderText = 'Zoeken op de kaart...';\r\n\r\n if (placeholder) {\r\n placeholderText = placeholder;\r\n }\r\n return placeholderText;\r\n }\r\n\r\n public onCollationClick(name: string) {\r\n this.fillInput(name, true);\r\n }\r\n\r\n public showSuggestions() {\r\n this.hasFocus.set(true);\r\n }\r\n\r\n private getSpeechRecognition() {\r\n if (this.speechRecognizer) {\r\n return this.speechRecognizer;\r\n }\r\n\r\n //@ts-ignore\r\n const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\r\n const recognition = new SpeechRecognition();\r\n recognition.interimResults = false; // Set to true if you want interim results\r\n recognition.lang = 'nl-NL'; // Set the language here\r\n this.speechRecognizer = recognition;\r\n\r\n return this.speechRecognizer;\r\n\r\n }\r\n\r\n public speechToText(event: any) {\r\n const recognition = this.getSpeechRecognition();\r\n\r\n if (this.microphoneActive() === true) {\r\n return recognition.stop();\r\n }\r\n\r\n recognition.onresult = (event) => {\r\n this.searchControl.setValue(event.results[0][0]?.transcript);\r\n }\r\n\r\n recognition.onend = (event) => {\r\n this.microphoneActive.set(false);\r\n }\r\n\r\n this.microphoneActive.set(true);\r\n recognition.start();\r\n }\r\n\r\n private hideResults() {\r\n this.hasFocus.set(false);\r\n }\r\n\r\n private async getGpsLocation(): Promise<{ lat: number, lon: number } | null> {\r\n if (!navigator.geolocation) {\r\n alert('GPS wordt niet ondersteund door uw apparaat');\r\n return null;\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n resolve({\r\n lat: position.coords.latitude,\r\n lon: position.coords.longitude\r\n });\r\n }, (error) => {\r\n\r\n const map = {\r\n 1: 'U heeft ons geen toestemming gegeven om uw locatie op te halen',\r\n 2: 'Uw locatie is niet beschikbaar',\r\n 3: 'Het duurt te lang om uw locatie op te halen'\r\n };\r\n\r\n alert(map[error.code] || 'Het is niet gelukt om uw locatie op te halen');\r\n\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n\r\n private formatSearchTerm(searchTerm: string) {\r\n const isKadastraleAanduidingRegex = /[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1,2}[0-9]{1,5}/;\r\n\r\n if (isKadastraleAanduidingRegex.test(searchTerm) === true) {\r\n // Use three capturing groups () () () to split the string by.\r\n const splitAanduidingRegex = /([a-zA-Z]{3}[0-9]{2})([a-zA-Z]{1,2})([0-9]{1,5})/;\r\n const formattedTerm = searchTerm.split(splitAanduidingRegex).filter(str => str !== '').join(' ');\r\n return formattedTerm;\r\n }\r\n\r\n return searchTerm;\r\n }\r\n}\r\n","<div #geocoder (keydown.ArrowUp)=\"moveUp()\" (keydown.ArrowDown)=\"moveDown(places())\"\r\n (keydown.Enter)=\"handleEnter(places())\" class=\"geocoder-container\"\r\n [class.geocoder-container--fullscreen]=\"hasFocus() === true && fullscreen() === true\" [class.boxshadow]=\"boxshadow()\"\r\n [class.borderradius]=\"borderradius()\">\r\n <!-- Input -->\r\n <div class=\"geocoder-search\">\r\n @if (hasFocus() && fullscreen() === true) {\r\n <button aria-label=\"Terug\" class=\"back\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 768 768\" height=\"21\" width=\"21\" fill=\"currentColor\">\r\n <path\r\n d=\"M406.624 585.376l-169.376-169.376h370.752c17.664 0 32-14.336 32-32s-14.336-32-32-32h-370.752l169.376-169.376c12.512-12.512 12.512-32.768 0-45.248s-32.768-12.512-45.248 0l-224 224c-3.072 3.072-5.376 6.592-6.944 10.368-1.632 3.904-2.432 8.096-2.432 12.256 0 8.192 3.136 16.384 9.376 22.624l224 224c12.512 12.512 32.768 12.512 45.248 0s12.512-32.768 0-45.248z\">\r\n </path>\r\n </svg>\r\n </button>\r\n }\r\n\r\n <input (click)=\"showSuggestions()\" [formControl]=\"searchControl\" (blur)=\"blur.emit($event)\"\r\n class=\"geocoder-search__input\" [placeholder]=\"formattedPlaceholder()\" type=\"text\" maxlength=\"100\">\r\n\r\n @if (microphone() === true) {\r\n <button (click)=\"speechToText($event)\" aria-label=\"Zoeken met spraak\" class=\"mic\"\r\n [class.mic--active]=\"microphoneActive()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\r\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\r\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\r\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n @if (lookupResponseFound() === true) {\r\n <button aria-label=\"Sluiten\" class=\"close\" width=\"15\" height=\"15\" (click)=\"clear($event)\">\r\n <svg viewBox=\"0 0 384 512\">\r\n <path fill=\"currentColor\"\r\n d=\"M217.5 256l137.2-137.2c4.7-4.7 4.7-12.3 0-17l-8.5-8.5c-4.7-4.7-12.3-4.7-17 0L192 230.5 54.8 93.4c-4.7-4.7-12.3-4.7-17 0l-8.5 8.5c-4.7 4.7-4.7 12.3 0 17L166.5 256 29.4 393.2c-4.7 4.7-4.7 12.3 0 17l8.5 8.5c4.7 4.7 12.3 4.7 17 0L192 281.5l137.2 137.2c4.7 4.7 12.3 4.7 17 0l8.5-8.5c4.7-4.7 4.7-12.3 0-17L217.5 256z\"\r\n class=\"\"></path>\r\n </svg>\r\n </button>\r\n } @else {\r\n <button (click)=\"free()\" aria-label=\"Zoeken met tekst\" class=\"search\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\"\r\n stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\"></circle>\r\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line>\r\n </svg>\r\n </button>\r\n }\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Search results-->\r\n @if (hasFocus() === true) {\r\n @if (places().length > 0) {\r\n <div class=\"geocoder-suggestions\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for (place of places(); track place.id; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"handleSuggestClick(place.id)\"\r\n [class.geocoder-suggestion--focus]=\" isHighlighted(i)\">\r\n\r\n @switch (place.type) {\r\n @case ('gps') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{ place.weergavenaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.subtitle}}</div>\r\n </div>\r\n }\r\n\r\n @case ('adres') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }} {{place.huis_nlt}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('perceel') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n Perceel {{place.kadastrale_gemeentecode }} {{place.kadastrale_sectie}} {{place.perceelnummer}}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.kadastrale_gemeentenaam}}</div>\r\n </div>\r\n }\r\n\r\n @case ('weg') {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\">\r\n {{place.straatnaam }}\r\n </div>\r\n <div class=\"geocoder-suggestion__content__subtitle\"> {{place.woonplaatsnaam}}</div>\r\n </div>\r\n }\r\n\r\n @default {\r\n <div class=\"geocoder-suggestion__content\">\r\n <div class=\"geocoder-suggestion__content__title\" [innerHTML]=\"place.highlight\">\r\n </div>\r\n </div>\r\n }\r\n\r\n }\r\n <div class=\"geocoder-suggestion__type\"> {{place.type}} </div>\r\n\r\n </li>\r\n }\r\n\r\n </ul>\r\n </div>\r\n }\r\n\r\n @if (isNoResultsFound() === true) {\r\n <div class=\"geocoder-noresults\">\r\n Geen resultaten voor <strong>\"{{searchControl.value}}\"</strong>\r\n </div>\r\n }\r\n\r\n\r\n @if (collations().length > 0 && places().length === 0 && noResult( )) {\r\n <div class=\"geocoder-suggestions geocoder-suggestions--collations\">\r\n <ul class=\"geocoder-suggestions__list\">\r\n @for(collation of collations(); track collation.naam; let i = $index) {\r\n <li class=\"geocoder-suggestion\" tabindex={{i}} (click)=\"onCollationClick(collation.naam)\"\r\n [innerHTML]=\"collation.weergavenaam\">\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n }\r\n\r\n <!-- Backdrop-->\r\n @if (fullscreen() === true) {\r\n <div class=\"geocoder-backdrop\"></div>\r\n }\r\n }\r\n</div>","import { provideHttpClient, withFetch } from '@angular/common/http';\r\nimport { NgModule, provideExperimentalZonelessChangeDetection } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { GeocoderComponent } from './angular-geocoder.component';\r\n\r\n@NgModule({\r\n declarations: [GeocoderComponent],\r\n exports: [GeocoderComponent],\r\n imports: [\r\n ReactiveFormsModule\r\n ],\r\n providers: [\r\n provideHttpClient(\r\n withFetch()\r\n ),\r\n provideExperimentalZonelessChangeDetection(),\r\n ]\r\n})\r\nexport class GeocoderModule { }\r\n\r\n\r\n","/*\r\n * Public API Surface of angular-geocoder\r\n */\r\n\r\nexport * from './lib/angular-geocoder.service';\r\nexport * from './lib/angular-geocoder.component';\r\nexport * from './lib/angular-geocoder.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeocoderService"],"mappings":"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"}

@@ -11,3 +11,3 @@ import { ElementRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';

readonly geocoderRef: import("@angular/core").Signal<ElementRef<any>>;
readonly type: import("@angular/core").InputSignal<"provincie" | "gemeente" | "woonplaats" | "weg" | "postcode" | "adres" | "perceel" | "wijk" | "buurt" | "waterschap" | "appartementsrecht" | "hectometerpaal">;
readonly type: import("@angular/core").InputSignal<"hectometerpaal" | "appartementsrecht" | "waterschap" | "buurt" | "wijk" | "perceel" | "adres" | "postcode" | "weg" | "woonplaats" | "gemeente" | "provincie">;
readonly searchInput: import("@angular/core").InputSignal<string>;

@@ -14,0 +14,0 @@ readonly placeholder: import("@angular/core").InputSignal<string>;

{
"name": "angular-geocoder",
"version": "19.4.0",
"version": "19.5.0",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^19.0.0",