Merge branch 'feature/AW6526Angular19' into develop
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good

This commit is contained in:
2026-01-20 16:22:54 +01:00
161 changed files with 7126 additions and 3407 deletions

View File

@@ -129,7 +129,7 @@
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "farmmaps-lib-app:build"
"buildTarget": "farmmaps-lib-app:build"
}
},
"test": {

9403
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "farmmaps-lib-app",
"version": "4.20.0",
"scripts": {
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
@@ -10,25 +10,25 @@
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"dependencies": {
"@angular-eslint/eslint-plugin": "^18.2.0",
"@angular/animations": "18.2.3",
"@angular/common": "18.2.3",
"@angular/compiler": "18.2.3",
"@angular/core": "18.2.3",
"@angular/forms": "18.2.3",
"@angular/platform-browser": "18.2.3",
"@angular/platform-browser-dynamic": "18.2.3",
"@angular/router": "18.2.3",
"@angular/animations": "19.2.18",
"@angular/common": "19.2.18",
"@angular/compiler": "19.2.18",
"@angular/core": "19.2.18",
"@angular/forms": "19.2.18",
"@angular/platform-browser": "19.2.18",
"@angular/platform-browser-dynamic": "19.2.18",
"@angular/router": "19.2.18",
"@farmmaps/common": "file:dist/common",
"@farmmaps/common-map": "file:dist/common-map",
"@farmmaps/common-map3d": "file:dist/common-map3d",
"@farmmaps/ng-openlayers": "file:dist/ng-openlayers",
"@microsoft/signalr": "^3.1.16",
"@ng-bootstrap/ng-bootstrap": "^17.0.1",
"@ngrx/effects": "^18.0.2",
"@ngrx/router-store": "^18.0.2",
"@ngrx/store": "^18.0.2",
"@ng-bootstrap/ng-bootstrap": "^18.0.0",
"@ngrx/effects": "19.2.1",
"@ngrx/router-store": "19.2.1",
"@ngrx/store": "19.2.1",
"@popperjs/core": "^2.11.8",
"angular-oauth2-oidc": "^17.0.2",
"assert": "^2.0.0",
@@ -39,11 +39,11 @@
"core-js": "^2.6.12",
"https-browserify": "^1.0.0",
"moment": "^2.29.4",
"ngrx-store-localstorage": "^18.0.0",
"ngx-avatars": "^1.8.0",
"ngrx-store-localstorage": "19.0.2",
"ngx-avatars": "1.9.3",
"ngx-clipboard": "^16.0.0",
"ngx-image-cropper": "^7.0.0",
"ngx-uploadx": "^6.2.0",
"ngx-uploadx": "7.0.1",
"ol": "^8.2.0",
"olcs": "^2.13.1",
"resumablejs": "^1.1.0",
@@ -54,19 +54,19 @@
"tslib": "^2.4.0",
"url": "^0.11.0",
"util": "^0.12.4",
"zone.js": "~0.14.10"
"zone.js": "~0.15.1"
},
"optionalDependencies": {
"optionalDependencies": {
"@lmdb/lmdb-linux-x64": "^3.1.0",
"@rollup/rollup-linux-x64-gnu": "^4.21.2"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^18.0.0",
"@angular-devkit/build-angular": "18.2.3",
"@angular/cli": "18.2.3",
"@angular/compiler-cli": "18.2.3",
"@angular/language-service": "18.2.3",
"@angular/localize": "18.2.3",
"devDependencies": {
"@angular-builders/custom-webpack": "19.0.1",
"@angular-devkit/build-angular": "19.2.19",
"@angular/cli": "19.2.19",
"@angular/compiler-cli": "19.2.18",
"@angular/language-service": "19.2.18",
"@angular/localize": "19.2.18",
"@types/arcgis-rest-api": "^10.4.5",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "^2.0.9",
@@ -85,9 +85,15 @@
"karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.0.0",
"ng-packagr": "^18.2.1",
"ng-packagr": "^19.2.2",
"protractor": "~7.0.0",
"ts-node": "^8.8.1",
"typescript": "~5.4.4"
"typescript": "~5.8.3"
},
"overrides": {
"some-library": {
"@angular/common": "$@angular/common",
"@angular/core": "$@angular/core"
}
}
}

View File

@@ -8,11 +8,11 @@
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "18.2.3",
"ngrx-store-localstorage": "^18.0.0",
"@ngrx/effects": "^18.0.2",
"@ngrx/router-store": "^18.0.2",
"@ngrx/store": "^18.0.2",
"@angular/core": "19.2.18",
"ngrx-store-localstorage": "19.0.2",
"@ngrx/effects": "19.2.1",
"@ngrx/router-store": "19.2.1",
"@ngrx/store": "19.2.1",
"tassign": "^1.0.0"
}
}

View File

@@ -14,8 +14,9 @@ export interface IDroppedFile {
}
@Component({
selector: 'fm-map-file-drop-target',
template: ''
selector: 'fm-map-file-drop-target',
template: '',
standalone: false
})
export class FileDropTargetComponent implements OnInit, OnDestroy {
element: Element;

View File

@@ -4,10 +4,11 @@ import Overlay from 'ol/Overlay';
import { fromLonLat, toLonLat } from 'ol/proj';
@Component({
selector: 'fm-map-gps-location',
templateUrl: './gps-location.component.html',
styleUrls: ['./gps-location.component.scss']
@Component({
selector: 'fm-map-gps-location',
templateUrl: './gps-location.component.html',
styleUrls: ['./gps-location.component.scss'],
standalone: false
})
export class GpsLocation implements OnInit,OnChanges{

View File

@@ -21,12 +21,13 @@ import { Geometry } from 'ol/geom';
import BaseLayer from 'ol/layer/Base';
import Feature from 'ol/Feature';
@Component({
selector: 'fm-map-item-layers',
template: `<ng-content></ng-content>`,
providers: [
{ provide: LayerGroupComponent, useExisting: forwardRef(() => ItemLayersComponent) }
]
@Component({
selector: 'fm-map-item-layers',
template: `<ng-content></ng-content>`,
providers: [
{ provide: LayerGroupComponent, useExisting: forwardRef(() => ItemLayersComponent) }
],
standalone: false
})
export class ItemLayersComponent extends LayerGroupComponent implements OnChanges, OnInit,OnDestroy {

View File

@@ -21,12 +21,13 @@ import { Subscription } from 'rxjs';
import { getCenter } from 'ol/extent';
import { formatNumber } from '@angular/common';
@Component({
selector: 'fm-map-item-source-vector',
template: `<ng-content></ng-content>`,
providers: [
{ provide: SourceVectorComponent, useExisting: forwardRef(() => ItemVectorSourceComponent) }
]
@Component({
selector: 'fm-map-item-source-vector',
template: `<ng-content></ng-content>`,
providers: [
{ provide: SourceVectorComponent, useExisting: forwardRef(() => ItemVectorSourceComponent) }
],
standalone: false
})
export class ItemVectorSourceComponent extends SourceVectorComponent implements OnInit, OnDestroy, OnChanges {
instance: Vector<Feature<Geometry>>;

View File

@@ -1,10 +1,11 @@
import { Component,Input,Output,EventEmitter } from '@angular/core';
import { IItemLayer } from '../../../models/item.layer';
@Component({
selector: 'fm-map-layer-list',
templateUrl: './layer-list.component.html',
styleUrls: ['./layer-list.component.scss']
@Component({
selector: 'fm-map-layer-list',
templateUrl: './layer-list.component.html',
styleUrls: ['./layer-list.component.scss'],
standalone: false
})
export class LayerListComponent {

View File

@@ -14,9 +14,10 @@ import { GeoJSON, WKT } from 'ol/format';
import { Point } from 'ol/geom';
@Component({
selector: 'fm-map-layer-values',
templateUrl: './layer-values.component.html',
styleUrls: ['./layer-values.component.scss']
selector: 'fm-map-layer-values',
templateUrl: './layer-values.component.html',
styleUrls: ['./layer-values.component.scss'],
standalone: false
})
export class LayerValuesComponent implements OnInit, AfterViewInit {

View File

@@ -6,10 +6,11 @@ import { Geometry } from 'ol/geom';
import Feature from 'ol/Feature';
@Component({
selector: 'fm-map-aol-layer-vector-image',
template: `
selector: 'fm-map-aol-layer-vector-image',
template: `
<ng-content></ng-content>
`,
standalone: false
})
export class LayerVectorImageComponent extends LayerVectorComponent implements OnInit, OnDestroy, OnChanges {
//public source: Vector;

View File

@@ -5,10 +5,11 @@ import {View} from 'ol';
import { fromLonLat } from 'ol/proj';
@Component({
selector: 'fm-map-pan-to-location',
templateUrl: './pan-to-location.component.html',
styleUrls: ['./pan-to-location.component.scss']
@Component({
selector: 'fm-map-pan-to-location',
templateUrl: './pan-to-location.component.html',
styleUrls: ['./pan-to-location.component.scss'],
standalone: false
})
export class PanToLocation implements OnInit,OnChanges{

View File

@@ -5,10 +5,11 @@ import {View} from 'ol';
@Component({
selector: 'fm-map-rotation-reset',
templateUrl: './rotation-reset.component.html',
styleUrls: ['./rotation-reset.component.scss']
@Component({
selector: 'fm-map-rotation-reset',
templateUrl: './rotation-reset.component.html',
styleUrls: ['./rotation-reset.component.scss'],
standalone: false
})
export class RotationResetComponent implements OnInit {
view: View;

View File

@@ -3,9 +3,10 @@ import { ActivatedRoute } from '@angular/router';
import { ViewComponent, MapComponent } from '@farmmaps/ng-openlayers';
@Component({
selector: 'fm-map-zoom-to-extent',
template: `<ng-content></ng-content>`
@Component({
selector: 'fm-map-zoom-to-extent',
template: `<ng-content></ng-content>`,
standalone: false
})
export class ZoomToExtentComponent implements OnChanges {
view: ViewComponent;

View File

@@ -10,10 +10,11 @@ import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
@Component({
selector: 'fm-map-feature-list-container',
templateUrl: './feature-list-container.component.html',
styleUrls: ['./feature-list-container.component.scss']
@Component({
selector: 'fm-map-feature-list-container',
templateUrl: './feature-list-container.component.html',
styleUrls: ['./feature-list-container.component.scss'],
standalone: false
})
export class FeatureListContainerComponent {

View File

@@ -11,10 +11,11 @@ import { Observable } from 'rxjs';
@ForChild()
@ForItemType("vnd.farmmaps.itemtype.cropfield")
@Injectable()
@Component({
selector: 'fm-map-feature-list-cropfield',
templateUrl: './feature-list-cropfield.component.html',
styleUrls: ['./feature-list-cropfield.component.scss']
@Component({
selector: 'fm-map-feature-list-cropfield',
templateUrl: './feature-list-cropfield.component.html',
styleUrls: ['./feature-list-cropfield.component.scss'],
standalone: false
})
export class FeatureListCropfieldComponent extends AbstractFeatureListComponent implements OnInit {

View File

@@ -13,10 +13,11 @@ import { Geometry} from 'ol/geom';
@ForItemType("vnd.farmmaps.itemtype.croppingscheme")
@Injectable()
@Component({
selector: 'fm-map-feature-list-croppingscheme',
templateUrl: './feature-list-croppingscheme.component.html',
styleUrls: ['./feature-list-croppingscheme.component.scss']
@Component({
selector: 'fm-map-feature-list-croppingscheme',
templateUrl: './feature-list-croppingscheme.component.html',
styleUrls: ['./feature-list-croppingscheme.component.scss'],
standalone: false
})
export class FeatureListCroppingschemeComponent extends AbstractFeatureListComponent {

View File

@@ -5,13 +5,14 @@ import { AbstractFeatureListFeatureComponent,FeatureListFeatureComponent } from
import { WidgetHostDirective } from '../widget-host/widget-host.directive';
@Component({
selector: 'fm-map-feature-list-feature-container',
template: `
@Component({
selector: 'fm-map-feature-list-feature-container',
template: `
<div>
<ng-template fm-map-widget-host></ng-template>
</div>
`
`,
standalone: false
})
export class FeatureListFeatureContainerComponent {

View File

@@ -12,10 +12,11 @@ import {getArea} from 'ol/sphere';
@ForItemType("vnd.farmmaps.itemtype.cropfield")
@Injectable()
@Component({
selector: 'fm-map-feature-list-feature-cropfield',
templateUrl: './feature-list-feature-cropfield.component.html',
styleUrls: ['./feature-list-feature-cropfield.component.scss']
@Component({
selector: 'fm-map-feature-list-feature-cropfield',
templateUrl: './feature-list-feature-cropfield.component.html',
styleUrls: ['./feature-list-feature-cropfield.component.scss'],
standalone: false
})
export class FeatureListFeatureCropfieldComponent extends AbstractFeatureListFeatureComponent {

View File

@@ -10,9 +10,10 @@ import { ForItemType } from '../for-item/for-itemtype.decorator';
@ForItemType("vnd.farmmaps.itemtype.croppingscheme")
@Injectable()
@Component({
selector: 'fm-map-feature-list-feature-croppingscheme',
templateUrl: './feature-list-feature-croppingscheme.component.html',
styleUrls: ['./feature-list-feature-croppingscheme.component.scss']
selector: 'fm-map-feature-list-feature-croppingscheme',
templateUrl: './feature-list-feature-croppingscheme.component.html',
styleUrls: ['./feature-list-feature-croppingscheme.component.scss'],
standalone: false
})
export class FeatureListFeatureCroppingschemeComponent extends AbstractFeatureListFeatureComponent {

View File

@@ -17,10 +17,11 @@ export abstract class AbstractFeatureListFeatureComponent {
}
@Injectable()
@Component({
selector: 'fm-map-feature-list-feature',
templateUrl: './feature-list-feature.component.html',
styleUrls: ['./feature-list-feature.component.scss']
@Component({
selector: 'fm-map-feature-list-feature',
templateUrl: './feature-list-feature.component.html',
styleUrls: ['./feature-list-feature.component.scss'],
standalone: false
})
export class FeatureListFeatureComponent extends AbstractFeatureListFeatureComponent {

View File

@@ -11,10 +11,11 @@ import { Observable } from 'rxjs';
@ForChild()
@ForItemType("vnd.farmmaps.itemtype.observation")
@Injectable()
@Component({
selector: 'fm-map-feature-list-observation',
templateUrl: './feature-list-observation.component.html',
styleUrls: ['./feature-list-observation.component.scss']
@Component({
selector: 'fm-map-feature-list-observation',
templateUrl: './feature-list-observation.component.html',
styleUrls: ['./feature-list-observation.component.scss'],
standalone: false
})
export class FeatureListObservationComponent extends AbstractFeatureListComponent implements OnInit {

View File

@@ -57,10 +57,11 @@ export abstract class AbstractFeatureListComponent {
}
@Injectable()
@Component({
selector: 'fm-map-feature-list',
templateUrl: './feature-list.component.html',
styleUrls: ['./feature-list.component.scss']
@Component({
selector: 'fm-map-feature-list',
templateUrl: './feature-list.component.html',
styleUrls: ['./feature-list.component.scss'],
standalone: false
})
export class FeatureListComponent extends AbstractFeatureListComponent {

View File

@@ -6,9 +6,10 @@ import * as render from 'ol/render';
import * as style from 'ol/style';
@Component({
selector: 'fm-map-feature-thumbnail',
templateUrl: './feature-thumbnail.component.html',
styleUrls: ['./feature-thumbnail.component.scss']
selector: 'fm-map-feature-thumbnail',
templateUrl: './feature-thumbnail.component.html',
styleUrls: ['./feature-thumbnail.component.scss'],
standalone: false
})
export class GeometryThumbnailComponent implements AfterViewInit {

View File

@@ -3,8 +3,9 @@ import { Layer } from 'ol/layer';
import { Source } from 'ol/source';
import { MapComponent } from '@farmmaps/ng-openlayers';
@Directive({
selector: '[fmMapIfZoomToShow]',
@Directive({
selector: '[fmMapIfZoomToShow]',
standalone: false
})
export class ifZoomToShowDirective implements OnInit {
@Input()

View File

@@ -4,13 +4,14 @@ import { WidgetHostDirective } from '../widget-host/widget-host.directive';
import { IItem, IListItem } from '@farmmaps/common';
@Component({
selector: 'fm-map-item-list-item-container',
template: `
@Component({
selector: 'fm-map-item-list-item-container',
template: `
<div style="height:100%">
<ng-template fm-map-widget-host></ng-template>
</div>
`
`,
standalone: false
})
export class ItemListItemContainerComponent {

View File

@@ -40,10 +40,11 @@ export abstract class AbstractItemWidgetComponent {
}
@Injectable()
@Component({
selector: 'fm-map-item-list-item',
templateUrl: './item-list-item.component.html',
styleUrls: ['./item-list-item.component.scss']
@Component({
selector: 'fm-map-item-list-item',
templateUrl: './item-list-item.component.html',
styleUrls: ['./item-list-item.component.scss'],
standalone: false
})
export class ItemListItemComponent extends AbstractItemListItemComponent {

View File

@@ -28,9 +28,10 @@ export abstract class AbstractItemListComponent {
@Injectable()
@Component({
selector: 'fm-map-item-list',
templateUrl: './item-list.component.html',
styleUrls: ['./item-list.component.scss']
selector: 'fm-map-item-list',
templateUrl: './item-list.component.html',
styleUrls: ['./item-list.component.scss'],
standalone: false
})
export class ItemListComponent extends AbstractItemListComponent {

View File

@@ -8,9 +8,10 @@ import { AbstractItemWidgetComponent } from '../item-list-item/item-list-item.co
@Injectable()
@Component({
selector: 'fm-map-item-widget-list',
templateUrl: './item-widget-list.component.html',
styleUrls: ['./item-widget-list.component.scss']
selector: 'fm-map-item-widget-list',
templateUrl: './item-widget-list.component.html',
styleUrls: ['./item-widget-list.component.scss'],
standalone: false
})
export class ItemWidgetListComponent implements AfterViewInit {

View File

@@ -6,10 +6,11 @@ import * as mapActions from '../../actions/map.actions';
import {createEmpty,extend } from 'ol/extent';
import { filter, map, Observable } from 'rxjs';
@Component({
selector: 'fm-map-layer-switcher',
templateUrl: './layer-switcher.component.html',
styleUrls: ['./layer-switcher.component.scss']
@Component({
selector: 'fm-map-layer-switcher',
templateUrl: './layer-switcher.component.html',
styleUrls: ['./layer-switcher.component.scss'],
standalone: false
})
export class LayerSwitcher implements OnInit,OnChanges{

View File

@@ -2,12 +2,13 @@ import {Component, Input} from '@angular/core';
import {IHistogram, ILayer} from '../../../models/color.map';
@Component({
selector: 'fm-map-histogram-details',
templateUrl: './histogram-details.component.html',
styles: ['.nopadding{\n' +
' padding: 0 !important;\n' +
' margin: 0 !important;\n' +
'}']
selector: 'fm-map-histogram-details',
templateUrl: './histogram-details.component.html',
styles: ['.nopadding{\n' +
' padding: 0 !important;\n' +
' margin: 0 !important;\n' +
'}'],
standalone: false
})
export class HistogramDetailsComponent {

View File

@@ -2,10 +2,11 @@ import { Component, OnInit, Input,AfterViewInit } from '@angular/core';
import { IColorMap, IColor, IColorEntry,ILayer, IRenderer } from '../../models/color.map';
@Component({
selector: 'fm-map-layer-legend',
templateUrl: './legend.component.html',
styleUrls: ['./legend.component.scss']
@Component({
selector: 'fm-map-layer-legend',
templateUrl: './legend.component.html',
styleUrls: ['./legend.component.scss'],
standalone: false
})
export class LegendComponent implements OnInit,AfterViewInit {

View File

@@ -2,12 +2,13 @@ import { Component, Input } from '@angular/core';
import { IStatistics } from '../../../models/color.map';
@Component({
selector: 'fm-map-statistics-details',
templateUrl: './statistics-details.component.html',
styles: ['.nopadding{\n' +
' padding: 0 !important;\n' +
' margin: 0 !important;\n' +
'}']
selector: 'fm-map-statistics-details',
templateUrl: './statistics-details.component.html',
styles: ['.nopadding{\n' +
' padding: 0 !important;\n' +
' margin: 0 !important;\n' +
'}'],
standalone: false
})
export class StatisticsDetailsComponent {

View File

@@ -14,7 +14,7 @@ div.map-search {
}
.disabled {
color:lighten(#000000,80%);
color:adjust(#000000,80%);
}
:host ::ng-deep ngb-typeahead-window.dropdown-menu {

View File

@@ -6,10 +6,11 @@ import { IQueryState } from '@farmmaps/common';
import { IPeriodState } from '../../models/period.state';
import { tassign } from 'tassign';
@Component({
selector: 'fm-map-map-search',
templateUrl: './map-search.component.html',
styleUrls: ['./map-search.component.scss']
@Component({
selector: 'fm-map-map-search',
templateUrl: './map-search.component.html',
styleUrls: ['./map-search.component.scss'],
standalone: false
})
export class MapSearchComponent {

View File

@@ -38,10 +38,11 @@ import { tassign } from 'tassign';
import * as style from 'ol/style';
@Component({
selector: 'fm-map-map',
templateUrl: './map.component.html',
styleUrls: ['./map.component.scss']
@Component({
selector: 'fm-map-map',
templateUrl: './map.component.html',
styleUrls: ['./map.component.scss'],
standalone: false
})
export class MapComponent implements OnInit, OnDestroy, AfterViewInit {

View File

@@ -9,9 +9,10 @@ export interface IMetaData {
attributes: any
}
@Component({
selector: 'fm-map-meta-data-modal',
templateUrl: 'meta-data-modal.component.html'
@Component({
selector: 'fm-map-meta-data-modal',
templateUrl: 'meta-data-modal.component.html',
standalone: false
})
export class MetaDataModalComponent {

View File

@@ -15,10 +15,11 @@ const after = (one: NgbDateStruct, two: NgbDateStruct) =>
!one || !two ? false : one.year === two.year ? one.month === two.month ? one.day === two.day
? false : one.day > two.day : one.month > two.month : one.year > two.year;
@Component({
selector: 'fm-map-select-period-modal',
templateUrl: 'select-period-modal.component.html',
styleUrls: ['select-period-modal.component.scss']
@Component({
selector: 'fm-map-select-period-modal',
templateUrl: 'select-period-modal.component.html',
styleUrls: ['select-period-modal.component.scss'],
standalone: false
})
export class SelectPeriodModalComponent {

View File

@@ -5,10 +5,11 @@ import { WidgetHostDirective } from '../widget-host/widget-host.directive';
import { IItemLayer } from '../../models/item.layer';
@Component({
selector: 'fm-map-selected-item-container',
templateUrl: './selected-item-container.component.html',
styleUrls: ['./selected-item-container.component.scss']
@Component({
selector: 'fm-map-selected-item-container',
templateUrl: './selected-item-container.component.html',
styleUrls: ['./selected-item-container.component.scss'],
standalone: false
})
export class SelectedItemContainerComponent {

View File

@@ -15,10 +15,11 @@ import { withLatestFrom,switchMap,combineLatest } from 'rxjs/operators';
@ForItemType("vnd.farmmaps.itemtype.cropfield")
@Injectable()
@Component({
selector: 'fm-map-selected-item-cropfield',
templateUrl: './selected-item-cropfield.component.html',
styleUrls: ['./selected-item-cropfield.component.scss']
@Component({
selector: 'fm-map-selected-item-cropfield',
templateUrl: './selected-item-cropfield.component.html',
styleUrls: ['./selected-item-cropfield.component.scss'],
standalone: false
})
export class SelectedItemCropfieldComponent extends AbstractSelectedItemComponent implements OnInit{

View File

@@ -12,10 +12,11 @@ import { AbstractSelectedItemComponent } from '../selected-item/selected-item.co
@ForItemType("vnd.farmmaps.itemtype.geotiff.processed")
@Injectable()
@Component({
selector: 'fm-map-selected-item-geotiff',
templateUrl: './selected-item-geotiff.component.html',
styleUrls: ['./selected-item-geotiff.component.scss']
@Component({
selector: 'fm-map-selected-item-geotiff',
templateUrl: './selected-item-geotiff.component.html',
styleUrls: ['./selected-item-geotiff.component.scss'],
standalone: false
})
export class SelectedItemGeotiffComponent extends AbstractSelectedItemComponent implements OnDestroy {
sub: Subscription;

View File

@@ -12,10 +12,11 @@ import { Subscription } from 'rxjs';
@ForItemType("vnd.farmmaps.itemtype.shape.processed")
@Injectable()
@Component({
selector: 'fm-map-selected-item-shape',
templateUrl: './selected-item-shape.component.html',
styleUrls: ['./selected-item-shape.component.scss']
@Component({
selector: 'fm-map-selected-item-shape',
templateUrl: './selected-item-shape.component.html',
styleUrls: ['./selected-item-shape.component.scss'],
standalone: false
})
export class SelectedItemShapeComponent extends AbstractSelectedItemComponent implements OnDestroy {
public selectedLayer = 0;

View File

@@ -13,10 +13,11 @@ import { AbstractSelectedItemComponent } from '../selected-item/selected-item.co
@ForItemType("vnd.farmmaps.itemtype.temporal")
@Injectable()
@Component({
selector: 'fm-map-selected-item-temporal',
templateUrl: './selected-item-temporal.component.html',
styleUrls: ['./selected-item-temporal.component.scss']
@Component({
selector: 'fm-map-selected-item-temporal',
templateUrl: './selected-item-temporal.component.html',
styleUrls: ['./selected-item-temporal.component.scss'],
standalone: false
})
export class SelectedItemTemporalComponent extends AbstractSelectedItemComponent implements OnDestroy {
sub: Subscription;

View File

@@ -74,10 +74,11 @@ export abstract class AbstractSelectedItemComponent {
}
@Injectable()
@Component({
selector: 'fm-map-selected-item',
templateUrl: './selected-item.component.html',
styleUrls: ['./selected-item.component.scss']
@Component({
selector: 'fm-map-selected-item',
templateUrl: './selected-item.component.html',
styleUrls: ['./selected-item.component.scss'],
standalone: false
})
export class SelectedItemComponent extends AbstractSelectedItemComponent {

View File

@@ -1,7 +1,8 @@
import { Directive, ViewContainerRef } from '@angular/core';
@Directive({
selector: '[fm-map-widget-host]',
selector: '[fm-map-widget-host]',
standalone: false
})
export class WidgetHostDirective {
constructor(public viewContainerRef: ViewContainerRef) { }

View File

@@ -1,9 +1,10 @@
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'fm-map-widget-status',
templateUrl: './widget-status.component.html',
styleUrls: ['./widget-status.component.css']
selector: 'fm-map-widget-status',
templateUrl: './widget-status.component.html',
styleUrls: ['./widget-status.component.css'],
standalone: false
})
export class WidgetStatusComponent implements OnInit {
@Input() stage: Stage;

View File

@@ -2,9 +2,10 @@ import { Component, Input } from '@angular/core';
import { Layer } from 'ol/layer';
import { Source } from 'ol/source';
@Component({
selector: 'fm-map-zoom-to-show-alert',
template: '<div *fmMapIfZoomToShow="layer$" class="alert alert-info"><i class="fas fa-search-plus" aria-hidden="true" i18n-title title="Add as layer"></i>&nbsp;<span i18n>Zoom in to show layer</span></div>'
@Component({
selector: 'fm-map-zoom-to-show-alert',
template: '<div *fmMapIfZoomToShow="layer$" class="alert alert-info"><i class="fas fa-search-plus" aria-hidden="true" i18n-title title="Add as layer"></i>&nbsp;<span i18n>Zoom in to show layer</span></div>',
standalone: false
})
export class ZoomToShowAlert {
public layer$: Layer<Source>;

View File

@@ -8,8 +8,8 @@
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": "18.2.3",
"@angular/core": "18.2.3",
"@angular/common": "19.2.18",
"@angular/core": "19.2.18",
"cesium": "^1.97.0",
"ol-cesium": ">=2.13.0"
}

View File

@@ -7,10 +7,11 @@ import VectorSynchronizer from 'olcs/VectorSynchronizer';
import { mapReducers,mapActions } from '@farmmaps/common-map';
import { Store } from '@ngrx/store';
@Component({
selector: 'fm-map3d-switch2d3d',
templateUrl: './switch2d3d.component.html',
styleUrls: ['./switch2d3d.component.scss']
@Component({
selector: 'fm-map3d-switch2d3d',
templateUrl: './switch2d3d.component.html',
styleUrls: ['./switch2d3d.component.scss'],
standalone: false
})
export class Switch2D3DComponent {

View File

@@ -5,20 +5,20 @@
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
},
"peerDependencies": {
"@ng-bootstrap/ng-bootstrap": "^17.0.1",
"@angular/common": "18.2.3",
"@angular/core": "18.2.3",
"@angular/forms": "18.2.3",
"@ngrx/effects": "^18.0.2",
"@ngrx/router-store": "^18.0.2",
"@ngrx/store": "^18.0.2",
"@ng-bootstrap/ng-bootstrap": "^18.0.0",
"@angular/common": "19.2.18",
"@angular/core": "19.2.18",
"@angular/forms": "19.2.18",
"@ngrx/effects": "19.2.1",
"@ngrx/router-store": "19.2.1",
"@ngrx/store": "19.2.1",
"tassign": "^1.0.0",
"bootstrap": "^5.3.3",
"@microsoft/signalr": "^3.1.16",
"ngx-uploadx": "^6.2.0",
"ngx-uploadx": "7.0.1",
"angular-oauth2-oidc": "^17.0.2",
"moment": "^2.29.4",
"ngx-avatars": "^1.8.0",
"ngx-avatars": "1.9.3",
"ngx-image-cropper": "^7.0.0",
"ngx-clipboard": "^16.0.0"
}

View File

@@ -1,5 +1,5 @@
// angular modules
import { NgModule, APP_INITIALIZER, ModuleWithProviders, Injector, Optional, SkipSelf } from '@angular/core';
import { NgModule, ModuleWithProviders, Injector, Optional, SkipSelf, inject, provideAppInitializer } from '@angular/core';
import { DatePipe } from '@angular/common';
import { HTTP_INTERCEPTORS } from '@angular/common/http';
@@ -90,12 +90,10 @@ export class AppCommonServiceModule {
providers: [
AppConfig,
ItemTypeService,
{
provide: APP_INITIALIZER,
useFactory: appConfigFactory,
deps: [Injector, AppConfig, OAuthService, AuthConfigFactory, OAuthStorage, ItemTypeService],
multi: true
},
provideAppInitializer(() => {
const initializerFn = (appConfigFactory)(inject(Injector), inject(AppConfig), inject(OAuthService), inject(AuthConfigFactory), inject(OAuthStorage), inject(ItemTypeService));
return initializerFn();
}),
{
provide: HTTP_INTERCEPTORS,
useClass: AccessTokenInterceptor,

View File

@@ -6,9 +6,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-app-menu',
templateUrl: './app-menu.component.html',
styleUrls: ['./app-menu.component.scss']
selector: 'fm-app-menu',
templateUrl: './app-menu.component.html',
styleUrls: ['./app-menu.component.scss'],
standalone: false
})
export class AppMenuComponent implements OnInit {

View File

@@ -19,12 +19,13 @@ import { AppConfig } from '../../shared/app.config';
import * as appReducers from '../../reducers/app-common.reducer';
@Component({
selector: 'fm-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush
@Component({
selector: 'fm-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'],
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
})
export class AppComponent implements OnInit, OnDestroy {

View File

@@ -3,9 +3,10 @@ import { Router } from '@angular/router';
import { OAuthService } from 'angular-oauth2-oidc';
import { Location} from '@angular/common';
@Component({
selector: 'fm-auth-callback',
template:'<div></div>'
@Component({
selector: 'fm-auth-callback',
template: '<div></div>',
standalone: false
})
export class AuthCallbackComponent {

View File

@@ -3,9 +3,10 @@ import { IUser } from '../../models/user';
import { AppConfig } from '../../shared/app.config';
@Component({
selector: 'fm-avatar',
templateUrl: './avatar.component.html',
styleUrls: ['./avatar.component.css']
selector: 'fm-avatar',
templateUrl: './avatar.component.html',
styleUrls: ['./avatar.component.css'],
standalone: false
})
export class AvatarComponent implements OnInit {

View File

@@ -3,9 +3,10 @@ import { Component, EventEmitter, HostListener, Output } from '@angular/core';
import { DeviceService } from '../../services/device.service';
@Component({
selector: 'fm-back-button',
templateUrl: './back-button.component.html',
styleUrls: ['./back-button.component.scss']
selector: 'fm-back-button',
templateUrl: './back-button.component.html',
styleUrls: ['./back-button.component.scss'],
standalone: false
})
export class BackButtonComponent {
@Output() beforeLocationBack = new EventEmitter();

View File

@@ -5,9 +5,10 @@ import { ImageCroppedEvent,LoadedImage } from 'ngx-image-cropper';
import {ImageService } from '../../services/image.service';
@Component({
selector: 'fm-edit-image-modal',
templateUrl: './edit-image-modal.component.html',
styleUrls: ['./edit-image-modal.component.scss']
selector: 'fm-edit-image-modal',
templateUrl: './edit-image-modal.component.html',
styleUrls: ['./edit-image-modal.component.scss'],
standalone: false
})
export class EditImageModalComponent implements OnInit {

View File

@@ -2,9 +2,10 @@ import { Component, ChangeDetectorRef, Input,SimpleChanges,OnChanges, Output,Eve
import { IItem } from '../../models/item';
@Component({
selector: 'fm-gradient-select',
templateUrl: './gradient-select.component.html',
styleUrls: ['./gradient-select.component.scss']
selector: 'fm-gradient-select',
templateUrl: './gradient-select.component.html',
styleUrls: ['./gradient-select.component.scss'],
standalone: false
})
export class GradientSelectComponent implements OnChanges {

View File

@@ -6,9 +6,10 @@ import { GradientService } from '../../common-service.module';
@Component({
selector: 'fm-gradient',
templateUrl: './gradient.component.html',
styleUrls: ['./gradient.component.scss']
selector: 'fm-gradient',
templateUrl: './gradient.component.html',
styleUrls: ['./gradient.component.scss'],
standalone: false
})
export class GradientComponent implements OnInit,OnChanges {

View File

@@ -7,8 +7,9 @@ import { skip } from 'rxjs/operators';
import {OAuthService } from 'angular-oauth2-oidc';
import { IUser } from '../../models/user';
@Directive({
selector: '[fm-hasclaim]',
@Directive({
selector: '[fm-hasclaim]',
standalone: false
})
export class HasClaimDirective implements OnInit{
@Input('fm-hasclaim') claim:string;

View File

@@ -4,8 +4,9 @@ import {PackageService} from '../../services/package.service';
import * as appCommonReducer from '../../reducers/app-common.reducer';
import {Store} from '@ngrx/store';
@Directive({
selector: '[fmHasPackage]',
@Directive({
selector: '[fmHasPackage]',
standalone: false
})
export class HasPackageDirective implements OnDestroy, AfterViewInit {

View File

@@ -5,7 +5,8 @@ import { Observable, Subscription } from 'rxjs';
import { IUser } from '../../models/user';
@Directive({
selector: '[fmHasRole]',
selector: '[fmHasRole]',
standalone: false
})
export class HasRoleDirective implements OnInit, OnDestroy{
@Input('fmHasRole') role:string;

View File

@@ -7,9 +7,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-help-menu',
templateUrl: './help-menu.component.html',
styleUrls: ['./help-menu.component.scss']
selector: 'fm-help-menu',
templateUrl: './help-menu.component.html',
styleUrls: ['./help-menu.component.scss'],
standalone: false
})
export class HelpMenuComponent implements OnInit {

View File

@@ -7,8 +7,9 @@ import { ClipboardService } from 'ngx-clipboard'
@Component({
selector: 'fm-item-link',
templateUrl: './item-link.component.html'
selector: 'fm-item-link',
templateUrl: './item-link.component.html',
standalone: false
})
export class ItemLinkComponent implements OnDestroy {

View File

@@ -3,10 +3,11 @@ import { Store, Action } from '@ngrx/store';
import * as appReducers from '../../reducers/app-common.reducer';
import * as commonActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-menu-background',
templateUrl: './menu-background.component.html',
styleUrls: ['./menu-background.component.scss'],
@Component({
selector: 'fm-menu-background',
templateUrl: './menu-background.component.html',
styleUrls: ['./menu-background.component.scss'],
standalone: false
})
export class MenuBackgroundComponent implements OnInit {
@Input() visible = false;

View File

@@ -4,6 +4,8 @@ import { Component, OnInit } from '@angular/core';
selector: 'fm-not-found',
templateUrl: './not-found.component.html'
// styleUrls: ['./not-found.component.css']
,
standalone: false
})
export class NotFoundComponent implements OnInit {
constructor() { }

View File

@@ -2,7 +2,8 @@ import { Component, OnInit } from '@angular/core';
@Component({
selector: 'fm-not-implemented',
templateUrl: './not-implemented.component.html'
templateUrl: './not-implemented.component.html',
standalone: false
})
export class NotImplementedComponent implements OnInit {
constructor() { }

View File

@@ -6,9 +6,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-notification-menu',
templateUrl: './notification-menu.component.html',
styleUrls: ['./notification-menu.component.scss']
selector: 'fm-notification-menu',
templateUrl: './notification-menu.component.html',
styleUrls: ['./notification-menu.component.scss'],
standalone: false
})
export class NotificationMenuComponent implements OnInit {

View File

@@ -4,8 +4,9 @@ import {PackageService} from '../../services/package.service';
import * as appCommonReducer from '../../reducers/app-common.reducer';
import {Store} from '@ngrx/store';
@Directive({
selector: '[fmPackageExists]',
@Directive({
selector: '[fmPackageExists]',
standalone: false
})
export class PackageExistsDirective implements OnDestroy, AfterViewInit {

View File

@@ -45,7 +45,7 @@ div.card-header span.fa {
.upload-file .progress-container .progress-bar {
display: block;
background-color: color("green");
background-color: green;
width: 0%;
height: 100%;
}
@@ -84,7 +84,7 @@ div.card-header span.fa {
}
.upload-file.done > div > span.fa-check {
color: color("green");
color: green;
width: 20px;
display: inline-block;
vertical-align: middle;

View File

@@ -9,7 +9,8 @@ import * as commonActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-resumable-file-upload',
templateUrl: './resumable-file-upload.component.html',
styleUrls: ['./resumable-file-upload.component.scss']
styleUrls: ['./resumable-file-upload.component.scss'],
standalone: false
})
export class ResumableFileUploadComponent implements OnInit, OnDestroy {

View File

@@ -7,9 +7,10 @@ import * as appCommonActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-session-cleared',
templateUrl: 'session-cleared.component.html',
styleUrls: ['session-cleared.component.scss']
selector: 'fm-session-cleared',
templateUrl: 'session-cleared.component.html',
styleUrls: ['session-cleared.component.scss'],
standalone: false
})

View File

@@ -7,9 +7,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-setting-menu',
templateUrl: './setting-menu.component.html',
styleUrls: ['./setting-menu.component.scss']
selector: 'fm-setting-menu',
templateUrl: './setting-menu.component.html',
styleUrls: ['./setting-menu.component.scss'],
standalone: false
})
export class SettingMenuComponent implements OnInit {

View File

@@ -1,9 +1,10 @@
import { Component, Input,Output,ViewChild,EventEmitter, ElementRef,OnChanges,SimpleChanges,HostListener,ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
@Component({
selector: 'fm-side-panel',
templateUrl: 'side-panel.component.html',
styleUrls: ['side-panel.component.scss']
@Component({
selector: 'fm-side-panel',
templateUrl: 'side-panel.component.html',
styleUrls: ['side-panel.component.scss'],
standalone: false
})

View File

@@ -6,16 +6,17 @@ import {TypeaheadService} from '../../services/typeahead.service';
import {NgbTypeahead} from '@ng-bootstrap/ng-bootstrap';
@Component({
selector: 'fm-tag-input',
templateUrl: 'tag-input.component.html',
styleUrls: ['tag-input.component.scss'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => TagInputComponent),
multi: true
}
]
selector: 'fm-tag-input',
templateUrl: 'tag-input.component.html',
styleUrls: ['tag-input.component.scss'],
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => TagInputComponent),
multi: true
}
],
standalone: false
})
export class TagInputComponent implements ControlValueAccessor {

View File

@@ -7,11 +7,12 @@ import { commonReducers,ItemTypeService } from '../../../public-api'
import { EditImageModalComponent} from '../edit-image-modal/edit-image-modal.component';
import { AppConfig } from "../../shared/app.config";
@Component({
selector: 'fm-thumbnail',
templateUrl: 'thumbnail.component.html',
styleUrls: ['thumbnail.component.scss']
})
@Component({
selector: 'fm-thumbnail',
templateUrl: 'thumbnail.component.html',
styleUrls: ['thumbnail.component.scss'],
standalone: false
})
export class ThumbnailComponent {

View File

@@ -7,10 +7,11 @@ export interface TimeSpan {
endDate:Date;
}
@Component({
selector: 'fm-timespan',
templateUrl: './timespan.component.html',
styleUrls: ['./timespan.component.css']
@Component({
selector: 'fm-timespan',
templateUrl: './timespan.component.html',
styleUrls: ['./timespan.component.css'],
standalone: false
})
export class TimespanComponent implements OnInit, OnChanges {

View File

@@ -6,9 +6,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions';
@Component({
selector: 'fm-user-menu',
templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss']
selector: 'fm-user-menu',
templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss'],
standalone: false
})
export class UserMenuComponent implements OnInit {

View File

@@ -2,7 +2,8 @@ import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({
name: 'safe'
name: 'safe',
standalone: false
})
export class SafePipe implements PipeTransform {

View File

@@ -31,8 +31,8 @@
"tslib": "^2.3.0"
},
"peerDependencies": {
"@angular/common": "18.2.3",
"@angular/core": "18.2.3",
"@angular/common": "19.2.18",
"@angular/core": "19.2.18",
"ol": "^8.2.0"
}
}

View File

@@ -1,8 +1,9 @@
import { Component, ElementRef, OnInit } from '@angular/core';
@Component({
selector: 'aol-attribution',
template: '<ng-content></ng-content>',
selector: 'aol-attribution',
template: '<ng-content></ng-content>',
standalone: false
})
export class AttributionComponent implements OnInit {
label: string;

View File

@@ -3,8 +3,9 @@ import { SourceComponent } from './sources/source.component';
import { AttributionComponent } from './attribution.component';
@Component({
selector: 'aol-attributions',
template: '<ng-content></ng-content>',
selector: 'aol-attributions',
template: '<ng-content></ng-content>',
standalone: false
})
export class AttributionsComponent implements AfterViewInit {
@ContentChildren(AttributionComponent)

View File

@@ -9,8 +9,9 @@ import { Coordinate } from 'ol/coordinate';
import { transform } from 'ol/proj';
@Component({
selector: 'aol-collection-coordinates',
template: ` <div class="aol-collection-coordinates"></div> `,
selector: 'aol-collection-coordinates',
template: ` <div class="aol-collection-coordinates"></div> `,
standalone: false
})
export class CollectionCoordinatesComponent implements OnChanges, OnInit {
@Input()

View File

@@ -1,8 +1,9 @@
import { Component, ElementRef } from '@angular/core';
@Component({
selector: 'aol-content',
template: '<ng-content></ng-content>',
selector: 'aol-content',
template: '<ng-content></ng-content>',
standalone: false
})
export class ContentComponent {
constructor(public elementRef: ElementRef) {}

View File

@@ -3,8 +3,9 @@ import { Attribution } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-attribution',
template: ``,
selector: 'aol-control-attribution',
template: ``,
standalone: false
})
export class ControlAttributionComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -4,8 +4,9 @@ import { MapComponent } from '../map.component';
import { ContentComponent } from '../content.component';
@Component({
selector: 'aol-control',
template: ` <ng-content></ng-content> `,
selector: 'aol-control',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlComponent implements OnInit, OnDestroy {
@ContentChild(ContentComponent, { static: true })

View File

@@ -8,8 +8,9 @@ import { Options as ZoomOptions } from 'ol/control/Zoom';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-defaults',
template: '',
selector: 'aol-control-defaults',
template: '',
standalone: false
})
export class DefaultControlComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -3,8 +3,9 @@ import { FullScreen } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-fullscreen',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-fullscreen',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlFullScreenComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -5,8 +5,9 @@ import { CoordinateFormat } from 'ol/coordinate';
import { ProjectionLike } from 'ol/proj';
@Component({
selector: 'aol-control-mouseposition',
template: ``,
selector: 'aol-control-mouseposition',
template: ``,
standalone: false
})
export class ControlMousePositionComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -5,8 +5,9 @@ import { OverviewMap } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-overviewmap',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-overviewmap',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlOverviewMapComponent implements OnInit, OnChanges, OnDestroy {
@Input()

View File

@@ -3,8 +3,9 @@ import { Rotate } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-rotate',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-rotate',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlRotateComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -4,8 +4,9 @@ import { MapComponent } from '../map.component';
import { Units } from 'ol/control/ScaleLine';
@Component({
selector: 'aol-control-scaleline',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-scaleline',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlScaleLineComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -3,8 +3,9 @@ import { Zoom } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-zoom',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-zoom',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlZoomComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -3,8 +3,9 @@ import { ZoomSlider } from 'ol/control';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-zoomslider',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-zoomslider',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlZoomSliderComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -4,8 +4,9 @@ import { MapComponent } from '../map.component';
import { Extent } from 'ol/extent';
@Component({
selector: 'aol-control-zoomtoextent',
template: ` <ng-content></ng-content> `,
selector: 'aol-control-zoomtoextent',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class ControlZoomToExtentComponent implements OnInit, OnDestroy {
@Input()

View File

@@ -7,8 +7,9 @@ import { ViewComponent } from './view.component';
import { OverlayComponent } from './overlay.component';
@Component({
selector: 'aol-coordinate',
template: ` <div class="aol-coordinate"></div> `,
selector: 'aol-coordinate',
template: ` <div class="aol-coordinate"></div> `,
standalone: false
})
export class CoordinateComponent implements OnChanges, OnInit {
@Input()

View File

@@ -3,8 +3,9 @@ import { Feature } from 'ol';
import { SourceVectorComponent } from './sources/vector.component';
@Component({
selector: 'aol-feature',
template: ` <ng-content></ng-content> `,
selector: 'aol-feature',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class FeatureComponent implements OnInit, OnDestroy, OnChanges {
@Input()

View File

@@ -4,9 +4,10 @@ import { MVT } from 'ol/format';
import { FeatureClass } from 'ol/Feature';
@Component({
selector: 'aol-format-mvt',
template: '',
providers: [{ provide: FormatComponent, useExisting: forwardRef(() => FormatMVTComponent) }],
selector: 'aol-format-mvt',
template: '',
providers: [{ provide: FormatComponent, useExisting: forwardRef(() => FormatMVTComponent) }],
standalone: false
})
export class FormatMVTComponent extends FormatComponent {
@Input()

View File

@@ -5,8 +5,9 @@ import { SimpleGeometryComponent } from './simplegeometry.component';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-geometry-circle',
template: ` <ng-content></ng-content> `,
selector: 'aol-geometry-circle',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class GeometryCircleComponent extends SimpleGeometryComponent implements OnInit {
@Input()

View File

@@ -5,8 +5,9 @@ import { MapComponent } from '../map.component';
import { LineString } from 'ol/geom';
@Component({
selector: 'aol-geometry-linestring',
template: ` <ng-content></ng-content> `,
selector: 'aol-geometry-linestring',
template: ` <ng-content></ng-content> `,
standalone: false
})
export class GeometryLinestringComponent extends SimpleGeometryComponent implements OnInit {
public componentType = 'geometry-linestring';

Some files were not shown because too many files have changed in this diff Show More