@mapsight/lib-ol 4.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 (237) hide show
  1. package/README.md +20 -0
  2. package/dist/coordinate/add.d.ts +3 -0
  3. package/dist/coordinate/add.d.ts.map +1 -0
  4. package/dist/coordinate/add.js +8 -0
  5. package/dist/coordinate/add.js.map +1 -0
  6. package/dist/coordinate/addPixelPadding.d.ts +10 -0
  7. package/dist/coordinate/addPixelPadding.d.ts.map +1 -0
  8. package/dist/coordinate/addPixelPadding.js +13 -0
  9. package/dist/coordinate/addPixelPadding.js.map +1 -0
  10. package/dist/coordinate/fromPixel.d.ts +3 -0
  11. package/dist/coordinate/fromPixel.d.ts.map +1 -0
  12. package/dist/coordinate/fromPixel.js +8 -0
  13. package/dist/coordinate/fromPixel.js.map +1 -0
  14. package/dist/coordinate/scale.d.ts +3 -0
  15. package/dist/coordinate/scale.d.ts.map +1 -0
  16. package/dist/coordinate/scale.js +5 -0
  17. package/dist/coordinate/scale.js.map +1 -0
  18. package/dist/coordinate/toPixel.d.ts +3 -0
  19. package/dist/coordinate/toPixel.d.ts.map +1 -0
  20. package/dist/coordinate/toPixel.js +8 -0
  21. package/dist/coordinate/toPixel.js.map +1 -0
  22. package/dist/coordinates/equals.d.ts +3 -0
  23. package/dist/coordinates/equals.d.ts.map +1 -0
  24. package/dist/coordinates/equals.js +5 -0
  25. package/dist/coordinates/equals.js.map +1 -0
  26. package/dist/coordinates/middleCoordinate.d.ts +3 -0
  27. package/dist/coordinates/middleCoordinate.d.ts.map +1 -0
  28. package/dist/coordinates/middleCoordinate.js +5 -0
  29. package/dist/coordinates/middleCoordinate.js.map +1 -0
  30. package/dist/events/condition/clickOnFeature.d.ts +9 -0
  31. package/dist/events/condition/clickOnFeature.d.ts.map +1 -0
  32. package/dist/events/condition/clickOnFeature.js +10 -0
  33. package/dist/events/condition/clickOnFeature.js.map +1 -0
  34. package/dist/extent/getCentroid.d.ts +6 -0
  35. package/dist/extent/getCentroid.d.ts.map +1 -0
  36. package/dist/extent/getCentroid.js +9 -0
  37. package/dist/extent/getCentroid.js.map +1 -0
  38. package/dist/extent/isFiniteExtent.d.ts +3 -0
  39. package/dist/extent/isFiniteExtent.d.ts.map +1 -0
  40. package/dist/extent/isFiniteExtent.js +4 -0
  41. package/dist/extent/isFiniteExtent.js.map +1 -0
  42. package/dist/extents/combineExtents.d.ts +3 -0
  43. package/dist/extents/combineExtents.d.ts.map +1 -0
  44. package/dist/extents/combineExtents.js +9 -0
  45. package/dist/extents/combineExtents.js.map +1 -0
  46. package/dist/feature/animator.d.ts +9 -0
  47. package/dist/feature/animator.d.ts.map +1 -0
  48. package/dist/feature/animator.js +33 -0
  49. package/dist/feature/animator.js.map +1 -0
  50. package/dist/feature/cluster.d.ts +8 -0
  51. package/dist/feature/cluster.d.ts.map +1 -0
  52. package/dist/feature/cluster.js +50 -0
  53. package/dist/feature/cluster.js.map +1 -0
  54. package/dist/feature/detectFeatureHits.d.ts +11 -0
  55. package/dist/feature/detectFeatureHits.d.ts.map +1 -0
  56. package/dist/feature/detectFeatureHits.js +34 -0
  57. package/dist/feature/detectFeatureHits.js.map +1 -0
  58. package/dist/feature/ensureId.d.ts +3 -0
  59. package/dist/feature/ensureId.d.ts.map +1 -0
  60. package/dist/feature/ensureId.js +7 -0
  61. package/dist/feature/ensureId.js.map +1 -0
  62. package/dist/feature/getCentroid.d.ts +3 -0
  63. package/dist/feature/getCentroid.d.ts.map +1 -0
  64. package/dist/feature/getCentroid.js +13 -0
  65. package/dist/feature/getCentroid.js.map +1 -0
  66. package/dist/feature/getExtent.d.ts +3 -0
  67. package/dist/feature/getExtent.d.ts.map +1 -0
  68. package/dist/feature/getExtent.js +8 -0
  69. package/dist/feature/getExtent.js.map +1 -0
  70. package/dist/feature/getLayer.d.ts +4 -0
  71. package/dist/feature/getLayer.d.ts.map +1 -0
  72. package/dist/feature/getLayer.js +23 -0
  73. package/dist/feature/getLayer.js.map +1 -0
  74. package/dist/feature/getUid.d.ts +3 -0
  75. package/dist/feature/getUid.d.ts.map +1 -0
  76. package/dist/feature/getUid.js +5 -0
  77. package/dist/feature/getUid.js.map +1 -0
  78. package/dist/features/getCentroidForFeatures.d.ts +3 -0
  79. package/dist/features/getCentroidForFeatures.d.ts.map +1 -0
  80. package/dist/features/getCentroidForFeatures.js +7 -0
  81. package/dist/features/getCentroidForFeatures.js.map +1 -0
  82. package/dist/features/getExtentForFeatures.d.ts +3 -0
  83. package/dist/features/getExtentForFeatures.d.ts.map +1 -0
  84. package/dist/features/getExtentForFeatures.js +7 -0
  85. package/dist/features/getExtentForFeatures.js.map +1 -0
  86. package/dist/geometry/deriveGeometriesFromBase.d.ts +8 -0
  87. package/dist/geometry/deriveGeometriesFromBase.d.ts.map +1 -0
  88. package/dist/geometry/deriveGeometriesFromBase.js +69 -0
  89. package/dist/geometry/deriveGeometriesFromBase.js.map +1 -0
  90. package/dist/geometry/getDominantGeometryType.d.ts +4 -0
  91. package/dist/geometry/getDominantGeometryType.d.ts.map +1 -0
  92. package/dist/geometry/getDominantGeometryType.js +30 -0
  93. package/dist/geometry/getDominantGeometryType.js.map +1 -0
  94. package/dist/geometry/getLineStringSegmentVerticesWithRotation.d.ts +4 -0
  95. package/dist/geometry/getLineStringSegmentVerticesWithRotation.d.ts.map +1 -0
  96. package/dist/geometry/getLineStringSegmentVerticesWithRotation.js +28 -0
  97. package/dist/geometry/getLineStringSegmentVerticesWithRotation.js.map +1 -0
  98. package/dist/geometry/getPolygonRingSegmentVerticesWithRotation.d.ts +4 -0
  99. package/dist/geometry/getPolygonRingSegmentVerticesWithRotation.d.ts.map +1 -0
  100. package/dist/geometry/getPolygonRingSegmentVerticesWithRotation.js +49 -0
  101. package/dist/geometry/getPolygonRingSegmentVerticesWithRotation.js.map +1 -0
  102. package/dist/index.d.ts +52 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +2 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/map/animateDuringTransition.d.ts +4 -0
  107. package/dist/map/animateDuringTransition.d.ts.map +1 -0
  108. package/dist/map/animateDuringTransition.js +41 -0
  109. package/dist/map/animateDuringTransition.js.map +1 -0
  110. package/dist/map/canvasSizeFixer.d.ts +10 -0
  111. package/dist/map/canvasSizeFixer.d.ts.map +1 -0
  112. package/dist/map/canvasSizeFixer.js +35 -0
  113. package/dist/map/canvasSizeFixer.js.map +1 -0
  114. package/dist/map/containsExtentWithPadding.d.ts +5 -0
  115. package/dist/map/containsExtentWithPadding.d.ts.map +1 -0
  116. package/dist/map/containsExtentWithPadding.js +9 -0
  117. package/dist/map/containsExtentWithPadding.js.map +1 -0
  118. package/dist/map/fitToExtent.d.ts +10 -0
  119. package/dist/map/fitToExtent.d.ts.map +1 -0
  120. package/dist/map/fitToExtent.js +26 -0
  121. package/dist/map/fitToExtent.js.map +1 -0
  122. package/dist/map/fitToFeature.d.ts +17 -0
  123. package/dist/map/fitToFeature.d.ts.map +1 -0
  124. package/dist/map/fitToFeature.js +16 -0
  125. package/dist/map/fitToFeature.js.map +1 -0
  126. package/dist/map/fitToFeatures.d.ts +17 -0
  127. package/dist/map/fitToFeatures.d.ts.map +1 -0
  128. package/dist/map/fitToFeatures.js +11 -0
  129. package/dist/map/fitToFeatures.js.map +1 -0
  130. package/dist/map/getPaddedViewExtent.d.ts +5 -0
  131. package/dist/map/getPaddedViewExtent.d.ts.map +1 -0
  132. package/dist/map/getPaddedViewExtent.js +28 -0
  133. package/dist/map/getPaddedViewExtent.js.map +1 -0
  134. package/dist/map/getVisibleLayersFromFramestate.d.ts +5 -0
  135. package/dist/map/getVisibleLayersFromFramestate.d.ts.map +1 -0
  136. package/dist/map/getVisibleLayersFromFramestate.js +8 -0
  137. package/dist/map/getVisibleLayersFromFramestate.js.map +1 -0
  138. package/dist/map/updateSizeDuringTransition.d.ts +3 -0
  139. package/dist/map/updateSizeDuringTransition.d.ts.map +1 -0
  140. package/dist/map/updateSizeDuringTransition.js +7 -0
  141. package/dist/map/updateSizeDuringTransition.js.map +1 -0
  142. package/dist/map/updateSizeOnTransitionEnd.d.ts +3 -0
  143. package/dist/map/updateSizeOnTransitionEnd.d.ts.map +1 -0
  144. package/dist/map/updateSizeOnTransitionEnd.js +19 -0
  145. package/dist/map/updateSizeOnTransitionEnd.js.map +1 -0
  146. package/dist/points/findClosestPoint.d.ts +11 -0
  147. package/dist/points/findClosestPoint.d.ts.map +1 -0
  148. package/dist/points/findClosestPoint.js +32 -0
  149. package/dist/points/findClosestPoint.js.map +1 -0
  150. package/dist/points/spreadPointClusterInRadius.d.ts +14 -0
  151. package/dist/points/spreadPointClusterInRadius.d.ts.map +1 -0
  152. package/dist/points/spreadPointClusterInRadius.js +53 -0
  153. package/dist/points/spreadPointClusterInRadius.js.map +1 -0
  154. package/dist/style/bindStyleToGeometry.d.ts +4 -0
  155. package/dist/style/bindStyleToGeometry.d.ts.map +1 -0
  156. package/dist/style/bindStyleToGeometry.js +6 -0
  157. package/dist/style/bindStyleToGeometry.js.map +1 -0
  158. package/dist/style/createCachedStyleFunction.d.ts +45 -0
  159. package/dist/style/createCachedStyleFunction.d.ts.map +1 -0
  160. package/dist/style/createCachedStyleFunction.js +175 -0
  161. package/dist/style/createCachedStyleFunction.js.map +1 -0
  162. package/dist/style/declarationToGeometry.d.ts +3 -0
  163. package/dist/style/declarationToGeometry.d.ts.map +1 -0
  164. package/dist/style/declarationToGeometry.js +4 -0
  165. package/dist/style/declarationToGeometry.js.map +1 -0
  166. package/dist/style/declarationToStyle.d.ts +6 -0
  167. package/dist/style/declarationToStyle.d.ts.map +1 -0
  168. package/dist/style/declarationToStyle.js +167 -0
  169. package/dist/style/declarationToStyle.js.map +1 -0
  170. package/dist/style/styleFunction.d.ts +21 -0
  171. package/dist/style/styleFunction.d.ts.map +1 -0
  172. package/dist/style/styleFunction.js +13 -0
  173. package/dist/style/styleFunction.js.map +1 -0
  174. package/dist/tileGrid/getTileUrlsForExtent.d.ts +4 -0
  175. package/dist/tileGrid/getTileUrlsForExtent.d.ts.map +1 -0
  176. package/dist/tileGrid/getTileUrlsForExtent.js +23 -0
  177. package/dist/tileGrid/getTileUrlsForExtent.js.map +1 -0
  178. package/dist/view/centerOnFeature.d.ts +10 -0
  179. package/dist/view/centerOnFeature.d.ts.map +1 -0
  180. package/dist/view/centerOnFeature.js +12 -0
  181. package/dist/view/centerOnFeature.js.map +1 -0
  182. package/dist/view/centerOnFeatures.d.ts +8 -0
  183. package/dist/view/centerOnFeatures.d.ts.map +1 -0
  184. package/dist/view/centerOnFeatures.js +19 -0
  185. package/dist/view/centerOnFeatures.js.map +1 -0
  186. package/dist/view/getMinZoomFittingContentInView.d.ts +15 -0
  187. package/dist/view/getMinZoomFittingContentInView.d.ts.map +1 -0
  188. package/dist/view/getMinZoomFittingContentInView.js +29 -0
  189. package/dist/view/getMinZoomFittingContentInView.js.map +1 -0
  190. package/package.json +36 -0
  191. package/src/js/coordinate/add.ts +13 -0
  192. package/src/js/coordinate/addPixelPadding.ts +21 -0
  193. package/src/js/coordinate/fromPixel.ts +10 -0
  194. package/src/js/coordinate/scale.ts +7 -0
  195. package/src/js/coordinate/toPixel.ts +13 -0
  196. package/src/js/coordinates/equals.ts +6 -0
  197. package/src/js/coordinates/middleCoordinate.ts +7 -0
  198. package/src/js/events/condition/clickOnFeature.ts +13 -0
  199. package/src/js/extent/getCentroid.ts +14 -0
  200. package/src/js/extent/isFiniteExtent.ts +7 -0
  201. package/src/js/extents/combineExtents.ts +11 -0
  202. package/src/js/feature/animator.ts +91 -0
  203. package/src/js/feature/cluster.ts +86 -0
  204. package/src/js/feature/detectFeatureHits.ts +57 -0
  205. package/src/js/feature/ensureId.ts +9 -0
  206. package/src/js/feature/getCentroid.ts +18 -0
  207. package/src/js/feature/getExtent.ts +10 -0
  208. package/src/js/feature/getLayer.ts +39 -0
  209. package/src/js/feature/getUid.ts +6 -0
  210. package/src/js/features/getCentroidForFeatures.ts +10 -0
  211. package/src/js/features/getExtentForFeatures.ts +10 -0
  212. package/src/js/geometry/deriveGeometriesFromBase.ts +122 -0
  213. package/src/js/geometry/getDominantGeometryType.ts +40 -0
  214. package/src/js/geometry/getLineStringSegmentVerticesWithRotation.ts +48 -0
  215. package/src/js/geometry/getPolygonRingSegmentVerticesWithRotation.ts +90 -0
  216. package/src/js/index.ts +62 -0
  217. package/src/js/map/animateDuringTransition.ts +58 -0
  218. package/src/js/map/canvasSizeFixer.ts +46 -0
  219. package/src/js/map/containsExtentWithPadding.ts +17 -0
  220. package/src/js/map/fitToExtent.ts +45 -0
  221. package/src/js/map/fitToFeature.ts +29 -0
  222. package/src/js/map/fitToFeatures.ts +21 -0
  223. package/src/js/map/getPaddedViewExtent.ts +42 -0
  224. package/src/js/map/getVisibleLayersFromFramestate.ts +14 -0
  225. package/src/js/map/updateSizeDuringTransition.ts +9 -0
  226. package/src/js/map/updateSizeOnTransitionEnd.ts +28 -0
  227. package/src/js/points/findClosestPoint.ts +51 -0
  228. package/src/js/points/spreadPointClusterInRadius.ts +84 -0
  229. package/src/js/style/bindStyleToGeometry.ts +11 -0
  230. package/src/js/style/createCachedStyleFunction.ts +344 -0
  231. package/src/js/style/declarationToGeometry.ts +7 -0
  232. package/src/js/style/declarationToStyle.ts +277 -0
  233. package/src/js/style/styleFunction.ts +42 -0
  234. package/src/js/tileGrid/getTileUrlsForExtent.ts +41 -0
  235. package/src/js/view/centerOnFeature.ts +23 -0
  236. package/src/js/view/centerOnFeatures.ts +30 -0
  237. package/src/js/view/getMinZoomFittingContentInView.ts +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCentroidForFeatures.d.ts","sourceRoot":"","sources":["../../src/js/features/getCentroidForFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAOtC,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,YAEtE"}
@@ -0,0 +1,7 @@
1
+ import * as nonNull from "@mapsight/lib-js/nonNullable";
2
+ import middleCoordinate from "../coordinates/middleCoordinate";
3
+ import getCentroid from "../feature/getCentroid";
4
+ export default function getCentroidForFeatures(features) {
5
+ return middleCoordinate(features.map(getCentroid).filter(nonNull.is));
6
+ }
7
+ //# sourceMappingURL=getCentroidForFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCentroidForFeatures.js","sourceRoot":"","sources":["../../src/js/features/getCentroidForFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAExD,OAAO,gBAAgB,MAAM,iCAAiC,CAAC;AAC/D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,QAAwB;IACtE,OAAO,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type Feature from "ol/Feature";
2
+ export default function getExtentForFeatures(features: Array<Feature>): import("ol/extent").Extent;
3
+ //# sourceMappingURL=getExtentForFeatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtentForFeatures.d.ts","sourceRoot":"","sources":["../../src/js/features/getExtentForFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAOtC,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,8BAEpE"}
@@ -0,0 +1,7 @@
1
+ import * as nonNull from "@mapsight/lib-js/nonNullable";
2
+ import combineExtents from "../extents/combineExtents";
3
+ import getExtent from "../feature/getExtent";
4
+ export default function getExtentForFeatures(features) {
5
+ return combineExtents(features.map(getExtent).filter(nonNull.is));
6
+ }
7
+ //# sourceMappingURL=getExtentForFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getExtentForFeatures.js","sourceRoot":"","sources":["../../src/js/features/getExtentForFeatures.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAExD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,QAAwB;IACpE,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Type as GeometryType } from "ol/geom/Geometry";
2
+ import type Geometry from "ol/geom/Geometry";
3
+ export type GeometryWithMeta = [Geometry, {
4
+ rotation?: number;
5
+ }];
6
+ export type Derivation = "vertex" | "vertices" | "firstVertex" | "firstVertices" | "lastVertex" | "lastVertices" | "segmentStart" | "segmentStarts" | "intermediateSegmentStart" | "intermediateSegmentStarts" | "segmentEnd" | "segmentEnds" | "intermediateSegmentEnd" | "intermediateSegmentEnds";
7
+ export default function deriveGeometriesFromBase(base: Geometry, derivation?: Derivation | GeometryType | null): Array<GeometryWithMeta>;
8
+ //# sourceMappingURL=deriveGeometriesFromBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveGeometriesFromBase.d.ts","sourceRoot":"","sources":["../../src/js/geometry/deriveGeometriesFromBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,IAAI,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAS7C,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAoB/D,MAAM,MAAM,UAAU,GACnB,QAAQ,GACR,UAAU,GACV,aAAa,GACb,eAAe,GACf,YAAY,GACZ,cAAc,GACd,cAAc,GACd,eAAe,GACf,0BAA0B,GAC1B,2BAA2B,GAC3B,YAAY,GACZ,aAAa,GACb,wBAAwB,GACxB,yBAAyB,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC/C,IAAI,EAAE,QAAQ,EACd,UAAU,GAAE,UAAU,GAAG,YAAY,GAAG,IAAW,GACjD,KAAK,CAAC,gBAAgB,CAAC,CAwEzB"}
@@ -0,0 +1,69 @@
1
+ import LineString from "ol/geom/LineString";
2
+ import Point from "ol/geom/Point";
3
+ import Polygon from "ol/geom/Polygon";
4
+ import getLSSegmentVertices from "./getLineStringSegmentVerticesWithRotation";
5
+ import getPolygonSegmentVertices from "./getPolygonRingSegmentVerticesWithRotation";
6
+ const deriveLSVertexGeometries = (b, v, i) => getLSSegmentVertices(b, v, i).map(([c, r]) => [new Point(c), { rotation: r }]);
7
+ const derivePolygonVertexGeometries = (b, v, i, j) => getPolygonSegmentVertices(b, v, i, j).map(([c, r]) => [new Point(c), { rotation: r }]);
8
+ export default function deriveGeometriesFromBase(base, derivation = null) {
9
+ // early return for common case
10
+ if (derivation === null) {
11
+ return [[base, {}]];
12
+ }
13
+ if (base instanceof LineString) {
14
+ switch (derivation) {
15
+ case "vertex":
16
+ case "vertices":
17
+ return deriveLSVertexGeometries(base);
18
+ case "firstVertex":
19
+ case "firstVertices":
20
+ return deriveLSVertexGeometries(base, "first");
21
+ case "lastVertex":
22
+ case "lastVertices":
23
+ return deriveLSVertexGeometries(base, "last");
24
+ case "segmentStart":
25
+ case "segmentStarts":
26
+ return deriveLSVertexGeometries(base, "start");
27
+ case "intermediateSegmentStart":
28
+ case "intermediateSegmentStarts":
29
+ return deriveLSVertexGeometries(base, "start", "intermediate");
30
+ case "segmentEnd":
31
+ case "segmentEnds":
32
+ return deriveLSVertexGeometries(base, "end");
33
+ case "intermediateSegmentEnd":
34
+ case "intermediateSegmentEnds":
35
+ return deriveLSVertexGeometries(base, "end", "intermediate");
36
+ default:
37
+ }
38
+ }
39
+ else if (base instanceof Polygon) {
40
+ // TODO: discriminate outer and inner ring
41
+ switch (derivation) {
42
+ case "vertex":
43
+ case "vertices":
44
+ return derivePolygonVertexGeometries(base);
45
+ case "firstVertex":
46
+ case "firstVertices":
47
+ return derivePolygonVertexGeometries(base, "first");
48
+ case "lastVertex":
49
+ case "lastVertices":
50
+ return derivePolygonVertexGeometries(base, "last");
51
+ case "segmentStart":
52
+ case "segmentStarts":
53
+ return derivePolygonVertexGeometries(base, "start");
54
+ case "intermediateSegmentStart":
55
+ case "intermediateSegmentStarts":
56
+ return derivePolygonVertexGeometries(base, "start", "intermediate");
57
+ case "segmentEnd":
58
+ case "segmentEnds":
59
+ return derivePolygonVertexGeometries(base, "end");
60
+ case "intermediateSegmentEnd":
61
+ case "intermediateSegmentEnds":
62
+ return derivePolygonVertexGeometries(base, "end", "intermediate");
63
+ default:
64
+ }
65
+ }
66
+ console.error("Could not derive " + derivation + " from base geometry " + base);
67
+ return [[base, {}]];
68
+ }
69
+ //# sourceMappingURL=deriveGeometriesFromBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deriveGeometriesFromBase.js","sourceRoot":"","sources":["../../src/js/geometry/deriveGeometriesFromBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Type as GeometryType } from "ol/geom/Geometry";
2
+ import type Geometry from "ol/geom/Geometry";
3
+ export default function getDominantGeometryType(geometry: Geometry): undefined | GeometryType;
4
+ //# sourceMappingURL=getDominantGeometryType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDominantGeometryType.d.ts","sourceRoot":"","sources":["../../src/js/geometry/getDominantGeometryType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,IAAI,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAqB7C,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,QAAQ,EAAE,QAAQ,GAChB,SAAS,GAAG,YAAY,CAe1B"}
@@ -0,0 +1,30 @@
1
+ import GeometryCollection from "ol/geom/GeometryCollection";
2
+ import { isNonNullable } from "@mapsight/lib-js/nonNullable";
3
+ const GEOMETRY_TYPE_DOMINANCE = {
4
+ GeometryCollection: 0,
5
+ Circle: 1,
6
+ Point: 1,
7
+ LineString: 2,
8
+ LinearRing: 2,
9
+ MultiPoint: 2,
10
+ Polygon: 3,
11
+ MultiLineString: 3,
12
+ MultiPolygon: 4,
13
+ };
14
+ function getGeometryTypeDominance(geometryType) {
15
+ return GEOMETRY_TYPE_DOMINANCE[geometryType] ?? 0;
16
+ }
17
+ export default function getDominantGeometryType(geometry) {
18
+ if (geometry instanceof GeometryCollection) {
19
+ const types = geometry
20
+ .getGeometries()
21
+ .map(getDominantGeometryType)
22
+ .filter(isNonNullable);
23
+ types.sort((a, b) =>
24
+ // TODO: use compare helper
25
+ getGeometryTypeDominance(b) - getGeometryTypeDominance(a));
26
+ return types[0];
27
+ }
28
+ return geometry.getType();
29
+ }
30
+ //# sourceMappingURL=getDominantGeometryType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDominantGeometryType.js","sourceRoot":"","sources":["../../src/js/geometry/getDominantGeometryType.ts"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,MAAM,uBAAuB,GAAiC;IAC7D,kBAAkB,EAAE,CAAC;IACrB,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,OAAO,EAAE,CAAC;IACV,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,CAAC;CACf,CAAC;AAEF,SAAS,wBAAwB,CAAC,YAA0B;IAC3D,OAAO,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,QAAkB;IAElB,IAAI,QAAQ,YAAY,kBAAkB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,QAAQ;aACpB,aAAa,EAAE;aACf,GAAG,CAAC,uBAAuB,CAAC;aAC5B,MAAM,CAAC,aAAa,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CACT,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACR,2BAA2B;QAC3B,wBAAwB,CAAC,CAAC,CAAC,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAC1D,CAAC;QACF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type LineString from "ol/geom/LineString";
2
+ import type { INTERMEDIATE_FILTER, VERTICES_FILTER, Vertex } from "../index";
3
+ export default function getLineStringSegmentVerticesWithRotation(lineStringGeometry: LineString, verticesFilter?: VERTICES_FILTER, intermediateFilter?: INTERMEDIATE_FILTER): Vertex[];
4
+ //# sourceMappingURL=getLineStringSegmentVerticesWithRotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineStringSegmentVerticesWithRotation.d.ts","sourceRoot":"","sources":["../../src/js/geometry/getLineStringSegmentVerticesWithRotation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EAAC,mBAAmB,EAAE,eAAe,EAAE,MAAM,EAAC,MAAM,UAAU,CAAC;AAE3E,MAAM,CAAC,OAAO,UAAU,wCAAwC,CAC/D,kBAAkB,EAAE,UAAU,EAC9B,cAAc,GAAE,eAAuB,EACvC,kBAAkB,GAAE,mBAA2B,YAqC/C"}
@@ -0,0 +1,28 @@
1
+ import { ensureNonNullable } from "@mapsight/lib-js/nonNullable";
2
+ import equals from "../coordinates/equals";
3
+ export default function getLineStringSegmentVerticesWithRotation(lineStringGeometry, verticesFilter = "all", intermediateFilter = "all") {
4
+ const verticesWithRotation = [];
5
+ const first = lineStringGeometry.getFirstCoordinate();
6
+ const last = lineStringGeometry.getLastCoordinate();
7
+ lineStringGeometry.forEachSegment(function processSegment(start, end) {
8
+ const dx = ensureNonNullable(end[0]) - ensureNonNullable(start[0]);
9
+ const dy = ensureNonNullable(end[1]) - ensureNonNullable(start[1]);
10
+ const rotation = -Math.round(Math.atan2(dy, dx) * 100) / 100;
11
+ if (verticesFilter === "first"
12
+ ? equals(start, first)
13
+ : (verticesFilter === "start" || verticesFilter === "all") &&
14
+ !(intermediateFilter === "intermediate" &&
15
+ equals(start, first))) {
16
+ verticesWithRotation.push([[...start], rotation]);
17
+ }
18
+ if (verticesFilter === "last"
19
+ ? equals(end, last)
20
+ : (verticesFilter === "end" || verticesFilter === "all") &&
21
+ !(intermediateFilter === "intermediate" &&
22
+ equals(end, last))) {
23
+ verticesWithRotation.push([[...end], rotation]);
24
+ }
25
+ });
26
+ return verticesWithRotation;
27
+ }
28
+ //# sourceMappingURL=getLineStringSegmentVerticesWithRotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLineStringSegmentVerticesWithRotation.js","sourceRoot":"","sources":["../../src/js/geometry/getLineStringSegmentVerticesWithRotation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAE/D,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAG3C,MAAM,CAAC,OAAO,UAAU,wCAAwC,CAC/D,kBAA8B,EAC9B,iBAAkC,KAAK,EACvC,qBAA0C,KAAK;IAE/C,MAAM,oBAAoB,GAAkB,EAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;IAEpD,kBAAkB,CAAC,cAAc,CAAC,SAAS,cAAc,CAAC,KAAK,EAAE,GAAG;QACnE,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAE7D,IACC,cAAc,KAAK,OAAO;YACzB,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;YACtB,CAAC,CAAC,CAAC,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,KAAK,CAAC;gBACzD,CAAC,CACA,kBAAkB,KAAK,cAAc;oBACrC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CACpB,EACF,CAAC;YACF,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IACC,cAAc,KAAK,MAAM;YACxB,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;YACnB,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,CAAC;gBACvD,CAAC,CACA,kBAAkB,KAAK,cAAc;oBACrC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CACjB,EACF,CAAC;YACF,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type Polygon from "ol/geom/Polygon";
2
+ import type { INTERMEDIATE_FILTER, RING_FILTER, VERTICES_FILTER, Vertex } from "../index";
3
+ export default function getPolygonRingSegmentVerticesWithRotation(polygonGeometry: Polygon, verticesFilter?: VERTICES_FILTER, intermediateFilter?: INTERMEDIATE_FILTER, ringFilter?: RING_FILTER): Vertex[];
4
+ //# sourceMappingURL=getPolygonRingSegmentVerticesWithRotation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPolygonRingSegmentVerticesWithRotation.d.ts","sourceRoot":"","sources":["../../src/js/geometry/getPolygonRingSegmentVerticesWithRotation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAI3C,OAAO,KAAK,EACX,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,MAAM,EACN,MAAM,UAAU,CAAC;AA6ClB,MAAM,CAAC,OAAO,UAAU,yCAAyC,CAChE,eAAe,EAAE,OAAO,EACxB,cAAc,GAAE,eAAuB,EACvC,kBAAkB,GAAE,mBAA2B,EAC/C,UAAU,GAAE,WAAmB,YA8B/B"}
@@ -0,0 +1,49 @@
1
+ import { ensureNonNullable } from "@mapsight/lib-js/nonNullable";
2
+ function getLinearRingSegmentVerticesWithRotation(linearRing, verticesFilter, intermediateFilter) {
3
+ const verticesWithRotation = [];
4
+ const ringCoords = linearRing.getCoordinates();
5
+ ringCoords.forEach((start, i) => {
6
+ const end = ringCoords[i + 1];
7
+ if (!end) {
8
+ return;
9
+ }
10
+ const isFirst = i === 0;
11
+ const isLast = ringCoords[i + 2] === undefined;
12
+ const dx = ensureNonNullable(end[0]) - ensureNonNullable(start[0]);
13
+ const dy = ensureNonNullable(end[1]) - ensureNonNullable(start[1]);
14
+ const rotation = -Math.round(Math.atan2(dy, dx) * 100) / 100;
15
+ if (verticesFilter === "first"
16
+ ? isFirst
17
+ : (verticesFilter === "start" || verticesFilter === "all") &&
18
+ !(intermediateFilter === "intermediate" && isFirst)) {
19
+ verticesWithRotation.push([[...start], rotation]);
20
+ }
21
+ if (verticesFilter === "last"
22
+ ? isLast
23
+ : (verticesFilter === "end" || verticesFilter === "all") &&
24
+ !(intermediateFilter === "intermediate" && isLast)) {
25
+ verticesWithRotation.push([[...end], rotation]);
26
+ }
27
+ });
28
+ return verticesWithRotation;
29
+ }
30
+ export default function getPolygonRingSegmentVerticesWithRotation(polygonGeometry, verticesFilter = "all", intermediateFilter = "all", ringFilter = "all") {
31
+ let verticesWithRotation = [];
32
+ if (ringFilter === "all" || ringFilter === "outer") {
33
+ const outerRing = polygonGeometry.getLinearRing(0);
34
+ if (outerRing) {
35
+ verticesWithRotation = getLinearRingSegmentVerticesWithRotation(outerRing, verticesFilter, intermediateFilter);
36
+ }
37
+ }
38
+ if (ringFilter === "all" || ringFilter === "inner") {
39
+ const innerRing = polygonGeometry.getLinearRing(1);
40
+ if (innerRing) {
41
+ verticesWithRotation = [
42
+ ...verticesWithRotation,
43
+ ...getLinearRingSegmentVerticesWithRotation(innerRing, verticesFilter, intermediateFilter),
44
+ ];
45
+ }
46
+ }
47
+ return verticesWithRotation;
48
+ }
49
+ //# sourceMappingURL=getPolygonRingSegmentVerticesWithRotation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPolygonRingSegmentVerticesWithRotation.js","sourceRoot":"","sources":["../../src/js/geometry/getPolygonRingSegmentVerticesWithRotation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAS/D,SAAS,wCAAwC,CAChD,UAAsB,EACtB,cAA+B,EAC/B,kBAAuC;IAEvC,MAAM,oBAAoB,GAAkB,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;IAE/C,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC;QAE/C,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAE7D,IACC,cAAc,KAAK,OAAO;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,KAAK,CAAC;gBACzD,CAAC,CAAC,kBAAkB,KAAK,cAAc,IAAI,OAAO,CAAC,EACpD,CAAC;YACF,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,IACC,cAAc,KAAK,MAAM;YACxB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,IAAI,cAAc,KAAK,KAAK,CAAC;gBACvD,CAAC,CAAC,kBAAkB,KAAK,cAAc,IAAI,MAAM,CAAC,EACnD,CAAC;YACF,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjD,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,yCAAyC,CAChE,eAAwB,EACxB,iBAAkC,KAAK,EACvC,qBAA0C,KAAK,EAC/C,aAA0B,KAAK;IAE/B,IAAI,oBAAoB,GAAkB,EAAE,CAAC;IAE7C,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACf,oBAAoB,GAAG,wCAAwC,CAC9D,SAAS,EACT,cAAc,EACd,kBAAkB,CAClB,CAAC;QACH,CAAC;IACF,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACf,oBAAoB,GAAG;gBACtB,GAAG,oBAAoB;gBACvB,GAAG,wCAAwC,CAC1C,SAAS,EACT,cAAc,EACd,kBAAkB,CAClB;aACD,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { Coordinate } from "ol/coordinate";
2
+ import type { Type as GeometryType } from "ol/geom/Geometry";
3
+ import type Image from "ol/style/Image";
4
+ import type Style from "ol/style/Style";
5
+ import type { Derivation } from "./geometry/deriveGeometriesFromBase";
6
+ export type StyleLiteral = {
7
+ [styleKey: string]: number | boolean | string | Style | null;
8
+ } & {
9
+ image?: Image | null;
10
+ anchor?: Array<number>;
11
+ size?: Array<number>;
12
+ imgSize?: Array<number>;
13
+ offset?: Array<number>;
14
+ color?: [number, number, number, number];
15
+ lineDash?: Array<number>;
16
+ };
17
+ export type UnitStyleValue = `${string}px` | `${string}%` | null;
18
+ export type BoolishStyleValue = boolean | 1 | 0 | "1" | "0" | "true" | "false" | null;
19
+ export type NumberArrayStyleValue = Array<string | number> | string;
20
+ export type NoneAble<T> = "unset" | "none" | T;
21
+ export type StyleType = "circle" | "icon" | "stroke" | "fill" | "text";
22
+ export type StyleValues = Record<string, {
23
+ value: string | number;
24
+ }>;
25
+ export type NoneAbleStyleValues = {
26
+ value?: "none" | "unset";
27
+ } | StyleValues;
28
+ export type StyleDeclaration = NoneAbleStyleValues | Partial<Record<StyleType, NoneAbleStyleValues>>;
29
+ export type RootStyleDeclaration = {
30
+ display?: {
31
+ value: "none";
32
+ };
33
+ image?: {
34
+ type: {
35
+ value: "icon" | "circle";
36
+ };
37
+ };
38
+ geometry?: {
39
+ value: GeometryType | Derivation;
40
+ };
41
+ zIndex?: {
42
+ value: number;
43
+ };
44
+ } & Partial<Record<StyleType, StyleDeclaration>>;
45
+ export type GroupedRootStyleDeclaration = Record<string, RootStyleDeclaration>;
46
+ export type Padding = [number, number, number, number];
47
+ export type Resolution = number;
48
+ export type Vertex = [Coordinate, number];
49
+ export type VERTICES_FILTER = "all" | "first" | "start" | "last" | "end";
50
+ export type INTERMEDIATE_FILTER = "all" | "intermediate";
51
+ export type RING_FILTER = "all" | "inner" | "outer";
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/js/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type OlMap from "ol/Map";
2
+ export type AnimateFunction = (deltaT: number) => void | boolean;
3
+ export default function animateDuringTransition(map: OlMap, render: AnimateFunction, maxTime?: number): boolean;
4
+ //# sourceMappingURL=animateDuringTransition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animateDuringTransition.d.ts","sourceRoot":"","sources":["../../src/js/map/animateDuringTransition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;AA0BjE,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,eAAe,EACvB,OAAO,SAAQ,WAyBf"}
@@ -0,0 +1,41 @@
1
+ function hasTransitionEndEvent() {
2
+ const el = document.createElement("fakeelement");
3
+ return el.style.transition !== undefined;
4
+ }
5
+ function animationLoop(render) {
6
+ let running = true;
7
+ let lastFrame = +new Date();
8
+ function loop(now) {
9
+ // stop the loop if render returned false
10
+ if (running) {
11
+ window.requestAnimationFrame(loop);
12
+ const deltaT = now - lastFrame;
13
+ if (deltaT < 160) {
14
+ running = render(deltaT) || running;
15
+ }
16
+ lastFrame = now;
17
+ }
18
+ }
19
+ loop(lastFrame);
20
+ }
21
+ export default function animateDuringTransition(map, render, maxTime = 10000) {
22
+ const hasTransitionEvent = hasTransitionEndEvent();
23
+ if (!hasTransitionEvent || !window.requestAnimationFrame) {
24
+ return false;
25
+ }
26
+ const targetElement = map.getTargetElement();
27
+ if (!targetElement) {
28
+ return false;
29
+ }
30
+ let isTransitionRunning = true;
31
+ const maxTimeTimeout = setTimeout(endAnimation, maxTime);
32
+ function endAnimation() {
33
+ isTransitionRunning = false;
34
+ clearTimeout(maxTimeTimeout);
35
+ targetElement.removeEventListener("transitionend", endAnimation);
36
+ }
37
+ animationLoop((deltaT) => render(deltaT) !== false && isTransitionRunning);
38
+ targetElement.addEventListener("transitionend", endAnimation);
39
+ return true;
40
+ }
41
+ //# sourceMappingURL=animateDuringTransition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animateDuringTransition.js","sourceRoot":"","sources":["../../src/js/map/animateDuringTransition.ts"],"names":[],"mappings":"AAKA,SAAS,qBAAqB;IAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,MAAuB;IAC7C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAE5B,SAAS,IAAI,CAAC,GAAW;QACxB,yCAAyC;QACzC,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;YAC/B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBAClB,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC;YACrC,CAAC;YACD,SAAS,GAAG,GAAG,CAAC;QACjB,CAAC;IACF,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC9C,GAAU,EACV,MAAuB,EACvB,OAAO,GAAG,KAAK;IAEf,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAEzD,SAAS,YAAY;QACpB,mBAAmB,GAAG,KAAK,CAAC;QAC5B,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,aAAa,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IAED,aAAa,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,mBAAmB,CAAC,CAAC;IAC3E,aAAa,CAAC,gBAAgB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IAE9D,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type OlMap from "ol/Map";
2
+ /**
3
+ * This updates the canvas size attribute (width/height) after composition.
4
+ * This is used in combination with anchored viewport pattern to make panels
5
+ * transition into the viewport possible without the map jumping around.
6
+ *
7
+ * @param map map
8
+ */
9
+ export default function canvasSizeFixer(map: OlMap): void;
10
+ //# sourceMappingURL=canvasSizeFixer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasSizeFixer.d.ts","sourceRoot":"","sources":["../../src/js/map/canvasSizeFixer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAG,EAAE,KAAK,QAoCjD"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * This updates the canvas size attribute (width/height) after composition.
3
+ * This is used in combination with anchored viewport pattern to make panels
4
+ * transition into the viewport possible without the map jumping around.
5
+ *
6
+ * @param map map
7
+ */
8
+ export default function canvasSizeFixer(map) {
9
+ let canvases = [];
10
+ function updateCanvasSize() {
11
+ const size = map.getSize();
12
+ if (!size) {
13
+ return;
14
+ }
15
+ const width = size[0] + "px";
16
+ const height = size[1] + "px";
17
+ canvases.forEach((canvas) => {
18
+ if (canvas.style.width !== width ||
19
+ canvas.style.height !== height) {
20
+ canvas.style.width = width;
21
+ canvas.style.height = height;
22
+ }
23
+ });
24
+ }
25
+ function updateTargetCanvases() {
26
+ const targetElement = map.getTargetElement();
27
+ if (targetElement) {
28
+ canvases = Array.from(targetElement.querySelectorAll(".ol-viewport canvas"));
29
+ }
30
+ }
31
+ map.on("change:target", updateTargetCanvases);
32
+ updateTargetCanvases();
33
+ map.on("postcompose", updateCanvasSize);
34
+ }
35
+ //# sourceMappingURL=canvasSizeFixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasSizeFixer.js","sourceRoot":"","sources":["../../src/js/map/canvasSizeFixer.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,GAAU;IACjD,IAAI,QAAQ,GAA6B,EAAE,CAAC;IAE5C,SAAS,gBAAgB;QACxB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAE9B,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3B,IACC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK;gBAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,EAC7B,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9B,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,oBAAoB;QAC5B,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,aAAa,EAAE,CAAC;YACnB,QAAQ,GAAG,KAAK,CAAC,IAAI,CACpB,aAAa,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CACrD,CAAC;QACH,CAAC;IACF,CAAC;IAED,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IAC9C,oBAAoB,EAAE,CAAC;IAEvB,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type OlMap from "ol/Map";
2
+ import type { Extent } from "ol/extent";
3
+ import type { Padding } from "../index";
4
+ export default function containsExtentWithPadding(map: OlMap, extent: Extent, padding?: Padding): boolean | null;
5
+ //# sourceMappingURL=containsExtentWithPadding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containsExtentWithPadding.d.ts","sourceRoot":"","sources":["../../src/js/map/containsExtentWithPadding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAGtC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGtC,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAChD,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,kBAMjB"}
@@ -0,0 +1,9 @@
1
+ import { containsExtent } from "ol/extent";
2
+ import getPaddedViewExtent from "./getPaddedViewExtent";
3
+ export default function containsExtentWithPadding(map, extent, padding) {
4
+ const viewExtent = padding
5
+ ? getPaddedViewExtent(map, padding)
6
+ : map.getView().calculateExtent(map.getSize());
7
+ return viewExtent && containsExtent(viewExtent, extent);
8
+ }
9
+ //# sourceMappingURL=containsExtentWithPadding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containsExtentWithPadding.js","sourceRoot":"","sources":["../../src/js/map/containsExtentWithPadding.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,WAAW,CAAC;AAGzC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAChD,GAAU,EACV,MAAc,EACd,OAAiB;IAEjB,MAAM,UAAU,GAAG,OAAO;QACzB,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC;QACnC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,OAAO,UAAU,IAAI,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type OlMap from "ol/Map";
2
+ import type { FitOptions } from "ol/View";
3
+ import type { Extent } from "ol/extent";
4
+ export type ExtendedFitOptions = FitOptions & {
5
+ keepZoom: boolean;
6
+ skipIfInView: boolean;
7
+ };
8
+ export declare const DEFAULT_OPTIONS: ExtendedFitOptions;
9
+ export default function fitToExtent(map: OlMap, extent: Extent, options?: ExtendedFitOptions): void;
10
+ //# sourceMappingURL=fitToExtent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitToExtent.d.ts","sourceRoot":"","sources":["../../src/js/map/fitToExtent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAMtC,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,kBAM7B,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,GAAG,EAAE,KAAK,EACV,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,kBAAoC,QAkB7C"}
@@ -0,0 +1,26 @@
1
+ import isFiniteExtent from "../extent/isFiniteExtent";
2
+ import containsExtentWithPadding from "./containsExtentWithPadding";
3
+ export const DEFAULT_OPTIONS = {
4
+ duration: 300, // TODO: MAGIC NUMBER!
5
+ padding: [60, 100, 60, 100], // TODO: MAGIC NUMBER!
6
+ keepZoom: false, // TODO: Document keepZoom option!
7
+ maxZoom: 17, // TODO: MAGIC NUMBER!
8
+ skipIfInView: true, // TODO: Document skipIfInView option!
9
+ };
10
+ // TODO: Document keepZoom option!
11
+ // TODO: Document skipIfInView option!
12
+ export default function fitToExtent(map, extent, options = DEFAULT_OPTIONS) {
13
+ if (!isFiniteExtent(extent)) {
14
+ return;
15
+ }
16
+ const padding = (options.padding || [0, 0, 0, 0]);
17
+ if (options.skipIfInView === false ||
18
+ !containsExtentWithPadding(map, extent, padding)) {
19
+ const view = map.getView();
20
+ view.fit(extent, {
21
+ ...options,
22
+ maxZoom: options.keepZoom ? view.getZoom() : options.maxZoom,
23
+ });
24
+ }
25
+ }
26
+ //# sourceMappingURL=fitToExtent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitToExtent.js","sourceRoot":"","sources":["../../src/js/map/fitToExtent.ts"],"names":[],"mappings":"AAIA,OAAO,cAAc,MAAM,0BAA0B,CAAC;AAEtD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAOpE,MAAM,CAAC,MAAM,eAAe,GAAuB;IAClD,QAAQ,EAAE,GAAG,EAAE,sBAAsB;IACrC,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,sBAAsB;IACnD,QAAQ,EAAE,KAAK,EAAE,kCAAkC;IACnD,OAAO,EAAE,EAAE,EAAE,sBAAsB;IACnC,YAAY,EAAE,IAAI,EAAE,sCAAsC;CAC1D,CAAC;AAEF,kCAAkC;AAClC,sCAAsC;AACtC,MAAM,CAAC,OAAO,UAAU,WAAW,CAClC,GAAU,EACV,MAAc,EACd,UAA8B,eAAe;IAE7C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAY,CAAC;IAE7D,IACC,OAAO,CAAC,YAAY,KAAK,KAAK;QAC9B,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAC/C,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YAChB,GAAG,OAAO;YACV,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;SAC5D,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type Feature from "ol/Feature";
2
+ import type OlMap from "ol/Map";
3
+ import type { ExtendedFitOptions } from "./fitToExtent";
4
+ export declare const DEFAULT_OPTIONS: {
5
+ size?: import("ol/size").Size | undefined;
6
+ padding?: number[] | undefined;
7
+ nearest?: boolean | undefined;
8
+ minResolution?: number | undefined;
9
+ maxZoom?: number | undefined;
10
+ duration?: number | undefined;
11
+ easing?: ((arg0: number) => number) | undefined;
12
+ callback?: ((arg0: boolean) => void) | undefined;
13
+ keepZoom: boolean;
14
+ skipIfInView: boolean;
15
+ };
16
+ export default function fitToFeature(map: OlMap, feature: Feature, options?: ExtendedFitOptions): void;
17
+ //# sourceMappingURL=fitToFeature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitToFeature.d.ts","sourceRoot":"","sources":["../../src/js/map/fitToFeature.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAKtD,eAAO,MAAM,eAAe;;;;;;;;;;;CAA4B,CAAC;AAIzD,MAAM,CAAC,OAAO,UAAU,YAAY,CACnC,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,kBAAoC,QAY7C"}
@@ -0,0 +1,16 @@
1
+ import getExtent from "../feature/getExtent";
2
+ import fitToExtent, { DEFAULT_OPTIONS as DEFAULT_OPTIONS_BASE, } from "./fitToExtent";
3
+ export const DEFAULT_OPTIONS = { ...DEFAULT_OPTIONS_BASE };
4
+ // TODO: Document keepZoom option!
5
+ // TODO: Document skipIfInView option!
6
+ export default function fitToFeature(map, feature, options = DEFAULT_OPTIONS) {
7
+ if (!feature) {
8
+ return;
9
+ }
10
+ const extent = getExtent(feature);
11
+ if (!extent) {
12
+ return;
13
+ }
14
+ fitToExtent(map, extent, options);
15
+ }
16
+ //# sourceMappingURL=fitToFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitToFeature.js","sourceRoot":"","sources":["../../src/js/map/fitToFeature.ts"],"names":[],"mappings":"AAGA,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,OAAO,WAAW,EAAE,EACnB,eAAe,IAAI,oBAAoB,GACvC,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,EAAC,GAAG,oBAAoB,EAAC,CAAC;AAEzD,kCAAkC;AAClC,sCAAsC;AACtC,MAAM,CAAC,OAAO,UAAU,YAAY,CACnC,GAAU,EACV,OAAgB,EAChB,UAA8B,eAAe;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type Feature from "ol/Feature";
2
+ import type OlMap from "ol/Map";
3
+ import type { ExtendedFitOptions } from "./fitToExtent";
4
+ export declare const DEFAULT_OPTIONS: {
5
+ size?: import("ol/size").Size | undefined;
6
+ padding?: number[] | undefined;
7
+ nearest?: boolean | undefined;
8
+ minResolution?: number | undefined;
9
+ maxZoom?: number | undefined;
10
+ duration?: number | undefined;
11
+ easing?: ((arg0: number) => number) | undefined;
12
+ callback?: ((arg0: boolean) => void) | undefined;
13
+ keepZoom: boolean;
14
+ skipIfInView: boolean;
15
+ };
16
+ export default function fitToFeatures(map: OlMap, features: Array<Feature>, options?: ExtendedFitOptions): void;
17
+ //# sourceMappingURL=fitToFeatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fitToFeatures.d.ts","sourceRoot":"","sources":["../../src/js/map/fitToFeatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAItD,eAAO,MAAM,eAAe;;;;;;;;;;;CAAsC,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,aAAa,CACpC,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,EACxB,OAAO,GAAE,kBAAoC,QAO7C"}