@bluehalo/ngx-leaflet 18.0.2

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.
Files changed (34) hide show
  1. package/CHANGES.md +89 -0
  2. package/LICENSE +22 -0
  3. package/README.md +728 -0
  4. package/esm2022/bluehalo-ngx-leaflet.mjs +5 -0
  5. package/esm2022/lib/core/leaflet.directive.mjs +330 -0
  6. package/esm2022/lib/core/leaflet.directive.wrapper.mjs +12 -0
  7. package/esm2022/lib/core/leaflet.util.mjs +20 -0
  8. package/esm2022/lib/layers/base/leaflet-baselayers.directive.mjs +113 -0
  9. package/esm2022/lib/layers/control/leaflet-control-layers-changes.model.mjs +11 -0
  10. package/esm2022/lib/layers/control/leaflet-control-layers-config.model.mjs +7 -0
  11. package/esm2022/lib/layers/control/leaflet-control-layers.directive.mjs +100 -0
  12. package/esm2022/lib/layers/control/leaflet-control-layers.wrapper.mjs +58 -0
  13. package/esm2022/lib/layers/leaflet-layer.directive.mjs +78 -0
  14. package/esm2022/lib/layers/leaflet-layers.directive.mjs +83 -0
  15. package/esm2022/lib/layers/leaflet-tile-layer-definition.model.mjs +53 -0
  16. package/esm2022/lib/leaflet.module.mjs +40 -0
  17. package/esm2022/public-api.mjs +13 -0
  18. package/fesm2022/bluehalo-ngx-leaflet.mjs +880 -0
  19. package/fesm2022/bluehalo-ngx-leaflet.mjs.map +1 -0
  20. package/index.d.ts +5 -0
  21. package/lib/core/leaflet.directive.d.ts +94 -0
  22. package/lib/core/leaflet.directive.wrapper.d.ts +8 -0
  23. package/lib/core/leaflet.util.d.ts +7 -0
  24. package/lib/layers/base/leaflet-baselayers.directive.d.ts +45 -0
  25. package/lib/layers/control/leaflet-control-layers-changes.model.d.ts +6 -0
  26. package/lib/layers/control/leaflet-control-layers-config.model.d.ts +9 -0
  27. package/lib/layers/control/leaflet-control-layers.directive.d.ts +35 -0
  28. package/lib/layers/control/leaflet-control-layers.wrapper.d.ts +14 -0
  29. package/lib/layers/leaflet-layer.directive.d.ts +30 -0
  30. package/lib/layers/leaflet-layers.directive.d.ts +41 -0
  31. package/lib/layers/leaflet-tile-layer-definition.model.d.ts +33 -0
  32. package/lib/leaflet.module.d.ts +11 -0
  33. package/package.json +34 -0
  34. package/public-api.d.ts +12 -0
@@ -0,0 +1,100 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import { LeafletDirectiveWrapper } from '../../core/leaflet.directive.wrapper';
3
+ import { LeafletControlLayersWrapper } from './leaflet-control-layers.wrapper';
4
+ import { LeafletControlLayersConfig } from './leaflet-control-layers-config.model';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../core/leaflet.directive";
7
+ /**
8
+ * Layers Control
9
+ *
10
+ * This directive is used to configure the layers control. The input accepts an object with two
11
+ * key-value maps of layer name -> layer. Mutable changes are detected. On changes, a differ is
12
+ * used to determine what changed so that layers are appropriately added or removed.
13
+ *
14
+ * To specify which layer to show as the 'active' baselayer, you will want to add it to the map
15
+ * using the layers directive. Otherwise, the last one it sees will be used.
16
+ */
17
+ export class LeafletLayersControlDirective {
18
+ set layersControlConfig(v) {
19
+ // Validation/init stuff
20
+ if (null == v) {
21
+ v = new LeafletControlLayersConfig();
22
+ }
23
+ if (null == v.baseLayers) {
24
+ v.baseLayers = {};
25
+ }
26
+ if (null == v.overlays) {
27
+ v.overlays = {};
28
+ }
29
+ // Store the value
30
+ this.layersControlConfigValue = v;
31
+ // Update the map
32
+ this.updateLayers();
33
+ }
34
+ get layersControlConfig() {
35
+ return this.layersControlConfigValue;
36
+ }
37
+ constructor(leafletDirective, differs, zone) {
38
+ this.differs = differs;
39
+ this.zone = zone;
40
+ this.layersControlReady = new EventEmitter();
41
+ this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);
42
+ this.controlLayers = new LeafletControlLayersWrapper(this.zone, this.layersControlReady);
43
+ // Generate differs
44
+ this.baseLayersDiffer = this.differs.find({}).create();
45
+ this.overlaysDiffer = this.differs.find({}).create();
46
+ }
47
+ ngOnInit() {
48
+ // Init the map
49
+ this.leafletDirective.init();
50
+ // Set up control outside of angular to avoid change detection when using the control
51
+ this.zone.runOutsideAngular(() => {
52
+ // Set up all the initial settings
53
+ this.controlLayers
54
+ .init({}, this.layersControlOptions)
55
+ .addTo(this.leafletDirective.getMap());
56
+ });
57
+ this.updateLayers();
58
+ }
59
+ ngOnDestroy() {
60
+ this.layersControlConfig = { baseLayers: {}, overlays: {} };
61
+ this.controlLayers.getLayersControl().remove();
62
+ }
63
+ ngDoCheck() {
64
+ this.updateLayers();
65
+ }
66
+ updateLayers() {
67
+ const map = this.leafletDirective.getMap();
68
+ const layersControl = this.controlLayers.getLayersControl();
69
+ if (null != map && null != layersControl) {
70
+ // Run the baselayers differ
71
+ if (null != this.baseLayersDiffer && null != this.layersControlConfigValue.baseLayers) {
72
+ const changes = this.baseLayersDiffer.diff(this.layersControlConfigValue.baseLayers);
73
+ this.controlLayers.applyBaseLayerChanges(changes);
74
+ }
75
+ // Run the overlays differ
76
+ if (null != this.overlaysDiffer && null != this.layersControlConfigValue.overlays) {
77
+ const changes = this.overlaysDiffer.diff(this.layersControlConfigValue.overlays);
78
+ this.controlLayers.applyOverlayChanges(changes);
79
+ }
80
+ }
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayersControlDirective, deps: [{ token: i1.LeafletDirective }, { token: i0.KeyValueDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: LeafletLayersControlDirective, selector: "[leafletLayersControl]", inputs: { layersControlConfig: ["leafletLayersControl", "layersControlConfig"], layersControlOptions: ["leafletLayersControlOptions", "layersControlOptions"] }, outputs: { layersControlReady: "leafletLayersControlReady" }, ngImport: i0 }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayersControlDirective, decorators: [{
86
+ type: Directive,
87
+ args: [{
88
+ selector: '[leafletLayersControl]'
89
+ }]
90
+ }], ctorParameters: () => [{ type: i1.LeafletDirective }, { type: i0.KeyValueDiffers }, { type: i0.NgZone }], propDecorators: { layersControlConfig: [{
91
+ type: Input,
92
+ args: ['leafletLayersControl']
93
+ }], layersControlOptions: [{
94
+ type: Input,
95
+ args: ['leafletLayersControlOptions']
96
+ }], layersControlReady: [{
97
+ type: Output,
98
+ args: ['leafletLayersControlReady']
99
+ }] } });
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1jb250cm9sLWxheWVycy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGVhZmxldC9zcmMvbGliL2xheWVycy9jb250cm9sL2xlYWZsZXQtY29udHJvbC1sYXllcnMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQVcsWUFBWSxFQUFFLEtBQUssRUFDdkMsTUFBTSxFQUNOLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7QUFHbkY7Ozs7Ozs7OztHQVNHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQVN6QyxJQUNJLG1CQUFtQixDQUFDLENBQTZCO1FBRXBELHdCQUF3QjtRQUN4QixJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUFDLENBQUMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFBQyxDQUFDO1FBQ3hELElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQUMsQ0FBQztRQUNoRCxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUFDLENBQUM7UUFFNUMsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLENBQUM7UUFFbEMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVyQixDQUFDO0lBQ0QsSUFBSSxtQkFBbUI7UUFDdEIsT0FBTyxJ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QUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO2lCQUNsQzt3SUFXSSxtQkFBbUI7c0JBRHRCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQW1CUyxvQkFBb0I7c0JBQXpELEtBQUs7dUJBQUMsNkJBQTZCO2dCQUVDLGtCQUFrQjtzQkFBdEQsTUFBTTt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsIERvQ2hlY2ssIEV2ZW50RW1pdHRlciwgSW5wdXQsIEtleVZhbHVlRGlmZmVyLCBLZXlWYWx1ZURpZmZlcnMsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsXG5cdE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29udHJvbCwgTGF5ZXIgfSBmcm9tICdsZWFmbGV0JztcblxuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvcmUvbGVhZmxldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZVdyYXBwZXIgfSBmcm9tICcuLi8uLi9jb3JlL2xlYWZsZXQuZGlyZWN0aXZlLndyYXBwZXInO1xuaW1wb3J0IHsgTGVhZmxldENvbnRyb2xMYXllcnNXcmFwcGVyIH0gZnJvbSAnLi9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLndyYXBwZXInO1xuaW1wb3J0IHsgTGVhZmxldENvbnRyb2xMYXllcnNDb25maWcgfSBmcm9tICcuL2xlYWZsZXQtY29udHJvbC1sYXllcnMtY29uZmlnLm1vZGVsJztcblxuXG4vKipcbiAqIExheWVycyBDb250cm9sXG4gKlxuICogVGhpcyBkaXJlY3RpdmUgaXMgdXNlZCB0byBjb25maWd1cmUgdGhlIGxheWVycyBjb250cm9sLiBUaGUgaW5wdXQgYWNjZXB0cyBhbiBvYmplY3Qgd2l0aCB0d29cbiAqIGtleS12YWx1ZSBtYXBzIG9mIGxheWVyIG5hbWUgLT4gbGF5ZXIuIE11dGFibGUgY2hhbmdlcyBhcmUgZGV0ZWN0ZWQuIE9uIGNoYW5nZXMsIGEgZGlmZmVyIGlzXG4gKiB1c2VkIHRvIGRldGVybWluZSB3aGF0IGNoYW5nZWQgc28gdGhhdCBsYXllcnMgYXJlIGFwcHJvcHJpYXRlbHkgYWRkZWQgb3IgcmVtb3ZlZC5cbiAqXG4gKiBUbyBzcGVjaWZ5IHdoaWNoIGxheWVyIHRvIHNob3cgYXMgdGhlICdhY3RpdmUnIGJhc2VsYXllciwgeW91IHdpbGwgd2FudCB0byBhZGQgaXQgdG8gdGhlIG1hcFxuICogdXNpbmcgdGhlIGxheWVycyBkaXJlY3RpdmUuIE90aGVyd2lzZSwgdGhlIGxhc3Qgb25lIGl0IHNlZXMgd2lsbCBiZSB1c2VkLlxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbbGVhZmxldExheWVyc0NvbnRyb2xdJ1xufSlcbmV4cG9ydCBjbGFzcyBMZWFmbGV0TGF5ZXJzQ29udHJvbERpcmVjdGl2ZVxuXHRpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSwgT25Jbml0IHtcblxuXHQvLyBDb250cm9sIExheWVycyBDb25maWd1cmF0aW9uXG5cdGxheWVyc0NvbnRyb2xDb25maWdWYWx1ZTogTGVhZmxldENvbnRyb2xMYXllcnNDb25maWc7XG5cblx0YmFzZUxheWVyc0RpZmZlcjogS2V5VmFsdWVEaWZmZXI8c3RyaW5nLCBMYXllcj47XG5cdG92ZXJsYXlzRGlmZmVyOiBLZXlWYWx1ZURpZmZlcjxzdHJpbmcsIExheWVyPjtcblxuXHRASW5wdXQoJ2xlYWZsZXRMYXllcnNDb250cm9sJylcblx0c2V0IGxheWVyc0NvbnRyb2xDb25maWcodjogTGVhZmxldENvbnRyb2xMYXllcnNDb25maWcpIHtcblxuXHRcdC8vIFZhbGlkYXRpb24vaW5pdCBzdHVmZlxuXHRcdGlmIChudWxsID09IHYpIHsgdiA9IG5ldyBMZWFmbGV0Q29udHJvbExheWVyc0NvbmZpZygpOyB9XG5cdFx0aWYgKG51bGwgPT0gdi5iYXNlTGF5ZXJzKSB7IHYuYmFzZUxheWVycyA9IHt9OyB9XG5cdFx0aWYgKG51bGwgPT0gdi5vdmVybGF5cykgeyB2Lm92ZXJsYXlzID0ge307IH1cblxuXHRcdC8vIFN0b3JlIHRoZSB2YWx1ZVxuXHRcdHRoaXMubGF5ZXJzQ29udHJvbENvbmZpZ1ZhbHVlID0gdjtcblxuXHRcdC8vIFVwZGF0ZSB0aGUgbWFwXG5cdFx0dGhpcy51cGRhdGVMYXllcnMoKTtcblxuXHR9XG5cdGdldCBsYXllcnNDb250cm9sQ29uZmlnKCk6IExlYWZsZXRDb250cm9sTGF5ZXJzQ29uZmlnIHtcblx0XHRyZXR1cm4gdGhpcy5sYXllcnNDb250cm9sQ29uZmlnVmFsdWU7XG5cdH1cblxuXHRASW5wdXQoJ2xlYWZsZXRMYXllcnNDb250cm9sT3B0aW9ucycpIGxheWVyc0NvbnRyb2xPcHRpb25zOiBhbnk7XG5cblx0QE91dHB1dCgnbGVhZmxldExheWVyc0NvbnRyb2xSZWFkeScpIGxheWVyc0NvbnRyb2xSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udHJvbC5MYXllcnM+KCk7XG5cblx0cHJpdmF0ZSBjb250cm9sTGF5ZXJzOiBMZWFmbGV0Q29udHJvbExheWVyc1dyYXBwZXI7XG5cdHByaXZhdGUgbGVhZmxldERpcmVjdGl2ZTogTGVhZmxldERpcmVjdGl2ZVdyYXBwZXI7XG5cblx0Y29uc3RydWN0b3IobGVhZmxldERpcmVjdGl2ZTogTGVhZmxldERpcmVjdGl2ZSwgcHJpdmF0ZSBkaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsIHByaXZhdGUgem9uZTogTmdab25lKSB7XG5cdFx0dGhpcy5sZWFmbGV0RGlyZWN0aXZlID0gbmV3IExlYWZsZXREaXJlY3RpdmVXcmFwcGVyKGxlYWZsZXREaXJlY3RpdmUpO1xuXHRcdHRoaXMuY29udHJvbExheWVycyA9IG5ldyBMZWFmbGV0Q29udHJvbExheWVyc1dyYXBwZXIodGhpcy56b25lLCB0aGlzLmxheWVyc0NvbnRyb2xSZWFkeSk7XG5cblx0XHQvLyBHZW5lcmF0ZSBkaWZmZXJzXG5cdFx0dGhpcy5iYXNlTGF5ZXJzRGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoe30pLmNyZWF0ZTxzdHJpbmcsIExheWVyPigpO1xuXHRcdHRoaXMub3ZlcmxheXNEaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZCh7fSkuY3JlYXRlPHN0cmluZywgTGF5ZXI+KCk7XG5cblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXG5cdFx0Ly8gSW5pdCB0aGUgbWFwXG5cdFx0dGhpcy5sZWFmbGV0RGlyZWN0aXZlLmluaXQoKTtcblxuXHRcdC8vIFNldCB1cCBjb250cm9sIG91dHNpZGUgb2YgYW5ndWxhciB0byBhdm9pZCBjaGFuZ2UgZGV0ZWN0aW9uIHdoZW4gdXNpbmcgdGhlIGNvbnRyb2xcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXG5cdFx0XHQvLyBTZXQgdXAgYWxsIHRoZSBpbml0aWFsIHNldHRpbmdzXG5cdFx0XHR0aGlzLmNvbnRyb2xMYXllcnNcblx0XHRcdFx0LmluaXQoe30sIHRoaXMubGF5ZXJzQ29udHJvbE9wdGlvbnMpXG5cdFx0XHRcdC5hZGRUbyh0aGlzLmxlYWZsZXREaXJlY3RpdmUuZ2V0TWFwKCkpO1xuXG5cdFx0fSk7XG5cblx0XHR0aGlzLnVwZGF0ZUxheWVycygpO1xuXG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHR0aGlzLmxheWVyc0NvbnRyb2xDb25maWcgPSB7IGJhc2VMYXllcnM6IHt9LCBvdmVybGF5czoge30gfTtcblx0XHR0aGlzLmNvbnRyb2xMYXllcnMuZ2V0TGF5ZXJzQ29udHJvbCgpLnJlbW92ZSgpO1xuXHR9XG5cblx0bmdEb0NoZWNrKCkge1xuXHRcdHRoaXMudXBkYXRlTGF5ZXJzKCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgdXBkYXRlTGF5ZXJzKCkge1xuXG5cdFx0Y29uc3QgbWFwID0gdGhpcy5sZWFmbGV0RGlyZWN0aXZlLmdldE1hcCgpO1xuXHRcdGNvbnN0IGxheWVyc0NvbnRyb2wgPSB0aGlzLmNvbnRyb2xMYXllcnMuZ2V0TGF5ZXJzQ29udHJvbCgpO1xuXG5cdFx0aWYgKG51bGwgIT0gbWFwICYmIG51bGwgIT0gbGF5ZXJzQ29udHJvbCkge1xuXG5cdFx0XHQvLyBSdW4gdGhlIGJhc2VsYXllcnMgZGlmZmVyXG5cdFx0XHRpZiAobnVsbCAhPSB0aGlzLmJhc2VMYXllcnNEaWZmZXIgJiYgbnVsbCAhPSB0aGlzLmxheWVyc0NvbnRyb2xDb25maWdWYWx1ZS5iYXNlTGF5ZXJzKSB7XG5cdFx0XHRcdGNvbnN0IGNoYW5nZXMgPSB0aGlzLmJhc2VMYXllcnNEaWZmZXIuZGlmZih0aGlzLmxheWVyc0NvbnRyb2xDb25maWdWYWx1ZS5iYXNlTGF5ZXJzKTtcblx0XHRcdFx0dGhpcy5jb250cm9sTGF5ZXJzLmFwcGx5QmFzZUxheWVyQ2hhbmdlcyhjaGFuZ2VzKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUnVuIHRoZSBvdmVybGF5cyBkaWZmZXJcblx0XHRcdGlmIChudWxsICE9IHRoaXMub3ZlcmxheXNEaWZmZXIgJiYgbnVsbCAhPSB0aGlzLmxheWVyc0NvbnRyb2xDb25maWdWYWx1ZS5vdmVybGF5cykge1xuXHRcdFx0XHRjb25zdCBjaGFuZ2VzID0gdGhpcy5vdmVybGF5c0RpZmZlci5kaWZmKHRoaXMubGF5ZXJzQ29udHJvbENvbmZpZ1ZhbHVlLm92ZXJsYXlzKTtcblx0XHRcdFx0dGhpcy5jb250cm9sTGF5ZXJzLmFwcGx5T3ZlcmxheUNoYW5nZXMoY2hhbmdlcyk7XG5cdFx0XHR9XG5cblx0XHR9XG5cblx0fVxuXG59XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { control } from 'leaflet';
2
+ import { LeafletControlLayersChanges } from './leaflet-control-layers-changes.model';
3
+ export class LeafletControlLayersWrapper {
4
+ constructor(zone, layersControlReady) {
5
+ this.zone = zone;
6
+ this.layersControlReady = layersControlReady;
7
+ }
8
+ getLayersControl() {
9
+ return this.layersControl;
10
+ }
11
+ init(controlConfig, controlOptions) {
12
+ const baseLayers = controlConfig.baseLayers || {};
13
+ const overlays = controlConfig.overlays || {};
14
+ // Create the control outside of angular to ensure events don't trigger change detection
15
+ this.zone.runOutsideAngular(() => {
16
+ this.layersControl = control.layers(baseLayers, overlays, controlOptions);
17
+ });
18
+ this.layersControlReady.emit(this.layersControl);
19
+ return this.layersControl;
20
+ }
21
+ applyBaseLayerChanges(changes) {
22
+ let results = new LeafletControlLayersChanges();
23
+ if (null != this.layersControl) {
24
+ results = this.applyChanges(changes, this.layersControl.addBaseLayer);
25
+ }
26
+ return results;
27
+ }
28
+ applyOverlayChanges(changes) {
29
+ let results = new LeafletControlLayersChanges();
30
+ if (null != this.layersControl) {
31
+ results = this.applyChanges(changes, this.layersControl.addOverlay);
32
+ }
33
+ return results;
34
+ }
35
+ applyChanges(changes, addFn) {
36
+ const results = new LeafletControlLayersChanges();
37
+ if (null != changes) {
38
+ // All layer management is outside angular to avoid layer events from triggering change detection
39
+ this.zone.runOutsideAngular(() => {
40
+ changes.forEachChangedItem((c) => {
41
+ this.layersControl.removeLayer(c.previousValue);
42
+ addFn.call(this.layersControl, c.currentValue, c.key);
43
+ results.layersChanged++;
44
+ });
45
+ changes.forEachRemovedItem((c) => {
46
+ this.layersControl.removeLayer(c.previousValue);
47
+ results.layersRemoved++;
48
+ });
49
+ changes.forEachAddedItem((c) => {
50
+ addFn.call(this.layersControl, c.currentValue, c.key);
51
+ results.layersAdded++;
52
+ });
53
+ });
54
+ }
55
+ return results;
56
+ }
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1jb250cm9sLWxheWVycy53cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxlYWZsZXQvc3JjL2xpYi9sYXllcnMvY29udHJvbC9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLndyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBa0IsTUFBTSxTQUFTLENBQUM7QUFFbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFckYsTUFBTSxPQUFPLDJCQUEyQjtJQVF2QyxZQUFvQixJQUFZLEVBQUUsa0JBQWdEO1FBQTlELFNBQUksR0FBSixJQUFJLENBQVE7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQzlDLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksQ0FBQyxhQUFrQixFQUFFLGNBQW1CO1FBRTNDLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRTlDLHdGQUF3RjtRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRWpELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUMzQixDQUFDO0lBRUQscUJBQXFCLENBQUMsT0FBdUM7UUFDNUQsSUFBSSxPQUFPLEdBQWdDLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUU3RSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsT0FBTyxHQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUF1QztRQUMxRCxJQUFJLE9BQU8sR0FBZ0MsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBRTdFLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUVPLFlBQVksQ0FBQyxPQUF1QyxFQUFFLEtBQTJDO1FBQ3hHLE1BQU0sT0FBTyxHQUFnQyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFL0UsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7WUFFckIsaUdBQWlHO1lBQ2pHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUVoQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ3RELE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDaEQsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDOUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN0RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO1lBRUosQ0FBQyxDQUFDLENBQUM7UUFFSixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztDQUVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBLZXlWYWx1ZUNoYW5nZXMsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjb250cm9sLCBDb250cm9sLCBMYXllciB9IGZyb20gJ2xlYWZsZXQnO1xuXG5pbXBvcnQgeyBMZWFmbGV0Q29udHJvbExheWVyc0NoYW5nZXMgfSBmcm9tICcuL2xlYWZsZXQtY29udHJvbC1sYXllcnMtY2hhbmdlcy5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBMZWFmbGV0Q29udHJvbExheWVyc1dyYXBwZXIge1xuXG5cdC8vIFRoZSBsYXllcnMgY29udHJvbCBvYmplY3Rcblx0cHJvdGVjdGVkIGxheWVyc0NvbnRyb2w6IENvbnRyb2wuTGF5ZXJzO1xuXG5cdC8vIEV2ZW50IEVtaXR0ZXIgZm9yIHdoZW4gdGhlIGNvbnRyb2wgaXMgcmVhZHlcblx0cHJvdGVjdGVkIGxheWVyc0NvbnRyb2xSZWFkeTogRXZlbnRFbWl0dGVyPENvbnRyb2wuTGF5ZXJzPjtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgbGF5ZXJzQ29udHJvbFJlYWR5OiBFdmVudEVtaXR0ZXI8Q29udHJvbC5MYXllcnM+KSB7XG5cdFx0dGhpcy5sYXllcnNDb250cm9sUmVhZHkgPSBsYXllcnNDb250cm9sUmVhZHk7XG5cdH1cblxuXHRnZXRMYXllcnNDb250cm9sKCkge1xuXHRcdHJldHVybiB0aGlzLmxheWVyc0NvbnRyb2w7XG5cdH1cblxuXHRpbml0KGNvbnRyb2xDb25maWc6IGFueSwgY29udHJvbE9wdGlvbnM6IGFueSk6IENvbnRyb2wuTGF5ZXJzIHtcblxuXHRcdGNvbnN0IGJhc2VMYXllcnMgPSBjb250cm9sQ29uZmlnLmJhc2VMYXllcnMgfHwge307XG5cdFx0Y29uc3Qgb3ZlcmxheXMgPSBjb250cm9sQ29uZmlnLm92ZXJsYXlzIHx8IHt9O1xuXG5cdFx0Ly8gQ3JlYXRlIHRoZSBjb250cm9sIG91dHNpZGUgb2YgYW5ndWxhciB0byBlbnN1cmUgZXZlbnRzIGRvbid0IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvblxuXHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHR0aGlzLmxheWVyc0NvbnRyb2wgPSBjb250cm9sLmxheWVycyhiYXNlTGF5ZXJzLCBvdmVybGF5cywgY29udHJvbE9wdGlvbnMpO1xuXHRcdH0pO1xuXG5cblx0XHR0aGlzLmxheWVyc0NvbnRyb2xSZWFkeS5lbWl0KHRoaXMubGF5ZXJzQ29udHJvbCk7XG5cblx0XHRyZXR1cm4gdGhpcy5sYXllcnNDb250cm9sO1xuXHR9XG5cblx0YXBwbHlCYXNlTGF5ZXJDaGFuZ2VzKGNoYW5nZXM6IEtleVZhbHVlQ2hhbmdlczxzdHJpbmcsIExheWVyPik6IExlYWZsZXRDb250cm9sTGF5ZXJzQ2hhbmdlcyB7XG5cdFx0bGV0IHJlc3VsdHM6IExlYWZsZXRDb250cm9sTGF5ZXJzQ2hhbmdlcyA9IG5ldyBMZWFmbGV0Q29udHJvbExheWVyc0NoYW5nZXMoKTtcblxuXHRcdGlmIChudWxsICE9IHRoaXMubGF5ZXJzQ29udHJvbCkge1xuXHRcdFx0cmVzdWx0cyA9ICB0aGlzLmFwcGx5Q2hhbmdlcyhjaGFuZ2VzLCB0aGlzLmxheWVyc0NvbnRyb2wuYWRkQmFzZUxheWVyKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdGFwcGx5T3ZlcmxheUNoYW5nZXMoY2hhbmdlczogS2V5VmFsdWVDaGFuZ2VzPHN0cmluZywgTGF5ZXI+KTogTGVhZmxldENvbnRyb2xMYXllcnNDaGFuZ2VzIHtcblx0XHRsZXQgcmVzdWx0czogTGVhZmxldENvbnRyb2xMYXllcnNDaGFuZ2VzID0gbmV3IExlYWZsZXRDb250cm9sTGF5ZXJzQ2hhbmdlcygpO1xuXG5cdFx0aWYgKG51bGwgIT0gdGhpcy5sYXllcnNDb250cm9sKSB7XG5cdFx0XHRyZXN1bHRzID0gIHRoaXMuYXBwbHlDaGFuZ2VzKGNoYW5nZXMsIHRoaXMubGF5ZXJzQ29udHJvbC5hZGRPdmVybGF5KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdHByaXZhdGUgYXBwbHlDaGFuZ2VzKGNoYW5nZXM6IEtleVZhbHVlQ2hhbmdlczxzdHJpbmcsIExheWVyPiwgYWRkRm46IChsYXllcjogTGF5ZXIsIG5hbWU6IHN0cmluZykgPT4gdm9pZCk6IExlYWZsZXRDb250cm9sTGF5ZXJzQ2hhbmdlcyB7XG5cdFx0Y29uc3QgcmVzdWx0czogTGVhZmxldENvbnRyb2xMYXllcnNDaGFuZ2VzID0gbmV3IExlYWZsZXRDb250cm9sTGF5ZXJzQ2hhbmdlcygpO1xuXG5cdFx0aWYgKG51bGwgIT0gY2hhbmdlcykge1xuXG5cdFx0XHQvLyBBbGwgbGF5ZXIgbWFuYWdlbWVudCBpcyBvdXRzaWRlIGFuZ3VsYXIgdG8gYXZvaWQgbGF5ZXIgZXZlbnRzIGZyb20gdHJpZ2dlcmluZyBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXG5cdFx0XHRcdGNoYW5nZXMuZm9yRWFjaENoYW5nZWRJdGVtKChjKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5sYXllcnNDb250cm9sLnJlbW92ZUxheWVyKGMucHJldmlvdXNWYWx1ZSk7XG5cdFx0XHRcdFx0YWRkRm4uY2FsbCh0aGlzLmxheWVyc0NvbnRyb2wsIGMuY3VycmVudFZhbHVlLCBjLmtleSk7XG5cdFx0XHRcdFx0cmVzdWx0cy5sYXllcnNDaGFuZ2VkKys7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRjaGFuZ2VzLmZvckVhY2hSZW1vdmVkSXRlbSgoYykgPT4ge1xuXHRcdFx0XHRcdHRoaXMubGF5ZXJzQ29udHJvbC5yZW1vdmVMYXllcihjLnByZXZpb3VzVmFsdWUpO1xuXHRcdFx0XHRcdHJlc3VsdHMubGF5ZXJzUmVtb3ZlZCsrO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Y2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChjKSA9PiB7XG5cdFx0XHRcdFx0YWRkRm4uY2FsbCh0aGlzLmxheWVyc0NvbnRyb2wsIGMuY3VycmVudFZhbHVlLCBjLmtleSk7XG5cdFx0XHRcdFx0cmVzdWx0cy5sYXllcnNBZGRlZCsrO1xuXHRcdFx0XHR9KTtcblxuXHRcdFx0fSk7XG5cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG59XG4iXX0=
@@ -0,0 +1,78 @@
1
+ import { Directive, EventEmitter, Input, Output } from '@angular/core';
2
+ import { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';
3
+ import { LeafletUtil } from '../core/leaflet.util';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../core/leaflet.directive";
6
+ /**
7
+ * Layer directive
8
+ *
9
+ * This directive is used to directly control a single map layer. The purpose of this directive is to
10
+ * be used as part of a child structural directive of the map element.
11
+ *
12
+ */
13
+ export class LeafletLayerDirective {
14
+ constructor(leafletDirective, zone) {
15
+ this.zone = zone;
16
+ // Layer Events
17
+ this.onAdd = new EventEmitter();
18
+ this.onRemove = new EventEmitter();
19
+ this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);
20
+ }
21
+ ngOnInit() {
22
+ // Init the map
23
+ this.leafletDirective.init();
24
+ }
25
+ ngOnDestroy() {
26
+ if (null != this.layer) {
27
+ // Unregister the event handlers
28
+ this.removeLayerEventListeners(this.layer);
29
+ // Remove the layer from the map
30
+ this.layer.remove();
31
+ }
32
+ }
33
+ ngOnChanges(changes) {
34
+ if (changes['layer']) {
35
+ // Update the layer
36
+ const p = changes['layer'].previousValue;
37
+ const n = changes['layer'].currentValue;
38
+ this.zone.runOutsideAngular(() => {
39
+ if (null != p) {
40
+ this.removeLayerEventListeners(p);
41
+ p.remove();
42
+ }
43
+ if (null != n) {
44
+ this.addLayerEventListeners(n);
45
+ this.leafletDirective.getMap().addLayer(n);
46
+ }
47
+ });
48
+ }
49
+ }
50
+ addLayerEventListeners(l) {
51
+ this.onAddLayerHandler = (e) => LeafletUtil.handleEvent(this.zone, this.onAdd, e);
52
+ l.on('add', this.onAddLayerHandler);
53
+ this.onRemoveLayerHandler = (e) => LeafletUtil.handleEvent(this.zone, this.onRemove, e);
54
+ l.on('remove', this.onRemoveLayerHandler);
55
+ }
56
+ removeLayerEventListeners(l) {
57
+ l.off('add', this.onAddLayerHandler);
58
+ l.off('remove', this.onRemoveLayerHandler);
59
+ }
60
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayerDirective, deps: [{ token: i1.LeafletDirective }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
61
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: LeafletLayerDirective, selector: "[leafletLayer]", inputs: { layer: ["leafletLayer", "layer"] }, outputs: { onAdd: "leafletLayerAdd", onRemove: "leafletLayerRemove" }, usesOnChanges: true, ngImport: i0 }); }
62
+ }
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayerDirective, decorators: [{
64
+ type: Directive,
65
+ args: [{
66
+ selector: '[leafletLayer]'
67
+ }]
68
+ }], ctorParameters: () => [{ type: i1.LeafletDirective }, { type: i0.NgZone }], propDecorators: { layer: [{
69
+ type: Input,
70
+ args: ['leafletLayer']
71
+ }], onAdd: [{
72
+ type: Output,
73
+ args: ['leafletLayerAdd']
74
+ }], onRemove: [{
75
+ type: Output,
76
+ args: ['leafletLayerRemove']
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1sYXllci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGVhZmxldC9zcmMvbGliL2xheWVycy9sZWFmbGV0LWxheWVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXdDLE1BQU0sRUFFNUUsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFHbkQ7Ozs7OztHQU1HO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQWdCakMsWUFBWSxnQkFBa0MsRUFBVSxJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQVhwRSxlQUFlO1FBQ1ksVUFBSyxHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO1FBQ3RDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQVV6RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxRQUFRO1FBRVAsZUFBZTtRQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU5QixDQUFDO0lBRUQsV0FBVztRQUVWLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUV4QixnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUzQyxnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBRUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUF3QztRQUVuRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBRXRCLG1CQUFtQjtZQUNuQixNQUFNLENBQUMsR0FBVSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxDQUFDO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSixDQUFDO0lBRUYsQ0FBQztJQUVPLHNCQUFzQixDQUFDLENBQVE7UUFFdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFlLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTNDLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxDQUFRO1FBRXpDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTVDLENBQUM7OEdBOUVXLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxnQkFBZ0I7aUJBQzFCOzBHQUl1QixLQUFLO3NCQUEzQixLQUFLO3VCQUFDLGNBQWM7Z0JBR00sS0FBSztzQkFBL0IsTUFBTTt1QkFBQyxpQkFBaUI7Z0JBQ0ssUUFBUTtzQkFBckMsTUFBTTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHREaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2Vcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyLCBMZWFmbGV0RXZlbnQgfSBmcm9tICdsZWFmbGV0JztcblxuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUvbGVhZmxldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZVdyYXBwZXIgfSBmcm9tICcuLi9jb3JlL2xlYWZsZXQuZGlyZWN0aXZlLndyYXBwZXInO1xuaW1wb3J0IHsgTGVhZmxldFV0aWwgfSBmcm9tICcuLi9jb3JlL2xlYWZsZXQudXRpbCc7XG5cblxuLyoqXG4gKiBMYXllciBkaXJlY3RpdmVcbiAqXG4gKiBUaGlzIGRpcmVjdGl2ZSBpcyB1c2VkIHRvIGRpcmVjdGx5IGNvbnRyb2wgYSBzaW5nbGUgbWFwIGxheWVyLiBUaGUgcHVycG9zZSBvZiB0aGlzIGRpcmVjdGl2ZSBpcyB0b1xuICogYmUgdXNlZCBhcyBwYXJ0IG9mIGEgY2hpbGQgc3RydWN0dXJhbCBkaXJlY3RpdmUgb2YgdGhlIG1hcCBlbGVtZW50LlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2xlYWZsZXRMYXllcl0nXG59KVxuZXhwb3J0IGNsYXNzIExlYWZsZXRMYXllckRpcmVjdGl2ZVxuXHRpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuXG5cdEBJbnB1dCgnbGVhZmxldExheWVyJykgbGF5ZXI6IExheWVyO1xuXG5cdC8vIExheWVyIEV2ZW50c1xuXHRAT3V0cHV0KCdsZWFmbGV0TGF5ZXJBZGQnKSBvbkFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGVhZmxldEV2ZW50PigpO1xuXHRAT3V0cHV0KCdsZWFmbGV0TGF5ZXJSZW1vdmUnKSBvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGVhZmxldEV2ZW50PigpO1xuXG5cdC8vIExheWVyIEV2ZW50IGhhbmRsZXJzXG5cdHByaXZhdGUgb25BZGRMYXllckhhbmRsZXI6IGFueTtcblx0cHJpdmF0ZSBvblJlbW92ZUxheWVySGFuZGxlcjogYW55O1xuXG5cdC8vIFdyYXBwZXIgZm9yIHRoZSBsZWFmbGV0IGRpcmVjdGl2ZSAobWFuYWdlcyB0aGUgcGFyZW50IGRpcmVjdGl2ZSlcblx0cHJpdmF0ZSBsZWFmbGV0RGlyZWN0aXZlOiBMZWFmbGV0RGlyZWN0aXZlV3JhcHBlcjtcblxuXHRjb25zdHJ1Y3RvcihsZWFmbGV0RGlyZWN0aXZlOiBMZWFmbGV0RGlyZWN0aXZlLCBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuXHRcdHRoaXMubGVhZmxldERpcmVjdGl2ZSA9IG5ldyBMZWFmbGV0RGlyZWN0aXZlV3JhcHBlcihsZWFmbGV0RGlyZWN0aXZlKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXG5cdFx0Ly8gSW5pdCB0aGUgbWFwXG5cdFx0dGhpcy5sZWFmbGV0RGlyZWN0aXZlLmluaXQoKTtcblxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cblx0XHRpZiAobnVsbCAhPSB0aGlzLmxheWVyKSB7XG5cblx0XHRcdC8vIFVucmVnaXN0ZXIgdGhlIGV2ZW50IGhhbmRsZXJzXG5cdFx0XHR0aGlzLnJlbW92ZUxheWVyRXZlbnRMaXN0ZW5lcnModGhpcy5sYXllcik7XG5cblx0XHRcdC8vIFJlbW92ZSB0aGUgbGF5ZXIgZnJvbSB0aGUgbWFwXG5cdFx0XHR0aGlzLmxheWVyLnJlbW92ZSgpO1xuXHRcdH1cblxuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2UgfSkge1xuXG5cdFx0aWYgKGNoYW5nZXNbJ2xheWVyJ10pIHtcblxuXHRcdFx0Ly8gVXBkYXRlIHRoZSBsYXllclxuXHRcdFx0Y29uc3QgcDogTGF5ZXIgPSBjaGFuZ2VzWydsYXllciddLnByZXZpb3VzVmFsdWU7XG5cdFx0XHRjb25zdCBuID0gY2hhbmdlc1snbGF5ZXInXS5jdXJyZW50VmFsdWU7XG5cblx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cdFx0XHRcdGlmIChudWxsICE9IHApIHtcblx0XHRcdFx0XHR0aGlzLnJlbW92ZUxheWVyRXZlbnRMaXN0ZW5lcnMocCk7XG5cdFx0XHRcdFx0cC5yZW1vdmUoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobnVsbCAhPSBuKSB7XG5cdFx0XHRcdFx0dGhpcy5hZGRMYXllckV2ZW50TGlzdGVuZXJzKG4pO1xuXHRcdFx0XHRcdHRoaXMubGVhZmxldERpcmVjdGl2ZS5nZXRNYXAoKS5hZGRMYXllcihuKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR9XG5cblx0fVxuXG5cdHByaXZhdGUgYWRkTGF5ZXJFdmVudExpc3RlbmVycyhsOiBMYXllcikge1xuXG5cdFx0dGhpcy5vbkFkZExheWVySGFuZGxlciA9IChlOiBMZWFmbGV0RXZlbnQpID0+IExlYWZsZXRVdGlsLmhhbmRsZUV2ZW50KHRoaXMuem9uZSwgdGhpcy5vbkFkZCwgZSk7XG5cdFx0bC5vbignYWRkJywgdGhpcy5vbkFkZExheWVySGFuZGxlcik7XG5cblx0XHR0aGlzLm9uUmVtb3ZlTGF5ZXJIYW5kbGVyID0gKGU6IExlYWZsZXRFdmVudCkgPT4gTGVhZmxldFV0aWwuaGFuZGxlRXZlbnQodGhpcy56b25lLCB0aGlzLm9uUmVtb3ZlLCBlKTtcblx0XHRsLm9uKCdyZW1vdmUnLCB0aGlzLm9uUmVtb3ZlTGF5ZXJIYW5kbGVyKTtcblxuXHR9XG5cblx0cHJpdmF0ZSByZW1vdmVMYXllckV2ZW50TGlzdGVuZXJzKGw6IExheWVyKSB7XG5cblx0XHRsLm9mZignYWRkJywgdGhpcy5vbkFkZExheWVySGFuZGxlcik7XG5cdFx0bC5vZmYoJ3JlbW92ZScsIHRoaXMub25SZW1vdmVMYXllckhhbmRsZXIpO1xuXG5cdH1cblxufVxuIl19
@@ -0,0 +1,83 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { LeafletDirectiveWrapper } from '../core/leaflet.directive.wrapper';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../core/leaflet.directive";
5
+ /**
6
+ * Layers directive
7
+ *
8
+ * This directive is used to directly control map layers. As changes are made to the input array of
9
+ * layers, the map is synched to the array. As layers are added or removed from the input array, they
10
+ * are also added or removed from the map. The input array is treated as immutable. To detect changes,
11
+ * you must change the array instance.
12
+ *
13
+ * Important Note: The input layers array is assumed to be immutable. This means you need to use an
14
+ * immutable array implementation or create a new copy of your array when you make changes, otherwise
15
+ * this directive won't detect the change. This is by design. It's for performance reasons. Change
16
+ * detection of mutable arrays requires diffing the state of the array on every DoCheck cycle, which
17
+ * is extremely expensive from a time complexity perspective.
18
+ *
19
+ */
20
+ export class LeafletLayersDirective {
21
+ // Set/get the layers
22
+ set layers(v) {
23
+ this.layersValue = v;
24
+ // Now that we have a differ, do an immediate layer update
25
+ this.updateLayers();
26
+ }
27
+ get layers() {
28
+ return this.layersValue;
29
+ }
30
+ constructor(leafletDirective, differs, zone) {
31
+ this.differs = differs;
32
+ this.zone = zone;
33
+ this.leafletDirective = new LeafletDirectiveWrapper(leafletDirective);
34
+ this.layersDiffer = this.differs.find([]).create();
35
+ }
36
+ ngDoCheck() {
37
+ this.updateLayers();
38
+ }
39
+ ngOnInit() {
40
+ // Init the map
41
+ this.leafletDirective.init();
42
+ // Update layers once the map is ready
43
+ this.updateLayers();
44
+ }
45
+ ngOnDestroy() {
46
+ this.layers = [];
47
+ }
48
+ /**
49
+ * Update the state of the layers.
50
+ * We use an iterable differ to synchronize the map layers with the state of the bound layers array.
51
+ * This is important because it allows us to react to changes to the contents of the array as well
52
+ * as changes to the actual array instance.
53
+ */
54
+ updateLayers() {
55
+ const map = this.leafletDirective.getMap();
56
+ if (null != map && null != this.layersDiffer) {
57
+ const changes = this.layersDiffer.diff(this.layersValue);
58
+ if (null != changes) {
59
+ // Run outside angular to ensure layer events don't trigger change detection
60
+ this.zone.runOutsideAngular(() => {
61
+ changes.forEachRemovedItem((c) => {
62
+ map.removeLayer(c.item);
63
+ });
64
+ changes.forEachAddedItem((c) => {
65
+ map.addLayer(c.item);
66
+ });
67
+ });
68
+ }
69
+ }
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayersDirective, deps: [{ token: i1.LeafletDirective }, { token: i0.IterableDiffers }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: LeafletLayersDirective, selector: "[leafletLayers]", inputs: { layers: ["leafletLayers", "layers"] }, ngImport: i0 }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletLayersDirective, decorators: [{
75
+ type: Directive,
76
+ args: [{
77
+ selector: '[leafletLayers]'
78
+ }]
79
+ }], ctorParameters: () => [{ type: i1.LeafletDirective }, { type: i0.IterableDiffers }, { type: i0.NgZone }], propDecorators: { layers: [{
80
+ type: Input,
81
+ args: ['leafletLayers']
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1sYXllcnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxlYWZsZXQvc3JjL2xpYi9sYXllcnMvbGVhZmxldC1sYXllcnMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVcsS0FBSyxFQUE4RCxNQUFNLGVBQWUsQ0FBQztBQUt0SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBRzVFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQVNsQyxxQkFBcUI7SUFDckIsSUFDSSxNQUFNLENBQUMsQ0FBVTtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUVyQiwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUtELFlBQVksZ0JBQWtDLEVBQVUsT0FBd0IsRUFBVSxJQUFZO1FBQTlDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNyRyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELFNBQVM7UUFDUixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFFUCxlQUFlO1FBQ2YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFckIsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxZQUFZO1FBRW5CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUUzQyxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUU5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekQsSUFBSSxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBRXJCLDRFQUE0RTtnQkFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBRWhDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNoQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzlCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUN0QixDQUFDLENBQUMsQ0FBQztnQkFFSixDQUFDLENBQUMsQ0FBQztZQUVKLENBQUM7UUFFRixDQUFDO0lBRUYsQ0FBQzs4R0E5RVcsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGlCQUFpQjtpQkFDM0I7d0lBWUksTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIERvQ2hlY2ssIElucHV0LCBJdGVyYWJsZURpZmZlciwgSXRlcmFibGVEaWZmZXJzLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyfSBmcm9tICdsZWFmbGV0JztcblxuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZSB9IGZyb20gJy4uL2NvcmUvbGVhZmxldC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGVhZmxldERpcmVjdGl2ZVdyYXBwZXIgfSBmcm9tICcuLi9jb3JlL2xlYWZsZXQuZGlyZWN0aXZlLndyYXBwZXInO1xuXG5cbi8qKlxuICogTGF5ZXJzIGRpcmVjdGl2ZVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIHVzZWQgdG8gZGlyZWN0bHkgY29udHJvbCBtYXAgbGF5ZXJzLiBBcyBjaGFuZ2VzIGFyZSBtYWRlIHRvIHRoZSBpbnB1dCBhcnJheSBvZlxuICogbGF5ZXJzLCB0aGUgbWFwIGlzIHN5bmNoZWQgdG8gdGhlIGFycmF5LiBBcyBsYXllcnMgYXJlIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgaW5wdXQgYXJyYXksIHRoZXlcbiAqIGFyZSBhbHNvIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgbWFwLiBUaGUgaW5wdXQgYXJyYXkgaXMgdHJlYXRlZCBhcyBpbW11dGFibGUuIFRvIGRldGVjdCBjaGFuZ2VzLFxuICogeW91IG11c3QgY2hhbmdlIHRoZSBhcnJheSBpbnN0YW5jZS5cbiAqXG4gKiBJbXBvcnRhbnQgTm90ZTogVGhlIGlucHV0IGxheWVycyBhcnJheSBpcyBhc3N1bWVkIHRvIGJlIGltbXV0YWJsZS4gVGhpcyBtZWFucyB5b3UgbmVlZCB0byB1c2UgYW5cbiAqIGltbXV0YWJsZSBhcnJheSBpbXBsZW1lbnRhdGlvbiBvciBjcmVhdGUgYSBuZXcgY29weSBvZiB5b3VyIGFycmF5IHdoZW4geW91IG1ha2UgY2hhbmdlcywgb3RoZXJ3aXNlXG4gKiB0aGlzIGRpcmVjdGl2ZSB3b24ndCBkZXRlY3QgdGhlIGNoYW5nZS4gVGhpcyBpcyBieSBkZXNpZ24uIEl0J3MgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIENoYW5nZVxuICogZGV0ZWN0aW9uIG9mIG11dGFibGUgYXJyYXlzIHJlcXVpcmVzIGRpZmZpbmcgdGhlIHN0YXRlIG9mIHRoZSBhcnJheSBvbiBldmVyeSBEb0NoZWNrIGN5Y2xlLCB3aGljaFxuICogaXMgZXh0cmVtZWx5IGV4cGVuc2l2ZSBmcm9tIGEgdGltZSBjb21wbGV4aXR5IHBlcnNwZWN0aXZlLlxuICpcbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2xlYWZsZXRMYXllcnNdJ1xufSlcbmV4cG9ydCBjbGFzcyBMZWFmbGV0TGF5ZXJzRGlyZWN0aXZlXG5cdGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95LCBPbkluaXQge1xuXG5cdC8vIEFycmF5IG9mIGNvbmZpZ3VyZWQgbGF5ZXJzXG5cdGxheWVyc1ZhbHVlOiBMYXllcltdO1xuXG5cdC8vIERpZmZlciB0byBkbyBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHRoZSBhcnJheVxuXHRsYXllcnNEaWZmZXI6IEl0ZXJhYmxlRGlmZmVyPExheWVyPjtcblxuXHQvLyBTZXQvZ2V0IHRoZSBsYXllcnNcblx0QElucHV0KCdsZWFmbGV0TGF5ZXJzJylcblx0c2V0IGxheWVycyh2OiBMYXllcltdKSB7XG5cdFx0dGhpcy5sYXllcnNWYWx1ZSA9IHY7XG5cblx0XHQvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgZGlmZmVyLCBkbyBhbiBpbW1lZGlhdGUgbGF5ZXIgdXBkYXRlXG5cdFx0dGhpcy51cGRhdGVMYXllcnMoKTtcblx0fVxuXHRnZXQgbGF5ZXJzKCk6IExheWVyW10ge1xuXHRcdHJldHVybiB0aGlzLmxheWVyc1ZhbHVlO1xuXHR9XG5cblx0Ly8gV3JhcHBlciBmb3IgdGhlIGxlYWZsZXQgZGlyZWN0aXZlIChtYW5hZ2VzIHRoZSBwYXJlbnQgZGlyZWN0aXZlKVxuXHRwcml2YXRlIGxlYWZsZXREaXJlY3RpdmU6IExlYWZsZXREaXJlY3RpdmVXcmFwcGVyO1xuXG5cdGNvbnN0cnVjdG9yKGxlYWZsZXREaXJlY3RpdmU6IExlYWZsZXREaXJlY3RpdmUsIHByaXZhdGUgZGlmZmVyczogSXRlcmFibGVEaWZmZXJzLCBwcml2YXRlIHpvbmU6IE5nWm9uZSkge1xuXHRcdHRoaXMubGVhZmxldERpcmVjdGl2ZSA9IG5ldyBMZWFmbGV0RGlyZWN0aXZlV3JhcHBlcihsZWFmbGV0RGlyZWN0aXZlKTtcblx0XHR0aGlzLmxheWVyc0RpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKFtdKS5jcmVhdGU8TGF5ZXI+KCk7XG5cdH1cblxuXHRuZ0RvQ2hlY2soKSB7XG5cdFx0dGhpcy51cGRhdGVMYXllcnMoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge1xuXG5cdFx0Ly8gSW5pdCB0aGUgbWFwXG5cdFx0dGhpcy5sZWFmbGV0RGlyZWN0aXZlLmluaXQoKTtcblxuXHRcdC8vIFVwZGF0ZSBsYXllcnMgb25jZSB0aGUgbWFwIGlzIHJlYWR5XG5cdFx0dGhpcy51cGRhdGVMYXllcnMoKTtcblxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5sYXllcnMgPSBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBsYXllcnMuXG5cdCAqIFdlIHVzZSBhbiBpdGVyYWJsZSBkaWZmZXIgdG8gc3luY2hyb25pemUgdGhlIG1hcCBsYXllcnMgd2l0aCB0aGUgc3RhdGUgb2YgdGhlIGJvdW5kIGxheWVycyBhcnJheS5cblx0ICogVGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8gcmVhY3QgdG8gY2hhbmdlcyB0byB0aGUgY29udGVudHMgb2YgdGhlIGFycmF5IGFzIHdlbGxcblx0ICogYXMgY2hhbmdlcyB0byB0aGUgYWN0dWFsIGFycmF5IGluc3RhbmNlLlxuXHQgKi9cblx0cHJpdmF0ZSB1cGRhdGVMYXllcnMoKSB7XG5cblx0XHRjb25zdCBtYXAgPSB0aGlzLmxlYWZsZXREaXJlY3RpdmUuZ2V0TWFwKCk7XG5cblx0XHRpZiAobnVsbCAhPSBtYXAgJiYgbnVsbCAhPSB0aGlzLmxheWVyc0RpZmZlcikge1xuXG5cdFx0XHRjb25zdCBjaGFuZ2VzID0gdGhpcy5sYXllcnNEaWZmZXIuZGlmZih0aGlzLmxheWVyc1ZhbHVlKTtcblx0XHRcdGlmIChudWxsICE9IGNoYW5nZXMpIHtcblxuXHRcdFx0XHQvLyBSdW4gb3V0c2lkZSBhbmd1bGFyIHRvIGVuc3VyZSBsYXllciBldmVudHMgZG9uJ3QgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG5cdFx0XHRcdHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG5cblx0XHRcdFx0XHRjaGFuZ2VzLmZvckVhY2hSZW1vdmVkSXRlbSgoYykgPT4ge1xuXHRcdFx0XHRcdFx0bWFwLnJlbW92ZUxheWVyKGMuaXRlbSk7XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0Y2hhbmdlcy5mb3JFYWNoQWRkZWRJdGVtKChjKSA9PiB7XG5cdFx0XHRcdFx0XHRtYXAuYWRkTGF5ZXIoYy5pdGVtKTtcblx0XHRcdFx0XHR9KTtcblxuXHRcdFx0XHR9KTtcblxuXHRcdFx0fVxuXG5cdFx0fVxuXG5cdH1cblxufVxuIl19
@@ -0,0 +1,53 @@
1
+ import { tileLayer } from 'leaflet';
2
+ export class LeafletTileLayerDefinition {
3
+ constructor(type, url, options) {
4
+ this.type = type;
5
+ this.url = url;
6
+ this.options = options;
7
+ }
8
+ /**
9
+ * Creates a TileLayer from the provided definition. This is a convenience function
10
+ * to help with generating layers from objects.
11
+ *
12
+ * @param layerDef The layer to create
13
+ * @returns {TileLayer} The TileLayer that has been created
14
+ */
15
+ static createTileLayer(layerDef) {
16
+ let layer;
17
+ switch (layerDef.type) {
18
+ case 'xyz':
19
+ layer = tileLayer(layerDef.url, layerDef.options);
20
+ break;
21
+ case 'wms':
22
+ default:
23
+ layer = tileLayer.wms(layerDef.url, layerDef.options);
24
+ break;
25
+ }
26
+ return layer;
27
+ }
28
+ /**
29
+ * Creates a TileLayer for each key in the incoming map. This is a convenience function
30
+ * for generating an associative array of layers from an associative array of objects
31
+ *
32
+ * @param layerDefs A map of key to tile layer definition
33
+ * @returns {{[p: string]: TileLayer}} A new map of key to TileLayer
34
+ */
35
+ static createTileLayers(layerDefs) {
36
+ const layers = {};
37
+ for (const k in layerDefs) {
38
+ if (layerDefs.hasOwnProperty(k)) {
39
+ layers[k] = (LeafletTileLayerDefinition.createTileLayer(layerDefs[k]));
40
+ }
41
+ }
42
+ return layers;
43
+ }
44
+ /**
45
+ * Create a Tile Layer from the current state of this object
46
+ *
47
+ * @returns {TileLayer} A new TileLayer
48
+ */
49
+ createTileLayer() {
50
+ return LeafletTileLayerDefinition.createTileLayer(this);
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC10aWxlLWxheWVyLWRlZmluaXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGVhZmxldC9zcmMvbGliL2xheWVycy9sZWFmbGV0LXRpbGUtbGF5ZXItZGVmaW5pdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sU0FBUyxDQUFDO0FBRS9DLE1BQU0sT0FBTywwQkFBMEI7SUFFdEMsWUFDUSxJQUFZLEVBQ1osR0FBVyxFQUNYLE9BQVk7UUFGWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBSSxDQUFDO0lBR3pCOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBb0M7UUFDMUQsSUFBSSxLQUFnQixDQUFDO1FBRXJCLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUssS0FBSztnQkFDVCxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1lBQ1AsS0FBSyxLQUFLLENBQUM7WUFDWDtnQkFDQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkQsTUFBTTtRQUNSLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBMEQ7UUFDakYsTUFBTSxNQUFNLEdBQW1DLEVBQUUsQ0FBQztRQUVsRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzNCLElBQUksU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0YsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlO1FBQ2QsT0FBTywwQkFBMEIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGlsZUxheWVyLCBUaWxlTGF5ZXIgfSBmcm9tICdsZWFmbGV0JztcblxuZXhwb3J0IGNsYXNzIExlYWZsZXRUaWxlTGF5ZXJEZWZpbml0aW9uIHtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwdWJsaWMgdHlwZTogc3RyaW5nLFxuXHRcdHB1YmxpYyB1cmw6IHN0cmluZyxcblx0XHRwdWJsaWMgb3B0aW9uczogYW55KSB7IH1cblxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgVGlsZUxheWVyIGZyb20gdGhlIHByb3ZpZGVkIGRlZmluaXRpb24uIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvblxuXHQgKiB0byBoZWxwIHdpdGggZ2VuZXJhdGluZyBsYXllcnMgZnJvbSBvYmplY3RzLlxuXHQgKlxuXHQgKiBAcGFyYW0gbGF5ZXJEZWYgVGhlIGxheWVyIHRvIGNyZWF0ZVxuXHQgKiBAcmV0dXJucyB7VGlsZUxheWVyfSBUaGUgVGlsZUxheWVyIHRoYXQgaGFzIGJlZW4gY3JlYXRlZFxuXHQgKi9cblx0c3RhdGljIGNyZWF0ZVRpbGVMYXllcihsYXllckRlZjogTGVhZmxldFRpbGVMYXllckRlZmluaXRpb24pOiBUaWxlTGF5ZXIge1xuXHRcdGxldCBsYXllcjogVGlsZUxheWVyO1xuXG5cdFx0c3dpdGNoIChsYXllckRlZi50eXBlKSB7XG5cdFx0XHRjYXNlICd4eXonOlxuXHRcdFx0XHRsYXllciA9IHRpbGVMYXllcihsYXllckRlZi51cmwsICBsYXllckRlZi5vcHRpb25zKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICd3bXMnOlxuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0bGF5ZXIgPSB0aWxlTGF5ZXIud21zKGxheWVyRGVmLnVybCwgIGxheWVyRGVmLm9wdGlvbnMpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cblx0XHRyZXR1cm4gbGF5ZXI7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIFRpbGVMYXllciBmb3IgZWFjaCBrZXkgaW4gdGhlIGluY29taW5nIG1hcC4gVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uXG5cdCAqIGZvciBnZW5lcmF0aW5nIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIGxheWVycyBmcm9tIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIG9iamVjdHNcblx0ICpcblx0ICogQHBhcmFtIGxheWVyRGVmcyBBIG1hcCBvZiBrZXkgdG8gdGlsZSBsYXllciBkZWZpbml0aW9uXG5cdCAqIEByZXR1cm5zIHt7W3A6IHN0cmluZ106IFRpbGVMYXllcn19IEEgbmV3IG1hcCBvZiBrZXkgdG8gVGlsZUxheWVyXG5cdCAqL1xuXHRzdGF0aWMgY3JlYXRlVGlsZUxheWVycyhsYXllckRlZnM6IHsgWyBrZXk6IHN0cmluZyBdOiBMZWFmbGV0VGlsZUxheWVyRGVmaW5pdGlvbiB9KTogeyBbIGtleTogc3RyaW5nIF06IFRpbGVMYXllciB9IHtcblx0XHRjb25zdCBsYXllcnM6IHsgWyBrZXk6IHN0cmluZyBdOiBUaWxlTGF5ZXIgfSA9IHt9O1xuXG5cdFx0Zm9yIChjb25zdCBrIGluIGxheWVyRGVmcykge1xuXHRcdFx0aWYgKGxheWVyRGVmcy5oYXNPd25Qcm9wZXJ0eShrKSkge1xuXHRcdFx0XHRsYXllcnNba10gPSAoTGVhZmxldFRpbGVMYXllckRlZmluaXRpb24uY3JlYXRlVGlsZUxheWVyKGxheWVyRGVmc1trXSkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBsYXllcnM7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIGEgVGlsZSBMYXllciBmcm9tIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgb2JqZWN0XG5cdCAqXG5cdCAqIEByZXR1cm5zIHtUaWxlTGF5ZXJ9IEEgbmV3IFRpbGVMYXllclxuXHQgKi9cblx0Y3JlYXRlVGlsZUxheWVyKCk6IFRpbGVMYXllciB7XG5cdFx0cmV0dXJuIExlYWZsZXRUaWxlTGF5ZXJEZWZpbml0aW9uLmNyZWF0ZVRpbGVMYXllcih0aGlzKTtcblx0fVxufVxuIl19
@@ -0,0 +1,40 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LeafletDirective } from './core/leaflet.directive';
3
+ import { LeafletLayerDirective } from './layers/leaflet-layer.directive';
4
+ import { LeafletLayersDirective } from './layers/leaflet-layers.directive';
5
+ import { LeafletLayersControlDirective } from './layers/control/leaflet-control-layers.directive';
6
+ import { LeafletBaseLayersDirective } from './layers/base/leaflet-baselayers.directive';
7
+ import * as i0 from "@angular/core";
8
+ export class LeafletModule {
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: LeafletModule, declarations: [LeafletDirective,
11
+ LeafletLayerDirective,
12
+ LeafletLayersDirective,
13
+ LeafletLayersControlDirective,
14
+ LeafletBaseLayersDirective], exports: [LeafletDirective,
15
+ LeafletLayerDirective,
16
+ LeafletLayersDirective,
17
+ LeafletLayersControlDirective,
18
+ LeafletBaseLayersDirective] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletModule }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LeafletModule, decorators: [{
22
+ type: NgModule,
23
+ args: [{
24
+ exports: [
25
+ LeafletDirective,
26
+ LeafletLayerDirective,
27
+ LeafletLayersDirective,
28
+ LeafletLayersControlDirective,
29
+ LeafletBaseLayersDirective
30
+ ],
31
+ declarations: [
32
+ LeafletDirective,
33
+ LeafletLayerDirective,
34
+ LeafletLayersDirective,
35
+ LeafletLayersControlDirective,
36
+ LeafletBaseLayersDirective
37
+ ]
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGVhZmxldC9zcmMvbGliL2xlYWZsZXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBa0J4RixNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBUHhCLGdCQUFnQjtZQUNoQixxQkFBcUI7WUFDckIsc0JBQXNCO1lBQ3RCLDZCQUE2QjtZQUM3QiwwQkFBMEIsYUFYMUIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLDBCQUEwQjsrR0FVZixhQUFhOzsyRkFBYixhQUFhO2tCQWhCekIsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUU7d0JBQ1IsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsNkJBQTZCO3dCQUM3QiwwQkFBMEI7cUJBQzFCO29CQUNELFlBQVksRUFBRTt3QkFDYixnQkFBZ0I7d0JBQ2hCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0Qiw2QkFBNkI7d0JBQzdCLDBCQUEwQjtxQkFDMUI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMZWFmbGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb3JlL2xlYWZsZXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IExlYWZsZXRMYXllckRpcmVjdGl2ZSB9IGZyb20gJy4vbGF5ZXJzL2xlYWZsZXQtbGF5ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IExlYWZsZXRMYXllcnNEaXJlY3RpdmUgfSBmcm9tICcuL2xheWVycy9sZWFmbGV0LWxheWVycy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGVhZmxldExheWVyc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2xheWVycy9jb250cm9sL2xlYWZsZXQtY29udHJvbC1sYXllcnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IExlYWZsZXRCYXNlTGF5ZXJzRGlyZWN0aXZlIH0gZnJvbSAnLi9sYXllcnMvYmFzZS9sZWFmbGV0LWJhc2VsYXllcnMuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcblx0ZXhwb3J0czogW1xuXHRcdExlYWZsZXREaXJlY3RpdmUsXG5cdFx0TGVhZmxldExheWVyRGlyZWN0aXZlLFxuXHRcdExlYWZsZXRMYXllcnNEaXJlY3RpdmUsXG5cdFx0TGVhZmxldExheWVyc0NvbnRyb2xEaXJlY3RpdmUsXG5cdFx0TGVhZmxldEJhc2VMYXllcnNEaXJlY3RpdmVcblx0XSxcblx0ZGVjbGFyYXRpb25zOiBbXG5cdFx0TGVhZmxldERpcmVjdGl2ZSxcblx0XHRMZWFmbGV0TGF5ZXJEaXJlY3RpdmUsXG5cdFx0TGVhZmxldExheWVyc0RpcmVjdGl2ZSxcblx0XHRMZWFmbGV0TGF5ZXJzQ29udHJvbERpcmVjdGl2ZSxcblx0XHRMZWFmbGV0QmFzZUxheWVyc0RpcmVjdGl2ZVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIExlYWZsZXRNb2R1bGUge1xuXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ export { LeafletModule } from './lib/leaflet.module';
2
+ export { LeafletDirective } from './lib/core/leaflet.directive';
3
+ export { LeafletDirectiveWrapper } from './lib/core/leaflet.directive.wrapper';
4
+ export { LeafletUtil } from './lib/core/leaflet.util';
5
+ export { LeafletLayerDirective } from './lib/layers/leaflet-layer.directive';
6
+ export { LeafletLayersDirective } from './lib/layers/leaflet-layers.directive';
7
+ export { LeafletTileLayerDefinition } from './lib/layers/leaflet-tile-layer-definition.model';
8
+ export { LeafletBaseLayersDirective } from './lib/layers/base/leaflet-baselayers.directive';
9
+ export { LeafletLayersControlDirective } from './lib/layers/control/leaflet-control-layers.directive';
10
+ export { LeafletControlLayersWrapper } from './lib/layers/control/leaflet-control-layers.wrapper';
11
+ export { LeafletControlLayersConfig } from './lib/layers/control/leaflet-control-layers-config.model';
12
+ export { LeafletControlLayersChanges } from './lib/layers/control/leaflet-control-layers-changes.model';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1sZWFmbGV0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFOUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFNUYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMkRBQTJELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBMZWFmbGV0TW9kdWxlIH0gZnJvbSAnLi9saWIvbGVhZmxldC5tb2R1bGUnO1xuXG5leHBvcnQgeyBMZWFmbGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvY29yZS9sZWFmbGV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBMZWFmbGV0RGlyZWN0aXZlV3JhcHBlciB9IGZyb20gJy4vbGliL2NvcmUvbGVhZmxldC5kaXJlY3RpdmUud3JhcHBlcic7XG5leHBvcnQgeyBMZWFmbGV0VXRpbCB9IGZyb20gJy4vbGliL2NvcmUvbGVhZmxldC51dGlsJztcblxuZXhwb3J0IHsgTGVhZmxldExheWVyRGlyZWN0aXZlIH0gZnJvbSAnLi9saWIvbGF5ZXJzL2xlYWZsZXQtbGF5ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IExlYWZsZXRMYXllcnNEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9sYXllcnMvbGVhZmxldC1sYXllcnMuZGlyZWN0aXZlJztcbmV4cG9ydCB7IExlYWZsZXRUaWxlTGF5ZXJEZWZpbml0aW9uIH0gZnJvbSAnLi9saWIvbGF5ZXJzL2xlYWZsZXQtdGlsZS1sYXllci1kZWZpbml0aW9uLm1vZGVsJztcblxuZXhwb3J0IHsgTGVhZmxldEJhc2VMYXllcnNEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9sYXllcnMvYmFzZS9sZWFmbGV0LWJhc2VsYXllcnMuZGlyZWN0aXZlJztcblxuZXhwb3J0IHsgTGVhZmxldExheWVyc0NvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2xpYi9sYXllcnMvY29udHJvbC9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBMZWFmbGV0Q29udHJvbExheWVyc1dyYXBwZXIgfSBmcm9tICcuL2xpYi9sYXllcnMvY29udHJvbC9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLndyYXBwZXInO1xuZXhwb3J0IHsgTGVhZmxldENvbnRyb2xMYXllcnNDb25maWcgfSBmcm9tICcuL2xpYi9sYXllcnMvY29udHJvbC9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWNvbmZpZy5tb2RlbCc7XG5leHBvcnQgeyBMZWFmbGV0Q29udHJvbExheWVyc0NoYW5nZXMgfSBmcm9tICcuL2xpYi9sYXllcnMvY29udHJvbC9sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWNoYW5nZXMubW9kZWwnO1xuIl19