@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 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 12.2.0.
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.0.
4
4
 
5
- ## Code scaffolding
5
+ # General information
6
6
 
7
- Run `ng generate component component-name --project ngx-leaflet-timedimension-plugin` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-leaflet-timedimension-plugin`.
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
- ## Build
9
+ ## Installation
11
10
 
12
- Run `ng build ngx-leaflet-timedimension-plugin` to build the project. The build artifacts will be stored in the `dist/` directory.
11
+ `npm i @geosdi/ngx-leaflet-timedimension-plugin --save`
13
12
 
14
- ## Publishing
13
+ It depends on :
15
14
 
16
- After building your library with `ng build ngx-leaflet-timedimension-plugin`, go to the dist folder `cd dist/ngx-leaflet-timedimension-plugin` and run `npm publish`.
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
- ## Running unit tests
20
+ ## Usage
19
21
 
20
- Run `ng test ngx-leaflet-timedimension-plugin` to execute the unit tests via [Karma](https://karma-runner.github.io).
22
+ ```typescript
21
23
 
22
- ## Further help
24
+ import { Injectable } from '@angular/core';
25
+ import {TimeDimensionExtensionService} from "./time-dimension-extension-service";
23
26
 
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvbGliL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLG1FQUFtRSxDQUFDOzs7QUEyRjNFLE1BQU0sT0FBTyxvQ0FBb0M7SUFjL0MsWUFBbUIsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFYakQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFPckIsYUFBUSxHQUFXLFNBQVMsQ0FBQTtRQUM1QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7SUFHN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLEdBQVE7UUFDZCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQVk7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQStEO1FBQzFFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsK0JBQStCLENBQUMsT0FBWTtRQUMxQyxJQUFJLENBQUMsb0JBQW9C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LGNBQWMsRUFBRSxFQUFFO2dCQUNoRSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDUSxnQkFBZ0I7SUFFM0IsQ0FBQztJQUVEOztPQUVHO0lBQ1EsNEJBQTRCO0lBRXZDLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOztvSkE5TVUsb0NBQW9DO3dKQUFwQyxvQ0FBb0MsY0FGbkMsTUFBTTsyRkFFUCxvQ0FBb0M7a0JBSGhELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2xheW91dFwiO1xuaW1wb3J0ICdub2RlX21vZHVsZXMvbGVhZmxldC10aW1lZGltZW5zaW9uL2Rpc3QvbGVhZmxldC50aW1lZGltZW5zaW9uLm1pbic7XG5cbi8qKlxuICogQGF1dGhvciBWaXRvIFNhbHZpYSAtIENOUiBJTUFBIGdlb1NESSBHcm91cFxuICogQGVtYWlsIHZpdG8uc2FsdmlhQGdtYWlsLmNvbVxuICovXG5cbi8qKlxuICogQHBhcmFtIHRpdGxlXG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcblxuICAvKipcbiAgICogQHBhcmFtIG1hcFxuICAgKi9cbiAgd2l0aE1hcChtYXA6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICB3aXRoUGxheWVyT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcG9zaXRpb25cbiAgICovXG4gIHdpdGhQb3NpdGlvbihwb3NpdGlvbjogJ3RvcGxlZnQnIHwgJ3RvcHJpZ2h0JyB8ICdib3R0b21sZWZ0JyB8ICdib3R0b21yaWdodCcpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWluU3BlZWRcbiAgICovXG4gIHdpdGhNaW5TcGVlZChtaW5TcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG1heFNwZWVkXG4gICAqL1xuICB3aXRoTWF4U3BlZWQobWF4U3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLypcbiAgICovXG4gIGFwcGx5VGltZURpbWVuc2lvblBsdWdpbigpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc3RhcnRUaW1lXG4gICAqIEBwYXJhbSBlbmRUaW1lXG4gICAqL1xuICByZWZyZXNoQXZhaWxhYmxlVGltZXMoc3RhcnRUaW1lOiBEYXRlLCBlbmRUaW1lOiBEYXRlKTogdm9pZDtcblxuICAvKipcbiAgICovXG4gIGdldEN1cnJlbnRUaW1lKCk6IG51bWJlcjtcblxuICAvKipcbiAgICovXG4gIGdldExvd2VyVGltZUxpbWl0KCk6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIHRpbWVcbiAgICogQHBhcmFtIHJhbmdlXG4gICAqL1xuICByZWZyZXNoVGltZURpbWVuc2lvbkF0TGFzdFRpbWUodGltZTogbnVtYmVyLCByYW5nZTogbnVtYmVyKTtcblxuICAvKipcbiAgICovXG4gIGdldFVwcGVyVGltZUxpbWl0KCk6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIHN0ZXBcbiAgICovXG4gIHBsYXkoc3RlcDogbnVtYmVyKTtcblxuICAvKipcbiAgICogQHBhcmFtIGxvb3BlZFxuICAgKi9cbiAgc2V0UGxheWVyVG9Mb29wKGxvb3BlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqL1xuICBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSBpbXBsZW1lbnRzIElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2V7XG5cbiAgcHJpdmF0ZSBwbGF5ZXI6IEwuVGltZURpbWVuc2lvbi5QbGF5ZXI7XG4gIHByaXZhdGUgX3BsYXlFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcGxheWVyT3B0aW9uczogYW55O1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb25PcHRpb25zOiBhbnk7XG4gIHByaXZhdGUgdGltZURpbWVuc2lvbkNvbnRyb2w6IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uO1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb246IEwuVGltZURpbWVuc2lvbjtcbiAgcHJpdmF0ZSBtYXA6IGFueTtcbiAgcHJpdmF0ZSBfcGVyaW9kOiBzdHJpbmdcbiAgcHJpdmF0ZSBwb3NpdGlvbjogc3RyaW5nID0gJ3RvcGxlZnQnXG4gIHByaXZhdGUgbWluU3BlZWQ6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgbWF4U3BlZWQ6IG51bWJlciA9IDU7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHJhbmdlXG4gICAqL1xuICB3aXRoTWFwKG1hcDogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5tYXAgPSBtYXA7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3aXRoUGxheWVyT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLnBsYXllck9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBcInRvcGxlZnRcIiB8IFwidG9wcmlnaHRcIiB8IFwiYm90dG9tbGVmdFwiIHwgXCJib3R0b21yaWdodFwiKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zID0gb3B0aW9ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWF4U3BlZWRcbiAgICovXG4gIHdpdGhNYXhTcGVlZChtYXhTcGVlZDogbnVtYmVyKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5tYXhTcGVlZCA9IG1heFNwZWVkXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG1pblNwZWVkXG4gICAqL1xuICB3aXRoTWluU3BlZWQobWluU3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWluU3BlZWQgPSBtaW5TcGVlZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gc3RhcnRUaW1lXG4gICAqIEBwYXJhbSBlbmRUaW1lXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZTogRGF0ZSwgZW5kVGltZTogRGF0ZSkge1xuICAgIHRoaXMudGltZURpbWVuc2lvbi5zZXRBdmFpbGFibGVUaW1lcyggTC5UaW1lRGltZW5zaW9uLlV0aWwuZXhwbG9kZVRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUsIHRoaXMuX3BlcmlvZCksICdyZXBsYWNlJyk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50VGltZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0Q3VycmVudFRpbWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnRUaW1lKHRpbWU6IG51bWJlcik6IGFueSB7XG4gICAgdGhpcy50aW1lRGltZW5zaW9uLnNldEN1cnJlbnRUaW1lKG5ldyBEYXRlKHRpbWUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHVibGljIGF1dG9BcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmdldFVwcGVyVGltZUxpbWl0KCkgPT09IG51bGwgfHwgdGhpcy5nZXRVcHBlclRpbWVMaW1pdCgpID09PSB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0Q3VycmVudFRpbWUoKSk7XG4gIH1cblxuICAvKipcbiAgICovXG4gIHB1YmxpYyBnZXRMb3dlclRpbWVMaW1pdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKVswXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcmVmcmVzaFRpbWVEaW1lbnNpb25BdExhc3RUaW1lKHRpbWU6IG51bWJlciwgcmFuZ2U6IG51bWJlcikge1xuICAgIGNvbnN0IGVuZFRpbWUgPSBuZXcgRGF0ZSh0aW1lKTtcbiAgICBjb25zdCBzdGFydFRpbWUgPSBuZXcgRGF0ZSh0aW1lIC0gcmFuZ2UpO1xuICAgIHRoaXMucmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZSwgZW5kVGltZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIGdldFVwcGVyVGltZUxpbWl0KCk6IG51bWJlciB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKCkubGVuZ3RoO1xuICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKVtsZW5ndGggLSAxXTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgc2V0VHJhbnNpdGlvblRpbWUodGltZTogbnVtYmVyKSB7XG4gICAgdGhpcy5wbGF5ZXIuc2V0VHJhbnNpdGlvblRpbWUodGltZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0ZXBcbiAgICovXG4gIHBsYXkoc3RlcDogbnVtYmVyKSB7XG4gICAgdGhpcy5wbGF5ZXIuc3RhcnQoc3RlcCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGxvb3BlZFxuICAgKi9cbiAgc2V0UGxheWVyVG9Mb29wKGxvb3BlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucGxheWVyLnNldExvb3BlZChsb29wZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgc2V0IHBlcmlvZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGVyaW9kID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICovXG4gIGFwcGx5VGltZURpbWVuc2lvblBsdWdpbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFwKSB7XG4gICAgICBhbGVydCgnSW1wb3NzaWJpbGUgYWdnaXVuZ2VyZSBpbCBwbHVnaW4gdGltZWRpbWVuc2lvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb24gPSBuZXcgTC5UaW1lRGltZW5zaW9uKHRoaXMudGltZURpbWVuc2lvbk9wdGlvbnMpO1xuICAgICAgdGhpcy5wbGF5ZXIgPSBuZXcgTC5UaW1lRGltZW5zaW9uLlBsYXllcih0aGlzLnBsYXllck9wdGlvbnMsIHRoaXMudGltZURpbWVuc2lvbik7XG4gICAgICB0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uKHtcbiAgICAgICAgcGxheWVyOiB0aGlzLnBsYXllcixcbiAgICAgICAgbG9vcEJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgcGxheVJldmVyc2VCdXR0b246IHRydWUsXG4gICAgICAgIHRpbWVTbGlkZXI6IHRoaXMuaXNNZCgpLFxuICAgICAgICBzcGVlZFNsaWRlcjogdGhpcy5pc0xnKCksXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxuICAgICAgICBtaW5TcGVlZDogdGhpcy5taW5TcGVlZCxcbiAgICAgICAgbWF4U3BlZWQ6IHRoaXMubWF4U3BlZWQsXG4gICAgICAgIHRpbWVab25lczogWydMb2NhbCcsICdVVEMnXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBsYXllci5vbigncGxheScsIChlbykgPT4ge1xuICAgICAgICB0aGlzLl9wbGF5RW5hYmxlZCA9IHRydWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucGxheWVyLm9uKCdzdG9wJywgKGVvKSA9PiB7XG4gICAgICAgIHRoaXMuX3BsYXlFbmFibGVkID0gZmFsc2U7XG4gICAgICB9KTtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbi5vbigndGltZWxvYWQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMub25Mb2FkVGltZUNoYWdlZCgpXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGltZURpbWVuc2lvbi5vbignYXZhaWxhYmxldGltZXNjaGFuZ2VkJywgKGF2YWlsYWJsZVRpbWVzKSA9PiB7XG4gICAgICAgIHRoaXMub25BdmFpbGFibGVUaW1lQ2hhbmdlZENoYWdlZCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm1hcC50aW1lRGltZW5zaW9uID0gdGhpcy50aW1lRGltZW5zaW9uO1xuICAgICAgdGhpcy5tYXAuYWRkQ29udHJvbCh0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCAgb25Mb2FkVGltZUNoYWdlZCgpOiB2b2lkIHtcblxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgIG9uQXZhaWxhYmxlVGltZUNoYW5nZWRDaGFnZWQoKTogdm9pZCB7XG5cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBpc01kKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQoWycobWluLXdpZHRoOiA3NjhweCknXSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHByaXZhdGUgaXNMZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKFsnKG1pbi13aWR0aDogOTkycHgpJ10pO1xuICB9XG59XG4iXX0=
@@ -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: "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: [{
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: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
195
- /** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule });
196
- /** @nocollapse */ NgxLeafletTimedimensionPluginModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, imports: [[]] });
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: NgxLeafletTimedimensionPluginModule, decorators: [{
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.js.map
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 abstract class NgxLeafletTimedimensionPluginService implements INgxLeafletTimedimensionPluginService {
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.5",
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.2.0"
16
+ "tslib": "^2.3.0"
17
17
  },
18
18
  "peerDependencies": {
19
- "@angular/common": ">=12.0.0",
20
- "@angular/core": ">=12.0.0",
21
- "leaflet": ">=1.7.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvbGliL25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLG1FQUFtRSxDQUFDOzs7QUF1RjNFLE1BQU0sT0FBZ0Isb0NBQW9DO0lBY3hELFlBQW1CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBWGpELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBT3JCLGFBQVEsR0FBVyxTQUFTLENBQUE7UUFDNUIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUNyQixhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBRzdCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxHQUFRO1FBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUErRDtRQUMxRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILCtCQUErQixDQUFDLE9BQVk7UUFDMUMsSUFBSSxDQUFDLG9CQUFv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QyxjQUFjLEVBQUUsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ1EsZ0JBQWdCO0lBRTNCLENBQUM7SUFFRDs7T0FFRztJQUNRLDRCQUE0QjtJQUV2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7cUpBOU1tQixvQ0FBb0M7eUpBQXBDLG9DQUFvQyxjQUY1QyxNQUFNOzRGQUVFLG9DQUFvQztrQkFIekQsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXJ9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XG5pbXBvcnQgJ25vZGVfbW9kdWxlcy9sZWFmbGV0LXRpbWVkaW1lbnNpb24vZGlzdC9sZWFmbGV0LnRpbWVkaW1lbnNpb24ubWluJztcblxuLyoqXG4gKiBAcGFyYW0gdGl0bGVcbiAqIEBwYXJhbSBwYWdlU2l6ZVxuICogQHBhcmFtIGFjdGlvblxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXBcbiAgICovXG4gIHdpdGhNYXAobWFwOiBhbnkpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHdpdGhUaW1lRGltZW5zaW9uT3B0aW9uc09wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIHBvc2l0aW9uXG4gICAqL1xuICB3aXRoUG9zaXRpb24ocG9zaXRpb246ICd0b3BsZWZ0JyB8ICd0b3ByaWdodCcgfCAnYm90dG9tbGVmdCcgfCAnYm90dG9tcmlnaHQnKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAvKipcbiAgICogQHBhcmFtIG1pblNwZWVkXG4gICAqL1xuICB3aXRoTWluU3BlZWQobWluU3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtYXhTcGVlZFxuICAgKi9cbiAgd2l0aE1heFNwZWVkKG1heFNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gIC8qXG4gICAqL1xuICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZDtcblxuICAvKipcbiAgICogQHBhcmFtIHN0YXJ0VGltZVxuICAgKiBAcGFyYW0gZW5kVGltZVxuICAgKi9cbiAgcmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZTogRGF0ZSwgZW5kVGltZTogRGF0ZSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRDdXJyZW50VGltZSgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRMb3dlclRpbWVMaW1pdCgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB0aW1lXG4gICAqIEBwYXJhbSByYW5nZVxuICAgKi9cbiAgcmVmcmVzaFRpbWVEaW1lbnNpb25BdExhc3RUaW1lKHRpbWU6IG51bWJlciwgcmFuZ2U6IG51bWJlcik7XG5cbiAgLyoqXG4gICAqL1xuICBnZXRVcHBlclRpbWVMaW1pdCgpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzdGVwXG4gICAqL1xuICBwbGF5KHN0ZXA6IG51bWJlcik7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBsb29wZWRcbiAgICovXG4gIHNldFBsYXllclRvTG9vcChsb29wZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gdGltZVxuICAgKi9cbiAgc2V0Q3VycmVudFRpbWUodGltZTogbnVtYmVyKTogYW55O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2UgaW1wbGVtZW50cyBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNle1xuXG4gIHByaXZhdGUgcGxheWVyOiBMLlRpbWVEaW1lbnNpb24uUGxheWVyO1xuICBwcml2YXRlIF9wbGF5RW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIHBsYXllck9wdGlvbnM6IGFueTtcbiAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uT3B0aW9uczogYW55O1xuICBwcml2YXRlIHRpbWVEaW1lbnNpb25Db250cm9sOiBMLkNvbnRyb2wuVGltZURpbWVuc2lvbjtcbiAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uOiBMLlRpbWVEaW1lbnNpb247XG4gIHByaXZhdGUgbWFwOiBhbnk7XG4gIHByaXZhdGUgX3BlcmlvZDogc3RyaW5nXG4gIHByaXZhdGUgcG9zaXRpb246IHN0cmluZyA9ICd0b3BsZWZ0J1xuICBwcml2YXRlIG1pblNwZWVkOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIG1heFNwZWVkOiBudW1iZXIgPSA1O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSByYW5nZVxuICAgKi9cbiAgd2l0aE1hcChtYXA6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWFwID0gbWFwO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy5wbGF5ZXJPcHRpb25zID0gb3B0aW9ucztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHdpdGhQb3NpdGlvbihwb3NpdGlvbjogXCJ0b3BsZWZ0XCIgfCBcInRvcHJpZ2h0XCIgfCBcImJvdHRvbWxlZnRcIiB8IFwiYm90dG9tcmlnaHRcIik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKipcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIHdpdGhUaW1lRGltZW5zaW9uT3B0aW9uc09wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgdGhpcy50aW1lRGltZW5zaW9uT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG1heFNwZWVkXG4gICAqL1xuICB3aXRoTWF4U3BlZWQobWF4U3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIHRoaXMubWF4U3BlZWQgPSBtYXhTcGVlZFxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBtaW5TcGVlZFxuICAgKi9cbiAgd2l0aE1pblNwZWVkKG1pblNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICB0aGlzLm1pblNwZWVkID0gbWluU3BlZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHN0YXJ0VGltZVxuICAgKiBAcGFyYW0gZW5kVGltZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWU6IERhdGUsIGVuZFRpbWU6IERhdGUpIHtcbiAgICB0aGlzLnRpbWVEaW1lbnNpb24uc2V0QXZhaWxhYmxlVGltZXMoIEwuVGltZURpbWVuc2lvbi5VdGlsLmV4cGxvZGVUaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lLCB0aGlzLl9wZXJpb2QpLCAncmVwbGFjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFRpbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEN1cnJlbnRUaW1lKCk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHRpbWVcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnkge1xuICAgIHRoaXMudGltZURpbWVuc2lvbi5zZXRDdXJyZW50VGltZShuZXcgRGF0ZSh0aW1lKSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBhdXRvQXBkYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5nZXRVcHBlclRpbWVMaW1pdCgpID09PSBudWxsIHx8IHRoaXMuZ2V0VXBwZXJUaW1lTGltaXQoKSA9PT0gdGhpcy50aW1lRGltZW5zaW9uLmdldEN1cnJlbnRUaW1lKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqL1xuICBwdWJsaWMgZ2V0TG93ZXJUaW1lTGltaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKClbMF07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICovXG4gIHJlZnJlc2hUaW1lRGltZW5zaW9uQXRMYXN0VGltZSh0aW1lOiBudW1iZXIsIHJhbmdlOiBudW1iZXIpIHtcbiAgICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUodGltZSk7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbmV3IERhdGUodGltZSAtIHJhbmdlKTtcbiAgICB0aGlzLnJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWUsIGVuZFRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqL1xuICBnZXRVcHBlclRpbWVMaW1pdCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMudGltZURpbWVuc2lvbi5nZXRBdmFpbGFibGVUaW1lcygpLmxlbmd0aDtcbiAgICByZXR1cm4gdGhpcy50aW1lRGltZW5zaW9uLmdldEF2YWlsYWJsZVRpbWVzKClbbGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHRpbWVcbiAgICovXG4gIHNldFRyYW5zaXRpb25UaW1lKHRpbWU6IG51bWJlcikge1xuICAgIHRoaXMucGxheWVyLnNldFRyYW5zaXRpb25UaW1lKHRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzdGVwXG4gICAqL1xuICBwbGF5KHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMucGxheWVyLnN0YXJ0KHN0ZXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBsb29wZWRcbiAgICovXG4gIHNldFBsYXllclRvTG9vcChsb29wZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnBsYXllci5zZXRMb29wZWQobG9vcGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHNldCBwZXJpb2QodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3BlcmlvZCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqL1xuICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1hcCkge1xuICAgICAgYWxlcnQoJ0ltcG9zc2liaWxlIGFnZ2l1bmdlcmUgaWwgcGx1Z2luIHRpbWVkaW1lbnNpb24nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uID0gbmV3IEwuVGltZURpbWVuc2lvbih0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zKTtcbiAgICAgIHRoaXMucGxheWVyID0gbmV3IEwuVGltZURpbWVuc2lvbi5QbGF5ZXIodGhpcy5wbGF5ZXJPcHRpb25zLCB0aGlzLnRpbWVEaW1lbnNpb24pO1xuICAgICAgdGhpcy50aW1lRGltZW5zaW9uQ29udHJvbCA9IG5ldyBMLkNvbnRyb2wuVGltZURpbWVuc2lvbih7XG4gICAgICAgIHBsYXllcjogdGhpcy5wbGF5ZXIsXG4gICAgICAgIGxvb3BCdXR0b246IHRydWUsXG4gICAgICAgIHBsYXlSZXZlcnNlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lU2xpZGVyOiB0aGlzLmlzTWQoKSxcbiAgICAgICAgc3BlZWRTbGlkZXI6IHRoaXMuaXNMZygpLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgbWluU3BlZWQ6IHRoaXMubWluU3BlZWQsXG4gICAgICAgIG1heFNwZWVkOiB0aGlzLm1heFNwZWVkLFxuICAgICAgICB0aW1lWm9uZXM6IFsnTG9jYWwnLCAnVVRDJ10sXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5wbGF5ZXIub24oJ3BsYXknLCAoZW8pID0+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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"}