@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,38 @@
1
+ import { r as registerInstance, g as getElement } from './index-BUsJ7i5g.js';
2
+
3
+ const MapMeta = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ }
7
+ get el() { return getElement(this); }
8
+ name;
9
+ content;
10
+ nameChanged(newValue, oldValue) {
11
+ }
12
+ contentChanged(newValue, oldValue) {
13
+ }
14
+ // Validate 'cs' content
15
+ set contentValue(val) {
16
+ if (this.name === 'cs' &&
17
+ val &&
18
+ !['tcrs', 'tilematrix', 'pcrs', 'gcrs', 'map', 'tile'].includes(val)) {
19
+ return;
20
+ }
21
+ this.content = val;
22
+ }
23
+ connectedCallback() { }
24
+ disconnectedCallback() { }
25
+ render() {
26
+ return null;
27
+ }
28
+ static get watchers() { return {
29
+ "name": [{
30
+ "nameChanged": 0
31
+ }],
32
+ "content": [{
33
+ "contentChanged": 0
34
+ }]
35
+ }; }
36
+ };
37
+
38
+ export { MapMeta as map_meta };
@@ -0,0 +1,12 @@
1
+ import { r as registerInstance } from './index-BUsJ7i5g.js';
2
+
3
+ const MapProperties = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ }
7
+ render() {
8
+ return null;
9
+ }
10
+ };
11
+
12
+ export { MapProperties as map_properties };
@@ -0,0 +1,98 @@
1
+ import { r as registerInstance, g as getElement } from './index-BUsJ7i5g.js';
2
+
3
+ const MapSelect = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ }
7
+ get el() { return getElement(this); }
8
+ name;
9
+ selectDetails;
10
+ htmlSelect;
11
+ connectedCallback() {
12
+ this._createLayerControlForSelect();
13
+ // Publish as lowercase to match MapML source compatibility
14
+ this.el.selectdetails = this.selectDetails;
15
+ this.el.htmlselect = this.htmlSelect;
16
+ }
17
+ disconnectedCallback() { }
18
+ nameChanged(newValue, oldValue) {
19
+ }
20
+ _createLayerControlForSelect() {
21
+ this.htmlSelect = this.transcribe();
22
+ const selectdetails = document.createElement('details');
23
+ selectdetails.className = 'mapml-layer-item-details mapml-control-layers';
24
+ const selectsummary = document.createElement('summary');
25
+ const selectSummaryLabel = document.createElement('label');
26
+ selectSummaryLabel.innerText = this.name || '';
27
+ if (this.el.hasAttribute('id'))
28
+ selectSummaryLabel.setAttribute('for', this.el.getAttribute('id'));
29
+ selectsummary.appendChild(selectSummaryLabel);
30
+ selectdetails.appendChild(selectsummary);
31
+ selectdetails.appendChild(this.htmlSelect);
32
+ this.selectDetails = selectdetails;
33
+ // Add change event listener to trigger redraw
34
+ this.htmlSelect.addEventListener('change', () => {
35
+ this.el.parentElement?._extentLayer?.redraw?.();
36
+ });
37
+ }
38
+ transcribe() {
39
+ const select = document.createElement('select');
40
+ const elementAttrNames = this.el.getAttributeNames();
41
+ for (let i = 0; i < elementAttrNames.length; i++) {
42
+ select.setAttribute(elementAttrNames[i], this.el.getAttribute(elementAttrNames[i]));
43
+ }
44
+ // Use querySelectorAll to get actual DOM children (this.el.children is a FakeNodeList in Stencil)
45
+ const options = this.el.querySelectorAll('map-option');
46
+ for (let i = 0; i < options.length; i++) {
47
+ const option = document.createElement('option');
48
+ const optionAttrNames = options[i].getAttributeNames();
49
+ for (let j = 0; j < optionAttrNames.length; j++) {
50
+ option.setAttribute(optionAttrNames[j], options[i].getAttribute(optionAttrNames[j]));
51
+ }
52
+ option.innerHTML = options[i].innerHTML;
53
+ select.appendChild(option);
54
+ }
55
+ return select;
56
+ }
57
+ async whenReady() {
58
+ return new Promise((resolve, reject) => {
59
+ let interval, failureTimer;
60
+ if (this.selectDetails) {
61
+ resolve();
62
+ }
63
+ else {
64
+ const selectElement = this;
65
+ interval = setInterval(testForSelect, 300, selectElement);
66
+ failureTimer = setTimeout(selectNotDefined, 10000);
67
+ }
68
+ function testForSelect(selectElement) {
69
+ if (selectElement.selectDetails) {
70
+ clearInterval(interval);
71
+ clearTimeout(failureTimer);
72
+ resolve();
73
+ }
74
+ else if (!selectElement.el.isConnected) {
75
+ clearInterval(interval);
76
+ clearTimeout(failureTimer);
77
+ reject('map-select was disconnected while waiting to be ready');
78
+ }
79
+ }
80
+ function selectNotDefined() {
81
+ clearInterval(interval);
82
+ clearTimeout(failureTimer);
83
+ reject('Timeout reached waiting for map-select to be ready');
84
+ }
85
+ });
86
+ }
87
+ render() {
88
+ // Render the details/summary/select structure
89
+ return null;
90
+ }
91
+ static get watchers() { return {
92
+ "name": [{
93
+ "nameChanged": 0
94
+ }]
95
+ }; }
96
+ };
97
+
98
+ export { MapSelect as map_select };
@@ -0,0 +1,12 @@
1
+ import { r as registerInstance, g as getElement } from './index-BUsJ7i5g.js';
2
+
3
+ const MapSpan = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ }
7
+ get el() { return getElement(this); }
8
+ connectedCallback() { }
9
+ disconnectedCallback() { }
10
+ };
11
+
12
+ export { MapSpan as map_span };
@@ -0,0 +1,125 @@
1
+ import { r as registerInstance, g as getElement } from './index-BUsJ7i5g.js';
2
+
3
+ const MapStyle = class {
4
+ constructor(hostRef) {
5
+ registerInstance(this, hostRef);
6
+ }
7
+ get el() { return getElement(this); }
8
+ media;
9
+ _mql;
10
+ _changeHandler;
11
+ _observer;
12
+ styleElement;
13
+ _stylesheetHost;
14
+ async mediaChanged(newValue, oldValue) {
15
+ if (oldValue !== newValue) {
16
+ await this._registerMediaQuery(newValue);
17
+ }
18
+ }
19
+ getMapEl() {
20
+ return window.M?.Util?.getClosest?.(this.el, 'gcds-ext-map') || this.el.closest('gcds-ext-map');
21
+ }
22
+ _connect() {
23
+ this.styleElement = document.createElement('style');
24
+ this.styleElement.mapStyle = this.el;
25
+ this.styleElement.textContent = this.el.textContent;
26
+ this._copyAttributes(this.el, this.styleElement);
27
+ // Expose styleElement as a public property on the element
28
+ Object.defineProperty(this.el, 'styleElement', {
29
+ get: () => this.styleElement,
30
+ configurable: true,
31
+ enumerable: true
32
+ });
33
+ if (!this._stylesheetHost)
34
+ return;
35
+ // Try to render via layer's renderStyles method
36
+ // Note: If layer is not yet ready, the layer will call renderStyles
37
+ // on all map-style children when it finishes initialization
38
+ if (this._stylesheetHost._layer) {
39
+ this._stylesheetHost._layer.renderStyles?.(this.el);
40
+ }
41
+ else if (this._stylesheetHost._templatedLayer) {
42
+ this._stylesheetHost._templatedLayer.renderStyles?.(this.el);
43
+ }
44
+ else if (this._stylesheetHost._extentLayer) {
45
+ this._stylesheetHost._extentLayer.renderStyles?.(this.el);
46
+ }
47
+ this._observer = new MutationObserver(() => {
48
+ this.styleElement.textContent = this.el.textContent;
49
+ });
50
+ this._observer.observe(this.el, {
51
+ childList: true,
52
+ subtree: true,
53
+ characterData: true
54
+ });
55
+ }
56
+ _disconnect() {
57
+ if (this._observer) {
58
+ this._observer.disconnect();
59
+ this._observer = undefined;
60
+ }
61
+ if (this._stylesheetHost && this.styleElement) {
62
+ this.styleElement.remove();
63
+ this.styleElement = undefined;
64
+ }
65
+ }
66
+ _copyAttributes(source, target) {
67
+ Array.from(source.attributes).forEach((attribute) => {
68
+ if (attribute.nodeName !== 'media' && attribute.nodeName !== 'data-testid') {
69
+ target.setAttribute(attribute.nodeName, attribute.nodeValue);
70
+ }
71
+ });
72
+ }
73
+ async _registerMediaQuery(mq) {
74
+ if (!this._changeHandler) {
75
+ this._changeHandler = () => {
76
+ this._disconnect();
77
+ if (this._mql && this._mql.matches) {
78
+ this._connect();
79
+ }
80
+ };
81
+ }
82
+ if (mq) {
83
+ const map = this.getMapEl();
84
+ if (!map)
85
+ return;
86
+ if (typeof map.whenReady === 'function')
87
+ await map.whenReady();
88
+ if (this._mql) {
89
+ this._mql.removeEventListener('change', this._changeHandler);
90
+ }
91
+ this._mql = map.matchMedia(mq);
92
+ this._changeHandler();
93
+ this._mql.addEventListener('change', this._changeHandler);
94
+ }
95
+ else if (this._mql) {
96
+ this._mql.removeEventListener('change', this._changeHandler);
97
+ this._mql = undefined;
98
+ this._disconnect();
99
+ this._connect();
100
+ }
101
+ }
102
+ async connectedCallback() {
103
+ this._stylesheetHost = this.el.getRootNode() instanceof ShadowRoot
104
+ ? this.el.getRootNode().host
105
+ : this.el.parentElement;
106
+ if (!this._stylesheetHost)
107
+ return;
108
+ if (this.media) {
109
+ await this._registerMediaQuery(this.media);
110
+ }
111
+ else {
112
+ this._connect();
113
+ }
114
+ }
115
+ disconnectedCallback() {
116
+ this._disconnect();
117
+ }
118
+ static get watchers() { return {
119
+ "media": [{
120
+ "mediaChanged": 0
121
+ }]
122
+ }; }
123
+ };
124
+
125
+ export { MapStyle as map_style };
@@ -0,0 +1,272 @@
1
+ import { r as registerInstance, g as getElement, U as Util } from './index-BUsJ7i5g.js';
2
+ import { m as mapTileLayer } from './MapTileLayer-DvC_iOIS.js';
3
+ import { c as calculatePosition } from './calculatePosition-B4YLD_Og.js';
4
+
5
+ const MapTile = class {
6
+ constructor(hostRef) {
7
+ registerInstance(this, hostRef);
8
+ }
9
+ get el() { return getElement(this); }
10
+ // "Set once" properties - these are set once at connection and never change
11
+ row;
12
+ col;
13
+ zoom;
14
+ src;
15
+ _parentEl;
16
+ _tileLayer;
17
+ _extent;
18
+ // Store initial values to prevent changes after connection
19
+ _initialRow;
20
+ _initialCol;
21
+ _initialZoom;
22
+ _hasConnected = false;
23
+ srcChanged(newValue, oldValue) {
24
+ if (oldValue !== newValue) {
25
+ if (this._extent)
26
+ this._calculateExtent();
27
+ if (this._tileLayer) {
28
+ this._tileLayer.removeMapTile(this.el);
29
+ this._tileLayer.addMapTile(this.el);
30
+ }
31
+ }
32
+ }
33
+ connectedCallback() {
34
+ // Capture initial values before anything else - these won't change
35
+ // Read from attributes first, then fall back to props
36
+ this._initialRow = this.el.hasAttribute('row') ? +this.el.getAttribute('row') : (this.row ?? 0);
37
+ this._initialCol = this.el.hasAttribute('col') ? +this.el.getAttribute('col') : (this.col ?? 0);
38
+ // For zoom, check: explicit attribute -> prop -> map-meta value -> map zoom -> 0
39
+ let zoomValue = 0;
40
+ if (this.el.hasAttribute('zoom')) {
41
+ zoomValue = +this.el.getAttribute('zoom');
42
+ }
43
+ else if (this.zoom !== undefined) {
44
+ zoomValue = this.zoom;
45
+ }
46
+ else {
47
+ // Try to get zoom from map-meta element
48
+ const metaZoom = this._getMetaZoomValue();
49
+ if (metaZoom !== null) {
50
+ zoomValue = metaZoom;
51
+ }
52
+ else {
53
+ zoomValue = this.getMapEl()?.zoom || 0;
54
+ }
55
+ }
56
+ this._initialZoom = zoomValue;
57
+ this._hasConnected = true;
58
+ // Override getAttribute/setAttribute on the element to prevent row/col/zoom changes
59
+ const originalGetAttribute = this.el.getAttribute.bind(this.el);
60
+ const originalSetAttribute = this.el.setAttribute.bind(this.el);
61
+ this.el.getAttribute = (name) => {
62
+ if (this._hasConnected) {
63
+ switch (name) {
64
+ case 'row':
65
+ return String(this._initialRow);
66
+ case 'col':
67
+ return String(this._initialCol);
68
+ case 'zoom':
69
+ return String(this._initialZoom);
70
+ }
71
+ }
72
+ return originalGetAttribute(name);
73
+ };
74
+ this.el.setAttribute = (name, value) => {
75
+ if (this._hasConnected) {
76
+ switch (name) {
77
+ case 'row':
78
+ case 'col':
79
+ case 'zoom':
80
+ return; // Ignore changes to these after connection
81
+ }
82
+ }
83
+ originalSetAttribute(name, value);
84
+ };
85
+ // Override property accessors on the element to return initial values
86
+ Object.defineProperties(this.el, {
87
+ row: {
88
+ get: () => this._initialRow,
89
+ configurable: true
90
+ },
91
+ col: {
92
+ get: () => this._initialCol,
93
+ configurable: true
94
+ },
95
+ zoom: {
96
+ get: () => this._initialZoom,
97
+ configurable: true
98
+ }
99
+ });
100
+ // Find parent element (handle shadow DOM)
101
+ const parentNode = this.el.parentNode;
102
+ this._parentEl =
103
+ parentNode.nodeName === 'MAP-LAYER' ||
104
+ parentNode.nodeName === 'LAYER-' ||
105
+ parentNode.nodeName === 'MAP-LINK'
106
+ ? parentNode
107
+ : parentNode.host;
108
+ // Preload image
109
+ const imgObj = new Image();
110
+ imgObj.src = this.src || '';
111
+ this._createOrGetTileLayer();
112
+ }
113
+ disconnectedCallback() {
114
+ if (this._tileLayer) {
115
+ this._tileLayer.removeMapTile(this.el);
116
+ if (this._tileLayer._mapTiles && this._tileLayer._mapTiles.length === 0) {
117
+ this._tileLayer.remove();
118
+ this._tileLayer = null;
119
+ delete this._tileLayer;
120
+ const entry = this?._parentEl?._layerRegistry?.get(this.position);
121
+ if (entry) {
122
+ entry.count--;
123
+ if (entry.count === 0) {
124
+ this._parentEl._layerRegistry.delete(this.position);
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ // "Set once" property pattern for row, col, zoom
131
+ // After connection, always return the initial values
132
+ get rowValue() {
133
+ return this._hasConnected ? this._initialRow : +this.row;
134
+ }
135
+ get colValue() {
136
+ return this._hasConnected ? this._initialCol : +this.col;
137
+ }
138
+ get zoomValue() {
139
+ return this._hasConnected ? this._initialZoom : +this.zoom;
140
+ }
141
+ get extent() {
142
+ if (!this._extent)
143
+ this._calculateExtent();
144
+ return this._extent;
145
+ }
146
+ get position() {
147
+ return calculatePosition(this.el);
148
+ }
149
+ isFirst() {
150
+ return !this._parentEl._layerRegistry.has(this.position);
151
+ }
152
+ getPrevious() {
153
+ if (this.isFirst())
154
+ return null;
155
+ return this.el.previousElementSibling;
156
+ }
157
+ async zoomTo() {
158
+ const extent = this.extent;
159
+ const map = this.getMapEl()?._map;
160
+ if (!extent || !map)
161
+ return;
162
+ 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;
163
+ map.setView(center, Util.getMaxZoom(bounds, map, minZoom, maxZoom), { animate: false });
164
+ }
165
+ getMapEl() {
166
+ return Util.getClosest(this.el, 'gcds-ext-map');
167
+ }
168
+ getLayerEl() {
169
+ return Util.getClosest(this.el, 'map-layer,layer-');
170
+ }
171
+ _getMetaZoomValue() {
172
+ // Look for <map-meta name="zoom" content="...value=N..."> in parent layer
173
+ const layerEl = this.getLayerEl();
174
+ if (!layerEl)
175
+ return null;
176
+ const metaZoom = layerEl.querySelector('map-meta[name="zoom"][content]');
177
+ if (!metaZoom)
178
+ return null;
179
+ const content = metaZoom.getAttribute('content');
180
+ if (!content)
181
+ return null;
182
+ // Parse content like "min=1,max=4,value=2"
183
+ const valueMatch = content.match(/value=(\d+)/);
184
+ if (valueMatch && valueMatch[1]) {
185
+ return parseInt(valueMatch[1], 10);
186
+ }
187
+ return null;
188
+ }
189
+ getMeta(metaName) {
190
+ const name = metaName.toLowerCase();
191
+ if (name !== 'cs' && name !== 'zoom' && name !== 'projection')
192
+ return;
193
+ const sdMeta = this._parentEl?.shadowRoot?.querySelector(`map-meta[name=${name}][content]`);
194
+ if (this._parentEl?.nodeName === 'MAP-LINK') {
195
+ return sdMeta || this._parentEl.parentElement?.getMeta(metaName);
196
+ }
197
+ else {
198
+ return this._parentEl?.src
199
+ ? this._parentEl.shadowRoot?.querySelector(`map-meta[name=${name}][content]`)
200
+ : this._parentEl.querySelector(`map-meta[name=${name}][content]`);
201
+ }
202
+ }
203
+ async _createOrGetTileLayer() {
204
+ if (!this._parentEl?.whenReady)
205
+ return;
206
+ await this._parentEl.whenReady();
207
+ const parentElement = this._parentEl;
208
+ if (this.isFirst()) {
209
+ this._tileLayer = mapTileLayer({
210
+ projection: this.getMapEl()?.projection,
211
+ opacity: 1,
212
+ pane: parentElement._templatedLayer?.getContainer?.() ||
213
+ parentElement._layer?.getContainer?.(),
214
+ zIndex: this.position
215
+ });
216
+ this._tileLayer.addMapTile(this.el);
217
+ if (parentElement._templatedLayer?.addLayer) {
218
+ parentElement._templatedLayer.addLayer(this._tileLayer);
219
+ }
220
+ else {
221
+ parentElement._layer?.addLayer?.(this._tileLayer);
222
+ }
223
+ // Publish _tileLayer on the element for test access
224
+ this.el._tileLayer = this._tileLayer;
225
+ // Add this position to the parent's _layerRegistry with layer reference and count = 1
226
+ parentElement._layerRegistry.set(this.position, { layer: this._tileLayer, count: 1 });
227
+ }
228
+ else {
229
+ // get the previously registered TileLayer for this position
230
+ const entry = parentElement._layerRegistry.get(this.position);
231
+ this._tileLayer = entry?.layer;
232
+ if (entry) {
233
+ entry.count++;
234
+ }
235
+ if (this._tileLayer) {
236
+ this._tileLayer.addMapTile(this.el);
237
+ // Publish _tileLayer on the element for test access
238
+ this.el._tileLayer = this._tileLayer;
239
+ }
240
+ }
241
+ }
242
+ _calculateExtent() {
243
+ const mapEl = this.getMapEl();
244
+ if (!mapEl || !mapEl._map)
245
+ return;
246
+ const map = mapEl._map;
247
+ const projection = map.options.projection;
248
+ const tileSize = window.M[projection].options.crs.tile.bounds.max.x;
249
+ const pixelX = this.colValue * tileSize;
250
+ const pixelY = this.rowValue * tileSize;
251
+ const pixelBounds = window.L.bounds(window.L.point(pixelX, pixelY), window.L.point(pixelX + tileSize, pixelY + tileSize));
252
+ const pcrsBounds = Util.pixelToPCRSBounds(pixelBounds, this.zoomValue, projection);
253
+ this._extent = Util._convertAndFormatPCRS(pcrsBounds, map.options.crs, projection);
254
+ this._extent.zoom = {
255
+ minZoom: this.zoomValue,
256
+ maxZoom: this.zoomValue,
257
+ minNativeZoom: this.zoomValue,
258
+ maxNativeZoom: this.zoomValue
259
+ };
260
+ }
261
+ render() {
262
+ // This component does not render any visible DOM
263
+ return null;
264
+ }
265
+ static get watchers() { return {
266
+ "src": [{
267
+ "srcChanged": 0
268
+ }]
269
+ }; }
270
+ };
271
+
272
+ export { MapTile as map_tile };
@@ -0,0 +1,57 @@
1
+ function renderStyles(mapStyleOrLink) {
2
+ let e = mapStyleOrLink.link || mapStyleOrLink.styleElement;
3
+ if (e === undefined) return;
4
+
5
+ const getStylePositionAndNode = (styleOrLink) => {
6
+ // Get all already rendered <style> or <link> elements in the shadow DOM container
7
+ const renderedSiblingStyles = Array.from(
8
+ this._container.querySelectorAll(':scope > style, :scope > link[rel="stylesheet"]')
9
+ );
10
+
11
+ // If there are no rendered styles or links yet, insert before any content
12
+ if (renderedSiblingStyles.length === 0) {
13
+ const lastChild = this._container.lastChild;
14
+ if (!lastChild) {
15
+ return { position: 'afterbegin', node: this._container };
16
+ }
17
+
18
+ const isSVG = lastChild.nodeName === 'SVG';
19
+ const isContainer = lastChild.classList?.contains('mapml-vector-container') ||
20
+ lastChild.classList?.contains('mapml-extentlayer-container');
21
+
22
+ return (isSVG || isContainer)
23
+ ? { position: 'beforebegin', node: lastChild }
24
+ : { position: 'afterend', node: lastChild };
25
+ }
26
+
27
+ // Peek into the light DOM context for comparison
28
+ const mapStyleOrLinkLightDOMElement =
29
+ styleOrLink.mapStyle || styleOrLink.mapLink;
30
+
31
+ // Traverse the rendered siblings in the shadow DOM
32
+ for (let i = 0; i < renderedSiblingStyles.length; i++) {
33
+ const rendered = renderedSiblingStyles[i];
34
+ const siblingMapStyleOrLinkLightDOMElement =
35
+ rendered.mapStyle || rendered.mapLink;
36
+
37
+ // Compare the light DOM order
38
+ if (
39
+ siblingMapStyleOrLinkLightDOMElement &&
40
+ mapStyleOrLinkLightDOMElement.compareDocumentPosition(
41
+ siblingMapStyleOrLinkLightDOMElement
42
+ ) & Node.DOCUMENT_POSITION_FOLLOWING
43
+ ) {
44
+ // Insert the new style or link before the already-rendered sibling element
45
+ return { position: 'beforebegin', node: rendered };
46
+ }
47
+ }
48
+
49
+ // If no preceding sibling was found, insert after the last rendered element
50
+ return { position: 'afterend', node: renderedSiblingStyles.at(-1) };
51
+ };
52
+
53
+ let positionAndNode = getStylePositionAndNode(e);
54
+ positionAndNode.node.insertAdjacentElement(positionAndNode.position, e);
55
+ }
56
+
57
+ export { renderStyles as r };