@jupytergis/base 0.15.0 → 0.16.0-alpha.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 (414) hide show
  1. package/lib/commands/BaseCommandIDs.d.ts +5 -0
  2. package/lib/commands/BaseCommandIDs.js +5 -0
  3. package/lib/commands/index.js +218 -48
  4. package/lib/commands/operationCommands.js +2 -2
  5. package/lib/constants.js +9 -1
  6. package/lib/{panelview/annotationPanel.js → features/annotations/AnnotationsPanel.js} +1 -1
  7. package/lib/{annotations → features/annotations}/index.d.ts +1 -0
  8. package/lib/{annotations → features/annotations}/index.js +1 -0
  9. package/lib/{console → features/console}/consoleview.js +1 -1
  10. package/lib/{panelview/filter-panel → features/filter}/Filter.js +4 -4
  11. package/lib/{panelview/filter-panel → features/filter}/FilterRow.d.ts +3 -2
  12. package/lib/{panelview/filter-panel → features/filter}/FilterRow.js +2 -1
  13. package/lib/{panelview/identify-panel → features/identify}/IdentifyPanel.d.ts +2 -0
  14. package/lib/features/identify/IdentifyPanel.js +102 -0
  15. package/lib/features/identify/components/FeatureCard.d.ts +17 -0
  16. package/lib/features/identify/components/FeatureCard.js +26 -0
  17. package/lib/features/identify/components/FeatureCardHeader.d.ts +11 -0
  18. package/lib/features/identify/components/FeatureCardHeader.js +30 -0
  19. package/lib/features/identify/components/FeatureFloater.d.ts +7 -0
  20. package/lib/features/identify/components/FeatureFloater.js +19 -0
  21. package/lib/features/identify/components/FeaturePropertyList.d.ts +11 -0
  22. package/lib/features/identify/components/FeaturePropertyList.js +18 -0
  23. package/lib/features/identify/components/FeatureRow.d.ts +13 -0
  24. package/lib/features/identify/components/FeatureRow.js +25 -0
  25. package/lib/features/identify/components/PropertyEditors.d.ts +44 -0
  26. package/lib/features/identify/components/PropertyEditors.js +56 -0
  27. package/lib/features/identify/hooks/useIdentifyPropertyEditor.d.ts +11 -0
  28. package/lib/features/identify/hooks/useIdentifyPropertyEditor.js +132 -0
  29. package/lib/features/identify/types/editorTypes.d.ts +21 -0
  30. package/lib/features/identify/utils/getFeatureIdentifier.d.ts +5 -0
  31. package/lib/features/identify/utils/getFeatureIdentifier.js +14 -0
  32. package/lib/features/identify/utils/highlightLayer.d.ts +11 -0
  33. package/lib/features/identify/utils/highlightLayer.js +57 -0
  34. package/lib/features/identify/utils/highlightStyle.d.ts +7 -0
  35. package/lib/features/identify/utils/highlightStyle.js +40 -0
  36. package/lib/{dialogs/layerBrowserDialog.js → features/layer-browser/index.js} +2 -2
  37. package/lib/{formbuilder/objectform/layer/heatmapLayerForm.d.ts → features/layers/forms/layer/geoTiffLayerForm.d.ts} +1 -1
  38. package/lib/{formbuilder/objectform/layer/webGlLayerForm.js → features/layers/forms/layer/geoTiffLayerForm.js} +5 -5
  39. package/lib/{formbuilder/objectform → features/layers/forms}/layer/hillshadeLayerForm.js +4 -4
  40. package/lib/{formbuilder/objectform → features/layers/forms}/layer/index.d.ts +1 -2
  41. package/lib/{formbuilder/objectform → features/layers/forms}/layer/index.js +1 -2
  42. package/lib/{formbuilder/objectform → features/layers/forms}/layer/layerform.d.ts +1 -1
  43. package/lib/{formbuilder/objectform → features/layers/forms}/layer/layerform.js +4 -4
  44. package/lib/features/layers/forms/layer/storySegmentLayerForm.js +150 -0
  45. package/lib/{formbuilder/objectform → features/layers/forms}/layer/vectorlayerform.js +4 -4
  46. package/lib/{formbuilder/objectform → features/layers/forms}/source/geojsonsource.js +5 -5
  47. package/lib/features/layers/forms/source/geopackagesource.d.ts +3 -0
  48. package/lib/features/layers/forms/source/geopackagesource.js +93 -0
  49. package/lib/{formbuilder/objectform → features/layers/forms}/source/geotiffsource.js +5 -5
  50. package/lib/{formbuilder/objectform → features/layers/forms}/source/index.d.ts +1 -0
  51. package/lib/{formbuilder/objectform → features/layers/forms}/source/index.js +1 -0
  52. package/lib/{formbuilder/objectform → features/layers/forms}/source/pathbasedsource.js +5 -5
  53. package/lib/{formbuilder/objectform → features/layers/forms}/source/sourceform.d.ts +1 -1
  54. package/lib/{formbuilder/objectform → features/layers/forms}/source/sourceform.js +4 -4
  55. package/lib/{formbuilder/objectform → features/layers/forms}/source/tilesourceform.js +4 -4
  56. package/lib/{formbuilder/objectform → features/layers/forms}/source/wmsTileSource.d.ts +1 -1
  57. package/lib/{formbuilder/objectform → features/layers/forms}/source/wmsTileSource.js +6 -6
  58. package/lib/{dialogs → features/layers}/layerCreationFormDialog.d.ts +1 -1
  59. package/lib/{dialogs → features/layers}/layerCreationFormDialog.js +1 -1
  60. package/lib/features/layers/symbology/Grammar.d.ts +11 -0
  61. package/lib/features/layers/symbology/Grammar.js +316 -0
  62. package/lib/{dialogs → features/layers}/symbology/classificationModes.d.ts +6 -6
  63. package/lib/{dialogs → features/layers}/symbology/classificationModes.js +48 -44
  64. package/lib/{dialogs → features/layers}/symbology/colorRampUtils.d.ts +1 -0
  65. package/lib/{dialogs → features/layers}/symbology/colorRampUtils.js +12 -1
  66. package/lib/features/layers/symbology/components/MappingRow.d.ts +40 -0
  67. package/lib/features/layers/symbology/components/MappingRow.js +520 -0
  68. package/lib/features/layers/symbology/components/NumericInput.d.ts +20 -0
  69. package/lib/features/layers/symbology/components/NumericInput.js +44 -0
  70. package/lib/features/layers/symbology/components/ScaleEditor.d.ts +33 -0
  71. package/lib/features/layers/symbology/components/ScaleEditor.js +221 -0
  72. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampControls.d.ts +1 -1
  73. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampControls.js +4 -3
  74. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelector.d.ts +2 -1
  75. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelector.js +6 -1
  76. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ModeSelectRow.d.ts +1 -1
  77. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/RgbaColorPicker.js +39 -9
  78. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopContainer.js +1 -1
  79. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopRow.d.ts +1 -1
  80. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopRow.js +14 -2
  81. package/lib/features/layers/symbology/grammarToOLLayer.d.ts +27 -0
  82. package/lib/features/layers/symbology/grammarToOLLayer.js +145 -0
  83. package/lib/features/layers/symbology/grammarToOLStyle.d.ts +32 -0
  84. package/lib/features/layers/symbology/grammarToOLStyle.js +487 -0
  85. package/lib/{dialogs → features/layers}/symbology/hooks/useGetBandInfo.d.ts +1 -1
  86. package/lib/{dialogs → features/layers}/symbology/hooks/useGetBandInfo.js +1 -1
  87. package/lib/{dialogs → features/layers}/symbology/hooks/useGetProperties.js +1 -1
  88. package/lib/{dialogs → features/layers}/symbology/hooks/useGetSymbology.js +4 -2
  89. package/lib/features/layers/symbology/styleBuilder.d.ts +24 -0
  90. package/lib/features/layers/symbology/styleBuilder.js +158 -0
  91. package/lib/{dialogs → features/layers}/symbology/symbologyDialog.d.ts +1 -1
  92. package/lib/{dialogs → features/layers}/symbology/symbologyDialog.js +11 -13
  93. package/lib/{dialogs → features/layers}/symbology/symbologyUtils.d.ts +18 -10
  94. package/lib/{dialogs → features/layers}/symbology/symbologyUtils.js +0 -84
  95. package/lib/{panelview/objectproperties.d.ts → features/objectproperties/index.d.ts} +1 -1
  96. package/lib/{panelview/objectproperties.js → features/objectproperties/index.js} +5 -10
  97. package/lib/{dialogs → features/processing}/ProcessingFormDialog.d.ts +1 -1
  98. package/lib/{dialogs → features/processing}/ProcessingFormDialog.js +28 -14
  99. package/lib/features/processing/forms/MapExtentToggle.d.ts +13 -0
  100. package/lib/features/processing/forms/MapExtentToggle.js +20 -0
  101. package/lib/features/processing/forms/clipRasterByExtentForm.d.ts +10 -0
  102. package/lib/features/processing/forms/clipRasterByExtentForm.js +99 -0
  103. package/lib/{formbuilder/objectform/process → features/processing/forms}/dissolveProcessForm.js +5 -5
  104. package/lib/{formbuilder/objectform → features/processing/forms}/processingForm.d.ts +1 -1
  105. package/lib/{formbuilder/objectform → features/processing/forms}/processingForm.js +6 -6
  106. package/lib/features/processing/forms/rasterizeForm.d.ts +10 -0
  107. package/lib/features/processing/forms/rasterizeForm.js +75 -0
  108. package/lib/features/processing/forms/useMapExtent.d.ts +22 -0
  109. package/lib/features/processing/forms/useMapExtent.js +57 -0
  110. package/lib/{processing → features/processing}/index.d.ts +19 -2
  111. package/lib/features/processing/index.js +1246 -0
  112. package/lib/{processing → features/processing}/processingCommands.d.ts +1 -1
  113. package/lib/features/processing/processingCommands.js +168 -0
  114. package/lib/features/processing/serverProcessing.d.ts +51 -0
  115. package/lib/features/processing/serverProcessing.js +99 -0
  116. package/lib/{stacBrowser → features/stac-browser}/components/StacPanel.js +2 -2
  117. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableComboBox.js +5 -5
  118. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableRow.js +1 -1
  119. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacFilterExtensionPanel.js +2 -2
  120. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacQueryableFilters.js +1 -1
  121. package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacFilterSection.js +3 -3
  122. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacPanelResults.js +3 -3
  123. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacSpatialExtent.js +1 -1
  124. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacTemporalExtent.js +1 -1
  125. package/lib/{stacBrowser → features/stac-browser}/context/StacResultsContext.js +2 -2
  126. package/lib/{stacBrowser → features/stac-browser}/hooks/useGeodesSearch.js +2 -2
  127. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacFilterExtension.js +3 -3
  128. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacSearch.js +1 -1
  129. package/lib/features/stac-browser/types/types.js +1 -0
  130. package/lib/{panelview/story-maps → features/story}/SpectaPanel.d.ts +4 -1
  131. package/lib/{panelview/story-maps → features/story}/SpectaPanel.js +3 -4
  132. package/lib/{panelview/story-maps → features/story}/StoryEditorPanel.js +1 -1
  133. package/lib/{panelview/story-maps → features/story}/StoryViewerPanel.d.ts +12 -11
  134. package/lib/features/story/StoryViewerPanel.js +64 -0
  135. package/lib/features/story/__tests__/fixtures/listStoryTestItems.d.ts +9 -0
  136. package/lib/features/story/__tests__/fixtures/listStoryTestItems.js +21 -0
  137. package/lib/features/story/components/ListStoryMapOverlayPanel.d.ts +10 -0
  138. package/lib/features/story/components/ListStoryMapOverlayPanel.js +11 -0
  139. package/lib/features/story/components/ListStoryMarkdownMeasurePane.d.ts +11 -0
  140. package/lib/features/story/components/ListStoryMarkdownMeasurePane.js +55 -0
  141. package/lib/features/story/components/ListStoryOverlayMarkdown.d.ts +15 -0
  142. package/lib/features/story/components/ListStoryOverlayMarkdown.js +93 -0
  143. package/lib/features/story/components/ListStoryStageOverlay.d.ts +11 -0
  144. package/lib/features/story/components/ListStoryStageOverlay.js +150 -0
  145. package/lib/features/story/components/ListStoryTitleBar.d.ts +7 -0
  146. package/lib/features/story/components/ListStoryTitleBar.js +20 -0
  147. package/lib/features/story/components/ListStoryTitleBarDesktop.d.ts +2 -0
  148. package/lib/features/story/components/ListStoryTitleBarDesktop.js +55 -0
  149. package/lib/features/story/components/ListStoryTitleBarMobile.d.ts +2 -0
  150. package/lib/features/story/components/ListStoryTitleBarMobile.js +41 -0
  151. package/lib/features/story/components/ListStoryVirtualScrollTrack.d.ts +6 -0
  152. package/lib/features/story/components/ListStoryVirtualScrollTrack.js +7 -0
  153. package/lib/{panelview/story-maps → features/story}/components/SpectaDesktopView.d.ts +4 -2
  154. package/lib/features/story/components/SpectaDesktopView.js +67 -0
  155. package/lib/features/story/components/SpectaMobileListModeContent.d.ts +13 -0
  156. package/lib/features/story/components/SpectaMobileListModeContent.js +36 -0
  157. package/lib/features/story/components/SpectaMobileSingleModeContent.d.ts +14 -0
  158. package/lib/{panelview/story-maps/components/SpectaMobileView.js → features/story/components/SpectaMobileSingleModeContent.js} +4 -6
  159. package/lib/{panelview/story-maps → features/story}/components/SpectaMobileView.d.ts +5 -3
  160. package/lib/features/story/components/SpectaMobileView.js +12 -0
  161. package/lib/features/story/components/SpectaSingleModeContent.d.ts +18 -0
  162. package/lib/features/story/components/SpectaSingleModeContent.js +8 -0
  163. package/lib/features/story/context/ListStoryScrollTrackContext.d.ts +19 -0
  164. package/lib/features/story/context/ListStoryScrollTrackContext.js +186 -0
  165. package/lib/features/story/hooks/useCurrentSegmentIndex.d.ts +3 -0
  166. package/lib/features/story/hooks/useCurrentSegmentIndex.js +17 -0
  167. package/lib/features/story/hooks/useListStoryScroll.d.ts +15 -0
  168. package/lib/features/story/hooks/useListStoryScroll.js +107 -0
  169. package/lib/features/story/hooks/useQueuedMarkdownHeightMeasure.d.ts +19 -0
  170. package/lib/features/story/hooks/useQueuedMarkdownHeightMeasure.js +56 -0
  171. package/lib/features/story/hooks/useStoryImagePreload.d.ts +1 -0
  172. package/lib/features/story/hooks/useStoryImagePreload.js +24 -0
  173. package/lib/{panelview/story-maps → features/story}/hooks/useStoryMap.d.ts +2 -7
  174. package/lib/{panelview/story-maps → features/story}/hooks/useStoryMap.js +21 -60
  175. package/lib/features/story/hooks/useStoryScrollState.d.ts +21 -0
  176. package/lib/features/story/hooks/useStoryScrollState.js +39 -0
  177. package/lib/features/story/hooks/useStorySegmentSync.d.ts +8 -0
  178. package/lib/features/story/hooks/useStorySegmentSync.js +51 -0
  179. package/lib/features/story/types/types.d.ts +43 -0
  180. package/lib/features/story/types/types.js +1 -0
  181. package/lib/features/story/utils/computeListStoryScrollState.d.ts +14 -0
  182. package/lib/features/story/utils/computeListStoryScrollState.js +79 -0
  183. package/lib/features/story/utils/listStoryMeasureQueue.d.ts +11 -0
  184. package/lib/features/story/utils/listStoryMeasureQueue.js +14 -0
  185. package/lib/features/story/utils/listStoryScrollTrack.d.ts +17 -0
  186. package/lib/features/story/utils/listStoryScrollTrack.js +72 -0
  187. package/lib/features/story/utils/spectaPresentation.d.ts +9 -0
  188. package/lib/features/story/utils/spectaPresentation.js +37 -0
  189. package/lib/features/story/utils/storySegmentViewItems.d.ts +5 -0
  190. package/lib/features/story/utils/storySegmentViewItems.js +30 -0
  191. package/lib/index.d.ts +11 -9
  192. package/lib/index.js +11 -9
  193. package/lib/keybindings.json +5 -0
  194. package/lib/mainview/OpenEOTileLayer.d.ts +49 -0
  195. package/lib/mainview/OpenEOTileLayer.js +179 -0
  196. package/lib/mainview/TemporalSlider.js +11 -9
  197. package/lib/mainview/components/MainViewMapSurface.d.ts +15 -0
  198. package/lib/mainview/components/MainViewMapSurface.js +13 -0
  199. package/lib/mainview/components/MainViewOverlayLayer.d.ts +9 -0
  200. package/lib/mainview/components/MainViewOverlayLayer.js +11 -0
  201. package/lib/mainview/components/MainViewSidePanels.d.ts +17 -0
  202. package/lib/mainview/components/MainViewSidePanels.js +10 -0
  203. package/lib/mainview/components/MainViewSpectaPanel.d.ts +17 -0
  204. package/lib/mainview/components/MainViewSpectaPanel.js +8 -0
  205. package/lib/mainview/components/MainViewStoryStage.d.ts +13 -0
  206. package/lib/mainview/components/MainViewStoryStage.js +17 -0
  207. package/lib/mainview/components/PositionedFloater.d.ts +10 -0
  208. package/lib/mainview/components/PositionedFloater.js +7 -0
  209. package/lib/mainview/geoJsonFeaturePatch.d.ts +9 -0
  210. package/lib/mainview/geoJsonFeaturePatch.js +43 -0
  211. package/lib/mainview/mainView.d.ts +93 -14
  212. package/lib/mainview/mainView.js +1216 -686
  213. package/lib/mainview/mainviewwidget.d.ts +5 -1
  214. package/lib/mainview/mainviewwidget.js +4 -2
  215. package/lib/shared/components/Button.d.ts +1 -1
  216. package/lib/shared/components/DropdownMenu.d.ts +1 -0
  217. package/lib/shared/components/DropdownMenu.js +3 -2
  218. package/lib/shared/components/NativeSelect.d.ts +8 -0
  219. package/lib/shared/components/NativeSelect.js +29 -0
  220. package/lib/shared/components/Tabs.d.ts +3 -3
  221. package/lib/shared/components/Tabs.js +5 -5
  222. package/lib/{formbuilder → shared/formbuilder}/creationform.js +71 -4
  223. package/lib/{formbuilder → shared/formbuilder}/editform.js +1 -1
  224. package/lib/{formbuilder → shared/formbuilder}/formselectors.d.ts +2 -2
  225. package/lib/{formbuilder → shared/formbuilder}/formselectors.js +10 -7
  226. package/lib/shared/formbuilder/index.d.ts +4 -0
  227. package/lib/shared/formbuilder/index.js +4 -0
  228. package/lib/{formbuilder → shared/formbuilder}/objectform/SchemaForm.d.ts +1 -1
  229. package/lib/{formbuilder → shared/formbuilder}/objectform/StoryEditorForm.d.ts +1 -1
  230. package/lib/{formbuilder → shared/formbuilder}/objectform/StoryEditorForm.js +1 -1
  231. package/lib/{formbuilder → shared/formbuilder}/objectform/components/LayerSelect.js +1 -1
  232. package/lib/{formbuilder → shared/formbuilder}/objectform/components/SegmentFormSymbology.js +4 -4
  233. package/lib/{formbuilder → shared/formbuilder}/objectform/components/SourcePropertiesField.js +1 -1
  234. package/lib/{formbuilder → shared/formbuilder}/objectform/components/StorySegmentReset.js +1 -1
  235. package/lib/{formbuilder → shared/formbuilder}/objectform/components/WmsTileSourceUrlInput.js +4 -4
  236. package/lib/{formbuilder → shared/formbuilder}/objectform/fileselectorwidget.js +8 -1
  237. package/lib/{formbuilder → shared/formbuilder}/objectform/schemaUtils.d.ts +3 -1
  238. package/lib/{formbuilder → shared/formbuilder}/objectform/schemaUtils.js +11 -0
  239. package/lib/{formbuilder → shared/formbuilder}/objectform/useSchemaFormState.d.ts +1 -1
  240. package/lib/{formbuilder → shared/formbuilder}/objectform/useSchemaFormState.js +1 -1
  241. package/lib/{icons.d.ts → shared/icons.d.ts} +2 -0
  242. package/lib/{icons.js → shared/icons.js} +28 -18
  243. package/lib/tools.d.ts +2 -0
  244. package/lib/tools.js +138 -4
  245. package/lib/types.d.ts +6 -1
  246. package/lib/types.js +6 -2
  247. package/lib/{menus.js → workspace/menus.js} +10 -2
  248. package/lib/workspace/panels/components/TabbedPanel.d.ts +17 -0
  249. package/lib/workspace/panels/components/TabbedPanel.js +19 -0
  250. package/lib/{panelview → workspace/panels}/components/layers.js +63 -18
  251. package/lib/workspace/panels/components/legendItem.js +680 -0
  252. package/lib/workspace/panels/hooks/useLayerTree.d.ts +19 -0
  253. package/lib/workspace/panels/hooks/useLayerTree.js +103 -0
  254. package/lib/workspace/panels/hooks/useRightPanelOptions.d.ts +27 -0
  255. package/lib/workspace/panels/hooks/useRightPanelOptions.js +72 -0
  256. package/lib/workspace/panels/hooks/useUIState.d.ts +2 -0
  257. package/lib/workspace/panels/hooks/useUIState.js +25 -0
  258. package/lib/{panelview → workspace/panels}/index.d.ts +1 -1
  259. package/lib/{panelview → workspace/panels}/index.js +1 -1
  260. package/lib/{panelview → workspace/panels}/leftpanel.d.ts +1 -1
  261. package/lib/workspace/panels/leftpanel.js +70 -0
  262. package/lib/{panelview/rightpanel.d.ts → workspace/panels/mergedpanel.d.ts} +6 -5
  263. package/lib/workspace/panels/mergedpanel.js +166 -0
  264. package/lib/workspace/panels/rightpanel.d.ts +25 -0
  265. package/lib/{panelview → workspace/panels}/rightpanel.js +53 -63
  266. package/lib/{statusbar → workspace/statusbar}/StatusBar.js +5 -4
  267. package/lib/{toolbar → workspace/toolbar}/widget.d.ts +2 -0
  268. package/lib/{toolbar → workspace/toolbar}/widget.js +33 -5
  269. package/lib/{widget.d.ts → workspace/widget.d.ts} +7 -5
  270. package/lib/{widget.js → workspace/widget.js} +16 -7
  271. package/package.json +16 -4
  272. package/style/base.css +124 -2
  273. package/style/icons/geopackage.svg +95 -0
  274. package/style/icons/pencil_solid.svg +7 -0
  275. package/style/identify.css +95 -0
  276. package/style/layerBrowser.css +29 -1
  277. package/style/leftPanel.css +25 -0
  278. package/style/shared/button.css +12 -0
  279. package/style/shared/dropdownMenu.css +9 -0
  280. package/style/shared/nativeSelect.css +75 -0
  281. package/style/shared/tabs.css +1 -1
  282. package/style/spectaProgressBar.css +0 -1
  283. package/style/storyPanel.css +330 -9
  284. package/style/storySpectaArticleOverlay.css +129 -0
  285. package/style/symbologyDialog.css +522 -27
  286. package/lib/dialogs/symbology/tiff_layer/TiffRendering.d.ts +0 -4
  287. package/lib/dialogs/symbology/tiff_layer/TiffRendering.js +0 -42
  288. package/lib/dialogs/symbology/tiff_layer/components/BandRow.d.ts +0 -23
  289. package/lib/dialogs/symbology/tiff_layer/components/BandRow.js +0 -59
  290. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.d.ts +0 -4
  291. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.js +0 -92
  292. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.d.ts +0 -5
  293. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.js +0 -313
  294. package/lib/dialogs/symbology/vector_layer/VectorRendering.d.ts +0 -4
  295. package/lib/dialogs/symbology/vector_layer/VectorRendering.js +0 -112
  296. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.d.ts +0 -8
  297. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.js +0 -9
  298. package/lib/dialogs/symbology/vector_layer/types/Canonical.d.ts +0 -4
  299. package/lib/dialogs/symbology/vector_layer/types/Canonical.js +0 -130
  300. package/lib/dialogs/symbology/vector_layer/types/Categorized.d.ts +0 -4
  301. package/lib/dialogs/symbology/vector_layer/types/Categorized.js +0 -243
  302. package/lib/dialogs/symbology/vector_layer/types/Graduated.d.ts +0 -4
  303. package/lib/dialogs/symbology/vector_layer/types/Graduated.js +0 -362
  304. package/lib/dialogs/symbology/vector_layer/types/Heatmap.d.ts +0 -4
  305. package/lib/dialogs/symbology/vector_layer/types/Heatmap.js +0 -89
  306. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.d.ts +0 -4
  307. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.js +0 -120
  308. package/lib/formbuilder/index.d.ts +0 -4
  309. package/lib/formbuilder/index.js +0 -4
  310. package/lib/formbuilder/objectform/layer/heatmapLayerForm.js +0 -96
  311. package/lib/formbuilder/objectform/layer/storySegmentLayerForm.js +0 -95
  312. package/lib/formbuilder/objectform/layer/webGlLayerForm.d.ts +0 -3
  313. package/lib/formbuilder/objectform/process/index.d.ts +0 -1
  314. package/lib/formbuilder/objectform/process/index.js +0 -1
  315. package/lib/panelview/components/legendItem.js +0 -210
  316. package/lib/panelview/identify-panel/IdentifyPanel.js +0 -102
  317. package/lib/panelview/leftpanel.js +0 -139
  318. package/lib/panelview/story-maps/StoryViewerPanel.js +0 -116
  319. package/lib/panelview/story-maps/components/SpectaDesktopView.js +0 -49
  320. package/lib/processing/index.js +0 -200
  321. package/lib/processing/processingCommands.js +0 -67
  322. /package/lib/{panelview/annotationPanel.d.ts → features/annotations/AnnotationsPanel.d.ts} +0 -0
  323. /package/lib/{annotations → features/annotations}/components/Annotation.d.ts +0 -0
  324. /package/lib/{annotations → features/annotations}/components/Annotation.js +0 -0
  325. /package/lib/{annotations → features/annotations}/components/AnnotationFloater.d.ts +0 -0
  326. /package/lib/{annotations → features/annotations}/components/AnnotationFloater.js +0 -0
  327. /package/lib/{annotations → features/annotations}/components/Message.d.ts +0 -0
  328. /package/lib/{annotations → features/annotations}/components/Message.js +0 -0
  329. /package/lib/{annotations → features/annotations}/model.d.ts +0 -0
  330. /package/lib/{annotations → features/annotations}/model.js +0 -0
  331. /package/lib/{console → features/console}/consoleview.d.ts +0 -0
  332. /package/lib/{console → features/console}/index.d.ts +0 -0
  333. /package/lib/{console → features/console}/index.js +0 -0
  334. /package/lib/{panelview/filter-panel → features/filter}/Filter.d.ts +0 -0
  335. /package/lib/{stacBrowser/types/types.js → features/identify/types/editorTypes.js} +0 -0
  336. /package/lib/{dialogs/layerBrowserDialog.d.ts → features/layer-browser/index.d.ts} +0 -0
  337. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/hillshadeLayerForm.d.ts +0 -0
  338. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/storySegmentLayerForm.d.ts +0 -0
  339. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/vectorlayerform.d.ts +0 -0
  340. /package/lib/{formbuilder/objectform → features/layers/forms}/source/geojsonsource.d.ts +0 -0
  341. /package/lib/{formbuilder/objectform → features/layers/forms}/source/geotiffsource.d.ts +0 -0
  342. /package/lib/{formbuilder/objectform → features/layers/forms}/source/pathbasedsource.d.ts +0 -0
  343. /package/lib/{formbuilder/objectform → features/layers/forms}/source/tilesourceform.d.ts +0 -0
  344. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelectorEntry.d.ts +0 -0
  345. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelectorEntry.js +0 -0
  346. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ModeSelectRow.js +0 -0
  347. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/RgbaColorPicker.d.ts +0 -0
  348. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/cmocean.json +0 -0
  349. /package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopContainer.d.ts +0 -0
  350. /package/lib/{dialogs → features/layers}/symbology/hooks/useEffectiveSymbologyParams.d.ts +0 -0
  351. /package/lib/{dialogs → features/layers}/symbology/hooks/useEffectiveSymbologyParams.js +0 -0
  352. /package/lib/{dialogs → features/layers}/symbology/hooks/useGetProperties.d.ts +0 -0
  353. /package/lib/{dialogs → features/layers}/symbology/hooks/useGetSymbology.d.ts +0 -0
  354. /package/lib/{dialogs → features/layers}/symbology/hooks/useOkSignal.d.ts +0 -0
  355. /package/lib/{dialogs → features/layers}/symbology/hooks/useOkSignal.js +0 -0
  356. /package/lib/{formbuilder/objectform/process → features/processing/forms}/dissolveProcessForm.d.ts +0 -0
  357. /package/lib/{processing → features/processing}/processingFormToParam.d.ts +0 -0
  358. /package/lib/{processing → features/processing}/processingFormToParam.js +0 -0
  359. /package/lib/{stacBrowser → features/stac-browser}/components/StacPanel.d.ts +0 -0
  360. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableComboBox.d.ts +0 -0
  361. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableRow.d.ts +0 -0
  362. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacFilterExtensionPanel.d.ts +0 -0
  363. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacQueryableFilters.d.ts +0 -0
  364. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacFilterSection.d.ts +0 -0
  365. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacGeodesFilterPanel.d.ts +0 -0
  366. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacGeodesFilterPanel.js +0 -0
  367. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacPanelResults.d.ts +0 -0
  368. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacSpatialExtent.d.ts +0 -0
  369. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacTemporalExtent.d.ts +0 -0
  370. /package/lib/{stacBrowser → features/stac-browser}/constants.d.ts +0 -0
  371. /package/lib/{stacBrowser → features/stac-browser}/constants.js +0 -0
  372. /package/lib/{stacBrowser → features/stac-browser}/context/StacResultsContext.d.ts +0 -0
  373. /package/lib/{stacBrowser → features/stac-browser}/hooks/useGeodesSearch.d.ts +0 -0
  374. /package/lib/{stacBrowser → features/stac-browser}/hooks/useStacFilterExtension.d.ts +0 -0
  375. /package/lib/{stacBrowser → features/stac-browser}/hooks/useStacSearch.d.ts +0 -0
  376. /package/lib/{stacBrowser → features/stac-browser}/index.d.ts +0 -0
  377. /package/lib/{stacBrowser → features/stac-browser}/index.js +0 -0
  378. /package/lib/{stacBrowser → features/stac-browser}/types/types.d.ts +0 -0
  379. /package/lib/{panelview/story-maps → features/story}/StoryEditorPanel.d.ts +0 -0
  380. /package/lib/{panelview/story-maps → features/story}/components/PreviewModeSwitch.d.ts +0 -0
  381. /package/lib/{panelview/story-maps → features/story}/components/PreviewModeSwitch.js +0 -0
  382. /package/lib/{panelview/story-maps → features/story}/components/StoryContentSection.d.ts +0 -0
  383. /package/lib/{panelview/story-maps → features/story}/components/StoryContentSection.js +0 -0
  384. /package/lib/{panelview/story-maps → features/story}/components/StoryImageSection.d.ts +0 -0
  385. /package/lib/{panelview/story-maps → features/story}/components/StoryImageSection.js +0 -0
  386. /package/lib/{panelview/story-maps → features/story}/components/StoryNavBar.d.ts +0 -0
  387. /package/lib/{panelview/story-maps → features/story}/components/StoryNavBar.js +0 -0
  388. /package/lib/{panelview/story-maps → features/story}/components/StorySubtitleSection.d.ts +0 -0
  389. /package/lib/{panelview/story-maps → features/story}/components/StorySubtitleSection.js +0 -0
  390. /package/lib/{panelview/story-maps → features/story}/components/StoryTitleSection.d.ts +0 -0
  391. /package/lib/{panelview/story-maps → features/story}/components/StoryTitleSection.js +0 -0
  392. /package/lib/{formbuilder → shared/formbuilder}/creationform.d.ts +0 -0
  393. /package/lib/{formbuilder → shared/formbuilder}/editform.d.ts +0 -0
  394. /package/lib/{formbuilder → shared/formbuilder}/objectform/SchemaForm.js +0 -0
  395. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/LayerSelect.d.ts +0 -0
  396. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/OpacitySlider.d.ts +0 -0
  397. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/OpacitySlider.js +0 -0
  398. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/SegmentFormSymbology.d.ts +0 -0
  399. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/SourcePropertiesField.d.ts +0 -0
  400. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/StorySegmentReset.d.ts +0 -0
  401. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/WmsTileSourceUrlInput.d.ts +0 -0
  402. /package/lib/{formbuilder → shared/formbuilder}/objectform/fileselectorwidget.d.ts +0 -0
  403. /package/lib/{store.d.ts → shared/store.d.ts} +0 -0
  404. /package/lib/{store.js → shared/store.js} +0 -0
  405. /package/lib/{menus.d.ts → workspace/menus.d.ts} +0 -0
  406. /package/lib/{panelview → workspace/panels}/components/layers.d.ts +0 -0
  407. /package/lib/{panelview → workspace/panels}/components/legendItem.d.ts +0 -0
  408. /package/lib/{panelview → workspace/panels}/header.d.ts +0 -0
  409. /package/lib/{panelview → workspace/panels}/header.js +0 -0
  410. /package/lib/{statusbar → workspace/statusbar}/SpectaPresentationProgressBar.d.ts +0 -0
  411. /package/lib/{statusbar → workspace/statusbar}/SpectaPresentationProgressBar.js +0 -0
  412. /package/lib/{statusbar → workspace/statusbar}/StatusBar.d.ts +0 -0
  413. /package/lib/{toolbar → workspace/toolbar}/index.d.ts +0 -0
  414. /package/lib/{toolbar → workspace/toolbar}/index.js +0 -0
@@ -1,12 +1,16 @@
1
1
  import { IAnnotationModel, IJGISFormSchemaRegistry } from '@jupytergis/schema';
2
2
  import { ReactWidget } from '@jupyterlab/apputils';
3
+ import type { ILoggerRegistry } from '@jupyterlab/logconsole';
4
+ import type { IRenderMimeRegistry } from '@jupyterlab/rendermime';
3
5
  import { IStateDB } from '@jupyterlab/statedb';
4
- import { MainViewModel } from './mainviewmodel';
6
+ import { MainViewModel } from "./mainviewmodel";
5
7
  export interface IOptions {
6
8
  mainViewModel: MainViewModel;
7
9
  state?: IStateDB;
8
10
  formSchemaRegistry?: IJGISFormSchemaRegistry;
9
11
  annotationModel?: IAnnotationModel;
12
+ loggerRegistry?: ILoggerRegistry;
13
+ rendermime?: IRenderMimeRegistry | null;
10
14
  }
11
15
  export declare class JupyterGISMainViewPanel extends ReactWidget {
12
16
  /**
@@ -1,6 +1,7 @@
1
1
  import { ReactWidget } from '@jupyterlab/apputils';
2
2
  import * as React from 'react';
3
- import { MainViewWithMediaQuery } from './mainView';
3
+ import { StoryRenderMimeProvider } from "../features/story/components/ListStoryOverlayMarkdown";
4
+ import { MainViewWithMediaQuery } from "./mainView";
4
5
  export class JupyterGISMainViewPanel extends ReactWidget {
5
6
  /**
6
7
  * Construct a `JupyterGISPanel`.
@@ -12,6 +13,7 @@ export class JupyterGISMainViewPanel extends ReactWidget {
12
13
  this._options = options;
13
14
  }
14
15
  render() {
15
- return (React.createElement(MainViewWithMediaQuery, { state: this._state, viewModel: this._options.mainViewModel, formSchemaRegistry: this._options.formSchemaRegistry, annotationModel: this._options.annotationModel }));
16
+ return (React.createElement(StoryRenderMimeProvider, { rendermime: this._options.rendermime },
17
+ React.createElement(MainViewWithMediaQuery, { state: this._state, viewModel: this._options.mainViewModel, formSchemaRegistry: this._options.formSchemaRegistry, annotationModel: this._options.annotationModel, loggerRegistry: this._options.loggerRegistry })));
16
18
  }
17
19
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  asChild?: boolean;
4
4
  variant?: 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link' | 'icon';
5
- size?: 'sm' | 'lg' | 'icon' | 'icon-sm';
5
+ size?: 'sm' | 'lg' | 'icon' | 'icon-sm' | 'icon-md';
6
6
  }
7
7
  declare const Button: React.ForwardRefExoticComponent<IButtonProps & React.RefAttributes<HTMLButtonElement>>;
8
8
  export { Button };
@@ -13,6 +13,7 @@ declare const DropdownMenuSubContent: React.ForwardRefExoticComponent<Omit<Dropd
13
13
  declare const DropdownMenuContent: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
14
  declare const DropdownMenuItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
15
15
  inset?: boolean;
16
+ variant?: "default" | "destructive";
16
17
  } & React.RefAttributes<HTMLDivElement>>;
17
18
  declare const DropdownMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
19
  declare const DropdownMenuRadioItem: React.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -12,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import { Check, ChevronRight, Circle } from 'lucide-react';
13
13
  import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';
14
14
  import * as React from 'react';
15
+ import { cn } from './utils';
15
16
  const DropdownMenu = DropdownMenuPrimitive.Root;
16
17
  const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
17
18
  const DropdownMenuGroup = DropdownMenuPrimitive.Group;
@@ -41,8 +42,8 @@ const DropdownMenuContent = React.forwardRef((_a, ref) => {
41
42
  });
42
43
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
43
44
  const DropdownMenuItem = React.forwardRef((_a, ref) => {
44
- var { inset } = _a, props = __rest(_a, ["inset"]);
45
- return (React.createElement(DropdownMenuPrimitive.Item, Object.assign({ ref: ref, className: 'jgis-dropdown-menu-item', style: {
45
+ var { inset, variant = 'default', className } = _a, props = __rest(_a, ["inset", "variant", "className"]);
46
+ return (React.createElement(DropdownMenuPrimitive.Item, Object.assign({ ref: ref, "data-variant": variant, className: cn('jgis-dropdown-menu-item', className), style: {
46
47
  paddingLeft: inset ? '2rem' : '0.5rem',
47
48
  } }, props)));
48
49
  });
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ type NativeSelectProps = Omit<React.ComponentProps<'select'>, 'size'> & {
3
+ size?: 'sm' | 'default';
4
+ };
5
+ declare function NativeSelect({ className, size, ...props }: NativeSelectProps): React.JSX.Element;
6
+ declare function NativeSelectOption({ className, ...props }: React.ComponentProps<'option'>): React.JSX.Element;
7
+ declare function NativeSelectOptGroup({ className, ...props }: React.ComponentProps<'optgroup'>): React.JSX.Element;
8
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { ChevronDownIcon } from 'lucide-react';
13
+ import * as React from 'react';
14
+ import { cn } from './utils';
15
+ function NativeSelect(_a) {
16
+ var { className, size = 'default' } = _a, props = __rest(_a, ["className", "size"]);
17
+ return (React.createElement("div", { className: cn('jgis-native-select', className), "data-slot": "native-select-wrapper", "data-size": size },
18
+ React.createElement("select", Object.assign({ "data-slot": "native-select", "data-size": size }, props)),
19
+ React.createElement(ChevronDownIcon, { className: "jgis-native-select-icon", "aria-hidden": "true", "data-slot": "native-select-icon" })));
20
+ }
21
+ function NativeSelectOption(_a) {
22
+ var { className } = _a, props = __rest(_a, ["className"]);
23
+ return (React.createElement("option", Object.assign({ "data-slot": "native-select-option", className: cn(className) }, props)));
24
+ }
25
+ function NativeSelectOptGroup(_a) {
26
+ var { className } = _a, props = __rest(_a, ["className"]);
27
+ return (React.createElement("optgroup", Object.assign({ "data-slot": "native-select-optgroup", className: cn(className) }, props)));
28
+ }
29
+ export { NativeSelect, NativeSelectOptGroup, NativeSelectOption };
@@ -6,8 +6,8 @@ interface IPanelTabProps {
6
6
  children: any;
7
7
  }
8
8
  declare const Tabs: React.FC<React.ComponentProps<typeof TabsPrimitive.Root>>;
9
- declare const PanelTabs: React.FC<IPanelTabProps>;
10
- declare const TabsList: React.FC<React.ComponentProps<typeof TabsPrimitive.List>>;
9
+ declare const TabsRoot: React.FC<IPanelTabProps>;
10
+ declare const TabsList: React.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsListProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
11
  declare const TabsTrigger: React.FC<React.ComponentProps<typeof TabsPrimitive.Trigger>>;
12
12
  declare const TabsContent: React.FC<React.ComponentProps<typeof TabsPrimitive.Content>>;
13
- export { Tabs, TabsContent, TabsList, TabsTrigger, PanelTabs };
13
+ export { Tabs, TabsContent, TabsList, TabsTrigger, TabsRoot };
@@ -16,15 +16,15 @@ const Tabs = (_a) => {
16
16
  var { className } = _a, props = __rest(_a, ["className"]);
17
17
  return (React.createElement(TabsPrimitive.Root, Object.assign({ "data-slot": "tabs", className: cn('TabsList', className) }, props)));
18
18
  };
19
- const PanelTabs = ({ className, curTab, children, }) => {
19
+ const TabsRoot = ({ className, curTab, children, }) => {
20
20
  return (React.createElement(TabsPrimitive.Root, { "data-slot": "tabs", className: cn('TabsList', className), value: curTab, onValueChange: () => {
21
21
  return;
22
22
  }, children: children }));
23
23
  };
24
- const TabsList = (_a) => {
24
+ const TabsList = React.forwardRef((_a, ref) => {
25
25
  var { className } = _a, props = __rest(_a, ["className"]);
26
- return (React.createElement(TabsPrimitive.List, Object.assign({ "data-slot": "tabs-list", className: cn('jgis-tabs-list', className) }, props)));
27
- };
26
+ return (React.createElement(TabsPrimitive.List, Object.assign({ ref: ref, "data-slot": "tabs-list", className: cn('jgis-tabs-list', className) }, props)));
27
+ });
28
28
  const TabsTrigger = (_a) => {
29
29
  var { className } = _a, props = __rest(_a, ["className"]);
30
30
  return (React.createElement(TabsPrimitive.Trigger, Object.assign({ "data-slot": "tabs-trigger", className: cn('jgis-tabs-trigger', className) }, props)));
@@ -33,4 +33,4 @@ const TabsContent = (_a) => {
33
33
  var { className } = _a, props = __rest(_a, ["className"]);
34
34
  return (React.createElement(TabsPrimitive.Content, Object.assign({ "data-slot": "tabs-content", className: cn('jgis-tabs-content', className) }, props)));
35
35
  };
36
- export { Tabs, TabsContent, TabsList, TabsTrigger, PanelTabs };
36
+ export { Tabs, TabsContent, TabsList, TabsTrigger, TabsRoot };
@@ -9,10 +9,11 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
+ import { showErrorMessage } from '@jupyterlab/apputils';
12
13
  import { UUID } from '@lumino/coreutils';
13
14
  import { Signal } from '@lumino/signaling';
14
15
  import React, { useEffect, useMemo, useRef } from 'react';
15
- import { deepCopy } from "../tools";
16
+ import { deepCopy, getGeoPackageTableNames } from "../..";
16
17
  import { getLayerTypeForm, getSourceTypeForm } from './formselectors';
17
18
  /**
18
19
  * Form for creating a source, a layer or both at the same time
@@ -48,6 +49,7 @@ export function CreationForm(props) {
48
49
  const createSourceRef = useRef(createSource);
49
50
  const sourceTypeRef = useRef(sourceType);
50
51
  const layerTypeRef = useRef(layerType);
52
+ // const dialogOptionsRef = useRef(dialogOptions);
51
53
  modelRef.current = model;
52
54
  createLayerRef.current = createLayer;
53
55
  createSourceRef.current = createSource;
@@ -65,10 +67,76 @@ export function CreationForm(props) {
65
67
  const currentSourceType = sourceTypeRef.current;
66
68
  const currentLayerType = layerTypeRef.current;
67
69
  const currentSourceId = sourceIdRef.current;
70
+ let sourceData = (_a = sourceFormDataRef.current) !== null && _a !== void 0 ? _a : {};
71
+ if (currentCreateSource &&
72
+ currentSourceType === 'GeoJSONSource' &&
73
+ !sourceData.path &&
74
+ !sourceData.data) {
75
+ sourceData = Object.assign(Object.assign({}, sourceData), { data: {
76
+ type: 'FeatureCollection',
77
+ features: [],
78
+ } });
79
+ }
80
+ sourceFormDataRef.current = sourceData;
81
+ const layerData = (_b = layerFormDataRef.current) !== null && _b !== void 0 ? _b : {};
82
+ // GeoPackage handling
83
+ if (currentSourceType === 'GeoPackageVectorSource' ||
84
+ currentSourceType === 'GeoPackageRasterSource') {
85
+ (async () => {
86
+ if (!currentCreateSource) {
87
+ console.error('GeoPackage handling requires source creation');
88
+ return;
89
+ }
90
+ const { name: sourceName } = sourceData, sourceParams = __rest(sourceData, ["name"]);
91
+ const allTables = await getGeoPackageTableNames(sourceParams.path, currentSourceType);
92
+ let tableNames;
93
+ if (sourceParams.tables) {
94
+ const requested = sourceParams.tables
95
+ .split(',')
96
+ .map((s) => s.trim())
97
+ .filter(Boolean);
98
+ const invalid = requested.filter((t) => !allTables.includes(t));
99
+ if (invalid.length) {
100
+ showErrorMessage('Invalid GeoPackage Tables', `Invalid: ${invalid.join(', ')}. Available: ${allTables.join(', ')}`);
101
+ }
102
+ tableNames = requested.filter((t) => allTables.includes(t));
103
+ if (!tableNames.length) {
104
+ console.warn('No valid tables. Aborting.');
105
+ return;
106
+ }
107
+ }
108
+ else {
109
+ tableNames = allTables;
110
+ }
111
+ for (const tableName of tableNames) {
112
+ const childId = `${currentSourceId}/${tableName}`;
113
+ if (currentCreateSource) {
114
+ const sourceModel = {
115
+ type: currentSourceType,
116
+ name: `${sourceName !== null && sourceName !== void 0 ? sourceName : 'Source'} ${tableName} Source`,
117
+ parameters: Object.assign(Object.assign({}, sourceParams), { tables: tableName }),
118
+ };
119
+ currentModel.sharedModel.addSource(childId, sourceModel);
120
+ }
121
+ if (currentCreateLayer) {
122
+ const layerModel = {
123
+ type: currentLayerType ||
124
+ (currentSourceType === 'GeoPackageVectorSource'
125
+ ? 'VectorLayer'
126
+ : 'RasterLayer'),
127
+ parameters: { source: childId },
128
+ visible: true,
129
+ name: `${sourceName !== null && sourceName !== void 0 ? sourceName : 'Layer'} ${tableName} Layer`,
130
+ };
131
+ currentModel.addLayer(UUID.uuid4(), layerModel);
132
+ }
133
+ }
134
+ })();
135
+ return;
136
+ }
137
+ // Normal flow
68
138
  if (currentCreateSource) {
69
- const sourceData = (_a = sourceFormDataRef.current) !== null && _a !== void 0 ? _a : {};
70
139
  const { name } = sourceData, sourceParams = __rest(sourceData, ["name"]);
71
- const layerData = layerFormDataRef.current;
72
140
  const actualName = name ||
73
141
  (currentCreateLayer && (layerData === null || layerData === void 0 ? void 0 : layerData.name)
74
142
  ? `${layerData.name} Source`
@@ -81,7 +149,6 @@ export function CreationForm(props) {
81
149
  currentModel.sharedModel.addSource(currentSourceId, sourceModel);
82
150
  }
83
151
  if (currentCreateLayer) {
84
- const layerData = (_b = layerFormDataRef.current) !== null && _b !== void 0 ? _b : {};
85
152
  const { name } = layerData, layerParams = __rest(layerData, ["name"]);
86
153
  const actualName = name || `${(_c = layerData.name) !== null && _c !== void 0 ? _c : 'Layer'} Layer`;
87
154
  const layerModel = {
@@ -1,6 +1,6 @@
1
1
  import { Signal } from '@lumino/signaling';
2
2
  import * as React from 'react';
3
- import { deepCopy } from "../tools";
3
+ import { deepCopy } from "../../tools";
4
4
  import { getLayerTypeForm, getSourceTypeForm } from './formselectors';
5
5
  function syncObjectProperties(model, id, properties) {
6
6
  if (!id) {
@@ -1,6 +1,6 @@
1
1
  import { LayerType, SourceType } from '@jupytergis/schema';
2
2
  import * as React from 'react';
3
- import type { ILayerProps } from './objectform/layer/layerform';
4
- import type { ISourceFormProps } from './objectform/source/sourceform';
3
+ import type { ILayerProps } from "../../features/layers/forms/layer/layerform";
4
+ import type { ISourceFormProps } from "../../features/layers/forms/source/sourceform";
5
5
  export declare function getLayerTypeForm(layerType: LayerType): React.ComponentType<ILayerProps>;
6
6
  export declare function getSourceTypeForm(sourceType: SourceType): React.ComponentType<ISourceFormProps>;
@@ -1,5 +1,5 @@
1
- import { HeatmapLayerPropertiesForm, HillshadeLayerPropertiesForm, StorySegmentLayerPropertiesForm, LayerPropertiesForm, VectorLayerPropertiesForm, WebGlLayerPropertiesForm, } from './objectform/layer';
2
- import { GeoJSONSourcePropertiesForm, GeoTiffSourcePropertiesForm, PathBasedSourcePropertiesForm, TileSourcePropertiesForm, WmsTileSourceForm, SourcePropertiesForm, } from './objectform/source';
1
+ import { HillshadeLayerPropertiesForm, StorySegmentLayerPropertiesForm, LayerPropertiesForm, VectorLayerPropertiesForm, GeoTiffLayerPropertiesForm, } from "../../features/layers/forms/layer";
2
+ import { GeoJSONSourcePropertiesForm, GeoTiffSourcePropertiesForm, PathBasedSourcePropertiesForm, TileSourcePropertiesForm, WmsTileSourceForm, SourcePropertiesForm, GeoPackagePropertiesForm, } from "../../features/layers/forms/source";
3
3
  export function getLayerTypeForm(layerType) {
4
4
  let LayerForm = LayerPropertiesForm;
5
5
  switch (layerType) {
@@ -10,11 +10,8 @@ export function getLayerTypeForm(layerType) {
10
10
  case 'HillshadeLayer':
11
11
  LayerForm = HillshadeLayerPropertiesForm;
12
12
  break;
13
- case 'WebGlLayer':
14
- LayerForm = WebGlLayerPropertiesForm;
15
- break;
16
- case 'HeatmapLayer':
17
- LayerForm = HeatmapLayerPropertiesForm;
13
+ case 'GeoTiffLayer':
14
+ LayerForm = GeoTiffLayerPropertiesForm;
18
15
  break;
19
16
  case 'StorySegmentLayer':
20
17
  LayerForm = StorySegmentLayerPropertiesForm;
@@ -45,6 +42,12 @@ export function getSourceTypeForm(sourceType) {
45
42
  case 'VectorTileSource':
46
43
  SourceForm = TileSourcePropertiesForm;
47
44
  break;
45
+ case 'GeoPackageVectorSource':
46
+ SourceForm = GeoPackagePropertiesForm;
47
+ break;
48
+ case 'GeoPackageRasterSource':
49
+ SourceForm = GeoPackagePropertiesForm;
50
+ break;
48
51
  case 'GeoParquetSource':
49
52
  SourceForm = PathBasedSourcePropertiesForm;
50
53
  break;
@@ -0,0 +1,4 @@
1
+ export * from './objectform/SchemaForm';
2
+ export * from "../../features/layers/forms/source";
3
+ export * from "../../features/layers/forms/layer";
4
+ export * from './creationform';
@@ -0,0 +1,4 @@
1
+ export * from './objectform/SchemaForm';
2
+ export * from "../../features/layers/forms/source";
3
+ export * from "../../features/layers/forms/layer";
4
+ export * from './creationform';
@@ -1,7 +1,7 @@
1
1
  import type { Signal } from '@lumino/signaling';
2
2
  import { RegistryFieldsType, UiSchema } from '@rjsf/utils';
3
3
  import React from 'react';
4
- import { IDict, type IJupyterGISFormContext } from "../../types";
4
+ import { IDict, type IJupyterGISFormContext } from "../../../types";
5
5
  export interface ISchemaFormProps {
6
6
  /** JSON Schema for the form. */
7
7
  schema: IDict;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import type { IBaseFormProps } from "../../types";
2
+ import type { IBaseFormProps } from "../../../types";
3
3
  export declare function StoryEditorPropertiesForm(props: IBaseFormProps): React.ReactElement | null;
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo } from 'react';
2
- import { deepCopy } from "../../tools";
2
+ import { deepCopy } from "../../../tools";
3
3
  import { SchemaForm } from './SchemaForm';
4
4
  import { processBaseSchema, removeFormEntry } from './schemaUtils';
5
5
  import { useSchemaFormState } from './useSchemaFormState';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { extractLayerOverrideIndex } from "../../../tools";
2
+ import { extractLayerOverrideIndex } from "../../../../tools";
3
3
  /**
4
4
  * Simple select populated with layers (valid types only).
5
5
  * Used as the targetLayer field inside layerOverride array items.
@@ -1,10 +1,10 @@
1
1
  import { ChevronRightIcon } from 'lucide-react';
2
2
  import React from 'react';
3
- import { SymbologyWidget } from "../../../dialogs/symbology/symbologyDialog";
4
- import { Button } from "../../../shared/components/Button";
5
- import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../../../shared/components/Collapsible";
3
+ import { SymbologyWidget } from "../../../../features/layers/symbology/symbologyDialog";
4
+ import { Button } from "../../../components/Button";
5
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "../../../components/Collapsible";
6
6
  import { GlobalStateDbManager } from "../../../store";
7
- import { SYMBOLOGY_VALID_LAYER_TYPES, } from "../../../types";
7
+ import { SYMBOLOGY_VALID_LAYER_TYPES, } from "../../../../types";
8
8
  const SELECTION_SETTLE_MS = 100;
9
9
  function LayerOverrideItem({ item, formContext }) {
10
10
  var _a, _b;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { deepCopy, extractLayerOverrideIndex } from "../../../tools";
2
+ import { deepCopy, extractLayerOverrideIndex } from "../../../../tools";
3
3
  import { getSourceTypeForm } from '../../formselectors';
4
4
  /**
5
5
  * RJSF custom field for layerOverride[].sourceProperties: renders the
@@ -1,7 +1,7 @@
1
1
  import { LabIcon } from '@jupyterlab/ui-components';
2
2
  import React from 'react';
3
+ import { Button } from "../../../components/Button";
3
4
  import { targetWithCenterIcon } from "../../../icons";
4
- import { Button } from "../../../shared/components/Button";
5
5
  function StorySegmentReset({ model, layerId }) {
6
6
  const handleSetStorySegmentToCurrentView = () => {
7
7
  if (!model || !layerId) {
@@ -1,9 +1,9 @@
1
1
  import React, { useState } from 'react';
2
- import { WMS_AVAILABLE_LAYERS_CACHE } from "../source";
3
- import { Button } from "../../../shared/components/Button";
4
- import { Input } from "../../../shared/components/Input";
2
+ import { WMS_AVAILABLE_LAYERS_CACHE } from "../../../../features/layers/forms/source";
3
+ import { Button } from "../../../components/Button";
4
+ import { Input } from "../../../components/Input";
5
5
  import { GlobalStateDbManager } from "../../../store";
6
- import { fetchWithProxies } from "../../../tools";
6
+ import { fetchWithProxies } from "../../../../tools";
7
7
  export function WmsTileSourceUrlInput(props) {
8
8
  var _a;
9
9
  const { value, formContext, onChange, id, name, onBlur, onFocus, disabled, readonly, } = props;
@@ -2,7 +2,7 @@ import { Dialog } from '@jupyterlab/apputils';
2
2
  import { PathExt } from '@jupyterlab/coreutils';
3
3
  import { FileDialog } from '@jupyterlab/filebrowser';
4
4
  import React, { useState, useEffect, useRef } from 'react';
5
- import { LayerCreationFormDialog } from "../../dialogs/layerCreationFormDialog";
5
+ import { LayerCreationFormDialog } from "../../../features/layers/layerCreationFormDialog";
6
6
  export const FileSelectorWidget = props => {
7
7
  const { options } = props;
8
8
  const { docManager, formOptions } = options;
@@ -23,6 +23,7 @@ export const FileSelectorWidget = props => {
23
23
  }
24
24
  }, [props.value]);
25
25
  const handleBrowseServerFiles = async () => {
26
+ var _a, _b, _c;
26
27
  try {
27
28
  const dialogElement = document.querySelector('dialog[aria-modal="true"]');
28
29
  if (dialogElement) {
@@ -44,6 +45,12 @@ export const FileSelectorWidget = props => {
44
45
  setServerFilePath(relativePath);
45
46
  setUrlPath('');
46
47
  props.onChange(relativePath);
48
+ const fileName = (_b = (_a = relativePath
49
+ .split('/')
50
+ .pop()) === null || _a === void 0 ? void 0 : _a.replace(/\.[^.]+$/, '')) !== null && _b !== void 0 ? _b : '';
51
+ if (fileName && ((_c = formOptions.dialogOptions) === null || _c === void 0 ? void 0 : _c.layerData)) {
52
+ formOptions.dialogOptions.layerData.name = fileName;
53
+ }
47
54
  if (dialogElement) {
48
55
  if (formOptions.sourceType === 'GeoTiffSource') {
49
56
  formOptions.dialogOptions.sourceData = Object.assign(Object.assign({}, formOptions.sourceData), { urls: formOptions.dialogOptions.sourceData.urls.map((urlObject) => {
@@ -4,11 +4,13 @@
4
4
  * and apply read-only behaviour based on form context (create vs update).
5
5
  */
6
6
  import { RJSFSchema, UiSchema } from '@rjsf/utils';
7
- import { IDict } from "../../types";
7
+ import { IDict } from "../../../types";
8
8
  /**
9
9
  * Remove a property from form data, schema, and uiSchema.
10
10
  */
11
11
  export declare function removeFormEntry(entry: string, data: IDict | undefined, schema: RJSFSchema, uiSchema: UiSchema): void;
12
+ /** Remove a property nested under a parent object in data, schema, and uiSchema. */
13
+ export declare function removeNestedFormEntry(parentKey: string, entry: string, data: IDict | undefined, schema: RJSFSchema, uiSchema: UiSchema): void;
12
14
  /**
13
15
  * Apply base processSchema: array options, opacity field, readOnly handling.
14
16
  * Mutates schema, uiSchema, and optionally data (for readOnly removal in update).
@@ -13,6 +13,17 @@ export function removeFormEntry(entry, data, schema, uiSchema) {
13
13
  schema.required.splice(schema.required.indexOf(entry), 1);
14
14
  }
15
15
  }
16
+ /** Remove a property nested under a parent object in data, schema, and uiSchema. */
17
+ export function removeNestedFormEntry(parentKey, entry, data, schema, uiSchema) {
18
+ var _a, _b;
19
+ const parentData = data && typeof data[parentKey] === 'object'
20
+ ? data[parentKey]
21
+ : undefined;
22
+ const parentSchema = (_a = schema.properties) === null || _a === void 0 ? void 0 : _a[parentKey];
23
+ const parentUiSchema = (_b = uiSchema[parentKey]) !== null && _b !== void 0 ? _b : {};
24
+ removeFormEntry(entry, parentData, parentSchema, parentUiSchema);
25
+ uiSchema[parentKey] = parentUiSchema;
26
+ }
16
27
  /**
17
28
  * Apply base processSchema: array options, opacity field, readOnly handling.
18
29
  * Mutates schema, uiSchema, and optionally data (for readOnly removal in update).
@@ -7,7 +7,7 @@
7
7
  import { IJupyterGISModel } from '@jupytergis/schema';
8
8
  import { RJSFSchema } from '@rjsf/utils';
9
9
  import { type Dispatch, type SetStateAction } from 'react';
10
- import { IDict } from "../../types";
10
+ import { IDict } from "../../../types";
11
11
  export interface IUseSchemaFormStateProps {
12
12
  /** External data to sync into the form (e.g. layer/source parameters). */
13
13
  sourceData: IDict | undefined;
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useMemo, useState, } from 'react';
2
- import { deepCopy } from "../../tools";
2
+ import { deepCopy } from "../../../tools";
3
3
  /**
4
4
  * Manages form data state, schema copy, and form context for object forms.
5
5
  * Callers supply uiSchema, handleChange, handleSubmit, and any validation.
@@ -16,4 +16,6 @@ export declare const terminalToolbarIcon: LabIcon;
16
16
  export declare const geolocationIcon: LabIcon;
17
17
  export declare const targetWithoutCenterIcon: LabIcon;
18
18
  export declare const targetWithCenterIcon: LabIcon;
19
+ export declare const geoPackageIcon: LabIcon;
19
20
  export declare const markerIcon: LabIcon;
21
+ export declare const pencilSolidIcon: LabIcon;
@@ -4,24 +4,26 @@
4
4
  */
5
5
  // This file is based on iconimports.ts in @jupyterlab/ui-components, but is manually generated.
6
6
  import { LabIcon } from '@jupyterlab/ui-components';
7
- import bookOpenSvgStr from '../style/icons/book_open.svg';
8
- import clockSvgStr from '../style/icons/clock-solid.svg';
9
- import geoJsonSvgStr from '../style/icons/geojson.svg';
10
- import geolocationSvgStr from '../style/icons/geolocation.svg';
11
- import infoSvgStr from '../style/icons/info-solid.svg';
12
- import logoSvgStr from '../style/icons/logo.svg';
13
- import logoMiniSvgStr from '../style/icons/logo_mini.svg';
14
- import logoMiniAlternativeSvgStr from '../style/icons/logo_mini_alternative.svg';
15
- import logoMiniQGZ from '../style/icons/logo_mini_qgz.svg';
16
- import markerSvgStr from '../style/icons/marker.svg';
17
- import moundSvgStr from '../style/icons/mound.svg';
18
- import nonVisibilitySvgStr from '../style/icons/nonvisibility.svg';
19
- import rasterSvgStr from '../style/icons/raster.svg';
20
- import targetWithCenterSvgStr from '../style/icons/target_with_center.svg';
21
- import targetWithoutCenterSvgStr from '../style/icons/target_without_center.svg';
22
- import terminalToolbarSvgStr from '../style/icons/terminal_toolbar.svg';
23
- import vectorSquareSvgStr from '../style/icons/vector_square.svg';
24
- import visibilitySvgStr from '../style/icons/visibility.svg';
7
+ import bookOpenSvgStr from '../../style/icons/book_open.svg';
8
+ import clockSvgStr from '../../style/icons/clock-solid.svg';
9
+ import geoJsonSvgStr from '../../style/icons/geojson.svg';
10
+ import geolocationSvgStr from '../../style/icons/geolocation.svg';
11
+ import geoPackageSvgStr from '../../style/icons/geopackage.svg';
12
+ import infoSvgStr from '../../style/icons/info-solid.svg';
13
+ import logoSvgStr from '../../style/icons/logo.svg';
14
+ import logoMiniSvgStr from '../../style/icons/logo_mini.svg';
15
+ import logoMiniAlternativeSvgStr from '../../style/icons/logo_mini_alternative.svg';
16
+ import logoMiniQGZ from '../../style/icons/logo_mini_qgz.svg';
17
+ import markerSvgStr from '../../style/icons/marker.svg';
18
+ import moundSvgStr from '../../style/icons/mound.svg';
19
+ import nonVisibilitySvgStr from '../../style/icons/nonvisibility.svg';
20
+ import pencilSolidSvgStr from '../../style/icons/pencil_solid.svg';
21
+ import rasterSvgStr from '../../style/icons/raster.svg';
22
+ import targetWithCenterSvgStr from '../../style/icons/target_with_center.svg';
23
+ import targetWithoutCenterSvgStr from '../../style/icons/target_without_center.svg';
24
+ import terminalToolbarSvgStr from '../../style/icons/terminal_toolbar.svg';
25
+ import vectorSquareSvgStr from '../../style/icons/vector_square.svg';
26
+ import visibilitySvgStr from '../../style/icons/visibility.svg';
25
27
  export const logoIcon = new LabIcon({
26
28
  name: 'jupytergis::logo',
27
29
  svgstr: logoSvgStr,
@@ -90,7 +92,15 @@ export const targetWithCenterIcon = new LabIcon({
90
92
  name: 'jupytergis::targetWithoutCenter',
91
93
  svgstr: targetWithoutCenterSvgStr,
92
94
  });
95
+ export const geoPackageIcon = new LabIcon({
96
+ name: 'jupytergis::geoPackage',
97
+ svgstr: geoPackageSvgStr,
98
+ });
93
99
  export const markerIcon = new LabIcon({
94
100
  name: 'jupytergis::marker',
95
101
  svgstr: markerSvgStr,
96
102
  });
103
+ export const pencilSolidIcon = new LabIcon({
104
+ name: 'jupytergis::pencilSolid',
105
+ svgstr: pencilSolidSvgStr,
106
+ });
package/lib/tools.d.ts CHANGED
@@ -78,6 +78,7 @@ export declare const loadGeoTiff: (sourceInfo: {
78
78
  sourceUrl: string;
79
79
  metadata?: undefined;
80
80
  } | null>;
81
+ export declare function getGeoPackageTableNames(filepath: string, type: 'GeoPackageVectorSource' | 'GeoPackageRasterSource'): Promise<string[]>;
81
82
  /**
82
83
  * Generalized file reader for different source types.
83
84
  *
@@ -100,6 +101,7 @@ export declare const base64ToBlob: (base64: string, mimeType: string) => Promise
100
101
  /**
101
102
  * A mapping of file extensions to their corresponding MIME types.
102
103
  */
104
+ export declare const INTERNAL_PROXY_BASE = "/jupytergis_core/proxy";
103
105
  export declare const MIME_TYPES: {
104
106
  [ext: string]: string;
105
107
  };