@artstesh/maps 7.2.0 → 8.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 (208) hide show
  1. package/dist/fesm2022/maps-components-src-map.mjs +83 -83
  2. package/dist/fesm2022/maps-components-src-map.mjs.map +1 -1
  3. package/dist/fesm2022/maps-components.mjs +83 -83
  4. package/dist/fesm2022/maps-components.mjs.map +1 -1
  5. package/dist/map/common/destructible.component.d.ts +1 -1
  6. package/dist/src/map/common/destructible.component.d.ts +1 -1
  7. package/package.json +21 -21
  8. package/dist/esm2022/map/common/destructible.component.mjs +0 -18
  9. package/dist/esm2022/map/common/id.generator.mjs +0 -14
  10. package/dist/esm2022/map/helpers/index.mjs +0 -5
  11. package/dist/esm2022/map/helpers/marker-style.helper.mjs +0 -55
  12. package/dist/esm2022/map/helpers/polygon-style.helper.mjs +0 -54
  13. package/dist/esm2022/map/helpers/stringify-feature.helper.mjs +0 -61
  14. package/dist/esm2022/map/helpers/text-style.helper.mjs +0 -33
  15. package/dist/esm2022/map/map-plate/controls/index.mjs +0 -3
  16. package/dist/esm2022/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
  17. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
  18. package/dist/esm2022/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
  19. package/dist/esm2022/map/map-plate/features/index.mjs +0 -3
  20. package/dist/esm2022/map/map-plate/features/markers/markers.component.mjs +0 -52
  21. package/dist/esm2022/map/map-plate/features/polygons/polygons.component.mjs +0 -56
  22. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
  23. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
  24. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
  25. package/dist/esm2022/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
  26. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
  27. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
  28. package/dist/esm2022/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
  29. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
  30. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
  31. package/dist/esm2022/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
  32. package/dist/esm2022/map/map-plate/layers/index.mjs +0 -12
  33. package/dist/esm2022/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
  34. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
  35. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
  36. package/dist/esm2022/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
  37. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
  38. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
  39. package/dist/esm2022/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
  40. package/dist/esm2022/map/map-plate/map-plate.component.mjs +0 -120
  41. package/dist/esm2022/map/map-plate/map-plate.factory.service.mjs +0 -29
  42. package/dist/esm2022/map/map-plate/tooltips/index.mjs +0 -3
  43. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -82
  44. package/dist/esm2022/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
  45. package/dist/esm2022/map/messages/commands/add-control.command.mjs +0 -18
  46. package/dist/esm2022/map/messages/commands/add-image-layer.command.mjs +0 -10
  47. package/dist/esm2022/map/messages/commands/add-layer.command.mjs +0 -10
  48. package/dist/esm2022/map/messages/commands/add-raster-tile-command.mjs +0 -10
  49. package/dist/esm2022/map/messages/commands/add-tile.command.mjs +0 -10
  50. package/dist/esm2022/map/messages/commands/cancel-drawing.command.mjs +0 -8
  51. package/dist/esm2022/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
  52. package/dist/esm2022/map/messages/commands/close-tooltip.command.mjs +0 -18
  53. package/dist/esm2022/map/messages/commands/draw-selection-area.command.mjs +0 -26
  54. package/dist/esm2022/map/messages/commands/fit-to-features.command.mjs +0 -12
  55. package/dist/esm2022/map/messages/commands/fit-to-polygons.command.mjs +0 -22
  56. package/dist/esm2022/map/messages/commands/modify-feature.command.mjs +0 -31
  57. package/dist/esm2022/map/messages/commands/place-layer-features.command.mjs +0 -12
  58. package/dist/esm2022/map/messages/commands/remove-control.command.mjs +0 -23
  59. package/dist/esm2022/map/messages/commands/remove-image-layer.command.mjs +0 -10
  60. package/dist/esm2022/map/messages/commands/remove-layer.command.mjs +0 -10
  61. package/dist/esm2022/map/messages/commands/remove-raster-tile.command.mjs +0 -10
  62. package/dist/esm2022/map/messages/commands/remove-tile.command.mjs +0 -10
  63. package/dist/esm2022/map/messages/commands/set-map-center.command.mjs +0 -23
  64. package/dist/esm2022/map/messages/commands/start-drawing.command.mjs +0 -25
  65. package/dist/esm2022/map/messages/events/drawing-finished.event.mjs +0 -5
  66. package/dist/esm2022/map/messages/events/map-click.event.mjs +0 -27
  67. package/dist/esm2022/map/messages/events/map-feature-hovered.event.mjs +0 -23
  68. package/dist/esm2022/map/messages/events/map-move-end.event.mjs +0 -16
  69. package/dist/esm2022/map/messages/events/map-pointer-move.event.mjs +0 -21
  70. package/dist/esm2022/map/messages/events/map-rendered.event.mjs +0 -18
  71. package/dist/esm2022/map/messages/executors/calculate-area.executor.mjs +0 -17
  72. package/dist/esm2022/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
  73. package/dist/esm2022/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
  74. package/dist/esm2022/map/messages/executors/generate-draw.executor.mjs +0 -14
  75. package/dist/esm2022/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
  76. package/dist/esm2022/map/messages/executors/get-geometry-length.executor.mjs +0 -18
  77. package/dist/esm2022/map/messages/executors/get-map-position.executor.mjs +0 -13
  78. package/dist/esm2022/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
  79. package/dist/esm2022/map/messages/index.mjs +0 -25
  80. package/dist/esm2022/map/messages/queries/get-features-in-area.query.mjs +0 -22
  81. package/dist/esm2022/map/messages/queries/get-features-in-point.query.mjs +0 -25
  82. package/dist/esm2022/map/messages/queries/get-layer.query.mjs +0 -10
  83. package/dist/esm2022/map/models/drawing-type.enum.mjs +0 -22
  84. package/dist/esm2022/map/models/feature-format.enum.mjs +0 -15
  85. package/dist/esm2022/map/models/i-identified.mjs +0 -2
  86. package/dist/esm2022/map/models/index.mjs +0 -10
  87. package/dist/esm2022/map/models/map-control.mjs +0 -15
  88. package/dist/esm2022/map/models/map-lyrs.enum.mjs +0 -19
  89. package/dist/esm2022/map/models/map-position.model.mjs +0 -2
  90. package/dist/esm2022/map/models/map-settings.mjs +0 -124
  91. package/dist/esm2022/map/models/map.constants.mjs +0 -6
  92. package/dist/esm2022/map/models/marker-model.mjs +0 -29
  93. package/dist/esm2022/map/models/polygon.model.mjs +0 -40
  94. package/dist/esm2022/map/ol-proxy.mjs +0 -6
  95. package/dist/esm2022/map/public-api.mjs +0 -16
  96. package/dist/esm2022/map/services/controls/controls.service.mjs +0 -37
  97. package/dist/esm2022/map/services/drawing/drawing-generation.service.mjs +0 -25
  98. package/dist/esm2022/map/services/drawing/drawing.service.mjs +0 -99
  99. package/dist/esm2022/map/services/drawing/feature-modification.service.mjs +0 -105
  100. package/dist/esm2022/map/services/feature.service.mjs +0 -77
  101. package/dist/esm2022/map/services/map-click.service.mjs +0 -55
  102. package/dist/esm2022/map/services/map-feature.service.mjs +0 -75
  103. package/dist/esm2022/map/services/map-management.service.mjs +0 -143
  104. package/dist/esm2022/map/services/map-postboy.service.mjs +0 -14
  105. package/dist/esm2022/map/services/map-state.service.mjs +0 -48
  106. package/dist/esm2022/map/services/message-registrator.service.mjs +0 -105
  107. package/dist/esm2022/maps-components.mjs +0 -5
  108. package/dist/esm2022/public-api.mjs +0 -5
  109. package/dist/esm2022/src/map/common/destructible.component.mjs +0 -18
  110. package/dist/esm2022/src/map/common/id.generator.mjs +0 -14
  111. package/dist/esm2022/src/map/helpers/index.mjs +0 -5
  112. package/dist/esm2022/src/map/helpers/marker-style.helper.mjs +0 -55
  113. package/dist/esm2022/src/map/helpers/polygon-style.helper.mjs +0 -54
  114. package/dist/esm2022/src/map/helpers/stringify-feature.helper.mjs +0 -61
  115. package/dist/esm2022/src/map/helpers/text-style.helper.mjs +0 -33
  116. package/dist/esm2022/src/map/map-plate/controls/index.mjs +0 -3
  117. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/map-control-zoom.component.mjs +0 -69
  118. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.factory.mjs +0 -13
  119. package/dist/esm2022/src/map/map-plate/controls/map-control-zoom/zoom-control.settings.mjs +0 -116
  120. package/dist/esm2022/src/map/map-plate/features/index.mjs +0 -3
  121. package/dist/esm2022/src/map/map-plate/features/markers/markers.component.mjs +0 -52
  122. package/dist/esm2022/src/map/map-plate/features/polygons/polygons.component.mjs +0 -56
  123. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer-factory.service.mjs +0 -59
  124. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.component.mjs +0 -60
  125. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.manager.mjs +0 -38
  126. package/dist/esm2022/src/map/map-plate/layers/cluster-layer/cluster-layer.settings.mjs +0 -145
  127. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.component.mjs +0 -52
  128. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.factory.mjs +0 -28
  129. package/dist/esm2022/src/map/map-plate/layers/feature-layer/feature-layer.settings.mjs +0 -139
  130. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer-factory.mjs +0 -26
  131. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.component.mjs +0 -52
  132. package/dist/esm2022/src/map/map-plate/layers/image-layer/image-layer.settings.mjs +0 -134
  133. package/dist/esm2022/src/map/map-plate/layers/index.mjs +0 -12
  134. package/dist/esm2022/src/map/map-plate/layers/osm-tile-layer/osm-tile-layer.component.mjs +0 -67
  135. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.component.mjs +0 -52
  136. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.factory.mjs +0 -74
  137. package/dist/esm2022/src/map/map-plate/layers/raster-tile/raster-tile-layer.settings.mjs +0 -165
  138. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.component.mjs +0 -52
  139. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.factory.mjs +0 -68
  140. package/dist/esm2022/src/map/map-plate/layers/tile-layer/tile-layer.settings.mjs +0 -139
  141. package/dist/esm2022/src/map/map-plate/map-plate.component.mjs +0 -120
  142. package/dist/esm2022/src/map/map-plate/map-plate.factory.service.mjs +0 -29
  143. package/dist/esm2022/src/map/map-plate/tooltips/index.mjs +0 -3
  144. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.component.mjs +0 -82
  145. package/dist/esm2022/src/map/map-plate/tooltips/tooltip/tooltip.settings.mjs +0 -31
  146. package/dist/esm2022/src/map/maps-components-src-map.mjs +0 -5
  147. package/dist/esm2022/src/map/messages/commands/add-control.command.mjs +0 -18
  148. package/dist/esm2022/src/map/messages/commands/add-image-layer.command.mjs +0 -10
  149. package/dist/esm2022/src/map/messages/commands/add-layer.command.mjs +0 -10
  150. package/dist/esm2022/src/map/messages/commands/add-raster-tile-command.mjs +0 -10
  151. package/dist/esm2022/src/map/messages/commands/add-tile.command.mjs +0 -10
  152. package/dist/esm2022/src/map/messages/commands/cancel-drawing.command.mjs +0 -8
  153. package/dist/esm2022/src/map/messages/commands/cancel-feature-modification.command.mjs +0 -8
  154. package/dist/esm2022/src/map/messages/commands/close-tooltip.command.mjs +0 -18
  155. package/dist/esm2022/src/map/messages/commands/draw-selection-area.command.mjs +0 -26
  156. package/dist/esm2022/src/map/messages/commands/fit-to-features.command.mjs +0 -12
  157. package/dist/esm2022/src/map/messages/commands/fit-to-polygons.command.mjs +0 -22
  158. package/dist/esm2022/src/map/messages/commands/modify-feature.command.mjs +0 -31
  159. package/dist/esm2022/src/map/messages/commands/place-layer-features.command.mjs +0 -12
  160. package/dist/esm2022/src/map/messages/commands/remove-control.command.mjs +0 -23
  161. package/dist/esm2022/src/map/messages/commands/remove-image-layer.command.mjs +0 -10
  162. package/dist/esm2022/src/map/messages/commands/remove-layer.command.mjs +0 -10
  163. package/dist/esm2022/src/map/messages/commands/remove-raster-tile.command.mjs +0 -10
  164. package/dist/esm2022/src/map/messages/commands/remove-tile.command.mjs +0 -10
  165. package/dist/esm2022/src/map/messages/commands/set-map-center.command.mjs +0 -23
  166. package/dist/esm2022/src/map/messages/commands/start-drawing.command.mjs +0 -25
  167. package/dist/esm2022/src/map/messages/events/drawing-finished.event.mjs +0 -5
  168. package/dist/esm2022/src/map/messages/events/map-click.event.mjs +0 -27
  169. package/dist/esm2022/src/map/messages/events/map-feature-hovered.event.mjs +0 -23
  170. package/dist/esm2022/src/map/messages/events/map-move-end.event.mjs +0 -16
  171. package/dist/esm2022/src/map/messages/events/map-pointer-move.event.mjs +0 -21
  172. package/dist/esm2022/src/map/messages/events/map-rendered.event.mjs +0 -18
  173. package/dist/esm2022/src/map/messages/executors/calculate-area.executor.mjs +0 -17
  174. package/dist/esm2022/src/map/messages/executors/filter-features-in-area.executor.mjs +0 -20
  175. package/dist/esm2022/src/map/messages/executors/filter-features-in-point.executor.mjs +0 -28
  176. package/dist/esm2022/src/map/messages/executors/generate-draw.executor.mjs +0 -14
  177. package/dist/esm2022/src/map/messages/executors/generate-zoom-control.executor.mjs +0 -10
  178. package/dist/esm2022/src/map/messages/executors/get-geometry-length.executor.mjs +0 -18
  179. package/dist/esm2022/src/map/messages/executors/get-map-position.executor.mjs +0 -13
  180. package/dist/esm2022/src/map/messages/executors/polygon-self-intersection.executor.mjs +0 -10
  181. package/dist/esm2022/src/map/messages/index.mjs +0 -25
  182. package/dist/esm2022/src/map/messages/queries/get-features-in-area.query.mjs +0 -22
  183. package/dist/esm2022/src/map/messages/queries/get-features-in-point.query.mjs +0 -25
  184. package/dist/esm2022/src/map/messages/queries/get-layer.query.mjs +0 -10
  185. package/dist/esm2022/src/map/models/drawing-type.enum.mjs +0 -22
  186. package/dist/esm2022/src/map/models/feature-format.enum.mjs +0 -15
  187. package/dist/esm2022/src/map/models/i-identified.mjs +0 -2
  188. package/dist/esm2022/src/map/models/index.mjs +0 -10
  189. package/dist/esm2022/src/map/models/map-control.mjs +0 -15
  190. package/dist/esm2022/src/map/models/map-lyrs.enum.mjs +0 -19
  191. package/dist/esm2022/src/map/models/map-position.model.mjs +0 -2
  192. package/dist/esm2022/src/map/models/map-settings.mjs +0 -124
  193. package/dist/esm2022/src/map/models/map.constants.mjs +0 -6
  194. package/dist/esm2022/src/map/models/marker-model.mjs +0 -29
  195. package/dist/esm2022/src/map/models/polygon.model.mjs +0 -40
  196. package/dist/esm2022/src/map/ol-proxy.mjs +0 -6
  197. package/dist/esm2022/src/map/public-api.mjs +0 -16
  198. package/dist/esm2022/src/map/services/controls/controls.service.mjs +0 -37
  199. package/dist/esm2022/src/map/services/drawing/drawing-generation.service.mjs +0 -25
  200. package/dist/esm2022/src/map/services/drawing/drawing.service.mjs +0 -99
  201. package/dist/esm2022/src/map/services/drawing/feature-modification.service.mjs +0 -105
  202. package/dist/esm2022/src/map/services/feature.service.mjs +0 -77
  203. package/dist/esm2022/src/map/services/map-click.service.mjs +0 -55
  204. package/dist/esm2022/src/map/services/map-feature.service.mjs +0 -75
  205. package/dist/esm2022/src/map/services/map-management.service.mjs +0 -143
  206. package/dist/esm2022/src/map/services/map-postboy.service.mjs +0 -14
  207. package/dist/esm2022/src/map/services/map-state.service.mjs +0 -48
  208. package/dist/esm2022/src/map/services/message-registrator.service.mjs +0 -105
@@ -1,165 +0,0 @@
1
- export class RasterTileLayerSettings {
2
- /**
3
- * The maximum zoom level for a map view.
4
- *
5
- * @type {number}
6
- * @default 19
7
- */
8
- maxZoom = 19;
9
- /**
10
- * The minimum zoom level allowed.
11
- *
12
- * @type {number}
13
- */
14
- minZoom = 0;
15
- /**
16
- * The opacity of an element.
17
- *
18
- * @type {number}
19
- * @default 0.6
20
- */
21
- opacity = 0.6;
22
- /**
23
- * Represents the tiles URL.
24
- * @typedef {string} url
25
- *
26
- * @example
27
- * 'https://example.ex/{z}/{x}/{y}.png'
28
- */
29
- url = '';
30
- /**
31
- * The projection of the coordinate system.
32
- *
33
- * @type {string}
34
- * @default 'EPSG:3857'
35
- */
36
- projection = 'EPSG:3857';
37
- /**
38
- * Additional headers that should be added to each tile request
39
- *
40
- * @type {Record<string, string>}
41
- * @default An empty array
42
- */
43
- requestHeaders = null;
44
- /**
45
- * The priority of showing - layers with higher zIndex cover others in case of collisions
46
- */
47
- zIndex = 1;
48
- operation = (d) => d[0] ?? [];
49
- /**
50
- * Creates a copy of the given tile layer settings.
51
- *
52
- * @param {RasterTileLayerSettings} model - The tile layer settings to be copied.
53
- * @return {RasterTileLayerSettings} - A new instance of RasterTileLayerSettings with the same properties as the model.
54
- */
55
- static copy(model) {
56
- const result = new RasterTileLayerSettings();
57
- result.maxZoom = model.maxZoom;
58
- result.minZoom = model.minZoom;
59
- result.zIndex = model.zIndex;
60
- result.projection = model.projection;
61
- result.opacity = model.opacity;
62
- result.url = model.url;
63
- result.requestHeaders = model.requestHeaders;
64
- result.operation = model.operation;
65
- return result;
66
- }
67
- /**
68
- * Sets the URL of the RasterTileLayerSettings object.
69
- *
70
- * @param {string} url - The URL to be set.
71
- * @return {RasterTileLayerSettings} - The updated RasterTileLayerSettings object.
72
- */
73
- setUrl(url) {
74
- return RasterTileLayerSettings.copy({ ...this, url });
75
- }
76
- /**
77
- * Sets the operation to apply on raster tile data.
78
- *
79
- * @param {function} operation - A function that takes an input of either a two-dimensional array of numbers or an array of ImageData objects and returns either a one-dimensional array of numbers or an ImageData object.
80
- * @return {RasterTileLayerSettings} A new instance of RasterTileLayerSettings with the updated operation.
81
- */
82
- setOperation(operation) {
83
- return RasterTileLayerSettings.copy({ ...this, operation });
84
- }
85
- /**
86
- * Sets the requestHeaders of the RasterTileLayerSettings object.
87
- *
88
- * @param {Record<string, string>} requestHeaders - The headers which should be provided.
89
- * @return {RasterTileLayerSettings} - The updated RasterTileLayerSettings object.
90
- */
91
- setRequestHeaders(requestHeaders) {
92
- return RasterTileLayerSettings.copy({ ...this, requestHeaders });
93
- }
94
- /**
95
- * Sets the maximum zoom level for the tile layer.
96
- *
97
- * @param {number} maxZoom - The maximum zoom level.
98
- * @returns {RasterTileLayerSettings} - The updated tile layer settings object.
99
- */
100
- setMaxZoom(maxZoom) {
101
- return RasterTileLayerSettings.copy({ ...this, maxZoom });
102
- }
103
- /**
104
- * Sets the z-index for the RasterTileLayerSettings.
105
- *
106
- * @param {number} zIndex - The new z-index to be assigned.
107
- * @return {RasterTileLayerSettings} A new RasterTileLayerSettings instance with the updated z-index.
108
- */
109
- setZIndex(zIndex) {
110
- return RasterTileLayerSettings.copy({ ...this, zIndex });
111
- }
112
- /**
113
- * Sets the minimum zoom level for the Tile Layer.
114
- *
115
- * @param {number} minZoom - The minimum zoom level to be set.
116
- * @return {RasterTileLayerSettings} The modified RasterTileLayerSettings object with the updated minimum zoom level.
117
- */
118
- setMinZoom(minZoom) {
119
- return RasterTileLayerSettings.copy({ ...this, minZoom });
120
- }
121
- /**
122
- * Sets the opacity of the RasterTileLayerSettings.
123
- *
124
- * @param {number} opacity - The opacity value to set. Must be a number between 0 and 1.
125
- * @return {RasterTileLayerSettings} - A new instance of RasterTileLayerSettings with the opacity set.
126
- */
127
- setOpacity(opacity) {
128
- return RasterTileLayerSettings.copy({ ...this, opacity });
129
- }
130
- /**
131
- * Sets the projection for the tile layer settings.
132
- *
133
- * @param {string} projection - The desired projection for the tile layer settings.
134
- * @return {RasterTileLayerSettings} - The updated tile layer settings with the new projection.
135
- */
136
- setProjection(projection) {
137
- return RasterTileLayerSettings.copy({ ...this, projection });
138
- }
139
- /**
140
- * Checks if the current instance of RasterTileLayerSettings is equal to the given model.
141
- * @param {RasterTileLayerSettings} model - The model to compare against.
142
- * @return {boolean} - True if all properties of the current instance matches the properties of the model;
143
- * otherwise, false.
144
- */
145
- isSame(model) {
146
- if (this.maxZoom !== model.maxZoom)
147
- return false;
148
- if (this.minZoom !== model.minZoom)
149
- return false;
150
- if (this.zIndex !== model.zIndex)
151
- return false;
152
- if (this.url !== model.url)
153
- return false;
154
- if (this.projection !== model.projection)
155
- return false;
156
- if (this.opacity !== model.opacity)
157
- return false;
158
- if (this.requestHeaders !== model.requestHeaders)
159
- return false;
160
- if (this.operation !== model.operation)
161
- return false;
162
- return true;
163
- }
164
- }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFzdGVyLXRpbGUtbGF5ZXIuc2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL3Jhc3Rlci10aWxlL3Jhc3Rlci10aWxlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEM7Ozs7O09BS0c7SUFDSCxPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCOzs7O09BSUc7SUFDSCxPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBQ3BCOzs7OztPQUtHO0lBQ0gsT0FBTyxHQUFXLEdBQUcsQ0FBQztJQUN0Qjs7Ozs7O09BTUc7SUFDSCxHQUFHLEdBQVcsRUFBRSxDQUFDO0lBQ2pCOzs7OztPQUtHO0lBQ0gsVUFBVSxHQUFXLFdBQVcsQ0FBQztJQUNqQzs7Ozs7T0FLRztJQUNILGNBQWMsR0FBa0MsSUFBSSxDQUFDO0lBQ3JEOztPQUVHO0lBQ0gsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUVuQixTQUFTLEdBQTZELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hGOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUE4QjtRQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDN0MsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMvQixNQUFNLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDdkIsTUFBTSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLFNBQW1FO1FBQzlFLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FBQyxjQUFzQztRQUN0RCxPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLE9BQU8sdUJBQXVCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQThCO1FBQzFDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsY0FBYztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9ELElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsU0FBUztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIGEgbWFwIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDE5XG4gICAqL1xuICBtYXhab29tOiBudW1iZXIgPSAxOTtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgYWxsb3dlZC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIG1pblpvb206IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBUaGUgb3BhY2l0eSBvZiBhbiBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAwLjZcbiAgICovXG4gIG9wYWNpdHk6IG51bWJlciA9IDAuNjtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHRpbGVzIFVSTC5cbiAgICogQHR5cGVkZWYge3N0cmluZ30gdXJsXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICdodHRwczovL2V4YW1wbGUuZXgve3p9L3t4fS97eX0ucG5nJ1xuICAgKi9cbiAgdXJsOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0aW9uIG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ0VQU0c6Mzg1NydcbiAgICovXG4gIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjM4NTcnO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGVhY2ggdGlsZSByZXF1ZXN0XG4gICAqXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKiBAZGVmYXVsdCBBbiBlbXB0eSBhcnJheVxuICAgKi9cbiAgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBvZiBzaG93aW5nIC0gbGF5ZXJzIHdpdGggaGlnaGVyIHpJbmRleCBjb3ZlciBvdGhlcnMgaW4gY2FzZSBvZiBjb2xsaXNpb25zXG4gICAqL1xuICB6SW5kZXg6IG51bWJlciA9IDE7XG5cbiAgb3BlcmF0aW9uOiAoZGF0YTogbnVtYmVyW11bXSB8IEltYWdlRGF0YVtdKSA9PiBudW1iZXJbXSB8IEltYWdlRGF0YSA9IChkKSA9PiBkWzBdID8/IFtdO1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGNvcHkgb2YgdGhlIGdpdmVuIHRpbGUgbGF5ZXIgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IG1vZGVsIC0gVGhlIHRpbGUgbGF5ZXIgc2V0dGluZ3MgdG8gYmUgY29waWVkLlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBzYW1lIHByb3BlcnRpZXMgYXMgdGhlIG1vZGVsLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb3B5KG1vZGVsOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyk6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MoKTtcbiAgICByZXN1bHQubWF4Wm9vbSA9IG1vZGVsLm1heFpvb207XG4gICAgcmVzdWx0Lm1pblpvb20gPSBtb2RlbC5taW5ab29tO1xuICAgIHJlc3VsdC56SW5kZXggPSBtb2RlbC56SW5kZXg7XG4gICAgcmVzdWx0LnByb2plY3Rpb24gPSBtb2RlbC5wcm9qZWN0aW9uO1xuICAgIHJlc3VsdC5vcGFjaXR5ID0gbW9kZWwub3BhY2l0eTtcbiAgICByZXN1bHQudXJsID0gbW9kZWwudXJsO1xuICAgIHJlc3VsdC5yZXF1ZXN0SGVhZGVycyA9IG1vZGVsLnJlcXVlc3RIZWFkZXJzO1xuICAgIHJlc3VsdC5vcGVyYXRpb24gPSBtb2RlbC5vcGVyYXRpb247XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBVUkwgb2YgdGhlIFJhc3RlclRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFJhc3RlclRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCB1cmwgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgb3BlcmF0aW9uIHRvIGFwcGx5IG9uIHJhc3RlciB0aWxlIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IG9wZXJhdGlvbiAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBpbnB1dCBvZiBlaXRoZXIgYSB0d28tZGltZW5zaW9uYWwgYXJyYXkgb2YgbnVtYmVycyBvciBhbiBhcnJheSBvZiBJbWFnZURhdGEgb2JqZWN0cyBhbmQgcmV0dXJucyBlaXRoZXIgYSBvbmUtZGltZW5zaW9uYWwgYXJyYXkgb2YgbnVtYmVycyBvciBhbiBJbWFnZURhdGEgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gQSBuZXcgaW5zdGFuY2Ugb2YgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgdXBkYXRlZCBvcGVyYXRpb24uXG4gICAqL1xuICBzZXRPcGVyYXRpb24ob3BlcmF0aW9uOiAoZGF0YTogbnVtYmVyW11bXSB8IEltYWdlRGF0YVtdKSA9PiBudW1iZXJbXSB8IEltYWdlRGF0YSk6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIG9wZXJhdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByZXF1ZXN0SGVhZGVycyBvZiB0aGUgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IHJlcXVlc3RIZWFkZXJzIC0gVGhlIGhlYWRlcnMgd2hpY2ggc2hvdWxkIGJlIHByb3ZpZGVkLlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRSZXF1ZXN0SGVhZGVycyhyZXF1ZXN0SGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIHJlcXVlc3RIZWFkZXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG1heGltdW0gem9vbSBsZXZlbCBmb3IgdGhlIHRpbGUgbGF5ZXIuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhab29tIC0gVGhlIG1heGltdW0gem9vbSBsZXZlbC5cbiAgICogQHJldHVybnMge1Jhc3RlclRpbGVMYXllclNldHRpbmdzfSAtIFRoZSB1cGRhdGVkIHRpbGUgbGF5ZXIgc2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0TWF4Wm9vbShtYXhab29tOiBudW1iZXIpOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFJhc3RlclRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCBtYXhab29tIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHotaW5kZXggZm9yIHRoZSBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHpJbmRleCAtIFRoZSBuZXcgei1pbmRleCB0byBiZSBhc3NpZ25lZC5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IEEgbmV3IFJhc3RlclRpbGVMYXllclNldHRpbmdzIGluc3RhbmNlIHdpdGggdGhlIHVwZGF0ZWQgei1pbmRleC5cbiAgICovXG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IFJhc3RlclRpbGVMYXllclNldHRpbmdzIHtcbiAgICByZXR1cm4gUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MuY29weSh7IC4uLnRoaXMsIHpJbmRleCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gVGhlIG1vZGlmaWVkIFJhc3RlclRpbGVMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSB1cGRhdGVkIG1pbmltdW0gem9vbSBsZXZlbC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgLSBUaGUgb3BhY2l0eSB2YWx1ZSB0byBzZXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuICAgKiBAcmV0dXJuIHtSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBvcGFjaXR5IHNldC5cbiAgICovXG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7UmFzdGVyVGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyB3aXRoIHRoZSBuZXcgcHJvamVjdGlvbi5cbiAgICovXG4gIHNldFByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nKTogUmFzdGVyVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgUmFzdGVyVGlsZUxheWVyU2V0dGluZ3MgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG1vZGVsLlxuICAgKiBAcGFyYW0ge1Jhc3RlclRpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIGFnYWluc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gVHJ1ZSBpZiBhbGwgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbDtcbiAgICogICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaXNTYW1lKG1vZGVsOiBSYXN0ZXJUaWxlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1heFpvb20gIT09IG1vZGVsLm1heFpvb20pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5taW5ab29tICE9PSBtb2RlbC5taW5ab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMuekluZGV4ICE9PSBtb2RlbC56SW5kZXgpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy51cmwgIT09IG1vZGVsLnVybCkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnByb2plY3Rpb24gIT09IG1vZGVsLnByb2plY3Rpb24pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5vcGFjaXR5ICE9PSBtb2RlbC5vcGFjaXR5KSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMucmVxdWVzdEhlYWRlcnMgIT09IG1vZGVsLnJlcXVlc3RIZWFkZXJzKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMub3BlcmF0aW9uICE9PSBtb2RlbC5vcGVyYXRpb24pIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -1,52 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { DestructibleComponent } from '../../../common/destructible.component';
3
- import { MapRenderedEvent } from '../../../messages';
4
- import { filter, first } from 'rxjs/operators';
5
- import { TileLayerSettings } from './tile-layer.settings';
6
- import { AddTileCommand } from '../../../messages/commands/add-tile.command';
7
- import { RemoveTileCommand } from '../../../messages/commands/remove-tile.command';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../../services/map-postboy.service";
10
- import * as i2 from "./tile-layer.factory";
11
- export class TileLayerComponent extends DestructibleComponent {
12
- postboy;
13
- factory;
14
- layer;
15
- constructor(postboy, factory) {
16
- super();
17
- this.postboy = postboy;
18
- this.factory = factory;
19
- }
20
- _settings = new TileLayerSettings();
21
- set settings(value) {
22
- if (!value || this._settings.isSame(value))
23
- return;
24
- this._settings = value;
25
- this.initLayer();
26
- }
27
- ngOnInit() {
28
- this.postboy
29
- .sub(MapRenderedEvent)
30
- .pipe(filter((m) => !!m), first())
31
- .subscribe((m) => this.initLayer());
32
- }
33
- onDestroy = () => this.removeLayer();
34
- initLayer() {
35
- this.removeLayer();
36
- this.layer = this.factory.build(this._settings);
37
- this.postboy.fire(new AddTileCommand(this.layer));
38
- }
39
- removeLayer() {
40
- if (this.layer)
41
- this.postboy.fire(new RemoveTileCommand(this.layer));
42
- }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayerComponent, deps: [{ token: i1.MapPostboyService }, { token: i2.TileLayerFactory }], target: i0.ɵɵFactoryTarget.Component });
44
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TileLayerComponent, isStandalone: true, selector: "art-tile-layer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayerComponent, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'art-tile-layer', standalone: true, template: '', changeDetection: ChangeDetectionStrategy.OnPush }]
49
- }], ctorParameters: () => [{ type: i1.MapPostboyService }, { type: i2.TileLayerFactory }], propDecorators: { settings: [{
50
- type: Input
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBzLWNvbXBvbmVudHMvc3JjL21hcC9tYXAtcGxhdGUvbGF5ZXJzL3RpbGUtbGF5ZXIvdGlsZS1sYXllci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFLL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7QUFTbkYsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHFCQUFxQjtJQUd2QztJQUFvQztJQUZqRCxLQUFLLENBQWtCO0lBRTlCLFlBQW9CLE9BQTBCLEVBQVUsT0FBeUI7UUFDL0UsS0FBSyxFQUFFLENBQUM7UUFEVSxZQUFPLEdBQVAsT0FBTyxDQUFtQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBRWpGLENBQUM7SUFFRCxTQUFTLEdBQXNCLElBQUksaUJBQWlCLEVBQUUsQ0FBQztJQUV2RCxJQUFhLFFBQVEsQ0FBQyxLQUFvQztRQUN4RCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDbkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU87YUFDVCxHQUFHLENBQUMsZ0JBQWdCLENBQUM7YUFDckIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsQixLQUFLLEVBQUUsQ0FDUjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFN0IsU0FBUztRQUNmLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO3dHQW5DVSxrQkFBa0I7NEZBQWxCLGtCQUFrQixtSUFKbkIsRUFBRTs7NEZBSUQsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksWUFDTixFQUFFLG1CQUVLLHVCQUF1QixDQUFDLE1BQU07cUhBV2xDLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Rlc3RydWN0aWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGlsZUxheWVyRmFjdG9yeSB9IGZyb20gJy4vdGlsZS1sYXllci5mYWN0b3J5JztcbmltcG9ydCB7IE1hcFJlbmRlcmVkRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGlsZUxheWVyU2V0dGluZ3MgfSBmcm9tICcuL3RpbGUtbGF5ZXIuc2V0dGluZ3MnO1xuaW1wb3J0IHsgQWRkVGlsZUNvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlcy9jb21tYW5kcy9hZGQtdGlsZS5jb21tYW5kJztcbmltcG9ydCB7IFJlbW92ZVRpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbWVzc2FnZXMvY29tbWFuZHMvcmVtb3ZlLXRpbGUuY29tbWFuZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FydC10aWxlLWxheWVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6ICcnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUxheWVyQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IHtcbiAgcHVibGljIGxheWVyPzogVGlsZUxheWVyPFhZWj47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3N0Ym95OiBNYXBQb3N0Ym95U2VydmljZSwgcHJpdmF0ZSBmYWN0b3J5OiBUaWxlTGF5ZXJGYWN0b3J5KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIF9zZXR0aW5nczogVGlsZUxheWVyU2V0dGluZ3MgPSBuZXcgVGlsZUxheWVyU2V0dGluZ3MoKTtcblxuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWU6IFRpbGVMYXllclNldHRpbmdzIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLl9zZXR0aW5ncy5pc1NhbWUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcbiAgICB0aGlzLmluaXRMYXllcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wb3N0Ym95XG4gICAgICAuc3ViKE1hcFJlbmRlcmVkRXZlbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChtKSA9PiAhIW0pLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobSkgPT4gdGhpcy5pbml0TGF5ZXIoKSk7XG4gIH1cblxuICBvbkRlc3Ryb3kgPSAoKSA9PiB0aGlzLnJlbW92ZUxheWVyKCk7XG5cbiAgcHJpdmF0ZSBpbml0TGF5ZXIoKSB7XG4gICAgdGhpcy5yZW1vdmVMYXllcigpO1xuICAgIHRoaXMubGF5ZXIgPSB0aGlzLmZhY3RvcnkuYnVpbGQodGhpcy5fc2V0dGluZ3MpO1xuICAgIHRoaXMucG9zdGJveS5maXJlKG5ldyBBZGRUaWxlQ29tbWFuZCh0aGlzLmxheWVyKSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxheWVyKCkge1xuICAgIGlmICh0aGlzLmxheWVyKSB0aGlzLnBvc3Rib3kuZmlyZShuZXcgUmVtb3ZlVGlsZUNvbW1hbmQodGhpcy5sYXllcikpO1xuICB9XG59XG4iXX0=
@@ -1,68 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { XYZ } from 'ol/source';
3
- import { get } from 'ol/proj';
4
- import TileLayer from 'ol/layer/Tile';
5
- import * as i0 from "@angular/core";
6
- export class TileLayerFactory {
7
- build(settings) {
8
- const source = new XYZ({
9
- tileSize: 256,
10
- maxZoom: settings.maxZoom || 14,
11
- minZoom: settings.minZoom || 1,
12
- projection: get(settings.projection),
13
- tileUrlFunction: this.getTileFunc(settings),
14
- crossOrigin: 'Anonymous',
15
- tileLoadFunction: !!settings.requestHeaders
16
- ? (tile, src) => this.tileLoader(tile, src, settings.requestHeaders)
17
- : undefined,
18
- });
19
- return new TileLayer({ source, opacity: settings.opacity });
20
- }
21
- getTileFunc(settings) {
22
- return (tileCoord) => {
23
- const zoom = tileCoord[0];
24
- const x = tileCoord[1];
25
- const y = tileCoord[2];
26
- const normalizedCoord = this.getNormalizedCoord({ x: x, y: y }, zoom);
27
- const bound = 1 << zoom;
28
- return settings.url
29
- .replace('{x}', String(normalizedCoord?.x || x))
30
- .replace('{z}', String(zoom))
31
- .replace('{y}', String(bound - (normalizedCoord?.y || y) - 1));
32
- };
33
- }
34
- tileLoader(tile, src, headers) {
35
- const client = new XMLHttpRequest();
36
- client.open('GET', src);
37
- client.responseType = 'arraybuffer';
38
- Object.keys(headers).forEach((k) => client.setRequestHeader(k, headers[k]));
39
- client.onload = function () {
40
- if (this.response !== undefined) {
41
- const arrayBufferView = new Uint8Array(this.response);
42
- const blob = new Blob([arrayBufferView], { type: 'image/png' });
43
- const urlCreator = window.URL || window.webkitURL;
44
- tile.getImage().src = urlCreator.createObjectURL(blob);
45
- }
46
- };
47
- client.send();
48
- }
49
- getNormalizedCoord(coord, zoom) {
50
- const y = coord.y;
51
- let x = coord.x;
52
- const tileRange = 1 << zoom;
53
- if (y < 0 || y >= tileRange)
54
- return null;
55
- if (x < 0 || x >= tileRange)
56
- x = ((x % tileRange) + tileRange) % tileRange;
57
- return { x: x, y: y };
58
- }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayerFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
60
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayerFactory, providedIn: 'root' });
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TileLayerFactory, decorators: [{
63
- type: Injectable,
64
- args: [{
65
- providedIn: 'root',
66
- }]
67
- }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL2xheWVycy90aWxlLWxheWVyL3RpbGUtbGF5ZXIuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFNBQVMsTUFBTSxlQUFlLENBQUM7O0FBTXRDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsS0FBSyxDQUFDLFFBQTJCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDO1lBQ3JCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRTtZQUMvQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sSUFBSSxDQUFDO1lBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBRTtZQUNyQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDM0MsV0FBVyxFQUFFLFdBQVc7WUFDeEIsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjO2dCQUN6QyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLGNBQWUsQ0FBQztnQkFDN0UsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMs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SUFDeEIsQ0FBQzt3R0FyRFUsZ0JBQWdCOzRHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgWFlaIH0gZnJvbSAnb2wvc291cmNlJztcbmltcG9ydCB7IFRpbGVMYXllclNldHRpbmdzIH0gZnJvbSAnLi90aWxlLWxheWVyLnNldHRpbmdzJztcbmltcG9ydCB7IFRpbGVDb29yZCB9IGZyb20gJ29sL3RpbGVjb29yZCc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdvbC9wcm9qJztcbmltcG9ydCBUaWxlTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XG5pbXBvcnQgeyBUaWxlIH0gZnJvbSAnb2wnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGlsZUxheWVyRmFjdG9yeSB7XG4gIHB1YmxpYyBidWlsZChzZXR0aW5nczogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXI8WFlaPiB7XG4gICAgY29uc3Qgc291cmNlID0gbmV3IFhZWih7XG4gICAgICB0aWxlU2l6ZTogMjU2LFxuICAgICAgbWF4Wm9vbTogc2V0dGluZ3MubWF4Wm9vbSB8fCAxNCxcbiAgICAgIG1pblpvb206IHNldHRpbmdzLm1pblpvb20gfHwgMSxcbiAgICAgIHByb2plY3Rpb246IGdldChzZXR0aW5ncy5wcm9qZWN0aW9uKSEsXG4gICAgICB0aWxlVXJsRnVuY3Rpb246IHRoaXMuZ2V0VGlsZUZ1bmMoc2V0dGluZ3MpLFxuICAgICAgY3Jvc3NPcmlnaW46ICdBbm9ueW1vdXMnLFxuICAgICAgdGlsZUxvYWRGdW5jdGlvbjogISFzZXR0aW5ncy5yZXF1ZXN0SGVhZGVyc1xuICAgICAgICA/ICh0aWxlLCBzcmM6IHN0cmluZykgPT4gdGhpcy50aWxlTG9hZGVyKHRpbGUsIHNyYywgc2V0dGluZ3MucmVxdWVzdEhlYWRlcnMhKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICByZXR1cm4gbmV3IFRpbGVMYXllcih7IHNvdXJjZSwgb3BhY2l0eTogc2V0dGluZ3Mub3BhY2l0eSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGlsZUZ1bmMoc2V0dGluZ3M6IFRpbGVMYXllclNldHRpbmdzKTogKHRpbGVDb29yZDogVGlsZUNvb3JkKSA9PiBzdHJpbmcge1xuICAgIHJldHVybiAodGlsZUNvb3JkKSA9PiB7XG4gICAgICBjb25zdCB6b29tID0gdGlsZUNvb3JkWzBdO1xuICAgICAgY29uc3QgeCA9IHRpbGVDb29yZFsxXTtcbiAgICAgIGNvbnN0IHkgPSB0aWxlQ29vcmRbMl07XG4gICAgICBjb25zdCBub3JtYWxpemVkQ29vcmQgPSB0aGlzLmdldE5vcm1hbGl6ZWRDb29yZCh7IHg6IHgsIHk6IHkgfSwgem9vbSk7XG4gICAgICBjb25zdCBib3VuZCA9IDEgPDwgem9vbTtcbiAgICAgIHJldHVybiBzZXR0aW5ncy51cmxcbiAgICAgICAgLnJlcGxhY2UoJ3t4fScsIFN0cmluZyhub3JtYWxpemVkQ29vcmQ/LnggfHwgeCkpXG4gICAgICAgIC5yZXBsYWNlKCd7en0nLCBTdHJpbmcoem9vbSkpXG4gICAgICAgIC5yZXBsYWNlKCd7eX0nLCBTdHJpbmcoYm91bmQgLSAobm9ybWFsaXplZENvb3JkPy55IHx8IHkpIC0gMSkpO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHRpbGVMb2FkZXIodGlsZTogVGlsZSwgc3JjOiBzdHJpbmcsIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjbGllbnQub3BlbignR0VUJywgc3JjKTtcbiAgICBjbGllbnQucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IGNsaWVudC5zZXRSZXF1ZXN0SGVhZGVyKGssIGhlYWRlcnNba10pKTtcbiAgICBjbGllbnQub25sb2FkID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKHRoaXMucmVzcG9uc2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFthcnJheUJ1ZmZlclZpZXddLCB7IHR5cGU6ICdpbWFnZS9wbmcnIH0pO1xuICAgICAgICBjb25zdCB1cmxDcmVhdG9yID0gd2luZG93LlVSTCB8fCAod2luZG93IGFzIGFueSkud2Via2l0VVJMO1xuICAgICAgICAodGlsZSBhcyBhbnkpLmdldEltYWdlKCkuc3JjID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICB9XG4gICAgfTtcbiAgICBjbGllbnQuc2VuZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb3JtYWxpemVkQ29vcmQoY29vcmQ6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgeSA9IGNvb3JkLnk7XG4gICAgbGV0IHggPSBjb29yZC54O1xuICAgIGNvbnN0IHRpbGVSYW5nZSA9IDEgPDwgem9vbTtcbiAgICBpZiAoeSA8IDAgfHwgeSA+PSB0aWxlUmFuZ2UpIHJldHVybiBudWxsO1xuICAgIGlmICh4IDwgMCB8fCB4ID49IHRpbGVSYW5nZSkgeCA9ICgoeCAlIHRpbGVSYW5nZSkgKyB0aWxlUmFuZ2UpICUgdGlsZVJhbmdlO1xuICAgIHJldHVybiB7IHg6IHgsIHk6IHkgfTtcbiAgfVxufVxuIl19
@@ -1,139 +0,0 @@
1
- /**
2
- * Class representing settings for a tile layer.
3
- */
4
- export class TileLayerSettings {
5
- /**
6
- * The maximum zoom level for a map view.
7
- *
8
- * @type {number}
9
- * @default 19
10
- */
11
- maxZoom = 19;
12
- /**
13
- * The minimum zoom level allowed.
14
- *
15
- * @type {number}
16
- */
17
- minZoom = 0;
18
- /**
19
- * The opacity of an element.
20
- *
21
- * @type {number}
22
- * @default 0.6
23
- */
24
- opacity = 0.6;
25
- /**
26
- * Represents the tiles URL.
27
- * @typedef {string} url
28
- *
29
- * @example
30
- * 'https://example.ex/{z}/{x}/{y}.png'
31
- */
32
- url = '';
33
- /**
34
- * The projection of the coordinate system.
35
- *
36
- * @type {string}
37
- * @default 'EPSG:3857'
38
- */
39
- projection = 'EPSG:3857';
40
- /**
41
- * Additional headers that should be added to each tile request
42
- *
43
- * @type {Record<string, string>}
44
- * @default An empty array
45
- */
46
- requestHeaders = null;
47
- /**
48
- * Creates a copy of the given tile layer settings.
49
- *
50
- * @param {TileLayerSettings} model - The tile layer settings to be copied.
51
- * @return {TileLayerSettings} - A new instance of TileLayerSettings with the same properties as the model.
52
- */
53
- static copy(model) {
54
- const result = new TileLayerSettings();
55
- result.maxZoom = model.maxZoom;
56
- result.minZoom = model.minZoom;
57
- result.projection = model.projection;
58
- result.opacity = model.opacity;
59
- result.url = model.url;
60
- result.requestHeaders = model.requestHeaders;
61
- return result;
62
- }
63
- /**
64
- * Sets the URL of the TileLayerSettings object.
65
- *
66
- * @param {string} url - The URL to be set.
67
- * @return {TileLayerSettings} - The updated TileLayerSettings object.
68
- */
69
- setUrl(url) {
70
- return TileLayerSettings.copy({ ...this, url });
71
- }
72
- /**
73
- * Sets the requestHeaders of the TileLayerSettings object.
74
- *
75
- * @param {Record<string, string>} requestHeaders - The headers which should be provided.
76
- * @return {TileLayerSettings} - The updated TileLayerSettings object.
77
- */
78
- setRequestHeaders(requestHeaders) {
79
- return TileLayerSettings.copy({ ...this, requestHeaders });
80
- }
81
- /**
82
- * Sets the maximum zoom level for the tile layer.
83
- *
84
- * @param {number} maxZoom - The maximum zoom level.
85
- * @returns {TileLayerSettings} - The updated tile layer settings object.
86
- */
87
- setMaxZoom(maxZoom) {
88
- return TileLayerSettings.copy({ ...this, maxZoom });
89
- }
90
- /**
91
- * Sets the minimum zoom level for the Tile Layer.
92
- *
93
- * @param {number} minZoom - The minimum zoom level to be set.
94
- * @return {TileLayerSettings} The modified TileLayerSettings object with the updated minimum zoom level.
95
- */
96
- setMinZoom(minZoom) {
97
- return TileLayerSettings.copy({ ...this, minZoom });
98
- }
99
- /**
100
- * Sets the opacity of the TileLayerSettings.
101
- *
102
- * @param {number} opacity - The opacity value to set. Must be a number between 0 and 1.
103
- * @return {TileLayerSettings} - A new instance of TileLayerSettings with the opacity set.
104
- */
105
- setOpacity(opacity) {
106
- return TileLayerSettings.copy({ ...this, opacity });
107
- }
108
- /**
109
- * Sets the projection for the tile layer settings.
110
- *
111
- * @param {string} projection - The desired projection for the tile layer settings.
112
- * @return {TileLayerSettings} - The updated tile layer settings with the new projection.
113
- */
114
- setProjection(projection) {
115
- return TileLayerSettings.copy({ ...this, projection });
116
- }
117
- /**
118
- * Checks if the current instance of TileLayerSettings is equal to the given model.
119
- * @param {TileLayerSettings} model - The model to compare against.
120
- * @return {boolean} - True if all properties of the current instance matches the properties of the model;
121
- * otherwise, false.
122
- */
123
- isSame(model) {
124
- if (this.maxZoom !== model.maxZoom)
125
- return false;
126
- if (this.minZoom !== model.minZoom)
127
- return false;
128
- if (this.url !== model.url)
129
- return false;
130
- if (this.projection !== model.projection)
131
- return false;
132
- if (this.opacity !== model.opacity)
133
- return false;
134
- if (this.requestHeaders !== model.requestHeaders)
135
- return false;
136
- return true;
137
- }
138
- }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9sYXllcnMvdGlsZS1sYXllci90aWxlLWxheWVyLnNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7Ozs7T0FLRztJQUNILE9BQU8sR0FBVyxFQUFFLENBQUM7SUFDckI7Ozs7T0FJRztJQUNILE9BQU8sR0FBVyxDQUFDLENBQUM7SUFDcEI7Ozs7O09BS0c7SUFDSCxPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCOzs7Ozs7T0FNRztJQUNILEdBQUcsR0FBVyxFQUFFLENBQUM7SUFDakI7Ozs7O09BS0c7SUFDSCxVQUFVLEdBQVcsV0FBVyxDQUFDO0lBQ2pDOzs7OztPQUtHO0lBQ0gsY0FBYyxHQUFrQyxJQUFJLENBQUM7SUFDckQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQXdCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN2QyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUM3QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVztRQUNoQixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsY0FBc0M7UUFDdEQsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLE9BQWU7UUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixPQUFPLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEtBQXdCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZELElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsY0FBYztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgc2V0dGluZ3MgZm9yIGEgdGlsZSBsYXllci5cbiAqL1xuZXhwb3J0IGNsYXNzIFRpbGVMYXllclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIGEgbWFwIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDE5XG4gICAqL1xuICBtYXhab29tOiBudW1iZXIgPSAxOTtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgYWxsb3dlZC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIG1pblpvb206IG51bWJlciA9IDA7XG4gIC8qKlxuICAgKiBUaGUgb3BhY2l0eSBvZiBhbiBlbGVtZW50LlxuICAgKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKiBAZGVmYXVsdCAwLjZcbiAgICovXG4gIG9wYWNpdHk6IG51bWJlciA9IDAuNjtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIHRpbGVzIFVSTC5cbiAgICogQHR5cGVkZWYge3N0cmluZ30gdXJsXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqICdodHRwczovL2V4YW1wbGUuZXgve3p9L3t4fS97eX0ucG5nJ1xuICAgKi9cbiAgdXJsOiBzdHJpbmcgPSAnJztcbiAgLyoqXG4gICAqIFRoZSBwcm9qZWN0aW9uIG9mIHRoZSBjb29yZGluYXRlIHN5c3RlbS5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJ0VQU0c6Mzg1NydcbiAgICovXG4gIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjM4NTcnO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBoZWFkZXJzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGVhY2ggdGlsZSByZXF1ZXN0XG4gICAqXG4gICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fVxuICAgKiBAZGVmYXVsdCBBbiBlbXB0eSBhcnJheVxuICAgKi9cbiAgcmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBudWxsID0gbnVsbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBnaXZlbiB0aWxlIGxheWVyIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSB0aWxlIGxheWVyIHNldHRpbmdzIHRvIGJlIGNvcGllZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gQSBuZXcgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3Mgd2l0aCB0aGUgc2FtZSBwcm9wZXJ0aWVzIGFzIHRoZSBtb2RlbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29weShtb2RlbDogVGlsZUxheWVyU2V0dGluZ3MpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IFRpbGVMYXllclNldHRpbmdzKCk7XG4gICAgcmVzdWx0Lm1heFpvb20gPSBtb2RlbC5tYXhab29tO1xuICAgIHJlc3VsdC5taW5ab29tID0gbW9kZWwubWluWm9vbTtcbiAgICByZXN1bHQucHJvamVjdGlvbiA9IG1vZGVsLnByb2plY3Rpb247XG4gICAgcmVzdWx0Lm9wYWNpdHkgPSBtb2RlbC5vcGFjaXR5O1xuICAgIHJlc3VsdC51cmwgPSBtb2RlbC51cmw7XG4gICAgcmVzdWx0LnJlcXVlc3RIZWFkZXJzID0gbW9kZWwucmVxdWVzdEhlYWRlcnM7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBVUkwgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFRoZSBVUkwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCBUaWxlTGF5ZXJTZXR0aW5ncyBvYmplY3QuXG4gICAqL1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCB1cmwgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcmVxdWVzdEhlYWRlcnMgb2YgdGhlIFRpbGVMYXllclNldHRpbmdzIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSByZXF1ZXN0SGVhZGVycyAtIFRoZSBoZWFkZXJzIHdoaWNoIHNob3VsZCBiZSBwcm92aWRlZC5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgVGlsZUxheWVyU2V0dGluZ3Mgb2JqZWN0LlxuICAgKi9cbiAgc2V0UmVxdWVzdEhlYWRlcnMocmVxdWVzdEhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBUaWxlTGF5ZXJTZXR0aW5ncyB7XG4gICAgcmV0dXJuIFRpbGVMYXllclNldHRpbmdzLmNvcHkoeyAuLi50aGlzLCByZXF1ZXN0SGVhZGVycyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSB0aWxlIGxheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Wm9vbSAtIFRoZSBtYXhpbXVtIHpvb20gbGV2ZWwuXG4gICAqIEByZXR1cm5zIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBUaGUgdXBkYXRlZCB0aWxlIGxheWVyIHNldHRpbmdzIG9iamVjdC5cbiAgICovXG4gIHNldE1heFpvb20obWF4Wm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWF4Wm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgZm9yIHRoZSBUaWxlIExheWVyLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWluWm9vbSAtIFRoZSBtaW5pbXVtIHpvb20gbGV2ZWwgdG8gYmUgc2V0LlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gVGhlIG1vZGlmaWVkIFRpbGVMYXllclNldHRpbmdzIG9iamVjdCB3aXRoIHRoZSB1cGRhdGVkIG1pbmltdW0gem9vbSBsZXZlbC5cbiAgICovXG4gIHNldE1pblpvb20obWluWm9vbTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgbWluWm9vbSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBvcGFjaXR5IG9mIHRoZSBUaWxlTGF5ZXJTZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG9wYWNpdHkgLSBUaGUgb3BhY2l0eSB2YWx1ZSB0byBzZXQuIE11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxLlxuICAgKiBAcmV0dXJuIHtUaWxlTGF5ZXJTZXR0aW5nc30gLSBBIG5ldyBpbnN0YW5jZSBvZiBUaWxlTGF5ZXJTZXR0aW5ncyB3aXRoIHRoZSBvcGFjaXR5IHNldC5cbiAgICovXG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgb3BhY2l0eSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByb2plY3Rpb24gLSBUaGUgZGVzaXJlZCBwcm9qZWN0aW9uIGZvciB0aGUgdGlsZSBsYXllciBzZXR0aW5ncy5cbiAgICogQHJldHVybiB7VGlsZUxheWVyU2V0dGluZ3N9IC0gVGhlIHVwZGF0ZWQgdGlsZSBsYXllciBzZXR0aW5ncyB3aXRoIHRoZSBuZXcgcHJvamVjdGlvbi5cbiAgICovXG4gIHNldFByb2plY3Rpb24ocHJvamVjdGlvbjogc3RyaW5nKTogVGlsZUxheWVyU2V0dGluZ3Mge1xuICAgIHJldHVybiBUaWxlTGF5ZXJTZXR0aW5ncy5jb3B5KHsgLi4udGhpcywgcHJvamVjdGlvbiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGN1cnJlbnQgaW5zdGFuY2Ugb2YgVGlsZUxheWVyU2V0dGluZ3MgaXMgZXF1YWwgdG8gdGhlIGdpdmVuIG1vZGVsLlxuICAgKiBAcGFyYW0ge1RpbGVMYXllclNldHRpbmdzfSBtb2RlbCAtIFRoZSBtb2RlbCB0byBjb21wYXJlIGFnYWluc3QuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gVHJ1ZSBpZiBhbGwgcHJvcGVydGllcyBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBtb2RlbDtcbiAgICogICAgICAgICAgICAgICAgICAgIG90aGVyd2lzZSwgZmFsc2UuXG4gICAqL1xuICBwdWJsaWMgaXNTYW1lKG1vZGVsOiBUaWxlTGF5ZXJTZXR0aW5ncyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1heFpvb20gIT09IG1vZGVsLm1heFpvb20pIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5taW5ab29tICE9PSBtb2RlbC5taW5ab29tKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMudXJsICE9PSBtb2RlbC51cmwpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9qZWN0aW9uICE9PSBtb2RlbC5wcm9qZWN0aW9uKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMub3BhY2l0eSAhPT0gbW9kZWwub3BhY2l0eSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLnJlcXVlc3RIZWFkZXJzICE9PSBtb2RlbC5yZXF1ZXN0SGVhZGVycykgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -1,120 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, input, Input, ViewEncapsulation, } from '@angular/core';
2
- import { MapLyrsLabel, MapSettings } from '../models';
3
- import { useGeographic } from 'ol/proj';
4
- import { DestructibleComponent } from '../common/destructible.component';
5
- import { MessageRegistratorService } from '../services/message-registrator.service';
6
- import { MapRenderedEvent } from '../messages';
7
- import { MapStateService } from '../services/map-state.service';
8
- import { MapManagementService } from '../services/map-management.service';
9
- import { MapClickService } from '../services/map-click.service';
10
- import { MapFeatureService } from '../services/map-feature.service';
11
- import { FeatureLayerComponent, FeatureLayerSettings, OsmTileLayerComponent } from './layers';
12
- import { MapConstants } from '../models/map.constants';
13
- import { DrawingService } from '../services/drawing/drawing.service';
14
- import { DrawingGenerationService } from '../services/drawing/drawing-generation.service';
15
- import { FeatureService } from '../services/feature.service';
16
- import { FeatureModificationService } from '../services/drawing/feature-modification.service';
17
- import { ControlsService } from '../services/controls/controls.service';
18
- import { MapPointerMoveEvent } from '../messages/events/map-pointer-move.event';
19
- import { NgIf, NgTemplateOutlet } from '@angular/common';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "../services/map-postboy.service";
22
- import * as i2 from "./map-plate.factory.service";
23
- import * as i3 from "../services/message-registrator.service";
24
- export class MapPlateComponent extends DestructibleComponent {
25
- elementRef;
26
- postboy;
27
- mapFactory;
28
- registrator;
29
- detector;
30
- contentRef = input.required();
31
- renderTryCount = 0;
32
- map;
33
- osmUrl = '';
34
- drawingLayerSettings = new FeatureLayerSettings().setName(MapConstants.DrawingLayerId);
35
- constructor(elementRef, postboy, mapFactory, registrator, detector) {
36
- super();
37
- this.elementRef = elementRef;
38
- this.postboy = postboy;
39
- this.mapFactory = mapFactory;
40
- this.registrator = registrator;
41
- this.detector = detector;
42
- registrator.up();
43
- }
44
- _settings = new MapSettings();
45
- set settings(value) {
46
- if (!value || this._settings.isSame(value))
47
- return;
48
- this._settings = value;
49
- this.setOsm();
50
- }
51
- initializeMap() {
52
- useGeographic();
53
- this.map = this.mapFactory.build(this._settings);
54
- this.map.setTarget(this.elementRef.nativeElement);
55
- this.detector.detectChanges();
56
- this.map.once('postrender', () => {
57
- this.map.updateSize();
58
- this.postboy.fire(new MapRenderedEvent(this.map));
59
- });
60
- this.map.on('pointermove', (ev) => {
61
- this.postboy.fire(new MapPointerMoveEvent(ev.pixel));
62
- });
63
- this.setOsm();
64
- }
65
- ngAfterViewInit() {
66
- const mapContainer = this.elementRef.nativeElement;
67
- const checkContainerSize = () => {
68
- const { clientWidth, clientHeight } = mapContainer;
69
- if (clientWidth > 0 && clientHeight > 0) {
70
- this.initializeMap();
71
- }
72
- else {
73
- console.error("Map's container is not rendered yet or has zero size. Trying again in 100 ms.");
74
- setTimeout(checkContainerSize, 20 * ++this.renderTryCount); // Проверка каждые 100 мс
75
- }
76
- };
77
- checkContainerSize();
78
- }
79
- onDestroy = () => {
80
- this.registrator.down();
81
- };
82
- setOsm() {
83
- if (!this.map)
84
- return;
85
- this.osmUrl = `https://mt{0-3}.google.com/vt/lyrs=${MapLyrsLabel.get(this._settings.lyrs)}&hl=${this._settings.language}&x={x}&y={y}&z={z}`;
86
- this.detector.detectChanges();
87
- this.map.updateSize();
88
- }
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapPlateComponent, deps: [{ token: i0.ElementRef }, { token: i1.MapPostboyService }, { token: i2.MapPlateFactory }, { token: i3.MessageRegistratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: MapPlateComponent, isStandalone: true, selector: "art-map-plate", inputs: { contentRef: { classPropertyName: "contentRef", publicName: "contentRef", isSignal: true, isRequired: true, transformFunction: null }, settings: { classPropertyName: "settings", publicName: "settings", isSignal: false, isRequired: false, transformFunction: null } }, providers: [
91
- MessageRegistratorService,
92
- MapStateService,
93
- MapManagementService,
94
- MapClickService,
95
- MapFeatureService,
96
- DrawingService,
97
- DrawingGenerationService,
98
- FeatureService,
99
- FeatureModificationService,
100
- ControlsService,
101
- ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"contentRef()\"> </ng-container>\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: "component", type: OsmTileLayerComponent, selector: "art-osm-tile-layer", inputs: ["url", "opacity", "map"] }, { kind: "component", type: FeatureLayerComponent, selector: "art-feature-layer", inputs: ["settings"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
102
- }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MapPlateComponent, decorators: [{
104
- type: Component,
105
- args: [{ selector: 'art-map-plate', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
106
- MessageRegistratorService,
107
- MapStateService,
108
- MapManagementService,
109
- MapClickService,
110
- MapFeatureService,
111
- DrawingService,
112
- DrawingGenerationService,
113
- FeatureService,
114
- FeatureModificationService,
115
- ControlsService,
116
- ], encapsulation: ViewEncapsulation.None, imports: [OsmTileLayerComponent, FeatureLayerComponent, NgIf, NgTemplateOutlet], template: "<ng-container *ngTemplateOutlet=\"contentRef()\"> </ng-container>\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"] }]
117
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MapPostboyService }, { type: i2.MapPlateFactory }, { type: i3.MessageRegistratorService }, { type: i0.ChangeDetectorRef }], propDecorators: { settings: [{
118
- type: Input
119
- }] } });
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHMtY29tcG9uZW50cy9zcmMvbWFwL21hcC1wbGF0ZS9tYXAtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcy1jb21wb25lbnRzL3NyYy9tYXAvbWFwLXBsYXRlL21hcC1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FB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QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULHlCQUF5Qjt3QkFDekIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsY0FBYzt3QkFDZCwwQkFBMEI7d0JBQzFCLGVBQWU7cUJBQ2hCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7cU5Bc0JsRSxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcEx5cnNMYWJlbCwgTWFwU2V0dGluZ3MgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IE1hcCBmcm9tICdvbC9NYXAnO1xuaW1wb3J0IHsgdXNlR2VvZ3JhcGhpYyB9IGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IHsgRGVzdHJ1Y3RpYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Rlc3RydWN0aWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVzc2FnZVJlZ2lzdHJhdG9yU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21lc3NhZ2UtcmVnaXN0cmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBQb3N0Ym95U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hcC1wb3N0Ym95LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwUmVuZGVyZWRFdmVudCB9IGZyb20gJy4uL21lc3NhZ2VzJztcbmltcG9ydCB7IE1hcFN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hcC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcE1hbmFnZW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFwLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBQbGF0ZUZhY3RvcnkgfSBmcm9tICcuL21hcC1wbGF0ZS5mYWN0b3J5LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbWFwLWNsaWNrLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwRmVhdHVyZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXAtZmVhdHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZlYXR1cmVMYXllckNvbXBvbmVudCwgRmVhdHVyZUxheWVyU2V0dGluZ3MsIE9zbVRpbGVMYXllckNvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXJzJztcbmltcG9ydCB7IE1hcENvbnN0YW50cyB9IGZyb20gJy4uL21vZGVscy9tYXAuY29uc3RhbnRzJztcbmltcG9ydCB7IERyYXdpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHJhd2luZy9kcmF3aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJhd2luZ0dlbmVyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZHJhd2luZy9kcmF3aW5nLWdlbmVyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZlYXR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBGZWF0dXJlTW9kaWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RyYXdpbmcvZmVhdHVyZS1tb2RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDb250cm9sc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jb250cm9scy9jb250cm9scy5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcFBvaW50ZXJNb3ZlRXZlbnQgfSBmcm9tICcuLi9tZXNzYWdlcy9ldmVudHMvbWFwLXBvaW50ZXItbW92ZS5ldmVudCc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJ0LW1hcC1wbGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXAtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtcGxhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIE1lc3NhZ2VSZWdpc3RyYXRvclNlcnZpY2UsXG4gICAgTWFwU3RhdGVTZXJ2aWNlLFxuICAgIE1hcE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIE1hcENsaWNrU2VydmljZSxcbiAgICBNYXBGZWF0dXJlU2VydmljZSxcbiAgICBEcmF3aW5nU2VydmljZSxcbiAgICBEcmF3aW5nR2VuZXJhdGlvblNlcnZpY2UsXG4gICAgRmVhdHVyZVNlcnZpY2UsXG4gICAgRmVhdHVyZU1vZGlmaWNhdGlvblNlcnZpY2UsXG4gICAgQ29udHJvbHNTZXJ2aWNlLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbT3NtVGlsZUxheWVyQ29tcG9uZW50LCBGZWF0dXJlTGF5ZXJDb21wb25lbnQsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXRdLFxufSlcbmV4cG9ydCBjbGFzcyBNYXBQbGF0ZUNvbXBvbmVudCBleHRlbmRzIERlc3RydWN0aWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBjb250ZW50UmVmID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcbiAgcHJpdmF0ZSByZW5kZXJUcnlDb3VudCA9IDA7XG4gIG1hcCE6IE1hcDtcbiAgb3NtVXJsID0gJyc7XG4gIGRyYXdpbmdMYXllclNldHRpbmdzID0gbmV3IEZlYXR1cmVMYXllclNldHRpbmdzKCkuc2V0TmFtZShNYXBDb25zdGFudHMuRHJhd2luZ0xheWVySWQpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBvc3Rib3k6IE1hcFBvc3Rib3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWFwRmFjdG9yeTogTWFwUGxhdGVGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVnaXN0cmF0b3I6IE1lc3NhZ2VSZWdpc3RyYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgcmVnaXN0cmF0b3IudXAoKTtcbiAgfVxuXG4gIF9zZXR0aW5nczogTWFwU2V0dGluZ3MgPSBuZXcgTWFwU2V0dGluZ3MoKTtcblxuICBASW5wdXQoKSBzZXQgc2V0dGluZ3ModmFsdWU6IE1hcFNldHRpbmdzIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB0aGlzLl9zZXR0aW5ncy5pc1NhbWUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5fc2V0dGluZ3MgPSB2YWx1ZTtcbiAgICB0aGlzLnNldE9zbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplTWFwKCkge1xuICAgIHVzZUdlb2dyYXBoaWMoKTtcbiAgICB0aGlzLm1hcCA9IHRoaXMubWFwRmFjdG9yeS5idWlsZCh0aGlzLl9zZXR0aW5ncyk7XG4gICAgdGhpcy5tYXAuc2V0VGFyZ2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLmRldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLm1hcC5vbmNlKCdwb3N0cmVuZGVyJywgKCkgPT4ge1xuICAgICAgdGhpcy5tYXAudXBkYXRlU2l6ZSgpO1xuICAgICAgdGhpcy5wb3N0Ym95LmZpcmUobmV3IE1hcFJlbmRlcmVkRXZlbnQodGhpcy5tYXApKTtcbiAgICB9KTtcbiAgICB0aGlzLm1hcC5vbigncG9pbnRlcm1vdmUnLCAoZXYpID0+IHtcbiAgICAgIHRoaXMucG9zdGJveS5maXJlKG5ldyBNYXBQb2ludGVyTW92ZUV2ZW50KGV2LnBpeGVsKSk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRPc20oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBtYXBDb250YWluZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0IGNoZWNrQ29udGFpbmVyU2l6ZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gbWFwQ29udGFpbmVyO1xuICAgICAgaWYgKGNsaWVudFdpZHRoID4gMCAmJiBjbGllbnRIZWlnaHQgPiAwKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU1hcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIk1hcCdzIGNvbnRhaW5lciBpcyBub3QgcmVuZGVyZWQgeWV0IG9yIGhhcyB6ZXJvIHNpemUuIFRyeWluZyBhZ2FpbiBpbiAxMDAgbXMuXCIpO1xuICAgICAgICBzZXRUaW1lb3V0KGNoZWNrQ29udGFpbmVyU2l6ZSwgMjAgKiArK3RoaXMucmVuZGVyVHJ5Q291bnQpOyAvLyDQn9GA0L7QstC10YDQutCwINC60LDQttC00YvQtSAxMDAg0LzRgVxuICAgICAgfVxuICAgIH07XG5cbiAgICBjaGVja0NvbnRhaW5lclNpemUoKTtcbiAgfVxuXG4gIG9uRGVzdHJveSA9ICgpID0+IHtcbiAgICB0aGlzLnJlZ2lzdHJhdG9yLmRvd24oKTtcbiAgfTtcblxuICBwcml2YXRlIHNldE9zbSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWFwKSByZXR1cm47XG4gICAgdGhpcy5vc21VcmwgPSBgaHR0cHM6Ly9tdHswLTN9Lmdvb2dsZS5jb20vdnQvbHlycz0ke01hcEx5cnNMYWJlbC5nZXQodGhpcy5fc2V0dGluZ3MubHlycyl9JmhsPSR7XG4gICAgICB0aGlzLl9zZXR0aW5ncy5sYW5ndWFnZVxuICAgIH0meD17eH0meT17eX0mej17en1gO1xuICAgIHRoaXMuZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHRoaXMubWFwLnVwZGF0ZVNpemUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRSZWYoKVwiPiA8L25nLWNvbnRhaW5lcj5cclxuPGFydC1vc20tdGlsZS1sYXllciAqbmdJZj1cIm9zbVVybCAmJiBtYXBcIiBbbWFwXT1cIm1hcFwiIFt1cmxdPVwib3NtVXJsXCIgW29wYWNpdHldPVwiX3NldHRpbmdzLm9zbU9wYWNpdHlcIj48L2FydC1vc20tdGlsZS1sYXllcj5cclxuPGFydC1mZWF0dXJlLWxheWVyICpuZ0lmPVwibWFwXCIgW3NldHRpbmdzXT1cImRyYXdpbmdMYXllclNldHRpbmdzXCI+PC9hcnQtZmVhdHVyZS1sYXllcj5cclxuIl19