@sqlrooms/deck 0.29.0-rc.10

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 (251) hide show
  1. package/LICENSE.md +10 -0
  2. package/README.md +654 -0
  3. package/dist/BlockMapSettings.d.ts +3 -0
  4. package/dist/BlockMapSettings.d.ts.map +1 -0
  5. package/dist/BlockMapSettings.js +57 -0
  6. package/dist/BlockMapSettings.js.map +1 -0
  7. package/dist/DashboardMapSettings.d.ts +7 -0
  8. package/dist/DashboardMapSettings.d.ts.map +1 -0
  9. package/dist/DashboardMapSettings.js +52 -0
  10. package/dist/DashboardMapSettings.js.map +1 -0
  11. package/dist/DeckJsonMap.d.ts +4 -0
  12. package/dist/DeckJsonMap.d.ts.map +1 -0
  13. package/dist/DeckJsonMap.js +370 -0
  14. package/dist/DeckJsonMap.js.map +1 -0
  15. package/dist/DeckJsonMapSpec.d.ts +7617 -0
  16. package/dist/DeckJsonMapSpec.d.ts.map +1 -0
  17. package/dist/DeckJsonMapSpec.js +82 -0
  18. package/dist/DeckJsonMapSpec.js.map +1 -0
  19. package/dist/DeckMapDefaultStylesProvider.d.ts +28 -0
  20. package/dist/DeckMapDefaultStylesProvider.d.ts.map +1 -0
  21. package/dist/DeckMapDefaultStylesProvider.js +23 -0
  22. package/dist/DeckMapDefaultStylesProvider.js.map +1 -0
  23. package/dist/DeckMapSurface.d.ts +39 -0
  24. package/dist/DeckMapSurface.d.ts.map +1 -0
  25. package/dist/DeckMapSurface.js +137 -0
  26. package/dist/DeckMapSurface.js.map +1 -0
  27. package/dist/DeckMapsSlice.d.ts +99 -0
  28. package/dist/DeckMapsSlice.d.ts.map +1 -0
  29. package/dist/DeckMapsSlice.js +89 -0
  30. package/dist/DeckMapsSlice.js.map +1 -0
  31. package/dist/MapSettings.d.ts +16 -0
  32. package/dist/MapSettings.d.ts.map +1 -0
  33. package/dist/MapSettings.js +292 -0
  34. package/dist/MapSettings.js.map +1 -0
  35. package/dist/MapSettingsControls.d.ts +40 -0
  36. package/dist/MapSettingsControls.d.ts.map +1 -0
  37. package/dist/MapSettingsControls.js +54 -0
  38. package/dist/MapSettingsControls.js.map +1 -0
  39. package/dist/ai.d.ts +261 -0
  40. package/dist/ai.d.ts.map +1 -0
  41. package/dist/ai.js +392 -0
  42. package/dist/ai.js.map +1 -0
  43. package/dist/block.d.ts +21 -0
  44. package/dist/block.d.ts.map +1 -0
  45. package/dist/block.js +105 -0
  46. package/dist/block.js.map +1 -0
  47. package/dist/blockDocumentRegistration.d.ts +45 -0
  48. package/dist/blockDocumentRegistration.d.ts.map +1 -0
  49. package/dist/blockDocumentRegistration.js +68 -0
  50. package/dist/blockDocumentRegistration.js.map +1 -0
  51. package/dist/createDeckJsonSpecFromDatasets.d.ts +11 -0
  52. package/dist/createDeckJsonSpecFromDatasets.d.ts.map +1 -0
  53. package/dist/createDeckJsonSpecFromDatasets.js +85 -0
  54. package/dist/createDeckJsonSpecFromDatasets.js.map +1 -0
  55. package/dist/createOrUpdateDeckMapResource.d.ts +81 -0
  56. package/dist/createOrUpdateDeckMapResource.d.ts.map +1 -0
  57. package/dist/createOrUpdateDeckMapResource.js +82 -0
  58. package/dist/createOrUpdateDeckMapResource.js.map +1 -0
  59. package/dist/dashboard.d.ts +6 -0
  60. package/dist/dashboard.d.ts.map +1 -0
  61. package/dist/dashboard.js +337 -0
  62. package/dist/dashboard.js.map +1 -0
  63. package/dist/dashboardConfig.d.ts +25 -0
  64. package/dist/dashboardConfig.d.ts.map +1 -0
  65. package/dist/dashboardConfig.js +82 -0
  66. package/dist/dashboardConfig.js.map +1 -0
  67. package/dist/dashboardIntegration.d.ts +3 -0
  68. package/dist/dashboardIntegration.d.ts.map +1 -0
  69. package/dist/dashboardIntegration.js +16 -0
  70. package/dist/dashboardIntegration.js.map +1 -0
  71. package/dist/datasetSourceUtils.d.ts +16 -0
  72. package/dist/datasetSourceUtils.d.ts.map +1 -0
  73. package/dist/datasetSourceUtils.js +25 -0
  74. package/dist/datasetSourceUtils.js.map +1 -0
  75. package/dist/datasets/PreparedDatasetStore.d.ts +120 -0
  76. package/dist/datasets/PreparedDatasetStore.d.ts.map +1 -0
  77. package/dist/datasets/PreparedDatasetStore.js +268 -0
  78. package/dist/datasets/PreparedDatasetStore.js.map +1 -0
  79. package/dist/datasets/helpers.d.ts +57 -0
  80. package/dist/datasets/helpers.d.ts.map +1 -0
  81. package/dist/datasets/helpers.js +155 -0
  82. package/dist/datasets/helpers.js.map +1 -0
  83. package/dist/datasets/normalizeDatasets.d.ts +11 -0
  84. package/dist/datasets/normalizeDatasets.d.ts.map +1 -0
  85. package/dist/datasets/normalizeDatasets.js +50 -0
  86. package/dist/datasets/normalizeDatasets.js.map +1 -0
  87. package/dist/datasets/tableAdapter.d.ts +11 -0
  88. package/dist/datasets/tableAdapter.d.ts.map +1 -0
  89. package/dist/datasets/tableAdapter.js +11 -0
  90. package/dist/datasets/tableAdapter.js.map +1 -0
  91. package/dist/datasets/tableDatasetSql.d.ts +16 -0
  92. package/dist/datasets/tableDatasetSql.d.ts.map +1 -0
  93. package/dist/datasets/tableDatasetSql.js +49 -0
  94. package/dist/datasets/tableDatasetSql.js.map +1 -0
  95. package/dist/datasets/types.d.ts +40 -0
  96. package/dist/datasets/types.d.ts.map +1 -0
  97. package/dist/datasets/types.js +2 -0
  98. package/dist/datasets/types.js.map +1 -0
  99. package/dist/datasets/usePreparedDatasetStates.d.ts +16 -0
  100. package/dist/datasets/usePreparedDatasetStates.d.ts.map +1 -0
  101. package/dist/datasets/usePreparedDatasetStates.js +59 -0
  102. package/dist/datasets/usePreparedDatasetStates.js.map +1 -0
  103. package/dist/index.d.ts +34 -0
  104. package/dist/index.d.ts.map +1 -0
  105. package/dist/index.js +27 -0
  106. package/dist/index.js.map +1 -0
  107. package/dist/json/aggregateWaypoints.d.ts +14 -0
  108. package/dist/json/aggregateWaypoints.d.ts.map +1 -0
  109. package/dist/json/aggregateWaypoints.js +190 -0
  110. package/dist/json/aggregateWaypoints.js.map +1 -0
  111. package/dist/json/colorScaleFunction.d.ts +27 -0
  112. package/dist/json/colorScaleFunction.d.ts.map +1 -0
  113. package/dist/json/colorScaleFunction.js +46 -0
  114. package/dist/json/colorScaleFunction.js.map +1 -0
  115. package/dist/json/compileColorScale.d.ts +12 -0
  116. package/dist/json/compileColorScale.d.ts.map +1 -0
  117. package/dist/json/compileColorScale.js +125 -0
  118. package/dist/json/compileColorScale.js.map +1 -0
  119. package/dist/json/compileGeoArrowAccessor.d.ts +18 -0
  120. package/dist/json/compileGeoArrowAccessor.d.ts.map +1 -0
  121. package/dist/json/compileGeoArrowAccessor.js +129 -0
  122. package/dist/json/compileGeoArrowAccessor.js.map +1 -0
  123. package/dist/json/createDeckJsonConfiguration.d.ts +9 -0
  124. package/dist/json/createDeckJsonConfiguration.d.ts.map +1 -0
  125. package/dist/json/createDeckJsonConfiguration.js +315 -0
  126. package/dist/json/createDeckJsonConfiguration.js.map +1 -0
  127. package/dist/json/defaultClasses.d.ts +12 -0
  128. package/dist/json/defaultClasses.d.ts.map +1 -0
  129. package/dist/json/defaultClasses.js +35 -0
  130. package/dist/json/defaultClasses.js.map +1 -0
  131. package/dist/json/extractColorScaleLegends.d.ts +8 -0
  132. package/dist/json/extractColorScaleLegends.d.ts.map +1 -0
  133. package/dist/json/extractColorScaleLegends.js +86 -0
  134. package/dist/json/extractColorScaleLegends.js.map +1 -0
  135. package/dist/json/heatmapDefaults.d.ts +8 -0
  136. package/dist/json/heatmapDefaults.d.ts.map +1 -0
  137. package/dist/json/heatmapDefaults.js +14 -0
  138. package/dist/json/heatmapDefaults.js.map +1 -0
  139. package/dist/json/layerCompatibility.d.ts +21 -0
  140. package/dist/json/layerCompatibility.d.ts.map +1 -0
  141. package/dist/json/layerCompatibility.js +168 -0
  142. package/dist/json/layerCompatibility.js.map +1 -0
  143. package/dist/json/layerConfig.d.ts +14 -0
  144. package/dist/json/layerConfig.d.ts.map +1 -0
  145. package/dist/json/layerConfig.js +54 -0
  146. package/dist/json/layerConfig.js.map +1 -0
  147. package/dist/json/layers/DeckColumnLayer.d.ts +10 -0
  148. package/dist/json/layers/DeckColumnLayer.d.ts.map +1 -0
  149. package/dist/json/layers/DeckColumnLayer.js +26 -0
  150. package/dist/json/layers/DeckColumnLayer.js.map +1 -0
  151. package/dist/json/layers/DeckH3HexagonLayer.d.ts +37 -0
  152. package/dist/json/layers/DeckH3HexagonLayer.d.ts.map +1 -0
  153. package/dist/json/layers/DeckH3HexagonLayer.js +118 -0
  154. package/dist/json/layers/DeckH3HexagonLayer.js.map +1 -0
  155. package/dist/json/layers/DeckTripsLayer.d.ts +46 -0
  156. package/dist/json/layers/DeckTripsLayer.d.ts.map +1 -0
  157. package/dist/json/layers/DeckTripsLayer.js +170 -0
  158. package/dist/json/layers/DeckTripsLayer.js.map +1 -0
  159. package/dist/json/layers/createTableToRecordBatchAdapter.d.ts +20 -0
  160. package/dist/json/layers/createTableToRecordBatchAdapter.d.ts.map +1 -0
  161. package/dist/json/layers/createTableToRecordBatchAdapter.js +81 -0
  162. package/dist/json/layers/createTableToRecordBatchAdapter.js.map +1 -0
  163. package/dist/json/layers/index.d.ts +5 -0
  164. package/dist/json/layers/index.d.ts.map +1 -0
  165. package/dist/json/layers/index.js +5 -0
  166. package/dist/json/layers/index.js.map +1 -0
  167. package/dist/json/rewriteGeoArrowAccessors.d.ts +7 -0
  168. package/dist/json/rewriteGeoArrowAccessors.d.ts.map +1 -0
  169. package/dist/json/rewriteGeoArrowAccessors.js +55 -0
  170. package/dist/json/rewriteGeoArrowAccessors.js.map +1 -0
  171. package/dist/mapAiConfig.d.ts +111 -0
  172. package/dist/mapAiConfig.d.ts.map +1 -0
  173. package/dist/mapAiConfig.js +69 -0
  174. package/dist/mapAiConfig.js.map +1 -0
  175. package/dist/mapConfig.d.ts +73 -0
  176. package/dist/mapConfig.d.ts.map +1 -0
  177. package/dist/mapConfig.js +47 -0
  178. package/dist/mapConfig.js.map +1 -0
  179. package/dist/mapConfigUtils.d.ts +111 -0
  180. package/dist/mapConfigUtils.d.ts.map +1 -0
  181. package/dist/mapConfigUtils.js +502 -0
  182. package/dist/mapConfigUtils.js.map +1 -0
  183. package/dist/mapDataPolicy.d.ts +9 -0
  184. package/dist/mapDataPolicy.d.ts.map +1 -0
  185. package/dist/mapDataPolicy.js +25 -0
  186. package/dist/mapDataPolicy.js.map +1 -0
  187. package/dist/mapFit.d.ts +62 -0
  188. package/dist/mapFit.d.ts.map +1 -0
  189. package/dist/mapFit.js +325 -0
  190. package/dist/mapFit.js.map +1 -0
  191. package/dist/mapLayerConfigUtils.d.ts +54 -0
  192. package/dist/mapLayerConfigUtils.d.ts.map +1 -0
  193. package/dist/mapLayerConfigUtils.js +296 -0
  194. package/dist/mapLayerConfigUtils.js.map +1 -0
  195. package/dist/mapResourceAuthoring.d.ts +40 -0
  196. package/dist/mapResourceAuthoring.d.ts.map +1 -0
  197. package/dist/mapResourceAuthoring.js +266 -0
  198. package/dist/mapResourceAuthoring.js.map +1 -0
  199. package/dist/mosaic.d.ts +9 -0
  200. package/dist/mosaic.d.ts.map +1 -0
  201. package/dist/mosaic.js +8 -0
  202. package/dist/mosaic.js.map +1 -0
  203. package/dist/prepare/detectGeometryColumn.d.ts +19 -0
  204. package/dist/prepare/detectGeometryColumn.d.ts.map +1 -0
  205. package/dist/prepare/detectGeometryColumn.js +126 -0
  206. package/dist/prepare/detectGeometryColumn.js.map +1 -0
  207. package/dist/prepare/geoarrow.d.ts +18 -0
  208. package/dist/prepare/geoarrow.d.ts.map +1 -0
  209. package/dist/prepare/geoarrow.js +114 -0
  210. package/dist/prepare/geoarrow.js.map +1 -0
  211. package/dist/prepare/geometryDecoder.d.ts +8 -0
  212. package/dist/prepare/geometryDecoder.d.ts.map +1 -0
  213. package/dist/prepare/geometryDecoder.js +2 -0
  214. package/dist/prepare/geometryDecoder.js.map +1 -0
  215. package/dist/prepare/prepareDeckDataset.d.ts +57 -0
  216. package/dist/prepare/prepareDeckDataset.d.ts.map +1 -0
  217. package/dist/prepare/prepareDeckDataset.js +112 -0
  218. package/dist/prepare/prepareDeckDataset.js.map +1 -0
  219. package/dist/prepare/toGeoJsonBinary.d.ts +9 -0
  220. package/dist/prepare/toGeoJsonBinary.d.ts.map +1 -0
  221. package/dist/prepare/toGeoJsonBinary.js +26 -0
  222. package/dist/prepare/toGeoJsonBinary.js.map +1 -0
  223. package/dist/prepare/types.d.ts +25 -0
  224. package/dist/prepare/types.d.ts.map +1 -0
  225. package/dist/prepare/types.js +2 -0
  226. package/dist/prepare/types.js.map +1 -0
  227. package/dist/prepare/wkbDecoder.d.ts +3 -0
  228. package/dist/prepare/wkbDecoder.d.ts.map +1 -0
  229. package/dist/prepare/wkbDecoder.js +419 -0
  230. package/dist/prepare/wkbDecoder.js.map +1 -0
  231. package/dist/prepare/wkbParser.d.ts +24 -0
  232. package/dist/prepare/wkbParser.d.ts.map +1 -0
  233. package/dist/prepare/wkbParser.js +139 -0
  234. package/dist/prepare/wkbParser.js.map +1 -0
  235. package/dist/types.d.ts +92 -0
  236. package/dist/types.d.ts.map +1 -0
  237. package/dist/types.js +11 -0
  238. package/dist/types.js.map +1 -0
  239. package/dist/useDeckMapDatasetSchema.d.ts +33 -0
  240. package/dist/useDeckMapDatasetSchema.d.ts.map +1 -0
  241. package/dist/useDeckMapDatasetSchema.js +138 -0
  242. package/dist/useDeckMapDatasetSchema.js.map +1 -0
  243. package/dist/useDeckMapDatasets.d.ts +17 -0
  244. package/dist/useDeckMapDatasets.d.ts.map +1 -0
  245. package/dist/useDeckMapDatasets.js +69 -0
  246. package/dist/useDeckMapDatasets.js.map +1 -0
  247. package/dist/useDeckMapFitToBounds.d.ts +31 -0
  248. package/dist/useDeckMapFitToBounds.d.ts.map +1 -0
  249. package/dist/useDeckMapFitToBounds.js +58 -0
  250. package/dist/useDeckMapFitToBounds.js.map +1 -0
  251. package/package.json +98 -0
@@ -0,0 +1,73 @@
1
+ import type { DeckJsonMapProps, DeckSqlDatasetInput, DeckTableDatasetInput } from './types';
2
+ export declare const DECK_MAP_DASHBOARD_PANEL_TYPE = "deck-json-map";
3
+ export declare const DEFAULT_DECK_MAP_MAX_DATA_POINTS = 100000;
4
+ export type DeckMapDataPolicyOverride = {
5
+ disabled?: boolean;
6
+ maxRows?: number;
7
+ reason?: string;
8
+ };
9
+ export type DeckMapDatasetSource = Pick<DeckSqlDatasetInput, 'sqlQuery'> | Pick<DeckTableDatasetInput, 'tableName' | 'transformSql'>;
10
+ export type DeckMapDatasetConfig = Omit<DeckSqlDatasetInput, 'sqlQuery'> & {
11
+ source?: DeckMapDatasetSource;
12
+ };
13
+ /** Returns whether a map dataset source is a pinned literal SQL query. */
14
+ export declare function isDeckMapSqlDatasetSource(source: DeckMapDatasetSource | undefined): source is Pick<DeckSqlDatasetInput, 'sqlQuery'>;
15
+ /** Returns whether a map dataset source is backed by a named table. */
16
+ export declare function isDeckMapTableDatasetSource(source: DeckMapDatasetSource | undefined): source is Pick<DeckTableDatasetInput, 'tableName' | 'transformSql'>;
17
+ export type DeckMapInteractionConfig = {
18
+ type: 'point-radius-brush';
19
+ dataset: string;
20
+ longitudeColumn: string;
21
+ latitudeColumn: string;
22
+ radiusMeters?: number;
23
+ event?: 'hover' | 'click';
24
+ };
25
+ export type DeckMapFitToDataConfig = {
26
+ dataset: string;
27
+ longitudeColumn?: string;
28
+ latitudeColumn?: string;
29
+ geometryColumn?: string;
30
+ h3Column?: string;
31
+ padding?: number;
32
+ maxZoom?: number;
33
+ };
34
+ export type DeckMapConfigMode = 'basic' | 'custom';
35
+ /** Durable, host-neutral Deck map configuration. */
36
+ export type DeckMapConfig = {
37
+ spec: DeckJsonMapProps['spec'];
38
+ datasets: Record<string, DeckMapDatasetConfig>;
39
+ configMode?: DeckMapConfigMode;
40
+ mapStyle?: string;
41
+ mapProps?: Record<string, unknown>;
42
+ showLegends?: boolean;
43
+ interaction?: DeckMapInteractionConfig;
44
+ fitToData?: DeckMapFitToDataConfig;
45
+ dataPolicy?: DeckMapDataPolicyOverride;
46
+ settingsOpen?: boolean;
47
+ };
48
+ /** Creates the portable empty configuration used for a new Deck map. */
49
+ export declare function createEmptyDeckMapConfig(): DeckMapConfig;
50
+ /** Adapter-facing dashboard panel shape; worksheet resources never store it. */
51
+ export type DeckMapDashboardPanelConfig = DeckMapConfig;
52
+ export type DeckMapDashboardDatasetConfig = DeckMapDatasetConfig;
53
+ export type DeckMapDashboardDatasetSource = DeckMapDatasetSource;
54
+ export type DeckMapDashboardInteractionConfig = DeckMapInteractionConfig;
55
+ export type DeckMapDashboardFitToDataConfig = DeckMapFitToDataConfig;
56
+ export declare const isDeckMapDashboardSqlDatasetSource: typeof isDeckMapSqlDatasetSource;
57
+ export declare const isDeckMapDashboardTableDatasetSource: typeof isDeckMapTableDatasetSource;
58
+ export type CreateDeckMapDashboardPanelConfigOptions = DeckMapConfig & {
59
+ title?: string;
60
+ };
61
+ /** Creates a Mosaic panel only for the opt-in dashboard adapter. */
62
+ export declare function createDeckMapDashboardPanelConfig(options: CreateDeckMapDashboardPanelConfigOptions): {
63
+ id: string;
64
+ type: string;
65
+ title: string;
66
+ config: Record<string, unknown>;
67
+ };
68
+ /**
69
+ * Returns a record as a Deck map config when it has the required top-level
70
+ * spec and dataset registry, otherwise returns `null`.
71
+ */
72
+ export declare function asDeckJsonMapConfig(config: Record<string, unknown>): DeckMapConfig | null;
73
+ //# sourceMappingURL=mapConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapConfig.d.ts","sourceRoot":"","sources":["../src/mapConfig.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { createId } from '@paralleldrive/cuid2';
2
+ export const DECK_MAP_DASHBOARD_PANEL_TYPE = 'deck-json-map';
3
+ export const DEFAULT_DECK_MAP_MAX_DATA_POINTS = 100_000;
4
+ /** Returns whether a map dataset source is a pinned literal SQL query. */
5
+ export function isDeckMapSqlDatasetSource(source) {
6
+ return Boolean(source && 'sqlQuery' in source);
7
+ }
8
+ /** Returns whether a map dataset source is backed by a named table. */
9
+ export function isDeckMapTableDatasetSource(source) {
10
+ return Boolean(source && 'tableName' in source);
11
+ }
12
+ /** Creates the portable empty configuration used for a new Deck map. */
13
+ export function createEmptyDeckMapConfig() {
14
+ return {
15
+ spec: {
16
+ initialViewState: { longitude: 0, latitude: 20, zoom: 1.5 },
17
+ layers: [],
18
+ },
19
+ datasets: {},
20
+ };
21
+ }
22
+ export const isDeckMapDashboardSqlDatasetSource = isDeckMapSqlDatasetSource;
23
+ export const isDeckMapDashboardTableDatasetSource = isDeckMapTableDatasetSource;
24
+ /** Creates a Mosaic panel only for the opt-in dashboard adapter. */
25
+ export function createDeckMapDashboardPanelConfig(options) {
26
+ const { title, ...config } = options;
27
+ return {
28
+ id: createId(),
29
+ type: DECK_MAP_DASHBOARD_PANEL_TYPE,
30
+ title: title ?? 'Map',
31
+ config: JSON.parse(JSON.stringify(config)),
32
+ };
33
+ }
34
+ /**
35
+ * Returns a record as a Deck map config when it has the required top-level
36
+ * spec and dataset registry, otherwise returns `null`.
37
+ */
38
+ export function asDeckJsonMapConfig(config) {
39
+ if (!config.spec ||
40
+ !config.datasets ||
41
+ typeof config.datasets !== 'object' ||
42
+ Array.isArray(config.datasets)) {
43
+ return null;
44
+ }
45
+ return config;
46
+ }
47
+ //# sourceMappingURL=mapConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapConfig.js","sourceRoot":"","sources":["../src/mapConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,sBAAsB,CAAC;AAO9C,MAAM,CAAC,MAAM,6BAA6B,GAAG,eAAe,CAAC;AAC7D,MAAM,CAAC,MAAM,gCAAgC,GAAG,OAAO,CAAC;AAgBxD,0EAA0E;AAC1E,MAAM,UAAU,yBAAyB,CACvC,MAAwC;IAExC,OAAO,OAAO,CAAC,MAAM,IAAI,UAAU,IAAI,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CACzC,MAAwC;IAExC,OAAO,OAAO,CAAC,MAAM,IAAI,WAAW,IAAI,MAAM,CAAC,CAAC;AAClD,CAAC;AAqCD,wEAAwE;AACxE,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB,EAAE,EAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAC;YACzD,MAAM,EAAE,EAAE;SACX;QACD,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC;AASD,MAAM,CAAC,MAAM,kCAAkC,GAAG,yBAAyB,CAAC;AAC5E,MAAM,CAAC,MAAM,oCAAoC,GAAG,2BAA2B,CAAC;AAMhF,oEAAoE;AACpE,MAAM,UAAU,iCAAiC,CAC/C,OAAiD;IAEjD,MAAM,EAAC,KAAK,EAAE,GAAG,MAAM,EAAC,GAAG,OAAO,CAAC;IACnC,OAAO;QACL,EAAE,EAAE,QAAQ,EAAE;QACd,IAAI,EAAE,6BAA6B;QACnC,KAAK,EAAE,KAAK,IAAI,KAAK;QACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAA4B;KACtE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA+B;IAE/B,IACE,CAAC,MAAM,CAAC,IAAI;QACZ,CAAC,MAAM,CAAC,QAAQ;QAChB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC9B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAuB,CAAC;AACjC,CAAC","sourcesContent":["import {createId} from '@paralleldrive/cuid2';\nimport type {\n DeckJsonMapProps,\n DeckSqlDatasetInput,\n DeckTableDatasetInput,\n} from './types';\n\nexport const DECK_MAP_DASHBOARD_PANEL_TYPE = 'deck-json-map';\nexport const DEFAULT_DECK_MAP_MAX_DATA_POINTS = 100_000;\n\nexport type DeckMapDataPolicyOverride = {\n disabled?: boolean;\n maxRows?: number;\n reason?: string;\n};\n\nexport type DeckMapDatasetSource =\n | Pick<DeckSqlDatasetInput, 'sqlQuery'>\n | Pick<DeckTableDatasetInput, 'tableName' | 'transformSql'>;\n\nexport type DeckMapDatasetConfig = Omit<DeckSqlDatasetInput, 'sqlQuery'> & {\n source?: DeckMapDatasetSource;\n};\n\n/** Returns whether a map dataset source is a pinned literal SQL query. */\nexport function isDeckMapSqlDatasetSource(\n source: DeckMapDatasetSource | undefined,\n): source is Pick<DeckSqlDatasetInput, 'sqlQuery'> {\n return Boolean(source && 'sqlQuery' in source);\n}\n\n/** Returns whether a map dataset source is backed by a named table. */\nexport function isDeckMapTableDatasetSource(\n source: DeckMapDatasetSource | undefined,\n): source is Pick<DeckTableDatasetInput, 'tableName' | 'transformSql'> {\n return Boolean(source && 'tableName' in source);\n}\n\nexport type DeckMapInteractionConfig = {\n type: 'point-radius-brush';\n dataset: string;\n longitudeColumn: string;\n latitudeColumn: string;\n radiusMeters?: number;\n event?: 'hover' | 'click';\n};\n\nexport type DeckMapFitToDataConfig = {\n dataset: string;\n longitudeColumn?: string;\n latitudeColumn?: string;\n geometryColumn?: string;\n h3Column?: string;\n padding?: number;\n maxZoom?: number;\n};\n\nexport type DeckMapConfigMode = 'basic' | 'custom';\n\n/** Durable, host-neutral Deck map configuration. */\nexport type DeckMapConfig = {\n spec: DeckJsonMapProps['spec'];\n datasets: Record<string, DeckMapDatasetConfig>;\n configMode?: DeckMapConfigMode;\n mapStyle?: string;\n mapProps?: Record<string, unknown>;\n showLegends?: boolean;\n interaction?: DeckMapInteractionConfig;\n fitToData?: DeckMapFitToDataConfig;\n dataPolicy?: DeckMapDataPolicyOverride;\n settingsOpen?: boolean;\n};\n\n/** Creates the portable empty configuration used for a new Deck map. */\nexport function createEmptyDeckMapConfig(): DeckMapConfig {\n return {\n spec: {\n initialViewState: {longitude: 0, latitude: 20, zoom: 1.5},\n layers: [],\n },\n datasets: {},\n };\n}\n\n/** Adapter-facing dashboard panel shape; worksheet resources never store it. */\nexport type DeckMapDashboardPanelConfig = DeckMapConfig;\nexport type DeckMapDashboardDatasetConfig = DeckMapDatasetConfig;\nexport type DeckMapDashboardDatasetSource = DeckMapDatasetSource;\nexport type DeckMapDashboardInteractionConfig = DeckMapInteractionConfig;\nexport type DeckMapDashboardFitToDataConfig = DeckMapFitToDataConfig;\n\nexport const isDeckMapDashboardSqlDatasetSource = isDeckMapSqlDatasetSource;\nexport const isDeckMapDashboardTableDatasetSource = isDeckMapTableDatasetSource;\n\nexport type CreateDeckMapDashboardPanelConfigOptions = DeckMapConfig & {\n title?: string;\n};\n\n/** Creates a Mosaic panel only for the opt-in dashboard adapter. */\nexport function createDeckMapDashboardPanelConfig(\n options: CreateDeckMapDashboardPanelConfigOptions,\n) {\n const {title, ...config} = options;\n return {\n id: createId(),\n type: DECK_MAP_DASHBOARD_PANEL_TYPE,\n title: title ?? 'Map',\n config: JSON.parse(JSON.stringify(config)) as Record<string, unknown>,\n };\n}\n\n/**\n * Returns a record as a Deck map config when it has the required top-level\n * spec and dataset registry, otherwise returns `null`.\n */\nexport function asDeckJsonMapConfig(\n config: Record<string, unknown>,\n): DeckMapConfig | null {\n if (\n !config.spec ||\n !config.datasets ||\n typeof config.datasets !== 'object' ||\n Array.isArray(config.datasets)\n ) {\n return null;\n }\n return config as DeckMapConfig;\n}\n"]}
@@ -0,0 +1,111 @@
1
+ import { type DataTable, type RawSqlTableReference } from '@sqlrooms/duckdb';
2
+ import { type DeckMapDashboardPanelConfig, type DeckMapConfig } from './mapConfig';
3
+ import type { GeometryEncodingHint } from './prepare/types';
4
+ export type DeckMapConfigColumn = {
5
+ name: string;
6
+ type?: string;
7
+ };
8
+ export type DeckMapTableReference = string | {
9
+ database?: string;
10
+ schema?: string;
11
+ table?: string;
12
+ };
13
+ export type DeckMapFillColor = [number, number, number] | [number, number, number, number];
14
+ export declare function findDeckMapLongitudeLatitudeColumns(columns?: DeckMapConfigColumn[]): {
15
+ longitudeColumn: string;
16
+ latitudeColumn: string;
17
+ } | null;
18
+ export declare function findLongitudeLatitudeColumns(table?: DataTable): {
19
+ longitudeColumn: string;
20
+ latitudeColumn: string;
21
+ } | null;
22
+ export declare function findDeckMapGeometryColumn(columns?: DeckMapConfigColumn[]): {
23
+ geometryColumn: string;
24
+ geometryEncodingHint: GeometryEncodingHint | undefined;
25
+ } | null;
26
+ export declare function findGeometryColumn(table?: DataTable): {
27
+ geometryColumn: string;
28
+ geometryEncodingHint: GeometryEncodingHint | undefined;
29
+ } | null;
30
+ export declare function quoteDeckMapSqlIdentifier(identifier: string): string;
31
+ export declare function quoteDeckMapSqlTableReference(tableReference: DeckMapTableReference): RawSqlTableReference;
32
+ /**
33
+ * Builds the standard lon/lat → WKB point transform SQL used by Deck map
34
+ * datasets that follow the selected table via {@link DECK_TABLE_DATASET_SOURCE_RELATION}.
35
+ */
36
+ export declare function createDeckMapPointTransformSql(options: {
37
+ longitudeColumn: string;
38
+ latitudeColumn: string;
39
+ geometryColumn: string;
40
+ }): string;
41
+ /**
42
+ * Post-normalizes an existing Deck map config so table-backed lon/lat datasets
43
+ * without `transformSql`, `sqlQuery`, or a native geometry column get a WKB
44
+ * point transform, geometry bindings, and `fitToData.geometryColumn` alignment.
45
+ *
46
+ * Prefer this for AI/tool configs that arrive without a transform. Fresh configs
47
+ * from {@link createDeckMapDashboardConfigForTable} already include the transform;
48
+ * this helper patches in place without rebuilding layers.
49
+ */
50
+ export declare function normalizeDeckMapPointConfig<T extends DeckMapDashboardPanelConfig>(options: {
51
+ config: T;
52
+ resolveTable: (tableName: string) => DataTable | undefined;
53
+ }): T;
54
+ export declare function normalizeDeckMapFillColor(fillColor?: number[]): DeckMapFillColor;
55
+ export declare function createDeckMapConfigForTable(options: {
56
+ tableName: string;
57
+ columns: DeckMapConfigColumn[];
58
+ tableReference?: DeckMapTableReference;
59
+ sourceSqlQuery?: string;
60
+ longitudeColumn?: string;
61
+ latitudeColumn?: string;
62
+ geometryColumn?: string;
63
+ geometryEncodingHint?: GeometryEncodingHint;
64
+ pointRadius?: number;
65
+ fillColor?: DeckMapFillColor;
66
+ mapStyle?: string;
67
+ }): DeckMapConfig;
68
+ export declare const createDeckMapDashboardConfigForTable: typeof createDeckMapConfigForTable;
69
+ export declare function createDeckMapDashboardPanelConfigForTable(options: {
70
+ title?: string;
71
+ tableName: string;
72
+ columns: DeckMapConfigColumn[];
73
+ tableReference?: DeckMapTableReference;
74
+ sourceSqlQuery?: string;
75
+ longitudeColumn?: string;
76
+ latitudeColumn?: string;
77
+ geometryColumn?: string;
78
+ geometryEncodingHint?: GeometryEncodingHint;
79
+ pointRadius?: number;
80
+ fillColor?: DeckMapFillColor;
81
+ mapStyle?: string;
82
+ }): {
83
+ id: string;
84
+ type: string;
85
+ title: string;
86
+ config: Record<string, unknown>;
87
+ };
88
+ /**
89
+ * Regenerates a map's dataset source and fit configuration for a table while
90
+ * preserving an existing single dataset ID so retained layer bindings remain
91
+ * valid. Empty maps adopt the generated dataset and layer spec. Returns the
92
+ * existing config unchanged when the table has no supported geospatial columns
93
+ * or when multiple datasets make the target ambiguous.
94
+ */
95
+ export declare function regenerateMapConfigForTable(panel: {
96
+ config: Record<string, unknown>;
97
+ }, table: DataTable, longitudeColumn?: string, latitudeColumn?: string): Record<string, unknown> | DeckMapConfig | {
98
+ spec: {
99
+ layers: any[];
100
+ };
101
+ datasets: Record<string, import("./mapConfig").DeckMapDatasetConfig>;
102
+ configMode?: import("./mapConfig").DeckMapConfigMode;
103
+ mapStyle?: string;
104
+ mapProps?: Record<string, unknown>;
105
+ showLegends?: boolean;
106
+ interaction?: import("./mapConfig").DeckMapInteractionConfig;
107
+ fitToData?: import("./mapConfig").DeckMapFitToDataConfig;
108
+ dataPolicy?: import("./mapConfig").DeckMapDataPolicyOverride;
109
+ settingsOpen?: boolean;
110
+ };
111
+ //# sourceMappingURL=mapConfigUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapConfigUtils.d.ts","sourceRoot":"","sources":["../src/mapConfigUtils.ts"],"names":[],"mappings":"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"}