@artstesh/maps 4.1.36 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/esm2020/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +12 -2
  2. package/dist/esm2020/map/map-plate/map-plate.component.mjs +3 -3
  3. package/dist/esm2020/map/messages/executors/generate-zoom-control.executor.mjs +1 -1
  4. package/dist/esm2020/map/models/map-settings.mjs +14 -1
  5. package/dist/esm2020/map/services/drawing/drawing.service.mjs +5 -2
  6. package/dist/esm2020/map/services/map-postboy.service.mjs +1 -9
  7. package/dist/esm2020/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +12 -2
  8. package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +3 -3
  9. package/dist/esm2020/src/map/messages/executors/generate-zoom-control.executor.mjs +1 -1
  10. package/dist/esm2020/src/map/models/map-settings.mjs +14 -1
  11. package/dist/esm2020/src/map/services/drawing/drawing.service.mjs +5 -2
  12. package/dist/esm2020/src/map/services/map-postboy.service.mjs +1 -9
  13. package/dist/fesm2015/maps-components-src-map.mjs +29 -9
  14. package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
  15. package/dist/fesm2015/maps-components.mjs +29 -9
  16. package/dist/fesm2015/maps-components.mjs.map +1 -1
  17. package/dist/fesm2020/maps-components-src-map.mjs +29 -9
  18. package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
  19. package/dist/fesm2020/maps-components.mjs +29 -9
  20. package/dist/fesm2020/maps-components.mjs.map +1 -1
  21. package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +4 -2
  22. package/dist/map/messages/executors/generate-zoom-control.executor.d.ts +2 -2
  23. package/dist/map/models/map-settings.d.ts +8 -0
  24. package/dist/package.json +1 -1
  25. package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +4 -2
  26. package/dist/src/map/messages/executors/generate-zoom-control.executor.d.ts +2 -2
  27. package/dist/src/map/models/map-settings.d.ts +8 -0
  28. package/package.json +13 -3
@@ -11,7 +11,7 @@ import { getCenter, createEmpty, extend } from 'ol/extent';
11
11
  import Polygon, { circular, fromExtent } from 'ol/geom/Polygon';
12
12
  import { Control, Zoom } from 'ol/control';
13
13
  import { get, useGeographic, transform } from 'ol/proj';
14
- import { PostboyGenericMessage, PostboyCallbackMessage, PostboyExecutor, PostboyService, PostboyAbstractRegistrator } from '@artstesh/postboy';
14
+ import { PostboyGenericMessage, PostboyCallbackMessage, PostboyExecutor, PostboyService, LockMessage, UnlockMessage, PostboyAbstractRegistrator } from '@artstesh/postboy';
15
15
  import * as Sphere from 'ol/sphere';
16
16
  import { getLength } from 'ol/sphere';
17
17
  import { Draw, Modify, Translate, defaults } from 'ol/interaction';
@@ -86,6 +86,7 @@ class MapSettings {
86
86
  this.zoom = 4;
87
87
  this.lyrs = MapLyrs.Hybrid;
88
88
  this.language = 'en';
89
+ this.osmOpacity = 1;
89
90
  this.interactionSettings = {};
90
91
  }
91
92
  static copy(model) {
@@ -97,6 +98,7 @@ class MapSettings {
97
98
  result.lyrs = model.lyrs;
98
99
  result.interactionSettings = model.interactionSettings;
99
100
  result.language = model.language;
101
+ result.osmOpacity = model.osmOpacity;
100
102
  return result;
101
103
  }
102
104
  /**
@@ -163,6 +165,15 @@ class MapSettings {
163
165
  setLanguage(language) {
164
166
  return MapSettings.copy(Object.assign(Object.assign({}, this), { language }));
165
167
  }
168
+ /**
169
+ * Sets the opacity level for the OpenStreetMap layer.
170
+ *
171
+ * @param {number} osmOpacity - The opacity value for the OpenStreetMap layer, where 0 is fully transparent and 1 is fully opaque.
172
+ * @return {MapSettings} A new MapSettings instance with the updated OpenStreetMap opacity.
173
+ */
174
+ setOsmOpacity(osmOpacity) {
175
+ return MapSettings.copy(Object.assign(Object.assign({}, this), { osmOpacity }));
176
+ }
166
177
  /**
167
178
  * Compares the current MapSettings instance with another to determine if they are identical.
168
179
  *
@@ -182,6 +193,8 @@ class MapSettings {
182
193
  return false;
183
194
  if (this.interactionSettings !== model.interactionSettings)
184
195
  return false;
196
+ if (this.osmOpacity !== model.osmOpacity)
197
+ return false;
185
198
  return this.center.length === model.center.length && !this.center.filter((c, i) => c !== model.center[i]).length;
186
199
  }
187
200
  }
@@ -925,11 +938,6 @@ RemoveRasterTileCommand.ID = 'd1c4bf6a-e2f2-4385-a7a2-cecb525f8939';
925
938
  class MapPostboyService extends PostboyService {
926
939
  constructor() {
927
940
  super();
928
- this.addLocker({
929
- locker: StartDrawingCommand.ID,
930
- unlocker: DrawingFinishedEvent.ID,
931
- locking: [MapClickEvent.ID],
932
- });
933
941
  }
934
942
  }
935
943
  MapPostboyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1242,6 +1250,7 @@ class DrawingService {
1242
1250
  }
1243
1251
  observeDrawing() {
1244
1252
  this.postboy.sub(StartDrawingCommand).subscribe((ev) => {
1253
+ this.postboy.exec(new LockMessage(MapClickEvent));
1245
1254
  this.draw((l) => {
1246
1255
  var _a;
1247
1256
  if (!l || !this.map) {
@@ -1289,6 +1298,7 @@ class DrawingService {
1289
1298
  (_a = this.map) === null || _a === void 0 ? void 0 : _a.removeInteraction(this.drawInteraction);
1290
1299
  layer === null || layer === void 0 ? void 0 : layer.setSource(new Vector({}));
1291
1300
  }
1301
+ this.postboy.exec(new UnlockMessage(MapClickEvent));
1292
1302
  setTimeout(() => this.postboy.fire(new DrawingFinishedEvent()), 300);
1293
1303
  }
1294
1304
  }
@@ -1723,6 +1733,7 @@ class OsmTileLayerComponent extends DestructibleComponent {
1723
1733
  constructor() {
1724
1734
  super();
1725
1735
  this._url = '';
1736
+ this._opacity = 1;
1726
1737
  }
1727
1738
  set url(value) {
1728
1739
  if (!value || this._url === value)
@@ -1730,6 +1741,12 @@ class OsmTileLayerComponent extends DestructibleComponent {
1730
1741
  this._url = value;
1731
1742
  this.initLayer();
1732
1743
  }
1744
+ set opacity(value) {
1745
+ if (!value || this._opacity === value)
1746
+ return;
1747
+ this._opacity = value;
1748
+ this.initLayer();
1749
+ }
1733
1750
  set map(value) {
1734
1751
  if (!value || this._map === value)
1735
1752
  return;
@@ -1754,18 +1771,21 @@ class OsmTileLayerComponent extends DestructibleComponent {
1754
1771
  source: new OSM({
1755
1772
  url: this._url,
1756
1773
  }),
1774
+ opacity: this._opacity,
1757
1775
  });
1758
1776
  this.layer.set('name', 'osm-tile-layer');
1759
1777
  this._map.addLayer(this.layer);
1760
1778
  }
1761
1779
  }
1762
1780
  OsmTileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1763
- OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OsmTileLayerComponent, selector: "art-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1781
+ OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OsmTileLayerComponent, selector: "art-osm-tile-layer", inputs: { url: "url", opacity: "opacity", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1764
1782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
1765
1783
  type: Component,
1766
1784
  args: [{ selector: 'art-osm-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
1767
1785
  }], ctorParameters: function () { return []; }, propDecorators: { url: [{
1768
1786
  type: Input
1787
+ }], opacity: [{
1788
+ type: Input
1769
1789
  }], map: [{
1770
1790
  type: Input
1771
1791
  }] } });
@@ -2797,7 +2817,7 @@ MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
2797
2817
  FeatureService,
2798
2818
  FeatureModificationService,
2799
2819
  ControlsService,
2800
- ], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n", styles: ["art-map-plate{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "art-osm-tile-layer", inputs: ["url", "map"] }, { kind: "component", type: FeatureLayerComponent, selector: "art-feature-layer", inputs: ["settings"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2820
+ ], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\" [opacity]=\"_settings.osmOpacity\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n", styles: ["art-map-plate{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "art-osm-tile-layer", inputs: ["url", "opacity", "map"] }, { kind: "component", type: FeatureLayerComponent, selector: "art-feature-layer", inputs: ["settings"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
2801
2821
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, decorators: [{
2802
2822
  type: Component,
2803
2823
  args: [{ selector: 'art-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -2811,7 +2831,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
2811
2831
  FeatureService,
2812
2832
  FeatureModificationService,
2813
2833
  ControlsService,
2814
- ], encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n", styles: ["art-map-plate{display:block;width:100%;height:100%}\n"] }]
2834
+ ], encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\r\n<art-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\" [opacity]=\"_settings.osmOpacity\"></art-osm-tile-layer>\r\n<art-feature-layer *ngIf=\"map\" [settings]=\"drawingLayerSettings\"></art-feature-layer>\r\n", styles: ["art-map-plate{display:block;width:100%;height:100%}\n"] }]
2815
2835
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: MessageRegistratorService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
2816
2836
  type: Input
2817
2837
  }] } });