@geosdi/ngx-leaflet-timedimension-plugin 1.0.6 → 1.1.0
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/README.md +44 -12
- package/esm2020/lib/ngx-leaflet-timedimension-plugin.module.mjs +20 -0
- package/esm2020/lib/ngx-leaflet-timedimension-plugin.service.mjs +189 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +3 -3
- package/fesm2015/{geosdi-ngx-leaflet-timedimension-plugin.js → geosdi-ngx-leaflet-timedimension-plugin.mjs} +28 -26
- package/fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs.map +1 -0
- package/fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs +217 -0
- package/fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs.map +1 -0
- package/lib/ngx-leaflet-timedimension-plugin.module.d.ts +4 -0
- package/lib/ngx-leaflet-timedimension-plugin.service.d.ts +5 -2
- package/package.json +26 -11
- package/public-api.d.ts +2 -2
- package/bundles/geosdi-ngx-leaflet-timedimension-plugin.umd.js +0 -251
- package/bundles/geosdi-ngx-leaflet-timedimension-plugin.umd.js.map +0 -1
- package/esm2015/lib/ngx-leaflet-timedimension-plugin.module.js +0 -16
- package/esm2015/lib/ngx-leaflet-timedimension-plugin.service.js +0 -191
- package/fesm2015/geosdi-ngx-leaflet-timedimension-plugin.js.map +0 -1
- /package/{esm2015/geosdi-ngx-leaflet-timedimension-plugin.js → esm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs} +0 -0
- /package/{geosdi-ngx-leaflet-timedimension-plugin.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, NgModule } from '@angular/core';
|
|
3
|
+
import * as L from 'leaflet';
|
|
4
|
+
import * as i1 from '@angular/cdk/layout';
|
|
5
|
+
|
|
6
|
+
class NgxLeafletTimedimensionPluginService {
|
|
7
|
+
constructor(breakpointObserver) {
|
|
8
|
+
this.breakpointObserver = breakpointObserver;
|
|
9
|
+
this._playEnabled = false;
|
|
10
|
+
this.position = "topleft";
|
|
11
|
+
this.minSpeed = 1;
|
|
12
|
+
this.maxSpeed = 5;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @param range
|
|
16
|
+
*/
|
|
17
|
+
withMap(map) {
|
|
18
|
+
this.map = map;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
withPlayerOptions(options) {
|
|
22
|
+
this.playerOptions = options;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
withPosition(position) {
|
|
26
|
+
this.position = position;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
/***
|
|
30
|
+
* @param options
|
|
31
|
+
*/
|
|
32
|
+
withTimeDimensionOptionsOptions(options) {
|
|
33
|
+
this.timeDimensionOptions = options;
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param maxSpeed
|
|
38
|
+
*/
|
|
39
|
+
withMaxSpeed(maxSpeed) {
|
|
40
|
+
this.maxSpeed = maxSpeed;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @param minSpeed
|
|
45
|
+
*/
|
|
46
|
+
withMinSpeed(minSpeed) {
|
|
47
|
+
this.minSpeed = minSpeed;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* @param startTime
|
|
53
|
+
* @param endTime
|
|
54
|
+
*/
|
|
55
|
+
refreshAvailableTimes(startTime, endTime) {
|
|
56
|
+
this.timeDimension.setAvailableTimes(L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), "replace");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
*/
|
|
61
|
+
getCurrentTime() {
|
|
62
|
+
return this.timeDimension.getCurrentTime();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @param time
|
|
66
|
+
*/
|
|
67
|
+
setCurrentTime(time) {
|
|
68
|
+
this.timeDimension.setCurrentTime(new Date(time));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
autoApdate() {
|
|
74
|
+
return (this.getUpperTimeLimit() === null ||
|
|
75
|
+
this.getUpperTimeLimit() === this.timeDimension.getCurrentTime());
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
*/
|
|
79
|
+
getLowerTimeLimit() {
|
|
80
|
+
return this.timeDimension.getAvailableTimes()[0];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
*
|
|
84
|
+
*/
|
|
85
|
+
refreshTimeDimensionAtLastTime(time, range) {
|
|
86
|
+
const endTime = new Date(time);
|
|
87
|
+
const startTime = new Date(time - range);
|
|
88
|
+
this.refreshAvailableTimes(startTime, endTime);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
*
|
|
92
|
+
*/
|
|
93
|
+
getUpperTimeLimit() {
|
|
94
|
+
const length = this.timeDimension.getAvailableTimes().length;
|
|
95
|
+
return this.timeDimension.getAvailableTimes()[length - 1];
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param time
|
|
100
|
+
*/
|
|
101
|
+
setTransitionTime(time) {
|
|
102
|
+
this.player.setTransitionTime(time);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
*
|
|
106
|
+
* @param step
|
|
107
|
+
*/
|
|
108
|
+
play(step) {
|
|
109
|
+
this.player.start(step);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* @param looped
|
|
113
|
+
*/
|
|
114
|
+
setPlayerToLoop(looped) {
|
|
115
|
+
this.player.setLooped(looped);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
* @param value
|
|
120
|
+
*/
|
|
121
|
+
set period(value) {
|
|
122
|
+
this._period = value;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
*/
|
|
126
|
+
applyTimeDimensionPlugin() {
|
|
127
|
+
if (!this.map) {
|
|
128
|
+
alert("Impossibile aggiungere il plugin timedimension");
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);
|
|
132
|
+
this.player = new L.TimeDimension.Player(this.playerOptions, this.timeDimension);
|
|
133
|
+
this.timeDimensionControl = new L.Control.TimeDimension({
|
|
134
|
+
player: this.player,
|
|
135
|
+
loopButton: true,
|
|
136
|
+
playReverseButton: true,
|
|
137
|
+
timeSlider: this.isMd(),
|
|
138
|
+
speedSlider: this.isLg(),
|
|
139
|
+
position: this.position,
|
|
140
|
+
minSpeed: this.minSpeed,
|
|
141
|
+
maxSpeed: this.maxSpeed,
|
|
142
|
+
timeZones: ["Local", "UTC"],
|
|
143
|
+
});
|
|
144
|
+
this.player.on("play", (eo) => {
|
|
145
|
+
this._playEnabled = true;
|
|
146
|
+
});
|
|
147
|
+
this.player.on("stop", (eo) => {
|
|
148
|
+
this._playEnabled = false;
|
|
149
|
+
});
|
|
150
|
+
this.timeDimension.on("timeload", () => {
|
|
151
|
+
this.onLoadTimeChaged();
|
|
152
|
+
});
|
|
153
|
+
this.timeDimension.on("availabletimeschanged", (availableTimes) => {
|
|
154
|
+
this.onAvailableTimeChangedChaged();
|
|
155
|
+
});
|
|
156
|
+
this.map.timeDimension = this.timeDimension;
|
|
157
|
+
this.map.addControl(this.timeDimensionControl);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
*
|
|
162
|
+
*/
|
|
163
|
+
onLoadTimeChaged() { }
|
|
164
|
+
/**
|
|
165
|
+
*
|
|
166
|
+
*/
|
|
167
|
+
onAvailableTimeChangedChaged() { }
|
|
168
|
+
/**
|
|
169
|
+
*
|
|
170
|
+
*/
|
|
171
|
+
isMd() {
|
|
172
|
+
return this.breakpointObserver.isMatched(["(min-width: 768px)"]);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
*
|
|
176
|
+
*/
|
|
177
|
+
isLg() {
|
|
178
|
+
return this.breakpointObserver.isMatched(["(min-width: 992px)"]);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
182
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: "root" });
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
184
|
+
type: Injectable,
|
|
185
|
+
args: [{
|
|
186
|
+
providedIn: "root",
|
|
187
|
+
}]
|
|
188
|
+
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
192
|
+
* @email vito.salvia@gmail.com
|
|
193
|
+
*/
|
|
194
|
+
class NgxLeafletTimedimensionPluginModule {
|
|
195
|
+
}
|
|
196
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
197
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
198
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
200
|
+
type: NgModule,
|
|
201
|
+
args: [{
|
|
202
|
+
declarations: [],
|
|
203
|
+
imports: [],
|
|
204
|
+
exports: [],
|
|
205
|
+
}]
|
|
206
|
+
}] });
|
|
207
|
+
|
|
208
|
+
/*
|
|
209
|
+
* Public API Surface of ngx-leaflet-timedimension-plugin
|
|
210
|
+
*/
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Generated bundle index. Do not edit.
|
|
214
|
+
*/
|
|
215
|
+
|
|
216
|
+
export { NgxLeafletTimedimensionPluginModule, NgxLeafletTimedimensionPluginService };
|
|
217
|
+
//# sourceMappingURL=geosdi-ngx-leaflet-timedimension-plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geosdi-ngx-leaflet-timedimension-plugin.mjs","sources":["../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.service.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.module.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/public-api.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/geosdi-ngx-leaflet-timedimension-plugin.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport * as L from \"leaflet\";\nimport { BreakpointObserver } from \"@angular/cdk/layout\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\n/**\n * @param title\n * @param pageSize\n * @param action\n */\nexport interface INgxLeafletTimedimensionPluginService {\n /**\n * @param map\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param position\n */\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /*\n */\n applyTimeDimensionPlugin(): void;\n\n /**\n * @param startTime\n * @param endTime\n */\n refreshAvailableTimes(startTime: Date, endTime: Date): void;\n\n /**\n */\n getCurrentTime(): number;\n\n /**\n */\n getLowerTimeLimit(): number;\n\n /**\n * @param time\n * @param range\n */\n refreshTimeDimensionAtLastTime(time: number, range: number);\n\n /**\n */\n getUpperTimeLimit(): number;\n\n /**\n * @param step\n */\n play(step: number);\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void;\n\n /**\n * @param time\n */\n setCurrentTime(time: number): any;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NgxLeafletTimedimensionPluginService\n implements INgxLeafletTimedimensionPluginService\n{\n private player: L.TimeDimension.Player;\n private _playEnabled = false;\n private playerOptions: any;\n private timeDimensionOptions: any;\n private timeDimensionControl: L.Control.TimeDimension;\n private timeDimension: L.TimeDimension;\n private map: any;\n private _period: string;\n private position: string = \"topleft\";\n private minSpeed: number = 1;\n private maxSpeed: number = 5;\n\n constructor(public breakpointObserver: BreakpointObserver) {}\n\n /**\n * @param range\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService {\n this.map = map;\n return this;\n }\n\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService {\n this.playerOptions = options;\n return this;\n }\n\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService {\n this.position = position;\n return this;\n }\n\n /***\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService {\n this.timeDimensionOptions = options;\n return this;\n }\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService {\n this.maxSpeed = maxSpeed;\n return this;\n }\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService {\n this.minSpeed = minSpeed;\n return this;\n }\n\n /**\n *\n * @param startTime\n * @param endTime\n */\n public refreshAvailableTimes(startTime: Date, endTime: Date) {\n this.timeDimension.setAvailableTimes(\n L.TimeDimension.Util.explodeTimeRange(\n startTime,\n endTime,\n this._period,\n ),\n \"replace\",\n );\n }\n\n /**\n *\n */\n public getCurrentTime(): number {\n return this.timeDimension.getCurrentTime();\n }\n\n /**\n * @param time\n */\n public setCurrentTime(time: number): any {\n this.timeDimension.setCurrentTime(new Date(time));\n }\n\n /**\n *\n */\n public autoApdate(): boolean {\n return (\n this.getUpperTimeLimit() === null ||\n this.getUpperTimeLimit() === this.timeDimension.getCurrentTime()\n );\n }\n\n /**\n */\n public getLowerTimeLimit(): number {\n return this.timeDimension.getAvailableTimes()[0];\n }\n\n /**\n *\n */\n refreshTimeDimensionAtLastTime(time: number, range: number) {\n const endTime = new Date(time);\n const startTime = new Date(time - range);\n this.refreshAvailableTimes(startTime, endTime);\n }\n\n /**\n *\n */\n getUpperTimeLimit(): number {\n const length = this.timeDimension.getAvailableTimes().length;\n return this.timeDimension.getAvailableTimes()[length - 1];\n }\n\n /**\n *\n * @param time\n */\n setTransitionTime(time: number) {\n this.player.setTransitionTime(time);\n }\n\n /**\n *\n * @param step\n */\n play(step: number) {\n this.player.start(step);\n }\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void {\n this.player.setLooped(looped);\n }\n\n /**\n *\n * @param value\n */\n set period(value: string) {\n this._period = value;\n }\n\n /**\n */\n applyTimeDimensionPlugin(): void {\n if (!this.map) {\n alert(\"Impossibile aggiungere il plugin timedimension\");\n } else {\n this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);\n this.player = new L.TimeDimension.Player(\n this.playerOptions,\n this.timeDimension,\n );\n this.timeDimensionControl = new L.Control.TimeDimension({\n player: this.player,\n loopButton: true,\n playReverseButton: true,\n timeSlider: this.isMd(),\n speedSlider: this.isLg(),\n position: this.position,\n minSpeed: this.minSpeed,\n maxSpeed: this.maxSpeed,\n timeZones: [\"Local\", \"UTC\"],\n });\n\n this.player.on(\"play\", (eo) => {\n this._playEnabled = true;\n });\n this.player.on(\"stop\", (eo) => {\n this._playEnabled = false;\n });\n this.timeDimension.on(\"timeload\", () => {\n this.onLoadTimeChaged();\n });\n this.timeDimension.on(\"availabletimeschanged\", (availableTimes) => {\n this.onAvailableTimeChangedChaged();\n });\n this.map.timeDimension = this.timeDimension;\n this.map.addControl(this.timeDimensionControl);\n }\n }\n\n /**\n *\n */\n protected onLoadTimeChaged(): void {}\n\n /**\n *\n */\n protected onAvailableTimeChangedChaged(): void {}\n\n /**\n *\n */\n private isMd(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 768px)\"]);\n }\n\n /**\n *\n */\n private isLg(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 992px)\"]);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n})\nexport class NgxLeafletTimedimensionPluginModule {}\n","/*\n * Public API Surface of ngx-leaflet-timedimension-plugin\n */\n\nexport * from \"./lib/ngx-leaflet-timedimension-plugin.service\";\nexport * from \"./lib/ngx-leaflet-timedimension-plugin.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
4
|
+
* @email vito.salvia@gmail.com
|
|
5
|
+
*/
|
|
2
6
|
export declare class NgxLeafletTimedimensionPluginModule {
|
|
3
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxLeafletTimedimensionPluginModule, never>;
|
|
4
8
|
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxLeafletTimedimensionPluginModule, never, never, never>;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { BreakpointObserver } from "@angular/cdk/layout";
|
|
2
|
-
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
5
|
+
* @email vito.salvia@gmail.com
|
|
6
|
+
*/
|
|
4
7
|
/**
|
|
5
8
|
* @param title
|
|
6
9
|
* @param pageSize
|
|
@@ -22,7 +25,7 @@ export interface INgxLeafletTimedimensionPluginService {
|
|
|
22
25
|
/**
|
|
23
26
|
* @param position
|
|
24
27
|
*/
|
|
25
|
-
withPosition(position:
|
|
28
|
+
withPosition(position: "topleft" | "topright" | "bottomleft" | "bottomright"): INgxLeafletTimedimensionPluginService;
|
|
26
29
|
/**
|
|
27
30
|
* @param minSpeed
|
|
28
31
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geosdi/ngx-leaflet-timedimension-plugin",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Service to add timedimension to map",
|
|
5
5
|
"author": "Salvia Vito (vito.salvia@gmail.com)",
|
|
6
6
|
"keywords": [
|
|
@@ -13,18 +13,33 @@
|
|
|
13
13
|
],
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"tslib": "^2.
|
|
16
|
+
"tslib": "^2.3.0"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"@angular/common": ">=
|
|
20
|
-
"@angular/core": ">=
|
|
21
|
-
"leaflet": ">=1.
|
|
19
|
+
"@angular/common": ">=16.0.0",
|
|
20
|
+
"@angular/core": ">=16.0.0",
|
|
21
|
+
"leaflet": ">=1.9.3",
|
|
22
|
+
"typescript": ">=5.0.0",
|
|
23
|
+
"leaflet-timedimension": ">=1.1.1"
|
|
24
|
+
},
|
|
25
|
+
"module": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
26
|
+
"es2020": "fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
27
|
+
"esm2020": "esm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
28
|
+
"fesm2020": "fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
29
|
+
"fesm2015": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
30
|
+
"typings": "index.d.ts",
|
|
31
|
+
"exports": {
|
|
32
|
+
"./package.json": {
|
|
33
|
+
"default": "./package.json"
|
|
34
|
+
},
|
|
35
|
+
".": {
|
|
36
|
+
"types": "./index.d.ts",
|
|
37
|
+
"esm2020": "./esm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
38
|
+
"es2020": "./fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
39
|
+
"es2015": "./fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
40
|
+
"node": "./fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
41
|
+
"default": "./fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs"
|
|
42
|
+
}
|
|
22
43
|
},
|
|
23
|
-
"main": "bundles/geosdi-ngx-leaflet-timedimension-plugin.umd.js",
|
|
24
|
-
"module": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.js",
|
|
25
|
-
"es2015": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.js",
|
|
26
|
-
"esm2015": "esm2015/geosdi-ngx-leaflet-timedimension-plugin.js",
|
|
27
|
-
"fesm2015": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.js",
|
|
28
|
-
"typings": "geosdi-ngx-leaflet-timedimension-plugin.d.ts",
|
|
29
44
|
"sideEffects": false
|
|
30
45
|
}
|
package/public-api.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
1
|
+
export * from "./lib/ngx-leaflet-timedimension-plugin.service";
|
|
2
|
+
export * from "./lib/ngx-leaflet-timedimension-plugin.module";
|
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('leaflet'), require('node_modules/leaflet-timedimension/dist/leaflet.timedimension.min'), require('@angular/cdk/layout')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@geosdi/ngx-leaflet-timedimension-plugin', ['exports', '@angular/core', 'leaflet', 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min', '@angular/cdk/layout'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.geosdi = global.geosdi || {}, global.geosdi["ngx-leaflet-timedimension-plugin"] = {}), global.ng.core, global.L, null, global.ng.cdk.layout));
|
|
5
|
-
})(this, (function (exports, i0, L, leaflet_timedimension_min, i1) { 'use strict';
|
|
6
|
-
|
|
7
|
-
function _interopNamespace(e) {
|
|
8
|
-
if (e && e.__esModule) return e;
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return e[k]; }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
n["default"] = e;
|
|
22
|
-
return Object.freeze(n);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
26
|
-
var L__namespace = /*#__PURE__*/_interopNamespace(L);
|
|
27
|
-
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
|
|
28
|
-
|
|
29
|
-
var NgxLeafletTimedimensionPluginService = /** @class */ (function () {
|
|
30
|
-
function NgxLeafletTimedimensionPluginService(breakpointObserver) {
|
|
31
|
-
this.breakpointObserver = breakpointObserver;
|
|
32
|
-
this._playEnabled = false;
|
|
33
|
-
this.position = 'topleft';
|
|
34
|
-
this.minSpeed = 1;
|
|
35
|
-
this.maxSpeed = 5;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @param range
|
|
39
|
-
*/
|
|
40
|
-
NgxLeafletTimedimensionPluginService.prototype.withMap = function (map) {
|
|
41
|
-
this.map = map;
|
|
42
|
-
return this;
|
|
43
|
-
};
|
|
44
|
-
NgxLeafletTimedimensionPluginService.prototype.withPlayerOptions = function (options) {
|
|
45
|
-
this.playerOptions = options;
|
|
46
|
-
return this;
|
|
47
|
-
};
|
|
48
|
-
NgxLeafletTimedimensionPluginService.prototype.withPosition = function (position) {
|
|
49
|
-
this.position = position;
|
|
50
|
-
return this;
|
|
51
|
-
};
|
|
52
|
-
/***
|
|
53
|
-
* @param options
|
|
54
|
-
*/
|
|
55
|
-
NgxLeafletTimedimensionPluginService.prototype.withTimeDimensionOptionsOptions = function (options) {
|
|
56
|
-
this.timeDimensionOptions = options;
|
|
57
|
-
return this;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* @param maxSpeed
|
|
61
|
-
*/
|
|
62
|
-
NgxLeafletTimedimensionPluginService.prototype.withMaxSpeed = function (maxSpeed) {
|
|
63
|
-
this.maxSpeed = maxSpeed;
|
|
64
|
-
return this;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* @param minSpeed
|
|
68
|
-
*/
|
|
69
|
-
NgxLeafletTimedimensionPluginService.prototype.withMinSpeed = function (minSpeed) {
|
|
70
|
-
this.minSpeed = minSpeed;
|
|
71
|
-
return this;
|
|
72
|
-
};
|
|
73
|
-
/**
|
|
74
|
-
*
|
|
75
|
-
* @param startTime
|
|
76
|
-
* @param endTime
|
|
77
|
-
*/
|
|
78
|
-
NgxLeafletTimedimensionPluginService.prototype.refreshAvailableTimes = function (startTime, endTime) {
|
|
79
|
-
this.timeDimension.setAvailableTimes(L__namespace.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), 'replace');
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
*
|
|
83
|
-
*/
|
|
84
|
-
NgxLeafletTimedimensionPluginService.prototype.getCurrentTime = function () {
|
|
85
|
-
return this.timeDimension.getCurrentTime();
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* @param time
|
|
89
|
-
*/
|
|
90
|
-
NgxLeafletTimedimensionPluginService.prototype.setCurrentTime = function (time) {
|
|
91
|
-
this.timeDimension.setCurrentTime(new Date(time));
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
*
|
|
95
|
-
*/
|
|
96
|
-
NgxLeafletTimedimensionPluginService.prototype.autoApdate = function () {
|
|
97
|
-
return (this.getUpperTimeLimit() === null || this.getUpperTimeLimit() === this.timeDimension.getCurrentTime());
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
*/
|
|
101
|
-
NgxLeafletTimedimensionPluginService.prototype.getLowerTimeLimit = function () {
|
|
102
|
-
return this.timeDimension.getAvailableTimes()[0];
|
|
103
|
-
};
|
|
104
|
-
/**
|
|
105
|
-
*
|
|
106
|
-
*/
|
|
107
|
-
NgxLeafletTimedimensionPluginService.prototype.refreshTimeDimensionAtLastTime = function (time, range) {
|
|
108
|
-
var endTime = new Date(time);
|
|
109
|
-
var startTime = new Date(time - range);
|
|
110
|
-
this.refreshAvailableTimes(startTime, endTime);
|
|
111
|
-
};
|
|
112
|
-
/**
|
|
113
|
-
*
|
|
114
|
-
*/
|
|
115
|
-
NgxLeafletTimedimensionPluginService.prototype.getUpperTimeLimit = function () {
|
|
116
|
-
var length = this.timeDimension.getAvailableTimes().length;
|
|
117
|
-
return this.timeDimension.getAvailableTimes()[length - 1];
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
*
|
|
121
|
-
* @param time
|
|
122
|
-
*/
|
|
123
|
-
NgxLeafletTimedimensionPluginService.prototype.setTransitionTime = function (time) {
|
|
124
|
-
this.player.setTransitionTime(time);
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
*
|
|
128
|
-
* @param step
|
|
129
|
-
*/
|
|
130
|
-
NgxLeafletTimedimensionPluginService.prototype.play = function (step) {
|
|
131
|
-
this.player.start(step);
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* @param looped
|
|
135
|
-
*/
|
|
136
|
-
NgxLeafletTimedimensionPluginService.prototype.setPlayerToLoop = function (looped) {
|
|
137
|
-
this.player.setLooped(looped);
|
|
138
|
-
};
|
|
139
|
-
Object.defineProperty(NgxLeafletTimedimensionPluginService.prototype, "period", {
|
|
140
|
-
/**
|
|
141
|
-
*
|
|
142
|
-
* @param value
|
|
143
|
-
*/
|
|
144
|
-
set: function (value) {
|
|
145
|
-
this._period = value;
|
|
146
|
-
},
|
|
147
|
-
enumerable: false,
|
|
148
|
-
configurable: true
|
|
149
|
-
});
|
|
150
|
-
/**
|
|
151
|
-
*/
|
|
152
|
-
NgxLeafletTimedimensionPluginService.prototype.applyTimeDimensionPlugin = function () {
|
|
153
|
-
var _this = this;
|
|
154
|
-
if (!this.map) {
|
|
155
|
-
alert('Impossibile aggiungere il plugin timedimension');
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
this.timeDimension = new L__namespace.TimeDimension(this.timeDimensionOptions);
|
|
159
|
-
this.player = new L__namespace.TimeDimension.Player(this.playerOptions, this.timeDimension);
|
|
160
|
-
this.timeDimensionControl = new L__namespace.Control.TimeDimension({
|
|
161
|
-
player: this.player,
|
|
162
|
-
loopButton: true,
|
|
163
|
-
playReverseButton: true,
|
|
164
|
-
timeSlider: this.isMd(),
|
|
165
|
-
speedSlider: this.isLg(),
|
|
166
|
-
position: this.position,
|
|
167
|
-
minSpeed: this.minSpeed,
|
|
168
|
-
maxSpeed: this.maxSpeed,
|
|
169
|
-
timeZones: ['Local', 'UTC'],
|
|
170
|
-
});
|
|
171
|
-
this.player.on('play', function (eo) {
|
|
172
|
-
_this._playEnabled = true;
|
|
173
|
-
});
|
|
174
|
-
this.player.on('stop', function (eo) {
|
|
175
|
-
_this._playEnabled = false;
|
|
176
|
-
});
|
|
177
|
-
this.timeDimension.on('timeload', function () {
|
|
178
|
-
_this.onLoadTimeChaged();
|
|
179
|
-
});
|
|
180
|
-
this.timeDimension.on('availabletimeschanged', function (availableTimes) {
|
|
181
|
-
_this.onAvailableTimeChangedChaged();
|
|
182
|
-
});
|
|
183
|
-
this.map.timeDimension = this.timeDimension;
|
|
184
|
-
this.map.addControl(this.timeDimensionControl);
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
/**
|
|
188
|
-
*
|
|
189
|
-
*/
|
|
190
|
-
NgxLeafletTimedimensionPluginService.prototype.onLoadTimeChaged = function () {
|
|
191
|
-
};
|
|
192
|
-
/**
|
|
193
|
-
*
|
|
194
|
-
*/
|
|
195
|
-
NgxLeafletTimedimensionPluginService.prototype.onAvailableTimeChangedChaged = function () {
|
|
196
|
-
};
|
|
197
|
-
/**
|
|
198
|
-
*
|
|
199
|
-
*/
|
|
200
|
-
NgxLeafletTimedimensionPluginService.prototype.isMd = function () {
|
|
201
|
-
return this.breakpointObserver.isMatched(['(min-width: 768px)']);
|
|
202
|
-
};
|
|
203
|
-
/**
|
|
204
|
-
*
|
|
205
|
-
*/
|
|
206
|
-
NgxLeafletTimedimensionPluginService.prototype.isLg = function () {
|
|
207
|
-
return this.breakpointObserver.isMatched(['(min-width: 992px)']);
|
|
208
|
-
};
|
|
209
|
-
return NgxLeafletTimedimensionPluginService;
|
|
210
|
-
}());
|
|
211
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginService, deps: [{ token: i1__namespace.BreakpointObserver }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
212
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginService, providedIn: 'root' });
|
|
213
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
214
|
-
type: i0.Injectable,
|
|
215
|
-
args: [{
|
|
216
|
-
providedIn: 'root'
|
|
217
|
-
}]
|
|
218
|
-
}], ctorParameters: function () { return [{ type: i1__namespace.BreakpointObserver }]; } });
|
|
219
|
-
|
|
220
|
-
var NgxLeafletTimedimensionPluginModule = /** @class */ (function () {
|
|
221
|
-
function NgxLeafletTimedimensionPluginModule() {
|
|
222
|
-
}
|
|
223
|
-
return NgxLeafletTimedimensionPluginModule;
|
|
224
|
-
}());
|
|
225
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
226
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginModule });
|
|
227
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginModule, imports: [[]] });
|
|
228
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0__namespace, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
229
|
-
type: i0.NgModule,
|
|
230
|
-
args: [{
|
|
231
|
-
declarations: [],
|
|
232
|
-
imports: [],
|
|
233
|
-
exports: []
|
|
234
|
-
}]
|
|
235
|
-
}] });
|
|
236
|
-
|
|
237
|
-
/*
|
|
238
|
-
* Public API Surface of ngx-leaflet-timedimension-plugin
|
|
239
|
-
*/
|
|
240
|
-
|
|
241
|
-
/**
|
|
242
|
-
* Generated bundle index. Do not edit.
|
|
243
|
-
*/
|
|
244
|
-
|
|
245
|
-
exports.NgxLeafletTimedimensionPluginModule = NgxLeafletTimedimensionPluginModule;
|
|
246
|
-
exports.NgxLeafletTimedimensionPluginService = NgxLeafletTimedimensionPluginService;
|
|
247
|
-
|
|
248
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
249
|
-
|
|
250
|
-
}));
|
|
251
|
-
//# sourceMappingURL=geosdi-ngx-leaflet-timedimension-plugin.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geosdi-ngx-leaflet-timedimension-plugin.umd.js","sources":["../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.service.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.module.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/public-api.ts","../../../../projects/geosdi/ngx-leaflet-timedimension-plugin/src/geosdi-ngx-leaflet-timedimension-plugin.ts"],"sourcesContent":["import {Inject, Injectable} from '@angular/core';\nimport * as L from 'leaflet';\nimport {BreakpointObserver} from \"@angular/cdk/layout\";\nimport 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';\n\n/**\n * @param title\n * @param pageSize\n * @param action\n */\n\nexport interface INgxLeafletTimedimensionPluginService {\n\n /**\n * @param map\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withTimeDimensionOptionsOptions(options: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param position\n */\n withPosition(position: 'topleft' | 'topright' | 'bottomleft' | 'bottomright'): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /*\n */\n applyTimeDimensionPlugin(): void;\n\n /**\n * @param startTime\n * @param endTime\n */\n refreshAvailableTimes(startTime: Date, endTime: Date): void;\n\n /**\n */\n getCurrentTime(): number;\n\n /**\n */\n getLowerTimeLimit(): number;\n\n /**\n * @param time\n * @param range\n */\n refreshTimeDimensionAtLastTime(time: number, range: number);\n\n /**\n */\n getUpperTimeLimit(): number;\n\n /**\n * @param step\n */\n play(step: number);\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void;\n\n /**\n * @param time\n */\n setCurrentTime(time: number): any;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxLeafletTimedimensionPluginService implements INgxLeafletTimedimensionPluginService{\n\n private player: L.TimeDimension.Player;\n private _playEnabled = false;\n private playerOptions: any;\n private timeDimensionOptions: any;\n private timeDimensionControl: L.Control.TimeDimension;\n private timeDimension: L.TimeDimension;\n private map: any;\n private _period: string\n private position: string = 'topleft'\n private minSpeed: number = 1;\n private maxSpeed: number = 5;\n\n constructor(public breakpointObserver: BreakpointObserver) {\n }\n\n /**\n * @param range\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService {\n this.map = map;\n return this;\n }\n\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService {\n this.playerOptions = options;\n return this;\n }\n\n withPosition(position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\"): INgxLeafletTimedimensionPluginService {\n this.position = position;\n return this;\n }\n\n /***\n * @param options\n */\n withTimeDimensionOptionsOptions(options: any): INgxLeafletTimedimensionPluginService {\n this.timeDimensionOptions = options;\n return this;\n }\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService {\n this.maxSpeed = maxSpeed\n return this;\n }\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService {\n this.minSpeed = minSpeed;\n return this;\n }\n\n /**\n *\n * @param startTime\n * @param endTime\n */\n public refreshAvailableTimes(startTime: Date, endTime: Date) {\n this.timeDimension.setAvailableTimes( L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), 'replace');\n }\n\n /**\n *\n */\n public getCurrentTime(): number {\n return this.timeDimension.getCurrentTime();\n }\n\n /**\n * @param time\n */\n public setCurrentTime(time: number): any {\n this.timeDimension.setCurrentTime(new Date(time));\n }\n\n /**\n *\n */\n public autoApdate(): boolean {\n return (this.getUpperTimeLimit() === null || this.getUpperTimeLimit() === this.timeDimension.getCurrentTime());\n }\n\n /**\n */\n public getLowerTimeLimit(): number {\n return this.timeDimension.getAvailableTimes()[0];\n }\n\n /**\n *\n */\n refreshTimeDimensionAtLastTime(time: number, range: number) {\n const endTime = new Date(time);\n const startTime = new Date(time - range);\n this.refreshAvailableTimes(startTime, endTime);\n }\n\n /**\n *\n */\n getUpperTimeLimit(): number {\n const length = this.timeDimension.getAvailableTimes().length;\n return this.timeDimension.getAvailableTimes()[length - 1];\n }\n\n /**\n *\n * @param time\n */\n setTransitionTime(time: number) {\n this.player.setTransitionTime(time);\n }\n\n /**\n *\n * @param step\n */\n play(step: number) {\n this.player.start(step);\n }\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void {\n this.player.setLooped(looped);\n }\n\n /**\n *\n * @param value\n */\n set period(value: string) {\n this._period = value;\n }\n\n /**\n */\n applyTimeDimensionPlugin(): void {\n if (!this.map) {\n alert('Impossibile aggiungere il plugin timedimension');\n } else {\n this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);\n this.player = new L.TimeDimension.Player(this.playerOptions, this.timeDimension);\n this.timeDimensionControl = new L.Control.TimeDimension({\n player: this.player,\n loopButton: true,\n playReverseButton: true,\n timeSlider: this.isMd(),\n speedSlider: this.isLg(),\n position: this.position,\n minSpeed: this.minSpeed,\n maxSpeed: this.maxSpeed,\n timeZones: ['Local', 'UTC'],\n });\n\n this.player.on('play', (eo) => {\n this._playEnabled = true;\n });\n this.player.on('stop', (eo) => {\n this._playEnabled = false;\n });\n this.timeDimension.on('timeload', () => {\n this.onLoadTimeChaged()\n });\n this.timeDimension.on('availabletimeschanged', (availableTimes) => {\n this.onAvailableTimeChangedChaged();\n });\n this.map.timeDimension = this.timeDimension;\n this.map.addControl(this.timeDimensionControl);\n }\n }\n\n /**\n *\n */\n protected onLoadTimeChaged(): void {\n\n }\n\n /**\n *\n */\n protected onAvailableTimeChangedChaged(): void {\n\n }\n\n /**\n *\n */\n private isMd(): boolean {\n return this.breakpointObserver.isMatched(['(min-width: 768px)']);\n }\n\n /**\n *\n */\n private isLg(): boolean {\n return this.breakpointObserver.isMatched(['(min-width: 992px)']);\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n declarations: [\n ],\n imports: [\n ],\n exports: [\n ]\n})\nexport class NgxLeafletTimedimensionPluginModule { }\n","/*\n * Public API Surface of ngx-leaflet-timedimension-plugin\n */\n\nexport * from './lib/ngx-leaflet-timedimension-plugin.service';\nexport * from './lib/ngx-leaflet-timedimension-plugin.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["L","Injectable","NgModule"],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class NgxLeafletTimedimensionPluginModule {
|
|
4
|
-
}
|
|
5
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
7
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, imports: [[]] });
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
9
|
-
type: NgModule,
|
|
10
|
-
args: [{
|
|
11
|
-
declarations: [],
|
|
12
|
-
imports: [],
|
|
13
|
-
exports: []
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2Vvc2RpL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luL3NyYy9saWIvbmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXpDLE1BQU0sT0FBTyxtQ0FBbUM7O29KQUFuQyxtQ0FBbUM7cUpBQW5DLG1DQUFtQztxSkFBbkMsbUNBQW1DLFlBTHJDLEVBQ1I7NEZBSVUsbUNBQW1DO2tCQVIvQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRSxFQUNSO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luTW9kdWxlIHsgfVxuIl19
|