@jupytergis/base 0.2.1 → 0.4.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 (95) hide show
  1. package/lib/annotations/components/Annotation.js +2 -2
  2. package/lib/annotations/model.d.ts +6 -7
  3. package/lib/annotations/model.js +15 -15
  4. package/lib/commands.d.ts +2 -3
  5. package/lib/commands.js +146 -62
  6. package/lib/constants.d.ts +3 -0
  7. package/lib/constants.js +5 -1
  8. package/lib/dialogs/formdialog.d.ts +5 -0
  9. package/lib/dialogs/formdialog.js +2 -2
  10. package/lib/dialogs/layerBrowserDialog.d.ts +4 -5
  11. package/lib/dialogs/layerBrowserDialog.js +9 -9
  12. package/lib/dialogs/symbology/components/color_ramp/ModeSelectRow.js +2 -1
  13. package/lib/dialogs/symbology/hooks/useGetBandInfo.d.ts +26 -0
  14. package/lib/dialogs/symbology/hooks/useGetBandInfo.js +64 -0
  15. package/lib/dialogs/symbology/hooks/useGetProperties.d.ts +1 -1
  16. package/lib/dialogs/symbology/hooks/useGetProperties.js +12 -9
  17. package/lib/dialogs/symbology/symbologyDialog.d.ts +2 -3
  18. package/lib/dialogs/symbology/symbologyDialog.js +10 -9
  19. package/lib/dialogs/symbology/tiff_layer/TiffRendering.d.ts +1 -1
  20. package/lib/dialogs/symbology/tiff_layer/TiffRendering.js +16 -3
  21. package/lib/dialogs/symbology/tiff_layer/components/BandRow.d.ts +16 -3
  22. package/lib/dialogs/symbology/tiff_layer/components/BandRow.js +21 -7
  23. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.d.ts +4 -0
  24. package/lib/dialogs/symbology/tiff_layer/types/MultibandColor.js +85 -0
  25. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.d.ts +1 -20
  26. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.js +25 -65
  27. package/lib/dialogs/symbology/vector_layer/VectorRendering.d.ts +1 -1
  28. package/lib/dialogs/symbology/vector_layer/VectorRendering.js +18 -13
  29. package/lib/dialogs/symbology/vector_layer/types/Categorized.d.ts +1 -1
  30. package/lib/dialogs/symbology/vector_layer/types/Categorized.js +30 -19
  31. package/lib/dialogs/symbology/vector_layer/types/Graduated.d.ts +1 -1
  32. package/lib/dialogs/symbology/vector_layer/types/Graduated.js +16 -13
  33. package/lib/dialogs/symbology/vector_layer/types/Heatmap.d.ts +4 -0
  34. package/lib/dialogs/symbology/vector_layer/types/Heatmap.js +77 -0
  35. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.d.ts +1 -1
  36. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.js +4 -3
  37. package/lib/formbuilder/creationform.d.ts +6 -2
  38. package/lib/formbuilder/creationform.js +6 -6
  39. package/lib/formbuilder/editform.d.ts +2 -2
  40. package/lib/formbuilder/editform.js +14 -9
  41. package/lib/formbuilder/formselectors.js +11 -1
  42. package/lib/formbuilder/objectform/baseform.d.ts +12 -3
  43. package/lib/formbuilder/objectform/baseform.js +39 -0
  44. package/lib/formbuilder/objectform/fileselectorwidget.d.ts +2 -0
  45. package/lib/formbuilder/objectform/fileselectorwidget.js +88 -0
  46. package/lib/formbuilder/objectform/geojsonsource.d.ts +5 -7
  47. package/lib/formbuilder/objectform/geojsonsource.js +8 -24
  48. package/lib/formbuilder/objectform/geotiffsource.d.ts +5 -1
  49. package/lib/formbuilder/objectform/geotiffsource.js +64 -18
  50. package/lib/formbuilder/objectform/heatmapLayerForm.d.ts +11 -0
  51. package/lib/formbuilder/objectform/heatmapLayerForm.js +60 -0
  52. package/lib/formbuilder/objectform/layerform.d.ts +2 -0
  53. package/lib/formbuilder/objectform/layerform.js +6 -0
  54. package/lib/formbuilder/objectform/pathbasedsource.d.ts +19 -0
  55. package/lib/formbuilder/objectform/pathbasedsource.js +98 -0
  56. package/lib/formbuilder/objectform/vectorlayerform.d.ts +0 -2
  57. package/lib/formbuilder/objectform/vectorlayerform.js +0 -59
  58. package/lib/icons.d.ts +1 -0
  59. package/lib/icons.js +5 -0
  60. package/lib/keybindings.json +62 -0
  61. package/lib/mainview/TemporalSlider.d.ts +8 -0
  62. package/lib/mainview/TemporalSlider.js +303 -0
  63. package/lib/mainview/mainView.d.ts +46 -8
  64. package/lib/mainview/mainView.js +431 -144
  65. package/lib/mainview/mainviewmodel.d.ts +4 -0
  66. package/lib/mainview/mainviewmodel.js +4 -0
  67. package/lib/mainview/mainviewwidget.d.ts +0 -2
  68. package/lib/mainview/mainviewwidget.js +0 -2
  69. package/lib/panelview/annotationPanel.js +5 -5
  70. package/lib/panelview/components/filter-panel/Filter.js +8 -24
  71. package/lib/panelview/components/identify-panel/IdentifyPanel.js +1 -1
  72. package/lib/panelview/components/layers.js +2 -2
  73. package/lib/panelview/components/sources.js +1 -1
  74. package/lib/panelview/leftpanel.d.ts +3 -0
  75. package/lib/panelview/leftpanel.js +5 -1
  76. package/lib/panelview/model.js +8 -8
  77. package/lib/panelview/objectproperties.js +10 -10
  78. package/lib/panelview/rightpanel.d.ts +1 -1
  79. package/lib/panelview/rightpanel.js +10 -10
  80. package/lib/statusbar/StatusBar.d.ts +13 -0
  81. package/lib/statusbar/StatusBar.js +52 -0
  82. package/lib/toolbar/widget.d.ts +1 -1
  83. package/lib/toolbar/widget.js +44 -37
  84. package/lib/tools.d.ts +50 -7
  85. package/lib/tools.js +394 -12
  86. package/lib/types.d.ts +2 -0
  87. package/lib/widget.d.ts +29 -5
  88. package/lib/widget.js +41 -7
  89. package/package.json +17 -5
  90. package/style/base.css +11 -0
  91. package/style/icons/logo_mini_qgz.svg +31 -0
  92. package/style/leftPanel.css +8 -0
  93. package/style/statusBar.css +16 -0
  94. package/style/symbologyDialog.css +7 -1
  95. package/style/temporalSlider.css +47 -0
@@ -1,9 +1,9 @@
1
- import { IAnnotation, IDict, IJGISLayer, IJGISSource } from '@jupytergis/schema';
1
+ import { IAnnotation, IDict, IJGISFilterItem, IJGISLayer, IJGISSource } from '@jupytergis/schema';
2
2
  import { User } from '@jupyterlab/services';
3
- import BaseLayer from 'ol/layer/Base';
3
+ import { Layer } from 'ol/layer';
4
4
  import * as React from 'react';
5
- import { MainViewModel } from './mainviewmodel';
6
5
  import { ClientPointer } from './CollaboratorPointers';
6
+ import { MainViewModel } from './mainviewmodel';
7
7
  interface IProps {
8
8
  viewModel: MainViewModel;
9
9
  }
@@ -15,15 +15,27 @@ interface IStates {
15
15
  firstLoad: boolean;
16
16
  annotations: IDict<IAnnotation>;
17
17
  clientPointers: IDict<ClientPointer>;
18
+ viewProjection: {
19
+ code: string;
20
+ units: string;
21
+ };
22
+ loadingLayer: boolean;
23
+ scale: number;
24
+ loadingErrors: Array<{
25
+ id: string;
26
+ error: any;
27
+ index: number;
28
+ }>;
29
+ displayTemporalController: boolean;
30
+ filterStates: IDict<IJGISFilterItem | undefined>;
18
31
  }
19
32
  export declare class MainView extends React.Component<IProps, IStates> {
20
33
  constructor(props: IProps);
21
34
  componentDidMount(): Promise<void>;
22
35
  componentWillUnmount(): void;
23
36
  generateScene(): Promise<void>;
37
+ createSelectInteraction: () => void;
24
38
  addContextMenu: () => void;
25
- private _loadShapefileAsGeoJSON;
26
- private _loadGeoTIFFWithCache;
27
39
  /**
28
40
  * Add a source in the map.
29
41
  *
@@ -66,6 +78,7 @@ export declare class MainView extends React.Component<IProps, IStates> {
66
78
  * @returns - the map layer.
67
79
  */
68
80
  private _buildMapLayer;
81
+ addProjection(newMapLayer: Layer): void;
69
82
  /**
70
83
  * Add a layer to the map.
71
84
  *
@@ -90,7 +103,22 @@ export declare class MainView extends React.Component<IProps, IStates> {
90
103
  * @param id - id of the layer.
91
104
  * @param layer - the layer object.
92
105
  */
93
- updateLayer(id: string, layer: IJGISLayer, mapLayer: BaseLayer): Promise<void>;
106
+ updateLayer(id: string, layer: IJGISLayer, mapLayer: Layer, oldLayer?: IDict): Promise<void>;
107
+ /**
108
+ * Heatmap layers don't work with style based filtering.
109
+ * This modifies the features in the underlying source
110
+ * to work with the temporal controller
111
+ */
112
+ handleTemporalController: (id: string, layer: IJGISLayer) => void;
113
+ /**
114
+ * Wait for all layers to be loaded.
115
+ */
116
+ private _waitForReady;
117
+ /**
118
+ * Wait for a layers source state to be 'ready'
119
+ * @param layer The Layer to check
120
+ */
121
+ private _waitForSourceReady;
94
122
  /**
95
123
  * Remove a layer from the map.
96
124
  *
@@ -122,6 +150,12 @@ export declare class MainView extends React.Component<IProps, IStates> {
122
150
  * @param index - expected index of the layer.
123
151
  */
124
152
  moveLayer(id: string, index: number): void;
153
+ /**
154
+ * Remove and recreate layer
155
+ * @param id ID of layer being replaced
156
+ * @param layer New layer to replace with
157
+ */
158
+ replaceLayer(id: string, layer: IJGISLayer): void;
125
159
  private _onLayersChanged;
126
160
  private _onLayerTreeChange;
127
161
  private _onSourcesChange;
@@ -129,17 +163,19 @@ export declare class MainView extends React.Component<IProps, IStates> {
129
163
  private _onSharedMetadataChanged;
130
164
  private _computeAnnotationPosition;
131
165
  private _updateAnnotation;
132
- private _onZoomToAnnotation;
166
+ private _onZoomToPosition;
133
167
  private _moveToPosition;
134
168
  private _onPointerMove;
135
169
  private _syncPointer;
136
170
  private _identifyFeature;
171
+ private _triggerLayerUpdate;
172
+ private _convertFeatureToMs;
137
173
  private _handleThemeChange;
138
174
  private _handleWindowResize;
139
175
  render(): JSX.Element;
140
176
  private _clickCoords;
141
177
  private _commands;
142
- private _initializedPosition;
178
+ private _isPositionInitialized;
143
179
  private divRef;
144
180
  private _Map;
145
181
  private _model;
@@ -149,5 +185,7 @@ export declare class MainView extends React.Component<IProps, IStates> {
149
185
  private _sourceToLayerMap;
150
186
  private _documentPath?;
151
187
  private _contextMenu;
188
+ private _loadingLayers;
189
+ private _originalFeatures;
152
190
  }
153
191
  export {};