@regionerne/gis-komponent 0.0.32 → 0.0.33
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.
- package/fesm2022/regionerne-gis-komponent.mjs +63 -37
- package/fesm2022/regionerne-gis-komponent.mjs.map +1 -1
- package/lib/components/gis-komponent/gis-komponent.component.d.ts +4 -1
- package/lib/models/GisKomponentSettings.d.ts +10 -5
- package/lib/services/addressSearch.service.d.ts +0 -2
- package/lib/services/cadastreSearch.service.d.ts +0 -2
- package/lib/services/layerHelper.service.d.ts +1 -0
- package/lib/services/printHelper.service.d.ts +4 -2
- package/lib/services/searchProvider.service.d.ts +0 -2
- package/lib/services/wfsSearch.service.d.ts +0 -2
- package/package.json +1 -1
|
@@ -380,6 +380,13 @@ class LayerHelperService {
|
|
|
380
380
|
}
|
|
381
381
|
});
|
|
382
382
|
}
|
|
383
|
+
toggleAllDmpLayersOffInMap(map) {
|
|
384
|
+
map.getLayers().getArray().forEach(layergroup => {
|
|
385
|
+
// DMP layers
|
|
386
|
+
if (layergroup instanceof OLLayerGroup)
|
|
387
|
+
layergroup.setVisible(false);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
383
390
|
deleteDmpLayerFromMap(map, layerId) {
|
|
384
391
|
map.getLayers().getArray().forEach(layergroup => {
|
|
385
392
|
if (layergroup.get(this._layerDbIdKey) === layerId) {
|
|
@@ -2218,21 +2225,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2218
2225
|
}] });
|
|
2219
2226
|
|
|
2220
2227
|
class PrintHelperService {
|
|
2221
|
-
setVisibiltyOnDOMElements(baseElement, visible) {
|
|
2228
|
+
setVisibiltyOnDOMElements(baseElement, visible, printSetting) {
|
|
2222
2229
|
const elements = ['activeobjects', '.ol-zoom', 'map-toolbox', '.ol-mouse-position', '.layer-selector-body-wrapper'];
|
|
2230
|
+
if (printSetting && printSetting.printNorthArrow === false) {
|
|
2231
|
+
elements.push('.ol-rotate');
|
|
2232
|
+
}
|
|
2233
|
+
if (printSetting && printSetting.printScale != undefined && printSetting.printScale === false) {
|
|
2234
|
+
elements.push('.ol-scale-bar');
|
|
2235
|
+
}
|
|
2236
|
+
if (printSetting && printSetting.printLegends != undefined && printSetting.printLegends === false) {
|
|
2237
|
+
elements.push('lib-legends-list');
|
|
2238
|
+
}
|
|
2223
2239
|
this._setVisibiltyOnDOMElements(baseElement, elements, visible);
|
|
2224
2240
|
}
|
|
2225
|
-
|
|
2241
|
+
async getAllImgData(map, printSettings) {
|
|
2242
|
+
const promises = printSettings.map(item => this.getImgData(map, item));
|
|
2243
|
+
return Promise.all(promises);
|
|
2244
|
+
}
|
|
2245
|
+
getImgData(map, printSetting) {
|
|
2226
2246
|
const htmlElement = map.getViewport();
|
|
2227
|
-
this.setVisibiltyOnDOMElements(htmlElement, false);
|
|
2247
|
+
this.setVisibiltyOnDOMElements(htmlElement, false, printSetting);
|
|
2228
2248
|
return new Promise((resolve, reject) => {
|
|
2229
2249
|
html2canvas(htmlElement, {
|
|
2230
2250
|
useCORS: true,
|
|
2231
2251
|
}).then(originalCanvas => {
|
|
2232
|
-
if (printDimensions) {
|
|
2252
|
+
if (printSetting.printDimensions) {
|
|
2233
2253
|
const srcW = originalCanvas.width;
|
|
2234
2254
|
const srcH = originalCanvas.height;
|
|
2235
|
-
const scale = Math.min(printDimensions[0] / srcW, printDimensions[1] / srcH);
|
|
2255
|
+
const scale = Math.min(printSetting.printDimensions[0] / srcW, printSetting.printDimensions[1] / srcH);
|
|
2236
2256
|
const outW = Math.round(srcW * scale);
|
|
2237
2257
|
const outH = Math.round(srcH * scale);
|
|
2238
2258
|
// 3) Lav nyt canvas til nedskalering
|
|
@@ -2243,11 +2263,11 @@ class PrintHelperService {
|
|
|
2243
2263
|
ctx.imageSmoothingEnabled = true;
|
|
2244
2264
|
ctx.imageSmoothingQuality = 'high';
|
|
2245
2265
|
ctx.drawImage(originalCanvas, 0, 0, outW, outH);
|
|
2246
|
-
const dataUrl = scaledCanvas.toDataURL(printFormat);
|
|
2266
|
+
const dataUrl = scaledCanvas.toDataURL(printSetting.printFormat);
|
|
2247
2267
|
resolve(dataUrl);
|
|
2248
2268
|
}
|
|
2249
2269
|
else {
|
|
2250
|
-
const imgData = originalCanvas.toDataURL(printFormat);
|
|
2270
|
+
const imgData = originalCanvas.toDataURL(printSetting.printFormat);
|
|
2251
2271
|
resolve(imgData);
|
|
2252
2272
|
}
|
|
2253
2273
|
});
|
|
@@ -3797,12 +3817,6 @@ class WFSSearchService {
|
|
|
3797
3817
|
});
|
|
3798
3818
|
return wftSearches;
|
|
3799
3819
|
}
|
|
3800
|
-
onSelect(searchResult, targetSrs) {
|
|
3801
|
-
// TO DO : add logic for when an item is selected (right now, the map search component does a highlight on it)
|
|
3802
|
-
}
|
|
3803
|
-
onClear() {
|
|
3804
|
-
// TO DO : add logic for when the results list is cleared
|
|
3805
|
-
}
|
|
3806
3820
|
setSearcheableLayers(layers) {
|
|
3807
3821
|
this._searcheableLayers = layers;
|
|
3808
3822
|
}
|
|
@@ -3854,12 +3868,6 @@ class AddressSearchService {
|
|
|
3854
3868
|
const params = new HttpParams().append('search', searchValue ?? 'test').append('regionskode', regionskode);
|
|
3855
3869
|
return this._http.get(this._baseUrl, { params }).pipe(map(r => ({ total: 0, title: this.name, items: r.map(i => ({ ...i, showMetadata: false })) })));
|
|
3856
3870
|
}
|
|
3857
|
-
onSelect(searchResult, targetSrs) {
|
|
3858
|
-
// TO DO - implement logic for when an item is selected
|
|
3859
|
-
}
|
|
3860
|
-
onClear() {
|
|
3861
|
-
// TO DO - implement logic for when search is cleared
|
|
3862
|
-
}
|
|
3863
3871
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddressSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3864
3872
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AddressSearchService, providedIn: 'root' });
|
|
3865
3873
|
}
|
|
@@ -3881,12 +3889,6 @@ class CadastreSearchService {
|
|
|
3881
3889
|
const params = new HttpParams().append('search', searchValue ?? 'test').append('regionskode', regionskode);
|
|
3882
3890
|
return this._http.get(this._baseUrl, { params }).pipe(map(r => ({ total: 0, title: this.name, items: r.map(i => ({ ...i, showMetadata: false })) })));
|
|
3883
3891
|
}
|
|
3884
|
-
onSelect(searchResult, targetSrs) {
|
|
3885
|
-
// TO DO - implement logic for when an item is selected
|
|
3886
|
-
}
|
|
3887
|
-
onClear() {
|
|
3888
|
-
// TO DO - implement logic for when search is cleared
|
|
3889
|
-
}
|
|
3890
3892
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CadastreSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3891
3893
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CadastreSearchService, providedIn: 'root' });
|
|
3892
3894
|
}
|
|
@@ -4421,7 +4423,9 @@ class GisKomponentComponent {
|
|
|
4421
4423
|
identifier;
|
|
4422
4424
|
settings;
|
|
4423
4425
|
toolbarRef;
|
|
4424
|
-
|
|
4426
|
+
legendsListRef;
|
|
4427
|
+
layerSelectorRef;
|
|
4428
|
+
activeObjectsRef;
|
|
4425
4429
|
selectedFeatureInfoRef;
|
|
4426
4430
|
sessionDone = new EventEmitter();
|
|
4427
4431
|
featuresChanged = new EventEmitter();
|
|
@@ -4495,14 +4499,26 @@ class GisKomponentComponent {
|
|
|
4495
4499
|
this.profileShowToolbox = true;
|
|
4496
4500
|
this.map.addControl(toolbarControl);
|
|
4497
4501
|
}
|
|
4502
|
+
if (profile.showLegends) {
|
|
4503
|
+
const legendsListControl = new Control({
|
|
4504
|
+
element: this.legendsListRef?.nativeElement
|
|
4505
|
+
});
|
|
4506
|
+
this.map.addControl(legendsListControl);
|
|
4507
|
+
}
|
|
4508
|
+
if (profile.showLayerSelector) {
|
|
4509
|
+
const layerSelectorControl = new Control({
|
|
4510
|
+
element: this.layerSelectorRef?.nativeElement
|
|
4511
|
+
});
|
|
4512
|
+
this.map.addControl(layerSelectorControl);
|
|
4513
|
+
}
|
|
4498
4514
|
this._currentItems.gisKomponentSettings = this.settings;
|
|
4499
4515
|
this.activeObjectsReady = true;
|
|
4500
|
-
|
|
4501
|
-
|
|
4502
|
-
|
|
4503
|
-
|
|
4504
|
-
|
|
4505
|
-
|
|
4516
|
+
if (this.activeObjectsRef) {
|
|
4517
|
+
const activeObjectsControl = new Control({
|
|
4518
|
+
element: this.activeObjectsRef.nativeElement
|
|
4519
|
+
});
|
|
4520
|
+
this.map.addControl(activeObjectsControl);
|
|
4521
|
+
}
|
|
4506
4522
|
const selectedFeatureInfoRefControl = new Control({
|
|
4507
4523
|
element: this.selectedFeatureInfoRef.nativeElement
|
|
4508
4524
|
});
|
|
@@ -4532,9 +4548,10 @@ class GisKomponentComponent {
|
|
|
4532
4548
|
doneFrom: 'activeObjects',
|
|
4533
4549
|
features: formatter.writeFeaturesObject(this._drawLayerService.allCleanedFeatures)
|
|
4534
4550
|
};
|
|
4535
|
-
if (this._currentItems.gisKomponentSettings.printMapSettings && this._currentItems.gisKomponentSettings.printMapSettings.doPrintWhenSessionIsClosed) {
|
|
4536
|
-
this.
|
|
4537
|
-
|
|
4551
|
+
if (this._currentItems.gisKomponentSettings.printMapSettings && this._currentItems.gisKomponentSettings.printMapSettings.some(printSetting => printSetting.doPrintWhenSessionIsClosed)) {
|
|
4552
|
+
this._layerHelper.toggleAllDmpLayersOffInMap(this.map);
|
|
4553
|
+
this._printHelper.getAllImgData(this.map, this._currentItems.gisKomponentSettings.printMapSettings.filter(printSetting => printSetting.doPrintWhenSessionIsClosed)).then(dataUrls => {
|
|
4554
|
+
sessionDone.imgData = dataUrls;
|
|
4538
4555
|
this.sessionDone.emit(sessionDone);
|
|
4539
4556
|
});
|
|
4540
4557
|
}
|
|
@@ -4698,14 +4715,14 @@ class GisKomponentComponent {
|
|
|
4698
4715
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: GisKomponentComponent, isStandalone: true, selector: "gis-komponent", inputs: { showToolbox: "showToolbox", showActiveObjects: "showActiveObjects", showLegendList: "showLegendList", showMapSearch: "showMapSearch", identifier: "identifier", settings: "settings" }, outputs: { sessionDone: "sessionDone", featuresChanged: "featuresChanged" }, providers: [CurrentItemsService, FeatureLoaderService, DrawLayerSourceService, ZoomService, UndoRedoService, ShowInfoHoverService, HoverInfoSearchService, CenterPointService, PrintDrawLayerSourceService,
|
|
4699
4716
|
HighlightService, ShowInfoService, InfoSearchProvider, InteractionHelperService, ConflictAnalysisSearchProvider,
|
|
4700
4717
|
MergeFeaturesService, OverlapService, CowiService, SearchProviderService, AddressSearchService, CadastreSearchService,
|
|
4701
|
-
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService], viewQueries: [{ propertyName: "toolbarRef", first: true, predicate: ["toolbarRef"], descendants: true, static: true }, { propertyName: "selectedFeatureInfoRef", first: true, predicate: ["selectedFeatureInfoRef"], descendants: true, static: true }], ngImport: i0, template: "@if (selectedProfile && selectedProfile.showLayerSelector) {\n
|
|
4718
|
+
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService], 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: "selectedFeatureInfoRef", first: true, predicate: ["selectedFeatureInfoRef"], 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 #selectedFeatureInfoRef>\n <selected-feature-info></selected-feature-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && activeObjectsReady && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if(showToolbox && profileShowToolbox && settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [collapsed]=\"selectedProfile.toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile.showAreaMeasurement\" [showMeasureDistance]=\"selectedProfile.showDistanceMeasurement\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showMapSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n\n <!-- Konflikter -->\n @if (showConflicts) {\n\n <div class=\"conflict-panel\" [class.collapsed]=\"conflictsCollapsed\">\n <div class=\"header\">\n <span>Konflikter (3)</span>\n <mat-icon>{{ activeObjectsCollapsed ? 'expand_more' : 'expand_less' }}</mat-icon> -->\n </div>\n <mat-list>\n <mat-list-item>\n <span matListItemTitle>Lag #1</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #1</span>\n </mat-list-item>\n <mat-list-item>\n <span matListItemTitle>Lag #2 (svarer ikke)</span>\n </mat-list-item>\n <mat-list-item>\n <span matListItemTitle>Lag #3</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #1</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #2</span>\n </mat-list-item>\n </mat-list>\n </div>\n \n } \n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: [":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 #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:100%;text-align:center}::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 button.ol-zoom-in{background:#4c4d51;border:none;box-shadow:none;border-radius:5px 5px 0 0!important;color:#fff}::ng-deep ::ng-deep button.ol-zoom-in:hover{color:#e9e3e3;outline:none}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep button.ol-zoom-out{background:#4c4d51;border:none;box-shadow:none;color:#fff;border-radius:0 0 5px 5px!important}::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{background:#4c4d51;border:none;box-shadow:none;color:#fff;border-radius:5px}::ng-deep button.ol-rotate-reset:hover{color:#e9e3e3;outline:none}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{top:44em;left:6px;position:absolute;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;text-align:center;display:flex;align-items:center;justify-content:flex-start}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3$1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i3$1.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i3$1.MatListItemTitle, selector: "[matListItemTitle]" }, { 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: SelectedFeatureInfoComponent, selector: "selected-feature-info" }] });
|
|
4702
4719
|
}
|
|
4703
4720
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: GisKomponentComponent, decorators: [{
|
|
4704
4721
|
type: Component,
|
|
4705
4722
|
args: [{ selector: 'gis-komponent', imports: [CommonModule, MatIconModule, MatListModule, MatSelectModule, LayerSelectorComponent, MapSearchComponent, ToolboxComponent, ActiveObjectsComponent, LegendsListComponent, SelectedFeatureInfoComponent], providers: [CurrentItemsService, FeatureLoaderService, DrawLayerSourceService, ZoomService, UndoRedoService, ShowInfoHoverService, HoverInfoSearchService, CenterPointService, PrintDrawLayerSourceService,
|
|
4706
4723
|
HighlightService, ShowInfoService, InfoSearchProvider, InteractionHelperService, ConflictAnalysisSearchProvider,
|
|
4707
4724
|
MergeFeaturesService, OverlapService, CowiService, SearchProviderService, AddressSearchService, CadastreSearchService,
|
|
4708
|
-
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService], template: "@if (selectedProfile && selectedProfile.showLayerSelector) {\n
|
|
4725
|
+
DmpCatalogService, OlCapabilitiesService, DmpLayerMapperService], 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 #selectedFeatureInfoRef>\n <selected-feature-info></selected-feature-info>\n</div>\n\n<div #activeObjectsRef class=\"active-objects-container\">\n @if(showActiveObjects && activeObjectsReady && settings && selectedProfile) {\n <activeObjects [settings]=\"settings\" [profile]=\"selectedProfile\" (sessionDone)=\"sessionDoneFromActiveObject()\"></activeObjects>\n }\n</div>\n\n<div #toolbarRef class=\"map-toolbar-container\">\n @if(showToolbox && profileShowToolbox && settings) {\n <map-toolbox [map]=\"map\" \n [profile]=\"selectedProfile\"\n [settings]=\"settings\"\n [collapsed]=\"selectedProfile.toolbarCollapsed\" [WKTInputEnabled]=\"settings?.WKTInputEnabled\" [deleteEnabled]=\"settings?.deleteEnabled\" [showMeasureArea]=\"selectedProfile.showAreaMeasurement\" [showMeasureDistance]=\"selectedProfile.showDistanceMeasurement\"></map-toolbox>\n }\n</div>\n\n<div class=\"map-container\">\n <lib-map-search *ngIf=\"showMapSearch\" [profile]=\"selectedProfile\"></lib-map-search>\n\n\n <!-- Konflikter -->\n @if (showConflicts) {\n\n <div class=\"conflict-panel\" [class.collapsed]=\"conflictsCollapsed\">\n <div class=\"header\">\n <span>Konflikter (3)</span>\n <mat-icon>{{ activeObjectsCollapsed ? 'expand_more' : 'expand_less' }}</mat-icon> -->\n </div>\n <mat-list>\n <mat-list-item>\n <span matListItemTitle>Lag #1</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #1</span>\n </mat-list-item>\n <mat-list-item>\n <span matListItemTitle>Lag #2 (svarer ikke)</span>\n </mat-list-item>\n <mat-list-item>\n <span matListItemTitle>Lag #3</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #1</span>\n <span matListItemLine><mat-icon>highlight</mat-icon> Objekt #2</span>\n </mat-list-item>\n </mat-list>\n </div>\n \n } \n\n <!-- Kort -->\n <div id=\"map\" class=\"map\"></div>\n</div>\n", styles: [":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 #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:100%;text-align:center}::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 button.ol-zoom-in{background:#4c4d51;border:none;box-shadow:none;border-radius:5px 5px 0 0!important;color:#fff}::ng-deep ::ng-deep button.ol-zoom-in:hover{color:#e9e3e3;outline:none}::ng-deep ::ng-deep .ol-scale-text{display:flex}::ng-deep button.ol-zoom-out{background:#4c4d51;border:none;box-shadow:none;color:#fff;border-radius:0 0 5px 5px!important}::ng-deep button.ol-zoom-out:hover{color:#e9e3e3;outline:none}::ng-deep button.ol-rotate-reset{background:#4c4d51;border:none;box-shadow:none;color:#fff;border-radius:5px}::ng-deep button.ol-rotate-reset:hover{color:#e9e3e3;outline:none}::ng-deep .ol-scale-bar.ol-unselectable{position:absolute;bottom:3rem}::ng-deep .ol-mouse-position{top:44em;left:6px;position:absolute;background:#0000004d;color:#fffcfc;width:189px;height:30px;padding:2px;border-radius:5px;font-family:Avenir Next W01,Lato,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;text-align:center;display:flex;align-items:center;justify-content:flex-start}\n"] }]
|
|
4709
4726
|
}], ctorParameters: () => [], propDecorators: { showToolbox: [{
|
|
4710
4727
|
type: Input
|
|
4711
4728
|
}], showActiveObjects: [{
|
|
@@ -4722,6 +4739,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
4722
4739
|
}], toolbarRef: [{
|
|
4723
4740
|
type: ViewChild,
|
|
4724
4741
|
args: ['toolbarRef', { static: true }]
|
|
4742
|
+
}], legendsListRef: [{
|
|
4743
|
+
type: ViewChild,
|
|
4744
|
+
args: ['legendsListRef', { static: true }]
|
|
4745
|
+
}], layerSelectorRef: [{
|
|
4746
|
+
type: ViewChild,
|
|
4747
|
+
args: ['layerSelectorRef', { static: true }]
|
|
4748
|
+
}], activeObjectsRef: [{
|
|
4749
|
+
type: ViewChild,
|
|
4750
|
+
args: ['activeObjectsRef', { static: true }]
|
|
4725
4751
|
}], selectedFeatureInfoRef: [{
|
|
4726
4752
|
type: ViewChild,
|
|
4727
4753
|
args: ['selectedFeatureInfoRef', { static: true }]
|