@artstesh/maps 4.0.11 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/esm2020/map/map-plate/controls/index.mjs +3 -0
  2. package/dist/esm2020/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +49 -0
  3. package/dist/esm2020/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +13 -0
  4. package/dist/esm2020/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +47 -0
  5. package/dist/esm2020/map/map.module.mjs +8 -3
  6. package/dist/esm2020/map/messages/executors/generate-zoom-control.executor.mjs +12 -0
  7. package/dist/esm2020/map/public-api.mjs +2 -1
  8. package/dist/esm2020/map/services/message-registrator.service.mjs +4 -1
  9. package/dist/esm2020/src/map/map-plate/controls/index.mjs +3 -0
  10. package/dist/esm2020/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +49 -0
  11. package/dist/esm2020/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +13 -0
  12. package/dist/esm2020/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +47 -0
  13. package/dist/esm2020/src/map/map.module.mjs +8 -3
  14. package/dist/esm2020/src/map/messages/executors/generate-zoom-control.executor.mjs +12 -0
  15. package/dist/esm2020/src/map/public-api.mjs +2 -1
  16. package/dist/esm2020/src/map/services/message-registrator.service.mjs +4 -1
  17. package/dist/fesm2015/maps-components-src-map.mjs +120 -3
  18. package/dist/fesm2015/maps-components-src-map.mjs.map +1 -1
  19. package/dist/fesm2015/maps-components.mjs +120 -3
  20. package/dist/fesm2015/maps-components.mjs.map +1 -1
  21. package/dist/fesm2020/maps-components-src-map.mjs +120 -3
  22. package/dist/fesm2020/maps-components-src-map.mjs.map +1 -1
  23. package/dist/fesm2020/maps-components.mjs +120 -3
  24. package/dist/fesm2020/maps-components.mjs.map +1 -1
  25. package/dist/map/map-plate/controls/index.d.ts +2 -0
  26. package/dist/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -0
  27. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -0
  28. package/dist/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -0
  29. package/dist/map/map.module.d.ts +3 -2
  30. package/dist/map/messages/executors/generate-zoom-control.executor.d.ts +9 -0
  31. package/dist/map/public-api.d.ts +1 -0
  32. package/dist/src/map/map-plate/controls/index.d.ts +2 -0
  33. package/dist/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.d.ts +19 -0
  34. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.d.ts +5 -0
  35. package/dist/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.d.ts +14 -0
  36. package/dist/src/map/map.module.d.ts +3 -2
  37. package/dist/src/map/messages/executors/generate-zoom-control.executor.d.ts +9 -0
  38. package/dist/src/map/public-api.d.ts +1 -0
  39. package/package.json +1 -1
@@ -10,6 +10,7 @@ import { get, useGeographic, transform } from 'ol/proj';
10
10
  import { PostboyGenericMessage, PostboyCallbackMessage, PostboyExecutor, PostboyService, PostboyAbstractRegistrator } from '@artstesh/postboy';
11
11
  import { Draw, Modify, Translate } from 'ol/interaction';
12
12
  import { createRegularPolygon } from 'ol/interaction/Draw';
13
+ import { Zoom } from 'ol/control';
13
14
  import { first, filter, auditTime } from 'rxjs/operators';
14
15
  import { Vector, XYZ } from 'ol/source';
15
16
  import TileLayer from 'ol/layer/Tile';
@@ -506,6 +507,29 @@ class GenerateDrawExecutor extends PostboyExecutor {
506
507
  }
507
508
  GenerateDrawExecutor.ID = 'f01c99ba-0953-4ab5-82f9-04e6fbb678c1';
508
509
 
510
+ class GenerateZoomControlExecutor extends PostboyExecutor {
511
+ constructor(settings) {
512
+ super();
513
+ this.settings = settings;
514
+ }
515
+ get id() {
516
+ return GenerateZoomControlExecutor.ID;
517
+ }
518
+ }
519
+ GenerateZoomControlExecutor.ID = 'ff16a833-c68e-4b1a-bc23-c0d16b002810';
520
+
521
+ class ZoomControlFactory {
522
+ static build(settings) {
523
+ return new Zoom({
524
+ zoomInTipLabel: settings.zoomInLabel,
525
+ zoomOutTipLabel: settings.zoomOutLabel,
526
+ zoomInClassName: settings.zoomInClass,
527
+ zoomOutClassName: settings.zoomOutClass,
528
+ className: settings.controlClass,
529
+ });
530
+ }
531
+ }
532
+
509
533
  class MapPostboyService extends PostboyService {
510
534
  constructor() {
511
535
  super();
@@ -902,6 +926,7 @@ class MessageRegistratorService extends PostboyAbstractRegistrator {
902
926
  setExecutors() {
903
927
  this.registerExecutor(FilterFeaturesInAreaExecutor.ID, (e) => FeatureService.filterFeaturesInArea(e));
904
928
  this.registerExecutor(GenerateDrawExecutor.ID, (e) => DrawingGenerationService.getDraw(e));
929
+ this.registerExecutor(GenerateZoomControlExecutor.ID, (e) => ZoomControlFactory.build(e.settings));
905
930
  }
906
931
  }
907
932
  MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }, { token: MapManagementService }, { token: MapStateService }, { token: MapFeatureService }, { token: MapClickService }, { token: DrawingService }, { token: FeatureModificationService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1645,6 +1670,94 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1645
1670
  type: Input
1646
1671
  }] } });
1647
1672
 
1673
+ class ZoomControlSettings {
1674
+ constructor() {
1675
+ this.controlClass = 'ol-zoom';
1676
+ this.zoomInClass = 'ol-zoom-in';
1677
+ this.zoomOutClass = 'ol-zoom-out';
1678
+ this.zoomInLabel = 'Zoom In';
1679
+ this.zoomOutLabel = 'Zoom Out';
1680
+ }
1681
+ static copy(model) {
1682
+ const result = new ZoomControlSettings();
1683
+ result.controlClass = model.controlClass;
1684
+ result.zoomInClass = model.zoomInClass;
1685
+ result.zoomOutClass = model.zoomOutClass;
1686
+ result.zoomInLabel = model.zoomInLabel;
1687
+ result.zoomOutLabel = model.zoomOutLabel;
1688
+ return result;
1689
+ }
1690
+ isSame(model) {
1691
+ if (this.zoomInClass !== model.zoomInClass)
1692
+ return false;
1693
+ if (this.zoomOutClass !== model.zoomOutClass)
1694
+ return false;
1695
+ if (this.zoomInLabel !== model.zoomInLabel)
1696
+ return false;
1697
+ if (this.controlClass !== model.controlClass)
1698
+ return false;
1699
+ if (this.zoomOutLabel !== model.zoomOutLabel)
1700
+ return false;
1701
+ return true;
1702
+ }
1703
+ setZoomInLabel(zoomInLabel) {
1704
+ return ZoomControlSettings.copy({ ...this, zoomInLabel });
1705
+ }
1706
+ setZoomOutClass(zoomOutClass) {
1707
+ return ZoomControlSettings.copy({ ...this, zoomOutClass });
1708
+ }
1709
+ setZoomInClass(zoomInClass) {
1710
+ return ZoomControlSettings.copy({ ...this, zoomInClass });
1711
+ }
1712
+ setZoomOutLabel(zoomOutLabel) {
1713
+ return ZoomControlSettings.copy({ ...this, zoomOutLabel });
1714
+ }
1715
+ setControlClass(controlClass) {
1716
+ return ZoomControlSettings.copy({ ...this, controlClass });
1717
+ }
1718
+ }
1719
+
1720
+ class MapControlZoomComponent extends DestructibleComponent {
1721
+ set settings(value) {
1722
+ if (!value || this._settings.isSame(value))
1723
+ return;
1724
+ this._settings = value;
1725
+ this.setControl();
1726
+ }
1727
+ constructor(postboy) {
1728
+ super();
1729
+ this.postboy = postboy;
1730
+ this._settings = new ZoomControlSettings();
1731
+ this.onDestroy = () => {
1732
+ this.eliminate();
1733
+ };
1734
+ this.eliminate = () => !!this.map && !!this.control && this.map.removeControl(this.control);
1735
+ }
1736
+ ngOnInit() {
1737
+ this.postboy
1738
+ .subscribe(MapRenderedEvent.ID)
1739
+ .pipe(filter((m) => !!m), first())
1740
+ .subscribe((m) => {
1741
+ this.map = m.map;
1742
+ this.setControl();
1743
+ });
1744
+ }
1745
+ setControl() {
1746
+ if (!this.map)
1747
+ return;
1748
+ this.control = this.postboy.execute(new GenerateZoomControlExecutor(this._settings));
1749
+ this.map.addControl(this.control);
1750
+ }
1751
+ }
1752
+ MapControlZoomComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapControlZoomComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
1753
+ MapControlZoomComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapControlZoomComponent, selector: "lib-map-control-zoom", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1754
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapControlZoomComponent, decorators: [{
1755
+ type: Component,
1756
+ args: [{ selector: 'lib-map-control-zoom', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
1757
+ }], ctorParameters: function () { return [{ type: MapPostboyService }]; }, propDecorators: { settings: [{
1758
+ type: Input
1759
+ }] } });
1760
+
1648
1761
  class MapModule {
1649
1762
  }
1650
1763
  MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -1656,13 +1769,15 @@ MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.
1656
1769
  MarkersComponent,
1657
1770
  TooltipComponent,
1658
1771
  PolygonsComponent,
1659
- ClusterLayerComponent], imports: [CommonModule], exports: [MapPlateComponent,
1772
+ ClusterLayerComponent,
1773
+ MapControlZoomComponent], imports: [CommonModule], exports: [MapPlateComponent,
1660
1774
  FeatureLayerComponent,
1661
1775
  MarkersComponent,
1662
1776
  TileLayerComponent,
1663
1777
  TooltipComponent,
1664
1778
  PolygonsComponent,
1665
- ClusterLayerComponent] });
1779
+ ClusterLayerComponent,
1780
+ MapControlZoomComponent] });
1666
1781
  MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
1667
1782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
1668
1783
  type: NgModule,
@@ -1678,6 +1793,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1678
1793
  TooltipComponent,
1679
1794
  PolygonsComponent,
1680
1795
  ClusterLayerComponent,
1796
+ MapControlZoomComponent,
1681
1797
  ],
1682
1798
  exports: [
1683
1799
  MapPlateComponent,
@@ -1687,6 +1803,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
1687
1803
  TooltipComponent,
1688
1804
  PolygonsComponent,
1689
1805
  ClusterLayerComponent,
1806
+ MapControlZoomComponent,
1690
1807
  ],
1691
1808
  }]
1692
1809
  }] });
@@ -1825,5 +1942,5 @@ class StringifyFeatureHelper {
1825
1942
  * Generated bundle index. Do not edit.
1826
1943
  */
1827
1944
 
1828
- export { CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, Dictionary, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, MapClickEvent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings };
1945
+ export { CancelDrawingCommand, CancelFeatureModificationCommand, CloseTooltipCommand, ClusterLayerComponent, ClusterLayerSettings, Dictionary, DrawSelectionAreaCommand, DrawingType, FeatureLayerComponent, FeatureLayerSettings, FeatureOutputFormat, MapClickEvent, MapControlZoomComponent, MapLyrs, MapLyrsLabel, MapModule, MapMoveEndEvent, MapPlateComponent, MapPostboyService, MapRenderedEvent, MapSettings, MarkerModel, MarkerStyleHelper, MarkersComponent, MessageRegistratorService, ModifyFeatureCommand, OsmTileLayerComponent, PolygonModel, PolygonStyleHelper, PolygonsComponent, StartDrawingCommand, StringifyFeatureHelper, TextStyleHelper, TileLayerComponent, TileLayerSettings, TooltipComponent, TooltipSettings, ZoomControlSettings };
1829
1946
  //# sourceMappingURL=maps-components.mjs.map