@jupytergis/base 0.4.5 → 0.6.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 (192) hide show
  1. package/lib/annotations/components/Annotation.d.ts +2 -2
  2. package/lib/annotations/components/Annotation.js +3 -3
  3. package/lib/annotations/components/AnnotationFloater.d.ts +1 -1
  4. package/lib/annotations/components/AnnotationFloater.js +2 -2
  5. package/lib/annotations/components/Message.d.ts +2 -1
  6. package/lib/annotations/components/Message.js +3 -3
  7. package/lib/annotations/model.js +5 -5
  8. package/lib/commands/BaseCommandIDs.d.ts +32 -0
  9. package/lib/commands/BaseCommandIDs.js +43 -0
  10. package/lib/{commands.d.ts → commands/index.d.ts} +1 -1
  11. package/lib/{commands.js → commands/index.js} +76 -319
  12. package/lib/console/consoleview.d.ts +3 -3
  13. package/lib/console/consoleview.js +5 -5
  14. package/lib/constants.d.ts +2 -51
  15. package/lib/constants.js +6 -65
  16. package/lib/dialogs/ProcessingFormDialog.d.ts +4 -4
  17. package/lib/dialogs/ProcessingFormDialog.js +9 -11
  18. package/lib/dialogs/layerBrowserDialog.d.ts +1 -1
  19. package/lib/dialogs/layerBrowserDialog.js +7 -7
  20. package/lib/dialogs/layerCreationFormDialog.d.ts +4 -4
  21. package/lib/dialogs/layerCreationFormDialog.js +6 -6
  22. package/lib/dialogs/symbology/components/color_ramp/CanvasSelectComponent.d.ts +1 -1
  23. package/lib/dialogs/symbology/components/color_ramp/CanvasSelectComponent.js +3 -3
  24. package/lib/dialogs/symbology/components/color_ramp/ColorRamp.d.ts +3 -2
  25. package/lib/dialogs/symbology/components/color_ramp/ColorRamp.js +6 -7
  26. package/lib/dialogs/symbology/components/color_ramp/ColorRampEntry.d.ts +1 -1
  27. package/lib/dialogs/symbology/components/color_ramp/ColorRampEntry.js +1 -1
  28. package/lib/dialogs/symbology/components/color_ramp/ModeSelectRow.d.ts +1 -1
  29. package/lib/dialogs/symbology/components/color_ramp/ModeSelectRow.js +1 -1
  30. package/lib/dialogs/symbology/components/color_stops/StopContainer.d.ts +2 -2
  31. package/lib/dialogs/symbology/components/color_stops/StopContainer.js +4 -4
  32. package/lib/dialogs/symbology/components/color_stops/StopRow.d.ts +3 -3
  33. package/lib/dialogs/symbology/components/color_stops/StopRow.js +2 -2
  34. package/lib/dialogs/symbology/hooks/useGetBandInfo.js +5 -5
  35. package/lib/dialogs/symbology/hooks/useGetProperties.d.ts +1 -1
  36. package/lib/dialogs/symbology/hooks/useGetProperties.js +4 -4
  37. package/lib/dialogs/symbology/symbologyDialog.d.ts +8 -0
  38. package/lib/dialogs/symbology/symbologyDialog.js +1 -1
  39. package/lib/dialogs/symbology/symbologyUtils.js +38 -31
  40. package/lib/dialogs/symbology/tiff_layer/TiffRendering.d.ts +2 -2
  41. package/lib/dialogs/symbology/tiff_layer/TiffRendering.js +2 -2
  42. package/lib/dialogs/symbology/tiff_layer/components/BandRow.d.ts +2 -2
  43. package/lib/dialogs/symbology/tiff_layer/components/BandRow.js +4 -4
  44. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.d.ts +2 -2
  45. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.js +30 -20
  46. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.d.ts +2 -2
  47. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.js +23 -21
  48. package/lib/dialogs/symbology/vector_layer/VectorRendering.d.ts +2 -2
  49. package/lib/dialogs/symbology/vector_layer/VectorRendering.js +81 -39
  50. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.d.ts +1 -1
  51. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.js +1 -1
  52. package/lib/dialogs/symbology/vector_layer/types/Canonical.d.ts +4 -0
  53. package/lib/dialogs/symbology/vector_layer/types/Canonical.js +66 -0
  54. package/lib/dialogs/symbology/vector_layer/types/Categorized.d.ts +2 -2
  55. package/lib/dialogs/symbology/vector_layer/types/Categorized.js +142 -47
  56. package/lib/dialogs/symbology/vector_layer/types/Graduated.d.ts +2 -2
  57. package/lib/dialogs/symbology/vector_layer/types/Graduated.js +193 -99
  58. package/lib/dialogs/symbology/vector_layer/types/Heatmap.d.ts +2 -2
  59. package/lib/dialogs/symbology/vector_layer/types/Heatmap.js +7 -6
  60. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.d.ts +2 -2
  61. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.js +33 -30
  62. package/lib/formbuilder/creationform.js +3 -3
  63. package/lib/formbuilder/editform.js +3 -3
  64. package/lib/formbuilder/formselectors.d.ts +1 -1
  65. package/lib/formbuilder/formselectors.js +2 -2
  66. package/lib/formbuilder/objectform/baseform.d.ts +5 -4
  67. package/lib/formbuilder/objectform/baseform.js +16 -14
  68. package/lib/formbuilder/objectform/fileselectorwidget.d.ts +1 -1
  69. package/lib/formbuilder/objectform/fileselectorwidget.js +5 -5
  70. package/lib/formbuilder/objectform/layer/heatmapLayerForm.js +2 -2
  71. package/lib/formbuilder/objectform/layer/hillshadeLayerForm.js +1 -1
  72. package/lib/formbuilder/objectform/layer/layerform.d.ts +1 -1
  73. package/lib/formbuilder/objectform/layer/layerform.js +3 -2
  74. package/lib/formbuilder/objectform/process/dissolveProcessForm.d.ts +1 -1
  75. package/lib/formbuilder/objectform/process/dissolveProcessForm.js +5 -5
  76. package/lib/formbuilder/objectform/source/geojsonsource.js +4 -4
  77. package/lib/formbuilder/objectform/source/geotiffsource.js +4 -4
  78. package/lib/formbuilder/objectform/source/pathbasedsource.js +6 -6
  79. package/lib/formbuilder/objectform/source/sourceform.d.ts +1 -1
  80. package/lib/formbuilder/objectform/source/sourceform.js +1 -1
  81. package/lib/formbuilder/objectform/source/tilesourceform.js +3 -3
  82. package/lib/gdal.js +2 -2
  83. package/lib/icons.js +29 -29
  84. package/lib/index.d.ts +4 -2
  85. package/lib/index.js +4 -2
  86. package/lib/mainview/CollaboratorPointers.d.ts +1 -1
  87. package/lib/mainview/CollaboratorPointers.js +5 -5
  88. package/lib/mainview/FollowIndicator.d.ts +2 -2
  89. package/lib/mainview/FollowIndicator.js +3 -3
  90. package/lib/mainview/TemporalSlider.d.ts +1 -1
  91. package/lib/mainview/TemporalSlider.js +7 -7
  92. package/lib/mainview/mainView.d.ts +4 -2
  93. package/lib/mainview/mainView.js +232 -137
  94. package/lib/menus.d.ts +4 -0
  95. package/lib/menus.js +45 -0
  96. package/lib/panelview/annotationPanel.d.ts +2 -2
  97. package/lib/panelview/annotationPanel.js +1 -1
  98. package/lib/panelview/components/filter-panel/Filter.d.ts +2 -2
  99. package/lib/panelview/components/filter-panel/Filter.js +5 -5
  100. package/lib/panelview/components/filter-panel/FilterRow.d.ts +2 -2
  101. package/lib/panelview/components/identify-panel/IdentifyPanel.d.ts +1 -1
  102. package/lib/panelview/components/identify-panel/IdentifyPanel.js +5 -5
  103. package/lib/panelview/components/layers.d.ts +1 -1
  104. package/lib/panelview/components/layers.js +12 -12
  105. package/lib/panelview/leftpanel.d.ts +4 -2
  106. package/lib/panelview/leftpanel.js +24 -14
  107. package/lib/panelview/model.d.ts +1 -1
  108. package/lib/panelview/objectproperties.d.ts +1 -1
  109. package/lib/panelview/objectproperties.js +3 -3
  110. package/lib/panelview/rightpanel.d.ts +2 -1
  111. package/lib/panelview/rightpanel.js +13 -5
  112. package/lib/{processing.d.ts → processing/index.d.ts} +4 -4
  113. package/lib/{processing.js → processing/index.js} +19 -24
  114. package/lib/processing/processingCommands.d.ts +6 -0
  115. package/lib/processing/processingCommands.js +47 -0
  116. package/lib/processing/processingFormToParam.d.ts +2 -0
  117. package/lib/processing/processingFormToParam.js +15 -0
  118. package/lib/shared/components/Badge.d.ts +7 -0
  119. package/lib/shared/components/Badge.js +19 -0
  120. package/lib/shared/components/Button.d.ts +9 -0
  121. package/lib/shared/components/Button.js +20 -0
  122. package/lib/shared/components/Calendar.d.ts +47 -0
  123. package/lib/shared/components/Calendar.js +184 -0
  124. package/lib/shared/components/Checkbox.d.ts +4 -0
  125. package/lib/shared/components/Checkbox.js +25 -0
  126. package/lib/shared/components/DropdownMenu.d.ts +27 -0
  127. package/lib/shared/components/DropdownMenu.js +92 -0
  128. package/lib/shared/components/Pagination.d.ts +25 -0
  129. package/lib/shared/components/Pagination.js +68 -0
  130. package/lib/shared/components/Popover.d.ts +7 -0
  131. package/lib/shared/components/Popover.js +32 -0
  132. package/lib/shared/components/Tabs.d.ts +7 -0
  133. package/lib/shared/components/Tabs.js +31 -0
  134. package/lib/shared/components/ToggleGroup.d.ts +12 -0
  135. package/lib/shared/components/ToggleGroup.js +52 -0
  136. package/lib/shared/components/loading.d.ts +12 -0
  137. package/lib/shared/components/loading.js +6 -0
  138. package/lib/shared/components/utils.d.ts +2 -0
  139. package/lib/shared/components/utils.js +4 -0
  140. package/lib/shared/hooks/useIsFirstRender.d.ts +2 -0
  141. package/lib/shared/hooks/useIsFirstRender.js +10 -0
  142. package/lib/stacBrowser/StacBrowser.d.ts +7 -0
  143. package/lib/stacBrowser/StacBrowser.js +16 -0
  144. package/lib/stacBrowser/StacPanel.d.ts +14 -0
  145. package/lib/stacBrowser/StacPanel.js +16 -0
  146. package/lib/stacBrowser/components/StacFilterSection.d.ts +23 -0
  147. package/lib/stacBrowser/components/StacFilterSection.js +49 -0
  148. package/lib/stacBrowser/components/StacPanelFilters.d.ts +14 -0
  149. package/lib/stacBrowser/components/StacPanelFilters.js +65 -0
  150. package/lib/stacBrowser/components/StacPanelResults.d.ts +13 -0
  151. package/lib/stacBrowser/components/StacPanelResults.js +48 -0
  152. package/lib/stacBrowser/components/StacPanelView.d.ts +7 -0
  153. package/lib/stacBrowser/components/StacPanelView.js +20 -0
  154. package/lib/stacBrowser/constants.d.ts +25 -0
  155. package/lib/stacBrowser/constants.js +197 -0
  156. package/lib/stacBrowser/hooks/useStacSearch.d.ts +30 -0
  157. package/lib/stacBrowser/hooks/useStacSearch.js +221 -0
  158. package/lib/stacBrowser/index.d.ts +1 -0
  159. package/lib/stacBrowser/index.js +1 -0
  160. package/lib/stacBrowser/types/types.d.ts +124 -0
  161. package/lib/stacBrowser/types/types.js +1 -0
  162. package/lib/statusbar/StatusBar.d.ts +1 -1
  163. package/lib/statusbar/StatusBar.js +3 -3
  164. package/lib/toolbar/index.d.ts +0 -1
  165. package/lib/toolbar/index.js +0 -1
  166. package/lib/toolbar/widget.js +28 -64
  167. package/lib/tools.d.ts +30 -5
  168. package/lib/tools.js +82 -69
  169. package/lib/types.d.ts +2 -0
  170. package/lib/widget.d.ts +2 -1
  171. package/lib/widget.js +8 -5
  172. package/package.json +22 -8
  173. package/style/base.css +26 -0
  174. package/style/layerBrowser.css +10 -0
  175. package/style/leftPanel.css +0 -1
  176. package/style/shared/badge.css +61 -0
  177. package/style/shared/button.css +164 -0
  178. package/style/shared/calendar.css +274 -0
  179. package/style/shared/checkbox.css +28 -0
  180. package/style/shared/dropdownMenu.css +240 -0
  181. package/style/shared/pagination.css +167 -0
  182. package/style/shared/popover.css +53 -0
  183. package/style/shared/tabs.css +57 -0
  184. package/style/shared/toggle.css +85 -0
  185. package/style/stacBrowser.css +74 -0
  186. package/style/symbologyDialog.css +0 -7
  187. package/lib/mainview/spinner.d.ts +0 -6
  188. package/lib/mainview/spinner.js +0 -5
  189. package/lib/panelview/components/sources.d.ts +0 -10
  190. package/lib/panelview/components/sources.js +0 -147
  191. package/lib/toolbar/usertoolbaritem.d.ts +0 -19
  192. package/lib/toolbar/usertoolbaritem.js +0 -59
@@ -1,21 +1,22 @@
1
1
  import { showErrorMessage } from '@jupyterlab/apputils';
2
- import { CommandIDs, icons } from './constants';
3
- import { LayerCreationFormDialog } from './dialogs/layerCreationFormDialog';
4
- import { LayerBrowserWidget } from './dialogs/layerBrowserDialog';
5
- import { SymbologyWidget } from './dialogs/symbology/symbologyDialog';
6
- import keybindings from './keybindings.json';
7
- import { JupyterGISDocumentWidget } from './widget';
8
- import { getGeoJSONDataFromLayerSource, downloadFile } from './tools';
9
- import { ProcessingFormDialog } from './dialogs/ProcessingFormDialog';
10
- import { getSingleSelectedLayer, selectedLayerIsOfType, processSelectedLayer } from './processing';
11
2
  import { fromLonLat } from 'ol/proj';
12
- import { targetWithCenterIcon } from './icons';
3
+ 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';
9
+ import keybindings from '../keybindings.json';
10
+ import { getSingleSelectedLayer } from '../processing/index';
11
+ import { addProcessingCommands } from '../processing/processingCommands';
12
+ import { getGeoJSONDataFromLayerSource, downloadFile } from '../tools';
13
+ import { JupyterGISDocumentWidget } from '../widget';
13
14
  function loadKeybindings(commands, keybindings) {
14
15
  keybindings.forEach(binding => {
15
16
  commands.addKeyBinding({
16
17
  command: binding.command,
17
18
  keys: binding.keys,
18
- selector: binding.selector
19
+ selector: binding.selector,
19
20
  });
20
21
  });
21
22
  }
@@ -47,7 +48,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
47
48
  'VectorLayer',
48
49
  'VectorTileLayer',
49
50
  'WebGlLayer',
50
- 'HeatmapLayer'
51
+ 'HeatmapLayer',
51
52
  ].includes(layer.type);
52
53
  return isValidLayer;
53
54
  }, execute: Private.createSymbologyDialog(tracker, state) }, icons.get(CommandIDs.symbology)));
@@ -83,7 +84,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
83
84
  const canIdentify = [
84
85
  'VectorLayer',
85
86
  'ShapefileLayer',
86
- 'WebGlLayer'
87
+ 'WebGlLayer',
87
88
  ].includes(selectedLayer.type);
88
89
  const isIdentifying = current.model.isIdentifying;
89
90
  if (isIdentifying && !canIdentify) {
@@ -164,23 +165,23 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
164
165
  /**
165
166
  * Source and layers
166
167
  */
167
- commands.addCommand(CommandIDs.newRasterEntry, Object.assign({ label: trans.__('New Raster Layer'), isEnabled: () => {
168
+ commands.addCommand(CommandIDs.newRasterEntry, Object.assign({ label: trans.__('New Raster Tile Layer'), isEnabled: () => {
168
169
  return tracker.currentWidget
169
170
  ? tracker.currentWidget.model.sharedModel.editable
170
171
  : false;
171
172
  }, execute: Private.createEntry({
172
173
  tracker,
173
174
  formSchemaRegistry,
174
- title: 'Create Raster Layer',
175
+ title: 'Create Raster Tile Layer',
175
176
  createLayer: true,
176
177
  createSource: true,
177
178
  sourceData: {
178
179
  minZoom: 0,
179
- maxZoom: 24
180
+ maxZoom: 24,
180
181
  },
181
- layerData: { name: 'Custom Raster Layer' },
182
+ layerData: { name: 'Custom Raster Tile Layer' },
182
183
  sourceType: 'RasterSource',
183
- layerType: 'RasterLayer'
184
+ layerType: 'RasterLayer',
184
185
  }) }, icons.get(CommandIDs.newRasterEntry)));
185
186
  commands.addCommand(CommandIDs.newVectorTileEntry, Object.assign({ label: trans.__('New Vector Tile Layer'), isEnabled: () => {
186
187
  return tracker.currentWidget
@@ -195,53 +196,8 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
195
196
  sourceData: { minZoom: 0, maxZoom: 24 },
196
197
  layerData: { name: 'Custom Vector Tile Layer' },
197
198
  sourceType: 'VectorTileSource',
198
- layerType: 'VectorTileLayer'
199
+ layerType: 'VectorTileLayer',
199
200
  }) }, icons.get(CommandIDs.newVectorTileEntry)));
200
- commands.addCommand(CommandIDs.buffer, {
201
- label: trans.__('Buffer'),
202
- isEnabled: () => selectedLayerIsOfType(['VectorLayer'], tracker),
203
- execute: async () => {
204
- await processSelectedLayer(tracker, formSchemaRegistry, 'Buffer', {
205
- sqlQueryFn: (layerName, bufferDistance) => `
206
- SELECT ST_Union(ST_Buffer(geometry, ${bufferDistance})) AS geometry, *
207
- FROM "${layerName}"
208
- `,
209
- gdalFunction: 'ogr2ogr',
210
- options: (sqlQuery) => [
211
- '-f',
212
- 'GeoJSON',
213
- '-dialect',
214
- 'SQLITE',
215
- '-sql',
216
- sqlQuery,
217
- 'output.geojson'
218
- ]
219
- }, app);
220
- }
221
- });
222
- commands.addCommand(CommandIDs.dissolve, {
223
- label: trans.__('Dissolve'),
224
- isEnabled: () => selectedLayerIsOfType(['VectorLayer'], tracker),
225
- execute: async () => {
226
- await processSelectedLayer(tracker, formSchemaRegistry, 'Dissolve', {
227
- sqlQueryFn: (layerName, dissolveField) => `
228
- SELECT ST_Union(geometry) AS geometry, ${dissolveField}
229
- FROM "${layerName}"
230
- GROUP BY ${dissolveField}
231
- `,
232
- gdalFunction: 'ogr2ogr',
233
- options: (sqlQuery) => [
234
- '-f',
235
- 'GeoJSON',
236
- '-dialect',
237
- 'SQLITE',
238
- '-sql',
239
- sqlQuery,
240
- 'output.geojson'
241
- ]
242
- }, app);
243
- }
244
- });
245
201
  commands.addCommand(CommandIDs.newGeoJSONEntry, Object.assign({ label: trans.__('New GeoJSON layer'), isEnabled: () => {
246
202
  return tracker.currentWidget
247
203
  ? tracker.currentWidget.model.sharedModel.editable
@@ -254,8 +210,10 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
254
210
  createSource: true,
255
211
  layerData: { name: 'Custom GeoJSON Layer' },
256
212
  sourceType: 'GeoJSONSource',
257
- layerType: 'VectorLayer'
213
+ layerType: 'VectorLayer',
258
214
  }) }, icons.get(CommandIDs.newGeoJSONEntry)));
215
+ //Add processing commands
216
+ addProcessingCommands(app, commands, tracker, trans, formSchemaRegistry);
259
217
  commands.addCommand(CommandIDs.newHillshadeEntry, Object.assign({ label: trans.__('New Hillshade layer'), isEnabled: () => {
260
218
  return tracker.currentWidget
261
219
  ? tracker.currentWidget.model.sharedModel.editable
@@ -268,7 +226,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
268
226
  createSource: true,
269
227
  layerData: { name: 'Custom Hillshade Layer' },
270
228
  sourceType: 'RasterDemSource',
271
- layerType: 'HillshadeLayer'
229
+ layerType: 'HillshadeLayer',
272
230
  }) }, icons.get(CommandIDs.newHillshadeEntry)));
273
231
  commands.addCommand(CommandIDs.newImageEntry, Object.assign({ label: trans.__('New Image layer'), isEnabled: () => {
274
232
  return tracker.currentWidget
@@ -287,12 +245,12 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
287
245
  [-80.425, 46.437],
288
246
  [-71.516, 46.437],
289
247
  [-71.516, 37.936],
290
- [-80.425, 37.936]
291
- ]
248
+ [-80.425, 37.936],
249
+ ],
292
250
  },
293
251
  layerData: { name: 'Custom Image Layer' },
294
252
  sourceType: 'ImageSource',
295
- layerType: 'ImageLayer'
253
+ layerType: 'ImageLayer',
296
254
  }) }, icons.get(CommandIDs.newImageEntry)));
297
255
  commands.addCommand(CommandIDs.newVideoEntry, Object.assign({ label: trans.__('New Video layer'), isEnabled: () => {
298
256
  return tracker.currentWidget
@@ -308,34 +266,19 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
308
266
  name: 'Custom Video Source',
309
267
  urls: [
310
268
  'https://static-assets.mapbox.com/mapbox-gl-js/drone.mp4',
311
- 'https://static-assets.mapbox.com/mapbox-gl-js/drone.webm'
269
+ 'https://static-assets.mapbox.com/mapbox-gl-js/drone.webm',
312
270
  ],
313
271
  coordinates: [
314
272
  [-122.51596391201019, 37.56238816766053],
315
273
  [-122.51467645168304, 37.56410183312965],
316
274
  [-122.51309394836426, 37.563391708549425],
317
- [-122.51423120498657, 37.56161849366671]
318
- ]
275
+ [-122.51423120498657, 37.56161849366671],
276
+ ],
319
277
  },
320
278
  layerData: { name: 'Custom Video Layer' },
321
279
  sourceType: 'VideoSource',
322
- layerType: 'RasterLayer'
280
+ layerType: 'RasterLayer',
323
281
  }) }, icons.get(CommandIDs.newVideoEntry)));
324
- commands.addCommand(CommandIDs.newShapefileSource, Object.assign({ label: args => args.from === 'contextMenu'
325
- ? trans.__('Shapefile')
326
- : trans.__('Add Shapefile Source'), isEnabled: () => {
327
- return tracker.currentWidget
328
- ? tracker.currentWidget.model.sharedModel.editable
329
- : false;
330
- }, execute: Private.createEntry({
331
- tracker,
332
- formSchemaRegistry,
333
- title: 'Create Shapefile Source',
334
- createLayer: false,
335
- createSource: true,
336
- sourceData: { name: 'Custom Shapefile Source' },
337
- sourceType: 'ShapefileSource'
338
- }) }, icons.get(CommandIDs.newShapefileSource)));
339
282
  commands.addCommand(CommandIDs.newGeoTiffEntry, Object.assign({ label: trans.__('New GeoTiff layer'), isEnabled: () => {
340
283
  return tracker.currentWidget
341
284
  ? tracker.currentWidget.model.sharedModel.editable
@@ -348,197 +291,13 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
348
291
  createSource: true,
349
292
  sourceData: {
350
293
  name: 'Custom GeoTiff Source',
351
- urls: [{}]
294
+ urls: [{}],
352
295
  },
353
296
  layerData: { name: 'Custom GeoTiff Layer' },
354
297
  sourceType: 'GeoTiffSource',
355
- layerType: 'WebGlLayer'
298
+ layerType: 'WebGlLayer',
356
299
  }) }, icons.get(CommandIDs.newGeoTiffEntry)));
357
- /**
358
- * SOURCES only commands.
359
- */
360
- commands.addCommand(CommandIDs.newRasterSource, Object.assign({ label: args => args.from === 'contextMenu'
361
- ? trans.__('Raster')
362
- : trans.__('New Raster Source'), isEnabled: () => {
363
- return tracker.currentWidget
364
- ? tracker.currentWidget.model.sharedModel.editable
365
- : false;
366
- }, execute: Private.createEntry({
367
- tracker,
368
- formSchemaRegistry,
369
- title: 'Create Raster Source',
370
- createLayer: false,
371
- createSource: true,
372
- sourceData: { name: 'Custom Raster Source', minZoom: 0, maxZoom: 24 },
373
- sourceType: 'RasterSource'
374
- }) }, icons.get(CommandIDs.newRasterSource)));
375
- commands.addCommand(CommandIDs.newRasterDemSource, Object.assign({ label: args => args.from === 'contextMenu'
376
- ? trans.__('Raster DEM')
377
- : trans.__('New Raster DEM Source'), isEnabled: () => {
378
- return tracker.currentWidget
379
- ? tracker.currentWidget.model.sharedModel.editable
380
- : false;
381
- }, execute: Private.createEntry({
382
- tracker,
383
- formSchemaRegistry,
384
- title: 'Create Raster Dem Source',
385
- createLayer: false,
386
- createSource: true,
387
- sourceData: { name: 'Custom Raster DEM Source' },
388
- sourceType: 'RasterDemSource'
389
- }) }, icons.get(CommandIDs.newRasterDemSource)));
390
- commands.addCommand(CommandIDs.newVectorSource, Object.assign({ label: args => args.from === 'contextMenu'
391
- ? trans.__('Vector')
392
- : trans.__('New Vector Source'), isEnabled: () => {
393
- return tracker.currentWidget
394
- ? tracker.currentWidget.model.sharedModel.editable
395
- : false;
396
- }, execute: Private.createEntry({
397
- tracker,
398
- formSchemaRegistry,
399
- title: 'Create Vector Source',
400
- createLayer: false,
401
- createSource: true,
402
- sourceData: { name: 'Custom Vector Source', minZoom: 0, maxZoom: 24 },
403
- sourceType: 'VectorTileSource'
404
- }) }, icons.get(CommandIDs.newVectorSource)));
405
- commands.addCommand(CommandIDs.newGeoJSONSource, Object.assign({ label: args => args.from === 'contextMenu'
406
- ? trans.__('GeoJSON')
407
- : trans.__('Add GeoJSON data from file'), isEnabled: () => {
408
- return tracker.currentWidget
409
- ? tracker.currentWidget.model.sharedModel.editable
410
- : false;
411
- }, execute: Private.createEntry({
412
- tracker,
413
- formSchemaRegistry,
414
- title: 'Create GeoJson Source',
415
- createLayer: false,
416
- createSource: true,
417
- sourceData: { name: 'Custom GeoJSON Source' },
418
- sourceType: 'GeoJSONSource'
419
- }) }, icons.get(CommandIDs.newGeoJSONSource)));
420
- commands.addCommand(CommandIDs.newImageSource, Object.assign({ label: args => args.from === 'contextMenu'
421
- ? trans.__('Image')
422
- : trans.__('Add Image Source'), isEnabled: () => {
423
- return tracker.currentWidget
424
- ? tracker.currentWidget.model.sharedModel.editable
425
- : false;
426
- }, execute: Private.createEntry({
427
- tracker,
428
- formSchemaRegistry,
429
- title: 'Create Image Source',
430
- createLayer: false,
431
- createSource: true,
432
- sourceData: { name: 'Custom Image Source' },
433
- sourceType: 'ImageSource'
434
- }) }, icons.get(CommandIDs.newImageSource)));
435
- commands.addCommand(CommandIDs.newVideoSource, Object.assign({ label: args => args.from === 'contextMenu'
436
- ? trans.__('Video')
437
- : trans.__('Add Video Source'), isEnabled: () => {
438
- return tracker.currentWidget
439
- ? tracker.currentWidget.model.sharedModel.editable
440
- : false;
441
- }, execute: Private.createEntry({
442
- tracker,
443
- formSchemaRegistry,
444
- title: 'Create Video Source',
445
- createLayer: false,
446
- createSource: true,
447
- sourceData: { name: 'Custom Video Source' },
448
- sourceType: 'VideoSource'
449
- }) }, icons.get(CommandIDs.newVideoSource)));
450
- // Layers only
451
- commands.addCommand(CommandIDs.newRasterLayer, Object.assign({ label: args => args.from === 'contextMenu'
452
- ? trans.__('Raster')
453
- : trans.__('Add Raster layer'), isEnabled: () => {
454
- return tracker.currentWidget
455
- ? tracker.currentWidget.model.sharedModel.editable
456
- : false;
457
- }, execute: Private.createEntry({
458
- tracker,
459
- formSchemaRegistry,
460
- title: 'Create Raster Layer',
461
- createLayer: true,
462
- createSource: false,
463
- layerData: {
464
- name: 'Custom Raster Layer'
465
- },
466
- sourceType: 'RasterSource',
467
- layerType: 'RasterLayer'
468
- }) }, icons.get(CommandIDs.newVectorLayer)));
469
- commands.addCommand(CommandIDs.newVectorLayer, Object.assign({ label: args => args.from === 'contextMenu'
470
- ? trans.__('Vector')
471
- : trans.__('Add New Vector layer'), isEnabled: () => {
472
- return tracker.currentWidget
473
- ? tracker.currentWidget.model.sharedModel.editable
474
- : false;
475
- }, execute: Private.createEntry({
476
- tracker,
477
- formSchemaRegistry,
478
- title: 'Create Vector Layer',
479
- createLayer: true,
480
- createSource: false,
481
- layerData: {
482
- name: 'Custom Vector Layer'
483
- },
484
- sourceType: 'VectorTileSource',
485
- layerType: 'VectorTileLayer'
486
- }) }, icons.get(CommandIDs.newVectorLayer)));
487
- commands.addCommand(CommandIDs.newHillshadeLayer, Object.assign({ label: args => args.from === 'contextMenu'
488
- ? trans.__('Hillshade')
489
- : trans.__('Add Hillshade layer'), isEnabled: () => {
490
- return tracker.currentWidget
491
- ? tracker.currentWidget.model.sharedModel.editable
492
- : false;
493
- }, execute: Private.createEntry({
494
- tracker,
495
- formSchemaRegistry,
496
- title: 'Create Hillshade Layer',
497
- createLayer: true,
498
- createSource: false,
499
- layerData: {
500
- name: 'Custom Hillshade Layer'
501
- },
502
- sourceType: 'RasterDemSource',
503
- layerType: 'HillshadeLayer'
504
- }) }, icons.get(CommandIDs.newHillshadeLayer)));
505
- commands.addCommand(CommandIDs.newImageLayer, Object.assign({ label: args => args.from === 'contextMenu'
506
- ? trans.__('Image')
507
- : trans.__('Add Image layer'), isEnabled: () => {
508
- return tracker.currentWidget
509
- ? tracker.currentWidget.model.sharedModel.editable
510
- : false;
511
- }, execute: Private.createEntry({
512
- tracker,
513
- formSchemaRegistry,
514
- title: 'Create Image Layer',
515
- createLayer: true,
516
- createSource: false,
517
- layerData: {
518
- name: 'Custom Image Layer'
519
- },
520
- sourceType: 'ImageSource',
521
- layerType: 'RasterLayer'
522
- }) }, icons.get(CommandIDs.newImageLayer)));
523
- commands.addCommand(CommandIDs.newVideoLayer, Object.assign({ label: args => args.from === 'contextMenu'
524
- ? trans.__('Video')
525
- : trans.__('Add Video layer'), isEnabled: () => {
526
- return tracker.currentWidget
527
- ? tracker.currentWidget.model.sharedModel.editable
528
- : false;
529
- }, execute: Private.createEntry({
530
- tracker,
531
- formSchemaRegistry,
532
- title: 'Create Video Layer',
533
- createLayer: true,
534
- createSource: false,
535
- layerData: {
536
- name: 'Custom Video Layer'
537
- },
538
- sourceType: 'VideoSource',
539
- layerType: 'RasterLayer'
540
- }) }, icons.get(CommandIDs.newVideoLayer)));
541
- commands.addCommand(CommandIDs.newShapefileLayer, Object.assign({ label: trans.__('New Shapefile Layer'), isEnabled: () => {
300
+ commands.addCommand(CommandIDs.newShapefileEntry, Object.assign({ label: trans.__('New Shapefile Layer'), isEnabled: () => {
542
301
  return tracker.currentWidget
543
302
  ? tracker.currentWidget.model.sharedModel.editable
544
303
  : false;
@@ -551,24 +310,8 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
551
310
  sourceData: { name: 'Custom Shapefile Source' },
552
311
  layerData: { name: 'Custom Shapefile Layer' },
553
312
  sourceType: 'ShapefileSource',
554
- layerType: 'VectorLayer'
555
- }) }, icons.get(CommandIDs.newShapefileLayer)));
556
- commands.addCommand(CommandIDs.newHeatmapLayer, Object.assign({ label: args => args.from === 'contextMenu'
557
- ? trans.__('Heatmap')
558
- : trans.__('Add HeatmapLayer'), isEnabled: () => {
559
- return tracker.currentWidget
560
- ? tracker.currentWidget.model.sharedModel.editable
561
- : false;
562
- }, execute: Private.createEntry({
563
- tracker,
564
- formSchemaRegistry,
565
- title: 'Create Heatmap Layer',
566
- createLayer: true,
567
- createSource: false,
568
- layerData: { name: 'Custom Heatmap Layer' },
569
- sourceType: 'GeoJSONSource',
570
- layerType: 'HeatmapLayer'
571
- }) }, icons.get(CommandIDs.newHeatmapLayer)));
313
+ layerType: 'VectorLayer',
314
+ }) }, icons.get(CommandIDs.newShapefileEntry)));
572
315
  /**
573
316
  * LAYERS and LAYER GROUP actions.
574
317
  */
@@ -584,7 +327,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
584
327
  model === null || model === void 0 ? void 0 : model.sharedModel.updateLayer(layerId, layer);
585
328
  }
586
329
  });
587
- }
330
+ },
588
331
  });
589
332
  commands.addCommand(CommandIDs.removeLayer, {
590
333
  label: trans.__('Remove Layer'),
@@ -594,7 +337,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
594
337
  Private.removeSelectedItems(model, 'layer', selection => {
595
338
  model === null || model === void 0 ? void 0 : model.removeLayer(selection);
596
339
  });
597
- }
340
+ },
598
341
  });
599
342
  commands.addCommand(CommandIDs.renameGroup, {
600
343
  label: trans.__('Rename Group'),
@@ -604,7 +347,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
604
347
  await Private.renameSelectedItem(model, 'group', (groupName, newName) => {
605
348
  model === null || model === void 0 ? void 0 : model.renameLayerGroup(groupName, newName);
606
349
  });
607
- }
350
+ },
608
351
  });
609
352
  commands.addCommand(CommandIDs.removeGroup, {
610
353
  label: trans.__('Remove Group'),
@@ -614,7 +357,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
614
357
  Private.removeSelectedItems(model, 'group', selection => {
615
358
  model === null || model === void 0 ? void 0 : model.removeLayerGroup(selection);
616
359
  });
617
- }
360
+ },
618
361
  });
619
362
  commands.addCommand(CommandIDs.moveLayersToGroup, {
620
363
  label: args => args['label'] ? args['label'] : trans.__('Move to Root'),
@@ -627,7 +370,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
627
370
  return;
628
371
  }
629
372
  model.moveItemsToGroup(Object.keys(selectedLayers), groupName);
630
- }
373
+ },
631
374
  });
632
375
  commands.addCommand(CommandIDs.moveLayerToNewGroup, {
633
376
  label: trans.__('Move Selected Layers to New Group'),
@@ -678,10 +421,10 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
678
421
  });
679
422
  const newLayerGroup = {
680
423
  name: newName,
681
- layers: layers
424
+ layers: layers,
682
425
  };
683
426
  model.addNewLayerGroup(selectedLayers, newLayerGroup);
684
- }
427
+ },
685
428
  });
686
429
  /**
687
430
  * Source actions
@@ -698,7 +441,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
698
441
  model === null || model === void 0 ? void 0 : model.sharedModel.updateSource(sourceId, source);
699
442
  }
700
443
  });
701
- }
444
+ },
702
445
  });
703
446
  commands.addCommand(CommandIDs.removeSource, {
704
447
  label: trans.__('Remove Source'),
@@ -714,7 +457,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
714
457
  showErrorMessage('Remove source error', 'The source is used by a layer.');
715
458
  }
716
459
  });
717
- }
460
+ },
718
461
  });
719
462
  // Console commands
720
463
  commands.addCommand(CommandIDs.toggleConsole, {
@@ -725,7 +468,19 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
725
468
  ? tracker.currentWidget.model.sharedModel.editable
726
469
  : false;
727
470
  },
728
- execute: async () => await Private.toggleConsole(tracker)
471
+ isToggled: () => {
472
+ var _a;
473
+ if (tracker.currentWidget instanceof JupyterGISDocumentWidget) {
474
+ return ((_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.content.consoleOpened) === true;
475
+ }
476
+ else {
477
+ return false;
478
+ }
479
+ },
480
+ execute: async () => {
481
+ await Private.toggleConsole(tracker);
482
+ commands.notifyCommandChanged(CommandIDs.toggleConsole);
483
+ },
729
484
  });
730
485
  commands.addCommand(CommandIDs.executeConsole, {
731
486
  label: trans.__('Execute console'),
@@ -735,7 +490,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
735
490
  ? tracker.currentWidget.model.sharedModel.editable
736
491
  : false;
737
492
  },
738
- execute: () => Private.executeConsole(tracker)
493
+ execute: () => Private.executeConsole(tracker),
739
494
  });
740
495
  commands.addCommand(CommandIDs.removeConsole, {
741
496
  label: trans.__('Remove console'),
@@ -745,7 +500,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
745
500
  ? tracker.currentWidget.model.sharedModel.editable
746
501
  : false;
747
502
  },
748
- execute: () => Private.removeConsole(tracker)
503
+ execute: () => Private.removeConsole(tracker),
749
504
  });
750
505
  commands.addCommand(CommandIDs.invokeCompleter, {
751
506
  label: trans.__('Display the completion helper.'),
@@ -762,7 +517,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
762
517
  if (id) {
763
518
  return completionProviderManager.invoke(id);
764
519
  }
765
- }
520
+ },
766
521
  });
767
522
  commands.addCommand(CommandIDs.selectCompleter, {
768
523
  label: trans.__('Select the completion suggestion.'),
@@ -779,7 +534,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
779
534
  if (id) {
780
535
  return completionProviderManager.select(id);
781
536
  }
782
- }
537
+ },
783
538
  });
784
539
  commands.addCommand(CommandIDs.zoomToLayer, {
785
540
  label: trans.__('Zoom to Layer'),
@@ -797,7 +552,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
797
552
  }
798
553
  const layerId = Object.keys(selectedItems)[0];
799
554
  model.centerOnPosition(layerId);
800
- }
555
+ },
801
556
  });
802
557
  commands.addCommand(CommandIDs.downloadGeoJSON, {
803
558
  label: trans.__('Download as GeoJSON'),
@@ -815,7 +570,9 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
815
570
  }
816
571
  const model = (_a = tracker.currentWidget) === null || _a === void 0 ? void 0 : _a.model;
817
572
  const sources = (_b = model.sharedModel.sources) !== null && _b !== void 0 ? _b : {};
818
- const exportSchema = Object.assign({}, formSchemaRegistry.getSchemas().get('ExportGeoJSONSchema'));
573
+ const exportSchema = Object.assign({}, formSchemaRegistry
574
+ .getSchemas()
575
+ .get('ExportGeoJSONSchema'));
819
576
  const formValues = await new Promise(resolve => {
820
577
  const dialog = new ProcessingFormDialog({
821
578
  title: 'Download GeoJSON',
@@ -827,7 +584,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
827
584
  syncData: (props) => {
828
585
  resolve(props);
829
586
  dialog.dispose();
830
- }
587
+ },
831
588
  });
832
589
  dialog.launch();
833
590
  });
@@ -842,7 +599,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
842
599
  return;
843
600
  }
844
601
  downloadFile(geojsonString, `${exportFileName}.geojson`, 'application/geo+json');
845
- }
602
+ },
846
603
  });
847
604
  commands.addCommand(CommandIDs.getGeolocation, {
848
605
  label: trans.__('Center on Geolocation'),
@@ -852,16 +609,16 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
852
609
  const options = {
853
610
  enableHighAccuracy: true,
854
611
  timeout: 5000,
855
- maximumAge: 0
612
+ maximumAge: 0,
856
613
  };
857
614
  const success = (pos) => {
858
615
  const location = fromLonLat([
859
616
  pos.coords.longitude,
860
- pos.coords.latitude
617
+ pos.coords.latitude,
861
618
  ]);
862
619
  const Jgislocation = {
863
620
  x: location[0],
864
- y: location[1]
621
+ y: location[1],
865
622
  };
866
623
  if (viewModel) {
867
624
  viewModel.geolocationChanged.emit(Jgislocation);
@@ -872,7 +629,7 @@ export function addCommands(app, tracker, translator, formSchemaRegistry, layerB
872
629
  };
873
630
  navigator.geolocation.getCurrentPosition(success, error, options);
874
631
  },
875
- icon: targetWithCenterIcon
632
+ icon: targetWithCenterIcon,
876
633
  });
877
634
  loadKeybindings(commands, keybindings);
878
635
  }
@@ -887,7 +644,7 @@ var Private;
887
644
  const dialog = new LayerBrowserWidget({
888
645
  model: current.model,
889
646
  registry: layerBrowserRegistry.getRegistryLayers(),
890
- formSchemaRegistry
647
+ formSchemaRegistry,
891
648
  });
892
649
  await dialog.launch();
893
650
  };
@@ -901,13 +658,13 @@ var Private;
901
658
  }
902
659
  const dialog = new SymbologyWidget({
903
660
  model: current.model,
904
- state
661
+ state,
905
662
  });
906
663
  await dialog.launch();
907
664
  };
908
665
  }
909
666
  Private.createSymbologyDialog = createSymbologyDialog;
910
- function createEntry({ tracker, formSchemaRegistry, title, createLayer, createSource, sourceData, layerData, sourceType, layerType }) {
667
+ function createEntry({ tracker, formSchemaRegistry, title, createLayer, createSource, sourceData, layerData, sourceType, layerType, }) {
911
668
  return async () => {
912
669
  const current = tracker.currentWidget;
913
670
  if (!current) {
@@ -922,7 +679,7 @@ var Private;
922
679
  sourceType,
923
680
  layerData,
924
681
  layerType,
925
- formSchemaRegistry
682
+ formSchemaRegistry,
926
683
  });
927
684
  await dialog.launch();
928
685
  };
@@ -1,9 +1,9 @@
1
+ import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
1
2
  import { ConsolePanel } from '@jupyterlab/console';
2
- import { ServiceManager } from '@jupyterlab/services';
3
- import { BoxPanel, Widget } from '@lumino/widgets';
4
3
  import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
5
- import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
4
+ import { ServiceManager } from '@jupyterlab/services';
6
5
  import { CommandRegistry } from '@lumino/commands';
6
+ import { BoxPanel, Widget } from '@lumino/widgets';
7
7
  export declare class ConsoleView extends BoxPanel {
8
8
  constructor(options: ConsoleView.IOptions);
9
9
  get consolePanel(): ConsolePanel;