@artstesh/maps 4.0.2 → 5.0.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 (153) hide show
  1. package/dist/esm2022/map/common/destructible.component.mjs +18 -0
  2. package/dist/esm2022/map/common/id.generator.mjs +14 -0
  3. package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +42 -0
  4. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -0
  5. package/dist/{esm2020 → esm2022}/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
  6. package/dist/{esm2020 → esm2022}/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +6 -7
  7. package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -0
  8. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +17 -0
  9. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +39 -0
  10. package/dist/esm2022/map/map-plate/map-plate.component.mjs +64 -0
  11. package/dist/{esm2020 → esm2022}/map/map-plate/map-plate.factory.service.mjs +4 -4
  12. package/dist/esm2022/map/map.module.mjs +35 -0
  13. package/dist/esm2022/map/messages/commands/add-layer.command.mjs +13 -0
  14. package/dist/esm2022/map/messages/commands/clear-layer.command.mjs +13 -0
  15. package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +15 -0
  16. package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +13 -0
  17. package/dist/esm2022/map/messages/events/map-rendered.event.mjs +13 -0
  18. package/dist/esm2022/map/messages/generic-message.mjs +12 -0
  19. package/dist/esm2022/map/models/map-lyrs.enum.mjs +19 -0
  20. package/dist/esm2022/map/models/map-settings.mjs +51 -0
  21. package/dist/esm2022/map/models/marker-model.mjs +31 -0
  22. package/dist/esm2022/map/services/map-management.service.mjs +61 -0
  23. package/dist/esm2022/map/services/map-postboy.service.mjs +24 -0
  24. package/dist/esm2022/map/services/map-state.service.mjs +18 -0
  25. package/dist/esm2022/map/services/message-registrator.service.mjs +24 -0
  26. package/dist/{esm2020 → esm2022}/map/services/service.collector.mjs +4 -4
  27. package/dist/esm2022/src/map/common/destructible.component.mjs +18 -0
  28. package/dist/esm2022/src/map/common/id.generator.mjs +14 -0
  29. package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +42 -0
  30. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +52 -0
  31. package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +4 -4
  32. package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +6 -7
  33. package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +57 -0
  34. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +17 -0
  35. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +39 -0
  36. package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +64 -0
  37. package/dist/{esm2020 → esm2022}/src/map/map-plate/map-plate.factory.service.mjs +4 -4
  38. package/dist/esm2022/src/map/map.module.mjs +35 -0
  39. package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +13 -0
  40. package/dist/esm2022/src/map/messages/commands/clear-layer.command.mjs +13 -0
  41. package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +15 -0
  42. package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +13 -0
  43. package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +13 -0
  44. package/dist/esm2022/src/map/messages/generic-message.mjs +12 -0
  45. package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +19 -0
  46. package/dist/esm2022/src/map/models/map-settings.mjs +51 -0
  47. package/dist/esm2022/src/map/models/marker-model.mjs +31 -0
  48. package/dist/esm2022/src/map/services/map-management.service.mjs +61 -0
  49. package/dist/esm2022/src/map/services/map-postboy.service.mjs +24 -0
  50. package/dist/esm2022/src/map/services/map-state.service.mjs +18 -0
  51. package/dist/esm2022/src/map/services/message-registrator.service.mjs +24 -0
  52. package/dist/{esm2020 → esm2022}/src/map/services/service.collector.mjs +4 -4
  53. package/dist/{fesm2020 → fesm2022}/maps-components-src-map.mjs +172 -256
  54. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -0
  55. package/dist/{fesm2020 → fesm2022}/maps-components.mjs +172 -256
  56. package/dist/fesm2022/maps-components.mjs.map +1 -0
  57. package/dist/map/map-plate/features/markers/markers.component.d.ts +1 -1
  58. package/dist/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
  59. package/dist/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
  60. package/dist/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +5 -14
  61. package/dist/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +2 -3
  62. package/dist/map/map-plate/map-plate.component.d.ts +1 -1
  63. package/dist/map/map.module.d.ts +1 -1
  64. package/dist/map/messages/commands/clear-layer.command.d.ts +7 -0
  65. package/dist/map/services/map-management.service.d.ts +1 -2
  66. package/dist/package.json +9 -17
  67. package/dist/src/map/map-plate/features/markers/markers.component.d.ts +1 -1
  68. package/dist/src/map/map-plate/layers/feature-layer/feature-layer.component.d.ts +1 -1
  69. package/dist/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.d.ts +1 -1
  70. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.component.d.ts +5 -14
  71. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.settings.d.ts +2 -3
  72. package/dist/src/map/map-plate/map-plate.component.d.ts +1 -1
  73. package/dist/src/map/map.module.d.ts +1 -1
  74. package/dist/src/map/messages/commands/clear-layer.command.d.ts +7 -0
  75. package/dist/src/map/services/map-management.service.d.ts +1 -2
  76. package/package.json +22 -26
  77. package/dist/esm2020/map/common/destructible.component.mjs +0 -19
  78. package/dist/esm2020/map/common/id.generator.mjs +0 -14
  79. package/dist/esm2020/map/map-plate/features/markers/markers.component.mjs +0 -41
  80. package/dist/esm2020/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -50
  81. package/dist/esm2020/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -55
  82. package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -49
  83. package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -50
  84. package/dist/esm2020/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -47
  85. package/dist/esm2020/map/map-plate/map-plate.component.mjs +0 -59
  86. package/dist/esm2020/map/map.module.mjs +0 -35
  87. package/dist/esm2020/map/messages/commands/add-layer.command.mjs +0 -12
  88. package/dist/esm2020/map/messages/commands/add-tile.command.mjs +0 -12
  89. package/dist/esm2020/map/messages/commands/place-layer-features.command.mjs +0 -13
  90. package/dist/esm2020/map/messages/commands/remove-layer.command.mjs +0 -12
  91. package/dist/esm2020/map/messages/commands/remove-tile.command.mjs +0 -12
  92. package/dist/esm2020/map/messages/events/map-rendered.event.mjs +0 -12
  93. package/dist/esm2020/map/messages/generic-message.mjs +0 -15
  94. package/dist/esm2020/map/models/map-lyrs.enum.mjs +0 -19
  95. package/dist/esm2020/map/models/map-settings.mjs +0 -53
  96. package/dist/esm2020/map/models/marker-model.mjs +0 -26
  97. package/dist/esm2020/map/services/map-management.service.mjs +0 -70
  98. package/dist/esm2020/map/services/map-postboy.service.mjs +0 -26
  99. package/dist/esm2020/map/services/map-state.service.mjs +0 -16
  100. package/dist/esm2020/map/services/message-registrator.service.mjs +0 -26
  101. package/dist/esm2020/src/map/common/destructible.component.mjs +0 -19
  102. package/dist/esm2020/src/map/common/id.generator.mjs +0 -14
  103. package/dist/esm2020/src/map/map-plate/features/markers/markers.component.mjs +0 -41
  104. package/dist/esm2020/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -50
  105. package/dist/esm2020/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -55
  106. package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -49
  107. package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -50
  108. package/dist/esm2020/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -47
  109. package/dist/esm2020/src/map/map-plate/map-plate.component.mjs +0 -59
  110. package/dist/esm2020/src/map/map.module.mjs +0 -35
  111. package/dist/esm2020/src/map/messages/commands/add-layer.command.mjs +0 -12
  112. package/dist/esm2020/src/map/messages/commands/add-tile.command.mjs +0 -12
  113. package/dist/esm2020/src/map/messages/commands/place-layer-features.command.mjs +0 -13
  114. package/dist/esm2020/src/map/messages/commands/remove-layer.command.mjs +0 -12
  115. package/dist/esm2020/src/map/messages/commands/remove-tile.command.mjs +0 -12
  116. package/dist/esm2020/src/map/messages/events/map-rendered.event.mjs +0 -12
  117. package/dist/esm2020/src/map/messages/generic-message.mjs +0 -15
  118. package/dist/esm2020/src/map/models/map-lyrs.enum.mjs +0 -19
  119. package/dist/esm2020/src/map/models/map-settings.mjs +0 -53
  120. package/dist/esm2020/src/map/models/marker-model.mjs +0 -26
  121. package/dist/esm2020/src/map/services/map-management.service.mjs +0 -70
  122. package/dist/esm2020/src/map/services/map-postboy.service.mjs +0 -26
  123. package/dist/esm2020/src/map/services/map-state.service.mjs +0 -16
  124. package/dist/esm2020/src/map/services/message-registrator.service.mjs +0 -26
  125. package/dist/fesm2015/maps-components-src-map.mjs +0 -800
  126. package/dist/fesm2015/maps-components-src-map.mjs.map +0 -1
  127. package/dist/fesm2015/maps-components.mjs +0 -804
  128. package/dist/fesm2015/maps-components.mjs.map +0 -1
  129. package/dist/fesm2020/maps-components-src-map.mjs.map +0 -1
  130. package/dist/fesm2020/maps-components.mjs.map +0 -1
  131. package/dist/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -11
  132. package/dist/map/messages/commands/add-tile.command.d.ts +0 -9
  133. package/dist/map/messages/commands/remove-tile.command.d.ts +0 -9
  134. package/dist/src/map/map-plate/layers/tile-layer/tile-layer.factory.d.ts +0 -11
  135. package/dist/src/map/messages/commands/add-tile.command.d.ts +0 -9
  136. package/dist/src/map/messages/commands/remove-tile.command.d.ts +0 -9
  137. /package/dist/{esm2020 → esm2022}/map/helpers/index.mjs +0 -0
  138. /package/dist/{esm2020 → esm2022}/map/helpers/marker-style.helper.mjs +0 -0
  139. /package/dist/{esm2020 → esm2022}/map/map-plate/features/index.mjs +0 -0
  140. /package/dist/{esm2020 → esm2022}/map/map-plate/layers/index.mjs +0 -0
  141. /package/dist/{esm2020 → esm2022}/map/messages/index.mjs +0 -0
  142. /package/dist/{esm2020 → esm2022}/map/models/index.mjs +0 -0
  143. /package/dist/{esm2020 → esm2022}/map/public-api.mjs +0 -0
  144. /package/dist/{esm2020 → esm2022}/maps-components.mjs +0 -0
  145. /package/dist/{esm2020 → esm2022}/public-api.mjs +0 -0
  146. /package/dist/{esm2020 → esm2022}/src/map/helpers/index.mjs +0 -0
  147. /package/dist/{esm2020 → esm2022}/src/map/helpers/marker-style.helper.mjs +0 -0
  148. /package/dist/{esm2020 → esm2022}/src/map/map-plate/features/index.mjs +0 -0
  149. /package/dist/{esm2020 → esm2022}/src/map/map-plate/layers/index.mjs +0 -0
  150. /package/dist/{esm2020 → esm2022}/src/map/maps-components-src-map.mjs +0 -0
  151. /package/dist/{esm2020 → esm2022}/src/map/messages/index.mjs +0 -0
  152. /package/dist/{esm2020 → esm2022}/src/map/models/index.mjs +0 -0
  153. /package/dist/{esm2020 → esm2022}/src/map/public-api.mjs +0 -0
@@ -4,31 +4,30 @@ import * as i4 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { Feature } from 'ol';
6
6
  import { Point } from 'ol/geom';
7
- import { useGeographic, get } from 'ol/proj';
7
+ import { useGeographic } from 'ol/proj';
8
8
  import { Subject, ReplaySubject } from 'rxjs';
9
9
  import Map from 'ol/Map';
10
10
  import View from 'ol/View';
11
11
  import TileLayer from 'ol/layer/Tile';
12
12
  import OSM from 'ol/source/OSM';
13
13
  import { filter, first } from 'rxjs/operators';
14
- import { XYZ, Vector } from 'ol/source';
14
+ import { Vector } from 'ol/source';
15
15
  import { Vector as Vector$1 } from 'ol/layer';
16
16
  import Style from 'ol/style/Style';
17
17
  import { Icon, Circle, Fill, Stroke } from 'ol/style';
18
18
 
19
19
  class DestructibleComponent {
20
- constructor() {
21
- this.subs = [];
22
- }
20
+ subs = [];
21
+ onDestroy;
23
22
  ngOnDestroy() {
24
23
  this.subs.forEach((s) => s.unsubscribe());
25
24
  if (this.onDestroy)
26
25
  this.onDestroy();
27
26
  }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DestructibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
28
29
  }
29
- DestructibleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DestructibleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- DestructibleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DestructibleComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DestructibleComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DestructibleComponent, decorators: [{
32
31
  type: Component,
33
32
  args: [{ template: '' }]
34
33
  }] });
@@ -41,26 +40,24 @@ var MapLyrs;
41
40
  MapLyrs[MapLyrs["Terrain"] = 4] = "Terrain";
42
41
  })(MapLyrs || (MapLyrs = {}));
43
42
  class MapLyrsLabel {
43
+ static lyrs = {
44
+ [MapLyrs.Hybrid]: 's,h',
45
+ [MapLyrs.Satellite]: 's',
46
+ [MapLyrs.Streets]: 'm',
47
+ [MapLyrs.Terrain]: 'p',
48
+ };
44
49
  static get(lyrs) {
45
50
  return MapLyrsLabel.lyrs[lyrs];
46
51
  }
47
- }
48
- MapLyrsLabel.lyrs = {
49
- [MapLyrs.Hybrid]: 's,h',
50
- [MapLyrs.Satellite]: 's',
51
- [MapLyrs.Streets]: 'm',
52
- [MapLyrs.Terrain]: 'p',
53
- };
52
+ }
54
53
 
55
54
  class MapSettings {
56
- constructor() {
57
- this.center = [0, 0];
58
- this.maxZoom = 19;
59
- this.minZoom = 0;
60
- this.zoom = 4;
61
- this.lyrs = MapLyrs.Hybrid;
62
- this.language = 'en';
63
- }
55
+ center = [0, 0];
56
+ maxZoom = 19;
57
+ minZoom = 0;
58
+ zoom = 4;
59
+ lyrs = MapLyrs.Hybrid;
60
+ language = 'en';
64
61
  static copy(model) {
65
62
  const result = new MapSettings();
66
63
  result.center = model.center;
@@ -105,6 +102,7 @@ class MapSettings {
105
102
  }
106
103
 
107
104
  class IdGenerator {
105
+ static collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');
108
106
  static get() {
109
107
  let result = [];
110
108
  for (let i = 0; i < 7; i++) {
@@ -115,10 +113,13 @@ class IdGenerator {
115
113
  }
116
114
  return result.join('-');
117
115
  }
118
- }
119
- IdGenerator.collection = 'ABCDEFGHIJKLMNOPQRSTUVWXTZ0123456789'.split('');
116
+ }
120
117
 
121
118
  class MarkerModel {
119
+ lat;
120
+ lng;
121
+ id;
122
+ info;
122
123
  constructor(lat, lng, id, info) {
123
124
  this.lat = lat;
124
125
  this.lng = lng;
@@ -128,6 +129,7 @@ class MarkerModel {
128
129
  this.id = IdGenerator.get();
129
130
  this._feature = this.getFeature();
130
131
  }
132
+ _feature;
131
133
  get feature() {
132
134
  return this._feature;
133
135
  }
@@ -144,11 +146,8 @@ class MarkerModel {
144
146
  class GenericMessage {
145
147
  }
146
148
  class CallbackMessage extends GenericMessage {
147
- constructor() {
148
- super(...arguments);
149
- this.result$ = new Subject();
150
- this.result = this.result$.asObservable();
151
- }
149
+ result$ = new Subject();
150
+ result = this.result$.asObservable();
152
151
  finish(value) {
153
152
  this.result$.next(value);
154
153
  this.result$.complete();
@@ -156,6 +155,8 @@ class CallbackMessage extends GenericMessage {
156
155
  }
157
156
 
158
157
  class MapRenderedEvent extends GenericMessage {
158
+ map;
159
+ static ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';
159
160
  constructor(map) {
160
161
  super();
161
162
  this.map = map;
@@ -163,10 +164,11 @@ class MapRenderedEvent extends GenericMessage {
163
164
  get id() {
164
165
  return MapRenderedEvent.ID;
165
166
  }
166
- }
167
- MapRenderedEvent.ID = 'b6121807-3b89-4cd3-82cf-089d2cefdc4f';
167
+ }
168
168
 
169
169
  class AddLayerCommand extends GenericMessage {
170
+ layer;
171
+ static ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';
170
172
  constructor(layer) {
171
173
  super();
172
174
  this.layer = layer;
@@ -174,10 +176,12 @@ class AddLayerCommand extends GenericMessage {
174
176
  get id() {
175
177
  return AddLayerCommand.ID;
176
178
  }
177
- }
178
- AddLayerCommand.ID = 'd93e250f-92bc-43ac-9c6a-46c521a1aaa5';
179
+ }
179
180
 
180
181
  class PlaceLayerFeaturesCommand extends GenericMessage {
182
+ layer;
183
+ features;
184
+ static ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';
181
185
  constructor(layer, features) {
182
186
  super();
183
187
  this.layer = layer;
@@ -186,10 +190,11 @@ class PlaceLayerFeaturesCommand extends GenericMessage {
186
190
  get id() {
187
191
  return PlaceLayerFeaturesCommand.ID;
188
192
  }
189
- }
190
- PlaceLayerFeaturesCommand.ID = '8caf86bc-869b-426f-b36d-4642f6b8aab0';
193
+ }
191
194
 
192
195
  class RemoveLayerCommand extends GenericMessage {
196
+ layer;
197
+ static ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';
193
198
  constructor(layer) {
194
199
  super();
195
200
  this.layer = layer;
@@ -197,35 +202,22 @@ class RemoveLayerCommand extends GenericMessage {
197
202
  get id() {
198
203
  return RemoveLayerCommand.ID;
199
204
  }
200
- }
201
- RemoveLayerCommand.ID = 'ab484e0e-e185-45cd-8434-12101f3c7eb1';
202
-
203
- class AddTileCommand extends GenericMessage {
204
- constructor(layer) {
205
- super();
206
- this.layer = layer;
207
- }
208
- get id() {
209
- return AddTileCommand.ID;
210
- }
211
- }
212
- AddTileCommand.ID = '25b7df28-72ce-4453-9fe6-54285a2fdc57';
205
+ }
213
206
 
214
- class RemoveTileCommand extends GenericMessage {
207
+ class ClearLayerCommand extends GenericMessage {
208
+ layer;
209
+ static ID = 'd02842b7-fa62-458d-b1e4-12dd814610c5';
215
210
  constructor(layer) {
216
211
  super();
217
212
  this.layer = layer;
218
213
  }
219
214
  get id() {
220
- return RemoveTileCommand.ID;
215
+ return ClearLayerCommand.ID;
221
216
  }
222
- }
223
- RemoveTileCommand.ID = 'c36ccc0b-5638-4819-b148-2de57a59a5b7';
217
+ }
224
218
 
225
219
  class MapPostboyService {
226
- constructor() {
227
- this.applications = {};
228
- }
220
+ applications = {};
229
221
  register(id, sub) {
230
222
  this.applications[id] = sub;
231
223
  }
@@ -239,10 +231,10 @@ class MapPostboyService {
239
231
  throw new Error(`There is no event with id ${message.id}`);
240
232
  this.applications[message.id].next(message);
241
233
  }
234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
235
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService });
242
236
  }
243
- MapPostboyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
244
- MapPostboyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService });
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPostboyService, decorators: [{
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPostboyService, decorators: [{
246
238
  type: Injectable
247
239
  }] });
248
240
 
@@ -252,58 +244,51 @@ class MessageRegistratorService {
252
244
  service.register(AddLayerCommand.ID, new Subject());
253
245
  service.register(PlaceLayerFeaturesCommand.ID, new ReplaySubject(1));
254
246
  service.register(RemoveLayerCommand.ID, new Subject());
255
- service.register(AddTileCommand.ID, new Subject());
256
- service.register(RemoveTileCommand.ID, new Subject());
247
+ service.register(ClearLayerCommand.ID, new Subject());
257
248
  }
249
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
250
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService });
258
251
  }
259
- MessageRegistratorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
260
- MessageRegistratorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService });
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MessageRegistratorService, decorators: [{
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageRegistratorService, decorators: [{
262
253
  type: Injectable
263
254
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
264
255
 
265
256
  class MapStateService {
257
+ postboy;
258
+ map;
266
259
  constructor(postboy) {
267
260
  this.postboy = postboy;
268
261
  postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => (this.map = m));
269
262
  }
263
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
264
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService });
270
265
  }
271
- MapStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
272
- MapStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService });
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapStateService, decorators: [{
266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapStateService, decorators: [{
274
267
  type: Injectable
275
268
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
276
269
 
277
270
  class MapManagementService {
271
+ postboy;
272
+ map;
273
+ layers = {};
278
274
  constructor(postboy) {
279
275
  this.postboy = postboy;
280
- this.layers = {};
281
276
  this.observeMapRender();
282
277
  this.observeAddLayer();
283
278
  this.observeRemoveLayer();
284
279
  this.observePlaceFeatures();
285
- this.observeAddTile();
286
- this.observeRemoveTile();
287
- }
288
- observeRemoveTile() {
289
- this.postboy.subscribe(RemoveTileCommand.ID).subscribe((c) => {
290
- if (!this.map)
291
- return;
292
- this.map.removeLayer(c.layer);
293
- });
294
- }
295
- observeAddTile() {
296
- this.postboy.subscribe(AddTileCommand.ID).subscribe((c) => {
297
- if (!this.map)
298
- return;
299
- this.map.addLayer(c.layer);
300
- });
280
+ this.observeClearLayer();
301
281
  }
302
282
  observeMapRender() {
303
283
  this.postboy.subscribe(MapRenderedEvent.ID).subscribe((m) => {
304
284
  this.map = m.map;
305
285
  });
306
286
  }
287
+ observeClearLayer() {
288
+ this.postboy.subscribe(ClearLayerCommand.ID).subscribe((c) => {
289
+ this.layers[c.layer]?.getSource()?.clear();
290
+ });
291
+ }
307
292
  observeAddLayer() {
308
293
  this.postboy.subscribe(AddLayerCommand.ID).subscribe((c) => {
309
294
  if (!this.map)
@@ -328,19 +313,19 @@ class MapManagementService {
328
313
  this.map.removeLayer(c.layer);
329
314
  });
330
315
  }
316
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
317
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService });
331
318
  }
332
- MapManagementService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Injectable });
333
- MapManagementService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService });
334
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapManagementService, decorators: [{
319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapManagementService, decorators: [{
335
320
  type: Injectable
336
321
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; } });
337
322
 
338
323
  class ServiceCollector {
339
324
  constructor(registrator, management, state) { }
325
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
326
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector });
340
327
  }
341
- ServiceCollector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector, deps: [{ token: MessageRegistratorService }, { token: MapManagementService }, { token: MapStateService }], target: i0.ɵɵFactoryTarget.Injectable });
342
- ServiceCollector.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector });
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceCollector, decorators: [{
328
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ServiceCollector, decorators: [{
344
329
  type: Injectable
345
330
  }], ctorParameters: function () { return [{ type: MessageRegistratorService }, { type: MapManagementService }, { type: MapStateService }]; } });
346
331
 
@@ -357,10 +342,10 @@ class MapPlateFactory {
357
342
  layers: [],
358
343
  });
359
344
  }
345
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
346
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
360
347
  }
361
- MapPlateFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
362
- MapPlateFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, providedIn: 'root' });
363
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateFactory, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateFactory, decorators: [{
364
349
  type: Injectable,
365
350
  args: [{
366
351
  providedIn: 'root',
@@ -368,16 +353,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
368
353
  }] });
369
354
 
370
355
  class OsmTileLayerComponent extends DestructibleComponent {
356
+ layer;
371
357
  constructor() {
372
358
  super();
373
- this._url = '';
374
359
  }
360
+ _url = '';
375
361
  set url(value) {
376
362
  if (!value || this._url === value)
377
363
  return;
378
364
  this._url = value;
379
365
  this.initLayer();
380
366
  }
367
+ _map;
381
368
  set map(value) {
382
369
  if (!value || this._map === value)
383
370
  return;
@@ -405,10 +392,10 @@ class OsmTileLayerComponent extends DestructibleComponent {
405
392
  this.layer.set('name', 'osm-tile-layer');
406
393
  this._map.addLayer(this.layer);
407
394
  }
395
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
396
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
408
397
  }
409
- OsmTileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
410
- OsmTileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: { url: "url", map: "map" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
411
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OsmTileLayerComponent, decorators: [{
412
399
  type: Component,
413
400
  args: [{ selector: 'lib-osm-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
414
401
  }], ctorParameters: function () { return []; }, propDecorators: { url: [{
@@ -418,15 +405,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
418
405
  }] } });
419
406
 
420
407
  class MapPlateComponent extends DestructibleComponent {
408
+ elementRef;
409
+ postboy;
410
+ mapFactory;
411
+ detector;
412
+ map;
413
+ osmUrl = '';
421
414
  constructor(elementRef, postboy, mapFactory, registrator, detector) {
422
415
  super();
423
416
  this.elementRef = elementRef;
424
417
  this.postboy = postboy;
425
418
  this.mapFactory = mapFactory;
426
419
  this.detector = detector;
427
- this.osmUrl = '';
428
- this._settings = new MapSettings();
429
420
  }
421
+ _settings = new MapSettings();
430
422
  set settings(value) {
431
423
  if (!value || this._settings.isSame(value))
432
424
  return;
@@ -451,154 +443,36 @@ class MapPlateComponent extends DestructibleComponent {
451
443
  this.detector.detectChanges();
452
444
  this.map.updateSize();
453
445
  }
446
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
447
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
454
448
  }
455
- MapPlateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: MapPostboyService }, { token: MapPlateFactory }, { token: ServiceCollector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
456
- MapPlateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapPlateComponent, selector: "lib-map-plate", inputs: { settings: "settings" }, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OsmTileLayerComponent, selector: "lib-osm-tile-layer", inputs: ["url", "map"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapPlateComponent, decorators: [{
449
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapPlateComponent, decorators: [{
458
450
  type: Component,
459
451
  args: [{ selector: 'lib-map-plate', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MessageRegistratorService, MapStateService, MapManagementService, ServiceCollector], template: "<ng-content></ng-content>\n<lib-osm-tile-layer *ngIf=\"osmUrl && map\" [map]=\"map\" [url]=\"osmUrl\"></lib-osm-tile-layer>\n", styles: ["lib-map-plate{position:relative;display:flex;flex-direction:column;height:100%}\n"] }]
460
452
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: MapPostboyService }, { type: MapPlateFactory }, { type: ServiceCollector }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { settings: [{
461
453
  type: Input
462
454
  }] } });
463
455
 
464
- class TileLayerSettings {
465
- constructor() {
466
- this.maxZoom = 19;
467
- this.minZoom = 0;
468
- this.opacity = 0.6;
469
- this.url = '';
470
- this.projection = 'EPSG:3857';
471
- }
472
- static copy(model) {
473
- const result = new TileLayerSettings();
474
- result.maxZoom = model.maxZoom;
475
- result.minZoom = model.minZoom;
476
- result.projection = model.projection;
477
- result.opacity = model.opacity;
478
- result.url = model.url;
479
- return result;
480
- }
481
- setUrl(url) {
482
- return TileLayerSettings.copy({ ...this, url });
483
- }
484
- setMaxZoom(maxZoom) {
485
- return TileLayerSettings.copy({ ...this, maxZoom });
486
- }
487
- setMinZoom(minZoom) {
488
- return TileLayerSettings.copy({ ...this, minZoom });
489
- }
490
- setOpacity(opacity) {
491
- return TileLayerSettings.copy({ ...this, opacity });
492
- }
493
- setProjection(projection) {
494
- return TileLayerSettings.copy({ ...this, projection });
495
- }
496
- isSame(model) {
497
- if (this.maxZoom !== model.maxZoom)
498
- return false;
499
- if (this.minZoom !== model.minZoom)
500
- return false;
501
- if (this.url !== model.url)
502
- return false;
503
- if (this.projection !== model.projection)
504
- return false;
505
- if (this.opacity !== model.opacity)
506
- return false;
507
- return true;
508
- }
509
- }
510
-
511
- class TileLayerFactory {
512
- build(settings) {
513
- const source = new XYZ({
514
- tileSize: 256,
515
- maxZoom: settings.maxZoom || 14,
516
- minZoom: settings.minZoom || 1,
517
- projection: get(settings.projection),
518
- tileUrlFunction: this.getTileFunc(settings),
519
- crossOrigin: 'Anonymous',
520
- });
521
- return new TileLayer({ source, opacity: settings.opacity });
522
- }
523
- getTileFunc(settings) {
524
- return (tileCoord) => {
525
- const zoom = tileCoord[0];
526
- const x = tileCoord[1];
527
- const y = tileCoord[2];
528
- const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);
529
- const bound = 1 << zoom;
530
- return settings.url
531
- .replace('{x}', String(normalizedCoord?.x || x))
532
- .replace('{z}', String(zoom))
533
- .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
534
- };
535
- }
536
- getNormalizedCoord(coord, zoom) {
537
- const y = coord.y;
538
- let x = coord.x;
539
- const tileRange = 1 << zoom;
540
- if (y < 0 || y >= tileRange)
541
- return null;
542
- if (x < 0 || x >= tileRange)
543
- x = ((x % tileRange) + tileRange) % tileRange;
544
- return { x: x, y: y };
545
- }
546
- }
547
- TileLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
548
- TileLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
549
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerFactory, decorators: [{
550
- type: Injectable,
551
- args: [{
552
- providedIn: 'root',
553
- }]
554
- }] });
555
-
556
456
  class TileLayerComponent extends DestructibleComponent {
557
- constructor(postboy, factory) {
457
+ source;
458
+ layer;
459
+ constructor() {
558
460
  super();
559
- this.postboy = postboy;
560
- this.factory = factory;
561
- this._settings = new TileLayerSettings();
562
- this.onDestroy = () => this.removeLayer();
563
- }
564
- ngOnInit() {
565
- this.postboy
566
- .subscribe(MapRenderedEvent.ID)
567
- .pipe(filter((m) => !!m), first())
568
- .subscribe((m) => this.initLayer());
569
- }
570
- set settings(value) {
571
- if (!value || this._settings.isSame(value))
572
- return;
573
- this._settings = value;
574
- this.initLayer();
575
- }
576
- initLayer() {
577
- this.removeLayer();
578
- this.layer = this.factory.build(this._settings);
579
- this.postboy.fire(new AddTileCommand(this.layer));
580
- }
581
- removeLayer() {
582
- if (this.layer)
583
- this.postboy.fire(new RemoveTileCommand(this.layer));
584
461
  }
462
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TileLayerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
463
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TileLayerComponent, selector: "lib-tile-layer", usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
585
464
  }
586
- TileLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, deps: [{ token: MapPostboyService }, { token: TileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
587
- TileLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TileLayerComponent, selector: "lib-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
588
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TileLayerComponent, decorators: [{
465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TileLayerComponent, decorators: [{
589
466
  type: Component,
590
467
  args: [{ selector: 'lib-tile-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
591
- }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: TileLayerFactory }]; }, propDecorators: { settings: [{
592
- type: Input
593
- }] } });
468
+ }], ctorParameters: function () { return []; } });
594
469
 
595
470
  class FeatureLayerSettings {
596
- constructor() {
597
- this.name = IdGenerator.get();
598
- this.zIndex = 1;
599
- this.maxZoom = 19;
600
- this.minZoom = 0;
601
- }
471
+ name = IdGenerator.get();
472
+ zIndex = 1;
473
+ maxZoom = 19;
474
+ minZoom = 0;
475
+ style;
602
476
  static copy(model) {
603
477
  const result = new FeatureLayerSettings();
604
478
  result.name = model.name;
@@ -652,10 +526,10 @@ class FeatureLayerFactory {
652
526
  layer.set('name', settings.name);
653
527
  return layer;
654
528
  }
529
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
530
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
655
531
  }
656
- FeatureLayerFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
657
- FeatureLayerFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, providedIn: 'root' });
658
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerFactory, decorators: [{
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerFactory, decorators: [{
659
533
  type: Injectable,
660
534
  args: [{
661
535
  providedIn: 'root',
@@ -663,13 +537,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
663
537
  }] });
664
538
 
665
539
  class FeatureLayerComponent extends DestructibleComponent {
540
+ postboy;
541
+ factory;
542
+ layer = null;
666
543
  constructor(postboy, factory) {
667
544
  super();
668
545
  this.postboy = postboy;
669
546
  this.factory = factory;
670
- this.layer = null;
671
- this._settings = new FeatureLayerSettings();
672
- this.onDestroy = () => this.removeLayer();
673
547
  }
674
548
  ngOnInit() {
675
549
  this.postboy
@@ -677,12 +551,14 @@ class FeatureLayerComponent extends DestructibleComponent {
677
551
  .pipe(filter((m) => !!m), first())
678
552
  .subscribe((m) => this.initLayer());
679
553
  }
554
+ _settings = new FeatureLayerSettings();
680
555
  set settings(value) {
681
556
  if (!value || this._settings.isSame(value))
682
557
  return;
683
558
  this._settings = value;
684
559
  this.initLayer();
685
560
  }
561
+ onDestroy = () => this.removeLayer();
686
562
  initLayer() {
687
563
  this.removeLayer();
688
564
  this.layer = this.factory.build(this._settings);
@@ -692,10 +568,10 @@ class FeatureLayerComponent extends DestructibleComponent {
692
568
  if (this.layer)
693
569
  this.postboy.fire(new RemoveLayerCommand(this.layer));
694
570
  }
571
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: MapPostboyService }, { token: FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
572
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
695
573
  }
696
- FeatureLayerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerComponent, deps: [{ token: MapPostboyService }, { token: FeatureLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
697
- FeatureLayerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FeatureLayerComponent, selector: "lib-feature-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
698
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FeatureLayerComponent, decorators: [{
574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FeatureLayerComponent, decorators: [{
699
575
  type: Component,
700
576
  args: [{ selector: 'lib-feature-layer', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
701
577
  }], ctorParameters: function () { return [{ type: MapPostboyService }, { type: FeatureLayerFactory }]; }, propDecorators: { settings: [{
@@ -703,12 +579,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
703
579
  }] } });
704
580
 
705
581
  class MarkersComponent extends DestructibleComponent {
582
+ postboy;
583
+ layerName = '';
706
584
  constructor(postboy) {
707
585
  super();
708
586
  this.postboy = postboy;
709
- this.layerName = '';
710
- this._markers = [];
711
587
  }
588
+ _markers = [];
712
589
  set markers(value) {
713
590
  this._markers = value;
714
591
  this.putMarkers();
@@ -724,10 +601,10 @@ class MarkersComponent extends DestructibleComponent {
724
601
  return;
725
602
  this.postboy.fire(new PlaceLayerFeaturesCommand(this.layerName, this._markers.map((m) => m.feature)));
726
603
  }
604
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkersComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
605
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
727
606
  }
728
- MarkersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkersComponent, deps: [{ token: MapPostboyService }], target: i0.ɵɵFactoryTarget.Component });
729
- MarkersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MarkersComponent, selector: "lib-markers", inputs: { layerName: "layerName", markers: "markers" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
730
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MarkersComponent, decorators: [{
607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MarkersComponent, decorators: [{
731
608
  type: Component,
732
609
  args: [{ selector: 'lib-markers', template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
733
610
  }], ctorParameters: function () { return [{ type: MapPostboyService }]; }, propDecorators: { layerName: [{
@@ -737,16 +614,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
737
614
  }] } });
738
615
 
739
616
  class MapModule {
617
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
618
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
619
+ MapPlateComponent,
620
+ TileLayerComponent,
621
+ OsmTileLayerComponent,
622
+ FeatureLayerComponent,
623
+ MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent] });
624
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, imports: [CommonModule] });
740
625
  }
741
- MapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
742
- MapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MapModule, declarations: [DestructibleComponent,
743
- MapPlateComponent,
744
- TileLayerComponent,
745
- OsmTileLayerComponent,
746
- FeatureLayerComponent,
747
- MarkersComponent], imports: [CommonModule], exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent] });
748
- MapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, imports: [CommonModule] });
749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapModule, decorators: [{
626
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MapModule, decorators: [{
750
627
  type: NgModule,
751
628
  args: [{
752
629
  imports: [CommonModule],
@@ -758,10 +635,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
758
635
  FeatureLayerComponent,
759
636
  MarkersComponent,
760
637
  ],
761
- exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent, TileLayerComponent],
638
+ exports: [MapPlateComponent, FeatureLayerComponent, MarkersComponent],
762
639
  }]
763
640
  }] });
764
641
 
642
+ class TileLayerSettings {
643
+ name = 'tiles';
644
+ maxZoom = 19;
645
+ minZoom = 0;
646
+ opacity = 1;
647
+ url = '';
648
+ static copy(model) {
649
+ const result = new TileLayerSettings();
650
+ result.name = model.name;
651
+ result.maxZoom = model.maxZoom;
652
+ result.minZoom = model.minZoom;
653
+ result.url = model.url;
654
+ return result;
655
+ }
656
+ setUrl(url) {
657
+ return TileLayerSettings.copy({ ...this, url });
658
+ }
659
+ setName(name) {
660
+ return TileLayerSettings.copy({ ...this, name });
661
+ }
662
+ setMaxZoom(maxZoom) {
663
+ return TileLayerSettings.copy({ ...this, maxZoom });
664
+ }
665
+ setMinZoom(minZoom) {
666
+ return TileLayerSettings.copy({ ...this, minZoom });
667
+ }
668
+ isSame(model) {
669
+ if (this.maxZoom !== model.maxZoom)
670
+ return false;
671
+ if (this.minZoom !== model.minZoom)
672
+ return false;
673
+ if (this.url !== model.url)
674
+ return false;
675
+ if (this.name !== model.name)
676
+ return false;
677
+ return true;
678
+ }
679
+ }
680
+
765
681
  class MarkerStyleHelper {
766
682
  static fromSvg(svg, size = [30, 30], zIndex = 400) {
767
683
  let image = new Image();