@prushforth/map 1.0.0-preview.1

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 (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/demo/index.html +78 -0
  4. package/dist/cjs/AttributionButton-DgbgLHy4.js +106 -0
  5. package/dist/cjs/MapTileLayer-D4vp8bR4.js +454 -0
  6. package/dist/cjs/app-globals-DY--Q2Nl.js +775 -0
  7. package/dist/cjs/calculatePosition-CDcdNl7C.js +92 -0
  8. package/dist/cjs/gcds-ext-map.cjs.js +47 -0
  9. package/dist/cjs/gcds-ext-map_2.cjs.entry.js +8081 -0
  10. package/dist/cjs/index-CW_WOSnc.js +32697 -0
  11. package/dist/cjs/index.cjs.js +2 -0
  12. package/dist/cjs/loader.cjs.js +14 -0
  13. package/dist/cjs/locale-_4nEyxeO.js +153 -0
  14. package/dist/cjs/map-a.cjs.entry.js +16 -0
  15. package/dist/cjs/map-caption.cjs.entry.js +55 -0
  16. package/dist/cjs/map-extent.cjs.entry.js +993 -0
  17. package/dist/cjs/map-feature.cjs.entry.js +636 -0
  18. package/dist/cjs/map-featurecaption.cjs.entry.js +14 -0
  19. package/dist/cjs/map-geometry.cjs.entry.js +36 -0
  20. package/dist/cjs/map-input.cjs.entry.js +348 -0
  21. package/dist/cjs/map-link.cjs.entry.js +6055 -0
  22. package/dist/cjs/map-meta.cjs.entry.js +40 -0
  23. package/dist/cjs/map-properties.cjs.entry.js +14 -0
  24. package/dist/cjs/map-select.cjs.entry.js +100 -0
  25. package/dist/cjs/map-span.cjs.entry.js +14 -0
  26. package/dist/cjs/map-style.cjs.entry.js +127 -0
  27. package/dist/cjs/map-tile.cjs.entry.js +274 -0
  28. package/dist/cjs/renderStyles-yOMXvf12.js +59 -0
  29. package/dist/collection/assets/canada.json +1 -0
  30. package/dist/collection/assets/images/w3community.ico +0 -0
  31. package/dist/collection/assets/mapml/en/apstile/arctic +18 -0
  32. package/dist/collection/assets/mapml/en/cbmtile/canvec +22 -0
  33. package/dist/collection/assets/mapml/en/cbmtile/cbmt +24 -0
  34. package/dist/collection/assets/mapml/en/cbmtile/cbmtgeom +20 -0
  35. package/dist/collection/assets/mapml/en/cbmtile/cbmtsimple +20 -0
  36. package/dist/collection/assets/mapml/en/cbmtile/current_conditions +33 -0
  37. package/dist/collection/assets/mapml/en/cbmtile/toporama +25 -0
  38. package/dist/collection/assets/mapml/en/custom/arcticsdi.mapml +18 -0
  39. package/dist/collection/assets/mapml/en/osmtile/cbmt +24 -0
  40. package/dist/collection/assets/mapml/en/osmtile/current_conditions +32 -0
  41. package/dist/collection/assets/mapml/en/osmtile/dark.mapml +19 -0
  42. package/dist/collection/assets/mapml/en/osmtile/light.mapml +19 -0
  43. package/dist/collection/assets/mapml/en/osmtile/osm +19 -0
  44. package/dist/collection/assets/mapml/en/osmtile/toporama +25 -0
  45. package/dist/collection/assets/mapml/fr/apstile/arctic +19 -0
  46. package/dist/collection/assets/mapml/fr/cbmtile/canvec +22 -0
  47. package/dist/collection/assets/mapml/fr/cbmtile/cbmt +24 -0
  48. package/dist/collection/assets/mapml/fr/cbmtile/cbmtgeom +20 -0
  49. package/dist/collection/assets/mapml/fr/cbmtile/cbmtsimple +20 -0
  50. package/dist/collection/assets/mapml/fr/cbmtile/current_conditions +25 -0
  51. package/dist/collection/assets/mapml/fr/cbmtile/toporama +25 -0
  52. package/dist/collection/assets/mapml/fr/osmtile/cbmt +24 -0
  53. package/dist/collection/assets/mapml/fr/osmtile/current_conditions +24 -0
  54. package/dist/collection/assets/mapml/fr/osmtile/dark.mapml +19 -0
  55. package/dist/collection/assets/mapml/fr/osmtile/light.mapml +19 -0
  56. package/dist/collection/assets/mapml/fr/osmtile/osm +19 -0
  57. package/dist/collection/assets/mapml/fr/osmtile/toporama +25 -0
  58. package/dist/collection/assets/pmtiles/darkTheme.js +19 -0
  59. package/dist/collection/assets/pmtiles/lightTheme.js +19 -0
  60. package/dist/collection/collection-manifest.json +28 -0
  61. package/dist/collection/components/gcds-ext-map/assets/pmtiles/darkTheme.js +19 -0
  62. package/dist/collection/components/gcds-ext-map/assets/pmtiles/lightTheme.js +19 -0
  63. package/dist/collection/components/gcds-ext-map/gcds-ext-map.css +2138 -0
  64. package/dist/collection/components/gcds-ext-map/gcds-ext-map.js +1517 -0
  65. package/dist/collection/components/gcds-ext-map/stories/gcds-ext-map.stories.js +367 -0
  66. package/dist/collection/components/map-a/map-a.js +89 -0
  67. package/dist/collection/components/map-caption/map-caption.js +52 -0
  68. package/dist/collection/components/map-extent/map-extent.js +809 -0
  69. package/dist/collection/components/map-feature/map-feature.js +724 -0
  70. package/dist/collection/components/map-featurecaption/map-featurecaption.js +6 -0
  71. package/dist/collection/components/map-geometry/map-geometry.js +57 -0
  72. package/dist/collection/components/map-input/map-input.js +355 -0
  73. package/dist/collection/components/map-layer/map-layer.js +1245 -0
  74. package/dist/collection/components/map-layer/stories/map-layer.stories.js +101 -0
  75. package/dist/collection/components/map-link/map-link.js +1149 -0
  76. package/dist/collection/components/map-meta/map-meta.js +82 -0
  77. package/dist/collection/components/map-properties/map-properties.js +7 -0
  78. package/dist/collection/components/map-select/map-select.js +145 -0
  79. package/dist/collection/components/map-span/map-span.js +7 -0
  80. package/dist/collection/components/map-style/map-style.js +144 -0
  81. package/dist/collection/components/map-tile/map-tile.js +370 -0
  82. package/dist/collection/components/utils/mapml/DOMTokenList.js +123 -0
  83. package/dist/collection/components/utils/mapml/DefaultMapOptions.js +11 -0
  84. package/dist/collection/components/utils/mapml/Util.js +1601 -0
  85. package/dist/collection/components/utils/mapml/control/AttributionButton.js +101 -0
  86. package/dist/collection/components/utils/mapml/control/FullscreenButton.js +181 -0
  87. package/dist/collection/components/utils/mapml/control/GeolocationButton.js +70 -0
  88. package/dist/collection/components/utils/mapml/control/LayerControl.js +212 -0
  89. package/dist/collection/components/utils/mapml/control/ReloadButton.js +75 -0
  90. package/dist/collection/components/utils/mapml/control/ScaleBar.js +108 -0
  91. package/dist/collection/components/utils/mapml/control/SearchButton.js +565 -0
  92. package/dist/collection/components/utils/mapml/elementSupport/extents/createLayerControlForExtent.js +259 -0
  93. package/dist/collection/components/utils/mapml/elementSupport/inputs/heightInput.js +18 -0
  94. package/dist/collection/components/utils/mapml/elementSupport/inputs/hiddenInput.js +19 -0
  95. package/dist/collection/components/utils/mapml/elementSupport/inputs/locationInput.js +127 -0
  96. package/dist/collection/components/utils/mapml/elementSupport/inputs/widthInput.js +18 -0
  97. package/dist/collection/components/utils/mapml/elementSupport/inputs/zoomInput.js +30 -0
  98. package/dist/collection/components/utils/mapml/elementSupport/layers/calculatePosition.js +88 -0
  99. package/dist/collection/components/utils/mapml/elementSupport/layers/createLayerControlForLayer.js +326 -0
  100. package/dist/collection/components/utils/mapml/elementSupport/layers/renderStyles.js +55 -0
  101. package/dist/collection/components/utils/mapml/elementSupport/viewers/matchMedia.js +251 -0
  102. package/dist/collection/components/utils/mapml/features/featureRenderer.js +342 -0
  103. package/dist/collection/components/utils/mapml/features/geometry.js +268 -0
  104. package/dist/collection/components/utils/mapml/features/path.js +485 -0
  105. package/dist/collection/components/utils/mapml/handlers/AnnounceMovement.js +154 -0
  106. package/dist/collection/components/utils/mapml/handlers/ContextMenu.js +1436 -0
  107. package/dist/collection/components/utils/mapml/handlers/FeatureIndex.js +116 -0
  108. package/dist/collection/components/utils/mapml/handlers/QueryHandler.js +476 -0
  109. package/dist/collection/components/utils/mapml/handlers/keyboard.js +60 -0
  110. package/dist/collection/components/utils/mapml/layers/Crosshair.js +108 -0
  111. package/dist/collection/components/utils/mapml/layers/DebugOverlay.js +357 -0
  112. package/dist/collection/components/utils/mapml/layers/FeatureIndexOverlay.js +239 -0
  113. package/dist/collection/components/utils/mapml/layers/ImageLayer.js +136 -0
  114. package/dist/collection/components/utils/mapml/layers/MapExtentLayer.js +114 -0
  115. package/dist/collection/components/utils/mapml/layers/MapFeatureLayer.js +623 -0
  116. package/dist/collection/components/utils/mapml/layers/MapLayer.js +640 -0
  117. package/dist/collection/components/utils/mapml/layers/MapTileLayer.js +450 -0
  118. package/dist/collection/components/utils/mapml/layers/TemplatedFeaturesOrTilesLayer.js +346 -0
  119. package/dist/collection/components/utils/mapml/layers/TemplatedImageLayer.js +276 -0
  120. package/dist/collection/components/utils/mapml/layers/TemplatedPMTilesLayer.js +135 -0
  121. package/dist/collection/components/utils/mapml/layers/TemplatedTileLayer.js +664 -0
  122. package/dist/collection/components/utils/utils.js +26 -0
  123. package/dist/collection/fonts/icons/LICENSE.txt +92 -0
  124. package/dist/collection/fonts/icons/README.md +543 -0
  125. package/dist/collection/fonts/icons/gcds-icons.css +110 -0
  126. package/dist/collection/fonts/icons/gcds-icons.eot +0 -0
  127. package/dist/collection/fonts/icons/gcds-icons.svg +82 -0
  128. package/dist/collection/fonts/icons/gcds-icons.ttf +0 -0
  129. package/dist/collection/fonts/icons/gcds-icons.woff +0 -0
  130. package/dist/collection/fonts/lato/LICENSE.txt +48 -0
  131. package/dist/collection/fonts/lato/README.md +195 -0
  132. package/dist/collection/fonts/lato/gcds-lato-italic.woff +0 -0
  133. package/dist/collection/fonts/lato/gcds-lato-italic.woff2 +0 -0
  134. package/dist/collection/fonts/lato/gcds-lato.css +30 -0
  135. package/dist/collection/fonts/lato/gcds-lato.woff +0 -0
  136. package/dist/collection/fonts/lato/gcds-lato.woff2 +0 -0
  137. package/dist/collection/fonts/noto-sans/LICENSE.txt +43 -0
  138. package/dist/collection/fonts/noto-sans/README.md +423 -0
  139. package/dist/collection/fonts/noto-sans/gcds-noto-sans-bold-italic.woff +0 -0
  140. package/dist/collection/fonts/noto-sans/gcds-noto-sans-bold-italic.woff2 +0 -0
  141. package/dist/collection/fonts/noto-sans/gcds-noto-sans-bold.woff +0 -0
  142. package/dist/collection/fonts/noto-sans/gcds-noto-sans-bold.woff2 +0 -0
  143. package/dist/collection/fonts/noto-sans/gcds-noto-sans-light-italic.woff +0 -0
  144. package/dist/collection/fonts/noto-sans/gcds-noto-sans-light-italic.woff2 +0 -0
  145. package/dist/collection/fonts/noto-sans/gcds-noto-sans-light.woff +0 -0
  146. package/dist/collection/fonts/noto-sans/gcds-noto-sans-light.woff2 +0 -0
  147. package/dist/collection/fonts/noto-sans/gcds-noto-sans-medium-italic.woff +0 -0
  148. package/dist/collection/fonts/noto-sans/gcds-noto-sans-medium-italic.woff2 +0 -0
  149. package/dist/collection/fonts/noto-sans/gcds-noto-sans-medium.woff +0 -0
  150. package/dist/collection/fonts/noto-sans/gcds-noto-sans-medium.woff2 +0 -0
  151. package/dist/collection/fonts/noto-sans/gcds-noto-sans-regular-italic.woff +0 -0
  152. package/dist/collection/fonts/noto-sans/gcds-noto-sans-regular-italic.woff2 +0 -0
  153. package/dist/collection/fonts/noto-sans/gcds-noto-sans-regular.woff +0 -0
  154. package/dist/collection/fonts/noto-sans/gcds-noto-sans-regular.woff2 +0 -0
  155. package/dist/collection/fonts/noto-sans/gcds-noto-sans-semibold-italic.woff +0 -0
  156. package/dist/collection/fonts/noto-sans/gcds-noto-sans-semibold-italic.woff2 +0 -0
  157. package/dist/collection/fonts/noto-sans/gcds-noto-sans-semibold.woff +0 -0
  158. package/dist/collection/fonts/noto-sans/gcds-noto-sans-semibold.woff2 +0 -0
  159. package/dist/collection/fonts/noto-sans/gcds-noto-sans.css +89 -0
  160. package/dist/collection/fonts/noto-sans-mono/LICENSE.txt +93 -0
  161. package/dist/collection/fonts/noto-sans-mono/README.md +135 -0
  162. package/dist/collection/fonts/noto-sans-mono/gcds-noto-sans-mono.css +17 -0
  163. package/dist/collection/fonts/noto-sans-mono/gcds-noto-sans-mono.woff +0 -0
  164. package/dist/collection/fonts/noto-sans-mono/gcds-noto-sans-mono.woff2 +0 -0
  165. package/dist/collection/generated/locale.js +148 -0
  166. package/dist/collection/global/mapml-globals.js +916 -0
  167. package/dist/collection/index.js +1 -0
  168. package/dist/collection/leaflet-src.esm.js +14419 -0
  169. package/dist/components/gcds-ext-map.d.ts +11 -0
  170. package/dist/components/gcds-ext-map.js +10 -0
  171. package/dist/components/index.d.ts +35 -0
  172. package/dist/components/index.js +1 -0
  173. package/dist/components/map-a.d.ts +11 -0
  174. package/dist/components/map-a.js +1 -0
  175. package/dist/components/map-caption.d.ts +11 -0
  176. package/dist/components/map-caption.js +1 -0
  177. package/dist/components/map-extent.d.ts +11 -0
  178. package/dist/components/map-extent.js +1 -0
  179. package/dist/components/map-feature.d.ts +11 -0
  180. package/dist/components/map-feature.js +1 -0
  181. package/dist/components/map-featurecaption.d.ts +11 -0
  182. package/dist/components/map-featurecaption.js +1 -0
  183. package/dist/components/map-geometry.d.ts +11 -0
  184. package/dist/components/map-geometry.js +1 -0
  185. package/dist/components/map-input.d.ts +11 -0
  186. package/dist/components/map-input.js +1 -0
  187. package/dist/components/map-layer.d.ts +11 -0
  188. package/dist/components/map-layer.js +1 -0
  189. package/dist/components/map-link.d.ts +11 -0
  190. package/dist/components/map-link.js +1 -0
  191. package/dist/components/map-meta.d.ts +11 -0
  192. package/dist/components/map-meta.js +1 -0
  193. package/dist/components/map-properties.d.ts +11 -0
  194. package/dist/components/map-properties.js +1 -0
  195. package/dist/components/map-select.d.ts +11 -0
  196. package/dist/components/map-select.js +1 -0
  197. package/dist/components/map-span.d.ts +11 -0
  198. package/dist/components/map-span.js +1 -0
  199. package/dist/components/map-style.d.ts +11 -0
  200. package/dist/components/map-style.js +1 -0
  201. package/dist/components/map-tile.d.ts +11 -0
  202. package/dist/components/map-tile.js +1 -0
  203. package/dist/components/p-B4YLD_Og.js +1 -0
  204. package/dist/components/p-BE41zrui.js +1 -0
  205. package/dist/components/p-Bpv_U_Lb.js +1 -0
  206. package/dist/components/p-CwRxGZga.js +5 -0
  207. package/dist/components/p-EYVT9Efh.js +1 -0
  208. package/dist/components/p-gwC_yeRa.js +1 -0
  209. package/dist/esm/AttributionButton-CfaoSLCu.js +103 -0
  210. package/dist/esm/MapTileLayer-DvC_iOIS.js +451 -0
  211. package/dist/esm/app-globals-De5ze2BD.js +773 -0
  212. package/dist/esm/calculatePosition-B4YLD_Og.js +90 -0
  213. package/dist/esm/gcds-ext-map.js +43 -0
  214. package/dist/esm/gcds-ext-map_2.entry.js +8078 -0
  215. package/dist/esm/index-BUsJ7i5g.js +32656 -0
  216. package/dist/esm/index.js +1 -0
  217. package/dist/esm/loader.js +12 -0
  218. package/dist/esm/locale-Bpv_U_Lb.js +150 -0
  219. package/dist/esm/map-a.entry.js +14 -0
  220. package/dist/esm/map-caption.entry.js +53 -0
  221. package/dist/esm/map-extent.entry.js +991 -0
  222. package/dist/esm/map-feature.entry.js +634 -0
  223. package/dist/esm/map-featurecaption.entry.js +12 -0
  224. package/dist/esm/map-geometry.entry.js +34 -0
  225. package/dist/esm/map-input.entry.js +346 -0
  226. package/dist/esm/map-link.entry.js +6035 -0
  227. package/dist/esm/map-meta.entry.js +38 -0
  228. package/dist/esm/map-properties.entry.js +12 -0
  229. package/dist/esm/map-select.entry.js +98 -0
  230. package/dist/esm/map-span.entry.js +12 -0
  231. package/dist/esm/map-style.entry.js +125 -0
  232. package/dist/esm/map-tile.entry.js +272 -0
  233. package/dist/esm/renderStyles-EYVT9Efh.js +57 -0
  234. package/dist/gcds-ext-map/assets/canada.json +1 -0
  235. package/dist/gcds-ext-map/assets/images/w3community.ico +0 -0
  236. package/dist/gcds-ext-map/assets/mapml/en/apstile/arctic +18 -0
  237. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/canvec +22 -0
  238. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/cbmt +24 -0
  239. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/cbmtgeom +20 -0
  240. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/cbmtsimple +20 -0
  241. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/current_conditions +33 -0
  242. package/dist/gcds-ext-map/assets/mapml/en/cbmtile/toporama +25 -0
  243. package/dist/gcds-ext-map/assets/mapml/en/custom/arcticsdi.mapml +18 -0
  244. package/dist/gcds-ext-map/assets/mapml/en/osmtile/cbmt +24 -0
  245. package/dist/gcds-ext-map/assets/mapml/en/osmtile/current_conditions +32 -0
  246. package/dist/gcds-ext-map/assets/mapml/en/osmtile/dark.mapml +19 -0
  247. package/dist/gcds-ext-map/assets/mapml/en/osmtile/light.mapml +19 -0
  248. package/dist/gcds-ext-map/assets/mapml/en/osmtile/osm +19 -0
  249. package/dist/gcds-ext-map/assets/mapml/en/osmtile/toporama +25 -0
  250. package/dist/gcds-ext-map/assets/mapml/fr/apstile/arctic +19 -0
  251. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/canvec +22 -0
  252. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/cbmt +24 -0
  253. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/cbmtgeom +20 -0
  254. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/cbmtsimple +20 -0
  255. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/current_conditions +25 -0
  256. package/dist/gcds-ext-map/assets/mapml/fr/cbmtile/toporama +25 -0
  257. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/cbmt +24 -0
  258. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/current_conditions +24 -0
  259. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/dark.mapml +19 -0
  260. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/light.mapml +19 -0
  261. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/osm +19 -0
  262. package/dist/gcds-ext-map/assets/mapml/fr/osmtile/toporama +25 -0
  263. package/dist/gcds-ext-map/assets/pmtiles/darkTheme.js +19 -0
  264. package/dist/gcds-ext-map/assets/pmtiles/lightTheme.js +19 -0
  265. package/dist/gcds-ext-map/fonts/icons/LICENSE.txt +92 -0
  266. package/dist/gcds-ext-map/fonts/icons/README.md +543 -0
  267. package/dist/gcds-ext-map/fonts/icons/gcds-icons.css +110 -0
  268. package/dist/gcds-ext-map/fonts/icons/gcds-icons.eot +0 -0
  269. package/dist/gcds-ext-map/fonts/icons/gcds-icons.svg +82 -0
  270. package/dist/gcds-ext-map/fonts/icons/gcds-icons.ttf +0 -0
  271. package/dist/gcds-ext-map/fonts/icons/gcds-icons.woff +0 -0
  272. package/dist/gcds-ext-map/fonts/lato/LICENSE.txt +48 -0
  273. package/dist/gcds-ext-map/fonts/lato/README.md +195 -0
  274. package/dist/gcds-ext-map/fonts/lato/gcds-lato-italic.woff +0 -0
  275. package/dist/gcds-ext-map/fonts/lato/gcds-lato-italic.woff2 +0 -0
  276. package/dist/gcds-ext-map/fonts/lato/gcds-lato.css +30 -0
  277. package/dist/gcds-ext-map/fonts/lato/gcds-lato.woff +0 -0
  278. package/dist/gcds-ext-map/fonts/lato/gcds-lato.woff2 +0 -0
  279. package/dist/gcds-ext-map/fonts/noto-sans/LICENSE.txt +43 -0
  280. package/dist/gcds-ext-map/fonts/noto-sans/README.md +423 -0
  281. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-bold-italic.woff +0 -0
  282. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-bold-italic.woff2 +0 -0
  283. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-bold.woff +0 -0
  284. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-bold.woff2 +0 -0
  285. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-light-italic.woff +0 -0
  286. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-light-italic.woff2 +0 -0
  287. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-light.woff +0 -0
  288. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-light.woff2 +0 -0
  289. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-medium-italic.woff +0 -0
  290. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-medium-italic.woff2 +0 -0
  291. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-medium.woff +0 -0
  292. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-medium.woff2 +0 -0
  293. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-regular-italic.woff +0 -0
  294. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-regular-italic.woff2 +0 -0
  295. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-regular.woff +0 -0
  296. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-regular.woff2 +0 -0
  297. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-semibold-italic.woff +0 -0
  298. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-semibold-italic.woff2 +0 -0
  299. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-semibold.woff +0 -0
  300. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans-semibold.woff2 +0 -0
  301. package/dist/gcds-ext-map/fonts/noto-sans/gcds-noto-sans.css +89 -0
  302. package/dist/gcds-ext-map/fonts/noto-sans-mono/LICENSE.txt +93 -0
  303. package/dist/gcds-ext-map/fonts/noto-sans-mono/README.md +135 -0
  304. package/dist/gcds-ext-map/fonts/noto-sans-mono/gcds-noto-sans-mono.css +17 -0
  305. package/dist/gcds-ext-map/fonts/noto-sans-mono/gcds-noto-sans-mono.woff +0 -0
  306. package/dist/gcds-ext-map/fonts/noto-sans-mono/gcds-noto-sans-mono.woff2 +0 -0
  307. package/dist/gcds-ext-map/gcds-ext-map.esm.js +1 -0
  308. package/dist/gcds-ext-map/index.esm.js +0 -0
  309. package/dist/gcds-ext-map/leaflet-src.esm.js +14419 -0
  310. package/dist/gcds-ext-map/p-1b22f774.entry.js +1 -0
  311. package/dist/gcds-ext-map/p-29b4ba34.entry.js +1 -0
  312. package/dist/gcds-ext-map/p-2dd09d44.entry.js +1 -0
  313. package/dist/gcds-ext-map/p-3fef47e5.entry.js +1 -0
  314. package/dist/gcds-ext-map/p-4e324a1d.entry.js +1 -0
  315. package/dist/gcds-ext-map/p-4f4a6873.entry.js +1 -0
  316. package/dist/gcds-ext-map/p-9cc5ad37.entry.js +1 -0
  317. package/dist/gcds-ext-map/p-9edfea7d.entry.js +1 -0
  318. package/dist/gcds-ext-map/p-B4YLD_Og.js +1 -0
  319. package/dist/gcds-ext-map/p-B8Id5Ptd.js +1 -0
  320. package/dist/gcds-ext-map/p-BUsJ7i5g.js +6 -0
  321. package/dist/gcds-ext-map/p-Bpv_U_Lb.js +1 -0
  322. package/dist/gcds-ext-map/p-CtOuMgy9.js +1 -0
  323. package/dist/gcds-ext-map/p-Dd474fsL.js +1 -0
  324. package/dist/gcds-ext-map/p-EYVT9Efh.js +1 -0
  325. package/dist/gcds-ext-map/p-a67d721d.entry.js +1 -0
  326. package/dist/gcds-ext-map/p-b16e862b.entry.js +1 -0
  327. package/dist/gcds-ext-map/p-b9cbf1e0.entry.js +10 -0
  328. package/dist/gcds-ext-map/p-cab5246e.entry.js +1 -0
  329. package/dist/gcds-ext-map/p-d58d409b.entry.js +1 -0
  330. package/dist/gcds-ext-map/p-dfa21368.entry.js +1 -0
  331. package/dist/gcds-ext-map/p-f211048a.entry.js +1 -0
  332. package/dist/index.cjs.js +1 -0
  333. package/dist/index.js +1 -0
  334. package/dist/types/components/gcds-ext-map/gcds-ext-map.d.ts +125 -0
  335. package/dist/types/components/gcds-ext-map/stories/gcds-ext-map.stories.d.ts +230 -0
  336. package/dist/types/components/map-a/map-a.d.ts +7 -0
  337. package/dist/types/components/map-caption/map-caption.d.ts +7 -0
  338. package/dist/types/components/map-extent/map-extent.d.ts +53 -0
  339. package/dist/types/components/map-feature/map-feature.d.ts +50 -0
  340. package/dist/types/components/map-featurecaption/map-featurecaption.d.ts +3 -0
  341. package/dist/types/components/map-geometry/map-geometry.d.ts +7 -0
  342. package/dist/types/components/map-input/map-input.d.ts +24 -0
  343. package/dist/types/components/map-layer/map-layer.d.ts +85 -0
  344. package/dist/types/components/map-layer/stories/map-layer.stories.d.ts +96 -0
  345. package/dist/types/components/map-link/map-link.d.ts +66 -0
  346. package/dist/types/components/map-meta/map-meta.d.ts +11 -0
  347. package/dist/types/components/map-properties/map-properties.d.ts +3 -0
  348. package/dist/types/components/map-select/map-select.d.ts +13 -0
  349. package/dist/types/components/map-span/map-span.d.ts +5 -0
  350. package/dist/types/components/map-style/map-style.d.ts +17 -0
  351. package/dist/types/components/map-tile/map-tile.d.ts +32 -0
  352. package/dist/types/components/utils/mapml/DOMTokenList.d.ts +30 -0
  353. package/dist/types/components/utils/mapml/elementSupport/inputs/heightInput.d.ts +7 -0
  354. package/dist/types/components/utils/mapml/elementSupport/inputs/hiddenInput.d.ts +7 -0
  355. package/dist/types/components/utils/mapml/elementSupport/inputs/locationInput.d.ts +14 -0
  356. package/dist/types/components/utils/mapml/elementSupport/inputs/widthInput.d.ts +7 -0
  357. package/dist/types/components/utils/mapml/elementSupport/inputs/zoomInput.d.ts +11 -0
  358. package/dist/types/components/utils/mapml/layers/MapLayer.d.ts +69 -0
  359. package/dist/types/components/utils/utils.d.ts +2 -0
  360. package/dist/types/components.d.ts +521 -0
  361. package/dist/types/gcds-ext-map.d.ts +17 -0
  362. package/dist/types/generated/locale.d.ts +146 -0
  363. package/dist/types/index.d.ts +11 -0
  364. package/dist/types/stencil-public-runtime.d.ts +1861 -0
  365. package/loader/cdn.js +1 -0
  366. package/loader/index.cjs.js +1 -0
  367. package/loader/index.d.ts +24 -0
  368. package/loader/index.es2017.js +1 -0
  369. package/loader/index.js +2 -0
  370. package/package.json +87 -0
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+
5
+ const MapMeta = class {
6
+ constructor(hostRef) {
7
+ ContextMenu.registerInstance(this, hostRef);
8
+ }
9
+ get el() { return ContextMenu.getElement(this); }
10
+ name;
11
+ content;
12
+ nameChanged(newValue, oldValue) {
13
+ }
14
+ contentChanged(newValue, oldValue) {
15
+ }
16
+ // Validate 'cs' content
17
+ set contentValue(val) {
18
+ if (this.name === 'cs' &&
19
+ val &&
20
+ !['tcrs', 'tilematrix', 'pcrs', 'gcrs', 'map', 'tile'].includes(val)) {
21
+ return;
22
+ }
23
+ this.content = val;
24
+ }
25
+ connectedCallback() { }
26
+ disconnectedCallback() { }
27
+ render() {
28
+ return null;
29
+ }
30
+ static get watchers() { return {
31
+ "name": [{
32
+ "nameChanged": 0
33
+ }],
34
+ "content": [{
35
+ "contentChanged": 0
36
+ }]
37
+ }; }
38
+ };
39
+
40
+ exports.map_meta = MapMeta;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+
5
+ const MapProperties = class {
6
+ constructor(hostRef) {
7
+ ContextMenu.registerInstance(this, hostRef);
8
+ }
9
+ render() {
10
+ return null;
11
+ }
12
+ };
13
+
14
+ exports.map_properties = MapProperties;
@@ -0,0 +1,100 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+
5
+ const MapSelect = class {
6
+ constructor(hostRef) {
7
+ ContextMenu.registerInstance(this, hostRef);
8
+ }
9
+ get el() { return ContextMenu.getElement(this); }
10
+ name;
11
+ selectDetails;
12
+ htmlSelect;
13
+ connectedCallback() {
14
+ this._createLayerControlForSelect();
15
+ // Publish as lowercase to match MapML source compatibility
16
+ this.el.selectdetails = this.selectDetails;
17
+ this.el.htmlselect = this.htmlSelect;
18
+ }
19
+ disconnectedCallback() { }
20
+ nameChanged(newValue, oldValue) {
21
+ }
22
+ _createLayerControlForSelect() {
23
+ this.htmlSelect = this.transcribe();
24
+ const selectdetails = document.createElement('details');
25
+ selectdetails.className = 'mapml-layer-item-details mapml-control-layers';
26
+ const selectsummary = document.createElement('summary');
27
+ const selectSummaryLabel = document.createElement('label');
28
+ selectSummaryLabel.innerText = this.name || '';
29
+ if (this.el.hasAttribute('id'))
30
+ selectSummaryLabel.setAttribute('for', this.el.getAttribute('id'));
31
+ selectsummary.appendChild(selectSummaryLabel);
32
+ selectdetails.appendChild(selectsummary);
33
+ selectdetails.appendChild(this.htmlSelect);
34
+ this.selectDetails = selectdetails;
35
+ // Add change event listener to trigger redraw
36
+ this.htmlSelect.addEventListener('change', () => {
37
+ this.el.parentElement?._extentLayer?.redraw?.();
38
+ });
39
+ }
40
+ transcribe() {
41
+ const select = document.createElement('select');
42
+ const elementAttrNames = this.el.getAttributeNames();
43
+ for (let i = 0; i < elementAttrNames.length; i++) {
44
+ select.setAttribute(elementAttrNames[i], this.el.getAttribute(elementAttrNames[i]));
45
+ }
46
+ // Use querySelectorAll to get actual DOM children (this.el.children is a FakeNodeList in Stencil)
47
+ const options = this.el.querySelectorAll('map-option');
48
+ for (let i = 0; i < options.length; i++) {
49
+ const option = document.createElement('option');
50
+ const optionAttrNames = options[i].getAttributeNames();
51
+ for (let j = 0; j < optionAttrNames.length; j++) {
52
+ option.setAttribute(optionAttrNames[j], options[i].getAttribute(optionAttrNames[j]));
53
+ }
54
+ option.innerHTML = options[i].innerHTML;
55
+ select.appendChild(option);
56
+ }
57
+ return select;
58
+ }
59
+ async whenReady() {
60
+ return new Promise((resolve, reject) => {
61
+ let interval, failureTimer;
62
+ if (this.selectDetails) {
63
+ resolve();
64
+ }
65
+ else {
66
+ const selectElement = this;
67
+ interval = setInterval(testForSelect, 300, selectElement);
68
+ failureTimer = setTimeout(selectNotDefined, 10000);
69
+ }
70
+ function testForSelect(selectElement) {
71
+ if (selectElement.selectDetails) {
72
+ clearInterval(interval);
73
+ clearTimeout(failureTimer);
74
+ resolve();
75
+ }
76
+ else if (!selectElement.el.isConnected) {
77
+ clearInterval(interval);
78
+ clearTimeout(failureTimer);
79
+ reject('map-select was disconnected while waiting to be ready');
80
+ }
81
+ }
82
+ function selectNotDefined() {
83
+ clearInterval(interval);
84
+ clearTimeout(failureTimer);
85
+ reject('Timeout reached waiting for map-select to be ready');
86
+ }
87
+ });
88
+ }
89
+ render() {
90
+ // Render the details/summary/select structure
91
+ return null;
92
+ }
93
+ static get watchers() { return {
94
+ "name": [{
95
+ "nameChanged": 0
96
+ }]
97
+ }; }
98
+ };
99
+
100
+ exports.map_select = MapSelect;
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+
5
+ const MapSpan = class {
6
+ constructor(hostRef) {
7
+ ContextMenu.registerInstance(this, hostRef);
8
+ }
9
+ get el() { return ContextMenu.getElement(this); }
10
+ connectedCallback() { }
11
+ disconnectedCallback() { }
12
+ };
13
+
14
+ exports.map_span = MapSpan;
@@ -0,0 +1,127 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+
5
+ const MapStyle = class {
6
+ constructor(hostRef) {
7
+ ContextMenu.registerInstance(this, hostRef);
8
+ }
9
+ get el() { return ContextMenu.getElement(this); }
10
+ media;
11
+ _mql;
12
+ _changeHandler;
13
+ _observer;
14
+ styleElement;
15
+ _stylesheetHost;
16
+ async mediaChanged(newValue, oldValue) {
17
+ if (oldValue !== newValue) {
18
+ await this._registerMediaQuery(newValue);
19
+ }
20
+ }
21
+ getMapEl() {
22
+ return window.M?.Util?.getClosest?.(this.el, 'gcds-ext-map') || this.el.closest('gcds-ext-map');
23
+ }
24
+ _connect() {
25
+ this.styleElement = document.createElement('style');
26
+ this.styleElement.mapStyle = this.el;
27
+ this.styleElement.textContent = this.el.textContent;
28
+ this._copyAttributes(this.el, this.styleElement);
29
+ // Expose styleElement as a public property on the element
30
+ Object.defineProperty(this.el, 'styleElement', {
31
+ get: () => this.styleElement,
32
+ configurable: true,
33
+ enumerable: true
34
+ });
35
+ if (!this._stylesheetHost)
36
+ return;
37
+ // Try to render via layer's renderStyles method
38
+ // Note: If layer is not yet ready, the layer will call renderStyles
39
+ // on all map-style children when it finishes initialization
40
+ if (this._stylesheetHost._layer) {
41
+ this._stylesheetHost._layer.renderStyles?.(this.el);
42
+ }
43
+ else if (this._stylesheetHost._templatedLayer) {
44
+ this._stylesheetHost._templatedLayer.renderStyles?.(this.el);
45
+ }
46
+ else if (this._stylesheetHost._extentLayer) {
47
+ this._stylesheetHost._extentLayer.renderStyles?.(this.el);
48
+ }
49
+ this._observer = new MutationObserver(() => {
50
+ this.styleElement.textContent = this.el.textContent;
51
+ });
52
+ this._observer.observe(this.el, {
53
+ childList: true,
54
+ subtree: true,
55
+ characterData: true
56
+ });
57
+ }
58
+ _disconnect() {
59
+ if (this._observer) {
60
+ this._observer.disconnect();
61
+ this._observer = undefined;
62
+ }
63
+ if (this._stylesheetHost && this.styleElement) {
64
+ this.styleElement.remove();
65
+ this.styleElement = undefined;
66
+ }
67
+ }
68
+ _copyAttributes(source, target) {
69
+ Array.from(source.attributes).forEach((attribute) => {
70
+ if (attribute.nodeName !== 'media' && attribute.nodeName !== 'data-testid') {
71
+ target.setAttribute(attribute.nodeName, attribute.nodeValue);
72
+ }
73
+ });
74
+ }
75
+ async _registerMediaQuery(mq) {
76
+ if (!this._changeHandler) {
77
+ this._changeHandler = () => {
78
+ this._disconnect();
79
+ if (this._mql && this._mql.matches) {
80
+ this._connect();
81
+ }
82
+ };
83
+ }
84
+ if (mq) {
85
+ const map = this.getMapEl();
86
+ if (!map)
87
+ return;
88
+ if (typeof map.whenReady === 'function')
89
+ await map.whenReady();
90
+ if (this._mql) {
91
+ this._mql.removeEventListener('change', this._changeHandler);
92
+ }
93
+ this._mql = map.matchMedia(mq);
94
+ this._changeHandler();
95
+ this._mql.addEventListener('change', this._changeHandler);
96
+ }
97
+ else if (this._mql) {
98
+ this._mql.removeEventListener('change', this._changeHandler);
99
+ this._mql = undefined;
100
+ this._disconnect();
101
+ this._connect();
102
+ }
103
+ }
104
+ async connectedCallback() {
105
+ this._stylesheetHost = this.el.getRootNode() instanceof ShadowRoot
106
+ ? this.el.getRootNode().host
107
+ : this.el.parentElement;
108
+ if (!this._stylesheetHost)
109
+ return;
110
+ if (this.media) {
111
+ await this._registerMediaQuery(this.media);
112
+ }
113
+ else {
114
+ this._connect();
115
+ }
116
+ }
117
+ disconnectedCallback() {
118
+ this._disconnect();
119
+ }
120
+ static get watchers() { return {
121
+ "media": [{
122
+ "mediaChanged": 0
123
+ }]
124
+ }; }
125
+ };
126
+
127
+ exports.map_style = MapStyle;
@@ -0,0 +1,274 @@
1
+ 'use strict';
2
+
3
+ var ContextMenu = require('./index-CW_WOSnc.js');
4
+ var MapTileLayer = require('./MapTileLayer-D4vp8bR4.js');
5
+ var calculatePosition = require('./calculatePosition-CDcdNl7C.js');
6
+
7
+ const MapTile = class {
8
+ constructor(hostRef) {
9
+ ContextMenu.registerInstance(this, hostRef);
10
+ }
11
+ get el() { return ContextMenu.getElement(this); }
12
+ // "Set once" properties - these are set once at connection and never change
13
+ row;
14
+ col;
15
+ zoom;
16
+ src;
17
+ _parentEl;
18
+ _tileLayer;
19
+ _extent;
20
+ // Store initial values to prevent changes after connection
21
+ _initialRow;
22
+ _initialCol;
23
+ _initialZoom;
24
+ _hasConnected = false;
25
+ srcChanged(newValue, oldValue) {
26
+ if (oldValue !== newValue) {
27
+ if (this._extent)
28
+ this._calculateExtent();
29
+ if (this._tileLayer) {
30
+ this._tileLayer.removeMapTile(this.el);
31
+ this._tileLayer.addMapTile(this.el);
32
+ }
33
+ }
34
+ }
35
+ connectedCallback() {
36
+ // Capture initial values before anything else - these won't change
37
+ // Read from attributes first, then fall back to props
38
+ this._initialRow = this.el.hasAttribute('row') ? +this.el.getAttribute('row') : (this.row ?? 0);
39
+ this._initialCol = this.el.hasAttribute('col') ? +this.el.getAttribute('col') : (this.col ?? 0);
40
+ // For zoom, check: explicit attribute -> prop -> map-meta value -> map zoom -> 0
41
+ let zoomValue = 0;
42
+ if (this.el.hasAttribute('zoom')) {
43
+ zoomValue = +this.el.getAttribute('zoom');
44
+ }
45
+ else if (this.zoom !== undefined) {
46
+ zoomValue = this.zoom;
47
+ }
48
+ else {
49
+ // Try to get zoom from map-meta element
50
+ const metaZoom = this._getMetaZoomValue();
51
+ if (metaZoom !== null) {
52
+ zoomValue = metaZoom;
53
+ }
54
+ else {
55
+ zoomValue = this.getMapEl()?.zoom || 0;
56
+ }
57
+ }
58
+ this._initialZoom = zoomValue;
59
+ this._hasConnected = true;
60
+ // Override getAttribute/setAttribute on the element to prevent row/col/zoom changes
61
+ const originalGetAttribute = this.el.getAttribute.bind(this.el);
62
+ const originalSetAttribute = this.el.setAttribute.bind(this.el);
63
+ this.el.getAttribute = (name) => {
64
+ if (this._hasConnected) {
65
+ switch (name) {
66
+ case 'row':
67
+ return String(this._initialRow);
68
+ case 'col':
69
+ return String(this._initialCol);
70
+ case 'zoom':
71
+ return String(this._initialZoom);
72
+ }
73
+ }
74
+ return originalGetAttribute(name);
75
+ };
76
+ this.el.setAttribute = (name, value) => {
77
+ if (this._hasConnected) {
78
+ switch (name) {
79
+ case 'row':
80
+ case 'col':
81
+ case 'zoom':
82
+ return; // Ignore changes to these after connection
83
+ }
84
+ }
85
+ originalSetAttribute(name, value);
86
+ };
87
+ // Override property accessors on the element to return initial values
88
+ Object.defineProperties(this.el, {
89
+ row: {
90
+ get: () => this._initialRow,
91
+ configurable: true
92
+ },
93
+ col: {
94
+ get: () => this._initialCol,
95
+ configurable: true
96
+ },
97
+ zoom: {
98
+ get: () => this._initialZoom,
99
+ configurable: true
100
+ }
101
+ });
102
+ // Find parent element (handle shadow DOM)
103
+ const parentNode = this.el.parentNode;
104
+ this._parentEl =
105
+ parentNode.nodeName === 'MAP-LAYER' ||
106
+ parentNode.nodeName === 'LAYER-' ||
107
+ parentNode.nodeName === 'MAP-LINK'
108
+ ? parentNode
109
+ : parentNode.host;
110
+ // Preload image
111
+ const imgObj = new Image();
112
+ imgObj.src = this.src || '';
113
+ this._createOrGetTileLayer();
114
+ }
115
+ disconnectedCallback() {
116
+ if (this._tileLayer) {
117
+ this._tileLayer.removeMapTile(this.el);
118
+ if (this._tileLayer._mapTiles && this._tileLayer._mapTiles.length === 0) {
119
+ this._tileLayer.remove();
120
+ this._tileLayer = null;
121
+ delete this._tileLayer;
122
+ const entry = this?._parentEl?._layerRegistry?.get(this.position);
123
+ if (entry) {
124
+ entry.count--;
125
+ if (entry.count === 0) {
126
+ this._parentEl._layerRegistry.delete(this.position);
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ // "Set once" property pattern for row, col, zoom
133
+ // After connection, always return the initial values
134
+ get rowValue() {
135
+ return this._hasConnected ? this._initialRow : +this.row;
136
+ }
137
+ get colValue() {
138
+ return this._hasConnected ? this._initialCol : +this.col;
139
+ }
140
+ get zoomValue() {
141
+ return this._hasConnected ? this._initialZoom : +this.zoom;
142
+ }
143
+ get extent() {
144
+ if (!this._extent)
145
+ this._calculateExtent();
146
+ return this._extent;
147
+ }
148
+ get position() {
149
+ return calculatePosition.calculatePosition(this.el);
150
+ }
151
+ isFirst() {
152
+ return !this._parentEl._layerRegistry.has(this.position);
153
+ }
154
+ getPrevious() {
155
+ if (this.isFirst())
156
+ return null;
157
+ return this.el.previousElementSibling;
158
+ }
159
+ async zoomTo() {
160
+ const extent = this.extent;
161
+ const map = this.getMapEl()?._map;
162
+ if (!extent || !map)
163
+ return;
164
+ const xmin = extent.topLeft.pcrs.horizontal, xmax = extent.bottomRight.pcrs.horizontal, ymin = extent.bottomRight.pcrs.vertical, ymax = extent.topLeft.pcrs.vertical, bounds = window.L.bounds(window.L.point(xmin, ymin), window.L.point(xmax, ymax)), center = map.options.crs.unproject(bounds.getCenter(true)), maxZoom = extent.zoom.maxZoom, minZoom = extent.zoom.minZoom;
165
+ map.setView(center, ContextMenu.Util.getMaxZoom(bounds, map, minZoom, maxZoom), { animate: false });
166
+ }
167
+ getMapEl() {
168
+ return ContextMenu.Util.getClosest(this.el, 'gcds-ext-map');
169
+ }
170
+ getLayerEl() {
171
+ return ContextMenu.Util.getClosest(this.el, 'map-layer,layer-');
172
+ }
173
+ _getMetaZoomValue() {
174
+ // Look for <map-meta name="zoom" content="...value=N..."> in parent layer
175
+ const layerEl = this.getLayerEl();
176
+ if (!layerEl)
177
+ return null;
178
+ const metaZoom = layerEl.querySelector('map-meta[name="zoom"][content]');
179
+ if (!metaZoom)
180
+ return null;
181
+ const content = metaZoom.getAttribute('content');
182
+ if (!content)
183
+ return null;
184
+ // Parse content like "min=1,max=4,value=2"
185
+ const valueMatch = content.match(/value=(\d+)/);
186
+ if (valueMatch && valueMatch[1]) {
187
+ return parseInt(valueMatch[1], 10);
188
+ }
189
+ return null;
190
+ }
191
+ getMeta(metaName) {
192
+ const name = metaName.toLowerCase();
193
+ if (name !== 'cs' && name !== 'zoom' && name !== 'projection')
194
+ return;
195
+ const sdMeta = this._parentEl?.shadowRoot?.querySelector(`map-meta[name=${name}][content]`);
196
+ if (this._parentEl?.nodeName === 'MAP-LINK') {
197
+ return sdMeta || this._parentEl.parentElement?.getMeta(metaName);
198
+ }
199
+ else {
200
+ return this._parentEl?.src
201
+ ? this._parentEl.shadowRoot?.querySelector(`map-meta[name=${name}][content]`)
202
+ : this._parentEl.querySelector(`map-meta[name=${name}][content]`);
203
+ }
204
+ }
205
+ async _createOrGetTileLayer() {
206
+ if (!this._parentEl?.whenReady)
207
+ return;
208
+ await this._parentEl.whenReady();
209
+ const parentElement = this._parentEl;
210
+ if (this.isFirst()) {
211
+ this._tileLayer = MapTileLayer.mapTileLayer({
212
+ projection: this.getMapEl()?.projection,
213
+ opacity: 1,
214
+ pane: parentElement._templatedLayer?.getContainer?.() ||
215
+ parentElement._layer?.getContainer?.(),
216
+ zIndex: this.position
217
+ });
218
+ this._tileLayer.addMapTile(this.el);
219
+ if (parentElement._templatedLayer?.addLayer) {
220
+ parentElement._templatedLayer.addLayer(this._tileLayer);
221
+ }
222
+ else {
223
+ parentElement._layer?.addLayer?.(this._tileLayer);
224
+ }
225
+ // Publish _tileLayer on the element for test access
226
+ this.el._tileLayer = this._tileLayer;
227
+ // Add this position to the parent's _layerRegistry with layer reference and count = 1
228
+ parentElement._layerRegistry.set(this.position, { layer: this._tileLayer, count: 1 });
229
+ }
230
+ else {
231
+ // get the previously registered TileLayer for this position
232
+ const entry = parentElement._layerRegistry.get(this.position);
233
+ this._tileLayer = entry?.layer;
234
+ if (entry) {
235
+ entry.count++;
236
+ }
237
+ if (this._tileLayer) {
238
+ this._tileLayer.addMapTile(this.el);
239
+ // Publish _tileLayer on the element for test access
240
+ this.el._tileLayer = this._tileLayer;
241
+ }
242
+ }
243
+ }
244
+ _calculateExtent() {
245
+ const mapEl = this.getMapEl();
246
+ if (!mapEl || !mapEl._map)
247
+ return;
248
+ const map = mapEl._map;
249
+ const projection = map.options.projection;
250
+ const tileSize = window.M[projection].options.crs.tile.bounds.max.x;
251
+ const pixelX = this.colValue * tileSize;
252
+ const pixelY = this.rowValue * tileSize;
253
+ const pixelBounds = window.L.bounds(window.L.point(pixelX, pixelY), window.L.point(pixelX + tileSize, pixelY + tileSize));
254
+ const pcrsBounds = ContextMenu.Util.pixelToPCRSBounds(pixelBounds, this.zoomValue, projection);
255
+ this._extent = ContextMenu.Util._convertAndFormatPCRS(pcrsBounds, map.options.crs, projection);
256
+ this._extent.zoom = {
257
+ minZoom: this.zoomValue,
258
+ maxZoom: this.zoomValue,
259
+ minNativeZoom: this.zoomValue,
260
+ maxNativeZoom: this.zoomValue
261
+ };
262
+ }
263
+ render() {
264
+ // This component does not render any visible DOM
265
+ return null;
266
+ }
267
+ static get watchers() { return {
268
+ "src": [{
269
+ "srcChanged": 0
270
+ }]
271
+ }; }
272
+ };
273
+
274
+ exports.map_tile = MapTile;
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ function renderStyles(mapStyleOrLink) {
4
+ let e = mapStyleOrLink.link || mapStyleOrLink.styleElement;
5
+ if (e === undefined) return;
6
+
7
+ const getStylePositionAndNode = (styleOrLink) => {
8
+ // Get all already rendered <style> or <link> elements in the shadow DOM container
9
+ const renderedSiblingStyles = Array.from(
10
+ this._container.querySelectorAll(':scope > style, :scope > link[rel="stylesheet"]')
11
+ );
12
+
13
+ // If there are no rendered styles or links yet, insert before any content
14
+ if (renderedSiblingStyles.length === 0) {
15
+ const lastChild = this._container.lastChild;
16
+ if (!lastChild) {
17
+ return { position: 'afterbegin', node: this._container };
18
+ }
19
+
20
+ const isSVG = lastChild.nodeName === 'SVG';
21
+ const isContainer = lastChild.classList?.contains('mapml-vector-container') ||
22
+ lastChild.classList?.contains('mapml-extentlayer-container');
23
+
24
+ return (isSVG || isContainer)
25
+ ? { position: 'beforebegin', node: lastChild }
26
+ : { position: 'afterend', node: lastChild };
27
+ }
28
+
29
+ // Peek into the light DOM context for comparison
30
+ const mapStyleOrLinkLightDOMElement =
31
+ styleOrLink.mapStyle || styleOrLink.mapLink;
32
+
33
+ // Traverse the rendered siblings in the shadow DOM
34
+ for (let i = 0; i < renderedSiblingStyles.length; i++) {
35
+ const rendered = renderedSiblingStyles[i];
36
+ const siblingMapStyleOrLinkLightDOMElement =
37
+ rendered.mapStyle || rendered.mapLink;
38
+
39
+ // Compare the light DOM order
40
+ if (
41
+ siblingMapStyleOrLinkLightDOMElement &&
42
+ mapStyleOrLinkLightDOMElement.compareDocumentPosition(
43
+ siblingMapStyleOrLinkLightDOMElement
44
+ ) & Node.DOCUMENT_POSITION_FOLLOWING
45
+ ) {
46
+ // Insert the new style or link before the already-rendered sibling element
47
+ return { position: 'beforebegin', node: rendered };
48
+ }
49
+ }
50
+
51
+ // If no preceding sibling was found, insert after the last rendered element
52
+ return { position: 'afterend', node: renderedSiblingStyles.at(-1) };
53
+ };
54
+
55
+ let positionAndNode = getStylePositionAndNode(e);
56
+ positionAndNode.node.insertAdjacentElement(positionAndNode.position, e);
57
+ }
58
+
59
+ exports.renderStyles = renderStyles;