@rosettadash/web-components 0.1.0 → 0.1.3

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 (351) hide show
  1. package/browser/media.js +461 -39
  2. package/browser/media.js.map +3 -3
  3. package/package.json +332 -36
  4. package/src/domain/i18n/app-language-select/index.d.ts +3 -0
  5. package/src/domain/i18n/app-language-select/index.js +3 -0
  6. package/src/domain/i18n/app-language-select/index.js.map +1 -0
  7. package/src/domain/i18n/app-language-select/parse-locale-options.d.ts +7 -0
  8. package/src/domain/i18n/app-language-select/parse-locale-options.js +39 -0
  9. package/src/domain/i18n/app-language-select/parse-locale-options.js.map +1 -0
  10. package/src/domain/i18n/app-language-select/rd-app-language-select.d.ts +38 -0
  11. package/src/domain/i18n/app-language-select/rd-app-language-select.js +138 -0
  12. package/src/domain/i18n/app-language-select/rd-app-language-select.js.map +1 -0
  13. package/src/domain/i18n/index.d.ts +2 -0
  14. package/src/domain/i18n/index.js +6 -0
  15. package/src/domain/i18n/index.js.map +1 -0
  16. package/src/domain/index.d.ts +6 -0
  17. package/src/domain/index.js +18 -0
  18. package/src/domain/index.js.map +1 -0
  19. package/src/domain/person-invite/index.d.ts +2 -0
  20. package/src/domain/person-invite/index.js +2 -0
  21. package/src/domain/person-invite/index.js.map +1 -0
  22. package/src/domain/person-invite/rd-person-invite.d.ts +17 -0
  23. package/src/domain/person-invite/rd-person-invite.js +33 -0
  24. package/src/domain/person-invite/rd-person-invite.js.map +1 -0
  25. package/src/domain/role-assign/index.d.ts +2 -0
  26. package/src/domain/role-assign/index.js +2 -0
  27. package/src/domain/role-assign/index.js.map +1 -0
  28. package/src/domain/role-assign/rd-role-assign.d.ts +21 -0
  29. package/src/domain/role-assign/rd-role-assign.js +36 -0
  30. package/src/domain/role-assign/rd-role-assign.js.map +1 -0
  31. package/src/domain/role-gate/index.d.ts +2 -0
  32. package/src/domain/role-gate/index.js +2 -0
  33. package/src/domain/role-gate/index.js.map +1 -0
  34. package/src/domain/role-gate/rd-role-gate.d.ts +19 -0
  35. package/src/domain/role-gate/rd-role-gate.js +31 -0
  36. package/src/domain/role-gate/rd-role-gate.js.map +1 -0
  37. package/src/domain/time-preset/index.d.ts +2 -0
  38. package/src/domain/time-preset/index.js +2 -0
  39. package/src/domain/time-preset/index.js.map +1 -0
  40. package/src/domain/time-preset/rd-time-preset.d.ts +23 -0
  41. package/src/domain/time-preset/rd-time-preset.js +34 -0
  42. package/src/domain/time-preset/rd-time-preset.js.map +1 -0
  43. package/src/index.d.ts +5 -5
  44. package/src/index.js +13 -13
  45. package/src/index.js.map +1 -1
  46. package/src/layout/collapsible/index.d.ts +2 -0
  47. package/src/layout/collapsible/index.js +2 -0
  48. package/src/layout/collapsible/index.js.map +1 -0
  49. package/src/layout/collapsible/rd-collapsible.d.ts +21 -0
  50. package/src/layout/collapsible/rd-collapsible.js +50 -0
  51. package/src/layout/collapsible/rd-collapsible.js.map +1 -0
  52. package/src/layout/flex/index.d.ts +2 -0
  53. package/src/layout/flex/index.js +2 -0
  54. package/src/layout/flex/index.js.map +1 -0
  55. package/src/layout/flex/rd-flex-layout.d.ts +17 -0
  56. package/src/layout/flex/rd-flex-layout.js +24 -0
  57. package/src/layout/flex/rd-flex-layout.js.map +1 -0
  58. package/src/layout/grid/index.d.ts +2 -0
  59. package/src/layout/grid/index.js +2 -0
  60. package/src/layout/grid/index.js.map +1 -0
  61. package/src/layout/grid/rd-grid-layout.d.ts +17 -0
  62. package/src/layout/grid/rd-grid-layout.js +24 -0
  63. package/src/layout/grid/rd-grid-layout.js.map +1 -0
  64. package/src/layout/index.d.ts +9 -0
  65. package/src/layout/index.js +27 -0
  66. package/src/layout/index.js.map +1 -0
  67. package/src/layout/modal/index.d.ts +2 -0
  68. package/src/layout/modal/index.js +2 -0
  69. package/src/layout/modal/index.js.map +1 -0
  70. package/src/layout/modal/rd-modal-layout.d.ts +20 -0
  71. package/src/layout/modal/rd-modal-layout.js +40 -0
  72. package/src/layout/modal/rd-modal-layout.js.map +1 -0
  73. package/src/layout/scroll-region/index.d.ts +2 -0
  74. package/src/layout/scroll-region/index.js +2 -0
  75. package/src/layout/scroll-region/index.js.map +1 -0
  76. package/src/layout/scroll-region/rd-scroll-region.d.ts +17 -0
  77. package/src/layout/scroll-region/rd-scroll-region.js +26 -0
  78. package/src/layout/scroll-region/rd-scroll-region.js.map +1 -0
  79. package/src/layout/tabs/index.d.ts +2 -0
  80. package/src/layout/tabs/index.js +2 -0
  81. package/src/layout/tabs/index.js.map +1 -0
  82. package/src/layout/tabs/rd-tabs-layout.d.ts +23 -0
  83. package/src/layout/tabs/rd-tabs-layout.js +34 -0
  84. package/src/layout/tabs/rd-tabs-layout.js.map +1 -0
  85. package/src/lib/element-utils.js +3 -0
  86. package/src/lib/element-utils.js.map +1 -1
  87. package/src/lib/rosetta-atom-element.d.ts +23 -0
  88. package/src/lib/rosetta-atom-element.js +104 -0
  89. package/src/lib/rosetta-atom-element.js.map +1 -0
  90. package/src/lib/shadow-base.js +3 -0
  91. package/src/lib/shadow-base.js.map +1 -1
  92. package/src/lib/shadow-resources.js +7 -2
  93. package/src/lib/shadow-resources.js.map +1 -1
  94. package/src/logic/index.d.ts +2 -0
  95. package/src/logic/index.js +6 -0
  96. package/src/logic/index.js.map +1 -0
  97. package/src/logic/timer/index.d.ts +2 -0
  98. package/src/logic/timer/index.js +2 -0
  99. package/src/logic/timer/index.js.map +1 -0
  100. package/src/logic/timer/rd-timer.d.ts +18 -0
  101. package/src/logic/timer/rd-timer.js +24 -0
  102. package/src/logic/timer/rd-timer.js.map +1 -0
  103. package/src/visual/chart/bar/index.d.ts +2 -0
  104. package/src/visual/chart/bar/index.js +2 -0
  105. package/src/visual/chart/bar/index.js.map +1 -0
  106. package/src/visual/chart/bar/rd-bar-chart.d.ts +21 -0
  107. package/src/visual/chart/bar/rd-bar-chart.js +83 -0
  108. package/src/visual/chart/bar/rd-bar-chart.js.map +1 -0
  109. package/src/visual/chart/line/index.d.ts +2 -0
  110. package/src/visual/chart/line/index.js +2 -0
  111. package/src/visual/chart/line/index.js.map +1 -0
  112. package/src/visual/chart/line/rd-line-chart.d.ts +22 -0
  113. package/src/visual/chart/line/rd-line-chart.js +105 -0
  114. package/src/visual/chart/line/rd-line-chart.js.map +1 -0
  115. package/src/visual/chart/pie/index.d.ts +2 -0
  116. package/src/visual/chart/pie/index.js +2 -0
  117. package/src/visual/chart/pie/index.js.map +1 -0
  118. package/src/visual/chart/pie/rd-pie-chart.d.ts +15 -0
  119. package/src/visual/chart/pie/rd-pie-chart.js +23 -0
  120. package/src/visual/chart/pie/rd-pie-chart.js.map +1 -0
  121. package/src/visual/detail/index.d.ts +2 -0
  122. package/src/visual/detail/index.js +2 -0
  123. package/src/visual/detail/index.js.map +1 -0
  124. package/src/visual/detail/rd-detail-panel.d.ts +16 -0
  125. package/src/visual/detail/rd-detail-panel.js +24 -0
  126. package/src/visual/detail/rd-detail-panel.js.map +1 -0
  127. package/src/visual/display/3d-bar-chart/index.d.ts +2 -0
  128. package/src/visual/display/3d-bar-chart/index.js +2 -0
  129. package/src/visual/display/3d-bar-chart/index.js.map +1 -0
  130. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.d.ts +16 -0
  131. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.js +24 -0
  132. package/src/visual/display/3d-bar-chart/rd-three-bar-chart.js.map +1 -0
  133. package/src/visual/display/3d-geo-globe/globe-view.d.ts +86 -0
  134. package/src/visual/display/3d-geo-globe/globe-view.js +235 -0
  135. package/src/visual/display/3d-geo-globe/globe-view.js.map +1 -0
  136. package/src/visual/display/3d-geo-globe/index.d.ts +3 -0
  137. package/src/visual/display/3d-geo-globe/index.js +3 -0
  138. package/src/visual/display/3d-geo-globe/index.js.map +1 -0
  139. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.d.ts +36 -0
  140. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.js +330 -0
  141. package/src/visual/display/3d-geo-globe/rd-three-geo-globe.js.map +1 -0
  142. package/src/visual/display/3d-gltf-model/index.d.ts +2 -0
  143. package/src/visual/display/3d-gltf-model/index.js +2 -0
  144. package/src/visual/display/3d-gltf-model/index.js.map +1 -0
  145. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.d.ts +16 -0
  146. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.js +24 -0
  147. package/src/visual/display/3d-gltf-model/rd-three-gltf-model.js.map +1 -0
  148. package/src/visual/display/3d-scatter/index.d.ts +2 -0
  149. package/src/visual/display/3d-scatter/index.js +2 -0
  150. package/src/visual/display/3d-scatter/index.js.map +1 -0
  151. package/src/visual/display/3d-scatter/rd-three-scatter-plot.d.ts +16 -0
  152. package/src/visual/display/3d-scatter/rd-three-scatter-plot.js +24 -0
  153. package/src/visual/display/3d-scatter/rd-three-scatter-plot.js.map +1 -0
  154. package/src/visual/display/3d-scene/index.d.ts +2 -0
  155. package/src/visual/display/3d-scene/index.js +2 -0
  156. package/src/visual/display/3d-scene/index.js.map +1 -0
  157. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.d.ts +16 -0
  158. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.js +24 -0
  159. package/src/visual/display/3d-scene/rd-three-scene-point-cloud.js.map +1 -0
  160. package/src/visual/display/geo-map/geo-map-types.d.ts +32 -0
  161. package/src/visual/display/geo-map/geo-map-types.js +10 -0
  162. package/src/visual/display/geo-map/geo-map-types.js.map +1 -0
  163. package/src/visual/display/geo-map/index.d.ts +5 -0
  164. package/src/visual/display/geo-map/index.js +5 -0
  165. package/src/visual/display/geo-map/index.js.map +1 -0
  166. package/src/visual/display/geo-map/parse-center.d.ts +5 -0
  167. package/src/visual/display/geo-map/parse-center.js +28 -0
  168. package/src/visual/display/geo-map/parse-center.js.map +1 -0
  169. package/src/visual/display/geo-map/parse-markers.d.ts +2 -0
  170. package/src/visual/display/geo-map/parse-markers.js +32 -0
  171. package/src/visual/display/geo-map/parse-markers.js.map +1 -0
  172. package/src/visual/display/geo-map/providers/create-adapter.d.ts +2 -0
  173. package/src/visual/display/geo-map/providers/create-adapter.js +11 -0
  174. package/src/visual/display/geo-map/providers/create-adapter.js.map +1 -0
  175. package/src/visual/display/geo-map/providers/google-maps-adapter.d.ts +2 -0
  176. package/src/visual/display/geo-map/providers/google-maps-adapter.js +63 -0
  177. package/src/visual/display/geo-map/providers/google-maps-adapter.js.map +1 -0
  178. package/src/visual/display/geo-map/providers/leaflet-adapter.d.ts +2 -0
  179. package/src/visual/display/geo-map/providers/leaflet-adapter.js +78 -0
  180. package/src/visual/display/geo-map/providers/leaflet-adapter.js.map +1 -0
  181. package/src/visual/display/geo-map/providers/maplibre-adapter.d.ts +2 -0
  182. package/src/visual/display/geo-map/providers/maplibre-adapter.js +71 -0
  183. package/src/visual/display/geo-map/providers/maplibre-adapter.js.map +1 -0
  184. package/src/visual/display/geo-map/providers/provider-utils.d.ts +8 -0
  185. package/src/visual/display/geo-map/providers/provider-utils.js +28 -0
  186. package/src/visual/display/geo-map/providers/provider-utils.js.map +1 -0
  187. package/src/visual/display/geo-map/rd-geo-map.d.ts +48 -0
  188. package/src/visual/display/geo-map/rd-geo-map.js +219 -0
  189. package/src/visual/display/geo-map/rd-geo-map.js.map +1 -0
  190. package/src/visual/display/index.d.ts +7 -0
  191. package/src/visual/display/index.js +21 -0
  192. package/src/visual/display/index.js.map +1 -0
  193. package/src/visual/index.d.ts +34 -0
  194. package/src/visual/index.js +102 -0
  195. package/src/visual/index.js.map +1 -0
  196. package/src/visual/input/checkbox/index.d.ts +2 -0
  197. package/src/visual/input/checkbox/index.js +2 -0
  198. package/src/visual/input/checkbox/index.js.map +1 -0
  199. package/src/visual/input/checkbox/rd-checkbox-input.d.ts +19 -0
  200. package/src/visual/input/checkbox/rd-checkbox-input.js +32 -0
  201. package/src/visual/input/checkbox/rd-checkbox-input.js.map +1 -0
  202. package/src/visual/input/date-range/index.d.ts +2 -0
  203. package/src/visual/input/date-range/index.js +2 -0
  204. package/src/visual/input/date-range/index.js.map +1 -0
  205. package/src/visual/input/date-range/rd-date-range-filter.d.ts +24 -0
  206. package/src/visual/input/date-range/rd-date-range-filter.js +42 -0
  207. package/src/visual/input/date-range/rd-date-range-filter.js.map +1 -0
  208. package/src/visual/input/number/index.d.ts +2 -0
  209. package/src/visual/input/number/index.js +2 -0
  210. package/src/visual/input/number/index.js.map +1 -0
  211. package/src/visual/input/number/rd-number-input.d.ts +22 -0
  212. package/src/visual/input/number/rd-number-input.js +36 -0
  213. package/src/visual/input/number/rd-number-input.js.map +1 -0
  214. package/src/visual/input/select/index.d.ts +2 -0
  215. package/src/visual/input/select/index.js +2 -0
  216. package/src/visual/input/select/index.js.map +1 -0
  217. package/src/visual/input/select/rd-select-input.d.ts +24 -0
  218. package/src/visual/input/select/rd-select-input.js +37 -0
  219. package/src/visual/input/select/rd-select-input.js.map +1 -0
  220. package/src/visual/input/text/index.d.ts +2 -0
  221. package/src/visual/input/text/index.js +2 -0
  222. package/src/visual/input/text/index.js.map +1 -0
  223. package/src/visual/input/text/rd-text-input.d.ts +21 -0
  224. package/src/visual/input/text/rd-text-input.js +35 -0
  225. package/src/visual/input/text/rd-text-input.js.map +1 -0
  226. package/src/visual/input/textarea/index.d.ts +2 -0
  227. package/src/visual/input/textarea/index.js +2 -0
  228. package/src/visual/input/textarea/index.js.map +1 -0
  229. package/src/visual/input/textarea/rd-textarea-input.d.ts +20 -0
  230. package/src/visual/input/textarea/rd-textarea-input.js +34 -0
  231. package/src/visual/input/textarea/rd-textarea-input.js.map +1 -0
  232. package/src/visual/kpi/index.d.ts +2 -0
  233. package/src/visual/kpi/index.js +2 -0
  234. package/src/visual/kpi/index.js.map +1 -0
  235. package/src/visual/kpi/rd-kpi-card.d.ts +18 -0
  236. package/src/visual/kpi/rd-kpi-card.js +26 -0
  237. package/src/visual/kpi/rd-kpi-card.js.map +1 -0
  238. package/src/visual/media/index.d.ts +2 -0
  239. package/src/visual/media/index.js +6 -0
  240. package/src/visual/media/index.js.map +1 -1
  241. package/src/visual/media/live-capture/index.d.ts +2 -0
  242. package/src/visual/media/live-capture/index.js +2 -0
  243. package/src/visual/media/live-capture/index.js.map +1 -0
  244. package/src/visual/media/live-capture/rd-live-capture.d.ts +16 -0
  245. package/src/visual/media/live-capture/rd-live-capture.js +23 -0
  246. package/src/visual/media/live-capture/rd-live-capture.js.map +1 -0
  247. package/src/visual/media/video-source/rd-video-source.d.ts +5 -0
  248. package/src/visual/media/video-source/rd-video-source.js +101 -18
  249. package/src/visual/media/video-source/rd-video-source.js.map +1 -1
  250. package/src/visual/media/youtube-embed/index.d.ts +3 -0
  251. package/src/visual/media/youtube-embed/index.js +3 -0
  252. package/src/visual/media/youtube-embed/index.js.map +1 -0
  253. package/src/visual/media/youtube-embed/parse-youtube-id.d.ts +10 -0
  254. package/src/visual/media/youtube-embed/parse-youtube-id.js +56 -0
  255. package/src/visual/media/youtube-embed/parse-youtube-id.js.map +1 -0
  256. package/src/visual/media/youtube-embed/rd-youtube-embed.d.ts +35 -0
  257. package/src/visual/media/youtube-embed/rd-youtube-embed.js +121 -0
  258. package/src/visual/media/youtube-embed/rd-youtube-embed.js.map +1 -0
  259. package/src/visual/news/article-detail/index.d.ts +2 -0
  260. package/src/visual/news/article-detail/index.js +2 -0
  261. package/src/visual/news/article-detail/index.js.map +1 -0
  262. package/src/visual/news/article-detail/rd-news-article-detail.d.ts +16 -0
  263. package/src/visual/news/article-detail/rd-news-article-detail.js +24 -0
  264. package/src/visual/news/article-detail/rd-news-article-detail.js.map +1 -0
  265. package/src/visual/news/language-select/index.d.ts +2 -0
  266. package/src/visual/news/language-select/index.js +2 -0
  267. package/src/visual/news/language-select/index.js.map +1 -0
  268. package/src/visual/news/language-select/rd-news-language-select.d.ts +23 -0
  269. package/src/visual/news/language-select/rd-news-language-select.js +37 -0
  270. package/src/visual/news/language-select/rd-news-language-select.js.map +1 -0
  271. package/src/visual/news/region-select/index.d.ts +2 -0
  272. package/src/visual/news/region-select/index.js +2 -0
  273. package/src/visual/news/region-select/index.js.map +1 -0
  274. package/src/visual/news/region-select/rd-news-region-select.d.ts +23 -0
  275. package/src/visual/news/region-select/rd-news-region-select.js +37 -0
  276. package/src/visual/news/region-select/rd-news-region-select.js.map +1 -0
  277. package/src/visual/news/results-table/index.d.ts +2 -0
  278. package/src/visual/news/results-table/index.js +2 -0
  279. package/src/visual/news/results-table/index.js.map +1 -0
  280. package/src/visual/news/results-table/rd-news-results-table.d.ts +16 -0
  281. package/src/visual/news/results-table/rd-news-results-table.js +33 -0
  282. package/src/visual/news/results-table/rd-news-results-table.js.map +1 -0
  283. package/src/visual/news/search-box/index.d.ts +2 -0
  284. package/src/visual/news/search-box/index.js +2 -0
  285. package/src/visual/news/search-box/index.js.map +1 -0
  286. package/src/visual/news/search-box/rd-news-search-box.d.ts +19 -0
  287. package/src/visual/news/search-box/rd-news-search-box.js +42 -0
  288. package/src/visual/news/search-box/rd-news-search-box.js.map +1 -0
  289. package/src/visual/news/type-select/index.d.ts +2 -0
  290. package/src/visual/news/type-select/index.js +2 -0
  291. package/src/visual/news/type-select/index.js.map +1 -0
  292. package/src/visual/news/type-select/rd-news-type-select.d.ts +23 -0
  293. package/src/visual/news/type-select/rd-news-type-select.js +37 -0
  294. package/src/visual/news/type-select/rd-news-type-select.js.map +1 -0
  295. package/src/visual/plugin/metric-chip/index.d.ts +2 -0
  296. package/src/visual/plugin/metric-chip/index.js +2 -0
  297. package/src/visual/plugin/metric-chip/index.js.map +1 -0
  298. package/src/visual/plugin/metric-chip/rd-metric-chip.d.ts +16 -0
  299. package/src/visual/plugin/metric-chip/rd-metric-chip.js +23 -0
  300. package/src/visual/plugin/metric-chip/rd-metric-chip.js.map +1 -0
  301. package/src/visual/plugin/status-badge/index.d.ts +2 -0
  302. package/src/visual/plugin/status-badge/index.js +2 -0
  303. package/src/visual/plugin/status-badge/index.js.map +1 -0
  304. package/src/visual/plugin/status-badge/rd-status-badge.d.ts +16 -0
  305. package/src/visual/plugin/status-badge/rd-status-badge.js +19 -0
  306. package/src/visual/plugin/status-badge/rd-status-badge.js.map +1 -0
  307. package/src/visual/skeleton/index.d.ts +2 -0
  308. package/src/visual/skeleton/index.js +2 -0
  309. package/src/visual/skeleton/index.js.map +1 -0
  310. package/src/visual/skeleton/rd-loading-skeleton.d.ts +15 -0
  311. package/src/visual/skeleton/rd-loading-skeleton.js +20 -0
  312. package/src/visual/skeleton/rd-loading-skeleton.js.map +1 -0
  313. package/src/visual/svg/icon/index.d.ts +2 -0
  314. package/src/visual/svg/icon/index.js +2 -0
  315. package/src/visual/svg/icon/index.js.map +1 -0
  316. package/src/visual/svg/icon/rd-svg-icon.d.ts +18 -0
  317. package/src/visual/svg/icon/rd-svg-icon.js +20 -0
  318. package/src/visual/svg/icon/rd-svg-icon.js.map +1 -0
  319. package/src/visual/svg/inline/index.d.ts +2 -0
  320. package/src/visual/svg/inline/index.js +2 -0
  321. package/src/visual/svg/inline/index.js.map +1 -0
  322. package/src/visual/svg/inline/rd-svg-inline.d.ts +17 -0
  323. package/src/visual/svg/inline/rd-svg-inline.js +20 -0
  324. package/src/visual/svg/inline/rd-svg-inline.js.map +1 -0
  325. package/src/visual/table/index.d.ts +2 -0
  326. package/src/visual/table/index.js +2 -0
  327. package/src/visual/table/index.js.map +1 -0
  328. package/src/visual/table/rd-data-table.d.ts +26 -0
  329. package/src/visual/table/rd-data-table.js +46 -0
  330. package/src/visual/table/rd-data-table.js.map +1 -0
  331. package/src/visual/wasm/media/index.d.ts +1 -0
  332. package/src/visual/wasm/media/index.js +2 -0
  333. package/src/visual/wasm/media/index.js.map +1 -0
  334. package/src/visual/wasm/module/index.d.ts +2 -0
  335. package/src/visual/wasm/module/index.js +2 -0
  336. package/src/visual/wasm/module/index.js.map +1 -0
  337. package/src/visual/wasm/module/rd-wasm-module.d.ts +16 -0
  338. package/src/visual/wasm/module/rd-wasm-module.js +24 -0
  339. package/src/visual/wasm/module/rd-wasm-module.js.map +1 -0
  340. package/src/visual/wasm/worker-host/index.d.ts +2 -0
  341. package/src/visual/wasm/worker-host/index.js +2 -0
  342. package/src/visual/wasm/worker-host/index.js.map +1 -0
  343. package/src/visual/wasm/worker-host/rd-wasm-worker-host.d.ts +16 -0
  344. package/src/visual/wasm/worker-host/rd-wasm-worker-host.js +24 -0
  345. package/src/visual/wasm/worker-host/rd-wasm-worker-host.js.map +1 -0
  346. package/src/wasm/wasm-media/rd-wasm-media.d.ts +10 -0
  347. package/src/wasm/wasm-media/rd-wasm-media.js +182 -41
  348. package/src/wasm/wasm-media/rd-wasm-media.js.map +1 -1
  349. package/styles/runtime.css +1609 -0
  350. package/styles/styles.css +1 -0
  351. package/styles/tokens.css +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-center.js","sourceRoot":"","sources":["../../../../../../../packages/web-components/src/visual/display/geo-map/parse-center.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,GAAkB,EAAE,WAAuB,oBAAoB;IAI/F,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAiC,CAAC;YACjD,OAAO;gBACL,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;gBAC5C,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;gBACvC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { GeoMapMarker } from './geo-map-types.js';
2
+ export declare function parseGeoMapMarkers(raw: string | null): GeoMapMarker[];
@@ -0,0 +1,32 @@
1
+ import { readNumber, readString } from '../../../lib/element-utils.js';
2
+ export function parseGeoMapMarkers(raw) {
3
+ if (!raw) {
4
+ return [];
5
+ }
6
+ try {
7
+ const parsed = JSON.parse(raw);
8
+ if (!Array.isArray(parsed)) {
9
+ return [];
10
+ }
11
+ return parsed
12
+ .map((entry) => {
13
+ if (!entry || typeof entry !== 'object') {
14
+ return null;
15
+ }
16
+ const record = entry;
17
+ const id = readString(record['id'], '');
18
+ const lat = readNumber(record['lat'], Number.NaN);
19
+ const lng = readNumber(record['lng'], Number.NaN);
20
+ if (!id || !Number.isFinite(lat) || !Number.isFinite(lng)) {
21
+ return null;
22
+ }
23
+ const label = readString(record['label'], '');
24
+ return label ? { id, lat, lng, label } : { id, lat, lng };
25
+ })
26
+ .filter((item) => item !== null);
27
+ }
28
+ catch {
29
+ return [];
30
+ }
31
+ }
32
+ //# sourceMappingURL=parse-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-markers.js","sourceRoot":"","sources":["../../../../../../../packages/web-components/src/visual/display/geo-map/parse-markers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGvE,MAAM,UAAU,kBAAkB,CAAC,GAAkB;IACnD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,MAAM;aACV,GAAG,CAAC,CAAC,KAAK,EAAuB,EAAE;YAClC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,MAAM,GAAG,KAAgC,CAAC;YAChD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC5D,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAwB,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { GeoMapAdapter, GeoMapAdapterOptions } from '../geo-map-types.js';
2
+ export declare function createGeoMapAdapter(options: GeoMapAdapterOptions): Promise<GeoMapAdapter>;
@@ -0,0 +1,11 @@
1
+ export async function createGeoMapAdapter(options) {
2
+ switch (options.provider) {
3
+ case 'leaflet':
4
+ return (await import('./leaflet-adapter.js')).createLeafletAdapter(options);
5
+ case 'google-maps':
6
+ return (await import('./google-maps-adapter.js')).createGoogleMapsAdapter(options);
7
+ default:
8
+ return (await import('./maplibre-adapter.js')).createMaplibreAdapter(options);
9
+ }
10
+ }
11
+ //# sourceMappingURL=create-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-adapter.js","sourceRoot":"","sources":["../../../../../../../../packages/web-components/src/visual/display/geo-map/providers/create-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6B;IAE7B,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,SAAS;YACZ,OAAO,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9E,KAAK,aAAa;YAChB,OAAO,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACrF;YACE,OAAO,CAAC,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAClF,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { GeoMapAdapter, GeoMapAdapterOptions } from '../geo-map-types.js';
2
+ export declare function createGoogleMapsAdapter(options: GeoMapAdapterOptions): Promise<GeoMapAdapter>;
@@ -0,0 +1,63 @@
1
+ import { createNoopAdapter } from './provider-utils.js';
2
+ export async function createGoogleMapsAdapter(options) {
3
+ if (!options.apiKey) {
4
+ options.onError('Google Maps requires an api-key attribute.');
5
+ return createNoopAdapter();
6
+ }
7
+ let mapsLibrary;
8
+ let markerLibrary;
9
+ try {
10
+ const { importLibrary, setOptions } = await import('@googlemaps/js-api-loader');
11
+ setOptions({ key: options.apiKey, v: 'weekly' });
12
+ mapsLibrary = (await importLibrary('maps'));
13
+ markerLibrary = (await importLibrary('marker'));
14
+ }
15
+ catch {
16
+ options.onError('@googlemaps/js-api-loader is not installed or failed to load. Add it as a dependency in your app.');
17
+ return createNoopAdapter();
18
+ }
19
+ const map = new mapsLibrary.Map(options.container, {
20
+ center: { lat: options.view.lat, lng: options.view.lng },
21
+ zoom: options.view.zoom,
22
+ mapTypeControl: false,
23
+ streetViewControl: false,
24
+ fullscreenControl: true,
25
+ });
26
+ const markerHandles = [];
27
+ let markerData = options.markers;
28
+ let selectedId = options.selectedId;
29
+ const renderMarkers = () => {
30
+ for (const handle of markerHandles.splice(0)) {
31
+ handle.map = null;
32
+ }
33
+ for (const marker of markerData) {
34
+ const handle = new markerLibrary.Marker({
35
+ map,
36
+ position: { lat: marker.lat, lng: marker.lng },
37
+ title: marker.label ?? marker.id,
38
+ label: marker.id === selectedId ? '★' : undefined,
39
+ });
40
+ handle.addListener('click', () => options.onMarkerSelect(marker));
41
+ markerHandles.push(handle);
42
+ }
43
+ };
44
+ renderMarkers();
45
+ return {
46
+ destroy() {
47
+ for (const handle of markerHandles) {
48
+ handle.map = null;
49
+ }
50
+ options.container.replaceChildren();
51
+ },
52
+ setMarkers(markers, nextSelectedId) {
53
+ markerData = markers;
54
+ selectedId = nextSelectedId;
55
+ renderMarkers();
56
+ },
57
+ setView(view) {
58
+ map.setCenter({ lat: view.lat, lng: view.lng });
59
+ map.setZoom(view.zoom);
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=google-maps-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-maps-adapter.js","sourceRoot":"","sources":["../../../../../../../../packages/web-components/src/visual/display/geo-map/providers/google-maps-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { GeoMapAdapter, GeoMapAdapterOptions } from '../geo-map-types.js';
2
+ export declare function createLeafletAdapter(options: GeoMapAdapterOptions): Promise<GeoMapAdapter>;
@@ -0,0 +1,78 @@
1
+ import { DEFAULT_LEAFLET_TILE_URL } from '../geo-map-types.js';
2
+ import { createNoopAdapter, injectStylesheet, PROVIDER_STYLESHEETS } from './provider-utils.js';
3
+ export async function createLeafletAdapter(options) {
4
+ const shadowRoot = options.container.getRootNode();
5
+ if (!(shadowRoot instanceof ShadowRoot)) {
6
+ options.onError('Geo map container must live inside a shadow root.');
7
+ return createNoopAdapter();
8
+ }
9
+ let L;
10
+ try {
11
+ L = (await import('leaflet')).default;
12
+ }
13
+ catch {
14
+ options.onError('leaflet is not installed. Add it as a dependency in your app.');
15
+ return createNoopAdapter();
16
+ }
17
+ try {
18
+ await injectStylesheet(shadowRoot, 'rd-geo-map-leaflet-css', PROVIDER_STYLESHEETS.leaflet);
19
+ }
20
+ catch {
21
+ options.onError('Failed to load Leaflet stylesheet.');
22
+ return createNoopAdapter();
23
+ }
24
+ const container = options.container;
25
+ if (container._leaflet_id != null) {
26
+ container.replaceChildren();
27
+ delete container._leaflet_id;
28
+ }
29
+ const map = L.map(container, {
30
+ zoomControl: true,
31
+ attributionControl: true,
32
+ }).setView([options.view.lat, options.view.lng], options.view.zoom);
33
+ const tileLayer = L.tileLayer(options.tileUrl || DEFAULT_LEAFLET_TILE_URL, {
34
+ maxZoom: 19,
35
+ attribution: '&copy; OpenStreetMap contributors',
36
+ });
37
+ tileLayer.addTo(map);
38
+ const markerLayers = [];
39
+ let markerData = options.markers;
40
+ let selectedId = options.selectedId;
41
+ const renderMarkers = () => {
42
+ for (const layer of markerLayers.splice(0)) {
43
+ layer.remove();
44
+ }
45
+ for (const marker of markerData) {
46
+ const layer = L.circleMarker([marker.lat, marker.lng], {
47
+ radius: marker.id === selectedId ? 10 : 8,
48
+ color: marker.id === selectedId ? '#2563eb' : '#dc2626',
49
+ fillColor: marker.id === selectedId ? '#2563eb' : '#dc2626',
50
+ fillOpacity: 0.85,
51
+ weight: 2,
52
+ });
53
+ layer.on('click', () => options.onMarkerSelect(marker));
54
+ layer.addTo(map);
55
+ markerLayers.push(layer);
56
+ }
57
+ };
58
+ renderMarkers();
59
+ requestAnimationFrame(() => map.invalidateSize());
60
+ return {
61
+ destroy() {
62
+ for (const layer of markerLayers) {
63
+ layer.remove();
64
+ }
65
+ map.remove();
66
+ delete container._leaflet_id;
67
+ },
68
+ setMarkers(markers, nextSelectedId) {
69
+ markerData = markers;
70
+ selectedId = nextSelectedId;
71
+ renderMarkers();
72
+ },
73
+ setView(view) {
74
+ map.setView([view.lat, view.lng], view.zoom);
75
+ },
76
+ };
77
+ }
78
+ //# sourceMappingURL=leaflet-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaflet-adapter.js","sourceRoot":"","sources":["../../../../../../../../packages/web-components/src/visual/display/geo-map/providers/leaflet-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { GeoMapAdapter, GeoMapAdapterOptions } from '../geo-map-types.js';
2
+ export declare function createMaplibreAdapter(options: GeoMapAdapterOptions): Promise<GeoMapAdapter>;
@@ -0,0 +1,71 @@
1
+ import { DEFAULT_MAPLIBRE_STYLE } from '../geo-map-types.js';
2
+ import { createNoopAdapter, injectStylesheet, PROVIDER_STYLESHEETS } from './provider-utils.js';
3
+ export async function createMaplibreAdapter(options) {
4
+ const shadowRoot = options.container.getRootNode();
5
+ if (!(shadowRoot instanceof ShadowRoot)) {
6
+ options.onError('Geo map container must live inside a shadow root.');
7
+ return createNoopAdapter();
8
+ }
9
+ let maplibregl;
10
+ try {
11
+ const module = await import('maplibre-gl');
12
+ maplibregl = module;
13
+ }
14
+ catch {
15
+ options.onError('maplibre-gl is not installed. Add it as a dependency in your app.');
16
+ return createNoopAdapter();
17
+ }
18
+ try {
19
+ await injectStylesheet(shadowRoot, 'rd-geo-map-maplibre-css', PROVIDER_STYLESHEETS.maplibre);
20
+ }
21
+ catch {
22
+ options.onError('Failed to load MapLibre stylesheet.');
23
+ return createNoopAdapter();
24
+ }
25
+ const map = new maplibregl.Map({
26
+ container: options.container,
27
+ style: options.tileUrl || DEFAULT_MAPLIBRE_STYLE,
28
+ center: [options.view.lng, options.view.lat],
29
+ zoom: options.view.zoom,
30
+ attributionControl: true,
31
+ });
32
+ const markerHandles = [];
33
+ let markerData = options.markers;
34
+ let selectedId = options.selectedId;
35
+ const renderMarkers = () => {
36
+ for (const handle of markerHandles.splice(0)) {
37
+ handle.remove();
38
+ }
39
+ for (const marker of markerData) {
40
+ const handle = new maplibregl.Marker({
41
+ color: marker.id === selectedId ? '#2563eb' : '#dc2626',
42
+ })
43
+ .setLngLat([marker.lng, marker.lat])
44
+ .addTo(map);
45
+ handle.getElement().title = marker.label ?? marker.id;
46
+ handle.getElement().addEventListener('click', (event) => {
47
+ event.stopPropagation();
48
+ options.onMarkerSelect(marker);
49
+ });
50
+ markerHandles.push(handle);
51
+ }
52
+ };
53
+ map.on('load', () => renderMarkers());
54
+ return {
55
+ destroy() {
56
+ for (const handle of markerHandles) {
57
+ handle.remove();
58
+ }
59
+ map.remove();
60
+ },
61
+ setMarkers(markers, nextSelectedId) {
62
+ markerData = markers;
63
+ selectedId = nextSelectedId;
64
+ renderMarkers();
65
+ },
66
+ setView(view) {
67
+ map.flyTo({ center: [view.lng, view.lat], zoom: view.zoom });
68
+ },
69
+ };
70
+ }
71
+ //# sourceMappingURL=maplibre-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maplibre-adapter.js","sourceRoot":"","sources":["../../../../../../../../packages/web-components/src/visual/display/geo-map/providers/maplibre-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GeoMapAdapter } from '../geo-map-types.js';
2
+ /** Inject a provider stylesheet into the shadow root (once per id). */
3
+ export declare function injectStylesheet(root: ShadowRoot, id: string, href: string): Promise<void>;
4
+ export declare const PROVIDER_STYLESHEETS: {
5
+ readonly maplibre: "https://unpkg.com/maplibre-gl@6.3.0/dist/maplibre-gl.css";
6
+ readonly leaflet: "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css";
7
+ };
8
+ export declare function createNoopAdapter(): GeoMapAdapter;
@@ -0,0 +1,28 @@
1
+ /** Inject a provider stylesheet into the shadow root (once per id). */
2
+ export async function injectStylesheet(root, id, href) {
3
+ if (root.querySelector(`#${id}`)) {
4
+ return;
5
+ }
6
+ await new Promise((resolve, reject) => {
7
+ const link = document.createElement('link');
8
+ link.id = id;
9
+ link.rel = 'stylesheet';
10
+ link.href = href;
11
+ link.onload = () => resolve();
12
+ link.onerror = () => reject(new Error(`Failed to load stylesheet: ${href}`));
13
+ root.appendChild(link);
14
+ });
15
+ }
16
+ export const PROVIDER_STYLESHEETS = {
17
+ maplibre: 'https://unpkg.com/maplibre-gl@6.3.0/dist/maplibre-gl.css',
18
+ leaflet: 'https://unpkg.com/leaflet@1.9.4/dist/leaflet.css',
19
+ };
20
+ const NOOP_GEO_MAP_ADAPTER = {
21
+ destroy: () => undefined,
22
+ setMarkers: () => undefined,
23
+ setView: () => undefined,
24
+ };
25
+ export function createNoopAdapter() {
26
+ return NOOP_GEO_MAP_ADAPTER;
27
+ }
28
+ //# sourceMappingURL=provider-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-utils.js","sourceRoot":"","sources":["../../../../../../../../packages/web-components/src/visual/display/geo-map/providers/provider-utils.ts"],"names":[],"mappings":"AAEA,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAgB,EAChB,EAAU,EACV,IAAY;IAEZ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,YAAY,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,0DAA0D;IACpE,OAAO,EAAE,kDAAkD;CACnD,CAAC;AAEX,MAAM,oBAAoB,GAAkB;IAC1C,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS;IAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;CACzB,CAAC;AAEF,MAAM,UAAU,iBAAiB;IAC/B,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { type GeoMapMarker, type GeoMapProvider } from './geo-map-types.js';
2
+ export declare const DB_GEO_MAP_TAG = "rd-geo-map";
3
+ /** Public props contract for visual/display/geo-map (all runtimes share this shape). */
4
+ export interface GeoMapProps {
5
+ provider?: GeoMapProvider;
6
+ tileUrl?: string;
7
+ apiKey?: string;
8
+ center?: string;
9
+ zoom?: number;
10
+ markers?: GeoMapMarker[];
11
+ selectedId?: string;
12
+ className?: string;
13
+ }
14
+ export type { GeoMapMarker, GeoMapProvider };
15
+ export declare class RdGeoMapElement extends HTMLElement {
16
+ static readonly tagName = "rd-geo-map";
17
+ private adapter;
18
+ private markersValue;
19
+ private resourcesReady;
20
+ private mapInit;
21
+ static get observedAttributes(): string[];
22
+ connectedCallback(): void;
23
+ disconnectedCallback(): void;
24
+ attributeChangedCallback(name: string): void;
25
+ setProperty(name: string, value: unknown): void;
26
+ whenReady(): Promise<void>;
27
+ whenMapReady(): Promise<void>;
28
+ get provider(): GeoMapProvider;
29
+ set provider(value: GeoMapProvider);
30
+ get tileUrl(): string;
31
+ get apiKey(): string;
32
+ get center(): string;
33
+ get zoom(): number;
34
+ get markers(): GeoMapMarker[];
35
+ set markers(value: GeoMapMarker[]);
36
+ get selectedId(): string;
37
+ set selectedId(value: string);
38
+ private syncMarkersFromAttribute;
39
+ private resolveView;
40
+ private mountShadow;
41
+ private showError;
42
+ private clearError;
43
+ private handleMarkerSelect;
44
+ private ensureMap;
45
+ private initMap;
46
+ private syncMapState;
47
+ }
48
+ export declare function registerRdGeoMap(): void;
@@ -0,0 +1,219 @@
1
+ import { defineRosettaElement, readNumber, readString } from '../../../lib/element-utils.js';
2
+ import { applyShadowMount, ensureShadowBase, loadShadowPairForTag } from '../../../lib/shadow-base.js';
3
+ import { createGeoMapAdapter } from './providers/create-adapter.js';
4
+ import { parseGeoMapCenter } from './parse-center.js';
5
+ import { parseGeoMapMarkers } from './parse-markers.js';
6
+ import { DEFAULT_GEO_MAP_VIEW, normalizeGeoMapProvider, } from './geo-map-types.js';
7
+ export const DB_GEO_MAP_TAG = 'rd-geo-map';
8
+ export class RdGeoMapElement extends HTMLElement {
9
+ static tagName = DB_GEO_MAP_TAG;
10
+ adapter = null;
11
+ markersValue = [];
12
+ resourcesReady = null;
13
+ mapInit = null;
14
+ static get observedAttributes() {
15
+ return [
16
+ 'provider',
17
+ 'tile-url',
18
+ 'api-key',
19
+ 'center',
20
+ 'zoom',
21
+ 'markers',
22
+ 'selected-id',
23
+ ];
24
+ }
25
+ connectedCallback() {
26
+ if (!this.shadowRoot) {
27
+ this.attachShadow({ mode: 'open' });
28
+ }
29
+ this.syncMarkersFromAttribute();
30
+ this.resourcesReady = this.mountShadow();
31
+ void this.resourcesReady.then(() => this.ensureMap());
32
+ }
33
+ disconnectedCallback() {
34
+ this.adapter?.destroy();
35
+ this.adapter = null;
36
+ this.mapInit = null;
37
+ }
38
+ attributeChangedCallback(name) {
39
+ if (name === 'markers') {
40
+ this.syncMarkersFromAttribute();
41
+ }
42
+ if (this.shadowRoot && this.resourcesReady) {
43
+ void this.resourcesReady.then(() => this.syncMapState(name));
44
+ }
45
+ }
46
+ setProperty(name, value) {
47
+ this[name] = value;
48
+ if (name === 'markers' && Array.isArray(value)) {
49
+ this.markersValue = value;
50
+ this.setAttribute('markers', JSON.stringify(this.markersValue));
51
+ }
52
+ if (this.resourcesReady) {
53
+ void this.resourcesReady.then(() => this.syncMapState(name));
54
+ }
55
+ }
56
+ whenReady() {
57
+ return this.resourcesReady ?? Promise.resolve();
58
+ }
59
+ whenMapReady() {
60
+ if (this.mapInit) {
61
+ return this.mapInit;
62
+ }
63
+ if (this.resourcesReady) {
64
+ return this.resourcesReady.then(async () => {
65
+ await this.ensureMap();
66
+ });
67
+ }
68
+ return Promise.resolve();
69
+ }
70
+ get provider() {
71
+ return normalizeGeoMapProvider(this.getAttribute('provider'));
72
+ }
73
+ set provider(value) {
74
+ this.setAttribute('provider', value);
75
+ }
76
+ get tileUrl() {
77
+ return readString(this.getAttribute('tile-url'), '');
78
+ }
79
+ get apiKey() {
80
+ return readString(this.getAttribute('api-key'), '');
81
+ }
82
+ get center() {
83
+ return readString(this.getAttribute('center'), '');
84
+ }
85
+ get zoom() {
86
+ return readNumber(this.getAttribute('zoom'), DEFAULT_GEO_MAP_VIEW.zoom);
87
+ }
88
+ get markers() {
89
+ return this.markersValue;
90
+ }
91
+ set markers(value) {
92
+ this.markersValue = Array.isArray(value) ? value : [];
93
+ this.setAttribute('markers', JSON.stringify(this.markersValue));
94
+ }
95
+ get selectedId() {
96
+ return readString(this.getAttribute('selected-id'), '');
97
+ }
98
+ set selectedId(value) {
99
+ if (value) {
100
+ this.setAttribute('selected-id', value);
101
+ }
102
+ else {
103
+ this.removeAttribute('selected-id');
104
+ }
105
+ }
106
+ syncMarkersFromAttribute() {
107
+ this.markersValue = parseGeoMapMarkers(this.getAttribute('markers'));
108
+ }
109
+ resolveView() {
110
+ const center = parseGeoMapCenter(this.center);
111
+ return {
112
+ lat: center.lat,
113
+ lng: center.lng,
114
+ zoom: this.zoom,
115
+ };
116
+ }
117
+ async mountShadow() {
118
+ const root = this.shadowRoot;
119
+ if (!root || root.querySelector('[data-ref="canvas"]')) {
120
+ return;
121
+ }
122
+ const pair = await loadShadowPairForTag(DB_GEO_MAP_TAG, './rd-geo-map.html', './rd-geo-map.css');
123
+ applyShadowMount(root, pair);
124
+ }
125
+ showError(message) {
126
+ const root = this.shadowRoot;
127
+ if (!root) {
128
+ return;
129
+ }
130
+ const error = root.querySelector('[data-ref="error"]');
131
+ const canvas = root.querySelector('[data-ref="canvas"]');
132
+ if (!error || !canvas) {
133
+ return;
134
+ }
135
+ error.textContent = message;
136
+ error.hidden = false;
137
+ canvas.hidden = true;
138
+ }
139
+ clearError() {
140
+ const root = this.shadowRoot;
141
+ if (!root) {
142
+ return;
143
+ }
144
+ const error = root.querySelector('[data-ref="error"]');
145
+ const canvas = root.querySelector('[data-ref="canvas"]');
146
+ if (!error || !canvas) {
147
+ return;
148
+ }
149
+ error.textContent = '';
150
+ error.hidden = true;
151
+ canvas.hidden = false;
152
+ }
153
+ handleMarkerSelect(marker) {
154
+ this.selectedId = marker.id;
155
+ this.adapter?.setMarkers(this.markersValue, marker.id);
156
+ this.dispatchEvent(new CustomEvent('marker-select', {
157
+ detail: { id: marker.id, lat: marker.lat, lng: marker.lng },
158
+ bubbles: true,
159
+ composed: true,
160
+ }));
161
+ }
162
+ async ensureMap(force = false) {
163
+ if (this.mapInit && !force) {
164
+ await this.mapInit;
165
+ return;
166
+ }
167
+ this.mapInit = this.initMap(force);
168
+ await this.mapInit;
169
+ }
170
+ async initMap(force) {
171
+ const root = this.shadowRoot;
172
+ const canvas = root?.querySelector('[data-ref="canvas"]');
173
+ if (!canvas) {
174
+ return;
175
+ }
176
+ if (force) {
177
+ this.adapter?.destroy();
178
+ this.adapter = null;
179
+ canvas.replaceChildren();
180
+ delete canvas._leaflet_id;
181
+ }
182
+ this.clearError();
183
+ this.adapter = await createGeoMapAdapter({
184
+ container: canvas,
185
+ provider: this.provider,
186
+ view: this.resolveView(),
187
+ markers: this.markersValue,
188
+ selectedId: this.selectedId || undefined,
189
+ tileUrl: this.tileUrl || undefined,
190
+ apiKey: this.apiKey || undefined,
191
+ onMarkerSelect: (marker) => this.handleMarkerSelect(marker),
192
+ onError: (message) => this.showError(message),
193
+ });
194
+ }
195
+ async syncMapState(changed) {
196
+ if (changed === 'provider') {
197
+ await this.ensureMap(true);
198
+ return;
199
+ }
200
+ if (!this.adapter) {
201
+ await this.ensureMap();
202
+ return;
203
+ }
204
+ if (changed === 'markers' || changed === 'selected-id') {
205
+ this.adapter.setMarkers(this.markersValue, this.selectedId || undefined);
206
+ }
207
+ if (changed === 'center' || changed === 'zoom') {
208
+ this.adapter.setView(this.resolveView());
209
+ }
210
+ if (changed === 'tile-url' || changed === 'api-key') {
211
+ await this.ensureMap(true);
212
+ }
213
+ }
214
+ }
215
+ export function registerRdGeoMap() {
216
+ ensureShadowBase(DB_GEO_MAP_TAG);
217
+ defineRosettaElement(DB_GEO_MAP_TAG, RdGeoMapElement);
218
+ }
219
+ //# sourceMappingURL=rd-geo-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rd-geo-map.js","sourceRoot":"","sources":["../../../../../../../packages/web-components/src/visual/display/geo-map/rd-geo-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { RdGeoMapElement, DB_GEO_MAP_TAG, registerRdGeoMap, type GeoMapProps, type GeoMapMarker, type GeoMapProvider, } from './geo-map/index.js';
2
+ export * from './3d-bar-chart/index.js';
3
+ export * from './3d-scatter/index.js';
4
+ export * from './3d-scene/index.js';
5
+ export * from './3d-gltf-model/index.js';
6
+ export * from './3d-geo-globe/index.js';
7
+ export declare function registerRosettaDashDisplayElements(): void;