@jupytergis/base 0.14.1 → 0.16.0-alpha.0

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 (397) hide show
  1. package/lib/commands/BaseCommandIDs.d.ts +6 -0
  2. package/lib/commands/BaseCommandIDs.js +6 -0
  3. package/lib/commands/index.js +245 -55
  4. package/lib/commands/operationCommands.js +2 -2
  5. package/lib/constants.js +6 -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/features/layers/forms/layer/geoTiffLayerForm.d.ts +3 -0
  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/heatmapLayerForm.js +4 -4
  40. package/lib/{formbuilder/objectform → features/layers/forms}/layer/hillshadeLayerForm.js +4 -4
  41. package/lib/{formbuilder/objectform → features/layers/forms}/layer/index.d.ts +1 -1
  42. package/lib/{formbuilder/objectform → features/layers/forms}/layer/index.js +1 -1
  43. package/lib/{formbuilder/objectform → features/layers/forms}/layer/layerform.d.ts +1 -1
  44. package/lib/{formbuilder/objectform → features/layers/forms}/layer/layerform.js +4 -4
  45. package/lib/features/layers/forms/layer/storySegmentLayerForm.js +150 -0
  46. package/lib/{formbuilder/objectform → features/layers/forms}/layer/vectorlayerform.js +4 -4
  47. package/lib/{formbuilder/objectform → features/layers/forms}/source/geojsonsource.js +5 -5
  48. package/lib/features/layers/forms/source/geopackagesource.d.ts +3 -0
  49. package/lib/features/layers/forms/source/geopackagesource.js +93 -0
  50. package/lib/{formbuilder/objectform → features/layers/forms}/source/geotiffsource.js +5 -5
  51. package/lib/{formbuilder/objectform → features/layers/forms}/source/index.d.ts +2 -0
  52. package/lib/{formbuilder/objectform → features/layers/forms}/source/index.js +2 -0
  53. package/lib/{formbuilder/objectform → features/layers/forms}/source/pathbasedsource.js +5 -5
  54. package/lib/{formbuilder/objectform → features/layers/forms}/source/sourceform.d.ts +1 -1
  55. package/lib/{formbuilder/objectform → features/layers/forms}/source/sourceform.js +4 -4
  56. package/lib/{formbuilder/objectform → features/layers/forms}/source/tilesourceform.js +4 -4
  57. package/lib/features/layers/forms/source/wmsTileSource.d.ts +4 -0
  58. package/lib/features/layers/forms/source/wmsTileSource.js +78 -0
  59. package/lib/{dialogs → features/layers}/layerCreationFormDialog.d.ts +1 -1
  60. package/lib/{dialogs → features/layers}/layerCreationFormDialog.js +1 -1
  61. package/lib/features/layers/symbology/Grammar.d.ts +11 -0
  62. package/lib/features/layers/symbology/Grammar.js +235 -0
  63. package/lib/{dialogs/symbology/vector_layer/types → features/layers/symbology}/Heatmap.d.ts +1 -1
  64. package/lib/{dialogs/symbology/vector_layer/types → features/layers/symbology}/Heatmap.js +30 -10
  65. package/lib/{dialogs → features/layers}/symbology/classificationModes.d.ts +6 -6
  66. package/lib/{dialogs → features/layers}/symbology/classificationModes.js +57 -57
  67. package/lib/features/layers/symbology/colorRampUtils.d.ts +65 -0
  68. package/lib/features/layers/symbology/colorRampUtils.js +242 -0
  69. package/lib/features/layers/symbology/components/MappingRow.d.ts +40 -0
  70. package/lib/features/layers/symbology/components/MappingRow.js +516 -0
  71. package/lib/features/layers/symbology/components/NumericInput.d.ts +20 -0
  72. package/lib/features/layers/symbology/components/NumericInput.js +44 -0
  73. package/lib/features/layers/symbology/components/ScaleEditor.d.ts +33 -0
  74. package/lib/features/layers/symbology/components/ScaleEditor.js +221 -0
  75. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampControls.d.ts +1 -1
  76. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampControls.js +3 -2
  77. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelector.d.ts +2 -1
  78. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelector.js +12 -15
  79. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelectorEntry.d.ts +2 -2
  80. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ColorRampSelectorEntry.js +3 -11
  81. package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ModeSelectRow.d.ts +1 -1
  82. package/lib/features/layers/symbology/components/color_ramp/RgbaColorPicker.d.ts +13 -0
  83. package/lib/features/layers/symbology/components/color_ramp/RgbaColorPicker.js +128 -0
  84. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopContainer.js +3 -1
  85. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopRow.d.ts +2 -2
  86. package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopRow.js +12 -7
  87. package/lib/features/layers/symbology/grammarToOLLayer.d.ts +27 -0
  88. package/lib/features/layers/symbology/grammarToOLLayer.js +145 -0
  89. package/lib/features/layers/symbology/grammarToOLStyle.d.ts +32 -0
  90. package/lib/features/layers/symbology/grammarToOLStyle.js +467 -0
  91. package/lib/{dialogs → features/layers}/symbology/hooks/useGetBandInfo.d.ts +1 -1
  92. package/lib/{dialogs → features/layers}/symbology/hooks/useGetBandInfo.js +1 -1
  93. package/lib/{dialogs → features/layers}/symbology/hooks/useGetProperties.js +1 -1
  94. package/lib/{dialogs → features/layers}/symbology/hooks/useGetSymbology.js +4 -2
  95. package/lib/features/layers/symbology/styleBuilder.d.ts +21 -0
  96. package/lib/features/layers/symbology/styleBuilder.js +145 -0
  97. package/lib/{dialogs → features/layers}/symbology/symbologyDialog.d.ts +3 -2
  98. package/lib/{dialogs → features/layers}/symbology/symbologyDialog.js +12 -12
  99. package/lib/features/layers/symbology/symbologyUtils.d.ts +41 -0
  100. package/lib/features/layers/symbology/symbologyUtils.js +114 -0
  101. package/lib/{panelview/objectproperties.d.ts → features/objectproperties/index.d.ts} +1 -1
  102. package/lib/{panelview/objectproperties.js → features/objectproperties/index.js} +5 -10
  103. package/lib/{dialogs → features/processing}/ProcessingFormDialog.d.ts +1 -1
  104. package/lib/{dialogs → features/processing}/ProcessingFormDialog.js +28 -14
  105. package/lib/features/processing/forms/MapExtentToggle.d.ts +13 -0
  106. package/lib/features/processing/forms/MapExtentToggle.js +20 -0
  107. package/lib/features/processing/forms/clipRasterByExtentForm.d.ts +10 -0
  108. package/lib/features/processing/forms/clipRasterByExtentForm.js +99 -0
  109. package/lib/{formbuilder/objectform/process → features/processing/forms}/dissolveProcessForm.js +5 -5
  110. package/lib/{formbuilder/objectform → features/processing/forms}/processingForm.d.ts +1 -1
  111. package/lib/{formbuilder/objectform → features/processing/forms}/processingForm.js +6 -6
  112. package/lib/features/processing/forms/rasterizeForm.d.ts +10 -0
  113. package/lib/features/processing/forms/rasterizeForm.js +75 -0
  114. package/lib/features/processing/forms/useMapExtent.d.ts +22 -0
  115. package/lib/features/processing/forms/useMapExtent.js +57 -0
  116. package/lib/{processing → features/processing}/index.d.ts +19 -2
  117. package/lib/features/processing/index.js +1246 -0
  118. package/lib/{processing → features/processing}/processingCommands.d.ts +1 -1
  119. package/lib/features/processing/processingCommands.js +168 -0
  120. package/lib/features/processing/serverProcessing.d.ts +51 -0
  121. package/lib/features/processing/serverProcessing.js +99 -0
  122. package/lib/{stacBrowser → features/stac-browser}/components/StacPanel.js +2 -2
  123. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableComboBox.js +64 -21
  124. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableRow.js +1 -1
  125. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacFilterExtensionPanel.js +2 -2
  126. package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacQueryableFilters.js +1 -1
  127. package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacFilterSection.js +3 -3
  128. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacPanelResults.js +3 -3
  129. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacSpatialExtent.js +1 -1
  130. package/lib/{stacBrowser → features/stac-browser}/components/shared/StacTemporalExtent.js +1 -1
  131. package/lib/{stacBrowser → features/stac-browser}/context/StacResultsContext.js +2 -2
  132. package/lib/{stacBrowser → features/stac-browser}/hooks/useGeodesSearch.js +2 -2
  133. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacFilterExtension.d.ts +1 -1
  134. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacFilterExtension.js +198 -114
  135. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacSearch.d.ts +1 -0
  136. package/lib/{stacBrowser → features/stac-browser}/hooks/useStacSearch.js +19 -11
  137. package/lib/features/stac-browser/types/types.js +1 -0
  138. package/lib/{panelview/story-maps → features/story}/SpectaPanel.d.ts +4 -1
  139. package/lib/{panelview/story-maps → features/story}/SpectaPanel.js +3 -4
  140. package/lib/{panelview/story-maps → features/story}/StoryEditorPanel.js +1 -1
  141. package/lib/{panelview/story-maps → features/story}/StoryViewerPanel.d.ts +12 -11
  142. package/lib/features/story/StoryViewerPanel.js +64 -0
  143. package/lib/features/story/__tests__/fixtures/listStoryTestItems.d.ts +9 -0
  144. package/lib/features/story/__tests__/fixtures/listStoryTestItems.js +21 -0
  145. package/lib/features/story/components/ListStoryMapOverlayPanel.d.ts +10 -0
  146. package/lib/features/story/components/ListStoryMapOverlayPanel.js +11 -0
  147. package/lib/features/story/components/ListStoryMarkdownMeasurePane.d.ts +11 -0
  148. package/lib/features/story/components/ListStoryMarkdownMeasurePane.js +55 -0
  149. package/lib/features/story/components/ListStoryOverlayMarkdown.d.ts +15 -0
  150. package/lib/features/story/components/ListStoryOverlayMarkdown.js +93 -0
  151. package/lib/features/story/components/ListStoryStageOverlay.d.ts +12 -0
  152. package/lib/features/story/components/ListStoryStageOverlay.js +132 -0
  153. package/lib/features/story/components/ListStoryVirtualScrollTrack.d.ts +6 -0
  154. package/lib/features/story/components/ListStoryVirtualScrollTrack.js +7 -0
  155. package/lib/{panelview/story-maps → features/story}/components/SpectaDesktopView.d.ts +4 -2
  156. package/lib/features/story/components/SpectaDesktopView.js +67 -0
  157. package/lib/{panelview/story-maps → features/story}/components/SpectaMobileView.d.ts +2 -4
  158. package/lib/{panelview/story-maps → features/story}/components/SpectaMobileView.js +3 -3
  159. package/lib/features/story/components/SpectaSingleModeContent.d.ts +18 -0
  160. package/lib/features/story/components/SpectaSingleModeContent.js +8 -0
  161. package/lib/features/story/context/ListStoryScrollTrackContext.d.ts +15 -0
  162. package/lib/features/story/context/ListStoryScrollTrackContext.js +142 -0
  163. package/lib/features/story/hooks/useCurrentSegmentIndex.d.ts +3 -0
  164. package/lib/features/story/hooks/useCurrentSegmentIndex.js +17 -0
  165. package/lib/features/story/hooks/useListStoryScroll.d.ts +15 -0
  166. package/lib/features/story/hooks/useListStoryScroll.js +107 -0
  167. package/lib/features/story/hooks/useQueuedMarkdownHeightMeasure.d.ts +19 -0
  168. package/lib/features/story/hooks/useQueuedMarkdownHeightMeasure.js +56 -0
  169. package/lib/features/story/hooks/useStoryImagePreload.d.ts +1 -0
  170. package/lib/features/story/hooks/useStoryImagePreload.js +24 -0
  171. package/lib/{panelview/story-maps → features/story}/hooks/useStoryMap.d.ts +2 -7
  172. package/lib/{panelview/story-maps → features/story}/hooks/useStoryMap.js +20 -44
  173. package/lib/features/story/hooks/useStoryScrollState.d.ts +21 -0
  174. package/lib/features/story/hooks/useStoryScrollState.js +39 -0
  175. package/lib/features/story/hooks/useStorySegmentSync.d.ts +8 -0
  176. package/lib/features/story/hooks/useStorySegmentSync.js +51 -0
  177. package/lib/features/story/types/types.d.ts +38 -0
  178. package/lib/features/story/types/types.js +1 -0
  179. package/lib/features/story/utils/computeListStoryScrollState.d.ts +12 -0
  180. package/lib/features/story/utils/computeListStoryScrollState.js +70 -0
  181. package/lib/features/story/utils/listStoryMeasureQueue.d.ts +11 -0
  182. package/lib/features/story/utils/listStoryMeasureQueue.js +14 -0
  183. package/lib/features/story/utils/listStoryScrollTrack.d.ts +17 -0
  184. package/lib/features/story/utils/listStoryScrollTrack.js +72 -0
  185. package/lib/features/story/utils/spectaPresentation.d.ts +9 -0
  186. package/lib/features/story/utils/spectaPresentation.js +37 -0
  187. package/lib/features/story/utils/storySegmentViewItems.d.ts +5 -0
  188. package/lib/features/story/utils/storySegmentViewItems.js +30 -0
  189. package/lib/index.d.ts +11 -9
  190. package/lib/index.js +11 -9
  191. package/lib/keybindings.json +5 -0
  192. package/lib/mainview/OpenEOTileLayer.d.ts +49 -0
  193. package/lib/mainview/OpenEOTileLayer.js +179 -0
  194. package/lib/mainview/TemporalSlider.js +11 -9
  195. package/lib/mainview/geoJsonFeaturePatch.d.ts +9 -0
  196. package/lib/mainview/geoJsonFeaturePatch.js +43 -0
  197. package/lib/mainview/mainView.d.ts +93 -8
  198. package/lib/mainview/mainView.js +1286 -529
  199. package/lib/mainview/mainviewwidget.d.ts +5 -1
  200. package/lib/mainview/mainviewwidget.js +4 -2
  201. package/lib/shared/components/Button.d.ts +1 -1
  202. package/lib/shared/components/DropdownMenu.d.ts +1 -0
  203. package/lib/shared/components/DropdownMenu.js +3 -2
  204. package/lib/shared/components/NativeSelect.d.ts +8 -0
  205. package/lib/shared/components/NativeSelect.js +29 -0
  206. package/lib/shared/components/Tabs.d.ts +3 -3
  207. package/lib/shared/components/Tabs.js +5 -5
  208. package/lib/{formbuilder → shared/formbuilder}/creationform.js +71 -4
  209. package/lib/{formbuilder → shared/formbuilder}/editform.js +1 -1
  210. package/lib/{formbuilder → shared/formbuilder}/formselectors.d.ts +2 -2
  211. package/lib/{formbuilder → shared/formbuilder}/formselectors.js +13 -4
  212. package/lib/shared/formbuilder/index.d.ts +4 -0
  213. package/lib/shared/formbuilder/index.js +4 -0
  214. package/lib/{formbuilder → shared/formbuilder}/objectform/SchemaForm.d.ts +1 -1
  215. package/lib/{formbuilder → shared/formbuilder}/objectform/StoryEditorForm.d.ts +1 -1
  216. package/lib/{formbuilder → shared/formbuilder}/objectform/StoryEditorForm.js +1 -1
  217. package/lib/{formbuilder → shared/formbuilder}/objectform/components/LayerSelect.js +1 -1
  218. package/lib/{formbuilder → shared/formbuilder}/objectform/components/SegmentFormSymbology.js +4 -4
  219. package/lib/{formbuilder → shared/formbuilder}/objectform/components/SourcePropertiesField.js +1 -1
  220. package/lib/{formbuilder → shared/formbuilder}/objectform/components/StorySegmentReset.js +1 -1
  221. package/lib/shared/formbuilder/objectform/components/WmsTileSourceUrlInput.d.ts +3 -0
  222. package/lib/shared/formbuilder/objectform/components/WmsTileSourceUrlInput.js +84 -0
  223. package/lib/{formbuilder → shared/formbuilder}/objectform/fileselectorwidget.js +8 -1
  224. package/lib/{formbuilder → shared/formbuilder}/objectform/schemaUtils.d.ts +3 -1
  225. package/lib/{formbuilder → shared/formbuilder}/objectform/schemaUtils.js +11 -0
  226. package/lib/{formbuilder → shared/formbuilder}/objectform/useSchemaFormState.d.ts +2 -2
  227. package/lib/{formbuilder → shared/formbuilder}/objectform/useSchemaFormState.js +1 -1
  228. package/lib/{icons.d.ts → shared/icons.d.ts} +2 -0
  229. package/lib/{icons.js → shared/icons.js} +28 -18
  230. package/lib/tools.d.ts +3 -1
  231. package/lib/tools.js +140 -6
  232. package/lib/types.d.ts +12 -1
  233. package/lib/types.js +6 -1
  234. package/lib/{menus.js → workspace/menus.js} +14 -2
  235. package/lib/workspace/panels/components/TabbedPanel.d.ts +17 -0
  236. package/lib/workspace/panels/components/TabbedPanel.js +19 -0
  237. package/lib/{panelview → workspace/panels}/components/layers.js +82 -20
  238. package/lib/workspace/panels/components/legendItem.js +680 -0
  239. package/lib/workspace/panels/hooks/useLayerTree.d.ts +19 -0
  240. package/lib/workspace/panels/hooks/useLayerTree.js +103 -0
  241. package/lib/workspace/panels/hooks/useRightPanelOptions.d.ts +27 -0
  242. package/lib/workspace/panels/hooks/useRightPanelOptions.js +72 -0
  243. package/lib/workspace/panels/hooks/useUIState.d.ts +2 -0
  244. package/lib/workspace/panels/hooks/useUIState.js +25 -0
  245. package/lib/{panelview → workspace/panels}/index.d.ts +1 -1
  246. package/lib/{panelview → workspace/panels}/index.js +1 -1
  247. package/lib/{panelview → workspace/panels}/leftpanel.d.ts +1 -1
  248. package/lib/workspace/panels/leftpanel.js +70 -0
  249. package/lib/{panelview/rightpanel.d.ts → workspace/panels/mergedpanel.d.ts} +6 -5
  250. package/lib/workspace/panels/mergedpanel.js +166 -0
  251. package/lib/workspace/panels/rightpanel.d.ts +25 -0
  252. package/lib/{panelview → workspace/panels}/rightpanel.js +53 -63
  253. package/lib/{statusbar → workspace/statusbar}/StatusBar.js +5 -4
  254. package/lib/{toolbar → workspace/toolbar}/widget.d.ts +2 -0
  255. package/lib/{toolbar → workspace/toolbar}/widget.js +33 -5
  256. package/lib/{widget.d.ts → workspace/widget.d.ts} +7 -5
  257. package/lib/{widget.js → workspace/widget.js} +16 -7
  258. package/package.json +19 -4
  259. package/style/base.css +109 -1
  260. package/style/icons/geopackage.svg +95 -0
  261. package/style/icons/pencil_solid.svg +7 -0
  262. package/style/identify.css +95 -0
  263. package/style/layerBrowser.css +28 -0
  264. package/style/leftPanel.css +25 -0
  265. package/style/shared/button.css +12 -0
  266. package/style/shared/dropdownMenu.css +9 -0
  267. package/style/shared/nativeSelect.css +75 -0
  268. package/style/shared/tabs.css +3 -3
  269. package/style/spectaProgressBar.css +0 -1
  270. package/style/storyPanel.css +142 -9
  271. package/style/storySpectaArticleOverlay.css +129 -0
  272. package/style/symbologyDialog.css +330 -28
  273. package/lib/dialogs/symbology/colorRampUtils.d.ts +0 -20
  274. package/lib/dialogs/symbology/colorRampUtils.js +0 -132
  275. package/lib/dialogs/symbology/symbologyUtils.d.ts +0 -33
  276. package/lib/dialogs/symbology/symbologyUtils.js +0 -180
  277. package/lib/dialogs/symbology/tiff_layer/TiffRendering.d.ts +0 -4
  278. package/lib/dialogs/symbology/tiff_layer/TiffRendering.js +0 -42
  279. package/lib/dialogs/symbology/tiff_layer/components/BandRow.d.ts +0 -23
  280. package/lib/dialogs/symbology/tiff_layer/components/BandRow.js +0 -59
  281. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.d.ts +0 -4
  282. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.js +0 -92
  283. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.d.ts +0 -5
  284. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.js +0 -301
  285. package/lib/dialogs/symbology/vector_layer/VectorRendering.d.ts +0 -4
  286. package/lib/dialogs/symbology/vector_layer/VectorRendering.js +0 -112
  287. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.d.ts +0 -8
  288. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.js +0 -9
  289. package/lib/dialogs/symbology/vector_layer/types/Canonical.d.ts +0 -4
  290. package/lib/dialogs/symbology/vector_layer/types/Canonical.js +0 -65
  291. package/lib/dialogs/symbology/vector_layer/types/Categorized.d.ts +0 -4
  292. package/lib/dialogs/symbology/vector_layer/types/Categorized.js +0 -196
  293. package/lib/dialogs/symbology/vector_layer/types/Graduated.d.ts +0 -4
  294. package/lib/dialogs/symbology/vector_layer/types/Graduated.js +0 -250
  295. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.d.ts +0 -4
  296. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.js +0 -105
  297. package/lib/formbuilder/index.d.ts +0 -4
  298. package/lib/formbuilder/index.js +0 -4
  299. package/lib/formbuilder/objectform/layer/storySegmentLayerForm.js +0 -95
  300. package/lib/formbuilder/objectform/layer/webGlLayerForm.d.ts +0 -3
  301. package/lib/formbuilder/objectform/process/index.d.ts +0 -1
  302. package/lib/formbuilder/objectform/process/index.js +0 -1
  303. package/lib/panelview/components/legendItem.js +0 -200
  304. package/lib/panelview/identify-panel/IdentifyPanel.js +0 -102
  305. package/lib/panelview/leftpanel.js +0 -139
  306. package/lib/panelview/story-maps/StoryViewerPanel.js +0 -116
  307. package/lib/panelview/story-maps/components/SpectaDesktopView.js +0 -49
  308. package/lib/processing/index.js +0 -200
  309. package/lib/processing/processingCommands.js +0 -67
  310. /package/lib/{panelview/annotationPanel.d.ts → features/annotations/AnnotationsPanel.d.ts} +0 -0
  311. /package/lib/{annotations → features/annotations}/components/Annotation.d.ts +0 -0
  312. /package/lib/{annotations → features/annotations}/components/Annotation.js +0 -0
  313. /package/lib/{annotations → features/annotations}/components/AnnotationFloater.d.ts +0 -0
  314. /package/lib/{annotations → features/annotations}/components/AnnotationFloater.js +0 -0
  315. /package/lib/{annotations → features/annotations}/components/Message.d.ts +0 -0
  316. /package/lib/{annotations → features/annotations}/components/Message.js +0 -0
  317. /package/lib/{annotations → features/annotations}/model.d.ts +0 -0
  318. /package/lib/{annotations → features/annotations}/model.js +0 -0
  319. /package/lib/{console → features/console}/consoleview.d.ts +0 -0
  320. /package/lib/{console → features/console}/index.d.ts +0 -0
  321. /package/lib/{console → features/console}/index.js +0 -0
  322. /package/lib/{panelview/filter-panel → features/filter}/Filter.d.ts +0 -0
  323. /package/lib/{stacBrowser/types/types.js → features/identify/types/editorTypes.js} +0 -0
  324. /package/lib/{dialogs/layerBrowserDialog.d.ts → features/layer-browser/index.d.ts} +0 -0
  325. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/heatmapLayerForm.d.ts +0 -0
  326. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/hillshadeLayerForm.d.ts +0 -0
  327. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/storySegmentLayerForm.d.ts +0 -0
  328. /package/lib/{formbuilder/objectform → features/layers/forms}/layer/vectorlayerform.d.ts +0 -0
  329. /package/lib/{formbuilder/objectform → features/layers/forms}/source/geojsonsource.d.ts +0 -0
  330. /package/lib/{formbuilder/objectform → features/layers/forms}/source/geotiffsource.d.ts +0 -0
  331. /package/lib/{formbuilder/objectform → features/layers/forms}/source/pathbasedsource.d.ts +0 -0
  332. /package/lib/{formbuilder/objectform → features/layers/forms}/source/tilesourceform.d.ts +0 -0
  333. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/ModeSelectRow.js +0 -0
  334. /package/lib/{dialogs → features/layers}/symbology/components/color_ramp/cmocean.json +0 -0
  335. /package/lib/{dialogs → features/layers}/symbology/components/color_stops/StopContainer.d.ts +0 -0
  336. /package/lib/{dialogs → features/layers}/symbology/hooks/useEffectiveSymbologyParams.d.ts +0 -0
  337. /package/lib/{dialogs → features/layers}/symbology/hooks/useEffectiveSymbologyParams.js +0 -0
  338. /package/lib/{dialogs → features/layers}/symbology/hooks/useGetProperties.d.ts +0 -0
  339. /package/lib/{dialogs → features/layers}/symbology/hooks/useGetSymbology.d.ts +0 -0
  340. /package/lib/{dialogs → features/layers}/symbology/hooks/useOkSignal.d.ts +0 -0
  341. /package/lib/{dialogs → features/layers}/symbology/hooks/useOkSignal.js +0 -0
  342. /package/lib/{formbuilder/objectform/process → features/processing/forms}/dissolveProcessForm.d.ts +0 -0
  343. /package/lib/{processing → features/processing}/processingFormToParam.d.ts +0 -0
  344. /package/lib/{processing → features/processing}/processingFormToParam.js +0 -0
  345. /package/lib/{stacBrowser → features/stac-browser}/components/StacPanel.d.ts +0 -0
  346. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableComboBox.d.ts +0 -0
  347. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/QueryableRow.d.ts +0 -0
  348. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacFilterExtensionPanel.d.ts +0 -0
  349. /package/lib/{stacBrowser → features/stac-browser}/components/filter-extension/StacQueryableFilters.d.ts +0 -0
  350. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacFilterSection.d.ts +0 -0
  351. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacGeodesFilterPanel.d.ts +0 -0
  352. /package/lib/{stacBrowser → features/stac-browser}/components/geodes/StacGeodesFilterPanel.js +0 -0
  353. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacPanelResults.d.ts +0 -0
  354. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacSpatialExtent.d.ts +0 -0
  355. /package/lib/{stacBrowser → features/stac-browser}/components/shared/StacTemporalExtent.d.ts +0 -0
  356. /package/lib/{stacBrowser → features/stac-browser}/constants.d.ts +0 -0
  357. /package/lib/{stacBrowser → features/stac-browser}/constants.js +0 -0
  358. /package/lib/{stacBrowser → features/stac-browser}/context/StacResultsContext.d.ts +0 -0
  359. /package/lib/{stacBrowser → features/stac-browser}/hooks/useGeodesSearch.d.ts +0 -0
  360. /package/lib/{stacBrowser → features/stac-browser}/index.d.ts +0 -0
  361. /package/lib/{stacBrowser → features/stac-browser}/index.js +0 -0
  362. /package/lib/{stacBrowser → features/stac-browser}/types/types.d.ts +0 -0
  363. /package/lib/{panelview/story-maps → features/story}/StoryEditorPanel.d.ts +0 -0
  364. /package/lib/{panelview/story-maps → features/story}/components/PreviewModeSwitch.d.ts +0 -0
  365. /package/lib/{panelview/story-maps → features/story}/components/PreviewModeSwitch.js +0 -0
  366. /package/lib/{panelview/story-maps → features/story}/components/StoryContentSection.d.ts +0 -0
  367. /package/lib/{panelview/story-maps → features/story}/components/StoryContentSection.js +0 -0
  368. /package/lib/{panelview/story-maps → features/story}/components/StoryImageSection.d.ts +0 -0
  369. /package/lib/{panelview/story-maps → features/story}/components/StoryImageSection.js +0 -0
  370. /package/lib/{panelview/story-maps → features/story}/components/StoryNavBar.d.ts +0 -0
  371. /package/lib/{panelview/story-maps → features/story}/components/StoryNavBar.js +0 -0
  372. /package/lib/{panelview/story-maps → features/story}/components/StorySubtitleSection.d.ts +0 -0
  373. /package/lib/{panelview/story-maps → features/story}/components/StorySubtitleSection.js +0 -0
  374. /package/lib/{panelview/story-maps → features/story}/components/StoryTitleSection.d.ts +0 -0
  375. /package/lib/{panelview/story-maps → features/story}/components/StoryTitleSection.js +0 -0
  376. /package/lib/{formbuilder → shared/formbuilder}/creationform.d.ts +0 -0
  377. /package/lib/{formbuilder → shared/formbuilder}/editform.d.ts +0 -0
  378. /package/lib/{formbuilder → shared/formbuilder}/objectform/SchemaForm.js +0 -0
  379. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/LayerSelect.d.ts +0 -0
  380. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/OpacitySlider.d.ts +0 -0
  381. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/OpacitySlider.js +0 -0
  382. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/SegmentFormSymbology.d.ts +0 -0
  383. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/SourcePropertiesField.d.ts +0 -0
  384. /package/lib/{formbuilder → shared/formbuilder}/objectform/components/StorySegmentReset.d.ts +0 -0
  385. /package/lib/{formbuilder → shared/formbuilder}/objectform/fileselectorwidget.d.ts +0 -0
  386. /package/lib/{store.d.ts → shared/store.d.ts} +0 -0
  387. /package/lib/{store.js → shared/store.js} +0 -0
  388. /package/lib/{menus.d.ts → workspace/menus.d.ts} +0 -0
  389. /package/lib/{panelview → workspace/panels}/components/layers.d.ts +0 -0
  390. /package/lib/{panelview → workspace/panels}/components/legendItem.d.ts +0 -0
  391. /package/lib/{panelview → workspace/panels}/header.d.ts +0 -0
  392. /package/lib/{panelview → workspace/panels}/header.js +0 -0
  393. /package/lib/{statusbar → workspace/statusbar}/SpectaPresentationProgressBar.d.ts +0 -0
  394. /package/lib/{statusbar → workspace/statusbar}/SpectaPresentationProgressBar.js +0 -0
  395. /package/lib/{statusbar → workspace/statusbar}/StatusBar.d.ts +0 -0
  396. /package/lib/{toolbar → workspace/toolbar}/index.d.ts +0 -0
  397. /package/lib/{toolbar → workspace/toolbar}/index.js +0 -0
@@ -8,6 +8,7 @@ export declare const addMarker = "jupytergis:addMarker";
8
8
  export declare const getGeolocation = "jupytergis:getGeolocation";
9
9
  export declare const openLayerBrowser = "jupytergis:openLayerBrowser";
10
10
  export declare const openNewRasterDialog = "jupytergis:openNewRasterDialog";
11
+ export declare const openNewWmsDialog = "jupytergis:openNewWmsDialog";
11
12
  export declare const openNewVectorTileDialog = "jupytergis:openNewVectorTileDialog";
12
13
  export declare const openNewShapefileDialog = "jupytergis:openNewShapefileDialog";
13
14
  export declare const openNewGeoJSONDialog = "jupytergis:openNewGeoJSONDialog";
@@ -16,6 +17,9 @@ export declare const openNewImageDialog = "jupytergis:openNewImageDialog";
16
17
  export declare const openNewVideoDialog = "jupytergis:openNewVideoDialog";
17
18
  export declare const openNewGeoTiffDialog = "jupytergis:openNewGeoTiffDialog";
18
19
  export declare const openNewGeoParquetDialog = "jupytergis:openNewGeoParquetDialog";
20
+ export declare const newGeoPackageRasterEntry = "jupytergis:newGeoPackageRasterEntry";
21
+ export declare const newGeoPackageVectorEntry = "jupytergis:newGeoPackageVectorEntry";
22
+ export declare const toggleDrawFeatures = "jupytergis:toggleDrawFeatures";
19
23
  export declare const renameSelected = "jupytergis:renameSelected";
20
24
  export declare const removeSelected = "jupytergis:removeSelected";
21
25
  export declare const duplicateSelected = "jupytergis:duplicateSelected";
@@ -31,6 +35,7 @@ export declare const zoomToLayer = "jupytergis:zoomToLayer";
31
35
  export declare const downloadGeoJSON = "jupytergis:downloadGeoJSON";
32
36
  export declare const toggleLeftPanel = "jupytergis:toggleLeftPanel";
33
37
  export declare const toggleRightPanel = "jupytergis:toggleRightPanel";
38
+ export declare const togglePanel = "jupytergis:togglePanel";
34
39
  export declare const showLayersTab = "jupytergis:showLayersTab";
35
40
  export declare const showStacBrowserTab = "jupytergis:showStacBrowserTab";
36
41
  export declare const showObjectPropertiesTab = "jupytergis:showObjectPropertiesTab";
@@ -38,5 +43,6 @@ export declare const showAnnotationsTab = "jupytergis:showAnnotationsTab";
38
43
  export declare const showIdentifyPanelTab = "jupytergis:showIdentifyPanelTab";
39
44
  export declare const addStorySegment = "jupytergis:addStorySegment";
40
45
  export declare const toggleStoryPresentationMode = "jupytergis:toggleStoryPresentationMode";
46
+ export declare const createStorySegmentFromLayer = "jupytergis:createStorySegmentFromLayer";
41
47
  export declare const storyPrev = "jupytergis:storyPrev";
42
48
  export declare const storyNext = "jupytergis:storyNext";
@@ -16,6 +16,7 @@ export const getGeolocation = 'jupytergis:getGeolocation';
16
16
  export const openLayerBrowser = 'jupytergis:openLayerBrowser';
17
17
  // Layer and source
18
18
  export const openNewRasterDialog = 'jupytergis:openNewRasterDialog';
19
+ export const openNewWmsDialog = 'jupytergis:openNewWmsDialog';
19
20
  export const openNewVectorTileDialog = 'jupytergis:openNewVectorTileDialog';
20
21
  export const openNewShapefileDialog = 'jupytergis:openNewShapefileDialog';
21
22
  export const openNewGeoJSONDialog = 'jupytergis:openNewGeoJSONDialog';
@@ -24,6 +25,9 @@ export const openNewImageDialog = 'jupytergis:openNewImageDialog';
24
25
  export const openNewVideoDialog = 'jupytergis:openNewVideoDialog';
25
26
  export const openNewGeoTiffDialog = 'jupytergis:openNewGeoTiffDialog';
26
27
  export const openNewGeoParquetDialog = 'jupytergis:openNewGeoParquetDialog';
28
+ export const newGeoPackageRasterEntry = 'jupytergis:newGeoPackageRasterEntry';
29
+ export const newGeoPackageVectorEntry = 'jupytergis:newGeoPackageVectorEntry';
30
+ export const toggleDrawFeatures = 'jupytergis:toggleDrawFeatures';
27
31
  // Layer and group actions
28
32
  export const renameSelected = 'jupytergis:renameSelected';
29
33
  export const removeSelected = 'jupytergis:removeSelected';
@@ -43,6 +47,7 @@ export const downloadGeoJSON = 'jupytergis:downloadGeoJSON';
43
47
  // Panel toggles
44
48
  export const toggleLeftPanel = 'jupytergis:toggleLeftPanel';
45
49
  export const toggleRightPanel = 'jupytergis:toggleRightPanel';
50
+ export const togglePanel = 'jupytergis:togglePanel';
46
51
  // Left panel tabs
47
52
  export const showLayersTab = 'jupytergis:showLayersTab';
48
53
  export const showStacBrowserTab = 'jupytergis:showStacBrowserTab';
@@ -53,5 +58,6 @@ export const showIdentifyPanelTab = 'jupytergis:showIdentifyPanelTab';
53
58
  // Story maps
54
59
  export const addStorySegment = 'jupytergis:addStorySegment';
55
60
  export const toggleStoryPresentationMode = 'jupytergis:toggleStoryPresentationMode';
61
+ export const createStorySegmentFromLayer = 'jupytergis:createStorySegmentFromLayer';
56
62
  export const storyPrev = 'jupytergis:storyPrev';
57
63
  export const storyNext = 'jupytergis:storyNext';
@@ -1,18 +1,18 @@
1
1
  import { UUID } from '@lumino/coreutils';
2
2
  import { fromLonLat } from 'ol/proj';
3
+ import { targetWithCenterIcon } from "../shared/icons";
4
+ import { addLayerCreationCommands } from './operationCommands';
3
5
  import { CommandIDs, icons } from '../constants';
4
- import { ProcessingFormDialog } from '../dialogs/ProcessingFormDialog';
5
- import { LayerBrowserWidget } from '../dialogs/layerBrowserDialog';
6
- import { LayerCreationFormDialog } from '../dialogs/layerCreationFormDialog';
7
- import { SymbologyWidget } from '../dialogs/symbology/symbologyDialog';
8
- import { targetWithCenterIcon } from '../icons';
6
+ import { LayerBrowserWidget } from '../features/layer-browser';
7
+ import { LayerCreationFormDialog } from '../features/layers/layerCreationFormDialog';
8
+ import { SymbologyWidget } from '../features/layers/symbology/symbologyDialog';
9
+ import { ProcessingFormDialog } from '../features/processing/ProcessingFormDialog';
10
+ import { getSingleSelectedLayer } from '../features/processing/index';
11
+ import { addProcessingCommands } from '../features/processing/processingCommands';
9
12
  import keybindings from '../keybindings.json';
10
- import { getSingleSelectedLayer } from '../processing/index';
11
- import { addProcessingCommands } from '../processing/processingCommands';
12
13
  import { getGeoJSONDataFromLayerSource, downloadFile } from '../tools';
13
- import { SYMBOLOGY_VALID_LAYER_TYPES } from '../types';
14
- import { JupyterGISDocumentWidget } from '../widget';
15
- import { addLayerCreationCommands } from './operationCommands';
14
+ import { STORY_TYPE, SYMBOLOGY_VALID_LAYER_TYPES, } from '../types';
15
+ import { JupyterGISDocumentWidget } from '../workspace/widget';
16
16
  const POINT_SELECTION_TOOL_CLASS = 'jGIS-point-selection-tool';
17
17
  function loadKeybindings(commands, keybindings) {
18
18
  keybindings.forEach(binding => {
@@ -156,7 +156,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
156
156
  const canIdentify = [
157
157
  'VectorLayer',
158
158
  'ShapefileLayer',
159
- 'WebGlLayer',
159
+ 'GeoTiffLayer',
160
160
  'VectorTileLayer',
161
161
  ].includes(selectedLayer.type);
162
162
  if (current.model.currentMode === 'identifying' && !canIdentify) {
@@ -177,7 +177,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
177
177
  return [
178
178
  'VectorLayer',
179
179
  'ShapefileLayer',
180
- 'WebGlLayer',
180
+ 'GeoTiffLayer',
181
181
  'VectorTileLayer',
182
182
  ].includes(selectedLayer.type);
183
183
  }, execute: args => {
@@ -231,15 +231,9 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
231
231
  return false;
232
232
  }
233
233
  // Selection should only be one vector or heatmap layer
234
- const isSelectionValid = Object.keys(selectedLayers).length === 1 &&
234
+ return (Object.keys(selectedLayers).length === 1 &&
235
235
  !model.getSource(layerId) &&
236
- ['VectorLayer', 'HeatmapLayer'].includes(layerType);
237
- if (!isSelectionValid && model.isTemporalControllerActive) {
238
- model.toggleTemporalController();
239
- commands.notifyCommandChanged(CommandIDs.temporalController);
240
- return false;
241
- }
242
- return true;
236
+ ['VectorLayer', 'HeatmapLayer'].includes(layerType));
243
237
  }, execute: (args) => {
244
238
  const filePath = args === null || args === void 0 ? void 0 : args.filePath;
245
239
  const current = filePath
@@ -267,7 +261,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
267
261
  /**
268
262
  * Source and layers
269
263
  */
270
- commands.addCommand(CommandIDs.openNewRasterDialog, Object.assign({ label: trans.__('Open New Raster Tile Layer Creation Dialog'), caption: 'Open a dialog to create a new raster tile layer and source in the current JupyterGIS document.', describedBy: {
264
+ commands.addCommand(CommandIDs.openNewRasterDialog, Object.assign({ label: trans.__('Raster Tile'), caption: 'Open a dialog to create a new raster tile layer and source in the current JupyterGIS document.', describedBy: {
271
265
  args: {
272
266
  type: 'object',
273
267
  properties: {},
@@ -286,7 +280,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
286
280
  sourceType: 'RasterSource',
287
281
  layerType: 'RasterLayer',
288
282
  }) }, icons.get(CommandIDs.openNewRasterDialog)));
289
- commands.addCommand(CommandIDs.openNewVectorTileDialog, Object.assign({ label: trans.__('Open New Vector Tile Layer Creation Dialog'), caption: 'Open a dialog to create a new vector tile layer and source in the current JupyterGIS document.', describedBy: {
283
+ commands.addCommand(CommandIDs.openNewVectorTileDialog, Object.assign({ label: trans.__('Vector Tile'), caption: 'Open a dialog to create a new vector tile layer and source in the current JupyterGIS document.', describedBy: {
290
284
  args: {
291
285
  type: 'object',
292
286
  properties: {},
@@ -305,7 +299,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
305
299
  sourceType: 'VectorTileSource',
306
300
  layerType: 'VectorTileLayer',
307
301
  }) }, icons.get(CommandIDs.openNewVectorTileDialog)));
308
- commands.addCommand(CommandIDs.openNewGeoParquetDialog, Object.assign({ label: trans.__('Open New GeoParquet Layer Creation Dialog'), caption: 'Open a dialog to create a new GeoParquet layer and source in the current JupyterGIS document.', describedBy: {
302
+ commands.addCommand(CommandIDs.openNewGeoParquetDialog, Object.assign({ label: trans.__('GeoParquet'), caption: 'Open a dialog to create a new GeoParquet layer and source in the current JupyterGIS document.', describedBy: {
309
303
  args: {
310
304
  type: 'object',
311
305
  properties: {},
@@ -325,7 +319,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
325
319
  sourceType: 'GeoParquetSource',
326
320
  layerType: 'VectorLayer',
327
321
  }) }, icons.get(CommandIDs.openNewGeoParquetDialog)));
328
- commands.addCommand(CommandIDs.openNewGeoJSONDialog, Object.assign({ label: trans.__('Open New GeoJSON Layer Creation Dialog'), caption: 'Open a dialog to create a new GeoJSON layer and source in the current JupyterGIS document.', describedBy: {
322
+ commands.addCommand(CommandIDs.openNewGeoJSONDialog, Object.assign({ label: trans.__('GeoJSON'), caption: 'Open a dialog to create a new GeoJSON layer and source in the current JupyterGIS document.', describedBy: {
329
323
  args: {
330
324
  type: 'object',
331
325
  properties: {},
@@ -344,9 +338,28 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
344
338
  sourceType: 'GeoJSONSource',
345
339
  layerType: 'VectorLayer',
346
340
  }) }, icons.get(CommandIDs.openNewGeoJSONDialog)));
341
+ commands.addCommand(CommandIDs.openNewWmsDialog, Object.assign({ label: trans.__('WMS Layer'), caption: 'Open a dialog to create a new WMS layer and source in the current JupyterGIS document.', describedBy: {
342
+ args: {
343
+ type: 'object',
344
+ properties: {},
345
+ },
346
+ }, isEnabled: () => {
347
+ return tracker.currentWidget
348
+ ? tracker.currentWidget.model.sharedModel.editable
349
+ : false;
350
+ }, execute: Private.createEntry({
351
+ tracker,
352
+ formSchemaRegistry,
353
+ title: 'Create WMS Layer',
354
+ createLayer: true,
355
+ createSource: true,
356
+ layerData: { name: 'Custom WMS Layer' },
357
+ sourceType: 'WmsTileSource',
358
+ layerType: 'GeoTiffLayer',
359
+ }) }, icons.get(CommandIDs.openNewWmsDialog)));
347
360
  //Add processing commands
348
361
  addProcessingCommands(app, commands, tracker, trans, formSchemaRegistry, Object.fromEntries(formSchemaRegistry.getSchemas()));
349
- commands.addCommand(CommandIDs.openNewHillshadeDialog, Object.assign({ label: trans.__('Open New Hillshade Layer Creation Dialog'), caption: 'Open a dialog to create a new hillshade layer and source in the current JupyterGIS document.', describedBy: {
362
+ commands.addCommand(CommandIDs.openNewHillshadeDialog, Object.assign({ label: trans.__('Hillshade'), caption: 'Open a dialog to create a new hillshade layer and source in the current JupyterGIS document.', describedBy: {
350
363
  args: {
351
364
  type: 'object',
352
365
  properties: {},
@@ -365,7 +378,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
365
378
  sourceType: 'RasterDemSource',
366
379
  layerType: 'HillshadeLayer',
367
380
  }) }, icons.get(CommandIDs.openNewHillshadeDialog)));
368
- commands.addCommand(CommandIDs.openNewImageDialog, Object.assign({ label: trans.__('Open New Image Layer Creation Dialog'), caption: 'Open a dialog to create a new image layer and source in the current JupyterGIS document.', describedBy: {
381
+ commands.addCommand(CommandIDs.openNewImageDialog, Object.assign({ label: trans.__('Image'), caption: 'Open a dialog to create a new image layer and source in the current JupyterGIS document.', describedBy: {
369
382
  args: {
370
383
  type: 'object',
371
384
  properties: {},
@@ -394,7 +407,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
394
407
  sourceType: 'ImageSource',
395
408
  layerType: 'ImageLayer',
396
409
  }) }, icons.get(CommandIDs.openNewImageDialog)));
397
- commands.addCommand(CommandIDs.openNewVideoDialog, Object.assign({ label: trans.__('Open New Video Layer Creation Dialog'), caption: 'Open a dialog to create a new video layer and source in the current JupyterGIS document.', describedBy: {
410
+ commands.addCommand(CommandIDs.openNewVideoDialog, Object.assign({ label: trans.__('Video'), caption: 'Open a dialog to create a new video layer and source in the current JupyterGIS document.', describedBy: {
398
411
  args: {
399
412
  type: 'object',
400
413
  properties: {},
@@ -426,7 +439,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
426
439
  sourceType: 'VideoSource',
427
440
  layerType: 'RasterLayer',
428
441
  }) }, icons.get(CommandIDs.openNewVideoDialog)));
429
- commands.addCommand(CommandIDs.openNewGeoTiffDialog, Object.assign({ label: trans.__('Open New GeoTiff Layer Creation Dialog'), caption: 'Open a dialog to create a new GeoTiff layer and source in the current JupyterGIS document.', describedBy: {
442
+ commands.addCommand(CommandIDs.openNewGeoTiffDialog, Object.assign({ label: trans.__('GeoTiff'), caption: 'Open a dialog to create a new GeoTiff layer and source in the current JupyterGIS document.', describedBy: {
430
443
  args: {
431
444
  type: 'object',
432
445
  properties: {},
@@ -447,9 +460,9 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
447
460
  },
448
461
  layerData: { name: 'Custom GeoTiff Layer' },
449
462
  sourceType: 'GeoTiffSource',
450
- layerType: 'WebGlLayer',
463
+ layerType: 'GeoTiffLayer',
451
464
  }) }, icons.get(CommandIDs.openNewGeoTiffDialog)));
452
- commands.addCommand(CommandIDs.openNewShapefileDialog, Object.assign({ label: trans.__('Open New Shapefile Layer Creation Dialog'), caption: 'Open a dialog to create a new shapefile layer and source in the current JupyterGIS document.', describedBy: {
465
+ commands.addCommand(CommandIDs.openNewShapefileDialog, Object.assign({ label: trans.__('Shapefile'), caption: 'Open a dialog to create a new shapefile layer and source in the current JupyterGIS document.', describedBy: {
453
466
  args: {
454
467
  type: 'object',
455
468
  properties: {},
@@ -469,6 +482,36 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
469
482
  sourceType: 'ShapefileSource',
470
483
  layerType: 'VectorLayer',
471
484
  }) }, icons.get(CommandIDs.openNewShapefileDialog)));
485
+ commands.addCommand(CommandIDs.newGeoPackageVectorEntry, Object.assign({ label: trans.__('GeoPackage'), isEnabled: () => {
486
+ return tracker.currentWidget
487
+ ? tracker.currentWidget.model.sharedModel.editable
488
+ : false;
489
+ }, execute: Private.createEntry({
490
+ tracker,
491
+ formSchemaRegistry,
492
+ title: 'Create GeoPackage Layer',
493
+ createLayer: true,
494
+ createSource: true,
495
+ sourceData: { name: 'Custom GeoPackage Vector Source' },
496
+ layerData: { name: 'Custom GeoPackage Vector Layer' },
497
+ sourceType: 'GeoPackageVectorSource',
498
+ layerType: 'VectorLayer',
499
+ }) }, icons.get(CommandIDs.newGeoPackageVectorEntry)));
500
+ commands.addCommand(CommandIDs.newGeoPackageRasterEntry, Object.assign({ label: trans.__('GeoPackage'), isEnabled: () => {
501
+ return tracker.currentWidget
502
+ ? tracker.currentWidget.model.sharedModel.editable
503
+ : false;
504
+ }, execute: Private.createEntry({
505
+ tracker,
506
+ formSchemaRegistry,
507
+ title: 'Create GeoPackage Layer',
508
+ createLayer: true,
509
+ createSource: true,
510
+ sourceData: { name: 'Custom GeoPackage Raster Source' },
511
+ layerData: { name: 'Custom GeoPackage Raster Layer' },
512
+ sourceType: 'GeoPackageRasterSource',
513
+ layerType: 'RasterLayer',
514
+ }) }, icons.get(CommandIDs.newGeoPackageRasterEntry)));
472
515
  /**
473
516
  * LAYERS and LAYER GROUP actions.
474
517
  */
@@ -946,23 +989,21 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
946
989
  isEnabled: () => Boolean(tracker.currentWidget),
947
990
  isToggled: () => {
948
991
  const current = tracker.currentWidget;
949
- return current ? !current.model.jgisSettings.leftPanelDisabled : false;
992
+ if (!current) {
993
+ return false;
994
+ }
995
+ const open = current.model.getUIState().leftPanelOpen;
996
+ return open !== false;
950
997
  },
951
- execute: async () => {
952
- var _a, _b, _c;
998
+ execute: () => {
953
999
  const current = tracker.currentWidget;
954
1000
  if (!current) {
955
1001
  return;
956
1002
  }
957
- try {
958
- const settings = await current.model.getSettings();
959
- const currentValue = (_c = (_b = (_a = settings === null || settings === void 0 ? void 0 : settings.composite) === null || _a === void 0 ? void 0 : _a.leftPanelDisabled) !== null && _b !== void 0 ? _b : current.model.jgisSettings.leftPanelDisabled) !== null && _c !== void 0 ? _c : false;
960
- await (settings === null || settings === void 0 ? void 0 : settings.set('leftPanelDisabled', !currentValue));
961
- commands.notifyCommandChanged(CommandIDs.toggleLeftPanel);
962
- }
963
- catch (err) {
964
- console.error('Failed to toggle Left Panel:', err);
965
- }
1003
+ const open = current.model.getUIState().leftPanelOpen;
1004
+ current.model.setUIState({ leftPanelOpen: open === false });
1005
+ commands.notifyCommandChanged(CommandIDs.toggleLeftPanel);
1006
+ commands.notifyCommandChanged(CommandIDs.togglePanel);
966
1007
  },
967
1008
  });
968
1009
  commands.addCommand(CommandIDs.toggleRightPanel, {
@@ -977,23 +1018,58 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
977
1018
  isEnabled: () => Boolean(tracker.currentWidget),
978
1019
  isToggled: () => {
979
1020
  const current = tracker.currentWidget;
980
- return current ? !current.model.jgisSettings.rightPanelDisabled : false;
1021
+ if (!current) {
1022
+ return false;
1023
+ }
1024
+ const open = current.model.getUIState().rightPanelOpen;
1025
+ return open !== false;
981
1026
  },
982
- execute: async () => {
983
- var _a, _b, _c;
1027
+ execute: () => {
984
1028
  const current = tracker.currentWidget;
985
1029
  if (!current) {
986
1030
  return;
987
1031
  }
988
- try {
989
- const settings = await current.model.getSettings();
990
- const currentValue = (_c = (_b = (_a = settings === null || settings === void 0 ? void 0 : settings.composite) === null || _a === void 0 ? void 0 : _a.rightPanelDisabled) !== null && _b !== void 0 ? _b : current.model.jgisSettings.rightPanelDisabled) !== null && _c !== void 0 ? _c : false;
991
- await (settings === null || settings === void 0 ? void 0 : settings.set('rightPanelDisabled', !currentValue));
992
- commands.notifyCommandChanged(CommandIDs.toggleRightPanel);
1032
+ const open = current.model.getUIState().rightPanelOpen;
1033
+ current.model.setUIState({ rightPanelOpen: open === false });
1034
+ commands.notifyCommandChanged(CommandIDs.toggleRightPanel);
1035
+ commands.notifyCommandChanged(CommandIDs.togglePanel);
1036
+ },
1037
+ });
1038
+ commands.addCommand(CommandIDs.togglePanel, {
1039
+ label: trans.__('Toggle Panel'),
1040
+ caption: 'Toggle the panel in the current JupyterGIS document.',
1041
+ iconClass: 'fa fa-layer-group',
1042
+ isEnabled: () => Boolean(tracker.currentWidget),
1043
+ isToggled: () => {
1044
+ const current = tracker.currentWidget;
1045
+ if (!current) {
1046
+ return false;
1047
+ }
1048
+ const { leftPanelDisabled, rightPanelDisabled } = current.model.jgisSettings;
1049
+ const { leftPanelOpen = true, rightPanelOpen = true } = current.model.getUIState();
1050
+ const show = (!leftPanelDisabled && !leftPanelOpen) ||
1051
+ (!rightPanelDisabled && !rightPanelOpen);
1052
+ return !show;
1053
+ },
1054
+ execute: () => {
1055
+ const current = tracker.currentWidget;
1056
+ if (!current) {
1057
+ return;
1058
+ }
1059
+ const { leftPanelDisabled, rightPanelDisabled } = current.model.jgisSettings;
1060
+ const { leftPanelOpen = true, rightPanelOpen = true } = current.model.getUIState();
1061
+ // Show all if any non-disabled panel is hidden; hide all otherwise.
1062
+ const show = (!leftPanelDisabled && !leftPanelOpen) ||
1063
+ (!rightPanelDisabled && !rightPanelOpen);
1064
+ const newState = {};
1065
+ if (!leftPanelDisabled) {
1066
+ newState.leftPanelOpen = show;
993
1067
  }
994
- catch (err) {
995
- console.error('Failed to toggle Right Panel:', err);
1068
+ if (!rightPanelDisabled) {
1069
+ newState.rightPanelOpen = show;
996
1070
  }
1071
+ current.model.setUIState(newState);
1072
+ commands.notifyCommandChanged(CommandIDs.togglePanel);
997
1073
  },
998
1074
  });
999
1075
  // Left panel tabs
@@ -1141,6 +1217,59 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1141
1217
  current.model.toggleMode('marking');
1142
1218
  commands.notifyCommandChanged(CommandIDs.addMarker);
1143
1219
  } }, icons.get(CommandIDs.addMarker)));
1220
+ commands.addCommand(CommandIDs.toggleDrawFeatures, Object.assign({ label: trans.__('Edit Features'), caption: 'Toggle feature editing for the selected draw-compatible layer.', describedBy: {
1221
+ args: {
1222
+ type: 'object',
1223
+ properties: {},
1224
+ },
1225
+ }, isToggled: () => {
1226
+ var _a, _b, _c;
1227
+ if (!(tracker.currentWidget instanceof JupyterGISDocumentWidget)) {
1228
+ return false;
1229
+ }
1230
+ const model = (_c = (_b = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.currentViewModel) === null || _c === void 0 ? void 0 : _c.jGISModel;
1231
+ if (!model) {
1232
+ return false;
1233
+ }
1234
+ const selectedLayer = getSingleSelectedLayer(tracker);
1235
+ if (!selectedLayer) {
1236
+ return false;
1237
+ }
1238
+ if (!model.checkIfIsADrawVectorLayer(selectedLayer)) {
1239
+ return false;
1240
+ }
1241
+ return model.editingVectorLayer;
1242
+ }, isEnabled: () => {
1243
+ var _a, _b, _c;
1244
+ if (!(tracker.currentWidget instanceof JupyterGISDocumentWidget)) {
1245
+ return false;
1246
+ }
1247
+ const model = (_c = (_b = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.currentViewModel) === null || _c === void 0 ? void 0 : _c.jGISModel;
1248
+ if (!model) {
1249
+ return false;
1250
+ }
1251
+ const selectedLayer = getSingleSelectedLayer(tracker);
1252
+ if (!selectedLayer) {
1253
+ return false;
1254
+ }
1255
+ return model.checkIfIsADrawVectorLayer(selectedLayer) === true;
1256
+ }, execute: async () => {
1257
+ var _a, _b;
1258
+ if (!(tracker.currentWidget instanceof JupyterGISDocumentWidget)) {
1259
+ return;
1260
+ }
1261
+ const model = (_b = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content.currentViewModel) === null || _b === void 0 ? void 0 : _b.jGISModel;
1262
+ if (!model) {
1263
+ return false;
1264
+ }
1265
+ const selectedLayer = getSingleSelectedLayer(tracker);
1266
+ if (!selectedLayer) {
1267
+ return false;
1268
+ }
1269
+ model.editingVectorLayer = !model.editingVectorLayer;
1270
+ model.updateEditingVectorLayer();
1271
+ commands.notifyCommandChanged(CommandIDs.toggleDrawFeatures);
1272
+ } }, icons.get(CommandIDs.toggleDrawFeatures)));
1144
1273
  commands.addCommand(CommandIDs.addStorySegment, Object.assign({ label: trans.__('Add Story Segment'), isEnabled: () => {
1145
1274
  const current = tracker.currentWidget;
1146
1275
  if (!current) {
@@ -1181,11 +1310,44 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1181
1310
  current.model.setOptions(Object.assign(Object.assign({}, currentOptions), { storyMapPresentationMode: !currentOptions.storyMapPresentationMode }));
1182
1311
  commands.notifyCommandChanged(CommandIDs.toggleStoryPresentationMode);
1183
1312
  } }, icons.get(CommandIDs.toggleStoryPresentationMode)));
1313
+ commands.addCommand(CommandIDs.createStorySegmentFromLayer, {
1314
+ label: trans.__('Create Story Segment for Layer'),
1315
+ isEnabled: () => {
1316
+ var _a, _b, _c;
1317
+ const model = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.model;
1318
+ const selected = (_c = (_b = model === null || model === void 0 ? void 0 : model.localState) === null || _b === void 0 ? void 0 : _b.selected) === null || _c === void 0 ? void 0 : _c.value;
1319
+ if (!model || !selected) {
1320
+ return false;
1321
+ }
1322
+ if (Object.keys(selected).length !== 1) {
1323
+ return false;
1324
+ }
1325
+ const layerId = Object.keys(selected)[0];
1326
+ return !!model.getLayer(layerId);
1327
+ },
1328
+ execute: () => {
1329
+ var _a, _b;
1330
+ const current = tracker.currentWidget;
1331
+ if (!current) {
1332
+ return;
1333
+ }
1334
+ const model = current.model;
1335
+ const selected = (_b = (_a = model === null || model === void 0 ? void 0 : model.localState) === null || _a === void 0 ? void 0 : _a.selected) === null || _b === void 0 ? void 0 : _b.value;
1336
+ if (!selected) {
1337
+ return;
1338
+ }
1339
+ const layerId = Object.keys(selected)[0];
1340
+ const result = model.createStorySegmentFromLayer(layerId);
1341
+ if (result) {
1342
+ model.centerOnPosition(layerId);
1343
+ }
1344
+ },
1345
+ });
1184
1346
  /* Needs to be enabled in Specta mode, so add without Specta-aware wrapper */
1185
1347
  originalAddCommand(CommandIDs.storyPrev, {
1186
1348
  label: trans.__('Previous Story Segment'),
1187
1349
  isEnabled: () => {
1188
- var _a, _b;
1350
+ var _a, _b, _c;
1189
1351
  const model = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.model;
1190
1352
  const storySegments = (_b = model === null || model === void 0 ? void 0 : model.getSelectedStory().story) === null || _b === void 0 ? void 0 : _b.storySegments;
1191
1353
  if (!model ||
@@ -1197,6 +1359,9 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1197
1359
  if (!model.isSpectaMode()) {
1198
1360
  return false;
1199
1361
  }
1362
+ if (((_c = model.getSelectedStory().story) === null || _c === void 0 ? void 0 : _c.storyType) === STORY_TYPE.verticalScroll) {
1363
+ return false;
1364
+ }
1200
1365
  return model.getCurrentSegmentIndex() > 0;
1201
1366
  },
1202
1367
  execute: () => {
@@ -1212,7 +1377,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1212
1377
  originalAddCommand(CommandIDs.storyNext, {
1213
1378
  label: trans.__('Next Story Segment'),
1214
1379
  isEnabled: () => {
1215
- var _a, _b, _c;
1380
+ var _a, _b, _c, _d;
1216
1381
  const model = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.model;
1217
1382
  const storySegments = (_b = model === null || model === void 0 ? void 0 : model.getSelectedStory().story) === null || _b === void 0 ? void 0 : _b.storySegments;
1218
1383
  if (!model ||
@@ -1225,7 +1390,10 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1225
1390
  if (!isSpecta) {
1226
1391
  return false;
1227
1392
  }
1228
- const current = (_c = model.getCurrentSegmentIndex()) !== null && _c !== void 0 ? _c : 0;
1393
+ if (((_c = model.getSelectedStory().story) === null || _c === void 0 ? void 0 : _c.storyType) === STORY_TYPE.verticalScroll) {
1394
+ return false;
1395
+ }
1396
+ const current = (_d = model.getCurrentSegmentIndex()) !== null && _d !== void 0 ? _d : 0;
1229
1397
  return current < storySegments.length - 1;
1230
1398
  },
1231
1399
  execute: () => {
@@ -1238,6 +1406,28 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
1238
1406
  model.setCurrentSegmentIndex(current + 1);
1239
1407
  },
1240
1408
  });
1409
+ const notifyCommandsChanged = () => {
1410
+ for (const command of Object.values(CommandIDs)) {
1411
+ try {
1412
+ commands.notifyCommandChanged(command);
1413
+ }
1414
+ catch (_) {
1415
+ // Do Continue if command is not registered
1416
+ }
1417
+ }
1418
+ };
1419
+ let cleanup = null;
1420
+ tracker.currentChanged.connect(_ => {
1421
+ var _a;
1422
+ cleanup === null || cleanup === void 0 ? void 0 : cleanup();
1423
+ cleanup = null;
1424
+ const model = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.model;
1425
+ model === null || model === void 0 ? void 0 : model.selectedChanged.connect(notifyCommandsChanged);
1426
+ cleanup = () => {
1427
+ model === null || model === void 0 ? void 0 : model.selectedChanged.disconnect(notifyCommandsChanged);
1428
+ };
1429
+ notifyCommandsChanged();
1430
+ });
1241
1431
  loadKeybindings(commands, keybindings);
1242
1432
  }
1243
1433
  var Private;
@@ -241,7 +241,7 @@ export function addLayerCreationCommands(options) {
241
241
  label: 'New GeoTIFF Layer From Parameters',
242
242
  caption: 'Add a new GeoTIFF layer (by file path or URL) and add it to the given JupyterGIS file',
243
243
  sourceType: 'GeoTiffSource',
244
- layerType: 'WebGlLayer',
244
+ layerType: 'GeoTiffLayer',
245
245
  sourceSchema: {
246
246
  type: 'object',
247
247
  required: ['urls'],
@@ -296,7 +296,7 @@ export function addLayerCreationCommands(options) {
296
296
  source: id,
297
297
  color: (_a = p.color) !== null && _a !== void 0 ? _a : {},
298
298
  opacity: (_b = p.opacity) !== null && _b !== void 0 ? _b : 1,
299
- symbologyState: (_c = p.symbologyState) !== null && _c !== void 0 ? _c : { renderType: 'Single Symbol' },
299
+ symbologyState: (_c = p.symbologyState) !== null && _c !== void 0 ? _c : { layers: [] },
300
300
  });
301
301
  },
302
302
  },
package/lib/constants.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { ProcessingCommandIDs } from '@jupytergis/schema';
2
2
  import { redoIcon, undoIcon } from '@jupyterlab/ui-components';
3
3
  import * as BaseCommandIDs from './commands/BaseCommandIDs';
4
- import { bookOpenIcon, clockIcon, geoJSONIcon, infoIcon, moundIcon, rasterIcon, vectorSquareIcon, markerIcon, } from './icons';
4
+ import { bookOpenIcon, clockIcon, geoJSONIcon, geoPackageIcon, infoIcon, moundIcon, rasterIcon, vectorSquareIcon, markerIcon, pencilSolidIcon, } from './shared/icons';
5
5
  /**
6
6
  * The command IDs.
7
7
  */
@@ -15,6 +15,7 @@ const iconObject = {
15
15
  VideoSource: { iconClass: 'fa fa-video' },
16
16
  ShapefileSource: { iconClass: 'fa fa-file' },
17
17
  RasterLayer: { icon: rasterIcon },
18
+ OpenEOTileLayer: { icon: rasterIcon },
18
19
  VectorLayer: { iconClass: 'fa fa-vector-square' },
19
20
  HillshadeLayer: { icon: moundIcon },
20
21
  ImageLayer: { iconClass: 'fa fa-image' },
@@ -23,11 +24,14 @@ const iconObject = {
23
24
  [CommandIDs.undo]: { icon: undoIcon },
24
25
  [CommandIDs.openLayerBrowser]: { icon: bookOpenIcon },
25
26
  [CommandIDs.openNewRasterDialog]: { icon: rasterIcon },
27
+ [CommandIDs.openNewWmsDialog]: { iconClass: 'fa fa-server' },
26
28
  [CommandIDs.openNewVectorTileDialog]: { icon: vectorSquareIcon },
27
29
  [CommandIDs.openNewGeoJSONDialog]: { icon: geoJSONIcon },
28
30
  [CommandIDs.openNewHillshadeDialog]: { icon: moundIcon },
29
31
  [CommandIDs.openNewImageDialog]: { iconClass: 'fa fa-image' },
30
32
  [CommandIDs.openNewVideoDialog]: { iconClass: 'fa fa-video' },
33
+ [CommandIDs.newGeoPackageVectorEntry]: { icon: geoPackageIcon },
34
+ [CommandIDs.newGeoPackageRasterEntry]: { icon: geoPackageIcon },
31
35
  [CommandIDs.openNewShapefileDialog]: { iconClass: 'fa fa-file' },
32
36
  [CommandIDs.openNewGeoTiffDialog]: { iconClass: 'fa fa-image' },
33
37
  [CommandIDs.openNewGeoParquetDialog]: { iconClass: 'fa fa-file' },
@@ -35,6 +39,7 @@ const iconObject = {
35
39
  [CommandIDs.identify]: { icon: infoIcon },
36
40
  [CommandIDs.temporalController]: { icon: clockIcon },
37
41
  [CommandIDs.addMarker]: { icon: markerIcon },
42
+ [CommandIDs.toggleDrawFeatures]: { icon: pencilSolidIcon },
38
43
  [CommandIDs.addStorySegment]: { iconClass: 'fa fa-link' },
39
44
  [CommandIDs.toggleStoryPresentationMode]: {
40
45
  iconClass: 'fa fa-book jgis-icon-adjust',
@@ -1,5 +1,5 @@
1
1
  import React, { Component } from 'react';
2
- import Annotation from "../annotations/components/Annotation";
2
+ import Annotation from './components/Annotation';
3
3
  export class AnnotationsPanel extends Component {
4
4
  constructor(props) {
5
5
  var _a, _b;
@@ -1,3 +1,4 @@
1
1
  export * from './model';
2
2
  export * from './components/Annotation';
3
3
  export * from './components/AnnotationFloater';
4
+ export * from './AnnotationsPanel';
@@ -1,3 +1,4 @@
1
1
  export * from './model';
2
2
  export * from './components/Annotation';
3
3
  export * from './components/AnnotationFloater';
4
+ export * from './AnnotationsPanel';
@@ -1,7 +1,7 @@
1
1
  import { ConsolePanel } from '@jupyterlab/console';
2
2
  import { closeIcon, CommandToolbarButton, expandIcon, Toolbar, } from '@jupyterlab/ui-components';
3
3
  import { BoxPanel } from '@lumino/widgets';
4
- import { debounce } from "../tools";
4
+ import { debounce } from "../../tools";
5
5
  export class ConsoleView extends BoxPanel {
6
6
  constructor(options) {
7
7
  super({ direction: 'top-to-bottom' });