@jupytergis/base 0.14.0 → 0.15.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 (62) hide show
  1. package/lib/commands/BaseCommandIDs.d.ts +1 -1
  2. package/lib/commands/BaseCommandIDs.js +1 -1
  3. package/lib/commands/index.js +28 -34
  4. package/lib/constants.js +1 -0
  5. package/lib/dialogs/symbology/classificationModes.js +12 -16
  6. package/lib/dialogs/symbology/colorRampUtils.d.ts +47 -3
  7. package/lib/dialogs/symbology/colorRampUtils.js +112 -13
  8. package/lib/dialogs/symbology/components/color_ramp/ColorRampSelector.js +6 -14
  9. package/lib/dialogs/symbology/components/color_ramp/ColorRampSelectorEntry.d.ts +2 -2
  10. package/lib/dialogs/symbology/components/color_ramp/ColorRampSelectorEntry.js +3 -11
  11. package/lib/dialogs/symbology/components/color_ramp/RgbaColorPicker.d.ts +13 -0
  12. package/lib/dialogs/symbology/components/color_ramp/RgbaColorPicker.js +98 -0
  13. package/lib/dialogs/symbology/components/color_stops/StopContainer.js +3 -1
  14. package/lib/dialogs/symbology/components/color_stops/StopRow.d.ts +1 -1
  15. package/lib/dialogs/symbology/components/color_stops/StopRow.js +12 -7
  16. package/lib/dialogs/symbology/symbologyDialog.d.ts +2 -1
  17. package/lib/dialogs/symbology/symbologyUtils.d.ts +2 -2
  18. package/lib/dialogs/symbology/symbologyUtils.js +58 -40
  19. package/lib/dialogs/symbology/tiff_layer/types/SingleBandPseudoColor.js +14 -2
  20. package/lib/dialogs/symbology/vector_layer/VectorRendering.js +6 -5
  21. package/lib/dialogs/symbology/vector_layer/components/ValueSelect.js +3 -1
  22. package/lib/dialogs/symbology/vector_layer/types/Canonical.js +70 -5
  23. package/lib/dialogs/symbology/vector_layer/types/Categorized.js +81 -34
  24. package/lib/dialogs/symbology/vector_layer/types/Graduated.js +155 -43
  25. package/lib/dialogs/symbology/vector_layer/types/SimpleSymbol.js +31 -16
  26. package/lib/formbuilder/formselectors.js +4 -1
  27. package/lib/formbuilder/objectform/components/WmsTileSourceUrlInput.d.ts +3 -0
  28. package/lib/formbuilder/objectform/components/WmsTileSourceUrlInput.js +84 -0
  29. package/lib/formbuilder/objectform/source/index.d.ts +1 -0
  30. package/lib/formbuilder/objectform/source/index.js +1 -0
  31. package/lib/formbuilder/objectform/source/wmsTileSource.d.ts +4 -0
  32. package/lib/formbuilder/objectform/source/wmsTileSource.js +78 -0
  33. package/lib/formbuilder/objectform/useSchemaFormState.d.ts +1 -1
  34. package/lib/mainview/mainView.d.ts +3 -1
  35. package/lib/mainview/mainView.js +170 -23
  36. package/lib/menus.js +4 -0
  37. package/lib/panelview/components/layers.js +19 -2
  38. package/lib/panelview/components/legendItem.js +14 -4
  39. package/lib/panelview/filter-panel/Filter.d.ts +3 -0
  40. package/lib/panelview/filter-panel/Filter.js +9 -9
  41. package/lib/panelview/leftpanel.js +0 -7
  42. package/lib/panelview/story-maps/SpectaPanel.js +2 -2
  43. package/lib/panelview/story-maps/StoryViewerPanel.d.ts +1 -2
  44. package/lib/panelview/story-maps/StoryViewerPanel.js +1 -1
  45. package/lib/panelview/story-maps/components/SpectaDesktopView.d.ts +2 -1
  46. package/lib/panelview/story-maps/components/SpectaDesktopView.js +4 -4
  47. package/lib/panelview/story-maps/hooks/useStoryMap.d.ts +1 -0
  48. package/lib/panelview/story-maps/hooks/useStoryMap.js +3 -0
  49. package/lib/stacBrowser/components/filter-extension/QueryableComboBox.js +61 -20
  50. package/lib/stacBrowser/hooks/useStacFilterExtension.d.ts +1 -1
  51. package/lib/stacBrowser/hooks/useStacFilterExtension.js +195 -111
  52. package/lib/stacBrowser/hooks/useStacSearch.d.ts +1 -0
  53. package/lib/stacBrowser/hooks/useStacSearch.js +18 -10
  54. package/lib/tools.d.ts +1 -1
  55. package/lib/tools.js +3 -3
  56. package/lib/types.d.ts +7 -1
  57. package/package.json +5 -2
  58. package/style/shared/button.css +2 -5
  59. package/style/shared/input.css +2 -2
  60. package/style/shared/tabs.css +2 -2
  61. package/style/storyPanel.css +7 -0
  62. package/style/symbologyDialog.css +45 -1
package/lib/types.d.ts CHANGED
@@ -6,7 +6,7 @@ import { Map } from 'ol';
6
6
  export { IDict };
7
7
  export type ValueOf<T> = T[keyof T];
8
8
  export type JupyterGISTracker = WidgetTracker<IJupyterGISWidget>;
9
- export type SymbologyTab = 'color' | 'radius';
9
+ export type SymbologyTab = 'color' | 'radius' | 'filters';
10
10
  type RgbColorValue = [number, number, number] | [number, number, number, number];
11
11
  type HexColorValue = string;
12
12
  type InternalRgbArray = number[];
@@ -30,10 +30,16 @@ declare global {
30
30
  declare const classificationModes: readonly ["quantile", "equal interval", "jenks", "pretty", "logarithmic", "continuous"];
31
31
  export type ClassificationMode = (typeof classificationModes)[number];
32
32
  export declare const SYMBOLOGY_VALID_LAYER_TYPES: string[];
33
+ export interface IWmsLayerInfo {
34
+ name: string;
35
+ title: string;
36
+ }
33
37
  /** Form context passed to SchemaForm and custom fields. */
34
38
  export interface IJupyterGISFormContext<TFormData = IDict | undefined> {
35
39
  model: IJupyterGISModel;
36
40
  formData: TFormData;
41
+ wmsAvailableLayers?: IWmsLayerInfo[];
42
+ setWmsAvailableLayers?: (layers: IWmsLayerInfo[]) => void;
37
43
  formSchemaRegistry?: IJGISFormSchemaRegistry;
38
44
  }
39
45
  /** Optional form state (schema, extraErrors). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupytergis/base",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "A JupyterLab extension for 3D modelling.",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -37,6 +37,7 @@
37
37
  "clean:all": "jlpm run clean:lib",
38
38
  "watch": "tspc -w"
39
39
  },
40
+ "packageManager": "yarn@3.5.0",
40
41
  "dependencies": {
41
42
  "@fortawesome/fontawesome-svg-core": "^6.5.2",
42
43
  "@fortawesome/free-solid-svg-icons": "^6.5.2",
@@ -44,7 +45,7 @@
44
45
  "@jupyter/collaboration": "^4",
45
46
  "@jupyter/react-components": "^0.16.6",
46
47
  "@jupyter/ydoc": "^2.0.0 || ^3.0.0",
47
- "@jupytergis/schema": "^0.14.0",
48
+ "@jupytergis/schema": "^0.15.0",
48
49
  "@jupyterlab/application": "^4.3.0",
49
50
  "@jupyterlab/apputils": "^4.3.0",
50
51
  "@jupyterlab/completer": "^4.3.0",
@@ -71,6 +72,7 @@
71
72
  "clsx": "^2.1.1",
72
73
  "cmdk": "^1.1.1",
73
74
  "colormap": "^2.3.2",
75
+ "d3-scale-chromatic": "^3.0.0",
74
76
  "date-fns": "^4.1.0",
75
77
  "gdal3.js": "^2.8.1",
76
78
  "geojson-vt": "^4.0.2",
@@ -87,6 +89,7 @@
87
89
  "proj4-list": "1.0.4",
88
90
  "radix-ui": "^1.4.3",
89
91
  "react": "^18.0.1",
92
+ "react-colorful": "^5.6.1",
90
93
  "react-day-picker": "^9.7.0",
91
94
  "react-markdown": "^10.1.0",
92
95
  "shpjs": "^6.1.0",
@@ -13,11 +13,8 @@
13
13
  border: 0.0375rem solid
14
14
  color-mix(in srgb, var(--jp-border-color1), transparent 20%);
15
15
  transition: background-color 0.2s ease;
16
- height: 2.25rem;
17
- padding-left: 1rem;
18
- padding-right: 1rem;
19
- padding-top: 0.5rem;
20
- padding-bottom: 0.5rem;
16
+ height: 1.5rem;
17
+ padding: 1rem 0.5rem;
21
18
  max-width: 20rem;
22
19
  gap: 0.25rem;
23
20
  }
@@ -1,12 +1,12 @@
1
1
  [data-slot='input'] {
2
2
  box-sizing: border-box;
3
- height: 1.125rem;
3
+ height: 2.25rem;
4
4
  width: auto;
5
5
  min-width: 0;
6
6
  border-radius: var(--jp-border-radius, 0.375rem);
7
7
  border: 1px solid var(--jp-border-color1);
8
8
  background-color: transparent;
9
- padding: 0.25rem 0.75rem;
9
+ padding: 0.25rem 0.5rem;
10
10
  font-size: 1rem;
11
11
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
12
12
  transition:
@@ -17,7 +17,7 @@
17
17
  gap: 1rem;
18
18
  width: 100%;
19
19
  font-size: 9px;
20
- overflow-x: scroll;
20
+ overflow-x: auto;
21
21
  }
22
22
 
23
23
  .jgis-tabs-list:active {
@@ -60,7 +60,7 @@
60
60
  .jgis-tabs-content {
61
61
  outline: none;
62
62
  width: 100%;
63
- overflow-y: scroll;
63
+ overflow-y: auto;
64
64
  /* max-height: 480px; */
65
65
  padding-top: 1rem;
66
66
  }
@@ -1,5 +1,6 @@
1
1
  .jgis-story-viewer-panel {
2
2
  padding: 1rem;
3
+ padding-right: 0;
3
4
  overflow: auto;
4
5
  position: relative;
5
6
  }
@@ -158,6 +159,8 @@
158
159
  top: unset;
159
160
  box-shadow: unset;
160
161
  max-height: unset;
162
+ border-bottom-right-radius: 0;
163
+ border-top-right-radius: 0;
161
164
  }
162
165
 
163
166
  .jgis-specta-story-panel-container {
@@ -187,10 +190,14 @@
187
190
  }
188
191
 
189
192
  .jgis-story-viewer-panel-specta-mod {
193
+ display: flex;
194
+ height: 100%;
190
195
  width: 45%;
196
+ align-items: center;
191
197
  font-size: var(--jp-ui-font-size3);
192
198
  padding-right: 1.7rem;
193
199
  color: var(--jgis-specta-text-color, var(--jp-ui-font-color1));
200
+ background-color: var(--jgis-specta-bg-color, var(--jp-layout-color0));
194
201
  overflow-y: auto;
195
202
  max-height: 100%;
196
203
  }
@@ -27,7 +27,8 @@ select option {
27
27
  }
28
28
 
29
29
  .jp-gis-symbology-row > .jp-select-wrapper,
30
- .jp-gis-symbology-row > .jp-mod-styled {
30
+ .jp-gis-symbology-row > .jp-mod-styled,
31
+ .jp-gis-symbology-row > .jp-gis-rgba-picker {
31
32
  flex: 1 0 50%;
32
33
  max-width: 50%;
33
34
  }
@@ -228,3 +229,46 @@ select option {
228
229
  .jp-gis-selected-entry {
229
230
  width: 100%;
230
231
  }
232
+
233
+ .jp-gis-rgba-inputs {
234
+ display: flex;
235
+ flex-wrap: wrap;
236
+ gap: 4px;
237
+ margin-top: 6px;
238
+ }
239
+
240
+ .jp-gis-rgba-field {
241
+ display: flex;
242
+ flex-direction: column;
243
+ align-items: center;
244
+ flex: 0 0 auto;
245
+ gap: 2px;
246
+ }
247
+
248
+ .jp-gis-rgba-field label {
249
+ font-size: var(--jp-ui-font-size0);
250
+ color: var(--jp-ui-font-color2);
251
+ line-height: 1;
252
+ }
253
+
254
+ .jp-gis-rgba-field input {
255
+ width: 4ch;
256
+ text-align: center;
257
+ padding: 1px 2px;
258
+ -moz-appearance: textfield;
259
+ }
260
+
261
+ .jp-gis-rgba-field input::-webkit-outer-spin-button,
262
+ .jp-gis-rgba-field input::-webkit-inner-spin-button {
263
+ -webkit-appearance: none;
264
+ }
265
+
266
+ .jp-gis-transparent-label {
267
+ display: flex;
268
+ align-items: center;
269
+ gap: 4px;
270
+ margin-top: 6px;
271
+ font-size: var(--jp-ui-font-size1);
272
+ cursor: pointer;
273
+ user-select: none;
274
+ }