@igo2/geo 21.0.0-next.20 → 21.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.
- package/fesm2022/igo2-geo-offline.mjs +710 -0
- package/fesm2022/igo2-geo-offline.mjs.map +1 -0
- package/fesm2022/igo2-geo.mjs +1619 -1867
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/package.json +8 -5
- package/types/igo2-geo-offline.d.ts +190 -0
- package/types/igo2-geo.d.ts +1133 -1202
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@igo2/geo",
|
|
3
|
-
"version": "21.0.0-next.
|
|
3
|
+
"version": "21.0.0-next.21",
|
|
4
4
|
"description": "IGO Library",
|
|
5
5
|
"author": "IGO Community",
|
|
6
6
|
"keywords": [
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
"types": "./types/igo2-geo.d.ts",
|
|
23
23
|
"default": "./fesm2022/igo2-geo.mjs"
|
|
24
24
|
},
|
|
25
|
+
"./offline": {
|
|
26
|
+
"types": "./types/igo2-geo-offline.d.ts",
|
|
27
|
+
"default": "./fesm2022/igo2-geo-offline.mjs"
|
|
28
|
+
},
|
|
25
29
|
"./style": {
|
|
26
30
|
"sass": "./style/style.scss"
|
|
27
31
|
},
|
|
@@ -40,10 +44,9 @@
|
|
|
40
44
|
"@angular/material": "^21.0.0",
|
|
41
45
|
"@angular/material-moment-adapter": "^21.0.0",
|
|
42
46
|
"@angular/platform-browser": "^21.0.0",
|
|
43
|
-
"@igo2/
|
|
44
|
-
"@igo2/
|
|
45
|
-
"@igo2/
|
|
46
|
-
"@igo2/utils": "^21.0.0-next.20",
|
|
47
|
+
"@igo2/common": "^21.0.0-next.21",
|
|
48
|
+
"@igo2/core": "^21.0.0-next.21",
|
|
49
|
+
"@igo2/utils": "^21.0.0-next.21",
|
|
47
50
|
"@mat-datetimepicker/core": "^17.0.0",
|
|
48
51
|
"geostyler-legend": "^5.2.0",
|
|
49
52
|
"geostyler-openlayers-parser": "^5.7.0",
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { Provider, EnvironmentProviders } from '@angular/core';
|
|
4
|
+
import { AnyLayerOptions, AnyDataSourceOptions, LayerId, LayerPersistence, AnyLayer, VectorLayerExtension, VectorLayerOptions, VectorLayerExtensionContext, VectorLayerExtensionInstance } from '@igo2/geo';
|
|
5
|
+
import { DBSchema, IDBPDatabase } from 'idb';
|
|
6
|
+
|
|
7
|
+
declare enum InsertSourceInsertDBEnum {
|
|
8
|
+
System = "system",
|
|
9
|
+
User = "user"
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
interface GeoDBData {
|
|
13
|
+
url: string;
|
|
14
|
+
regionID: any;
|
|
15
|
+
object: any;
|
|
16
|
+
compressed: boolean;
|
|
17
|
+
insertSource: InsertSourceInsertDBEnum;
|
|
18
|
+
insertEvent: string;
|
|
19
|
+
}
|
|
20
|
+
interface GeoDataToIDB {
|
|
21
|
+
triggerDate: Date | string;
|
|
22
|
+
action: 'delete' | 'update';
|
|
23
|
+
urls: string[];
|
|
24
|
+
source?: string;
|
|
25
|
+
zippedBaseUrl?: string;
|
|
26
|
+
}
|
|
27
|
+
interface DatasToIDB {
|
|
28
|
+
geoDatas: GeoDataToIDB[];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare class GeoDB {
|
|
32
|
+
private db$;
|
|
33
|
+
private compression;
|
|
34
|
+
collisionsMap: Map<string | number, string[]>;
|
|
35
|
+
_newData: number;
|
|
36
|
+
private revertObservablesSubscription;
|
|
37
|
+
constructor();
|
|
38
|
+
/**
|
|
39
|
+
* Only blob can be compressed
|
|
40
|
+
* @param url
|
|
41
|
+
* @param regionID
|
|
42
|
+
* @param object object to handle
|
|
43
|
+
* @param insertSource type of event user or system
|
|
44
|
+
* @param insertEvent Name of the event where the insert has been triggered
|
|
45
|
+
* @returns
|
|
46
|
+
*/
|
|
47
|
+
update(url: string, regionID: number | string, object: object | Blob, insertSource: InsertSourceInsertDBEnum, insertEvent: string): Observable<GeoDBData>;
|
|
48
|
+
private customUpdate;
|
|
49
|
+
add(geoDBData: GeoDBData): Observable<GeoDBData>;
|
|
50
|
+
put(geoDBData: GeoDBData): Observable<GeoDBData>;
|
|
51
|
+
getGeoDBData(url: string): Observable<GeoDBData | undefined>;
|
|
52
|
+
get(url: string): Observable<object | Blob>;
|
|
53
|
+
delete(key: string): Observable<object>;
|
|
54
|
+
getRegionCountByID(id: number): Observable<number>;
|
|
55
|
+
getRegionByID(id: number): Observable<GeoDBData[]>;
|
|
56
|
+
deleteByRegionID(id: number): Observable<void[]>;
|
|
57
|
+
resetCounters(): void;
|
|
58
|
+
resetCollisionsMap(): void;
|
|
59
|
+
revertCollisions(): void;
|
|
60
|
+
get newData(): number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
declare class GeoDataSyncService {
|
|
64
|
+
private http;
|
|
65
|
+
private messageService;
|
|
66
|
+
load(urlFile: string): void;
|
|
67
|
+
private handleConfigFileError;
|
|
68
|
+
private processGeoDatas;
|
|
69
|
+
private updateGeoData;
|
|
70
|
+
private downloadAndStore;
|
|
71
|
+
private handleDownloadError;
|
|
72
|
+
private storeZippedGeoData;
|
|
73
|
+
private extractZipGeojsonEntries;
|
|
74
|
+
private showDownloadStartMessage;
|
|
75
|
+
private notifyDownloadCompleted;
|
|
76
|
+
private isZip;
|
|
77
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoDataSyncService, never>;
|
|
78
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GeoDataSyncService>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface LayerDBData {
|
|
82
|
+
layerId: string;
|
|
83
|
+
layerOptions: AnyLayerOptions;
|
|
84
|
+
sourceOptions: AnyDataSourceOptions;
|
|
85
|
+
insertEvent: string;
|
|
86
|
+
detailedContextUri: string;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
declare class LayerDB {
|
|
90
|
+
private readonly dbPromise;
|
|
91
|
+
constructor();
|
|
92
|
+
/**
|
|
93
|
+
* This method allow to update the stored layer into the indexeddb (layerData)
|
|
94
|
+
* @param layerDBData
|
|
95
|
+
* @returns
|
|
96
|
+
*/
|
|
97
|
+
update(layerDBData: LayerDBData): Observable<LayerDBData>;
|
|
98
|
+
private updateAsync;
|
|
99
|
+
add(layerDBData: LayerDBData): Observable<LayerDBData>;
|
|
100
|
+
private addAsync;
|
|
101
|
+
/**
|
|
102
|
+
* This method retrieve an idb layer definition
|
|
103
|
+
* @param layerId
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
getByID(layerId: LayerId): Observable<LayerDBData | undefined>;
|
|
107
|
+
private getByIDAsync;
|
|
108
|
+
/**
|
|
109
|
+
* This method delete an idb layer definition
|
|
110
|
+
* @param key
|
|
111
|
+
* @returns
|
|
112
|
+
*/
|
|
113
|
+
delete(key: string): Observable<object>;
|
|
114
|
+
private deleteAsync;
|
|
115
|
+
/**
|
|
116
|
+
* This method retrive all idb layer definition
|
|
117
|
+
* @param layerId
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
getAll(): Observable<LayerDBData[]>;
|
|
121
|
+
private getAllAsync;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
type ResponseType = 'arraybuffer' | 'json' | 'text' | 'xml' | 'blob';
|
|
125
|
+
interface SimpleGetOptions {
|
|
126
|
+
responseType: ResponseType;
|
|
127
|
+
withCredentials?: boolean;
|
|
128
|
+
}
|
|
129
|
+
declare class GeoNetworkService {
|
|
130
|
+
private http;
|
|
131
|
+
private networkService;
|
|
132
|
+
private networkOnline;
|
|
133
|
+
constructor();
|
|
134
|
+
get(url: string, simpleGetOptions: SimpleGetOptions): Observable<any>;
|
|
135
|
+
private getOnline;
|
|
136
|
+
private getOffline;
|
|
137
|
+
isOnline(): boolean;
|
|
138
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GeoNetworkService, never>;
|
|
139
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<GeoNetworkService>;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
interface IgoDBSchema extends DBSchema {
|
|
143
|
+
geoData: {
|
|
144
|
+
value: GeoDBData;
|
|
145
|
+
key: string;
|
|
146
|
+
indexes: {
|
|
147
|
+
'regionID-idx': string;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
layerData: {
|
|
151
|
+
value: LayerDBData;
|
|
152
|
+
key: string;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
declare function createIndexedDb(): Promise<IDBPDatabase<IgoDBSchema>>;
|
|
157
|
+
|
|
158
|
+
declare class IndexedDbLayerPersistenceService implements LayerPersistence {
|
|
159
|
+
private readonly geoDB;
|
|
160
|
+
private readonly layerDB;
|
|
161
|
+
isPersistent(layer: AnyLayer): boolean;
|
|
162
|
+
removePersistedData(layer: AnyLayer): void;
|
|
163
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IndexedDbLayerPersistenceService, never>;
|
|
164
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IndexedDbLayerPersistenceService>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
declare class IndexedDbVectorLayerExtension implements VectorLayerExtension {
|
|
168
|
+
readonly id = "indexed-db";
|
|
169
|
+
readonly priority = 100;
|
|
170
|
+
private readonly geoDB;
|
|
171
|
+
private readonly layerDB;
|
|
172
|
+
private readonly geoNetworkService;
|
|
173
|
+
supports(options: VectorLayerOptions): boolean;
|
|
174
|
+
attach(context: VectorLayerExtensionContext): VectorLayerExtensionInstance;
|
|
175
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IndexedDbVectorLayerExtension, never>;
|
|
176
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<IndexedDbVectorLayerExtension>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
declare const OfflineFeatureKind: readonly ["IndexedDb"];
|
|
180
|
+
type OfflineFeatureKind = (typeof OfflineFeatureKind)[number];
|
|
181
|
+
interface OfflineFeature<KindT extends OfflineFeatureKind> {
|
|
182
|
+
kind: KindT;
|
|
183
|
+
providers: (Provider | EnvironmentProviders)[];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
declare function provideOffline(...features: OfflineFeature<OfflineFeatureKind>[]): EnvironmentProviders;
|
|
187
|
+
declare function withIndexedDb(): OfflineFeature<'IndexedDb'>;
|
|
188
|
+
|
|
189
|
+
export { GeoDB, GeoDataSyncService, GeoNetworkService, IndexedDbLayerPersistenceService, IndexedDbVectorLayerExtension, InsertSourceInsertDBEnum, LayerDB, OfflineFeatureKind, createIndexedDb, provideOffline, withIndexedDb };
|
|
190
|
+
export type { DatasToIDB, GeoDBData, GeoDataToIDB, IgoDBSchema, LayerDBData, OfflineFeature, ResponseType, SimpleGetOptions };
|