Angular v19

This commit is contained in:
2026-01-20 15:57:18 +01:00
parent e0c89f4358
commit 2eca9b2562
155 changed files with 9708 additions and 3068 deletions

View File

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

11710
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"name": "farmmaps-lib-app", "name": "farmmaps-lib-app",
"version": "4.20.0", "version": "4.20.0",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve",
"build": "ng build", "build": "ng build",
@@ -10,16 +10,16 @@
"e2e": "ng e2e" "e2e": "ng e2e"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular-eslint/eslint-plugin": "^18.2.0", "@angular-eslint/eslint-plugin": "^18.2.0",
"@angular/animations": "18.2.3", "@angular/animations": "19.2.18",
"@angular/common": "18.2.3", "@angular/common": "19.2.18",
"@angular/compiler": "18.2.3", "@angular/compiler": "19.2.18",
"@angular/core": "18.2.3", "@angular/core": "19.2.18",
"@angular/forms": "18.2.3", "@angular/forms": "19.2.18",
"@angular/platform-browser": "18.2.3", "@angular/platform-browser": "19.2.18",
"@angular/platform-browser-dynamic": "18.2.3", "@angular/platform-browser-dynamic": "19.2.18",
"@angular/router": "18.2.3", "@angular/router": "19.2.18",
"@farmmaps/common": "file:dist/common", "@farmmaps/common": "file:dist/common",
"@farmmaps/common-map": "file:dist/common-map", "@farmmaps/common-map": "file:dist/common-map",
"@farmmaps/common-map3d": "file:dist/common-map3d", "@farmmaps/common-map3d": "file:dist/common-map3d",
@@ -54,19 +54,19 @@
"tslib": "^2.4.0", "tslib": "^2.4.0",
"url": "^0.11.0", "url": "^0.11.0",
"util": "^0.12.4", "util": "^0.12.4",
"zone.js": "~0.14.10" "zone.js": "~0.15.1"
}, },
"optionalDependencies": { "optionalDependencies": {
"@lmdb/lmdb-linux-x64": "^3.1.0", "@lmdb/lmdb-linux-x64": "^3.1.0",
"@rollup/rollup-linux-x64-gnu": "^4.21.2" "@rollup/rollup-linux-x64-gnu": "^4.21.2"
}, },
"devDependencies": { "devDependencies": {
"@angular-builders/custom-webpack": "^18.0.0", "@angular-builders/custom-webpack": "^18.0.0",
"@angular-devkit/build-angular": "18.2.3", "@angular-devkit/build-angular": "19.2.19",
"@angular/cli": "18.2.3", "@angular/cli": "19.2.19",
"@angular/compiler-cli": "18.2.3", "@angular/compiler-cli": "19.2.18",
"@angular/language-service": "18.2.3", "@angular/language-service": "19.2.18",
"@angular/localize": "18.2.3", "@angular/localize": "19.2.18",
"@types/arcgis-rest-api": "^10.4.5", "@types/arcgis-rest-api": "^10.4.5",
"@types/jasmine": "~2.8.8", "@types/jasmine": "~2.8.8",
"@types/jasminewd2": "^2.0.9", "@types/jasminewd2": "^2.0.9",
@@ -85,9 +85,9 @@
"karma-coverage-istanbul-reporter": "^3.0.3", "karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^5.1.0", "karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.0.0", "karma-jasmine-html-reporter": "^2.0.0",
"ng-packagr": "^18.2.1", "ng-packagr": "^19.2.2",
"protractor": "~7.0.0", "protractor": "~7.0.0",
"ts-node": "^8.8.1", "ts-node": "^8.8.1",
"typescript": "~5.4.4" "typescript": "~5.8.3"
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,9 +8,10 @@ import { AbstractItemWidgetComponent } from '../item-list-item/item-list-item.co
@Injectable() @Injectable()
@Component({ @Component({
selector: 'fm-map-item-widget-list', selector: 'fm-map-item-widget-list',
templateUrl: './item-widget-list.component.html', templateUrl: './item-widget-list.component.html',
styleUrls: ['./item-widget-list.component.scss'] styleUrls: ['./item-widget-list.component.scss'],
standalone: false
}) })
export class ItemWidgetListComponent implements AfterViewInit { 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 {createEmpty,extend } from 'ol/extent';
import { filter, map, Observable } from 'rxjs'; import { filter, map, Observable } from 'rxjs';
@Component({ @Component({
selector: 'fm-map-layer-switcher', selector: 'fm-map-layer-switcher',
templateUrl: './layer-switcher.component.html', templateUrl: './layer-switcher.component.html',
styleUrls: ['./layer-switcher.component.scss'] styleUrls: ['./layer-switcher.component.scss'],
standalone: false
}) })
export class LayerSwitcher implements OnInit,OnChanges{ 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'; import {IHistogram, ILayer} from '../../../models/color.map';
@Component({ @Component({
selector: 'fm-map-histogram-details', selector: 'fm-map-histogram-details',
templateUrl: './histogram-details.component.html', templateUrl: './histogram-details.component.html',
styles: ['.nopadding{\n' + styles: ['.nopadding{\n' +
' padding: 0 !important;\n' + ' padding: 0 !important;\n' +
' margin: 0 !important;\n' + ' margin: 0 !important;\n' +
'}'] '}'],
standalone: false
}) })
export class HistogramDetailsComponent { 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'; import { IColorMap, IColor, IColorEntry,ILayer, IRenderer } from '../../models/color.map';
@Component({ @Component({
selector: 'fm-map-layer-legend', selector: 'fm-map-layer-legend',
templateUrl: './legend.component.html', templateUrl: './legend.component.html',
styleUrls: ['./legend.component.scss'] styleUrls: ['./legend.component.scss'],
standalone: false
}) })
export class LegendComponent implements OnInit,AfterViewInit { export class LegendComponent implements OnInit,AfterViewInit {

View File

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

View File

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

View File

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

View File

@@ -9,9 +9,10 @@ export interface IMetaData {
attributes: any attributes: any
} }
@Component({ @Component({
selector: 'fm-map-meta-data-modal', selector: 'fm-map-meta-data-modal',
templateUrl: 'meta-data-modal.component.html' templateUrl: 'meta-data-modal.component.html',
standalone: false
}) })
export class MetaDataModalComponent { 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 !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; ? false : one.day > two.day : one.month > two.month : one.year > two.year;
@Component({ @Component({
selector: 'fm-map-select-period-modal', selector: 'fm-map-select-period-modal',
templateUrl: 'select-period-modal.component.html', templateUrl: 'select-period-modal.component.html',
styleUrls: ['select-period-modal.component.scss'] styleUrls: ['select-period-modal.component.scss'],
standalone: false
}) })
export class SelectPeriodModalComponent { export class SelectPeriodModalComponent {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,9 +2,10 @@ import { Component, Input } from '@angular/core';
import { Layer } from 'ol/layer'; import { Layer } from 'ol/layer';
import { Source } from 'ol/source'; import { Source } from 'ol/source';
@Component({ @Component({
selector: 'fm-map-zoom-to-show-alert', 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>' 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 { export class ZoomToShowAlert {
public layer$: Layer<Source>; public layer$: Layer<Source>;

View File

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

View File

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

View File

@@ -6,9 +6,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions'; import * as appActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-app-menu', selector: 'fm-app-menu',
templateUrl: './app-menu.component.html', templateUrl: './app-menu.component.html',
styleUrls: ['./app-menu.component.scss'] styleUrls: ['./app-menu.component.scss'],
standalone: false
}) })
export class AppMenuComponent implements OnInit { 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'; import * as appReducers from '../../reducers/app-common.reducer';
@Component({ @Component({
selector: 'fm-app', selector: 'fm-app',
templateUrl: './app.component.html', templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'], styleUrls: ['./app.component.scss'],
encapsulation: ViewEncapsulation.None, encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush changeDetection: ChangeDetectionStrategy.OnPush,
standalone: false
}) })
export class AppComponent implements OnInit, OnDestroy { export class AppComponent implements OnInit, OnDestroy {

View File

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

View File

@@ -3,9 +3,10 @@ import { IUser } from '../../models/user';
import { AppConfig } from '../../shared/app.config'; import { AppConfig } from '../../shared/app.config';
@Component({ @Component({
selector: 'fm-avatar', selector: 'fm-avatar',
templateUrl: './avatar.component.html', templateUrl: './avatar.component.html',
styleUrls: ['./avatar.component.css'] styleUrls: ['./avatar.component.css'],
standalone: false
}) })
export class AvatarComponent implements OnInit { 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'; import { DeviceService } from '../../services/device.service';
@Component({ @Component({
selector: 'fm-back-button', selector: 'fm-back-button',
templateUrl: './back-button.component.html', templateUrl: './back-button.component.html',
styleUrls: ['./back-button.component.scss'] styleUrls: ['./back-button.component.scss'],
standalone: false
}) })
export class BackButtonComponent { export class BackButtonComponent {
@Output() beforeLocationBack = new EventEmitter(); @Output() beforeLocationBack = new EventEmitter();

View File

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

View File

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

View File

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

View File

@@ -7,8 +7,9 @@ import { skip } from 'rxjs/operators';
import {OAuthService } from 'angular-oauth2-oidc'; import {OAuthService } from 'angular-oauth2-oidc';
import { IUser } from '../../models/user'; import { IUser } from '../../models/user';
@Directive({ @Directive({
selector: '[fm-hasclaim]', selector: '[fm-hasclaim]',
standalone: false
}) })
export class HasClaimDirective implements OnInit{ export class HasClaimDirective implements OnInit{
@Input('fm-hasclaim') claim:string; @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 * as appCommonReducer from '../../reducers/app-common.reducer';
import {Store} from '@ngrx/store'; import {Store} from '@ngrx/store';
@Directive({ @Directive({
selector: '[fmHasPackage]', selector: '[fmHasPackage]',
standalone: false
}) })
export class HasPackageDirective implements OnDestroy, AfterViewInit { export class HasPackageDirective implements OnDestroy, AfterViewInit {

View File

@@ -5,7 +5,8 @@ import { Observable, Subscription } from 'rxjs';
import { IUser } from '../../models/user'; import { IUser } from '../../models/user';
@Directive({ @Directive({
selector: '[fmHasRole]', selector: '[fmHasRole]',
standalone: false
}) })
export class HasRoleDirective implements OnInit, OnDestroy{ export class HasRoleDirective implements OnInit, OnDestroy{
@Input('fmHasRole') role:string; @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'; import * as appActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-help-menu', selector: 'fm-help-menu',
templateUrl: './help-menu.component.html', templateUrl: './help-menu.component.html',
styleUrls: ['./help-menu.component.scss'] styleUrls: ['./help-menu.component.scss'],
standalone: false
}) })
export class HelpMenuComponent implements OnInit { export class HelpMenuComponent implements OnInit {

View File

@@ -7,8 +7,9 @@ import { ClipboardService } from 'ngx-clipboard'
@Component({ @Component({
selector: 'fm-item-link', selector: 'fm-item-link',
templateUrl: './item-link.component.html' templateUrl: './item-link.component.html',
standalone: false
}) })
export class ItemLinkComponent implements OnDestroy { 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 appReducers from '../../reducers/app-common.reducer';
import * as commonActions from '../../actions/app-common.actions'; import * as commonActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-menu-background', selector: 'fm-menu-background',
templateUrl: './menu-background.component.html', templateUrl: './menu-background.component.html',
styleUrls: ['./menu-background.component.scss'], styleUrls: ['./menu-background.component.scss'],
standalone: false
}) })
export class MenuBackgroundComponent implements OnInit { export class MenuBackgroundComponent implements OnInit {
@Input() visible = false; @Input() visible = false;

View File

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

View File

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

View File

@@ -6,9 +6,10 @@ import * as appReducers from '../../reducers/app-common.reducer';
import * as appActions from '../../actions/app-common.actions'; import * as appActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-notification-menu', selector: 'fm-notification-menu',
templateUrl: './notification-menu.component.html', templateUrl: './notification-menu.component.html',
styleUrls: ['./notification-menu.component.scss'] styleUrls: ['./notification-menu.component.scss'],
standalone: false
}) })
export class NotificationMenuComponent implements OnInit { 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 * as appCommonReducer from '../../reducers/app-common.reducer';
import {Store} from '@ngrx/store'; import {Store} from '@ngrx/store';
@Directive({ @Directive({
selector: '[fmPackageExists]', selector: '[fmPackageExists]',
standalone: false
}) })
export class PackageExistsDirective implements OnDestroy, AfterViewInit { export class PackageExistsDirective implements OnDestroy, AfterViewInit {

View File

@@ -9,7 +9,8 @@ import * as commonActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-resumable-file-upload', selector: 'fm-resumable-file-upload',
templateUrl: './resumable-file-upload.component.html', 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 { export class ResumableFileUploadComponent implements OnInit, OnDestroy {

View File

@@ -7,9 +7,10 @@ import * as appCommonActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-session-cleared', selector: 'fm-session-cleared',
templateUrl: 'session-cleared.component.html', templateUrl: 'session-cleared.component.html',
styleUrls: ['session-cleared.component.scss'] 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'; import * as appActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-setting-menu', selector: 'fm-setting-menu',
templateUrl: './setting-menu.component.html', templateUrl: './setting-menu.component.html',
styleUrls: ['./setting-menu.component.scss'] styleUrls: ['./setting-menu.component.scss'],
standalone: false
}) })
export class SettingMenuComponent implements OnInit { 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'; import { Component, Input,Output,ViewChild,EventEmitter, ElementRef,OnChanges,SimpleChanges,HostListener,ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
@Component({ @Component({
selector: 'fm-side-panel', selector: 'fm-side-panel',
templateUrl: 'side-panel.component.html', templateUrl: 'side-panel.component.html',
styleUrls: ['side-panel.component.scss'] 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'; import {NgbTypeahead} from '@ng-bootstrap/ng-bootstrap';
@Component({ @Component({
selector: 'fm-tag-input', selector: 'fm-tag-input',
templateUrl: 'tag-input.component.html', templateUrl: 'tag-input.component.html',
styleUrls: ['tag-input.component.scss'], styleUrls: ['tag-input.component.scss'],
providers: [ providers: [
{ {
provide: NG_VALUE_ACCESSOR, provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => TagInputComponent), useExisting: forwardRef(() => TagInputComponent),
multi: true multi: true
} }
] ],
standalone: false
}) })
export class TagInputComponent implements ControlValueAccessor { 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 { EditImageModalComponent} from '../edit-image-modal/edit-image-modal.component';
import { AppConfig } from "../../shared/app.config"; import { AppConfig } from "../../shared/app.config";
@Component({ @Component({
selector: 'fm-thumbnail', selector: 'fm-thumbnail',
templateUrl: 'thumbnail.component.html', templateUrl: 'thumbnail.component.html',
styleUrls: ['thumbnail.component.scss'] styleUrls: ['thumbnail.component.scss'],
}) standalone: false
})
export class ThumbnailComponent { export class ThumbnailComponent {

View File

@@ -7,10 +7,11 @@ export interface TimeSpan {
endDate:Date; endDate:Date;
} }
@Component({ @Component({
selector: 'fm-timespan', selector: 'fm-timespan',
templateUrl: './timespan.component.html', templateUrl: './timespan.component.html',
styleUrls: ['./timespan.component.css'] styleUrls: ['./timespan.component.css'],
standalone: false
}) })
export class TimespanComponent implements OnInit, OnChanges { 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'; import * as appActions from '../../actions/app-common.actions';
@Component({ @Component({
selector: 'fm-user-menu', selector: 'fm-user-menu',
templateUrl: './user-menu.component.html', templateUrl: './user-menu.component.html',
styleUrls: ['./user-menu.component.scss'] styleUrls: ['./user-menu.component.scss'],
standalone: false
}) })
export class UserMenuComponent implements OnInit { export class UserMenuComponent implements OnInit {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -4,8 +4,9 @@ import { Stroke } from 'ol/style';
import { MapComponent } from './map.component'; import { MapComponent } from './map.component';
@Component({ @Component({
selector: 'aol-graticule', selector: 'aol-graticule',
template: '<ng-content></ng-content>', template: '<ng-content></ng-content>',
standalone: false
}) })
export class GraticuleComponent implements AfterContentInit, OnChanges, OnDestroy { export class GraticuleComponent implements AfterContentInit, OnChanges, OnDestroy {
@Input() @Input()

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