@geosdi/ngx-leaflet-timedimension-plugin 1.1.4 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable } from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
3
  import * as L from 'leaflet';
4
- import * as i1 from '@angular/cdk/layout';
5
- import moment from 'moment';
4
+ import { BreakpointObserver } from '@angular/cdk/layout';
5
+ import { DateTime } from 'luxon';
6
6
 
7
7
  class NgxLeafletTimedimensionPluginService {
8
- constructor(breakpointObserver) {
9
- this.breakpointObserver = breakpointObserver;
8
+ constructor() {
10
9
  this._playEnabled = false;
11
10
  this.position = "topleft";
12
11
  this.minSpeed = 1;
13
12
  this.maxSpeed = 5;
13
+ this.breakpointObserver = inject(BreakpointObserver);
14
14
  }
15
15
  /**
16
16
  * @param range
@@ -160,8 +160,9 @@ class NgxLeafletTimedimensionPluginService {
160
160
  });
161
161
  if (this.dateTimeFormat)
162
162
  this.timeDimensionControl._getDisplayDateFormat = (date) => {
163
- return moment(date).format(this.dateTimeFormat); // "ottobre 2025"
164
- // oppure moment(date).format("MM/YYYY");
163
+ // Token luxon (es. "MMMM yyyy" -> "ottobre 2025"); il locale
164
+ // segue il default globale di luxon (Settings.defaultLocale).
165
+ return DateTime.fromJSDate(date).toFormat(this.dateTimeFormat);
165
166
  };
166
167
  this.map.timeDimension = this.timeDimension;
167
168
  this.map.addControl(this.timeDimensionControl);
@@ -187,15 +188,15 @@ class NgxLeafletTimedimensionPluginService {
187
188
  isLg() {
188
189
  return this.breakpointObserver.isMatched(["(min-width: 992px)"]);
189
190
  }
190
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
191
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: "root" }); }
191
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgxLeafletTimedimensionPluginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
192
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: "root" }); }
192
193
  }
193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
194
195
  type: Injectable,
195
196
  args: [{
196
197
  providedIn: "root",
197
198
  }]
198
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
199
+ }] });
199
200
 
200
201
  /*
201
202
  * Public API Surface of ngx-leaflet-timedimension-plugin
@@ -1 +1 @@
1
- {"version":3,"file":"geosdi-ngx-leaflet-timedimension-plugin.mjs","sources":["../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.service.ts","../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/index.ts","../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/geosdi-ngx-leaflet-timedimension-plugin.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n//@ts-ignore\nimport * as L from \"leaflet\";\nimport { BreakpointObserver } from \"@angular/cdk/layout\";\nimport moment from \"moment\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\n/**\n * @param title\n * @param pageSize\n * @param action\n */\nexport interface INgxLeafletTimedimensionPluginService {\n /**\n * @param map\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param position\n */\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n *\n * @param dateTimeFormat\n */\n withDateTimeFormat(\n dateTimeFormat: string,\n ): 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): void;\n\n /**\n */\n getUpperTimeLimit(): number;\n\n /**\n * @param step\n */\n play(step: number): void;\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void;\n\n /**\n * @param time\n */\n setCurrentTime(time: number): any;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NgxLeafletTimedimensionPluginService\n implements INgxLeafletTimedimensionPluginService\n{\n private player: L.TimeDimension.Player;\n private _playEnabled = false;\n private playerOptions: any;\n private timeDimensionOptions: any;\n private timeDimensionControl: L.Control.TimeDimension;\n private timeDimension: L.TimeDimension;\n private map: any;\n private _period: string;\n private position: string = \"topleft\";\n private minSpeed: number = 1;\n private maxSpeed: number = 5;\n private dateTimeFormat: string;\n\n constructor(public breakpointObserver: BreakpointObserver) {}\n\n /**\n * @param range\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService {\n this.map = map;\n return this;\n }\n\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService {\n this.playerOptions = options;\n return this;\n }\n\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService {\n this.position = position;\n return this;\n }\n\n /***\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService {\n this.timeDimensionOptions = options;\n return this;\n }\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService {\n this.maxSpeed = maxSpeed;\n return this;\n }\n\n /**\n * @param dateTimeFormat\n */\n withDateTimeFormat(\n dateTimeFormat: string,\n ): INgxLeafletTimedimensionPluginService {\n this.dateTimeFormat = dateTimeFormat;\n return this;\n }\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService {\n this.minSpeed = minSpeed;\n return this;\n }\n\n /**\n *\n * @param startTime\n * @param endTime\n */\n public refreshAvailableTimes(startTime: Date, endTime: Date) {\n this.timeDimension.setAvailableTimes(\n L.TimeDimension.Util.explodeTimeRange(\n startTime,\n endTime,\n this._period,\n ),\n \"replace\",\n );\n }\n\n /**\n *\n */\n public getCurrentTime(): number {\n return this.timeDimension.getCurrentTime();\n }\n\n /**\n * @param time\n */\n public setCurrentTime(time: number): any {\n this.timeDimension.setCurrentTime(new Date(time));\n }\n\n /**\n *\n */\n public autoApdate(): boolean {\n return (\n this.getUpperTimeLimit() === null ||\n this.getUpperTimeLimit() === this.timeDimension.getCurrentTime()\n );\n }\n\n /**\n */\n public getLowerTimeLimit(): number {\n return this.timeDimension.getAvailableTimes()[0];\n }\n\n /**\n *\n */\n refreshTimeDimensionAtLastTime(time: number, range: number) {\n const endTime = new Date(time);\n const startTime = new Date(time - range);\n this.refreshAvailableTimes(startTime, endTime);\n }\n\n /**\n *\n */\n getUpperTimeLimit(): number {\n const length = this.timeDimension.getAvailableTimes().length;\n return this.timeDimension.getAvailableTimes()[length - 1];\n }\n\n /**\n *\n * @param time\n */\n setTransitionTime(time: number) {\n this.player.setTransitionTime(time);\n }\n\n /**\n *\n * @param step\n */\n play(step: number) {\n this.player.start(step);\n }\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void {\n this.player.setLooped(looped);\n }\n\n /**\n *\n * @param value\n */\n set period(value: string) {\n this._period = value;\n }\n\n /**\n */\n applyTimeDimensionPlugin(): void {\n if (this.map) {\n this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);\n this.player = new L.TimeDimension.Player(\n this.playerOptions,\n this.timeDimension,\n );\n this.timeDimensionControl = new L.Control.TimeDimension({\n player: this.player,\n loopButton: true,\n playReverseButton: true,\n timeSlider: this.isMd(),\n speedSlider: this.isLg(),\n position: this.position,\n minSpeed: this.minSpeed,\n maxSpeed: this.maxSpeed,\n timeZones: [\"Local\", \"UTC\"],\n });\n\n this.player.on(\"play\", (eo: any) => {\n this._playEnabled = true;\n });\n this.player.on(\"stop\", (eo: any) => {\n this._playEnabled = false;\n });\n this.timeDimension.on(\"timeload\", () => {\n this.onLoadTimeChaged();\n });\n this.timeDimension.on(\n \"availabletimeschanged\",\n (availableTimes: any) => {\n this.onAvailableTimeChangedChaged();\n },\n );\n\n if (this.dateTimeFormat)\n this.timeDimensionControl._getDisplayDateFormat = (date) => {\n return moment(date).format(this.dateTimeFormat); // \"ottobre 2025\"\n // oppure moment(date).format(\"MM/YYYY\");\n };\n\n this.map.timeDimension = this.timeDimension;\n this.map.addControl(this.timeDimensionControl);\n }\n }\n\n /**\n *\n */\n protected onLoadTimeChaged(): void {}\n\n /**\n *\n */\n protected onAvailableTimeChangedChaged(): void {}\n\n /**\n *\n */\n private isMd(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 768px)\"]);\n }\n\n /**\n *\n */\n private isLg(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 992px)\"]);\n }\n}\n","/*\n * Public API Surface of ngx-leaflet-timedimension-plugin\n */\n\nexport * from \"./lib/ngx-leaflet-timedimension-plugin.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MA0Ga,oCAAoC,CAAA;AAgB7C,IAAA,WAAA,CAAmB,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAZ7B,IAAY,CAAA,YAAA,GAAG,KAAK;QAOpB,IAAQ,CAAA,QAAA,GAAW,SAAS;QAC5B,IAAQ,CAAA,QAAA,GAAW,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAW,CAAC;;AAK5B;;AAEG;AACH,IAAA,OAAO,CAAC,GAAQ,EAAA;AACZ,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG;AACd,QAAA,OAAO,IAAI;;AAGf,IAAA,iBAAiB,CAAC,OAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO;AAC5B,QAAA,OAAO,IAAI;;AAGf,IAAA,YAAY,CACR,QAA+D,EAAA;AAE/D,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,OAAO,IAAI;;AAGf;;AAEG;AACH,IAAA,+BAA+B,CAC3B,OAAY,EAAA;AAEZ,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO;AACnC,QAAA,OAAO,IAAI;;AAGf;;AAEG;AACH,IAAA,YAAY,CAAC,QAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,OAAO,IAAI;;AAGf;;AAEG;AACH,IAAA,kBAAkB,CACd,cAAsB,EAAA;AAEtB,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc;AACpC,QAAA,OAAO,IAAI;;AAGf;;AAEG;AACH,IAAA,YAAY,CAAC,QAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,OAAO,IAAI;;AAGf;;;;AAIG;IACI,qBAAqB,CAAC,SAAe,EAAE,OAAa,EAAA;QACvD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAChC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CACjC,SAAS,EACT,OAAO,EACP,IAAI,CAAC,OAAO,CACf,EACD,SAAS,CACZ;;AAGL;;AAEG;IACI,cAAc,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;;AAG9C;;AAEG;AACI,IAAA,cAAc,CAAC,IAAY,EAAA;QAC9B,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;;AAGrD;;AAEG;IACI,UAAU,GAAA;AACb,QAAA,QACI,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI;YACjC,IAAI,CAAC,iBAAiB,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE;;AAIxE;AACG;IACI,iBAAiB,GAAA;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;;AAGpD;;AAEG;IACH,8BAA8B,CAAC,IAAY,EAAE,KAAa,EAAA;AACtD,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC;;AAGlD;;AAEG;IACH,iBAAiB,GAAA;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,MAAM;QAC5D,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAG7D;;;AAGG;AACH,IAAA,iBAAiB,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;;AAGvC;;;AAGG;AACH,IAAA,IAAI,CAAC,IAAY,EAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;;AAG3B;;AAEG;AACH,IAAA,eAAe,CAAC,MAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;;AAGjC;;;AAGG;IACH,IAAI,MAAM,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;AAGxB;AACG;IACH,wBAAwB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACnE,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CACpC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,CACrB;YACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;gBACpD,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAA,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE;gBACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;AAC9B,aAAA,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAO,KAAI;AAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AAC5B,aAAC,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAO,KAAI;AAC/B,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC7B,aAAC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,MAAK;gBACnC,IAAI,CAAC,gBAAgB,EAAE;AAC3B,aAAC,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,EAAE,CACjB,uBAAuB,EACvB,CAAC,cAAmB,KAAI;gBACpB,IAAI,CAAC,4BAA4B,EAAE;AACvC,aAAC,CACJ;YAED,IAAI,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,GAAG,CAAC,IAAI,KAAI;AACvD,oBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;AAEpD,iBAAC;YAEL,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa;YAC3C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;;;AAItD;;AAEG;AACO,IAAA,gBAAgB;AAE1B;;AAEG;AACO,IAAA,4BAA4B;AAEtC;;AAEG;IACK,IAAI,GAAA;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;;AAGpE;;AAEG;IACK,IAAI,GAAA;QACR,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;;iIA7O3D,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApC,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oCAAoC,cAFjC,MAAM,EAAA,CAAA,CAAA;;2FAET,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAHhD,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;ACzGD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"geosdi-ngx-leaflet-timedimension-plugin.mjs","sources":["../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/lib/ngx-leaflet-timedimension-plugin.service.ts","../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/index.ts","../../../../projects/geosdi/leaflet/ngx-leaflet-timedimension-plugin/src/geosdi-ngx-leaflet-timedimension-plugin.ts"],"sourcesContent":["import { Injectable, inject } from \"@angular/core\";\n//@ts-ignore\nimport * as L from \"leaflet\";\nimport { BreakpointObserver } from \"@angular/cdk/layout\";\nimport { DateTime } from \"luxon\";\n\n/**\n * @author Vito Salvia - CNR IMAA geoSDI Group\n * @email vito.salvia@gmail.com\n */\n\n/**\n * @param title\n * @param pageSize\n * @param action\n */\nexport interface INgxLeafletTimedimensionPluginService {\n /**\n * @param map\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param position\n */\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService;\n\n /**\n *\n * @param dateTimeFormat\n */\n withDateTimeFormat(\n dateTimeFormat: string,\n ): 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): void;\n\n /**\n */\n getUpperTimeLimit(): number;\n\n /**\n * @param step\n */\n play(step: number): void;\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 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 private dateTimeFormat: string;\n public breakpointObserver: BreakpointObserver = inject(BreakpointObserver);\n\n /**\n * @param range\n */\n withMap(map: any): INgxLeafletTimedimensionPluginService {\n this.map = map;\n return this;\n }\n\n withPlayerOptions(options: any): INgxLeafletTimedimensionPluginService {\n this.playerOptions = options;\n return this;\n }\n\n withPosition(\n position: \"topleft\" | \"topright\" | \"bottomleft\" | \"bottomright\",\n ): INgxLeafletTimedimensionPluginService {\n this.position = position;\n return this;\n }\n\n /***\n * @param options\n */\n withTimeDimensionOptionsOptions(\n options: any,\n ): INgxLeafletTimedimensionPluginService {\n this.timeDimensionOptions = options;\n return this;\n }\n\n /**\n * @param maxSpeed\n */\n withMaxSpeed(maxSpeed: number): INgxLeafletTimedimensionPluginService {\n this.maxSpeed = maxSpeed;\n return this;\n }\n\n /**\n * @param dateTimeFormat\n */\n withDateTimeFormat(\n dateTimeFormat: string,\n ): INgxLeafletTimedimensionPluginService {\n this.dateTimeFormat = dateTimeFormat;\n return this;\n }\n\n /**\n * @param minSpeed\n */\n withMinSpeed(minSpeed: number): INgxLeafletTimedimensionPluginService {\n this.minSpeed = minSpeed;\n return this;\n }\n\n /**\n *\n * @param startTime\n * @param endTime\n */\n public refreshAvailableTimes(startTime: Date, endTime: Date) {\n this.timeDimension.setAvailableTimes(\n L.TimeDimension.Util.explodeTimeRange(\n startTime,\n endTime,\n this._period,\n ),\n \"replace\",\n );\n }\n\n /**\n *\n */\n public getCurrentTime(): number {\n return this.timeDimension.getCurrentTime();\n }\n\n /**\n * @param time\n */\n public setCurrentTime(time: number): any {\n this.timeDimension.setCurrentTime(new Date(time));\n }\n\n /**\n *\n */\n public autoApdate(): boolean {\n return (\n this.getUpperTimeLimit() === null ||\n this.getUpperTimeLimit() === this.timeDimension.getCurrentTime()\n );\n }\n\n /**\n */\n public getLowerTimeLimit(): number {\n return this.timeDimension.getAvailableTimes()[0];\n }\n\n /**\n *\n */\n refreshTimeDimensionAtLastTime(time: number, range: number) {\n const endTime = new Date(time);\n const startTime = new Date(time - range);\n this.refreshAvailableTimes(startTime, endTime);\n }\n\n /**\n *\n */\n getUpperTimeLimit(): number {\n const length = this.timeDimension.getAvailableTimes().length;\n return this.timeDimension.getAvailableTimes()[length - 1];\n }\n\n /**\n *\n * @param time\n */\n setTransitionTime(time: number) {\n this.player.setTransitionTime(time);\n }\n\n /**\n *\n * @param step\n */\n play(step: number) {\n this.player.start(step);\n }\n\n /**\n * @param looped\n */\n setPlayerToLoop(looped: boolean): void {\n this.player.setLooped(looped);\n }\n\n /**\n *\n * @param value\n */\n set period(value: string) {\n this._period = value;\n }\n\n /**\n */\n applyTimeDimensionPlugin(): void {\n if (this.map) {\n this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);\n this.player = new L.TimeDimension.Player(\n this.playerOptions,\n this.timeDimension,\n );\n this.timeDimensionControl = new L.Control.TimeDimension({\n player: this.player,\n loopButton: true,\n playReverseButton: true,\n timeSlider: this.isMd(),\n speedSlider: this.isLg(),\n position: this.position,\n minSpeed: this.minSpeed,\n maxSpeed: this.maxSpeed,\n timeZones: [\"Local\", \"UTC\"],\n });\n\n this.player.on(\"play\", (eo: any) => {\n this._playEnabled = true;\n });\n this.player.on(\"stop\", (eo: any) => {\n this._playEnabled = false;\n });\n this.timeDimension.on(\"timeload\", () => {\n this.onLoadTimeChaged();\n });\n this.timeDimension.on(\n \"availabletimeschanged\",\n (availableTimes: any) => {\n this.onAvailableTimeChangedChaged();\n },\n );\n\n if (this.dateTimeFormat)\n this.timeDimensionControl._getDisplayDateFormat = (\n date: Date,\n ) => {\n // Token luxon (es. \"MMMM yyyy\" -> \"ottobre 2025\"); il locale\n // segue il default globale di luxon (Settings.defaultLocale).\n return DateTime.fromJSDate(date).toFormat(\n this.dateTimeFormat,\n );\n };\n\n this.map.timeDimension = this.timeDimension;\n this.map.addControl(this.timeDimensionControl);\n }\n }\n\n /**\n *\n */\n protected onLoadTimeChaged(): void {}\n\n /**\n *\n */\n protected onAvailableTimeChangedChaged(): void {}\n\n /**\n *\n */\n private isMd(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 768px)\"]);\n }\n\n /**\n *\n */\n private isLg(): boolean {\n return this.breakpointObserver.isMatched([\"(min-width: 992px)\"]);\n }\n}\n","/*\n * Public API Surface of ngx-leaflet-timedimension-plugin\n */\n\nexport * from \"./lib/ngx-leaflet-timedimension-plugin.service\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geosdi/ngx-leaflet-timedimension-plugin",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "Service to add timedimension to map",
5
5
  "author": "Salvia Vito (vito.salvia@gmail.com)",
6
6
  "keywords": [
@@ -16,24 +16,24 @@
16
16
  "tslib": "^2.3.0"
17
17
  },
18
18
  "peerDependencies": {
19
- "@angular/common": ">=19.0.0",
20
- "@angular/core": ">=19.0.0",
19
+ "@angular/common": ">=20.0.0",
20
+ "@angular/core": ">=20.0.0",
21
21
  "leaflet": ">=1.9.3",
22
22
  "typescript": ">=5.0.0",
23
- "leaflet-timedimension": ">=1.1.1"
23
+ "leaflet-timedimension": ">=1.1.1",
24
+ "luxon": ">=3.0.0"
24
25
  },
25
26
  "module": "fesm2022/geosdi-ngx-leaflet-timedimension-plugin.mjs",
26
- "typings": "index.d.ts",
27
+ "typings": "types/geosdi-ngx-leaflet-timedimension-plugin.d.ts",
27
28
  "exports": {
28
29
  "./package.json": {
29
30
  "default": "./package.json"
30
31
  },
31
32
  ".": {
32
- "types": "./index.d.ts",
33
- "esm2022": "./esm2022/geosdi-ngx-leaflet-timedimension-plugin.mjs",
34
- "esm": "./esm2022/geosdi-ngx-leaflet-timedimension-plugin.mjs",
33
+ "types": "./types/geosdi-ngx-leaflet-timedimension-plugin.d.ts",
35
34
  "default": "./fesm2022/geosdi-ngx-leaflet-timedimension-plugin.mjs"
36
35
  }
37
36
  },
38
- "sideEffects": false
37
+ "sideEffects": false,
38
+ "type": "module"
39
39
  }
@@ -1,5 +1,6 @@
1
- import { BreakpointObserver } from "@angular/cdk/layout";
2
- import * as i0 from "@angular/core";
1
+ import { BreakpointObserver } from '@angular/cdk/layout';
2
+ import * as i0 from '@angular/core';
3
+
3
4
  /**
4
5
  * @author Vito Salvia - CNR IMAA geoSDI Group
5
6
  * @email vito.salvia@gmail.com
@@ -9,7 +10,7 @@ import * as i0 from "@angular/core";
9
10
  * @param pageSize
10
11
  * @param action
11
12
  */
12
- export interface INgxLeafletTimedimensionPluginService {
13
+ interface INgxLeafletTimedimensionPluginService {
13
14
  /**
14
15
  * @param map
15
16
  */
@@ -72,8 +73,7 @@ export interface INgxLeafletTimedimensionPluginService {
72
73
  */
73
74
  setCurrentTime(time: number): any;
74
75
  }
75
- export declare class NgxLeafletTimedimensionPluginService implements INgxLeafletTimedimensionPluginService {
76
- breakpointObserver: BreakpointObserver;
76
+ declare class NgxLeafletTimedimensionPluginService implements INgxLeafletTimedimensionPluginService {
77
77
  private player;
78
78
  private _playEnabled;
79
79
  private playerOptions;
@@ -86,7 +86,7 @@ export declare class NgxLeafletTimedimensionPluginService implements INgxLeaflet
86
86
  private minSpeed;
87
87
  private maxSpeed;
88
88
  private dateTimeFormat;
89
- constructor(breakpointObserver: BreakpointObserver);
89
+ breakpointObserver: BreakpointObserver;
90
90
  /**
91
91
  * @param range
92
92
  */
@@ -179,3 +179,6 @@ export declare class NgxLeafletTimedimensionPluginService implements INgxLeaflet
179
179
  static ɵfac: i0.ɵɵFactoryDeclaration<NgxLeafletTimedimensionPluginService, never>;
180
180
  static ɵprov: i0.ɵɵInjectableDeclaration<NgxLeafletTimedimensionPluginService>;
181
181
  }
182
+
183
+ export { NgxLeafletTimedimensionPluginService };
184
+ export type { INgxLeafletTimedimensionPluginService };
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2Vvc2RpLW5neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2Vvc2RpL2xlYWZsZXQvbmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4vc3JjL2dlb3NkaS1uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
package/esm2022/index.mjs DELETED
@@ -1,5 +0,0 @@
1
- /*
2
- * Public API Surface of ngx-leaflet-timedimension-plugin
3
- */
4
- export * from "./lib/ngx-leaflet-timedimension-plugin.service";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW9zZGkvbGVhZmxldC9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdEQUFnRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpblxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9uZ3gtbGVhZmxldC10aW1lZGltZW5zaW9uLXBsdWdpbi5zZXJ2aWNlXCI7XG4iXX0=
@@ -1,200 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- //@ts-ignore
3
- import * as L from "leaflet";
4
- import { BreakpointObserver } from "@angular/cdk/layout";
5
- import moment from "moment";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/layout";
8
- export class NgxLeafletTimedimensionPluginService {
9
- constructor(breakpointObserver) {
10
- this.breakpointObserver = breakpointObserver;
11
- this._playEnabled = false;
12
- this.position = "topleft";
13
- this.minSpeed = 1;
14
- this.maxSpeed = 5;
15
- }
16
- /**
17
- * @param range
18
- */
19
- withMap(map) {
20
- this.map = map;
21
- return this;
22
- }
23
- withPlayerOptions(options) {
24
- this.playerOptions = options;
25
- return this;
26
- }
27
- withPosition(position) {
28
- this.position = position;
29
- return this;
30
- }
31
- /***
32
- * @param options
33
- */
34
- withTimeDimensionOptionsOptions(options) {
35
- this.timeDimensionOptions = options;
36
- return this;
37
- }
38
- /**
39
- * @param maxSpeed
40
- */
41
- withMaxSpeed(maxSpeed) {
42
- this.maxSpeed = maxSpeed;
43
- return this;
44
- }
45
- /**
46
- * @param dateTimeFormat
47
- */
48
- withDateTimeFormat(dateTimeFormat) {
49
- this.dateTimeFormat = dateTimeFormat;
50
- return this;
51
- }
52
- /**
53
- * @param minSpeed
54
- */
55
- withMinSpeed(minSpeed) {
56
- this.minSpeed = minSpeed;
57
- return this;
58
- }
59
- /**
60
- *
61
- * @param startTime
62
- * @param endTime
63
- */
64
- refreshAvailableTimes(startTime, endTime) {
65
- this.timeDimension.setAvailableTimes(L.TimeDimension.Util.explodeTimeRange(startTime, endTime, this._period), "replace");
66
- }
67
- /**
68
- *
69
- */
70
- getCurrentTime() {
71
- return this.timeDimension.getCurrentTime();
72
- }
73
- /**
74
- * @param time
75
- */
76
- setCurrentTime(time) {
77
- this.timeDimension.setCurrentTime(new Date(time));
78
- }
79
- /**
80
- *
81
- */
82
- autoApdate() {
83
- return (this.getUpperTimeLimit() === null ||
84
- this.getUpperTimeLimit() === this.timeDimension.getCurrentTime());
85
- }
86
- /**
87
- */
88
- getLowerTimeLimit() {
89
- return this.timeDimension.getAvailableTimes()[0];
90
- }
91
- /**
92
- *
93
- */
94
- refreshTimeDimensionAtLastTime(time, range) {
95
- const endTime = new Date(time);
96
- const startTime = new Date(time - range);
97
- this.refreshAvailableTimes(startTime, endTime);
98
- }
99
- /**
100
- *
101
- */
102
- getUpperTimeLimit() {
103
- const length = this.timeDimension.getAvailableTimes().length;
104
- return this.timeDimension.getAvailableTimes()[length - 1];
105
- }
106
- /**
107
- *
108
- * @param time
109
- */
110
- setTransitionTime(time) {
111
- this.player.setTransitionTime(time);
112
- }
113
- /**
114
- *
115
- * @param step
116
- */
117
- play(step) {
118
- this.player.start(step);
119
- }
120
- /**
121
- * @param looped
122
- */
123
- setPlayerToLoop(looped) {
124
- this.player.setLooped(looped);
125
- }
126
- /**
127
- *
128
- * @param value
129
- */
130
- set period(value) {
131
- this._period = value;
132
- }
133
- /**
134
- */
135
- applyTimeDimensionPlugin() {
136
- if (this.map) {
137
- this.timeDimension = new L.TimeDimension(this.timeDimensionOptions);
138
- this.player = new L.TimeDimension.Player(this.playerOptions, this.timeDimension);
139
- this.timeDimensionControl = new L.Control.TimeDimension({
140
- player: this.player,
141
- loopButton: true,
142
- playReverseButton: true,
143
- timeSlider: this.isMd(),
144
- speedSlider: this.isLg(),
145
- position: this.position,
146
- minSpeed: this.minSpeed,
147
- maxSpeed: this.maxSpeed,
148
- timeZones: ["Local", "UTC"],
149
- });
150
- this.player.on("play", (eo) => {
151
- this._playEnabled = true;
152
- });
153
- this.player.on("stop", (eo) => {
154
- this._playEnabled = false;
155
- });
156
- this.timeDimension.on("timeload", () => {
157
- this.onLoadTimeChaged();
158
- });
159
- this.timeDimension.on("availabletimeschanged", (availableTimes) => {
160
- this.onAvailableTimeChangedChaged();
161
- });
162
- if (this.dateTimeFormat)
163
- this.timeDimensionControl._getDisplayDateFormat = (date) => {
164
- return moment(date).format(this.dateTimeFormat); // "ottobre 2025"
165
- // oppure moment(date).format("MM/YYYY");
166
- };
167
- this.map.timeDimension = this.timeDimension;
168
- this.map.addControl(this.timeDimensionControl);
169
- }
170
- }
171
- /**
172
- *
173
- */
174
- onLoadTimeChaged() { }
175
- /**
176
- *
177
- */
178
- onAvailableTimeChangedChaged() { }
179
- /**
180
- *
181
- */
182
- isMd() {
183
- return this.breakpointObserver.isMatched(["(min-width: 768px)"]);
184
- }
185
- /**
186
- *
187
- */
188
- isLg() {
189
- return this.breakpointObserver.isMatched(["(min-width: 992px)"]);
190
- }
191
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
192
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, providedIn: "root" }); }
193
- }
194
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NgxLeafletTimedimensionPluginService, decorators: [{
195
- type: Injectable,
196
- args: [{
197
- providedIn: "root",
198
- }]
199
- }], ctorParameters: () => [{ type: i1.BreakpointObserver }] });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlb3NkaS9sZWFmbGV0L25neC1sZWFmbGV0LXRpbWVkaW1lbnNpb24tcGx1Z2luL3NyYy9saWIvbmd4LWxlYWZsZXQtdGltZWRpbWVuc2lvbi1wbHVnaW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLFlBQVk7QUFDWixPQUFPLEtBQUssQ0FBQyxNQUFNLFNBQVMsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7OztBQXNHNUIsTUFBTSxPQUFPLG9DQUFvQztJQWdCN0MsWUFBbUIsa0JBQXNDO1FBQXRDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFaakQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFPckIsYUFBUSxHQUFXLFNBQVMsQ0FBQztRQUM3QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBVyxDQUFDLENBQUM7SUFHK0IsQ0FBQztJQUU3RDs7T0FFRztJQUNILE9BQU8sQ0FBQyxHQUFRO1FBQ1osSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBWTtRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWSxDQUNSLFFBQStEO1FBRS9ELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNILCtCQUErQixD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aW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG4vL0B0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSBcImxlYWZsZXRcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gXCJAYW5ndWxhci9jZGsvbGF5b3V0XCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcblxuLyoqXG4gKiBAYXV0aG9yIFZpdG8gU2FsdmlhIC0gQ05SIElNQUEgZ2VvU0RJIEdyb3VwXG4gKiBAZW1haWwgdml0by5zYWx2aWFAZ21haWwuY29tXG4gKi9cblxuLyoqXG4gKiBAcGFyYW0gdGl0bGVcbiAqIEBwYXJhbSBwYWdlU2l6ZVxuICogQHBhcmFtIGFjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBtYXBcbiAgICAgKi9cbiAgICB3aXRoTWFwKG1hcDogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZTtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhcbiAgICAgICAgb3B0aW9uczogYW55LFxuICAgICk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gcG9zaXRpb25cbiAgICAgKi9cbiAgICB3aXRoUG9zaXRpb24oXG4gICAgICAgIHBvc2l0aW9uOiBcInRvcGxlZnRcIiB8IFwidG9wcmlnaHRcIiB8IFwiYm90dG9tbGVmdFwiIHwgXCJib3R0b21yaWdodFwiLFxuICAgICk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWluU3BlZWRcbiAgICAgKi9cbiAgICB3aXRoTWluU3BlZWQobWluU3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbWF4U3BlZWRcbiAgICAgKi9cbiAgICB3aXRoTWF4U3BlZWQobWF4U3BlZWQ6IG51bWJlcik6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBkYXRlVGltZUZvcm1hdFxuICAgICAqL1xuICAgIHdpdGhEYXRlVGltZUZvcm1hdChcbiAgICAgICAgZGF0ZVRpbWVGb3JtYXQ6IHN0cmluZyxcbiAgICApOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlO1xuXG4gICAgLypcbiAgICAgKi9cbiAgICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzdGFydFRpbWVcbiAgICAgKiBAcGFyYW0gZW5kVGltZVxuICAgICAqL1xuICAgIHJlZnJlc2hBdmFpbGFibGVUaW1lcyhzdGFydFRpbWU6IERhdGUsIGVuZFRpbWU6IERhdGUpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICovXG4gICAgZ2V0Q3VycmVudFRpbWUoKTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICovXG4gICAgZ2V0TG93ZXJUaW1lTGltaXQoKTogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHRpbWVcbiAgICAgKiBAcGFyYW0gcmFuZ2VcbiAgICAgKi9cbiAgICByZWZyZXNoVGltZURpbWVuc2lvbkF0TGFzdFRpbWUodGltZTogbnVtYmVyLCByYW5nZTogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqL1xuICAgIGdldFVwcGVyVGltZUxpbWl0KCk6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzdGVwXG4gICAgICovXG4gICAgcGxheShzdGVwOiBudW1iZXIpOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGxvb3BlZFxuICAgICAqL1xuICAgIHNldFBsYXllclRvTG9vcChsb29wZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHRpbWVcbiAgICAgKi9cbiAgICBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlXG4gICAgaW1wbGVtZW50cyBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlXG57XG4gICAgcHJpdmF0ZSBwbGF5ZXI6IEwuVGltZURpbWVuc2lvbi5QbGF5ZXI7XG4gICAgcHJpdmF0ZSBfcGxheUVuYWJsZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHBsYXllck9wdGlvbnM6IGFueTtcbiAgICBwcml2YXRlIHRpbWVEaW1lbnNpb25PcHRpb25zOiBhbnk7XG4gICAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uQ29udHJvbDogTC5Db250cm9sLlRpbWVEaW1lbnNpb247XG4gICAgcHJpdmF0ZSB0aW1lRGltZW5zaW9uOiBMLlRpbWVEaW1lbnNpb247XG4gICAgcHJpdmF0ZSBtYXA6IGFueTtcbiAgICBwcml2YXRlIF9wZXJpb2Q6IHN0cmluZztcbiAgICBwcml2YXRlIHBvc2l0aW9uOiBzdHJpbmcgPSBcInRvcGxlZnRcIjtcbiAgICBwcml2YXRlIG1pblNwZWVkOiBudW1iZXIgPSAxO1xuICAgIHByaXZhdGUgbWF4U3BlZWQ6IG51bWJlciA9IDU7XG4gICAgcHJpdmF0ZSBkYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyKSB7fVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJhbmdlXG4gICAgICovXG4gICAgd2l0aE1hcChtYXA6IGFueSk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgICAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgd2l0aFBsYXllck9wdGlvbnMob3B0aW9uczogYW55KTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgICAgIHRoaXMucGxheWVyT3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHdpdGhQb3NpdGlvbihcbiAgICAgICAgcG9zaXRpb246IFwidG9wbGVmdFwiIHwgXCJ0b3ByaWdodFwiIHwgXCJib3R0b21sZWZ0XCIgfCBcImJvdHRvbXJpZ2h0XCIsXG4gICAgKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgICAgIHRoaXMucG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqKlxuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgd2l0aFRpbWVEaW1lbnNpb25PcHRpb25zT3B0aW9ucyhcbiAgICAgICAgb3B0aW9uczogYW55LFxuICAgICk6IElOZ3hMZWFmbGV0VGltZWRpbWVuc2lvblBsdWdpblNlcnZpY2Uge1xuICAgICAgICB0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG1heFNwZWVkXG4gICAgICovXG4gICAgd2l0aE1heFNwZWVkKG1heFNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICAgICAgdGhpcy5tYXhTcGVlZCA9IG1heFNwZWVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZGF0ZVRpbWVGb3JtYXRcbiAgICAgKi9cbiAgICB3aXRoRGF0ZVRpbWVGb3JtYXQoXG4gICAgICAgIGRhdGVUaW1lRm9ybWF0OiBzdHJpbmcsXG4gICAgKTogSU5neExlYWZsZXRUaW1lZGltZW5zaW9uUGx1Z2luU2VydmljZSB7XG4gICAgICAgIHRoaXMuZGF0ZVRpbWVGb3JtYXQgPSBkYXRlVGltZUZvcm1hdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG1pblNwZWVkXG4gICAgICovXG4gICAgd2l0aE1pblNwZWVkKG1pblNwZWVkOiBudW1iZXIpOiBJTmd4TGVhZmxldFRpbWVkaW1lbnNpb25QbHVnaW5TZXJ2aWNlIHtcbiAgICAgICAgdGhpcy5taW5TcGVlZCA9IG1pblNwZWVkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdGFydFRpbWVcbiAgICAgKiBAcGFyYW0gZW5kVGltZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWZyZXNoQXZhaWxhYmxlVGltZXMoc3RhcnRUaW1lOiBEYXRlLCBlbmRUaW1lOiBEYXRlKSB7XG4gICAgICAgIHRoaXMudGltZURpbWVuc2lvbi5zZXRBdmFpbGFibGVUaW1lcyhcbiAgICAgICAgICAgIEwuVGltZURpbWVuc2lvbi5VdGlsLmV4cGxvZGVUaW1lUmFuZ2UoXG4gICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgdGhpcy5fcGVyaW9kLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIFwicmVwbGFjZVwiLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgcHVibGljIGdldEN1cnJlbnRUaW1lKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0Q3VycmVudFRpbWUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gdGltZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDdXJyZW50VGltZSh0aW1lOiBudW1iZXIpOiBhbnkge1xuICAgICAgICB0aGlzLnRpbWVEaW1lbnNpb24uc2V0Q3VycmVudFRpbWUobmV3IERhdGUodGltZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgcHVibGljIGF1dG9BcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmdldFVwcGVyVGltZUxpbWl0KCkgPT09IG51bGwgfHxcbiAgICAgICAgICAgIHRoaXMuZ2V0VXBwZXJUaW1lTGltaXQoKSA9PT0gdGhpcy50aW1lRGltZW5zaW9uLmdldEN1cnJlbnRUaW1lKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0TG93ZXJUaW1lTGltaXQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZURpbWVuc2lvbi5nZXRBdmFpbGFibGVUaW1lcygpWzBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgcmVmcmVzaFRpbWVEaW1lbnNpb25BdExhc3RUaW1lKHRpbWU6IG51bWJlciwgcmFuZ2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBlbmRUaW1lID0gbmV3IERhdGUodGltZSk7XG4gICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKHRpbWUgLSByYW5nZSk7XG4gICAgICAgIHRoaXMucmVmcmVzaEF2YWlsYWJsZVRpbWVzKHN0YXJ0VGltZSwgZW5kVGltZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBnZXRVcHBlclRpbWVMaW1pdCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBsZW5ndGggPSB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKS5sZW5ndGg7XG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVEaW1lbnNpb24uZ2V0QXZhaWxhYmxlVGltZXMoKVtsZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lXG4gICAgICovXG4gICAgc2V0VHJhbnNpdGlvblRpbWUodGltZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMucGxheWVyLnNldFRyYW5zaXRpb25UaW1lKHRpbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXBcbiAgICAgKi9cbiAgICBwbGF5KHN0ZXA6IG51bWJlcikge1xuICAgICAgICB0aGlzLnBsYXllci5zdGFydChzdGVwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbG9vcGVkXG4gICAgICovXG4gICAgc2V0UGxheWVyVG9Mb29wKGxvb3BlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnBsYXllci5zZXRMb29wZWQobG9vcGVkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHNldCBwZXJpb2QodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wZXJpb2QgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKi9cbiAgICBhcHBseVRpbWVEaW1lbnNpb25QbHVnaW4oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1hcCkge1xuICAgICAgICAgICAgdGhpcy50aW1lRGltZW5zaW9uID0gbmV3IEwuVGltZURpbWVuc2lvbih0aGlzLnRpbWVEaW1lbnNpb25PcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMucGxheWVyID0gbmV3IEwuVGltZURpbWVuc2lvbi5QbGF5ZXIoXG4gICAgICAgICAgICAgICAgdGhpcy5wbGF5ZXJPcHRpb25zLFxuICAgICAgICAgICAgICAgIHRoaXMudGltZURpbWVuc2lvbixcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sID0gbmV3IEwuQ29udHJvbC5UaW1lRGltZW5zaW9uKHtcbiAgICAgICAgICAgICAgICBwbGF5ZXI6IHRoaXMucGxheWVyLFxuICAgICAgICAgICAgICAgIGxvb3BCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgcGxheVJldmVyc2VCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgdGltZVNsaWRlcjogdGhpcy5pc01kKCksXG4gICAgICAgICAgICAgICAgc3BlZWRTbGlkZXI6IHRoaXMuaXNMZygpLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgIG1pblNwZWVkOiB0aGlzLm1pblNwZWVkLFxuICAgICAgICAgICAgICAgIG1heFNwZWVkOiB0aGlzLm1heFNwZWVkLFxuICAgICAgICAgICAgICAgIHRpbWVab25lczogW1wiTG9jYWxcIiwgXCJVVENcIl0sXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wbGF5ZXIub24oXCJwbGF5XCIsIChlbzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGxheUVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnBsYXllci5vbihcInN0b3BcIiwgKGVvOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wbGF5RW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnRpbWVEaW1lbnNpb24ub24oXCJ0aW1lbG9hZFwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxvYWRUaW1lQ2hhZ2VkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudGltZURpbWVuc2lvbi5vbihcbiAgICAgICAgICAgICAgICBcImF2YWlsYWJsZXRpbWVzY2hhbmdlZFwiLFxuICAgICAgICAgICAgICAgIChhdmFpbGFibGVUaW1lczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25BdmFpbGFibGVUaW1lQ2hhbmdlZENoYWdlZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRlVGltZUZvcm1hdClcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sLl9nZXREaXNwbGF5RGF0ZUZvcm1hdCA9IChkYXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb21lbnQoZGF0ZSkuZm9ybWF0KHRoaXMuZGF0ZVRpbWVGb3JtYXQpOyAvLyBcIm90dG9icmUgMjAyNVwiXG4gICAgICAgICAgICAgICAgICAgIC8vIG9wcHVyZSBtb21lbnQoZGF0ZSkuZm9ybWF0KFwiTU0vWVlZWVwiKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLm1hcC50aW1lRGltZW5zaW9uID0gdGhpcy50aW1lRGltZW5zaW9uO1xuICAgICAgICAgICAgdGhpcy5tYXAuYWRkQ29udHJvbCh0aGlzLnRpbWVEaW1lbnNpb25Db250cm9sKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgcHJvdGVjdGVkIG9uTG9hZFRpbWVDaGFnZWQoKTogdm9pZCB7fVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25BdmFpbGFibGVUaW1lQ2hhbmdlZENoYWdlZCgpOiB2b2lkIHt9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqL1xuICAgIHByaXZhdGUgaXNNZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLmlzTWF0Y2hlZChbXCIobWluLXdpZHRoOiA3NjhweClcIl0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgcHJpdmF0ZSBpc0xnKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKFtcIihtaW4td2lkdGg6IDk5MnB4KVwiXSk7XG4gICAgfVxufVxuIl19
package/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from "./lib/ngx-leaflet-timedimension-plugin.service";