@geosdi/ngx-leaflet-timedimension-plugin 1.0.6 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvbGliL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLG1FQUFtRSxDQUFDOzs7QUF1RjNFLE1BQU0sT0FBTyxvQ0FBb0M7SUFjL0MsWUFBbUIsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFYakQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFPckIsYUFBUSxHQUFXLFNBQVMsQ0FBQTtRQUM1QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7SUFHN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLEdBQVE7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQStEO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsK0JBQStCLENBQUMsT0FBWTtRQUMxQyxJQUFJLENBQUMsb0JBQW9C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LGNBQWMsRUFBRSxFQUFFO2dCQUNoRSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDUSxnQkFBZ0I7SUFFM0IsQ0FBQztJQUVEOztPQUVHO0lBQ1EsNEJBQTRCO0lBRXZDLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOztxSkE5TVUsb0NBQW9DO3lKQUFwQyxvQ0FBb0MsY0FGbkMsTUFBTTs0RkFFUCxvQ0FBb0M7a0JBSGhELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2xheW91dFwiO1xuaW1wb3J0ICdub2RlX21vZHVsZXMvbGVhZmxldC10aW1lZGltZW5zaW9uL2Rpc3QvbGVhZmxldC50aW1lZGltZW5zaW9uLm1pbic7XG5cbi8qKlxuICogQHBhcmFtIHRpdGxlXG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWFwXG4gICAqL1xuICB3aXRoTWFwKG1hcDogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHdpdGhQbGF5ZXJPcHRpb25zKG9wdGlvbnM6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICB3aXRoVGltZURpbWVuc2lvbk9wdGlvbnNPcHRpb25zKG9wdGlvbnM6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwb3NpdGlvblxuICAgKi9cbiAgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiAndG9wbGVmdCcgfCAndG9wcmlnaHQnIHwgJ2JvdHRvbWxlZnQnIHwgJ2JvdHRvbXJpZ2h0Jyk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtaW5TcGVlZFxuICAgKi9cbiAgd2l0aE1pblNwZWVkKG1pblNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWF4U3BlZWRcbiAgICovXG4gIHdpdGhNYXhTcGVlZChtYXhTcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKlxuICAgKi9cbiAgYXBwbHlUaW1lRGltZW5zaW9uUGx1Z2luKCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzdGFydFRpbWVcbiAgICogQHBhcmFtIGVuZFRpbWVcbiAgICovXG4gIHJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWU6IERhdGUsIGVuZFRpbWU6IERhdGUpOiB2b2lkO1xuXG4gIC8qKlxuICAgKi9cbiAgZ2V0Q3VycmVudFRpbWUoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKi9cbiAgZ2V0TG93ZXJUaW1lTGltaXQoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKiBAcGFyYW0gcmFuZ2VcbiAgICovXG4gIHJlZnJlc2hUaW1lRGltZW5zaW9uQXRMYXN0VGltZSh0aW1lOiBudW1iZXIsIHJhbmdlOiBudW1iZXIpO1xuXG4gIC8qKlxuICAgKi9cbiAgZ2V0VXBwZXJUaW1lTGltaXQoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc3RlcFxuICAgKi9cbiAgcGxheShzdGVwOiBudW1iZXIpO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbG9vcGVkXG4gICAqL1xuICBzZXRQbGF5ZXJUb0xvb3AobG9vcGVkOiBib29sZWFuKTogdm9pZDtcblxuICAvKipcbiAgICogQHBhcmFtIHRpbWVcbiAgICovXG4gIHNldEN1cnJlbnRUaW1lKHRpbWU6IG51bWJlcik6IGFueTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIGltcGxlbWVudHMgSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZXtcblxuICBwcml2YXRlIHBsYXllcjogTC5UaW1lRGltZW5zaW9uLlBsYXllcjtcbiAgcHJpdmF0ZSBfcGxheUVuYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBwbGF5ZXJPcHRpb25zOiBhbnk7XG4gIHByaXZhdGUgdGltZURpbWVuc2lvbk9wdGlvbnM6IGFueTtcbiAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uQ29udHJvbDogTC5Db250cm9sLlRpbWVEaW1lbnNpb247XG4gIHByaXZhdGUgdGltZURpbWVuc2lvbjogTC5UaW1lRGltZW5zaW9uO1xuICBwcml2YXRlIG1hcDogYW55O1xuICBwcml2YXRlIF9wZXJpb2Q6IHN0cmluZ1xuICBwcml2YXRlIHBvc2l0aW9uOiBzdHJpbmcgPSAndG9wbGVmdCdcbiAgcHJpdmF0ZSBtaW5TcGVlZDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBtYXhTcGVlZDogbnVtYmVyID0gNTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gcmFuZ2VcbiAgICovXG4gIHdpdGhNYXAobWFwOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHdpdGhQbGF5ZXJPcHRpb25zKG9wdGlvbnM6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMucGxheWVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3aXRoUG9zaXRpb24ocG9zaXRpb246IFwidG9wbGVmdFwiIHwgXCJ0b3ByaWdodFwiIHwgXCJib3R0b21sZWZ0XCIgfCBcImJvdHRvbXJpZ2h0XCIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKioqXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICB3aXRoVGltZURpbWVuc2lvbk9wdGlvbnNPcHRpb25zKG9wdGlvbnM6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMudGltZURpbWVuc2lvbk9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXhTcGVlZFxuICAgKi9cbiAgd2l0aE1heFNwZWVkKG1heFNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLm1heFNwZWVkID0gbWF4U3BlZWRcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWluU3BlZWRcbiAgICovXG4gIHdpdGhNaW5TcGVlZChtaW5TcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5taW5TcGVlZCA9IG1pblNwZWVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzdGFydFRpbWVcbiAgICogQHBhcmFtIGVuZFRpbWVcbiAgICovXG4gIHB1YmxpYyByZWZyZXNoQXZhaWxhYmxlVGltZXMoc3RhcnRUaW1lOiBEYXRlLCBlbmRUaW1lOiBEYXRlKSB7XG4gICAgdGhpcy50aW1lRGltZW5zaW9uLnNldEF2YWlsYWJsZVRpbWVzKCBMLlRpbWVEaW1lbnNpb24uVXRpbC5leHBsb2RlVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSwgdGhpcy5fcGVyaW9kKSwgJ3JlcGxhY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRUaW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGltZURpbWVuc2lvbi5nZXRDdXJyZW50VGltZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqL1xuICBwdWJsaWMgc2V0Q3VycmVudFRpbWUodGltZTogbnVtYmVyKTogYW55IHtcbiAgICB0aGlzLnRpbWVEaW1lbnNpb24uc2V0Q3VycmVudFRpbWUobmV3IERhdGUodGltZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwdWJsaWMgYXV0b0FwZGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuZ2V0VXBwZXJUaW1lTGltaXQoKSA9PT0gbnVsbCB8fCB0aGlzLmdldFVwcGVyVGltZUxpbWl0KCkgPT09IHRoaXMudGltZURpbWVuc2lvbi5nZXRDdXJyZW50VGltZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKi9cbiAgcHVibGljIGdldExvd2VyVGltZUxpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGltZURpbWVuc2lvbi5nZXRBdmFpbGFibGVUaW1lcygpWzBdO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICByZWZyZXNoVGltZURpbWVuc2lvbkF0TGFzdFRpbWUodGltZTogbnVtYmVyLCByYW5nZTogbnVtYmVyKSB7XG4gICAgY29uc3QgZW5kVGltZSA9IG5ldyBEYXRlKHRpbWUpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKHRpbWUgLSByYW5nZSk7XG4gICAgdGhpcy5yZWZyZXNoQXZhaWxhYmxlVGltZXMoc3RhcnRUaW1lLCBlbmRUaW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgZ2V0VXBwZXJUaW1lTGltaXQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKS5sZW5ndGg7XG4gICAgcmV0dXJuIHRoaXMudGltZURpbWVuc2lvbi5nZXRBdmFpbGFibGVUaW1lcygpW2xlbmd0aCAtIDFdO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqL1xuICBzZXRUcmFuc2l0aW9uVGltZSh0aW1lOiBudW1iZXIpIHtcbiAgICB0aGlzLnBsYXllci5zZXRUcmFuc2l0aW9uVGltZSh0aW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc3RlcFxuICAgKi9cbiAgcGxheShzdGVwOiBudW1iZXIpIHtcbiAgICB0aGlzLnBsYXllci5zdGFydChzdGVwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbG9vcGVkXG4gICAqL1xuICBzZXRQbGF5ZXJUb0xvb3AobG9vcGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5wbGF5ZXIuc2V0TG9vcGVkKGxvb3BlZCk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBzZXQgcGVyaW9kKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wZXJpb2QgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKi9cbiAgYXBwbHlUaW1lRGltZW5zaW9uUGx1Z2luKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXApIHtcbiAgICAgIGFsZXJ0KCdJbXBvc3NpYmlsZSBhZ2dpdW5nZXJlIGlsIHBsdWdpbiB0aW1lZGltZW5zaW9uJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbiA9IG5ldyBMLlRpbWVEaW1lbnNpb24odGhpcy50aW1lRGltZW5zaW9uT3B0aW9ucyk7XG4gICAgICB0aGlzLnBsYXllciA9IG5ldyBMLlRpbWVEaW1lbnNpb24uUGxheWVyKHRoaXMucGxheWVyT3B0aW9ucywgdGhpcy50aW1lRGltZW5zaW9uKTtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbkNvbnRyb2wgPSBuZXcgTC5Db250cm9sLlRpbWVEaW1lbnNpb24oe1xuICAgICAgICBwbGF5ZXI6IHRoaXMucGxheWVyLFxuICAgICAgICBsb29wQnV0dG9uOiB0cnVlLFxuICAgICAgICBwbGF5UmV2ZXJzZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZVNsaWRlcjogdGhpcy5pc01kKCksXG4gICAgICAgIHNwZWVkU2xpZGVyOiB0aGlzLmlzTGcoKSxcbiAgICAgICAgcG9zaXRpb246IHRoaXMucG9zaXRpb24sXG4gICAgICAgIG1pblNwZWVkOiB0aGlzLm1pblNwZWVkLFxuICAgICAgICBtYXhTcGVlZDogdGhpcy5tYXhTcGVlZCxcbiAgICAgICAgdGltZVpvbmVzOiBbJ0xvY2FsJywgJ1VUQyddLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucGxheWVyLm9uKCdwbGF5JywgKGVvKSA9PiB7XG4gICAgICAgIHRoaXMuX3BsYXlFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5wbGF5ZXIub24oJ3N0b3AnLCAoZW8pID0+IHtcbiAgICAgICAgdGhpcy5fcGxheUVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uLm9uKCd0aW1lbG9hZCcsICgpID0+IHtcbiAgICAgICAgdGhpcy5vbkxvYWRUaW1lQ2hhZ2VkKClcbiAgICAgIH0pO1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uLm9uKCdhdmFpbGFibGV0aW1lc2NoYW5nZWQnLCAoYXZhaWxhYmxlVGltZXMpID0+IHtcbiAgICAgICAgdGhpcy5vbkF2YWlsYWJsZVRpbWVDaGFuZ2VkQ2hhZ2VkKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFwLnRpbWVEaW1lbnNpb24gPSB0aGlzLnRpbWVEaW1lbnNpb247XG4gICAgICB0aGlzLm1hcC5hZGRDb250cm9sKHRoaXMudGltZURpbWVuc2lvbkNvbnRyb2wpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkICBvbkxvYWRUaW1lQ2hhZ2VkKCk6IHZvaWQge1xuXG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCAgb25BdmFpbGFibGVUaW1lQ2hhbmdlZENoYWdlZCgpOiB2b2lkIHtcblxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcml2YXRlIGlzTWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChbJyhtaW4td2lkdGg6IDc2OHB4KSddKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBpc0xnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoWycobWluLXdpZHRoOiA5OTJweCknXSk7XG4gIH1cbn1cbiJdfQ==
@@ -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 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":";;;;;;MA0Fa,oCAAoC;IAc/C,YAAmB,kBAAsC;QAAtC,uBAAkB,GAAlB,kBAAkB,CAAoB;QAXjD,iBAAY,GAAG,KAAK,CAAC;QAOrB,aAAQ,GAAW,SAAS,CAAA;QAC5B,aAAQ,GAAW,CAAC,CAAC;QACrB,aAAQ,GAAW,CAAC,CAAC;KAG5B;;;;IAKD,OAAO,CAAC,GAAQ;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,OAAO,IAAI,CAAC;KACb;IAED,iBAAiB,CAAC,OAAY;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;KACb;IAED,YAAY,CAAC,QAA+D;QAC1E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;KACb;;;;IAKD,+BAA+B,CAAC,OAAY;QAC1C,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC;KACb;;;;IAKD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,OAAO,IAAI,CAAC;KACb;;;;IAKD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;KACb;;;;;;IAOM,qBAAqB,CAAC,SAAe,EAAE,OAAa;QACzD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;KAC3H;;;;IAKM,cAAc;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;KAC5C;;;;IAKM,cAAc,CAAC,IAAY;QAChC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACnD;;;;IAKM,UAAU;QACf,QAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE;KAChH;;;IAIM,iBAAiB;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;KAClD;;;;IAKD,8BAA8B,CAAC,IAAY,EAAE,KAAa;QACxD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAChD;;;;IAKD,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC;QAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC3D;;;;;IAMD,iBAAiB,CAAC,IAAY;QAC5B,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;KACrC;;;;;IAMD,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACzB;;;;IAKD,eAAe,CAAC,MAAe;QAC7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KAC/B;;;;;IAMD,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACtB;;;IAID,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACb,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACjF,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;gBACtD,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;gBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;aAC5B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;gBACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE;gBACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE;gBAChC,IAAI,CAAC,gBAAgB,EAAE,CAAA;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,uBAAuB,EAAE,CAAC,cAAc;gBAC5D,IAAI,CAAC,4BAA4B,EAAE,CAAC;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SAChD;KACF;;;;IAKU,gBAAgB;KAE1B;;;;IAKU,4BAA4B;KAEtC;;;;IAKO,IAAI;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAClE;;;;IAKO,IAAI;QACV,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC;KAClE;;qJA9MU,oCAAoC;yJAApC,oCAAoC,cAFnC,MAAM;4FAEP,oCAAoC;kBAHhD,UAAU;mBAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;MC/EY,mCAAmC;;oJAAnC,mCAAmC;qJAAnC,mCAAmC;qJAAnC,mCAAmC,YALrC,EACR;4FAIU,mCAAmC;kBAR/C,QAAQ;mBAAC;oBACR,YAAY,EAAE,EACb;oBACD,OAAO,EAAE,EACR;oBACD,OAAO,EAAE,EACR;iBACF;;;ACTD;;;;ACAA;;;;;;"}