@regionerne/gis-komponent 0.0.97 → 0.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -20,7 +20,7 @@ import ol_control_mouse from 'ol/control/MousePosition';
|
|
|
20
20
|
import ol_control_scale from 'ol/control/ScaleLine';
|
|
21
21
|
import { register } from 'ol/proj/proj4';
|
|
22
22
|
import proj4 from 'proj4';
|
|
23
|
-
import { Control
|
|
23
|
+
import { Control } from 'ol/control';
|
|
24
24
|
import { TileWMS, Vector } from 'ol/source';
|
|
25
25
|
import { Subject, BehaviorSubject, tap, switchMap, EMPTY, map, combineLatest, Observable, debounceTime, distinctUntilChanged, filter, take, of, ReplaySubject, interval, catchError, forkJoin } from 'rxjs';
|
|
26
26
|
import WMTS, { optionsFromCapabilities } from 'ol/source/WMTS';
|
|
@@ -233,6 +233,11 @@ class LayerHelperService {
|
|
|
233
233
|
set map(value) {
|
|
234
234
|
this._map = value;
|
|
235
235
|
}
|
|
236
|
+
getParamsObject(layer) {
|
|
237
|
+
let params = layer.wmsParameters.reduce((current, value) => { return current.append(value.key, value.value); }, new HttpParams());
|
|
238
|
+
params = layer.authKeyName ? params.append(layer.authKeyName, layer.token) : params;
|
|
239
|
+
return params;
|
|
240
|
+
}
|
|
236
241
|
setName(layer, name) {
|
|
237
242
|
layer.set(this._layerNameKey, name);
|
|
238
243
|
}
|
|
@@ -794,10 +799,10 @@ class WidgetConstants {
|
|
|
794
799
|
static searchWidth = 374;
|
|
795
800
|
static activeObjectsHeight = 80;
|
|
796
801
|
static activeObjectsWidth = 350;
|
|
797
|
-
static layerSelectorHeight =
|
|
802
|
+
static layerSelectorHeight = 610;
|
|
798
803
|
static layerSelectorWidth = 429;
|
|
799
804
|
static legendsHeight = 341;
|
|
800
|
-
static legendsWidth =
|
|
805
|
+
static legendsWidth = 350;
|
|
801
806
|
static toolboxDefaultX = 29;
|
|
802
807
|
static toolboxDefaultY = 120;
|
|
803
808
|
static searchDefaultX = 29;
|
|
@@ -2297,6 +2302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2297
2302
|
|
|
2298
2303
|
class SearchProviderBase {
|
|
2299
2304
|
_http = inject(HttpClient);
|
|
2305
|
+
_layerHelperService = inject(LayerHelperService);
|
|
2300
2306
|
wfsFormat = new WFS();
|
|
2301
2307
|
_serializer = new XMLSerializer();
|
|
2302
2308
|
search(searchValue, maxCount) {
|
|
@@ -2314,8 +2320,9 @@ class SearchProviderBase {
|
|
|
2314
2320
|
filter
|
|
2315
2321
|
});
|
|
2316
2322
|
const body = this._serializer.serializeToString(searchFeature);
|
|
2323
|
+
let params = this._layerHelperService.getParamsObject(layer);
|
|
2317
2324
|
// Call the post without generic <WfsFeatureCollection>, because the GeoServer will return a 200 and an error as xml. Handle the deserialize manually instead.
|
|
2318
|
-
const req$ = this._http.post(layer.baseUrl.replace('wms', 'wfs'), body, { headers: { 'Content-Type': 'text/xml' }, responseType: 'text', observe: 'response' }).pipe(map(r => {
|
|
2325
|
+
const req$ = this._http.post(layer.baseUrl.replace('wms', 'wfs'), body, { headers: { 'Content-Type': 'text/xml' }, params, responseType: 'text', observe: 'response' }).pipe(map(r => {
|
|
2319
2326
|
try {
|
|
2320
2327
|
const result = JSON.parse(r.body ?? '');
|
|
2321
2328
|
return this.map(layer, result);
|
|
@@ -2900,7 +2907,7 @@ class SelectedFeatureInfoComponent {
|
|
|
2900
2907
|
if (this.features) {
|
|
2901
2908
|
this.features.forEach(item => {
|
|
2902
2909
|
if (this.collapsedStates[item.layerName] === undefined) {
|
|
2903
|
-
this.collapsedStates[item.layerName] =
|
|
2910
|
+
this.collapsedStates[item.layerName] = false;
|
|
2904
2911
|
}
|
|
2905
2912
|
});
|
|
2906
2913
|
}
|
|
@@ -2914,11 +2921,11 @@ class SelectedFeatureInfoComponent {
|
|
|
2914
2921
|
return this.collapsedStates[layerName] || false;
|
|
2915
2922
|
}
|
|
2916
2923
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectedFeatureInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2917
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SelectedFeatureInfoComponent, isStandalone: true, selector: "selected-feature-info", host: { properties: { "hidden": "this.hidden" } }, ngImport: i0, template: "\n@if(features && features.length > 0) {\n <div class=\"selected-features-wrapper\"> \n\n @for(item of features; track item.layerName) { \n @if(item.values && item.values.length >0) {\n <div class=\"feature-section\">\n <span (click)=\"toggleCollapse(item.layerName)\" class=\"collapsible-header\">\n <mat-icon class=\"collapse-icon\">\n {{ isCollapsed(item.layerName) ? '
|
|
2924
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: SelectedFeatureInfoComponent, isStandalone: true, selector: "selected-feature-info", host: { properties: { "hidden": "this.hidden" } }, ngImport: i0, template: "\n@if(features && features.length > 0) {\n <div class=\"selected-features-wrapper\"> \n\n @for(item of features; track item.layerName) { \n @if(item.values && item.values.length >0) {\n <div class=\"feature-section\">\n <span (click)=\"toggleCollapse(item.layerName)\" class=\"collapsible-header\">\n <mat-icon class=\"collapse-icon\">\n {{ isCollapsed(item.layerName) ? 'expand_more' : 'keyboard_arrow_up' }}\n </mat-icon>\n {{item.layerName}}\n </span>\n <div class=\"feature-content\" [class.collapsed]=\"isCollapsed(item.layerName)\">\n @for(feature of item.values; track feature) {\n <div class=\"feature-item\">\n <div *ngFor=\"let kv of (feature | keyvalue)\" class=\"feature-row\">\n <div class=\"feature-label\">\n {{ kv.value.name }}:\n </div>\n <div class=\"feature-value\">\n <ng-container [ngSwitch]=\"kv.value.kind\">\n <img *ngSwitchCase=\"'img'\" [src]=\"kv.value.data\" alt=\"{{ kv.key }}\" style=\"max-width:240px;\" />\n <a *ngSwitchCase=\"'url'\" [href]=\"kv.value.data\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ kv.key }}\n <mat-icon class=\"link-icon\">open_in_new</mat-icon>\n </a>\n <span *ngSwitchDefault>{{ kv.value.data }}</span>\n </ng-container>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n}\n", styles: ["::ng-deep .selected-features-wrapper{background:#4c4d51;border-radius:5px;box-shadow:0 4px 6px #00000012,0 10px 20px #0000001a;max-width:420px;max-height:450px;overflow-y:auto;position:relative}::ng-deep .selected-features-wrapper::-webkit-scrollbar{width:12px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-track{background:#757474;border-radius:8px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-thumb{background:#1a1c1f;border-radius:8px;border:2px solid #2a2c30}::ng-deep .selected-features-wrapper::-webkit-scrollbar-thumb:hover{background:#0f1012}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button{width:12px;height:16px;background:#2a2c30;border:1px solid #1a1c1f}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:decrement{background:#2a2c30 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 4l-4 4h8z'/%3E%3C/svg%3E\") no-repeat center;border-radius:8px 8px 0 0}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:decrement:hover{background-color:#1a1c1f}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:increment{background:#2a2c30 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 8l4-4H2z'/%3E%3C/svg%3E\") no-repeat center;border-radius:0 0 8px 8px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:increment:hover{background-color:#1a1c1f}::ng-deep .selected-features-wrapper .feature-section{padding:0;margin-bottom:8px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.03);transition:all .2s ease}::ng-deep .selected-features-wrapper .feature-section:not(:last-child){margin-bottom:10px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{color:#fff;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;padding:14px 16px 14px 20px;background:#ffffff26;border-bottom:1px solid rgba(255,255,255,.05);transition:all .2s ease;position:relative;z-index:2;font-size:14px;letter-spacing:.3px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header:hover{background:#ffffff0d}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header:hover:before{opacity:1}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header .collapse-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:22px;width:22px;height:22px;transition:transform .3s ease;color:#fff;opacity:.9}::ng-deep .selected-features-wrapper .feature-section .feature-content{max-height:350px;overflow:auto;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease;opacity:1;padding:12px 16px 12px 20px}::ng-deep .selected-features-wrapper .feature-section .feature-content.collapsed{max-height:0;opacity:0;padding:0 16px 0 20px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar{width:12px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-track{background:#757474;border-radius:8px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-thumb{background:#1a1c1f;border-radius:8px;border:2px solid #2a2c30}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-thumb:hover{background:#0f1012}::ng-deep .selected-features-wrapper .feature-section .feature-item{background:#ffffff0d;border-radius:6px;padding:12px;transition:all .2s ease;position:relative;color:#fff;border:1px solid rgba(255,255,255,.02);margin-bottom:8px}::ng-deep .selected-features-wrapper .feature-section .feature-item:last-child{margin-bottom:0}::ng-deep .selected-features-wrapper .feature-row{display:flex;align-items:flex-start;margin-bottom:10px;gap:12px;padding:2px 0}::ng-deep .selected-features-wrapper .feature-row:last-child{margin-bottom:0}::ng-deep .selected-features-wrapper .feature-label{color:#bdc1c3cc;min-width:120px;flex-shrink:0;font-size:13px;letter-spacing:.2px}::ng-deep .selected-features-wrapper .feature-value{color:#fff;flex-grow:1;font-size:13px;word-break:break-word}::ng-deep .selected-features-wrapper img{margin-top:4px;border-radius:6px;border:1px solid rgba(255,255,255,.1);max-width:100%;max-height:180px;display:block;box-shadow:0 2px 8px #0003;transition:all .2s ease}::ng-deep .selected-features-wrapper img:hover{transform:scale(1.02);box-shadow:0 4px 12px #0000004d}::ng-deep .selected-features-wrapper a{color:#89bbeb!important;font-weight:500;transition:all .2s ease;text-decoration:none;position:relative;padding:2px 4px;border-radius:4px;display:inline-flex;align-items:center;gap:4px;background:#89bbeb0d}::ng-deep .selected-features-wrapper a:hover{color:#a8ccf0!important;background:#89bbeb1a}::ng-deep .selected-features-wrapper a .link-icon{font-size:16px;width:16px;height:16px;opacity:.7}::ng-deep .selected-features-wrapper div[ng-reflect-ng-for-of]{display:none}@media (max-width: 768px){::ng-deep .selected-features-wrapper{max-width:100%;border-radius:12px 12px 0 0;max-height:70vh}::ng-deep .selected-features-wrapper .feature-section{margin-bottom:6px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{padding:12px 16px;font-size:15px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header .collapse-icon{right:10px;font-size:20px;width:20px;height:20px}::ng-deep .selected-features-wrapper .feature-section .feature-content{padding:10px 12px 10px 16px}::ng-deep .selected-features-wrapper .feature-row{flex-direction:column;gap:4px;margin-bottom:12px}::ng-deep .selected-features-wrapper .feature-row:before{left:4px}::ng-deep .selected-features-wrapper .feature-label{min-width:auto;font-size:12px;color:#89bbeb}::ng-deep .selected-features-wrapper .feature-value{padding-left:8px;border-left:2px solid rgba(137,187,235,.2);font-size:12px}::ng-deep .selected-features-wrapper .feature-item{padding:10px}::ng-deep .selected-features-wrapper .feature-item:hover{transform:none}::ng-deep .selected-features-wrapper img{max-height:150px}}@media (max-width: 480px){::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{font-size:14px;padding:10px 14px}::ng-deep .selected-features-wrapper .feature-item{padding:8px}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feature-content:not(.collapsed) .feature-item{animation:slideIn .2s ease-out}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1$2.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
2918
2925
|
}
|
|
2919
2926
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: SelectedFeatureInfoComponent, decorators: [{
|
|
2920
2927
|
type: Component,
|
|
2921
|
-
args: [{ selector: 'selected-feature-info', imports: [CommonModule, FormsModule, AsyncPipe, JsonPipe, MatButtonModule, MatIconModule], template: "\n@if(features && features.length > 0) {\n <div class=\"selected-features-wrapper\"> \n\n @for(item of features; track item.layerName) { \n @if(item.values && item.values.length >0) {\n <div class=\"feature-section\">\n <span (click)=\"toggleCollapse(item.layerName)\" class=\"collapsible-header\">\n <mat-icon class=\"collapse-icon\">\n {{ isCollapsed(item.layerName) ? '
|
|
2928
|
+
args: [{ selector: 'selected-feature-info', imports: [CommonModule, FormsModule, AsyncPipe, JsonPipe, MatButtonModule, MatIconModule], template: "\n@if(features && features.length > 0) {\n <div class=\"selected-features-wrapper\"> \n\n @for(item of features; track item.layerName) { \n @if(item.values && item.values.length >0) {\n <div class=\"feature-section\">\n <span (click)=\"toggleCollapse(item.layerName)\" class=\"collapsible-header\">\n <mat-icon class=\"collapse-icon\">\n {{ isCollapsed(item.layerName) ? 'expand_more' : 'keyboard_arrow_up' }}\n </mat-icon>\n {{item.layerName}}\n </span>\n <div class=\"feature-content\" [class.collapsed]=\"isCollapsed(item.layerName)\">\n @for(feature of item.values; track feature) {\n <div class=\"feature-item\">\n <div *ngFor=\"let kv of (feature | keyvalue)\" class=\"feature-row\">\n <div class=\"feature-label\">\n {{ kv.value.name }}:\n </div>\n <div class=\"feature-value\">\n <ng-container [ngSwitch]=\"kv.value.kind\">\n <img *ngSwitchCase=\"'img'\" [src]=\"kv.value.data\" alt=\"{{ kv.key }}\" style=\"max-width:240px;\" />\n <a *ngSwitchCase=\"'url'\" [href]=\"kv.value.data\" target=\"_blank\" rel=\"noopener noreferrer\">\n {{ kv.key }}\n <mat-icon class=\"link-icon\">open_in_new</mat-icon>\n </a>\n <span *ngSwitchDefault>{{ kv.value.data }}</span>\n </ng-container>\n </div>\n </div>\n </div>\n }\n </div>\n </div>\n }\n }\n </div>\n}\n", styles: ["::ng-deep .selected-features-wrapper{background:#4c4d51;border-radius:5px;box-shadow:0 4px 6px #00000012,0 10px 20px #0000001a;max-width:420px;max-height:450px;overflow-y:auto;position:relative}::ng-deep .selected-features-wrapper::-webkit-scrollbar{width:12px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-track{background:#757474;border-radius:8px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-thumb{background:#1a1c1f;border-radius:8px;border:2px solid #2a2c30}::ng-deep .selected-features-wrapper::-webkit-scrollbar-thumb:hover{background:#0f1012}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button{width:12px;height:16px;background:#2a2c30;border:1px solid #1a1c1f}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:decrement{background:#2a2c30 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 4l-4 4h8z'/%3E%3C/svg%3E\") no-repeat center;border-radius:8px 8px 0 0}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:decrement:hover{background-color:#1a1c1f}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:increment{background:#2a2c30 url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' d='M6 8l4-4H2z'/%3E%3C/svg%3E\") no-repeat center;border-radius:0 0 8px 8px}::ng-deep .selected-features-wrapper::-webkit-scrollbar-button:vertical:increment:hover{background-color:#1a1c1f}::ng-deep .selected-features-wrapper .feature-section{padding:0;margin-bottom:8px;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.03);transition:all .2s ease}::ng-deep .selected-features-wrapper .feature-section:not(:last-child){margin-bottom:10px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{color:#fff;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;padding:14px 16px 14px 20px;background:#ffffff26;border-bottom:1px solid rgba(255,255,255,.05);transition:all .2s ease;position:relative;z-index:2;font-size:14px;letter-spacing:.3px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header:hover{background:#ffffff0d}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header:hover:before{opacity:1}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header .collapse-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:22px;width:22px;height:22px;transition:transform .3s ease;color:#fff;opacity:.9}::ng-deep .selected-features-wrapper .feature-section .feature-content{max-height:350px;overflow:auto;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .2s ease;opacity:1;padding:12px 16px 12px 20px}::ng-deep .selected-features-wrapper .feature-section .feature-content.collapsed{max-height:0;opacity:0;padding:0 16px 0 20px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar{width:12px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-track{background:#757474;border-radius:8px}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-thumb{background:#1a1c1f;border-radius:8px;border:2px solid #2a2c30}::ng-deep .selected-features-wrapper .feature-section .feature-content::-webkit-scrollbar-thumb:hover{background:#0f1012}::ng-deep .selected-features-wrapper .feature-section .feature-item{background:#ffffff0d;border-radius:6px;padding:12px;transition:all .2s ease;position:relative;color:#fff;border:1px solid rgba(255,255,255,.02);margin-bottom:8px}::ng-deep .selected-features-wrapper .feature-section .feature-item:last-child{margin-bottom:0}::ng-deep .selected-features-wrapper .feature-row{display:flex;align-items:flex-start;margin-bottom:10px;gap:12px;padding:2px 0}::ng-deep .selected-features-wrapper .feature-row:last-child{margin-bottom:0}::ng-deep .selected-features-wrapper .feature-label{color:#bdc1c3cc;min-width:120px;flex-shrink:0;font-size:13px;letter-spacing:.2px}::ng-deep .selected-features-wrapper .feature-value{color:#fff;flex-grow:1;font-size:13px;word-break:break-word}::ng-deep .selected-features-wrapper img{margin-top:4px;border-radius:6px;border:1px solid rgba(255,255,255,.1);max-width:100%;max-height:180px;display:block;box-shadow:0 2px 8px #0003;transition:all .2s ease}::ng-deep .selected-features-wrapper img:hover{transform:scale(1.02);box-shadow:0 4px 12px #0000004d}::ng-deep .selected-features-wrapper a{color:#89bbeb!important;font-weight:500;transition:all .2s ease;text-decoration:none;position:relative;padding:2px 4px;border-radius:4px;display:inline-flex;align-items:center;gap:4px;background:#89bbeb0d}::ng-deep .selected-features-wrapper a:hover{color:#a8ccf0!important;background:#89bbeb1a}::ng-deep .selected-features-wrapper a .link-icon{font-size:16px;width:16px;height:16px;opacity:.7}::ng-deep .selected-features-wrapper div[ng-reflect-ng-for-of]{display:none}@media (max-width: 768px){::ng-deep .selected-features-wrapper{max-width:100%;border-radius:12px 12px 0 0;max-height:70vh}::ng-deep .selected-features-wrapper .feature-section{margin-bottom:6px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{padding:12px 16px;font-size:15px}::ng-deep .selected-features-wrapper .feature-section span.collapsible-header .collapse-icon{right:10px;font-size:20px;width:20px;height:20px}::ng-deep .selected-features-wrapper .feature-section .feature-content{padding:10px 12px 10px 16px}::ng-deep .selected-features-wrapper .feature-row{flex-direction:column;gap:4px;margin-bottom:12px}::ng-deep .selected-features-wrapper .feature-row:before{left:4px}::ng-deep .selected-features-wrapper .feature-label{min-width:auto;font-size:12px;color:#89bbeb}::ng-deep .selected-features-wrapper .feature-value{padding-left:8px;border-left:2px solid rgba(137,187,235,.2);font-size:12px}::ng-deep .selected-features-wrapper .feature-item{padding:10px}::ng-deep .selected-features-wrapper .feature-item:hover{transform:none}::ng-deep .selected-features-wrapper img{max-height:150px}}@media (max-width: 480px){::ng-deep .selected-features-wrapper .feature-section span.collapsible-header{font-size:14px;padding:10px 14px}::ng-deep .selected-features-wrapper .feature-item{padding:8px}}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.feature-content:not(.collapsed) .feature-item{animation:slideIn .2s ease-out}\n"] }]
|
|
2922
2929
|
}], propDecorators: { hidden: [{
|
|
2923
2930
|
type: HostBinding,
|
|
2924
2931
|
args: ['hidden']
|
|
@@ -4951,6 +4958,7 @@ class WFSSearchService {
|
|
|
4951
4958
|
_searcheableLayers = [];
|
|
4952
4959
|
geoJsonFormat = new GeoJSON$1({ dataProjection: 'EPSG:25832', featureProjection: 'EPSG:25832' });
|
|
4953
4960
|
_serializer = new XMLSerializer();
|
|
4961
|
+
_layerHelper = inject(LayerHelperService);
|
|
4954
4962
|
search(searchValue, geometry, maxCount = 5) {
|
|
4955
4963
|
const wftSearches = [];
|
|
4956
4964
|
this._searcheableLayers.flatMap(layer => {
|
|
@@ -4966,6 +4974,7 @@ class WFSSearchService {
|
|
|
4966
4974
|
filter
|
|
4967
4975
|
});
|
|
4968
4976
|
const fieldsToExclude = new Set(layer.fieldsToExcludeFromInfoFromInfo.split(',').map(f => f.toLowerCase().trim()));
|
|
4977
|
+
const headers = this._layerHelper.getParamsObject(layer);
|
|
4969
4978
|
wftSearches.push(this._http.post(layer.baseUrl.replace('wms', 'wfs'), this._serializer.serializeToString(searchFeature), { headers: { 'Content-Type': 'text/xml' }, responseType: 'json' }).pipe(map$1(r => {
|
|
4970
4979
|
const result = {
|
|
4971
4980
|
title: layer.name,
|
|
@@ -5084,7 +5093,8 @@ class MapSearchComponent {
|
|
|
5084
5093
|
.filter(layer => layer.wfsSearchable && visibleLayerIds.includes(layer.id))
|
|
5085
5094
|
.map(layer => ({ featureType: layer.layers, baseUrl: layer.baseUrl, name: layer.name,
|
|
5086
5095
|
headerField: layer.headerField, searchField: layer.searchField, geometryField: layer.geometryField,
|
|
5087
|
-
fieldsToExcludeFromInfoFromInfo: layer.fieldsToExcludeFromInfoFromInfo
|
|
5096
|
+
fieldsToExcludeFromInfoFromInfo: layer.fieldsToExcludeFromInfoFromInfo,
|
|
5097
|
+
authKeyName: layer.authKeyName, wmsParameters: layer.wmsParameters, token: layer.token }));
|
|
5088
5098
|
this._wfsSearch.setSearcheableLayers(searcheableLayers);
|
|
5089
5099
|
}
|
|
5090
5100
|
}
|
|
@@ -5344,7 +5354,8 @@ class LegendsListComponent {
|
|
|
5344
5354
|
}
|
|
5345
5355
|
// Fallback to Geoserver legend file
|
|
5346
5356
|
const fallbackUrl = `${layer.baseUrl}?service=WMS&REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&STRICT=false&layer=${layer.layers}`;
|
|
5347
|
-
|
|
5357
|
+
const params = this._layerHelperService.getParamsObject(layer);
|
|
5358
|
+
return this._http.get(fallbackUrl, { responseType: 'blob', params }).pipe(map(blob => {
|
|
5348
5359
|
// Blob returned as an image, so layer has a legend in Geoserver
|
|
5349
5360
|
const isImage = blob.type.startsWith('image/');
|
|
5350
5361
|
return {
|
|
@@ -5767,10 +5778,11 @@ class GisKomponentComponent {
|
|
|
5767
5778
|
const capabilities$ = layerGroupLayers
|
|
5768
5779
|
.map(layer => {
|
|
5769
5780
|
let getCapabilitiesUrl = `${layer.baseUrl}?SERVICE=WMTS&REQUEST=GetCapabilities`;
|
|
5781
|
+
const params = this._layerHelper.getParamsObject(layer);
|
|
5770
5782
|
layer.wmsParameters.forEach((keyValue) => {
|
|
5771
5783
|
getCapabilitiesUrl = `${getCapabilitiesUrl}&${keyValue.key}=${keyValue.value}`;
|
|
5772
5784
|
});
|
|
5773
|
-
return this._http.get(getCapabilitiesUrl, { responseType: 'text' })
|
|
5785
|
+
return this._http.get(getCapabilitiesUrl, { responseType: 'text', params })
|
|
5774
5786
|
.pipe(map(result => {
|
|
5775
5787
|
let item = new CapabilitiesItem();
|
|
5776
5788
|
item.url = layer.baseUrl;
|
|
@@ -5881,18 +5893,41 @@ class GisKomponentComponent {
|
|
|
5881
5893
|
}
|
|
5882
5894
|
// Added custom north-arrow with a compass one
|
|
5883
5895
|
_addRotateControl() {
|
|
5884
|
-
const
|
|
5896
|
+
const button = document.createElement('button');
|
|
5897
|
+
button.className = 'ol-rotate-reset';
|
|
5898
|
+
button.setAttribute('type', 'button');
|
|
5899
|
+
button.setAttribute('aria-label', 'Nulstil mod Nord');
|
|
5900
|
+
const hoverText = document.createElement('span');
|
|
5901
|
+
hoverText.className = 'hover-text';
|
|
5902
|
+
hoverText.textContent = 'Nulstil mod Nord';
|
|
5903
|
+
const compassSpan = document.createElement('span');
|
|
5904
|
+
compassSpan.className = 'ol-compass';
|
|
5885
5905
|
const img = document.createElement('img');
|
|
5886
5906
|
img.src = IconsConstants.tooltipObjBase64;
|
|
5887
5907
|
img.width = 22;
|
|
5888
5908
|
img.height = 22;
|
|
5889
|
-
|
|
5890
|
-
|
|
5891
|
-
|
|
5892
|
-
|
|
5893
|
-
|
|
5909
|
+
img.alt = '';
|
|
5910
|
+
img.setAttribute('aria-hidden', 'true');
|
|
5911
|
+
compassSpan.appendChild(img);
|
|
5912
|
+
button.appendChild(hoverText);
|
|
5913
|
+
button.appendChild(compassSpan);
|
|
5914
|
+
const controlDiv = document.createElement('div');
|
|
5915
|
+
controlDiv.className = 'ol-rotate ol-unselectable ol-control';
|
|
5916
|
+
controlDiv.appendChild(button);
|
|
5917
|
+
const customRotateControl = new Control({
|
|
5918
|
+
element: controlDiv,
|
|
5894
5919
|
});
|
|
5895
|
-
|
|
5920
|
+
button.addEventListener('click', (e) => {
|
|
5921
|
+
e.preventDefault();
|
|
5922
|
+
this.map.getView().setRotation(0);
|
|
5923
|
+
});
|
|
5924
|
+
const updateCompassRotation = () => {
|
|
5925
|
+
const rotation = this.map.getView().getRotation();
|
|
5926
|
+
compassSpan.style.transform = `rotate(${-rotation}rad)`;
|
|
5927
|
+
};
|
|
5928
|
+
this.map.on('moveend', updateCompassRotation);
|
|
5929
|
+
updateCompassRotation();
|
|
5930
|
+
this.map.addControl(customRotateControl);
|
|
5896
5931
|
}
|
|
5897
5932
|
_applyCustomTooltips() {
|
|
5898
5933
|
const targets = [
|
|
@@ -5926,7 +5961,7 @@ class GisKomponentComponent {
|
|
|
5926
5961
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: GisKomponentComponent, isStandalone: true, selector: "gis-komponent", inputs: { identifier: "identifier", settings: "settings" }, outputs: { sessionDone: "sessionDone", featuresChanged: "featuresChanged" }, providers: [CurrentItemsService, FeatureLoaderService, DrawLayerSourceService, ZoomService, UndoRedoService, ShowInfoHoverService, HoverInfoSearchService, CenterPointService, PrintDrawLayerSourceService,
|
|
5927
5962
|
HighlightService, ShowInfoService, InfoSearchProvider, InteractionHelperService, ConflictAnalysisSearchProvider,
|
|
5928
5963
|
MergeFeaturesService, OverlapService, CowiService, SearchProviderService, AddressSearchService, CadastreSearchService, ShowDocumentInfoService, DocumentSearchService,
|
|
5929
|
-
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService, GeometrySearchService, GeometrySplitService, PolygonCleanupService], viewQueries: [{ propertyName: "toolbarRef", first: true, predicate: ["toolbarRef"], descendants: true, static: true }, { propertyName: "legendsListRef", first: true, predicate: ["legendsListRef"], descendants: true, static: true }, { propertyName: "layerSelectorRef", first: true, predicate: ["layerSelectorRef"], descendants: true, static: true }, { propertyName: "activeObjectsRef", first: true, predicate: ["activeObjectsRef"], descendants: true, static: true }, { propertyName: "documentInfoRef", first: true, predicate: ["documentInfoRef"], descendants: true, static: true }], ngImport: i0, template: "<div #layerSelectorRef class=\"layer-selector-container\">\n @if (selectedProfile && selectedProfile.showLayerSelector) {\n <lib-layer-selector [map]=\"map\" [profile]=\"selectedProfile\" [currentZoomLevel]=\"currentZoomLevel\"></lib-layer-selector>\n }\n</div>\n\n<div #legendsListRef class=\"legends-list-container\">\n @if (selectedProfile && selectedProfile.showLegends) {\n <lib-legends-list [map]=\"map\" [profile]=\"selectedProfile\"></lib-legends-list>\n }\n</div>\n\n<div #documentInfoRef class=\"documents-features-wrapper\">\n <document-search-info></document-search-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if (settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [class.toolbox-hidden]=\"!profileShowToolbox\"\n [collapsed]=\"toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile?.showAreaMeasurement || false\" [showMeasureDistance]=\"selectedProfile?.showDistanceMeasurement || false\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: ["::ng-deep .global-wrapper-container{background:#4c4d51}::ng-deep .dmp-dialog-content mat-dialog-content{background:#4c4d51!important}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input{color:#fff!important;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input .search-icon{color:#fff!important}::ng-deep button.ol-zoom-in,::ng-deep button.ol-zoom-out{background:#4c4d51!important;color:#fff;border-radius:5px!important}::ng-deep button.ol-zoom-in:hover,::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{border:none}::ng-deep button.ol-rotate-reset:hover{outline:none}::ng-deep [data-tooltip]{position:relative}::ng-deep [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:12px;pointer-events:none;opacity:0;transition:opacity .2s}::ng-deep [data-tooltip]:hover:after{opacity:1}::ng-deep mat-expansion-panel .mat-expansion-panel-header{height:40px!important;min-height:40px!important;background:#ffffff0d;transition:background .2s ease;border-top-left-radius:4px!important;border-top-right-radius:4px!important;padding:0 16px;margin-bottom:2px}::ng-deep mat-expansion-panel .mat-expansion-panel-header:hover{background:#ffffff14!important}::ng-deep mat-expansion-panel .mat-expansion-panel-header .panel-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;margin-right:10px;color:#fff;font-weight:600;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px}::ng-deep mat-expansion-panel .mat-expansion-panel-header-title{color:#fff}::ng-deep .custom-image-icon,.compact-icon{background:none}::ng-deep .custom-image-icon img,.compact-icon img{width:100%;height:100%;object-fit:contain;transition:filter .2s ease}::ng-deep .custom-image-icon.active,.compact-icon.active{background:#f7b528!important;border-color:transparent;box-shadow:0 4px 12px #0ea5e966}::ng-deep .custom-image-icon.active img,.compact-icon.active img{filter:brightness(0) invert(1)}::ng-deep .custom-image-icon.active:hover,.compact-icon.active:hover{box-shadow:0 6px 20px #0ea5e980}::ng-deep .custom-image-icon:hover:not(.active),.compact-icon:hover:not(.active){background:#ffffff1a!important;border-color:none;box-shadow:none}::ng-deep .custom-image-icon:hover:not(.active) img,.compact-icon:hover:not(.active) img{filter:brightness(0) invert(.8)}::ng-deep .layer-selector-body .search-section mat-form-field input{color:#fff!important}::ng-deep .search-field .mat-mdc-input-element{color:#fff!important}::ng-deep .mat-mdc-text-field-wrapper{background:#878787!important}::ng-deep .mat-mdc-select-panel{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .active-objects-wrapper.collapsed,::ng-deep .layer-selector-body-wrapper.collapsed,::ng-deep .legends-list-body-wrapper.collapsed,::ng-deep .search-container.collapsed,::ng-deep .toolbox-wrapper.collapsed{width:90px;max-width:90px;min-width:90px}::ng-deep .drag-handle-active-objects,::ng-deep .drag-handle-legends,::ng-deep .drag-handle,::ng-deep .drag-handle-selector,::ng-deep .drag-handle-toolbox{display:flex;align-items:center;justify-content:space-between;padding:0 2px;cursor:move;color:#fff;border-radius:5px;width:100%;box-sizing:border-box}:host{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#dee2e6!important;border-width:1px!important}:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#d1d5db!important;border-width:1px!important;box-shadow:0 0 0 3px #d1d5db40!important}::ng-deep .mat-mdc-form-field-flex{height:40px!important;display:flex!important;align-items:center!important}::ng-deep .mat-expansion-indicator svg{fill:#fff!important}::ng-deep .ol-control{background-color:transparent!important}::ng-deep .search-result-option{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .mat-mdc-autocomplete-panel .mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-autocomplete-panel .mdc-list-item__end{display:none!important}::ng-deep .mat-mdc-tooltip{--mdc-plain-tooltip-container-color: #050505 !important;--mdc-plain-tooltip-supporting-text-color: white !important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip .mdc-tooltip__surface{background-color:#050505!important;color:#fff!important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip-surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mdc-tooltip .mdc-tooltip__surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}:host{display:block;width:100%;height:100%;overflow:hidden}::ng-deep .lib-error-snackbar{background-color:#d32f2f;color:#fff;font-weight:500}::ng-deep .map-container{position:relative;height:81vh;width:100%;overflow:hidden}::ng-deep .toolbox-hidden{visibility:hidden!important}::ng-deep #map{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}::ng-deep .ol-viewport{overflow:hidden!important}::ng-deep ::ng-deep .ol-logo{position:absolute;left:auto;right:3em;top:6.25em}::ng-deep ::ng-deep .ol-copyright{background-color:transparent;position:absolute;bottom:10px;width:250px;display:flex;justify-content:end;right:5px}::ng-deep ::ng-deep .toolbar{position:absolute;top:10px;left:10px;background:#fff;padding:4px;border-radius:4px;display:flex;flex-direction:column;transition:width .3s;z-index:1000;overflow:hidden}::ng-deep ::ng-deep .toolbar.collapsed{width:40px;overflow:hidden}::ng-deep .object-panel{position:absolute;bottom:10px;left:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .object-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep .conflict-panel{position:absolute;bottom:10px;right:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .conflict-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep ::ng-deep .ol-zoom.ol-unselectable.ol-control{display:flex;flex-direction:column;position:absolute}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{position:absolute;bottom:10px;left:6px;top:auto;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;text-align:center;display:flex;align-items:center;justify-content:flex-start;z-index:1000}::ng-deep .documents-features-wrapper{position:absolute!important;left:45px;top:9px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatListModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: LayerSelectorComponent, selector: "lib-layer-selector", inputs: ["map", "profile", "currentZoomLevel"] }, { kind: "component", type: MapSearchComponent, selector: "lib-map-search", inputs: ["profile"] }, { kind: "component", type: ToolboxComponent, selector: "map-toolbox", inputs: ["map", "showMeasureDistance", "showMeasureArea", "collapsed", "settings", "profile", "WKTInputEnabled", "deleteEnabled"] }, { kind: "component", type: ActiveObjectsComponent, selector: "activeObjects", inputs: ["settings", "profile"], outputs: ["sessionDone"] }, { kind: "component", type: LegendsListComponent, selector: "lib-legends-list", inputs: ["map", "profile"] }, { kind: "component", type: DocumentSearchInfoComponent, selector: "document-search-info" }] });
|
|
5964
|
+
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService, GeometrySearchService, GeometrySplitService, PolygonCleanupService], viewQueries: [{ propertyName: "toolbarRef", first: true, predicate: ["toolbarRef"], descendants: true, static: true }, { propertyName: "legendsListRef", first: true, predicate: ["legendsListRef"], descendants: true, static: true }, { propertyName: "layerSelectorRef", first: true, predicate: ["layerSelectorRef"], descendants: true, static: true }, { propertyName: "activeObjectsRef", first: true, predicate: ["activeObjectsRef"], descendants: true, static: true }, { propertyName: "documentInfoRef", first: true, predicate: ["documentInfoRef"], descendants: true, static: true }], ngImport: i0, template: "<div #layerSelectorRef class=\"layer-selector-container\">\n @if (selectedProfile && selectedProfile.showLayerSelector) {\n <lib-layer-selector [map]=\"map\" [profile]=\"selectedProfile\" [currentZoomLevel]=\"currentZoomLevel\"></lib-layer-selector>\n }\n</div>\n\n<div #legendsListRef class=\"legends-list-container\">\n @if (selectedProfile && selectedProfile.showLegends) {\n <lib-legends-list [map]=\"map\" [profile]=\"selectedProfile\"></lib-legends-list>\n }\n</div>\n\n<div #documentInfoRef class=\"documents-features-wrapper\">\n <document-search-info></document-search-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if (settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [class.toolbox-hidden]=\"!profileShowToolbox\"\n [collapsed]=\"toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile?.showAreaMeasurement || false\" [showMeasureDistance]=\"selectedProfile?.showDistanceMeasurement || false\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: ["::ng-deep .global-wrapper-container{background:#4c4d51}::ng-deep .dmp-dialog-content mat-dialog-content{background:#4c4d51!important}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input{color:#fff!important;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input .search-icon{color:#fff!important}::ng-deep .ol-rotate.ol-control{position:absolute;top:10px;right:10px;background:transparent}@media (max-width: 768px){::ng-deep .ol-rotate.ol-control{top:5px;right:5px}}::ng-deep .ol-rotate-reset{position:relative;background:#4c4d51;color:#fff;border-radius:5px;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:0;padding:0}::ng-deep .ol-rotate-reset .hover-text{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;font-weight:500;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:9999}::ng-deep .ol-rotate-reset:hover .hover-text{opacity:1;visibility:visible}::ng-deep .ol-rotate-reset .ol-compass{display:inline-block;transition:transform .3s ease;line-height:0}::ng-deep .ol-rotate.ol-control{background:transparent!important;border-radius:0!important;padding:0!important;margin:0!important}::ng-deep .ol-rotate.ol-control button{margin:0}::ng-deep button.ol-zoom-in,::ng-deep button.ol-zoom-out{background:#4c4d51!important;color:#fff;border-radius:5px!important}::ng-deep button.ol-zoom-in:hover,::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{border:none}::ng-deep button.ol-rotate-reset:hover{outline:none}::ng-deep [data-tooltip]{position:relative}::ng-deep [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:12px;pointer-events:none;opacity:0;transition:opacity .2s}::ng-deep [data-tooltip]:hover:after{opacity:1}::ng-deep mat-expansion-panel .mat-expansion-panel-header{height:40px!important;min-height:40px!important;background:#ffffff0d;transition:background .2s ease;border-top-left-radius:4px!important;border-top-right-radius:4px!important;padding:0 16px;margin-bottom:2px}::ng-deep mat-expansion-panel .mat-expansion-panel-header:hover{background:#ffffff14!important}::ng-deep mat-expansion-panel .mat-expansion-panel-header .panel-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;margin-right:10px;color:#fff;font-weight:600;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px}::ng-deep mat-expansion-panel .mat-expansion-panel-header-title{color:#fff}::ng-deep .custom-image-icon,.compact-icon{background:none}::ng-deep .custom-image-icon img,.compact-icon img{width:100%;height:100%;object-fit:contain;transition:filter .2s ease}::ng-deep .custom-image-icon.active,.compact-icon.active{background:#f7b528!important;border-color:transparent;box-shadow:0 4px 12px #0ea5e966}::ng-deep .custom-image-icon.active img,.compact-icon.active img{filter:brightness(0) invert(1)}::ng-deep .custom-image-icon.active:hover,.compact-icon.active:hover{box-shadow:0 6px 20px #0ea5e980}::ng-deep .custom-image-icon:hover:not(.active),.compact-icon:hover:not(.active){background:#ffffff1a!important;border-color:none;box-shadow:none}::ng-deep .custom-image-icon:hover:not(.active) img,.compact-icon:hover:not(.active) img{filter:brightness(0) invert(.8)}::ng-deep .layer-selector-body .search-section mat-form-field input{color:#fff!important}::ng-deep .search-field .mat-mdc-input-element{color:#fff!important}::ng-deep .mat-mdc-text-field-wrapper{background:#878787!important}::ng-deep .mat-mdc-select-panel{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .active-objects-wrapper.collapsed,::ng-deep .layer-selector-body-wrapper.collapsed,::ng-deep .legends-list-body-wrapper.collapsed,::ng-deep .search-container.collapsed,::ng-deep .toolbox-wrapper.collapsed{width:90px;max-width:90px;min-width:90px}::ng-deep .drag-handle-active-objects,::ng-deep .drag-handle-legends,::ng-deep .drag-handle,::ng-deep .drag-handle-selector,::ng-deep .drag-handle-toolbox{display:flex;align-items:center;justify-content:space-between;padding:0 2px;cursor:move;color:#fff;border-radius:5px;width:100%;box-sizing:border-box}:host{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#dee2e6!important;border-width:1px!important}:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#d1d5db!important;border-width:1px!important;box-shadow:0 0 0 3px #d1d5db40!important}::ng-deep .mat-mdc-form-field-flex{height:40px!important;display:flex!important;align-items:center!important}::ng-deep .mat-expansion-indicator svg{fill:#fff!important}::ng-deep .ol-control{background-color:transparent!important}::ng-deep .search-result-option{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .mat-mdc-autocomplete-panel .mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-autocomplete-panel .mdc-list-item__end{display:none!important}::ng-deep .mat-mdc-tooltip{--mdc-plain-tooltip-container-color: #050505 !important;--mdc-plain-tooltip-supporting-text-color: white !important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip .mdc-tooltip__surface{background-color:#050505!important;color:#fff!important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip-surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mdc-tooltip .mdc-tooltip__surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}:host{display:block;width:100%;height:100%;overflow:hidden}::ng-deep .lib-error-snackbar{background-color:#d32f2f;color:#fff;font-weight:500}::ng-deep .map-container{position:relative;height:81vh;width:100%;overflow:hidden}::ng-deep .toolbox-hidden{visibility:hidden!important}::ng-deep #map{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}::ng-deep .ol-viewport{overflow:hidden!important}::ng-deep ::ng-deep .ol-logo{position:absolute;left:auto;right:3em;top:6.25em}::ng-deep ::ng-deep .ol-copyright{background-color:transparent;position:absolute;bottom:10px;width:250px;display:flex;justify-content:end;right:5px}::ng-deep ::ng-deep .toolbar{position:absolute;top:10px;left:10px;background:#fff;padding:4px;border-radius:4px;display:flex;flex-direction:column;transition:width .3s;z-index:1000;overflow:hidden}::ng-deep ::ng-deep .toolbar.collapsed{width:40px;overflow:hidden}::ng-deep .object-panel{position:absolute;bottom:10px;left:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .object-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep .conflict-panel{position:absolute;bottom:10px;right:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .conflict-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep ::ng-deep .ol-zoom.ol-unselectable.ol-control{display:flex;flex-direction:column;position:absolute}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{position:absolute;bottom:10px;left:6px;top:auto;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;text-align:center;display:flex;align-items:center;justify-content:flex-start;z-index:1000}::ng-deep .documents-features-wrapper{position:absolute!important;left:45px;top:9px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatListModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: LayerSelectorComponent, selector: "lib-layer-selector", inputs: ["map", "profile", "currentZoomLevel"] }, { kind: "component", type: MapSearchComponent, selector: "lib-map-search", inputs: ["profile"] }, { kind: "component", type: ToolboxComponent, selector: "map-toolbox", inputs: ["map", "showMeasureDistance", "showMeasureArea", "collapsed", "settings", "profile", "WKTInputEnabled", "deleteEnabled"] }, { kind: "component", type: ActiveObjectsComponent, selector: "activeObjects", inputs: ["settings", "profile"], outputs: ["sessionDone"] }, { kind: "component", type: LegendsListComponent, selector: "lib-legends-list", inputs: ["map", "profile"] }, { kind: "component", type: DocumentSearchInfoComponent, selector: "document-search-info" }] });
|
|
5930
5965
|
}
|
|
5931
5966
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GisKomponentComponent, decorators: [{
|
|
5932
5967
|
type: Component,
|
|
@@ -5934,7 +5969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
5934
5969
|
LegendsListComponent, DocumentSearchInfoComponent], providers: [CurrentItemsService, FeatureLoaderService, DrawLayerSourceService, ZoomService, UndoRedoService, ShowInfoHoverService, HoverInfoSearchService, CenterPointService, PrintDrawLayerSourceService,
|
|
5935
5970
|
HighlightService, ShowInfoService, InfoSearchProvider, InteractionHelperService, ConflictAnalysisSearchProvider,
|
|
5936
5971
|
MergeFeaturesService, OverlapService, CowiService, SearchProviderService, AddressSearchService, CadastreSearchService, ShowDocumentInfoService, DocumentSearchService,
|
|
5937
|
-
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService, GeometrySearchService, GeometrySplitService, PolygonCleanupService], template: "<div #layerSelectorRef class=\"layer-selector-container\">\n @if (selectedProfile && selectedProfile.showLayerSelector) {\n <lib-layer-selector [map]=\"map\" [profile]=\"selectedProfile\" [currentZoomLevel]=\"currentZoomLevel\"></lib-layer-selector>\n }\n</div>\n\n<div #legendsListRef class=\"legends-list-container\">\n @if (selectedProfile && selectedProfile.showLegends) {\n <lib-legends-list [map]=\"map\" [profile]=\"selectedProfile\"></lib-legends-list>\n }\n</div>\n\n<div #documentInfoRef class=\"documents-features-wrapper\">\n <document-search-info></document-search-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if (settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [class.toolbox-hidden]=\"!profileShowToolbox\"\n [collapsed]=\"toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile?.showAreaMeasurement || false\" [showMeasureDistance]=\"selectedProfile?.showDistanceMeasurement || false\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: ["::ng-deep .global-wrapper-container{background:#4c4d51}::ng-deep .dmp-dialog-content mat-dialog-content{background:#4c4d51!important}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input{color:#fff!important;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input .search-icon{color:#fff!important}::ng-deep button.ol-zoom-in,::ng-deep button.ol-zoom-out{background:#4c4d51!important;color:#fff;border-radius:5px!important}::ng-deep button.ol-zoom-in:hover,::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{border:none}::ng-deep button.ol-rotate-reset:hover{outline:none}::ng-deep [data-tooltip]{position:relative}::ng-deep [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:12px;pointer-events:none;opacity:0;transition:opacity .2s}::ng-deep [data-tooltip]:hover:after{opacity:1}::ng-deep mat-expansion-panel .mat-expansion-panel-header{height:40px!important;min-height:40px!important;background:#ffffff0d;transition:background .2s ease;border-top-left-radius:4px!important;border-top-right-radius:4px!important;padding:0 16px;margin-bottom:2px}::ng-deep mat-expansion-panel .mat-expansion-panel-header:hover{background:#ffffff14!important}::ng-deep mat-expansion-panel .mat-expansion-panel-header .panel-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;margin-right:10px;color:#fff;font-weight:600;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px}::ng-deep mat-expansion-panel .mat-expansion-panel-header-title{color:#fff}::ng-deep .custom-image-icon,.compact-icon{background:none}::ng-deep .custom-image-icon img,.compact-icon img{width:100%;height:100%;object-fit:contain;transition:filter .2s ease}::ng-deep .custom-image-icon.active,.compact-icon.active{background:#f7b528!important;border-color:transparent;box-shadow:0 4px 12px #0ea5e966}::ng-deep .custom-image-icon.active img,.compact-icon.active img{filter:brightness(0) invert(1)}::ng-deep .custom-image-icon.active:hover,.compact-icon.active:hover{box-shadow:0 6px 20px #0ea5e980}::ng-deep .custom-image-icon:hover:not(.active),.compact-icon:hover:not(.active){background:#ffffff1a!important;border-color:none;box-shadow:none}::ng-deep .custom-image-icon:hover:not(.active) img,.compact-icon:hover:not(.active) img{filter:brightness(0) invert(.8)}::ng-deep .layer-selector-body .search-section mat-form-field input{color:#fff!important}::ng-deep .search-field .mat-mdc-input-element{color:#fff!important}::ng-deep .mat-mdc-text-field-wrapper{background:#878787!important}::ng-deep .mat-mdc-select-panel{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .active-objects-wrapper.collapsed,::ng-deep .layer-selector-body-wrapper.collapsed,::ng-deep .legends-list-body-wrapper.collapsed,::ng-deep .search-container.collapsed,::ng-deep .toolbox-wrapper.collapsed{width:90px;max-width:90px;min-width:90px}::ng-deep .drag-handle-active-objects,::ng-deep .drag-handle-legends,::ng-deep .drag-handle,::ng-deep .drag-handle-selector,::ng-deep .drag-handle-toolbox{display:flex;align-items:center;justify-content:space-between;padding:0 2px;cursor:move;color:#fff;border-radius:5px;width:100%;box-sizing:border-box}:host{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#dee2e6!important;border-width:1px!important}:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#d1d5db!important;border-width:1px!important;box-shadow:0 0 0 3px #d1d5db40!important}::ng-deep .mat-mdc-form-field-flex{height:40px!important;display:flex!important;align-items:center!important}::ng-deep .mat-expansion-indicator svg{fill:#fff!important}::ng-deep .ol-control{background-color:transparent!important}::ng-deep .search-result-option{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .mat-mdc-autocomplete-panel .mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-autocomplete-panel .mdc-list-item__end{display:none!important}::ng-deep .mat-mdc-tooltip{--mdc-plain-tooltip-container-color: #050505 !important;--mdc-plain-tooltip-supporting-text-color: white !important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip .mdc-tooltip__surface{background-color:#050505!important;color:#fff!important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip-surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mdc-tooltip .mdc-tooltip__surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}:host{display:block;width:100%;height:100%;overflow:hidden}::ng-deep .lib-error-snackbar{background-color:#d32f2f;color:#fff;font-weight:500}::ng-deep .map-container{position:relative;height:81vh;width:100%;overflow:hidden}::ng-deep .toolbox-hidden{visibility:hidden!important}::ng-deep #map{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}::ng-deep .ol-viewport{overflow:hidden!important}::ng-deep ::ng-deep .ol-logo{position:absolute;left:auto;right:3em;top:6.25em}::ng-deep ::ng-deep .ol-copyright{background-color:transparent;position:absolute;bottom:10px;width:250px;display:flex;justify-content:end;right:5px}::ng-deep ::ng-deep .toolbar{position:absolute;top:10px;left:10px;background:#fff;padding:4px;border-radius:4px;display:flex;flex-direction:column;transition:width .3s;z-index:1000;overflow:hidden}::ng-deep ::ng-deep .toolbar.collapsed{width:40px;overflow:hidden}::ng-deep .object-panel{position:absolute;bottom:10px;left:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .object-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep .conflict-panel{position:absolute;bottom:10px;right:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .conflict-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep ::ng-deep .ol-zoom.ol-unselectable.ol-control{display:flex;flex-direction:column;position:absolute}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{position:absolute;bottom:10px;left:6px;top:auto;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;text-align:center;display:flex;align-items:center;justify-content:flex-start;z-index:1000}::ng-deep .documents-features-wrapper{position:absolute!important;left:45px;top:9px}\n"] }]
|
|
5972
|
+
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService, GeometrySearchService, GeometrySplitService, PolygonCleanupService], template: "<div #layerSelectorRef class=\"layer-selector-container\">\n @if (selectedProfile && selectedProfile.showLayerSelector) {\n <lib-layer-selector [map]=\"map\" [profile]=\"selectedProfile\" [currentZoomLevel]=\"currentZoomLevel\"></lib-layer-selector>\n }\n</div>\n\n<div #legendsListRef class=\"legends-list-container\">\n @if (selectedProfile && selectedProfile.showLegends) {\n <lib-legends-list [map]=\"map\" [profile]=\"selectedProfile\"></lib-legends-list>\n }\n</div>\n\n<div #documentInfoRef class=\"documents-features-wrapper\">\n <document-search-info></document-search-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if (settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [class.toolbox-hidden]=\"!profileShowToolbox\"\n [collapsed]=\"toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile?.showAreaMeasurement || false\" [showMeasureDistance]=\"selectedProfile?.showDistanceMeasurement || false\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: ["::ng-deep .global-wrapper-container{background:#4c4d51}::ng-deep .dmp-dialog-content mat-dialog-content{background:#4c4d51!important}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input{color:#fff!important;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .dmp-dialog-content mat-dialog-content .search-section mat-form-field input .search-icon{color:#fff!important}::ng-deep .ol-rotate.ol-control{position:absolute;top:10px;right:10px;background:transparent}@media (max-width: 768px){::ng-deep .ol-rotate.ol-control{top:5px;right:5px}}::ng-deep .ol-rotate-reset{position:relative;background:#4c4d51;color:#fff;border-radius:5px;border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:0;padding:0}::ng-deep .ol-rotate-reset .hover-text{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;font-weight:500;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:9999}::ng-deep .ol-rotate-reset:hover .hover-text{opacity:1;visibility:visible}::ng-deep .ol-rotate-reset .ol-compass{display:inline-block;transition:transform .3s ease;line-height:0}::ng-deep .ol-rotate.ol-control{background:transparent!important;border-radius:0!important;padding:0!important;margin:0!important}::ng-deep .ol-rotate.ol-control button{margin:0}::ng-deep button.ol-zoom-in,::ng-deep button.ol-zoom-out{background:#4c4d51!important;color:#fff;border-radius:5px!important}::ng-deep button.ol-zoom-in:hover,::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{border:none}::ng-deep button.ol-rotate-reset:hover{outline:none}::ng-deep [data-tooltip]{position:relative}::ng-deep [data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#4c4d51;color:#fff;padding:8px;border-radius:5px;white-space:nowrap;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:12px;pointer-events:none;opacity:0;transition:opacity .2s}::ng-deep [data-tooltip]:hover:after{opacity:1}::ng-deep mat-expansion-panel .mat-expansion-panel-header{height:40px!important;min-height:40px!important;background:#ffffff0d;transition:background .2s ease;border-top-left-radius:4px!important;border-top-right-radius:4px!important;padding:0 16px;margin-bottom:2px}::ng-deep mat-expansion-panel .mat-expansion-panel-header:hover{background:#ffffff14!important}::ng-deep mat-expansion-panel .mat-expansion-panel-header .panel-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px;margin-right:10px;color:#fff;font-weight:600;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px}::ng-deep mat-expansion-panel .mat-expansion-panel-header-title{color:#fff}::ng-deep .custom-image-icon,.compact-icon{background:none}::ng-deep .custom-image-icon img,.compact-icon img{width:100%;height:100%;object-fit:contain;transition:filter .2s ease}::ng-deep .custom-image-icon.active,.compact-icon.active{background:#f7b528!important;border-color:transparent;box-shadow:0 4px 12px #0ea5e966}::ng-deep .custom-image-icon.active img,.compact-icon.active img{filter:brightness(0) invert(1)}::ng-deep .custom-image-icon.active:hover,.compact-icon.active:hover{box-shadow:0 6px 20px #0ea5e980}::ng-deep .custom-image-icon:hover:not(.active),.compact-icon:hover:not(.active){background:#ffffff1a!important;border-color:none;box-shadow:none}::ng-deep .custom-image-icon:hover:not(.active) img,.compact-icon:hover:not(.active) img{filter:brightness(0) invert(.8)}::ng-deep .layer-selector-body .search-section mat-form-field input{color:#fff!important}::ng-deep .search-field .mat-mdc-input-element{color:#fff!important}::ng-deep .mat-mdc-text-field-wrapper{background:#878787!important}::ng-deep .mat-mdc-select-panel{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .active-objects-wrapper.collapsed,::ng-deep .layer-selector-body-wrapper.collapsed,::ng-deep .legends-list-body-wrapper.collapsed,::ng-deep .search-container.collapsed,::ng-deep .toolbox-wrapper.collapsed{width:90px;max-width:90px;min-width:90px}::ng-deep .drag-handle-active-objects,::ng-deep .drag-handle-legends,::ng-deep .drag-handle,::ng-deep .drag-handle-selector,::ng-deep .drag-handle-toolbox{display:flex;align-items:center;justify-content:space-between;padding:0 2px;cursor:move;color:#fff;border-radius:5px;width:100%;box-sizing:border-box}:host{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#dee2e6!important;border-width:1px!important}:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__leading,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__notch,:host.mat-focused ::ng-deep .mdc-notched-outline .mdc-notched-outline__trailing{border-color:#d1d5db!important;border-width:1px!important;box-shadow:0 0 0 3px #d1d5db40!important}::ng-deep .mat-mdc-form-field-flex{height:40px!important;display:flex!important;align-items:center!important}::ng-deep .mat-expansion-indicator svg{fill:#fff!important}::ng-deep .ol-control{background-color:transparent!important}::ng-deep .search-result-option{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}::ng-deep .mat-mdc-autocomplete-panel .mat-pseudo-checkbox{display:none!important}::ng-deep .mat-mdc-autocomplete-panel .mdc-list-item__end{display:none!important}::ng-deep .mat-mdc-tooltip{--mdc-plain-tooltip-container-color: #050505 !important;--mdc-plain-tooltip-supporting-text-color: white !important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip .mdc-tooltip__surface{background-color:#050505!important;color:#fff!important;border-radius:6px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mat-mdc-tooltip-surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}::ng-deep .mdc-tooltip .mdc-tooltip__surface{font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-weight:500}:host{display:block;width:100%;height:100%;overflow:hidden}::ng-deep .lib-error-snackbar{background-color:#d32f2f;color:#fff;font-weight:500}::ng-deep .map-container{position:relative;height:81vh;width:100%;overflow:hidden}::ng-deep .toolbox-hidden{visibility:hidden!important}::ng-deep #map{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}::ng-deep .ol-viewport{overflow:hidden!important}::ng-deep ::ng-deep .ol-logo{position:absolute;left:auto;right:3em;top:6.25em}::ng-deep ::ng-deep .ol-copyright{background-color:transparent;position:absolute;bottom:10px;width:250px;display:flex;justify-content:end;right:5px}::ng-deep ::ng-deep .toolbar{position:absolute;top:10px;left:10px;background:#fff;padding:4px;border-radius:4px;display:flex;flex-direction:column;transition:width .3s;z-index:1000;overflow:hidden}::ng-deep ::ng-deep .toolbar.collapsed{width:40px;overflow:hidden}::ng-deep .object-panel{position:absolute;bottom:10px;left:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .object-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep .conflict-panel{position:absolute;bottom:10px;right:10px;background:#fff;padding:8px;border-radius:4px;z-index:1000;max-height:calc(85vh - 20px);overflow-y:auto}::ng-deep .conflict-panel .header{display:flex;justify-content:space-between;padding:8px;cursor:pointer;background:#f0f0f0}::ng-deep ::ng-deep .ol-zoom.ol-unselectable.ol-control{display:flex;flex-direction:column;position:absolute}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{position:absolute;bottom:10px;left:6px;top:auto;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;text-align:center;display:flex;align-items:center;justify-content:flex-start;z-index:1000}::ng-deep .documents-features-wrapper{position:absolute!important;left:45px;top:9px}\n"] }]
|
|
5938
5973
|
}], ctorParameters: () => [], propDecorators: { identifier: [{
|
|
5939
5974
|
type: Input,
|
|
5940
5975
|
args: [{ required: true }]
|