@igo2/geo 19.0.0-next.2 → 19.0.0-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/fesm2022/igo2-geo.mjs +1951 -1189
  2. package/fesm2022/igo2-geo.mjs.map +1 -1
  3. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +10 -16
  4. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +3 -3
  5. package/lib/catalog/catalog-library/catalog-library.component.d.ts +4 -3
  6. package/lib/catalog/catalog-library/catalog-library.module.d.ts +4 -4
  7. package/lib/catalog/catalog.module.d.ts +2 -2
  8. package/lib/datasource/shared/capabilities.service.d.ts +2 -1
  9. package/lib/datasource/shared/datasource.service.d.ts +5 -2
  10. package/lib/datasource/shared/datasources/datasource.d.ts +19 -1
  11. package/lib/datasource/shared/datasources/datasource.interface.d.ts +5 -0
  12. package/lib/datasource/shared/datasources/wfs-datasource.d.ts +4 -1
  13. package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -1
  14. package/lib/datasource/shared/datasources/wms-datasource.d.ts +15 -3
  15. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -0
  16. package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +3 -2
  17. package/lib/datasource/shared/options/options-api.service.d.ts +1 -0
  18. package/lib/directions/shared/directions.service.d.ts +0 -1
  19. package/lib/feature/shared/feature.interfaces.d.ts +4 -5
  20. package/lib/feature/shared/feature.utils.d.ts +1 -1
  21. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
  22. package/lib/filter/shared/date.utils.d.ts +9 -0
  23. package/lib/filter/shared/filter.utils.d.ts +26 -0
  24. package/lib/filter/shared/ogc-filter.d.ts +0 -7
  25. package/lib/filter/shared/ogc-filter.interface.d.ts +9 -2
  26. package/lib/filter/shared/ogc-filter.service.d.ts +4 -2
  27. package/lib/filter/shared/time-filter.interface.d.ts +2 -2
  28. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +10 -5
  29. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -0
  30. package/lib/geometry/shared/geometry.utils.d.ts +5 -0
  31. package/lib/import-export/shared/export.service.d.ts +1 -1
  32. package/lib/layer/shared/layers/linked/linked-layer.d.ts +1 -0
  33. package/lib/layer/shared/layers/linked/linked-layer.interface.d.ts +2 -1
  34. package/lib/layer/shared/layers/vector-layer.d.ts +13 -12
  35. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +2 -4
  36. package/lib/query/shared/query-search-source.d.ts +1 -1
  37. package/lib/search/search-bar/search-bar.component.d.ts +2 -1
  38. package/lib/search/search-settings/search-settings.component.d.ts +8 -2
  39. package/lib/search/shared/sources/cadastre.d.ts +1 -1
  40. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  41. package/lib/search/shared/sources/icherche.d.ts +4 -2
  42. package/lib/search/shared/sources/ilayer.d.ts +1 -1
  43. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  44. package/lib/search/shared/sources/source.d.ts +3 -1
  45. package/lib/search/shared/sources/storedqueries.d.ts +2 -2
  46. package/lib/search/shared/sources/workspace.d.ts +1 -1
  47. package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
  48. package/lib/workspace/shared/index.d.ts +1 -0
  49. package/lib/workspace/shared/workspace.interface.d.ts +4 -0
  50. package/lib/workspace/widgets/interactive-selection/interactive-selection.component.d.ts +58 -0
  51. package/lib/workspace/widgets/widgets.d.ts +7 -0
  52. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +3 -0
  53. package/locale/en.geo.json +29 -4
  54. package/locale/fr.geo.json +28 -3
  55. package/package.json +21 -18
  56. package/style/style.css +4 -0
@@ -1,16 +1,16 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
- import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3
2
  import { MatDialogRef } from '@angular/material/dialog';
4
3
  import { EntityStore } from '@igo2/common/entity';
4
+ import { Form, FormService } from '@igo2/common/form';
5
5
  import { ConfigService } from '@igo2/core/config';
6
6
  import { LanguageService } from '@igo2/core/language';
7
7
  import { BehaviorSubject } from 'rxjs';
8
8
  import { Catalog } from '../shared/catalog.abstract';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class AddCatalogDialogComponent implements OnInit, OnDestroy {
11
- private formBuilder;
12
11
  languageService: LanguageService;
13
12
  private configService;
13
+ private formService;
14
14
  dialogRef: MatDialogRef<AddCatalogDialogComponent>;
15
15
  data: {
16
16
  predefinedCatalogs: Catalog[];
@@ -18,29 +18,23 @@ export declare class AddCatalogDialogComponent implements OnInit, OnDestroy {
18
18
  error: boolean;
19
19
  addedCatalog: Catalog;
20
20
  };
21
- form: UntypedFormGroup;
22
- private defaultAddedCatalogType;
23
- private addedCatalogType$$;
24
- predefinedCatalogsList$: BehaviorSubject<Catalog[]>;
25
- typeCapabilities: string[];
26
- predefinedCatalogs: Catalog[];
27
- store: EntityStore<Catalog>;
28
- error: boolean;
29
- addedCatalog: Catalog;
21
+ predefinedForm$: BehaviorSubject<Form>;
22
+ customForm$: BehaviorSubject<Form>;
23
+ data$: BehaviorSubject<Catalog>;
24
+ customData$: BehaviorSubject<Catalog>;
30
25
  emailAddress: string;
31
26
  private storeViewAll$$;
32
- constructor(formBuilder: UntypedFormBuilder, languageService: LanguageService, configService: ConfigService, dialogRef: MatDialogRef<AddCatalogDialogComponent>, data: {
27
+ constructor(languageService: LanguageService, configService: ConfigService, formService: FormService, dialogRef: MatDialogRef<AddCatalogDialogComponent>, data: {
33
28
  predefinedCatalogs: Catalog[];
34
29
  store: EntityStore<Catalog>;
35
30
  error: boolean;
36
31
  addedCatalog: Catalog;
37
32
  });
38
33
  ngOnInit(): void;
34
+ onPredefinedSubmit(data: Catalog): void;
35
+ onCustomSubmit(catalog: Catalog): void;
39
36
  ngOnDestroy(): void;
40
- changeUrlOrTitle(catalog: Catalog): void;
41
- computePredefinedCatalogList(): void;
42
- addCatalog(addedCatalog: Catalog): void;
43
- cancel(): void;
37
+ checkFieldsValidity(form$: BehaviorSubject<Form>): boolean;
44
38
  static ɵfac: i0.ɵɵFactoryDeclaration<AddCatalogDialogComponent, [null, null, null, null, { optional: true; }]>;
45
39
  static ɵcmp: i0.ɵɵComponentDeclaration<AddCatalogDialogComponent, "igo-add-catalog-dialog", never, {}, {}, never, never, true, never>;
46
40
  }
@@ -5,7 +5,7 @@ import * as i0 from "@angular/core";
5
5
  /**
6
6
  * Catalog library item
7
7
  */
8
- export declare class CatalogLibaryItemComponent {
8
+ export declare class CatalogLibraryItemComponent {
9
9
  /**
10
10
  * Catalog
11
11
  */
@@ -20,6 +20,6 @@ export declare class CatalogLibaryItemComponent {
20
20
  */
21
21
  get title(): string;
22
22
  removeCatalogFromLibrary(event: any): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<CatalogLibaryItemComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<CatalogLibaryItemComponent, "igo-catalog-library-item", never, { "catalog": { "alias": "catalog"; "required": false; }; "map": { "alias": "map"; "required": false; }; }, { "catalogRemove": "catalogRemove"; }, never, never, true, never>;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogLibraryItemComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<CatalogLibraryItemComponent, "igo-catalog-library-item", never, { "catalog": { "alias": "catalog"; "required": false; }; "map": { "alias": "map"; "required": false; }; }, { "catalogRemove": "catalogRemove"; }, never, never, true, never>;
25
25
  }
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  /**
12
12
  * Component to browse a list of available catalogs
13
13
  */
14
- export declare class CatalogLibaryComponent implements OnInit, OnDestroy {
14
+ export declare class CatalogLibraryComponent implements OnInit, OnDestroy {
15
15
  private capabilitiesService;
16
16
  private messageService;
17
17
  private storageService;
@@ -60,8 +60,9 @@ export declare class CatalogLibaryComponent implements OnInit, OnDestroy {
60
60
  private unsubscribeAddingCatalog;
61
61
  addCatalog(addedCatalog: Catalog): void;
62
62
  ngOnDestroy(): void;
63
+ private handleAddCatalogToStore;
63
64
  onCatalogRemove(catalog: any): void;
64
65
  addCatalogDialog(error?: any, addedCatalog?: Catalog): void;
65
- static ɵfac: i0.ɵɵFactoryDeclaration<CatalogLibaryComponent, never>;
66
- static ɵcmp: i0.ɵɵComponentDeclaration<CatalogLibaryComponent, "igo-catalog-library", never, { "store": { "alias": "store"; "required": false; }; "map": { "alias": "map"; "required": false; }; "addCatalogAllowed": { "alias": "addCatalogAllowed"; "required": false; }; "predefinedCatalogs": { "alias": "predefinedCatalogs"; "required": false; }; }, { "catalogSelectChange": "catalogSelectChange"; }, never, never, true, never>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatalogLibraryComponent, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<CatalogLibraryComponent, "igo-catalog-library", never, { "store": { "alias": "store"; "required": false; }; "map": { "alias": "map"; "required": false; }; "addCatalogAllowed": { "alias": "addCatalogAllowed"; "required": false; }; "predefinedCatalogs": { "alias": "predefinedCatalogs"; "required": false; }; }, { "catalogSelectChange": "catalogSelectChange"; }, never, never, true, never>;
67
68
  }
@@ -1,14 +1,14 @@
1
1
  import { AddCatalogDialogComponent } from './add-catalog-dialog.component';
2
- import { CatalogLibaryComponent } from './catalog-library.component';
2
+ import { CatalogLibraryComponent } from './catalog-library.component';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./catalog-library.component";
5
5
  import * as i2 from "./add-catalog-dialog.component";
6
- export declare const CATALOG_LIBRARY_DIRECTIVES: readonly [typeof CatalogLibaryComponent, typeof AddCatalogDialogComponent];
6
+ export declare const CATALOG_LIBRARY_DIRECTIVES: readonly [typeof CatalogLibraryComponent, typeof AddCatalogDialogComponent];
7
7
  /**
8
- * @deprecated import the CatalogLibaryComponent, AddCatalogDialogComponent directly
8
+ * @deprecated import the CatalogLibraryComponent, AddCatalogDialogComponent directly
9
9
  */
10
10
  export declare class IgoCatalogLibraryModule {
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<IgoCatalogLibraryModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<IgoCatalogLibraryModule, never, [typeof i1.CatalogLibaryComponent, typeof i2.AddCatalogDialogComponent], [typeof i1.CatalogLibaryComponent, typeof i2.AddCatalogDialogComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IgoCatalogLibraryModule, never, [typeof i1.CatalogLibraryComponent, typeof i2.AddCatalogDialogComponent], [typeof i1.CatalogLibraryComponent, typeof i2.AddCatalogDialogComponent]>;
13
13
  static ɵinj: i0.ɵɵInjectorDeclaration<IgoCatalogLibraryModule>;
14
14
  }
@@ -3,12 +3,12 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "./catalog-browser/catalog-browser.component";
4
4
  import * as i2 from "./catalog-library/catalog-library.component";
5
5
  import * as i3 from "./catalog-library/add-catalog-dialog.component";
6
- export declare const CATALOG_DIRECTIVES: readonly [typeof CatalogBrowserComponent, typeof import("./catalog-library").CatalogLibaryComponent, typeof import("./catalog-library").AddCatalogDialogComponent];
6
+ export declare const CATALOG_DIRECTIVES: readonly [typeof CatalogBrowserComponent, typeof import("./catalog-library").CatalogLibraryComponent, typeof import("./catalog-library").AddCatalogDialogComponent];
7
7
  /**
8
8
  * @deprecated import the components directly or the CATALOG_DIRECTIVES
9
9
  */
10
10
  export declare class IgoCatalogModule {
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<IgoCatalogModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<IgoCatalogModule, never, [typeof i1.CatalogBrowserComponent, typeof i2.CatalogLibaryComponent, typeof i3.AddCatalogDialogComponent], [typeof i1.CatalogBrowserComponent, typeof i2.CatalogLibaryComponent, typeof i3.AddCatalogDialogComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<IgoCatalogModule, never, [typeof i1.CatalogBrowserComponent, typeof i2.CatalogLibraryComponent, typeof i3.AddCatalogDialogComponent], [typeof i1.CatalogBrowserComponent, typeof i2.CatalogLibraryComponent, typeof i3.AddCatalogDialogComponent]>;
13
13
  static ɵinj: i0.ɵɵInjectorDeclaration<IgoCatalogModule>;
14
14
  }
@@ -1,5 +1,6 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
2
  import { Observable } from 'rxjs';
3
+ import { TimeFilterOptions } from '../../filter/shared/time-filter.interface';
3
4
  import type { LegendOptions } from '../../layer/shared/layers/legend.interface';
4
5
  import { MapService } from '../../map/shared/map.service';
5
6
  import { TypeCapabilitiesStrings } from './capabilities.interface';
@@ -28,7 +29,7 @@ export declare class CapabilitiesService {
28
29
  private parseArcgisOptions;
29
30
  private parseTileOrImageArcgisOptions;
30
31
  private findDataSourceInCapabilities;
31
- getTimeFilter(layer: any): any;
32
+ getTimeFilter(layer: any): TimeFilterOptions;
32
33
  getStyle(Style: any): LegendOptions;
33
34
  static ɵfac: i0.ɵɵFactoryDeclaration<CapabilitiesService, never>;
34
35
  static ɵprov: i0.ɵɵInjectableDeclaration<CapabilitiesService>;
@@ -2,6 +2,7 @@ import { AuthInterceptor } from '@igo2/auth';
2
2
  import { LanguageService } from '@igo2/core/language';
3
3
  import { MessageService } from '@igo2/core/message';
4
4
  import { BehaviorSubject, Observable } from 'rxjs';
5
+ import { OGCFilterService } from '../../filter/shared/ogc-filter.service';
5
6
  import { CapabilitiesService } from './capabilities.service';
6
7
  import { AnyDataSourceOptions, DataSource } from './datasources';
7
8
  import { WFSService } from './datasources/wfs.service';
@@ -11,17 +12,19 @@ export declare class DataSourceService {
11
12
  private capabilitiesService;
12
13
  private optionsService;
13
14
  private wfsDataSourceService;
15
+ private ogcFilterService;
14
16
  private languageService;
15
17
  private messageService;
16
18
  private authInterceptor?;
17
19
  datasources$: BehaviorSubject<DataSource[]>;
18
- constructor(capabilitiesService: CapabilitiesService, optionsService: OptionsService, wfsDataSourceService: WFSService, languageService: LanguageService, messageService: MessageService, authInterceptor?: AuthInterceptor);
20
+ constructor(capabilitiesService: CapabilitiesService, optionsService: OptionsService, wfsDataSourceService: WFSService, ogcFilterService: OGCFilterService, languageService: LanguageService, messageService: MessageService, authInterceptor?: AuthInterceptor);
19
21
  createAsyncDataSource(context: AnyDataSourceOptions, detailedContextUri?: string): Observable<DataSource>;
20
22
  private createOSMDataSource;
21
23
  private createFeatureDataSource;
22
24
  private createWebSocketDataSource;
23
25
  private createWFSDataSource;
24
26
  private createWMSDataSource;
27
+ private normalizeParams;
25
28
  private createWMTSDataSource;
26
29
  private createXYZDataSource;
27
30
  private createTileDebugDataSource;
@@ -31,6 +34,6 @@ export declare class DataSourceService {
31
34
  private createTileArcGISRestDataSource;
32
35
  private createMVTDataSource;
33
36
  private createClusterDataSource;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceService, [null, { optional: true; }, null, null, null, null]>;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceService, [null, { optional: true; }, null, null, null, null, null]>;
35
38
  static ɵprov: i0.ɵɵInjectableDeclaration<DataSourceService>;
36
39
  }
@@ -1,9 +1,10 @@
1
1
  import olClusterSource from 'ol/source/Cluster';
2
2
  import olSource from 'ol/source/Source';
3
3
  import olVectorSource from 'ol/source/Vector';
4
+ import { Subscription } from 'rxjs';
4
5
  import { LegendOptions } from '../../../layer/shared/layers/legend.interface';
5
6
  import { DataService } from './data.service';
6
- import { DataSourceOptions, Legend } from './datasource.interface';
7
+ import { DataSourceOptions, DatasourceEvent, Legend } from './datasource.interface';
7
8
  export declare abstract class DataSource {
8
9
  options: DataSourceOptions;
9
10
  protected dataService?: DataService;
@@ -11,10 +12,27 @@ export declare abstract class DataSource {
11
12
  ol: olSource | olVectorSource | olClusterSource;
12
13
  private legend;
13
14
  get saveableOptions(): Partial<DataSourceOptions>;
15
+ protected events: Map<"refresh", Subscription>;
16
+ properties: DatasourceProperties;
14
17
  constructor(options?: DataSourceOptions, dataService?: DataService);
15
18
  protected abstract createOlSource(): olSource;
16
19
  protected generateId(): string;
17
20
  getLegend(): Legend[];
18
21
  setLegend(options: LegendOptions): Legend[];
22
+ refresh(): void;
23
+ addEvents(events?: DatasourceEvent[]): void;
24
+ removeEvents(): void;
25
+ private addEvent;
26
+ destroy(): void;
19
27
  protected abstract onUnwatch(): any;
20
28
  }
29
+ declare class DatasourceProperties {
30
+ /** General object to store general properties */
31
+ private properties;
32
+ get(key: string): unknown;
33
+ getAll(): Record<string, unknown>;
34
+ set(key: string, value: unknown): void;
35
+ setMany(object: Record<string, unknown>): void;
36
+ delete(key: string): void;
37
+ }
38
+ export {};
@@ -1,5 +1,6 @@
1
1
  import type { Type } from 'ol/geom/Geometry';
2
2
  import { Encoders, Preset, Tokenizer } from 'flexsearch';
3
+ import type { Observable } from 'rxjs';
3
4
  import { DownloadOptions } from '../../../download/shared/download.interface';
4
5
  import { OgcFilterOperatorType } from '../../../filter/shared/ogc-filter.enum';
5
6
  export interface DataSourceOptions {
@@ -102,3 +103,7 @@ export interface TileGridOptions {
102
103
  tileSize?: [number, number];
103
104
  tileSizes?: [number, number][];
104
105
  }
106
+ export type AnyEventName = EventRefresh;
107
+ export declare const EventRefresh: "refresh";
108
+ export type EventRefresh = typeof EventRefresh;
109
+ export type DatasourceEvent = [AnyEventName, Observable<unknown>];
@@ -7,6 +7,7 @@ import olProjection from 'ol/proj/Projection';
7
7
  import olSourceVector from 'ol/source/Vector';
8
8
  import { Observable } from 'rxjs';
9
9
  import { OgcFiltersOptions } from '../../../filter/shared/ogc-filter.interface';
10
+ import { OGCFilterService } from '../../../filter/shared/ogc-filter.service';
10
11
  import { DataSource } from './datasource';
11
12
  import { WFSDataSourceOptions } from './wfs-datasource.interface';
12
13
  import { WFSService } from './wfs.service';
@@ -18,15 +19,17 @@ interface FetchFeatureOptions {
18
19
  export declare class WFSDataSource extends DataSource {
19
20
  options: WFSDataSourceOptions;
20
21
  protected wfsService: WFSService;
22
+ private ogcFilterService;
21
23
  private authInterceptor?;
22
24
  ol: olSourceVector;
23
25
  set ogcFilters(value: OgcFiltersOptions);
24
26
  get ogcFilters(): OgcFiltersOptions;
25
27
  get saveableOptions(): Partial<WFSDataSourceOptions>;
26
- constructor(options: WFSDataSourceOptions, wfsService: WFSService, authInterceptor?: AuthInterceptor);
28
+ constructor(options: WFSDataSourceOptions, wfsService: WFSService, ogcFilterService: OGCFilterService, authInterceptor?: AuthInterceptor);
27
29
  protected createOlSource(): olSourceVector;
28
30
  setOgcFilters(ogcFilters: OgcFiltersOptions, triggerEvent?: boolean): void;
29
31
  onUnwatch(): void;
32
+ refresh(): void;
30
33
  fetchFeatures({ extent, projection, httpClient }: FetchFeatureOptions): Observable<OlFeature<OlGeometry>[]>;
31
34
  private _fetchFeatures;
32
35
  private _parseXmlFeatures;
@@ -1,4 +1,4 @@
1
- import type { OgcFiltersOptions } from '../../../filter';
1
+ import type { OgcFiltersOptions } from '../../../filter/shared/ogc-filter.interface';
2
2
  import type { FeatureDataSourceOptions } from './feature-datasource.interface';
3
3
  export interface WFSDataSourceOptions extends FeatureDataSourceOptions {
4
4
  params: WFSDataSourceOptionsParams;
@@ -1,6 +1,7 @@
1
1
  import olSourceImageWMS from 'ol/source/ImageWMS';
2
2
  import { BehaviorSubject } from 'rxjs';
3
3
  import { OgcFiltersOptions } from '../../../filter/shared/ogc-filter.interface';
4
+ import { OGCFilterService } from '../../../filter/shared/ogc-filter.service';
4
5
  import { TimeFilterOptions } from '../../../filter/shared/time-filter.interface';
5
6
  import { LegendMapViewOptions } from '../../../layer/shared/layers/legend.interface';
6
7
  import { DataSource } from './datasource';
@@ -17,8 +18,10 @@ export interface TimeFilterableDataSource extends WMSDataSource {
17
18
  export declare class WMSDataSource extends DataSource {
18
19
  options: WMSDataSourceOptions;
19
20
  protected wfsService: WFSService;
21
+ private ogcFilterService;
20
22
  ol: olSourceImageWMS;
21
23
  get params(): any;
24
+ set stylesParams(value: string);
22
25
  get queryTitle(): string;
23
26
  get mapLabel(): string;
24
27
  get queryHtmlTarget(): string;
@@ -28,14 +31,23 @@ export declare class WMSDataSource extends DataSource {
28
31
  get timeFilter(): TimeFilterOptions;
29
32
  readonly timeFilter$: BehaviorSubject<TimeFilterOptions>;
30
33
  get saveableOptions(): Partial<WMSDataSourceOptions>;
31
- constructor(options: WMSDataSourceOptions, wfsService: WFSService);
32
- refresh(): void;
33
- private buildDynamicDownloadUrlFromParamsWFS;
34
+ /**
35
+ * @workaround
36
+ * We need a external way to desactive the refresh of a linked layer for the workspace
37
+ * The workspace services create all workspace layer on init and the refresh
38
+ * is enable by default even if the workspace is not use the layer will still be refreshed.
39
+ */
40
+ enableRefresh: boolean;
41
+ constructor(options: WMSDataSourceOptions, wfsService: WFSService, ogcFilterService: OGCFilterService);
42
+ private dateFormat;
43
+ addEvents(): void;
34
44
  protected createOlSource(): olSourceImageWMS;
35
45
  setOgcFilters(ogcFilters: OgcFiltersOptions, triggerEvent?: boolean): void;
36
46
  setTimeFilter(timeFilter: TimeFilterOptions, triggerEvent?: boolean): void;
37
47
  getLegend(style?: string, view?: LegendMapViewOptions): Legend[];
38
48
  onUnwatch(): void;
49
+ private addRefreshInterval;
50
+ private buildDynamicDownloadUrlFromParamsWFS;
39
51
  }
40
52
  export interface TimeFilterableDataSource extends WMSDataSource {
41
53
  options: TimeFilterableDataSourceOptions;
@@ -29,6 +29,7 @@ export interface WMSDataSourceOptionsParams {
29
29
  DPI?: number;
30
30
  MAP_RESOLUTION?: number;
31
31
  FORMAT_OPTIONS?: string;
32
+ STYLES?: string;
32
33
  }
33
34
  export interface TimeFilterableDataSourceOptions extends WMSDataSourceOptions {
34
35
  timeFilterable?: boolean;
@@ -1,6 +1,6 @@
1
1
  import { Extent } from 'ol/extent';
2
2
  import olProjection from 'ol/proj/Projection';
3
- import { OgcFiltersOptions } from '../../../filter/shared/ogc-filter.interface';
3
+ import { IOgcFiltersOptionSaveable, OgcFiltersOptions } from '../../../filter/shared/ogc-filter.interface';
4
4
  import { WFSDataSourceOptions } from './wfs-datasource.interface';
5
5
  import { WMSDataSourceOptions } from './wms-datasource.interface';
6
6
  export declare const defaultEpsg = "EPSG:3857";
@@ -17,7 +17,7 @@ export declare const jsonRegex: RegExp;
17
17
  * @param ogcFilters OgcFiltersOptions
18
18
  * @returns A string representing the datasource options, based on filter and views
19
19
  */
20
- export declare function buildUrl(options: WFSDataSourceOptions, extent: Extent, proj: olProjection, ogcFilters: OgcFiltersOptions, randomParam?: boolean): string;
20
+ export declare function buildUrl(options: WFSDataSourceOptions, extent: Extent, proj: olProjection, randomParam?: boolean): string;
21
21
  /**
22
22
  * This method build/standardize WFS call query params based on the layer property.
23
23
  * @param wfsDataSourceOptions WFSDataSourceOptions The common wfs datasource options interface
@@ -40,3 +40,4 @@ export declare function formatWFSQueryString(dataSourceOptions: WFSDataSourceOpt
40
40
  */
41
41
  export declare function checkWfsParams(wfsDataSourceOptions: any, srcType?: string): any;
42
42
  export declare function getFormatFromOptions(options: WFSDataSourceOptions | WMSDataSourceOptions): any;
43
+ export declare function getSaveableOgcParams(options: OgcFiltersOptions): IOgcFiltersOptionSaveable;
@@ -11,6 +11,7 @@ export declare class OptionsApiService extends OptionsService {
11
11
  constructor(http: HttpClient, options?: OptionsApiOptions);
12
12
  getWMSOptions(baseOptions: WMSDataSourceOptions, detailedContextUri?: string): Observable<WMSDataSourceOptions>;
13
13
  getArcgisRestOptions(baseOptions: ArcGISRestDataSourceOptions | ArcGISRestImageDataSourceOptions | TileArcGISRestDataSourceOptions, detailedContextUri?: string): Observable<ArcGISRestDataSourceOptions | ArcGISRestImageDataSourceOptions | TileArcGISRestDataSourceOptions>;
14
+ private handleSourceOptions;
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<OptionsApiService, never>;
15
16
  static ɵprov: i0.ɵɵInjectableDeclaration<OptionsApiService>;
16
17
  }
@@ -3,7 +3,6 @@ import { ConfigService } from '@igo2/core/config';
3
3
  import { LanguageService } from '@igo2/core/language';
4
4
  import { SubjectStatus } from '@igo2/utils';
5
5
  import { Position } from 'geojson';
6
- import 'jspdf-autotable';
7
6
  import { Observable } from 'rxjs';
8
7
  import { IgoMap } from '../../map/shared/map';
9
8
  import { PrintService } from '../../print/shared/print.service';
@@ -3,7 +3,7 @@ import { EntityKey, EntityStoreOptions, EntityStoreStrategyOptions } from '@igo2
3
3
  import OlFeature from 'ol/Feature';
4
4
  import type { default as OlGeometry } from 'ol/geom/Geometry';
5
5
  import OlRenderFeature from 'ol/render/Feature';
6
- import { GeoJsonGeometryTypes } from 'geojson';
6
+ import { Geometry } from 'geojson';
7
7
  import { SourceFieldsOptionsParams } from '../../datasource/shared/datasources';
8
8
  import type { VectorLayer } from '../../layer/shared/layers/vector-layer';
9
9
  import type { IgoMap } from '../../map/shared/map';
@@ -31,10 +31,9 @@ export interface FeatureMeta {
31
31
  excludeAttribute?: string[];
32
32
  excludeAttributeOffline?: string[];
33
33
  }
34
- export interface FeatureGeometry {
35
- type: GeoJsonGeometryTypes;
36
- coordinates: any;
37
- }
34
+ export type FeatureGeometry = {
35
+ coordinates: any[];
36
+ } & Geometry;
38
37
  export interface FeatureStoreOptions extends EntityStoreOptions {
39
38
  map: IgoMap;
40
39
  layer?: VectorLayer;
@@ -80,7 +80,7 @@ export declare function featuresAreTooDeepInView(viewController: MapViewControll
80
80
  * @param scale If this is defined, the original view will be scaled
81
81
  * by that factor before any logic is applied.
82
82
  */
83
- export declare function moveToOlFeatures(viewController: MapViewController, olFeatures: OlFeature<OlGeometry>[], motion?: FeatureMotion, scale?: [number, number, number, number], areaRatio?: number): void;
83
+ export declare function moveToOlFeatures(viewController: MapViewController, olFeatures: OlFeature | OlFeature[], motion?: FeatureMotion, scale?: [number, number, number, number], areaRatio?: number): void;
84
84
  /**
85
85
  * Hide an OL feature
86
86
  * @param olFeature OL feature
@@ -82,6 +82,7 @@ export declare class OgcFilterTimeComponent implements OnInit {
82
82
  getDateFromStringWithoutTime(stringDate: string): Date;
83
83
  resetFilter(): void;
84
84
  toggleFilterState(): void;
85
+ private isValidDate;
85
86
  static ɵfac: i0.ɵɵFactoryDeclaration<OgcFilterTimeComponent, never>;
86
87
  static ɵcmp: i0.ɵɵComponentDeclaration<OgcFilterTimeComponent, "igo-ogc-filter-time", never, { "datasource": { "alias": "datasource"; "required": false; }; "currentFilter": { "alias": "currentFilter"; "required": false; }; }, { "changeProperty": "changeProperty"; }, never, never, true, never>;
87
88
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @param date: string
3
+ * @example date = <[2014-08-25, 2018-08-25]>
4
+ * @example date = 2014-08-25, 2018-08-25
5
+ * @example date = 2014-08-25/ 2018-08-25
6
+ * @example date = 2014-08-25
7
+ */
8
+ export declare function parseDateString(date: string | [min: string, max: string]): Date | [min: Date, max: Date] | undefined;
9
+ export declare function isDateOrRangeInRange(dateOrRange: Date | [min: Date, max: Date], [min, max]: [min: Date, max: Date]): boolean;
@@ -0,0 +1,26 @@
1
+ import { AnyBaseOgcFilterOptions, IgoLogicalArrayOptions, OgcFilterConditionsArrayOptions, OgcFilterSpatialOptions } from './ogc-filter.interface';
2
+ export declare const TimeFrame: readonly ["now", "today"];
3
+ export type TimeFrame = (typeof TimeFrame)[number];
4
+ export declare const TimeUnit: readonly ["years", "months", "weeks", "days", "hours", "seconds"];
5
+ export type TimeUnit = (typeof TimeUnit)[number];
6
+ export declare const ArithmeticSymbol: readonly ["+", "-"];
7
+ export type ArithmeticSymbol = (typeof ArithmeticSymbol)[number];
8
+ /**
9
+ * this function to parse date with specific format
10
+ * exemple 'today' or 'today + 1 days' or 'now + 1 years'
11
+ * @param value string date
12
+ * @returns date
13
+ */
14
+ export declare function parseDateOperation(dateOperation: string): string;
15
+ export declare function isIgoLogicalArray(filters: IgoLogicalArrayOptions | AnyBaseOgcFilterOptions): filters is IgoLogicalArrayOptions;
16
+ export declare function isFilterAttributeOptions(filters: AnyBaseOgcFilterOptions): filters is Exclude<AnyBaseOgcFilterOptions & {
17
+ filterid?: string;
18
+ }, OgcFilterConditionsArrayOptions | OgcFilterSpatialOptions>;
19
+ /**
20
+ * Recursive
21
+ * Search inside filters of OgcFiltersOptions
22
+ */
23
+ export declare function searchFilter(filters: IgoLogicalArrayOptions | AnyBaseOgcFilterOptions, key: 'propertyName' | 'filterid', value: string): ((IgoLogicalArrayOptions | AnyBaseOgcFilterOptions) & {
24
+ filterid?: string;
25
+ }) | undefined;
26
+ export declare function isTimeFrame(value: string): boolean;
@@ -27,11 +27,4 @@ export declare class OgcFilterWriter {
27
27
  formatGroupAndFilter(ogcFilters: OgcFiltersOptions, selectors: any): any[];
28
28
  formatProcessedOgcFilter(processedFilter: string, layersOrTypenames: string): string;
29
29
  parseFilterOptionDate(value: string, defaultValue?: string): string;
30
- /**
31
- * this function to parse date with specific format
32
- * exemple 'today + 1 days' or 'now + 1 years'
33
- * @param value string date
34
- * @returns date
35
- */
36
- private parseDateOperation;
37
30
  }
@@ -28,7 +28,9 @@ export type IgoOgcFilterObject = IgoLogicalArrayOptions | AnyBaseOgcFilterOption
28
28
  export interface OgcFiltersOptions {
29
29
  enabled?: boolean;
30
30
  editable?: boolean;
31
- filters?: IgoLogicalArrayOptions | AnyBaseOgcFilterOptions;
31
+ filters?: (IgoLogicalArrayOptions | AnyBaseOgcFilterOptions) & {
32
+ filterid?: string;
33
+ };
32
34
  pushButtons?: IgoOgcSelector;
33
35
  checkboxes?: IgoOgcSelector;
34
36
  radioButtons?: IgoOgcSelector;
@@ -46,6 +48,7 @@ export interface IgoOgcSelector {
46
48
  selectorType: 'pushButton' | 'checkbox' | 'radioButton' | 'select' | 'autocomplete';
47
49
  order?: number;
48
50
  }
51
+ export declare const OgcSelectorFields: readonly ["pushButtons", "checkboxes", "radioButtons", "select", "autocomplete"];
49
52
  export interface SelectorGroup {
50
53
  enabled?: boolean;
51
54
  title?: string;
@@ -168,7 +171,7 @@ export interface OgcInterfaceFilterOptions {
168
171
  end?: string;
169
172
  step?: string;
170
173
  restrictToStep?: boolean;
171
- sliderOptions: SliderOptionsInterface;
174
+ sliderOptions?: SliderOptionsInterface;
172
175
  displayFormat?: string;
173
176
  escapeChar?: string;
174
177
  expression?: string | number;
@@ -196,3 +199,7 @@ export interface SliderOptionsInterface extends OgcFilterDuringOptions {
196
199
  displayFormat?: string;
197
200
  enabled?: boolean;
198
201
  }
202
+ export interface IOgcFiltersOptionSaveable extends Omit<OgcFiltersOptions, 'interfaceOgcFilters'> {
203
+ interfaceOgcFilters: IOgcInterfaceFilterOptions[];
204
+ }
205
+ export type IOgcInterfaceFilterOptions = Pick<OgcInterfaceFilterOptions, 'propertyName' | 'begin' | 'end' | 'active' | 'operator' | 'expression'>;
@@ -1,10 +1,12 @@
1
- import { WMSDataSource } from '../../datasource/shared/datasources/wms-datasource';
1
+ import type { WFSDataSourceOptions } from '../../datasource/shared/datasources/wfs-datasource.interface';
2
+ import type { WMSDataSource } from '../../datasource/shared/datasources/wms-datasource';
2
3
  import { OgcFilterableDataSource } from './ogc-filter.interface';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class OGCFilterService {
5
6
  filterByOgc(wmsDatasource: WMSDataSource, filterString: string): void;
6
- setOgcWFSFiltersOptions(wfsDatasource: OgcFilterableDataSource): void;
7
+ setOgcWFSFiltersOptions(options: WFSDataSourceOptions): void;
7
8
  setOgcWMSFiltersOptions(wmsDatasource: OgcFilterableDataSource): void;
9
+ private mergeInterfaceFilters;
8
10
  static ɵfac: i0.ɵɵFactoryDeclaration<OGCFilterService, never>;
9
11
  static ɵprov: i0.ɵɵInjectableDeclaration<OGCFilterService>;
10
12
  }
@@ -3,8 +3,8 @@ export interface TimeFilterOptions {
3
3
  min?: string;
4
4
  max?: string;
5
5
  range?: boolean;
6
- value?: string;
7
- values?: [string, string];
6
+ value?: string | [string, string];
7
+ default?: string | [string, string];
8
8
  type?: TimeFilterType;
9
9
  format?: string;
10
10
  style?: TimeFilterStyle;
@@ -24,7 +24,7 @@ export declare class TimeFilterFormComponent implements OnInit {
24
24
  layer: Layer;
25
25
  options: TimeFilterOptions;
26
26
  set currentValue(value: string);
27
- change: EventEmitter<Date | [Date, Date]>;
27
+ dateChange: EventEmitter<Date | [Date, Date]>;
28
28
  yearChange: EventEmitter<string | [string, string]>;
29
29
  mySlider: any;
30
30
  get type(): TimeFilterType;
@@ -35,14 +35,19 @@ export declare class TimeFilterFormComponent implements OnInit {
35
35
  get min(): Date;
36
36
  get max(): Date;
37
37
  get is(): boolean;
38
+ get allYearsInterval(): string[];
38
39
  constructor(dateAdapter: DateAdapter<Date>);
39
40
  ngOnInit(): void;
40
41
  storeCurrentFilterValue(): void;
41
- checkFilterValue(): void;
42
+ private processSliderValue;
43
+ private processCalendarYearType;
44
+ private processCalendarDateType;
45
+ private getDateValue;
46
+ private checkCalendarValue;
47
+ private checkFilterValue;
42
48
  handleDateChange(): void;
43
49
  handleYearChange(): void;
44
- handleListYearChange(): void;
45
- handleListYearStartChange(): void;
50
+ private setUpYearsInterval;
46
51
  dateToNumber(date: Date): number;
47
52
  setSliderThumbLabel(label: string): void;
48
53
  findThumbLabel(test: any[]): any;
@@ -73,5 +78,5 @@ export declare class TimeFilterFormComponent implements OnInit {
73
78
  */
74
79
  getStepDefinition(step: any): number;
75
80
  static ɵfac: i0.ɵɵFactoryDeclaration<TimeFilterFormComponent, never>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<TimeFilterFormComponent, "igo-time-filter-form", never, { "layer": { "alias": "layer"; "required": false; }; "options": { "alias": "options"; "required": false; }; "currentValue": { "alias": "currentValue"; "required": false; }; }, { "change": "change"; "yearChange": "yearChange"; }, never, never, true, never>;
81
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimeFilterFormComponent, "igo-time-filter-form", never, { "layer": { "alias": "layer"; "required": false; }; "options": { "alias": "options"; "required": false; }; "currentValue": { "alias": "currentValue"; "required": false; }; }, { "dateChange": "dateChange"; "yearChange": "yearChange"; }, never, never, true, never>;
77
82
  }
@@ -19,6 +19,7 @@ export declare class TimeFilterItemComponent implements OnInit, OnDestroy {
19
19
  ngOnDestroy(): void;
20
20
  handleYearChange(year: string | [string, string]): void;
21
21
  handleDateChange(date: Date | [Date, Date]): void;
22
+ private reformDate;
22
23
  private toggleLegend;
23
24
  toggleLegendOnClick(): void;
24
25
  setVisible(): void;
@@ -1,8 +1,11 @@
1
1
  import BasicEvent from 'ol/events/Event';
2
+ import type { default as OlGeometry } from 'ol/geom/Geometry';
2
3
  import OlLineString from 'ol/geom/LineString';
3
4
  import OlLinearRing from 'ol/geom/LinearRing';
4
5
  import OlPolygon from 'ol/geom/Polygon';
5
6
  import * as olstyle from 'ol/style';
7
+ import { Units } from '@turf/helpers';
8
+ import { FeatureGeometry } from '../../feature';
6
9
  /**
7
10
  * Create a default style for draw and modify interactions
8
11
  * @param color Style color (R, G, B)
@@ -36,3 +39,5 @@ export declare function sliceOlPolygon(olPolygon: OlPolygon, olSlicer: OlLineStr
36
39
  */
37
40
  export declare function addLinearRingToOlPolygon(olPolygon: OlPolygon, olLinearRing: OlLinearRing): void;
38
41
  export declare function getMousePositionFromOlGeometryEvent(olEvent: BasicEvent): [number, number];
42
+ export declare function doesOlGeometryIntersects(olGeometry1: OlGeometry, olGeometry2: OlGeometry): boolean;
43
+ export declare function bufferOlGeometry(olGeometry: OlGeometry, dist: number, units?: Units): FeatureGeometry;
@@ -24,7 +24,7 @@ export declare class ExportService {
24
24
  private exportAsync;
25
25
  protected exportToFile(olFeatures: OlFeature<OlGeometry>[], format: AnyExportFormat, title: string, projectionIn: string, projectionOut: string): Promise<void>;
26
26
  private formatFeatures;
27
- getFormatter(format: AnyExportFormat): import("ol/format/GML3").default | olformat.GPX | olformat.KML | olformat.GeoJSON<typeof OlFeature>;
27
+ getFormatter(format: AnyExportFormat): import("ol/format/GML3").default | olformat.GPX | olformat.KML | olformat.GeoJSON<OlFeature<OlGeometry>>;
28
28
  exportExcel(map: IgoMap, store: WorkspaceStore, data: ExportOptions): Promise<void>;
29
29
  private getTitleFromLayers;
30
30
  private getLayerTitleFromId;
@@ -32,4 +32,5 @@ export declare class Linked {
32
32
  private handleChange;
33
33
  private handleDisplayChange;
34
34
  private findChildren;
35
+ private handleRefreshChanges;
35
36
  }
@@ -27,6 +27,7 @@ export declare enum LinkedProperties {
27
27
  MINRESOLUTION = "minResolution",
28
28
  MAXRESOLUTION = "maxResolution",
29
29
  ZINDEX = "zIndex",
30
- TIMEFILTER = "timeFilter"
30
+ TIMEFILTER = "timeFilter",
31
+ REFRESH = "refresh"
31
32
  }
32
33
  export {};