@geosdi/ngx-leaflet-timedimension-plugin 1.0.5 → 1.0.7
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 +191 -0
- package/fesm2015/{geosdi-ngx-leaflet-timedimension-plugin.js → geosdi-ngx-leaflet-timedimension-plugin.mjs} +13 -9
- package/fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs.map +1 -0
- package/fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs +219 -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 -1
- package/package.json +25 -11
- 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/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- /package/{geosdi-ngx-leaflet-timedimension-plugin.d.ts → index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,24 +1,56 @@
|
|
|
1
1
|
# NgxLeafletTimedimensionPlugin
|
|
2
2
|
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.0.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
# General information
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
> Note: Don't forget to add `--project ngx-leaflet-timedimension-plugin` or else it will be added to the default project in your `angular.json` file.
|
|
7
|
+
Service to wrap leaflet timedimensione see documentation to https://github.com/socib/Leaflet.TimeDimension
|
|
9
8
|
|
|
10
|
-
##
|
|
9
|
+
## Installation
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
`npm i @geosdi/ngx-leaflet-timedimension-plugin --save`
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
It depends on :
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
"@angular/common": ">=13.0.0",
|
|
16
|
+
"@angular/core": ">=13.0.0",
|
|
17
|
+
"leaflet": ">=1.7.1",
|
|
18
|
+
"leaflet-timedimension": "^1.1.1"
|
|
17
19
|
|
|
18
|
-
##
|
|
20
|
+
## Usage
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
```typescript
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
import { Injectable } from '@angular/core';
|
|
25
|
+
import {TimeDimensionExtensionService} from "./time-dimension-extension-service";
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
@Injectable({
|
|
28
|
+
providedIn: 'root'
|
|
29
|
+
})
|
|
30
|
+
export class Service {
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
constructor(private ngxLeafletTimedimensionPluginService: TimeDimensionExtensionService) {
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public addPlugin() {
|
|
37
|
+
//4/11/2021
|
|
38
|
+
const endTime = new Date(1636022400000);
|
|
39
|
+
//28/10/2021
|
|
40
|
+
const startTime = new Date(1636022400000 - 604800000);
|
|
41
|
+
this.ngxLeafletTimedimensionPluginService
|
|
42
|
+
.withTimeDimensionOptionsOptions({
|
|
43
|
+
times: L.TimeDimension.Util.explodeTimeRange(startTime, endTime, "PT5M"),
|
|
44
|
+
period: "P5M",
|
|
45
|
+
})
|
|
46
|
+
.withMap(this.map).withPlayerOptions({loop: true, transitionTime: 333}).applyTimeDimensionPlugin();
|
|
47
|
+
this.ngxLeafletTimedimensionPluginService.setPlayerToLoop(true);
|
|
48
|
+
wmsLayer.addTo(this.map);
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
this.ngxLeafletTimedimensionPluginService.setPlayerToLoop(false);
|
|
51
|
+
}, 2000);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
5
|
+
* @email vito.salvia@gmail.com
|
|
6
|
+
*/
|
|
7
|
+
export class NgxLeafletTimedimensionPluginModule {
|
|
8
|
+
}
|
|
9
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
11
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
declarations: [],
|
|
16
|
+
imports: [],
|
|
17
|
+
exports: []
|
|
18
|
+
}]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2Vvc2RpL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luL3NyYy9saWIvbmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDOzs7R0FHRztBQVNILE1BQU0sT0FBTyxtQ0FBbUM7O21KQUFuQyxtQ0FBbUM7b0pBQW5DLG1DQUFtQztvSkFBbkMsbUNBQW1DOzJGQUFuQyxtQ0FBbUM7a0JBUi9DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQ2I7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7b0JBQ0QsT0FBTyxFQUFFLEVBQ1I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBhdXRob3IgVml0byBTYWx2aWEgLSBDTlIgSU1BQSBnZW9TREkgR3JvdXBcbiAqIEBlbWFpbCB2aXRvLnNhbHZpYUBnbWFpbC5jb21cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIE5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as L from 'leaflet';
|
|
3
|
+
import { BreakpointObserver } from "@angular/cdk/layout";
|
|
4
|
+
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/cdk/layout";
|
|
7
|
+
export class NgxLeafletTimedimensionPluginService {
|
|
8
|
+
constructor(breakpointObserver) {
|
|
9
|
+
this.breakpointObserver = breakpointObserver;
|
|
10
|
+
this._playEnabled = false;
|
|
11
|
+
this.position = 'topleft';
|
|
12
|
+
this.minSpeed = 1;
|
|
13
|
+
this.maxSpeed = 5;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @param range
|
|
17
|
+
*/
|
|
18
|
+
withMap(map) {
|
|
19
|
+
this.map = map;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
withPlayerOptions(options) {
|
|
23
|
+
this.playerOptions = options;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
withPosition(position) {
|
|
27
|
+
this.position = position;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/***
|
|
31
|
+
* @param options
|
|
32
|
+
*/
|
|
33
|
+
withTimeDimensionOptionsOptions(options) {
|
|
34
|
+
this.timeDimensionOptions = options;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @param maxSpeed
|
|
39
|
+
*/
|
|
40
|
+
withMaxSpeed(maxSpeed) {
|
|
41
|
+
this.maxSpeed = maxSpeed;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @param minSpeed
|
|
46
|
+
*/
|
|
47
|
+
withMinSpeed(minSpeed) {
|
|
48
|
+
this.minSpeed = minSpeed;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @param startTime
|
|
54
|
+
* @param endTime
|
|
55
|
+
*/
|
|
56
|
+
refreshAvailableTimes(startTime, endTime) {
|
|
57
|
+
this.timeDimension.setAvailableTimes(L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), 'replace');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
getCurrentTime() {
|
|
63
|
+
return this.timeDimension.getCurrentTime();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @param time
|
|
67
|
+
*/
|
|
68
|
+
setCurrentTime(time) {
|
|
69
|
+
this.timeDimension.setCurrentTime(new Date(time));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
autoApdate() {
|
|
75
|
+
return (this.getUpperTimeLimit() === null || 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
|
+
*/
|
|
168
|
+
onAvailableTimeChangedChaged() {
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
isMd() {
|
|
174
|
+
return this.breakpointObserver.isMatched(['(min-width: 768px)']);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
*
|
|
178
|
+
*/
|
|
179
|
+
isLg() {
|
|
180
|
+
return this.breakpointObserver.isMatched(['(min-width: 992px)']);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/** @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 });
|
|
184
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: 'root' });
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
186
|
+
type: Injectable,
|
|
187
|
+
args: [{
|
|
188
|
+
providedIn: 'root'
|
|
189
|
+
}]
|
|
190
|
+
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvbGliL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLG1FQUFtRSxDQUFDOzs7QUEyRjNFLE1BQU0sT0FBTyxvQ0FBb0M7SUFjL0MsWUFBbUIsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFYakQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFPckIsYUFBUSxHQUFXLFNBQVMsQ0FBQTtRQUM1QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7SUFHN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLEdBQVE7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQStEO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsK0JBQStCLENBQUMsT0FBWTtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsT0FBTyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFBO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFFBQWdCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxTQUFlLEVBQUUsT0FBYTtRQUN6RCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxJQUFZO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2pILENBQUM7SUFFRDtPQUNHO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILDhCQUE4QixDQUFDLElBQVksRUFBRSxLQUFhO1FBQ3hELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxJQUFZO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLE1BQWU7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEO09BQ0c7SUFDSCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDYixLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO2dCQUN0RCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3hCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUNoRSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDUSxnQkFBZ0I7SUFFM0IsQ0FBQztJQUVEOztPQUVHO0lBQ1EsNEJBQTRCO0lBRXZDLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOztvSkE5TVUsb0NBQW9DO3dKQUFwQyxvQ0FBb0MsY0FGbkMsTUFBTTsyRkFFUCxvQ0FBb0M7a0JBSGhELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2xheW91dFwiO1xuaW1wb3J0ICdub2RlX21vZHVsZXMvbGVhZmxldC10aW1lZGltZW5zaW9uL2Rpc3QvbGVhZmxldC50aW1lZGltZW5zaW9uLm1pbic7XG5cbi8qKlxuICogQGF1dGhvciBWaXRvIFNhbHZpYSAtIENOUiBJTUFBIGdlb1NESSBHcm91cFxuICogQGVtYWlsIHZpdG8uc2FsdmlhQGdtYWlsLmNvbVxuICovXG5cbi8qKlxuICogQHBhcmFtIHRpdGxlXG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcblxuICAvKipcbiAgICogQHBhcmFtIG1hcFxuICAgKi9cbiAgd2l0aE1hcChtYXA6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICB3aXRoUGxheWVyT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcG9zaXRpb25cbiAgICovXG4gIHdpdGhQb3NpdGlvbihwb3NpdGlvbjogJ3RvcGxlZnQnIHwgJ3RvcHJpZ2h0JyB8ICdib3R0b21sZWZ0JyB8ICdib3R0b21yaWdodCcpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWluU3BlZWRcbiAgICovXG4gIHdpdGhNaW5TcGVlZChtaW5TcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG1heFNwZWVkXG4gICAqL1xuICB3aXRoTWF4U3BlZWQobWF4U3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLypcbiAgICovXG4gIGFwcGx5VGltZURpbWVuc2lvblBsdWdpbigpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc3RhcnRUaW1lXG4gICAqIEBwYXJhbSBlbmRUaW1lXG4gICAqL1xuICByZWZyZXNoQXZhaWxhYmxlVGltZXMoc3RhcnRUaW1lOiBEYXRlLCBlbmRUaW1lOiBEYXRlKTogdm9pZDtcblxuICAvKipcbiAgICovXG4gIGdldEN1cnJlbnRUaW1lKCk6IG51bWJlcjtcblxuICAvKipcbiAgICovXG4gIGdldExvd2VyVGltZUxpbWl0KCk6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIHRpbWVcbiAgICogQHBhcmFtIHJhbmdlXG4gICAqL1xuICByZWZyZXNoVGltZURpbWVuc2lvbkF0TGFzdFRpbWUodGltZTogbnVtYmVyLCByYW5nZTogbnVtYmVyKTtcblxuICAvKipcbiAgICovXG4gIGdldFVwcGVyVGltZUxpbWl0KCk6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIHN0ZXBcbiAgICovXG4gIHBsYXkoc3RlcDogbnVtYmVyKTtcblxuICAvKipcbiAgICogQHBhcmFtIGxvb3BlZFxuICAgKi9cbiAgc2V0UGxheWVyVG9Mb29wKGxvb3BlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqL1xuICBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSBpbXBsZW1lbnRzIElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2V7XG5cbiAgcHJpdmF0ZSBwbGF5ZXI6IEwuVGltZURpbWVuc2lvbi5QbGF5ZXI7XG4gIHByaXZhdGUgX3BsYXlFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcGxheWVyT3B0aW9uczogYW55O1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb25PcHRpb25zOiBhbnk7XG4gIHByaXZhdGUgdGltZURpbWVuc2lvbkNvbnRyb2w6IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uO1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb246IEwuVGltZURpbWVuc2lvbjtcbiAgcHJpdmF0ZSBtYXA6IGFueTtcbiAgcHJpdmF0ZSBfcGVyaW9kOiBzdHJpbmdcbiAgcHJpdmF0ZSBwb3NpdGlvbjogc3RyaW5nID0gJ3RvcGxlZnQnXG4gIHByaXZhdGUgbWluU3BlZWQ6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgbWF4U3BlZWQ6IG51bWJlciA9IDU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHJhbmdlXG4gICAqL1xuICB3aXRoTWFwKG1hcDogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5tYXAgPSBtYXA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3aXRoUGxheWVyT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLnBsYXllck9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBcInRvcGxlZnRcIiB8IFwidG9wcmlnaHRcIiB8IFwiYm90dG9tbGVmdFwiIHwgXCJib3R0b21yaWdodFwiKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zID0gb3B0aW9ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWF4U3BlZWRcbiAgICovXG4gIHdpdGhNYXhTcGVlZChtYXhTcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5tYXhTcGVlZCA9IG1heFNwZWVkXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG1pblNwZWVkXG4gICAqL1xuICB3aXRoTWluU3BlZWQobWluU3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWluU3BlZWQgPSBtaW5TcGVlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnRUaW1lXG4gICAqIEBwYXJhbSBlbmRUaW1lXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZTogRGF0ZSwgZW5kVGltZTogRGF0ZSkge1xuICAgIHRoaXMudGltZURpbWVuc2lvbi5zZXRBdmFpbGFibGVUaW1lcyggTC5UaW1lRGltZW5zaW9uLlV0aWwuZXhwbG9kZVRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUsIHRoaXMuX3BlcmlvZCksICdyZXBsYWNlJyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VGltZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0Q3VycmVudFRpbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnRUaW1lKHRpbWU6IG51bWJlcik6IGFueSB7XG4gICAgdGhpcy50aW1lRGltZW5zaW9uLnNldEN1cnJlbnRUaW1lKG5ldyBEYXRlKHRpbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHVibGljIGF1dG9BcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmdldFVwcGVyVGltZUxpbWl0KCkgPT09IG51bGwgfHwgdGhpcy5nZXRVcHBlclRpbWVMaW1pdCgpID09PSB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0Q3VycmVudFRpbWUoKSk7XG4gIH1cblxuICAvKipcbiAgICovXG4gIHB1YmxpYyBnZXRMb3dlclRpbWVMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcmVmcmVzaFRpbWVEaW1lbnNpb25BdExhc3RUaW1lKHRpbWU6IG51bWJlciwgcmFuZ2U6IG51bWJlcikge1xuICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZSh0aW1lKTtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBuZXcgRGF0ZSh0aW1lIC0gcmFuZ2UpO1xuICAgIHRoaXMucmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZSwgZW5kVGltZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIGdldFVwcGVyVGltZUxpbWl0KCk6IG51bWJlciB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKCkubGVuZ3RoO1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKVtsZW5ndGggLSAxXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgc2V0VHJhbnNpdGlvblRpbWUodGltZTogbnVtYmVyKSB7XG4gICAgdGhpcy5wbGF5ZXIuc2V0VHJhbnNpdGlvblRpbWUodGltZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0ZXBcbiAgICovXG4gIHBsYXkoc3RlcDogbnVtYmVyKSB7XG4gICAgdGhpcy5wbGF5ZXIuc3RhcnQoc3RlcCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGxvb3BlZFxuICAgKi9cbiAgc2V0UGxheWVyVG9Mb29wKGxvb3BlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucGxheWVyLnNldExvb3BlZChsb29wZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgc2V0IHBlcmlvZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGVyaW9kID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICovXG4gIGFwcGx5VGltZURpbWVuc2lvblBsdWdpbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFwKSB7XG4gICAgICBhbGVydCgnSW1wb3NzaWJpbGUgYWdnaXVuZ2VyZSBpbCBwbHVnaW4gdGltZWRpbWVuc2lvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb24gPSBuZXcgTC5UaW1lRGltZW5zaW9uKHRoaXMudGltZURpbWVuc2lvbk9wdGlvbnMpO1xuICAgICAgdGhpcy5wbGF5ZXIgPSBuZXcgTC5UaW1lRGltZW5zaW9uLlBsYXllcih0aGlzLnBsYXllck9wdGlvbnMsIHRoaXMudGltZURpbWVuc2lvbik7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uKHtcbiAgICAgICAgcGxheWVyOiB0aGlzLnBsYXllcixcbiAgICAgICAgbG9vcEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgcGxheVJldmVyc2VCdXR0b246IHRydWUsXG4gICAgICAgIHRpbWVTbGlkZXI6IHRoaXMuaXNNZCgpLFxuICAgICAgICBzcGVlZFNsaWRlcjogdGhpcy5pc0xnKCksXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxuICAgICAgICBtaW5TcGVlZDogdGhpcy5taW5TcGVlZCxcbiAgICAgICAgbWF4U3BlZWQ6IHRoaXMubWF4U3BlZWQsXG4gICAgICAgIHRpbWVab25lczogWydMb2NhbCcsICdVVEMnXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBsYXllci5vbigncGxheScsIChlbykgPT4ge1xuICAgICAgICB0aGlzLl9wbGF5RW5hYmxlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucGxheWVyLm9uKCdzdG9wJywgKGVvKSA9PiB7XG4gICAgICAgIHRoaXMuX3BsYXlFbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbi5vbigndGltZWxvYWQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMub25Mb2FkVGltZUNoYWdlZCgpXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbi5vbignYXZhaWxhYmxldGltZXNjaGFuZ2VkJywgKGF2YWlsYWJsZVRpbWVzKSA9PiB7XG4gICAgICAgIHRoaXMub25BdmFpbGFibGVUaW1lQ2hhbmdlZENoYWdlZCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcC50aW1lRGltZW5zaW9uID0gdGhpcy50aW1lRGltZW5zaW9uO1xuICAgICAgdGhpcy5tYXAuYWRkQ29udHJvbCh0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCAgb25Mb2FkVGltZUNoYWdlZCgpOiB2b2lkIHtcblxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgIG9uQXZhaWxhYmxlVGltZUNoYW5nZWRDaGFnZWQoKTogdm9pZCB7XG5cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBpc01kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoWycobWluLXdpZHRoOiA3NjhweCknXSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByaXZhdGUgaXNMZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKFsnKG1pbi13aWR0aDogOTkycHgpJ10pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, NgModule } from '@angular/core';
|
|
3
3
|
import * as L from 'leaflet';
|
|
4
|
-
import * as i1 from '@angular/cdk/layout';
|
|
5
4
|
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
5
|
+
import * as i1 from '@angular/cdk/layout';
|
|
6
6
|
|
|
7
7
|
class NgxLeafletTimedimensionPluginService {
|
|
8
8
|
constructor(breakpointObserver) {
|
|
@@ -180,21 +180,25 @@ class NgxLeafletTimedimensionPluginService {
|
|
|
180
180
|
return this.breakpointObserver.isMatched(['(min-width: 992px)']);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
184
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
183
|
+
/** @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 });
|
|
184
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: 'root' });
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
186
186
|
type: Injectable,
|
|
187
187
|
args: [{
|
|
188
188
|
providedIn: 'root'
|
|
189
189
|
}]
|
|
190
190
|
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
191
191
|
|
|
192
|
+
/**
|
|
193
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
194
|
+
* @email vito.salvia@gmail.com
|
|
195
|
+
*/
|
|
192
196
|
class NgxLeafletTimedimensionPluginModule {
|
|
193
197
|
}
|
|
194
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
195
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
196
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
198
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
199
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
200
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
198
202
|
type: NgModule,
|
|
199
203
|
args: [{
|
|
200
204
|
declarations: [],
|
|
@@ -212,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
|
212
216
|
*/
|
|
213
217
|
|
|
214
218
|
export { NgxLeafletTimedimensionPluginModule, NgxLeafletTimedimensionPluginService };
|
|
215
|
-
//# sourceMappingURL=geosdi-ngx-leaflet-timedimension-plugin.
|
|
219
|
+
//# 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 {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 * @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 /**\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/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\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":[],"mappings":"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"}
|
|
@@ -0,0 +1,219 @@
|
|
|
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
|
+
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
6
|
+
|
|
7
|
+
class NgxLeafletTimedimensionPluginService {
|
|
8
|
+
constructor(breakpointObserver) {
|
|
9
|
+
this.breakpointObserver = breakpointObserver;
|
|
10
|
+
this._playEnabled = false;
|
|
11
|
+
this.position = 'topleft';
|
|
12
|
+
this.minSpeed = 1;
|
|
13
|
+
this.maxSpeed = 5;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @param range
|
|
17
|
+
*/
|
|
18
|
+
withMap(map) {
|
|
19
|
+
this.map = map;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
withPlayerOptions(options) {
|
|
23
|
+
this.playerOptions = options;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
withPosition(position) {
|
|
27
|
+
this.position = position;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/***
|
|
31
|
+
* @param options
|
|
32
|
+
*/
|
|
33
|
+
withTimeDimensionOptionsOptions(options) {
|
|
34
|
+
this.timeDimensionOptions = options;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @param maxSpeed
|
|
39
|
+
*/
|
|
40
|
+
withMaxSpeed(maxSpeed) {
|
|
41
|
+
this.maxSpeed = maxSpeed;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @param minSpeed
|
|
46
|
+
*/
|
|
47
|
+
withMinSpeed(minSpeed) {
|
|
48
|
+
this.minSpeed = minSpeed;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
*
|
|
53
|
+
* @param startTime
|
|
54
|
+
* @param endTime
|
|
55
|
+
*/
|
|
56
|
+
refreshAvailableTimes(startTime, endTime) {
|
|
57
|
+
this.timeDimension.setAvailableTimes(L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), 'replace');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
getCurrentTime() {
|
|
63
|
+
return this.timeDimension.getCurrentTime();
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @param time
|
|
67
|
+
*/
|
|
68
|
+
setCurrentTime(time) {
|
|
69
|
+
this.timeDimension.setCurrentTime(new Date(time));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
autoApdate() {
|
|
75
|
+
return (this.getUpperTimeLimit() === null || 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
|
+
*/
|
|
168
|
+
onAvailableTimeChangedChaged() {
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
isMd() {
|
|
174
|
+
return this.breakpointObserver.isMatched(['(min-width: 768px)']);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
*
|
|
178
|
+
*/
|
|
179
|
+
isLg() {
|
|
180
|
+
return this.breakpointObserver.isMatched(['(min-width: 992px)']);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/** @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 });
|
|
184
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: 'root' });
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
186
|
+
type: Injectable,
|
|
187
|
+
args: [{
|
|
188
|
+
providedIn: 'root'
|
|
189
|
+
}]
|
|
190
|
+
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
194
|
+
* @email vito.salvia@gmail.com
|
|
195
|
+
*/
|
|
196
|
+
class NgxLeafletTimedimensionPluginModule {
|
|
197
|
+
}
|
|
198
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
199
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
200
|
+
/** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
|
|
201
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
|
|
202
|
+
type: NgModule,
|
|
203
|
+
args: [{
|
|
204
|
+
declarations: [],
|
|
205
|
+
imports: [],
|
|
206
|
+
exports: []
|
|
207
|
+
}]
|
|
208
|
+
}] });
|
|
209
|
+
|
|
210
|
+
/*
|
|
211
|
+
* Public API Surface of ngx-leaflet-timedimension-plugin
|
|
212
|
+
*/
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Generated bundle index. Do not edit.
|
|
216
|
+
*/
|
|
217
|
+
|
|
218
|
+
export { NgxLeafletTimedimensionPluginModule, NgxLeafletTimedimensionPluginService };
|
|
219
|
+
//# 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 {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 * @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 /**\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/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\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":[],"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,10 @@
|
|
|
1
1
|
import { BreakpointObserver } from "@angular/cdk/layout";
|
|
2
2
|
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @author Vito Salvia - CNR IMAA geoSDI Group
|
|
6
|
+
* @email vito.salvia@gmail.com
|
|
7
|
+
*/
|
|
4
8
|
/**
|
|
5
9
|
* @param title
|
|
6
10
|
* @param pageSize
|
|
@@ -64,7 +68,7 @@ export interface INgxLeafletTimedimensionPluginService {
|
|
|
64
68
|
*/
|
|
65
69
|
setCurrentTime(time: number): any;
|
|
66
70
|
}
|
|
67
|
-
export declare
|
|
71
|
+
export declare class NgxLeafletTimedimensionPluginService implements INgxLeafletTimedimensionPluginService {
|
|
68
72
|
breakpointObserver: BreakpointObserver;
|
|
69
73
|
private player;
|
|
70
74
|
private _playEnabled;
|
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.0.7",
|
|
4
4
|
"description": "Service to add timedimension to map",
|
|
5
5
|
"author": "Salvia Vito (vito.salvia@gmail.com)",
|
|
6
6
|
"keywords": [
|
|
@@ -13,18 +13,32 @@
|
|
|
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": ">=15.0.0",
|
|
20
|
+
"@angular/core": ">=15.0.0",
|
|
21
|
+
"leaflet": ">=1.9.3",
|
|
22
|
+
"typescript": ">=4.8.4"
|
|
23
|
+
},
|
|
24
|
+
"module": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
25
|
+
"es2020": "fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
26
|
+
"esm2020": "esm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
27
|
+
"fesm2020": "fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
28
|
+
"fesm2015": "fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
29
|
+
"typings": "index.d.ts",
|
|
30
|
+
"exports": {
|
|
31
|
+
"./package.json": {
|
|
32
|
+
"default": "./package.json"
|
|
33
|
+
},
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./index.d.ts",
|
|
36
|
+
"esm2020": "./esm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
37
|
+
"es2020": "./fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
38
|
+
"es2015": "./fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
39
|
+
"node": "./fesm2015/geosdi-ngx-leaflet-timedimension-plugin.mjs",
|
|
40
|
+
"default": "./fesm2020/geosdi-ngx-leaflet-timedimension-plugin.mjs"
|
|
41
|
+
}
|
|
22
42
|
},
|
|
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
43
|
"sideEffects": false
|
|
30
44
|
}
|
|
@@ -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 abstract 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
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as L from 'leaflet';
|
|
3
|
-
import { BreakpointObserver } from "@angular/cdk/layout";
|
|
4
|
-
import 'node_modules/leaflet-timedimension/dist/leaflet.timedimension.min';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/cdk/layout";
|
|
7
|
-
export class NgxLeafletTimedimensionPluginService {
|
|
8
|
-
constructor(breakpointObserver) {
|
|
9
|
-
this.breakpointObserver = breakpointObserver;
|
|
10
|
-
this._playEnabled = false;
|
|
11
|
-
this.position = 'topleft';
|
|
12
|
-
this.minSpeed = 1;
|
|
13
|
-
this.maxSpeed = 5;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* @param range
|
|
17
|
-
*/
|
|
18
|
-
withMap(map) {
|
|
19
|
-
this.map = map;
|
|
20
|
-
return this;
|
|
21
|
-
}
|
|
22
|
-
withPlayerOptions(options) {
|
|
23
|
-
this.playerOptions = options;
|
|
24
|
-
return this;
|
|
25
|
-
}
|
|
26
|
-
withPosition(position) {
|
|
27
|
-
this.position = position;
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
/***
|
|
31
|
-
* @param options
|
|
32
|
-
*/
|
|
33
|
-
withTimeDimensionOptionsOptions(options) {
|
|
34
|
-
this.timeDimensionOptions = options;
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @param maxSpeed
|
|
39
|
-
*/
|
|
40
|
-
withMaxSpeed(maxSpeed) {
|
|
41
|
-
this.maxSpeed = maxSpeed;
|
|
42
|
-
return this;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* @param minSpeed
|
|
46
|
-
*/
|
|
47
|
-
withMinSpeed(minSpeed) {
|
|
48
|
-
this.minSpeed = minSpeed;
|
|
49
|
-
return this;
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
* @param startTime
|
|
54
|
-
* @param endTime
|
|
55
|
-
*/
|
|
56
|
-
refreshAvailableTimes(startTime, endTime) {
|
|
57
|
-
this.timeDimension.setAvailableTimes(L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), 'replace');
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
*
|
|
61
|
-
*/
|
|
62
|
-
getCurrentTime() {
|
|
63
|
-
return this.timeDimension.getCurrentTime();
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @param time
|
|
67
|
-
*/
|
|
68
|
-
setCurrentTime(time) {
|
|
69
|
-
this.timeDimension.setCurrentTime(new Date(time));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
*
|
|
73
|
-
*/
|
|
74
|
-
autoApdate() {
|
|
75
|
-
return (this.getUpperTimeLimit() === null || 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
|
-
*/
|
|
168
|
-
onAvailableTimeChangedChaged() {
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
*
|
|
172
|
-
*/
|
|
173
|
-
isMd() {
|
|
174
|
-
return this.breakpointObserver.isMatched(['(min-width: 768px)']);
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
*
|
|
178
|
-
*/
|
|
179
|
-
isLg() {
|
|
180
|
-
return this.breakpointObserver.isMatched(['(min-width: 992px)']);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
184
|
-
/** @nocollapse */ NgxLeafletTimedimensionPluginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: 'root' });
|
|
185
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
|
|
186
|
-
type: Injectable,
|
|
187
|
-
args: [{
|
|
188
|
-
providedIn: 'root'
|
|
189
|
-
}]
|
|
190
|
-
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvbGliL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLG1FQUFtRSxDQUFDOzs7QUF1RjNFLE1BQU0sT0FBZ0Isb0NBQW9DO0lBY3hELFlBQW1CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBWGpELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBT3JCLGFBQVEsR0FBVyxTQUFTLENBQUE7UUFDNUIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBRzdCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxHQUFRO1FBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUErRDtRQUMxRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILCtCQUErQixDQUFDLE9BQVk7UUFDMUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsU0FBZSxFQUFFLE9BQWE7UUFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsSUFBWTtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVU7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQ7T0FDRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCw4QkFBOEIsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDZixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUMsTUFBTSxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCLENBQUMsSUFBWTtRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxNQUFlO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLE1BQU0sQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDtPQUNHO0lBQ0gsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2IsS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztnQkFDdEQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO2FBQzVCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ1EsZ0JBQWdCO0lBRTNCLENBQUM7SUFFRDs7T0FFRztJQUNRLDRCQUE0QjtJQUV2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7cUpBOU1tQixvQ0FBb0M7eUpBQXBDLG9DQUFvQyxjQUY1QyxNQUFNOzRGQUVFLG9DQUFvQztrQkFIekQsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XG5pbXBvcnQgJ25vZGVfbW9kdWxlcy9sZWFmbGV0LXRpbWVkaW1lbnNpb24vZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluJztcblxuLyoqXG4gKiBAcGFyYW0gdGl0bGVcbiAqIEBwYXJhbSBwYWdlU2l6ZVxuICogQHBhcmFtIGFjdGlvblxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXBcbiAgICovXG4gIHdpdGhNYXAobWFwOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHdpdGhUaW1lRGltZW5zaW9uT3B0aW9uc09wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIHBvc2l0aW9uXG4gICAqL1xuICB3aXRoUG9zaXRpb24ocG9zaXRpb246ICd0b3BsZWZ0JyB8ICd0b3ByaWdodCcgfCAnYm90dG9tbGVmdCcgfCAnYm90dG9tcmlnaHQnKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG1pblNwZWVkXG4gICAqL1xuICB3aXRoTWluU3BlZWQobWluU3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXhTcGVlZFxuICAgKi9cbiAgd2l0aE1heFNwZWVkKG1heFNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qXG4gICAqL1xuICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZDtcblxuICAvKipcbiAgICogQHBhcmFtIHN0YXJ0VGltZVxuICAgKiBAcGFyYW0gZW5kVGltZVxuICAgKi9cbiAgcmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZTogRGF0ZSwgZW5kVGltZTogRGF0ZSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRDdXJyZW50VGltZSgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRMb3dlclRpbWVMaW1pdCgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqIEBwYXJhbSByYW5nZVxuICAgKi9cbiAgcmVmcmVzaFRpbWVEaW1lbnNpb25BdExhc3RUaW1lKHRpbWU6IG51bWJlciwgcmFuZ2U6IG51bWJlcik7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRVcHBlclRpbWVMaW1pdCgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzdGVwXG4gICAqL1xuICBwbGF5KHN0ZXA6IG51bWJlcik7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBsb29wZWRcbiAgICovXG4gIHNldFBsYXllclRvTG9vcChsb29wZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgc2V0Q3VycmVudFRpbWUodGltZTogbnVtYmVyKTogYW55O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2UgaW1wbGVtZW50cyBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNle1xuXG4gIHByaXZhdGUgcGxheWVyOiBMLlRpbWVEaW1lbnNpb24uUGxheWVyO1xuICBwcml2YXRlIF9wbGF5RW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIHBsYXllck9wdGlvbnM6IGFueTtcbiAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uT3B0aW9uczogYW55O1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb25Db250cm9sOiBMLkNvbnRyb2wuVGltZURpbWVuc2lvbjtcbiAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uOiBMLlRpbWVEaW1lbnNpb247XG4gIHByaXZhdGUgbWFwOiBhbnk7XG4gIHByaXZhdGUgX3BlcmlvZDogc3RyaW5nXG4gIHByaXZhdGUgcG9zaXRpb246IHN0cmluZyA9ICd0b3BsZWZ0J1xuICBwcml2YXRlIG1pblNwZWVkOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIG1heFNwZWVkOiBudW1iZXIgPSA1O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByYW5nZVxuICAgKi9cbiAgd2l0aE1hcChtYXA6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWFwID0gbWFwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5wbGF5ZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHdpdGhQb3NpdGlvbihwb3NpdGlvbjogXCJ0b3BsZWZ0XCIgfCBcInRvcHJpZ2h0XCIgfCBcImJvdHRvbWxlZnRcIiB8IFwiYm90dG9tcmlnaHRcIik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKipcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHdpdGhUaW1lRGltZW5zaW9uT3B0aW9uc09wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy50aW1lRGltZW5zaW9uT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG1heFNwZWVkXG4gICAqL1xuICB3aXRoTWF4U3BlZWQobWF4U3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWF4U3BlZWQgPSBtYXhTcGVlZFxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtaW5TcGVlZFxuICAgKi9cbiAgd2l0aE1pblNwZWVkKG1pblNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLm1pblNwZWVkID0gbWluU3BlZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0VGltZVxuICAgKiBAcGFyYW0gZW5kVGltZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWU6IERhdGUsIGVuZFRpbWU6IERhdGUpIHtcbiAgICB0aGlzLnRpbWVEaW1lbnNpb24uc2V0QXZhaWxhYmxlVGltZXMoIEwuVGltZURpbWVuc2lvbi5VdGlsLmV4cGxvZGVUaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lLCB0aGlzLl9wZXJpb2QpLCAncmVwbGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFRpbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEN1cnJlbnRUaW1lKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHRpbWVcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnkge1xuICAgIHRoaXMudGltZURpbWVuc2lvbi5zZXRDdXJyZW50VGltZShuZXcgRGF0ZSh0aW1lKSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBhdXRvQXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5nZXRVcHBlclRpbWVMaW1pdCgpID09PSBudWxsIHx8IHRoaXMuZ2V0VXBwZXJUaW1lTGltaXQoKSA9PT0gdGhpcy50aW1lRGltZW5zaW9uLmdldEN1cnJlbnRUaW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqL1xuICBwdWJsaWMgZ2V0TG93ZXJUaW1lTGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKClbMF07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHJlZnJlc2hUaW1lRGltZW5zaW9uQXRMYXN0VGltZSh0aW1lOiBudW1iZXIsIHJhbmdlOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUodGltZSk7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUodGltZSAtIHJhbmdlKTtcbiAgICB0aGlzLnJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWUsIGVuZFRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBnZXRVcHBlclRpbWVMaW1pdCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMudGltZURpbWVuc2lvbi5nZXRBdmFpbGFibGVUaW1lcygpLmxlbmd0aDtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKClbbGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHRpbWVcbiAgICovXG4gIHNldFRyYW5zaXRpb25UaW1lKHRpbWU6IG51bWJlcikge1xuICAgIHRoaXMucGxheWVyLnNldFRyYW5zaXRpb25UaW1lKHRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwXG4gICAqL1xuICBwbGF5KHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMucGxheWVyLnN0YXJ0KHN0ZXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBsb29wZWRcbiAgICovXG4gIHNldFBsYXllclRvTG9vcChsb29wZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnBsYXllci5zZXRMb29wZWQobG9vcGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHNldCBwZXJpb2QodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BlcmlvZCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqL1xuICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkge1xuICAgICAgYWxlcnQoJ0ltcG9zc2liaWxlIGFnZ2l1bmdlcmUgaWwgcGx1Z2luIHRpbWVkaW1lbnNpb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uID0gbmV3IEwuVGltZURpbWVuc2lvbih0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zKTtcbiAgICAgIHRoaXMucGxheWVyID0gbmV3IEwuVGltZURpbWVuc2lvbi5QbGF5ZXIodGhpcy5wbGF5ZXJPcHRpb25zLCB0aGlzLnRpbWVEaW1lbnNpb24pO1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uQ29udHJvbCA9IG5ldyBMLkNvbnRyb2wuVGltZURpbWVuc2lvbih7XG4gICAgICAgIHBsYXllcjogdGhpcy5wbGF5ZXIsXG4gICAgICAgIGxvb3BCdXR0b246IHRydWUsXG4gICAgICAgIHBsYXlSZXZlcnNlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lU2xpZGVyOiB0aGlzLmlzTWQoKSxcbiAgICAgICAgc3BlZWRTbGlkZXI6IHRoaXMuaXNMZygpLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgbWluU3BlZWQ6IHRoaXMubWluU3BlZWQsXG4gICAgICAgIG1heFNwZWVkOiB0aGlzLm1heFNwZWVkLFxuICAgICAgICB0aW1lWm9uZXM6IFsnTG9jYWwnLCAnVVRDJ10sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wbGF5ZXIub24oJ3BsYXknLCAoZW8pID0+IHtcbiAgICAgICAgdGhpcy5fcGxheUVuYWJsZWQgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnBsYXllci5vbignc3RvcCcsIChlbykgPT4ge1xuICAgICAgICB0aGlzLl9wbGF5RW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb24ub24oJ3RpbWVsb2FkJywgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uTG9hZFRpbWVDaGFnZWQoKVxuICAgICAgfSk7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb24ub24oJ2F2YWlsYWJsZXRpbWVzY2hhbmdlZCcsIChhdmFpbGFibGVUaW1lcykgPT4ge1xuICAgICAgICB0aGlzLm9uQXZhaWxhYmxlVGltZUNoYW5nZWRDaGFnZWQoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tYXAudGltZURpbWVuc2lvbiA9IHRoaXMudGltZURpbWVuc2lvbjtcbiAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wodGhpcy50aW1lRGltZW5zaW9uQ29udHJvbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgIG9uTG9hZFRpbWVDaGFnZWQoKTogdm9pZCB7XG5cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkICBvbkF2YWlsYWJsZVRpbWVDaGFuZ2VkQ2hhZ2VkKCk6IHZvaWQge1xuXG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByaXZhdGUgaXNNZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKFsnKG1pbi13aWR0aDogNzY4cHgpJ10pO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcml2YXRlIGlzTGcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChbJyhtaW4td2lkdGg6IDk5MnB4KSddKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"geosdi-ngx-leaflet-timedimension-plugin.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 abstract 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":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|