@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,29 +1,36 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { getNumericFeatureAttributes } from '../../../../tools';
3
- import { VectorClassifications } from '../../classificationModes';
4
- import ColorRamp from '../../components/color_ramp/ColorRamp';
5
- import StopContainer from '../../components/color_stops/StopContainer';
6
- import { useGetProperties } from '../../hooks/useGetProperties';
7
- import { Utils, VectorUtils } from '../../symbologyUtils';
8
- import ValueSelect from '../components/ValueSelect';
9
- const Graduated = ({ model, state, okSignalPromise, cancel, layerId }) => {
2
+ import { VectorClassifications } from "../../classificationModes";
3
+ import ColorRamp from "../../components/color_ramp/ColorRamp";
4
+ import StopContainer from "../../components/color_stops/StopContainer";
5
+ import { Utils, VectorUtils } from "../../symbologyUtils";
6
+ import ValueSelect from "../components/ValueSelect";
7
+ const Graduated = ({ model, state, okSignalPromise, cancel, layerId, symbologyTab, selectableAttributesAndValues, }) => {
10
8
  const modeOptions = [
11
9
  'quantile',
12
10
  'equal interval',
13
11
  'jenks',
14
12
  'pretty',
15
- 'logarithmic'
13
+ 'logarithmic',
16
14
  ];
17
- const selectedValueRef = useRef();
18
- const selectedMethodRef = useRef();
19
- const stopRowsRef = useRef();
15
+ const selectableAttributeRef = useRef();
16
+ const symbologyTabRef = useRef();
17
+ const colorStopRowsRef = useRef([]);
18
+ const radiusStopRowsRef = useRef([]);
20
19
  const colorRampOptionsRef = useRef();
21
- const [selectedValue, setSelectedValue] = useState('');
22
- const [selectedMethod, setSelectedMethod] = useState('color');
23
- const [stopRows, setStopRows] = useState([]);
24
- const [methodOptions, setMethodOptions] = useState(['color']);
25
- const [features, setFeatures] = useState({});
20
+ const [selectedAttribute, setSelectedAttribute] = useState('');
21
+ const [colorStopRows, setColorStopRows] = useState([]);
22
+ const [radiusStopRows, setRadiusStopRows] = useState([]);
26
23
  const [colorRampOptions, setColorRampOptions] = useState();
24
+ const [colorManualStyle, setColorManualStyle] = useState({
25
+ fillColor: '#3399CC',
26
+ strokeColor: '#3399CC',
27
+ strokeWidth: 1.25,
28
+ });
29
+ const [radiusManualStyle, setRadiusManualStyle] = useState({
30
+ radius: 5,
31
+ });
32
+ const colorManualStyleRef = useRef(colorManualStyle);
33
+ const radiusManualStyleRef = useRef(radiusManualStyle);
27
34
  if (!layerId) {
28
35
  return;
29
36
  }
@@ -31,22 +38,8 @@ const Graduated = ({ model, state, okSignalPromise, cancel, layerId }) => {
31
38
  if (!(layer === null || layer === void 0 ? void 0 : layer.parameters)) {
32
39
  return;
33
40
  }
34
- const { featureProperties } = useGetProperties({
35
- layerId,
36
- model: model
37
- });
38
41
  useEffect(() => {
39
- var _a, _b;
40
- let stopOutputPairs = [];
41
- const layerParams = layer.parameters;
42
- const method = (_b = (_a = layerParams.symbologyState) === null || _a === void 0 ? void 0 : _a.method) !== null && _b !== void 0 ? _b : 'color';
43
- if (method === 'color') {
44
- stopOutputPairs = VectorUtils.buildColorInfo(layer);
45
- }
46
- if (method === 'radius') {
47
- stopOutputPairs = VectorUtils.buildRadiusInfo(layer);
48
- }
49
- setStopRows(stopOutputPairs);
42
+ updateStopRowsBasedOnLayer();
50
43
  okSignalPromise.promise.then(okSignal => {
51
44
  okSignal.connect(handleOk, this);
52
45
  });
@@ -57,68 +50,119 @@ const Graduated = ({ model, state, okSignalPromise, cancel, layerId }) => {
57
50
  };
58
51
  }, []);
59
52
  useEffect(() => {
60
- selectedValueRef.current = selectedValue;
61
- selectedMethodRef.current = selectedMethod;
62
- stopRowsRef.current = stopRows;
53
+ var _a;
54
+ if ((_a = layer === null || layer === void 0 ? void 0 : layer.parameters) === null || _a === void 0 ? void 0 : _a.color) {
55
+ const fillColor = layer.parameters.color['fill-color'];
56
+ const circleFillColor = layer.parameters.color['circle-fill-color'];
57
+ const strokeColor = layer.parameters.color['stroke-color'];
58
+ const circleStrokeColor = layer.parameters.color['circle-stroke-color'];
59
+ const isSimpleColor = (val) => typeof val === 'string' && /^#?[0-9A-Fa-f]{3,8}$/.test(val);
60
+ setColorManualStyle({
61
+ fillColor: isSimpleColor(fillColor)
62
+ ? fillColor
63
+ : isSimpleColor(circleFillColor)
64
+ ? circleFillColor
65
+ : '#3399CC',
66
+ strokeColor: isSimpleColor(strokeColor)
67
+ ? strokeColor
68
+ : isSimpleColor(circleStrokeColor)
69
+ ? circleStrokeColor
70
+ : '#3399CC',
71
+ strokeWidth: layer.parameters.color['stroke-width'] ||
72
+ layer.parameters.color['circle-stroke-width'] ||
73
+ 1.25,
74
+ });
75
+ setRadiusManualStyle({
76
+ radius: layer.parameters.color['circle-radius'] || 5,
77
+ });
78
+ }
79
+ }, [layerId]);
80
+ useEffect(() => {
81
+ colorStopRowsRef.current = colorStopRows;
82
+ radiusStopRowsRef.current = radiusStopRows;
83
+ selectableAttributeRef.current = selectedAttribute;
84
+ symbologyTabRef.current = symbologyTab;
63
85
  colorRampOptionsRef.current = colorRampOptions;
64
- }, [selectedValue, selectedMethod, stopRows, colorRampOptions]);
86
+ }, [
87
+ colorStopRows,
88
+ radiusStopRows,
89
+ selectedAttribute,
90
+ symbologyTab,
91
+ colorRampOptions,
92
+ ]);
93
+ useEffect(() => {
94
+ colorManualStyleRef.current = colorManualStyle;
95
+ radiusManualStyleRef.current = radiusManualStyle;
96
+ }, [colorManualStyle, radiusManualStyle]);
65
97
  useEffect(() => {
66
- var _a, _b, _c, _d, _e;
67
- // Set up method options
68
- if (((_a = layer === null || layer === void 0 ? void 0 : layer.parameters) === null || _a === void 0 ? void 0 : _a.type) === 'circle') {
69
- const options = ['color', 'radius'];
70
- setMethodOptions(options);
71
- }
72
- // We only want number values here
73
- const numericFeatures = getNumericFeatureAttributes(featureProperties);
74
- setFeatures(numericFeatures);
98
+ var _a, _b;
75
99
  const layerParams = layer.parameters;
76
- const value = (_c = (_b = layerParams.symbologyState) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : Object.keys(numericFeatures)[0];
77
- const method = (_e = (_d = layerParams.symbologyState) === null || _d === void 0 ? void 0 : _d.method) !== null && _e !== void 0 ? _e : 'color';
78
- setSelectedValue(value);
79
- setSelectedMethod(method);
80
- }, [featureProperties]);
100
+ const attribute = (_b = (_a = layerParams.symbologyState) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : Object.keys(selectableAttributesAndValues)[0];
101
+ setSelectedAttribute(attribute);
102
+ }, [selectableAttributesAndValues]);
103
+ const updateStopRowsBasedOnLayer = () => {
104
+ if (!layer) {
105
+ return;
106
+ }
107
+ setColorStopRows(VectorUtils.buildColorInfo(layer));
108
+ setRadiusStopRows(VectorUtils.buildRadiusInfo(layer));
109
+ };
81
110
  const handleOk = () => {
82
- var _a, _b, _c, _d;
111
+ var _a, _b, _c;
83
112
  if (!layer.parameters) {
84
113
  return;
85
114
  }
86
- const colorExpr = [];
87
- colorExpr.push('interpolate');
88
- colorExpr.push(['linear']);
89
- colorExpr.push(['get', selectedValueRef.current]);
90
- (_a = stopRowsRef.current) === null || _a === void 0 ? void 0 : _a.map(stop => {
91
- colorExpr.push(stop.stop);
92
- colorExpr.push(stop.output);
93
- });
94
115
  const newStyle = Object.assign({}, layer.parameters.color);
95
- if (selectedMethodRef.current === 'color') {
96
- if (layer.parameters.type === 'fill') {
97
- newStyle['fill-color'] = colorExpr;
98
- }
99
- if (layer.parameters.type === 'line') {
100
- newStyle['stroke-color'] = colorExpr;
101
- }
102
- if (layer.parameters.type === 'circle') {
103
- newStyle['circle-fill-color'] = colorExpr;
104
- }
105
- }
106
- if (selectedMethodRef.current === 'radius') {
107
- if (layer.parameters.type === 'circle') {
108
- newStyle['circle-radius'] = colorExpr;
109
- }
110
- }
111
- const symbologyState = {
116
+ // Apply color symbology
117
+ if (colorStopRowsRef.current.length > 0) {
118
+ const colorExpr = [
119
+ 'interpolate',
120
+ ['linear'],
121
+ ['get', selectableAttributeRef.current],
122
+ ];
123
+ colorStopRowsRef.current.forEach(stop => {
124
+ colorExpr.push(stop.stop);
125
+ colorExpr.push(stop.output);
126
+ });
127
+ newStyle['fill-color'] = colorExpr;
128
+ newStyle['circle-fill-color'] = colorExpr;
129
+ }
130
+ else {
131
+ newStyle['fill-color'] = undefined;
132
+ newStyle['circle-fill-color'] = undefined;
133
+ }
134
+ newStyle['stroke-color'] = colorManualStyleRef.current.strokeColor;
135
+ newStyle['circle-stroke-color'] = colorManualStyleRef.current.strokeColor;
136
+ newStyle['stroke-width'] = colorManualStyleRef.current.strokeWidth;
137
+ newStyle['circle-stroke-width'] = colorManualStyleRef.current.strokeWidth;
138
+ // Apply radius symbology
139
+ if (radiusStopRowsRef.current.length > 0) {
140
+ const radiusExpr = [
141
+ 'interpolate',
142
+ ['linear'],
143
+ ['get', selectableAttributeRef.current],
144
+ ];
145
+ radiusStopRowsRef.current.forEach(stop => {
146
+ radiusExpr.push(stop.stop);
147
+ radiusExpr.push(stop.output);
148
+ });
149
+ newStyle['circle-radius'] = radiusExpr;
150
+ }
151
+ else {
152
+ newStyle['circle-radius'] = radiusManualStyleRef.current.radius;
153
+ }
154
+ layer.parameters.color = newStyle;
155
+ layer.parameters.symbologyState = {
112
156
  renderType: 'Graduated',
113
- value: selectedValueRef.current,
114
- method: selectedMethodRef.current,
115
- colorRamp: (_b = colorRampOptionsRef.current) === null || _b === void 0 ? void 0 : _b.selectedRamp,
116
- nClasses: (_c = colorRampOptionsRef.current) === null || _c === void 0 ? void 0 : _c.numberOfShades,
117
- mode: (_d = colorRampOptionsRef.current) === null || _d === void 0 ? void 0 : _d.selectedMode
157
+ value: selectableAttributeRef.current,
158
+ method: symbologyTabRef.current,
159
+ colorRamp: (_a = colorRampOptionsRef.current) === null || _a === void 0 ? void 0 : _a.selectedRamp,
160
+ nClasses: (_b = colorRampOptionsRef.current) === null || _b === void 0 ? void 0 : _b.numberOfShades,
161
+ mode: (_c = colorRampOptionsRef.current) === null || _c === void 0 ? void 0 : _c.selectedMode,
118
162
  };
119
- layer.parameters.symbologyState = symbologyState;
120
- layer.parameters.color = newStyle;
121
- layer.type = 'VectorLayer';
163
+ if (layer.type === 'HeatmapLayer') {
164
+ layer.type = 'VectorLayer';
165
+ }
122
166
  model.sharedModel.updateLayer(layerId, layer);
123
167
  cancel();
124
168
  };
@@ -126,10 +170,10 @@ const Graduated = ({ model, state, okSignalPromise, cancel, layerId }) => {
126
170
  setColorRampOptions({
127
171
  selectedRamp,
128
172
  numberOfShades,
129
- selectedMode
173
+ selectedMode,
130
174
  });
131
175
  let stops;
132
- const values = Array.from(features[selectedValue]);
176
+ const values = Array.from(selectableAttributesAndValues[selectedAttribute]);
133
177
  switch (selectedMode) {
134
178
  case 'quantile':
135
179
  stops = VectorClassifications.calculateQuantileBreaks(values, +numberOfShades);
@@ -150,23 +194,73 @@ const Graduated = ({ model, state, okSignalPromise, cancel, layerId }) => {
150
194
  console.warn('No mode selected');
151
195
  return;
152
196
  }
153
- let stopOutputPairs = [];
154
- if (selectedMethod === 'radius') {
155
- for (let i = 0; i < +numberOfShades; i++) {
156
- stopOutputPairs.push({ stop: stops[i], output: stops[i] });
157
- }
197
+ const stopOutputPairs = symbologyTab === 'radius'
198
+ ? stops.map(v => ({ stop: v, output: v }))
199
+ : Utils.getValueColorPairs(stops, selectedRamp, +numberOfShades);
200
+ if (symbologyTab === 'radius') {
201
+ setRadiusStopRows(stopOutputPairs);
158
202
  }
159
203
  else {
160
- stopOutputPairs = Utils.getValueColorPairs(stops, selectedRamp, +numberOfShades);
204
+ setColorStopRows(stopOutputPairs);
161
205
  }
162
- setStopRows(stopOutputPairs);
163
206
  };
207
+ const handleReset = (method) => {
208
+ if (!(layer === null || layer === void 0 ? void 0 : layer.parameters)) {
209
+ return;
210
+ }
211
+ const newStyle = Object.assign({}, layer.parameters.color);
212
+ if (method === 'color') {
213
+ delete newStyle['fill-color'];
214
+ delete newStyle['stroke-color'];
215
+ delete newStyle['circle-fill-color'];
216
+ setColorStopRows([]);
217
+ setColorRampOptions(undefined);
218
+ }
219
+ if (method === 'radius') {
220
+ delete newStyle['circle-radius'];
221
+ setRadiusStopRows([]);
222
+ }
223
+ layer.parameters.color = newStyle;
224
+ model.sharedModel.updateLayer(layerId, layer);
225
+ };
226
+ const body = (() => {
227
+ var _a;
228
+ if (((_a = Object.keys(selectableAttributesAndValues)) === null || _a === void 0 ? void 0 : _a.length) === 0) {
229
+ return (React.createElement("p", { className: "errors" }, "This symbology type is not available; no attributes contain numeric values."));
230
+ }
231
+ else {
232
+ return (React.createElement(React.Fragment, null,
233
+ React.createElement(ValueSelect, { featureProperties: selectableAttributesAndValues, selectedValue: selectedAttribute, setSelectedValue: setSelectedAttribute }),
234
+ React.createElement("div", { className: "jp-gis-layer-symbology-container" },
235
+ symbologyTab === 'color' && (React.createElement(React.Fragment, null,
236
+ React.createElement("div", { className: "jp-gis-symbology-row" },
237
+ React.createElement("label", null, "Fill Color:"),
238
+ React.createElement("input", { type: "color", className: "jp-mod-styled", value: colorManualStyle.fillColor, onChange: e => {
239
+ handleReset('color');
240
+ setColorManualStyle(Object.assign(Object.assign({}, colorManualStyle), { fillColor: e.target.value }));
241
+ } })),
242
+ React.createElement("div", { className: "jp-gis-symbology-row" },
243
+ React.createElement("label", null, "Stroke Color:"),
244
+ React.createElement("input", { type: "color", className: "jp-mod-styled", value: colorManualStyle.strokeColor, onChange: e => {
245
+ setColorManualStyle(Object.assign(Object.assign({}, colorManualStyle), { strokeColor: e.target.value }));
246
+ } })),
247
+ React.createElement("div", { className: "jp-gis-symbology-row" },
248
+ React.createElement("label", null, "Stroke Width:"),
249
+ React.createElement("input", { type: "number", className: "jp-mod-styled", value: colorManualStyle.strokeWidth, onChange: e => {
250
+ setColorManualStyle(Object.assign(Object.assign({}, colorManualStyle), { strokeWidth: +e.target.value }));
251
+ } })))),
252
+ symbologyTab === 'radius' && (React.createElement("div", { className: "jp-gis-symbology-row" },
253
+ React.createElement("label", null, "Circle Radius:"),
254
+ React.createElement("input", { type: "number", className: "jp-mod-styled", value: radiusManualStyle.radius, onChange: e => {
255
+ handleReset('radius');
256
+ setRadiusManualStyle(Object.assign(Object.assign({}, radiusManualStyle), { radius: +e.target.value }));
257
+ } })))),
258
+ React.createElement(ColorRamp, { layerParams: layer.parameters, modeOptions: modeOptions, classifyFunc: buildColorInfoFromClassification, showModeRow: true, showRampSelector: symbologyTab === 'color' }),
259
+ React.createElement(StopContainer, { selectedMethod: symbologyTab || 'color', stopRows: symbologyTab === 'color' ? colorStopRows : radiusStopRows, setStopRows: symbologyTab === 'color' ? setColorStopRows : setRadiusStopRows })));
260
+ }
261
+ })();
164
262
  return (React.createElement("div", { className: "jp-gis-layer-symbology-container" },
165
- React.createElement(ValueSelect, { featureProperties: features, selectedValue: selectedValue, setSelectedValue: setSelectedValue }),
166
- React.createElement("div", { className: "jp-gis-symbology-row" },
167
- React.createElement("label", { htmlFor: 'vector-method-select' }, "Method:"),
168
- React.createElement("select", { name: 'vector-method-select', onChange: event => setSelectedMethod(event.target.value), className: "jp-mod-styled" }, methodOptions.map((method, index) => (React.createElement("option", { key: index, value: method, selected: method === selectedMethod, className: "jp-mod-styled" }, method))))),
169
- React.createElement(ColorRamp, { layerParams: layer.parameters, modeOptions: modeOptions, classifyFunc: buildColorInfoFromClassification, showModeRow: true }),
170
- React.createElement(StopContainer, { selectedMethod: selectedMethod, stopRows: stopRows, setStopRows: setStopRows })));
263
+ React.createElement("p", null, "Color features based on an attribute containing scalar values."),
264
+ body));
171
265
  };
172
266
  export default Graduated;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import { ISymbologyDialogProps } from '../../symbologyDialog';
3
- declare const Heatmap: ({ model, state, okSignalPromise, cancel, layerId }: ISymbologyDialogProps) => React.JSX.Element | undefined;
2
+ import { ISymbologyDialogProps } from "../../symbologyDialog";
3
+ declare const Heatmap: React.FC<ISymbologyDialogProps>;
4
4
  export default Heatmap;
@@ -1,7 +1,7 @@
1
1
  import colormap from 'colormap';
2
2
  import React, { useEffect, useRef, useState } from 'react';
3
- import CanvasSelectComponent from '../../components/color_ramp/CanvasSelectComponent';
4
- const Heatmap = ({ model, state, okSignalPromise, cancel, layerId }) => {
3
+ import CanvasSelectComponent from "../../components/color_ramp/CanvasSelectComponent";
4
+ const Heatmap = ({ model, state, okSignalPromise, cancel, layerId, }) => {
5
5
  if (!layerId) {
6
6
  return;
7
7
  }
@@ -12,12 +12,12 @@ const Heatmap = ({ model, state, okSignalPromise, cancel, layerId }) => {
12
12
  const [selectedRamp, setSelectedRamp] = useState('');
13
13
  const [heatmapOptions, setHetamapOptions] = useState({
14
14
  radius: 8,
15
- blur: 15
15
+ blur: 15,
16
16
  });
17
17
  const selectedRampRef = useRef('cool');
18
18
  const heatmapOptionsRef = useRef({
19
19
  radius: 8,
20
- blur: 15
20
+ blur: 15,
21
21
  });
22
22
  useEffect(() => {
23
23
  populateOptions();
@@ -49,11 +49,11 @@ const Heatmap = ({ model, state, okSignalPromise, cancel, layerId }) => {
49
49
  const colorMap = colormap({
50
50
  colormap: selectedRampRef.current,
51
51
  nshades: 9,
52
- format: 'hex'
52
+ format: 'hex',
53
53
  });
54
54
  const symbologyState = {
55
55
  renderType: 'Heatmap',
56
- colorRamp: selectedRampRef.current
56
+ colorRamp: selectedRampRef.current,
57
57
  };
58
58
  layer.parameters.symbologyState = symbologyState;
59
59
  layer.parameters.color = colorMap;
@@ -64,6 +64,7 @@ const Heatmap = ({ model, state, okSignalPromise, cancel, layerId }) => {
64
64
  cancel();
65
65
  };
66
66
  return (React.createElement("div", { className: "jp-gis-layer-symbology-container" },
67
+ React.createElement("p", null, "Represent features based on their density using a heatmap."),
67
68
  React.createElement("div", { className: "jp-gis-symbology-row jp-gis-heatmap" },
68
69
  React.createElement("label", { htmlFor: "color-ramp-select" }, "Color Ramp:"),
69
70
  React.createElement(CanvasSelectComponent, { selectedRamp: selectedRamp, setSelected: setSelectedRamp })),
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
- import { ISymbologyDialogProps } from '../../symbologyDialog';
3
- declare const SimpleSymbol: ({ model, state, okSignalPromise, cancel, layerId }: ISymbologyDialogProps) => React.JSX.Element | undefined;
2
+ import { ISymbologyTabbedDialogProps } from "../../symbologyDialog";
3
+ declare const SimpleSymbol: React.FC<ISymbologyTabbedDialogProps>;
4
4
  export default SimpleSymbol;
@@ -1,15 +1,14 @@
1
1
  import React, { useEffect, useRef, useState } from 'react';
2
- import { parseColor } from '../../../../tools';
3
- const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId }) => {
2
+ import { parseColor } from "../../../../tools";
3
+ const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId, symbologyTab, }) => {
4
4
  const styleRef = useRef();
5
- const [useCircleStuff, setUseCircleStuff] = useState(false);
6
5
  const [style, setStyle] = useState({
7
6
  fillColor: '#3399CC',
8
7
  joinStyle: 'round',
9
8
  strokeColor: '#3399CC',
10
9
  capStyle: 'round',
11
10
  strokeWidth: 1.25,
12
- radius: 5
11
+ radius: 5,
13
12
  });
14
13
  const joinStyleOptions = ['bevel', 'round', 'miter'];
15
14
  const capStyleOptions = ['butt', 'round', 'square'];
@@ -24,10 +23,6 @@ const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId }) => {
24
23
  if (!layer.parameters) {
25
24
  return;
26
25
  }
27
- setUseCircleStuff(layer.parameters.type === 'circle');
28
- // Mimicking QGIS here,
29
- // Read values from file if we chose them using the single symbol thing
30
- // but if we're switching to simple symbol, use defaults
31
26
  const initStyle = async () => {
32
27
  var _a;
33
28
  if (!layer.parameters) {
@@ -35,8 +30,8 @@ const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId }) => {
35
30
  }
36
31
  const renderType = (_a = layer.parameters) === null || _a === void 0 ? void 0 : _a.symbologyState.renderType;
37
32
  if (renderType === 'Single Symbol') {
38
- // Read from current color or use defaults
39
- const parsedStyle = parseColor(layer.parameters.type, layer.parameters.color);
33
+ // Parse with fallback logic inside
34
+ const parsedStyle = parseColor(layer.parameters.color);
40
35
  if (parsedStyle) {
41
36
  setStyle(parsedStyle);
42
37
  }
@@ -56,33 +51,35 @@ const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId }) => {
56
51
  styleRef.current = style;
57
52
  }, [style]);
58
53
  const handleOk = () => {
59
- var _a, _b, _c, _d, _e, _f;
54
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
60
55
  if (!layer.parameters) {
61
56
  return;
62
57
  }
63
- const styleExpr = {};
64
- const prefix = layer.parameters.type === 'circle' ? 'circle-' : '';
65
- if (layer.parameters.type === 'circle') {
66
- styleExpr['circle-radius'] = (_a = styleRef.current) === null || _a === void 0 ? void 0 : _a.radius;
67
- }
68
- styleExpr[`${prefix}fill-color`] = (_b = styleRef.current) === null || _b === void 0 ? void 0 : _b.fillColor;
69
- styleExpr[`${prefix}stroke-color`] = (_c = styleRef.current) === null || _c === void 0 ? void 0 : _c.strokeColor;
70
- styleExpr[`${prefix}stroke-width`] = (_d = styleRef.current) === null || _d === void 0 ? void 0 : _d.strokeWidth;
71
- styleExpr[`${prefix}stroke-line-join`] = (_e = styleRef.current) === null || _e === void 0 ? void 0 : _e.joinStyle;
72
- styleExpr[`${prefix}stroke-line-cap`] = (_f = styleRef.current) === null || _f === void 0 ? void 0 : _f.capStyle;
58
+ const styleExpr = {
59
+ 'circle-radius': (_a = styleRef.current) === null || _a === void 0 ? void 0 : _a.radius,
60
+ 'circle-fill-color': (_b = styleRef.current) === null || _b === void 0 ? void 0 : _b.fillColor,
61
+ 'circle-stroke-color': (_c = styleRef.current) === null || _c === void 0 ? void 0 : _c.strokeColor,
62
+ 'circle-stroke-width': (_d = styleRef.current) === null || _d === void 0 ? void 0 : _d.strokeWidth,
63
+ 'circle-stroke-line-join': (_e = styleRef.current) === null || _e === void 0 ? void 0 : _e.joinStyle,
64
+ 'circle-stroke-line-cap': (_f = styleRef.current) === null || _f === void 0 ? void 0 : _f.capStyle,
65
+ 'fill-color': (_g = styleRef.current) === null || _g === void 0 ? void 0 : _g.fillColor,
66
+ 'stroke-color': (_h = styleRef.current) === null || _h === void 0 ? void 0 : _h.strokeColor,
67
+ 'stroke-width': (_j = styleRef.current) === null || _j === void 0 ? void 0 : _j.strokeWidth,
68
+ 'stroke-line-join': (_k = styleRef.current) === null || _k === void 0 ? void 0 : _k.joinStyle,
69
+ 'stroke-line-cap': (_l = styleRef.current) === null || _l === void 0 ? void 0 : _l.capStyle,
70
+ };
73
71
  const symbologyState = {
74
- renderType: 'Single Symbol'
72
+ renderType: 'Single Symbol',
75
73
  };
76
74
  layer.parameters.symbologyState = symbologyState;
77
75
  layer.parameters.color = styleExpr;
78
- layer.type = 'VectorLayer';
76
+ if (layer.type === 'HeatmapLayer') {
77
+ layer.type = 'VectorLayer';
78
+ }
79
79
  model.sharedModel.updateLayer(layerId, layer);
80
80
  cancel();
81
81
  };
82
- return (React.createElement("div", { className: "jp-gis-layer-symbology-container" },
83
- useCircleStuff ? (React.createElement("div", { className: "jp-gis-symbology-row" },
84
- React.createElement("label", { htmlFor: 'vector-value-select' }, "Radius:"),
85
- React.createElement("input", { type: "number", value: style.radius, className: "jp-mod-styled", onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { radius: +event.target.value }))) }))) : null,
82
+ const renderColorTab = () => (React.createElement(React.Fragment, null,
86
83
  React.createElement("div", { className: "jp-gis-symbology-row" },
87
84
  React.createElement("label", { htmlFor: 'vector-value-select' }, "Fill Color:"),
88
85
  React.createElement("input", { type: "color", value: style.fillColor, className: "jp-mod-styled", onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { fillColor: event.target.value }))) })),
@@ -95,10 +92,16 @@ const SimpleSymbol = ({ model, state, okSignalPromise, cancel, layerId }) => {
95
92
  React.createElement("div", { className: "jp-gis-symbology-row" },
96
93
  React.createElement("label", { htmlFor: 'vector-join-select' }, "Join Style:"),
97
94
  React.createElement("div", { className: "jp-select-wrapper" },
98
- React.createElement("select", { name: 'vector-join-select', onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { joinStyle: event.target.value }))), className: "jp-mod-styled" }, joinStyleOptions.map((method, index) => (React.createElement("option", { key: index, value: method, selected: method === style.joinStyle, className: "jp-mod-styled" }, method)))))),
99
- useCircleStuff ? (React.createElement("div", { className: "jp-gis-symbology-row" },
95
+ React.createElement("select", { name: 'vector-join-select', onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { joinStyle: event.target.value }))), className: "jp-mod-styled", value: style.joinStyle }, joinStyleOptions.map((method, index) => (React.createElement("option", { key: index, value: method, className: "jp-mod-styled" }, method)))))),
96
+ React.createElement("div", { className: "jp-gis-symbology-row" },
100
97
  React.createElement("label", { htmlFor: 'vector-cap-select' }, "Cap Style:"),
101
98
  React.createElement("div", { className: "jp-select-wrapper" },
102
- React.createElement("select", { name: 'vector-cap-select', onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { capStyle: event.target.value }))), className: "jp-mod-styled" }, capStyleOptions.map((cap, index) => (React.createElement("option", { key: index, value: cap, selected: cap === style.capStyle, className: "jp-mod-styled" }, cap))))))) : null));
99
+ React.createElement("select", { name: 'vector-cap-select', onChange: event => setStyle(prevState => (Object.assign(Object.assign({}, prevState), { capStyle: event.target.value }))), className: "jp-mod-styled", value: style.capStyle }, capStyleOptions.map((cap, index) => (React.createElement("option", { key: index, value: cap, className: "jp-mod-styled" }, cap))))))));
100
+ const renderRadiusTab = () => (React.createElement("div", { className: "jp-gis-symbology-row" },
101
+ React.createElement("label", null, "Radius:"),
102
+ React.createElement("input", { type: "number", value: style.radius, className: "jp-mod-styled", onChange: e => setStyle(prev => (Object.assign(Object.assign({}, prev), { radius: +e.target.value }))) })));
103
+ return (React.createElement("div", { className: "jp-gis-layer-symbology-container" },
104
+ React.createElement("p", null, "Color all features the same way."),
105
+ symbologyTab === 'color' ? renderColorTab() : renderRadiusTab()));
103
106
  };
104
107
  export default SimpleSymbol;
@@ -9,10 +9,10 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import { deepCopy } from '../tools';
13
12
  import { PromiseDelegate, UUID } from '@lumino/coreutils';
14
13
  import { Signal } from '@lumino/signaling';
15
14
  import * as React from 'react';
15
+ import { deepCopy } from "../tools";
16
16
  import { getLayerTypeForm, getSourceTypeForm } from './formselectors';
17
17
  /**
18
18
  * Form for creating a source, a layer or both at the same time
@@ -83,7 +83,7 @@ export class CreationForm extends React.Component {
83
83
  const sourceModel = {
84
84
  type: this.props.sourceType || 'RasterSource',
85
85
  name: actualName,
86
- parameters: sourceData
86
+ parameters: sourceData,
87
87
  };
88
88
  this.jGISModel.sharedModel.addSource(sourceId, sourceModel);
89
89
  }
@@ -97,7 +97,7 @@ export class CreationForm extends React.Component {
97
97
  type: this.props.layerType || 'RasterLayer',
98
98
  parameters: layerData,
99
99
  visible: true,
100
- name: actualName
100
+ name: actualName,
101
101
  };
102
102
  this.jGISModel.addLayer(UUID.uuid4(), layerModel);
103
103
  }
@@ -1,6 +1,6 @@
1
1
  import { Signal } from '@lumino/signaling';
2
2
  import * as React from 'react';
3
- import { deepCopy } from '../tools';
3
+ import { deepCopy } from "../tools";
4
4
  import { getLayerTypeForm, getSourceTypeForm } from './formselectors';
5
5
  /**
6
6
  * Form for editing a source, a layer or both at the same time
@@ -53,12 +53,12 @@ export class EditForm extends React.Component {
53
53
  return (React.createElement("div", null,
54
54
  this.props.layer && LayerForm && (React.createElement("div", null,
55
55
  React.createElement("h3", { style: { paddingLeft: '5px' } }, "Layer Properties"),
56
- React.createElement(LayerForm, { formContext: "create", sourceType: (source === null || source === void 0 ? void 0 : source.type) || 'RasterSource', model: this.props.model, filePath: this.props.model.filePath, schema: layerSchema, sourceData: layerData, syncData: (properties) => {
56
+ React.createElement(LayerForm, { formContext: "update", sourceType: (source === null || source === void 0 ? void 0 : source.type) || 'RasterSource', model: this.props.model, filePath: this.props.model.filePath, schema: layerSchema, sourceData: layerData, syncData: (properties) => {
57
57
  this.syncObjectProperties(this.props.layer, properties);
58
58
  } }))),
59
59
  this.props.source && SourceForm && (React.createElement("div", null,
60
60
  React.createElement("h3", { style: { paddingLeft: '5px' } }, "Source Properties"),
61
- React.createElement(SourceForm, { formContext: "create", model: this.props.model, filePath: this.props.model.filePath, schema: sourceSchema, sourceData: sourceData, syncData: (properties) => {
61
+ React.createElement(SourceForm, { formContext: "update", model: this.props.model, filePath: this.props.model.filePath, schema: sourceSchema, sourceData: sourceData, syncData: (properties) => {
62
62
  this.syncObjectProperties(this.props.source, properties);
63
63
  }, formChangedSignal: this.sourceFormChangedSignal, sourceType: (source === null || source === void 0 ? void 0 : source.type) || 'RasterSource' })))));
64
64
  }
@@ -1,5 +1,5 @@
1
1
  import { LayerType, SourceType } from '@jupytergis/schema';
2
- import { SourcePropertiesForm } from './objectform/source';
3
2
  import { LayerPropertiesForm } from './objectform/layer';
3
+ import { SourcePropertiesForm } from './objectform/source';
4
4
  export declare function getLayerTypeForm(layerType: LayerType): typeof LayerPropertiesForm;
5
5
  export declare function getSourceTypeForm(sourceType: SourceType): typeof SourcePropertiesForm;
@@ -1,5 +1,5 @@
1
- import { GeoJSONSourcePropertiesForm, GeoTiffSourcePropertiesForm, PathBasedSourcePropertiesForm, TileSourcePropertiesForm, SourcePropertiesForm } from './objectform/source';
2
- import { HeatmapLayerPropertiesForm, HillshadeLayerPropertiesForm, LayerPropertiesForm, VectorLayerPropertiesForm, WebGlLayerPropertiesForm } from './objectform/layer';
1
+ import { HeatmapLayerPropertiesForm, HillshadeLayerPropertiesForm, LayerPropertiesForm, VectorLayerPropertiesForm, WebGlLayerPropertiesForm, } from './objectform/layer';
2
+ import { GeoJSONSourcePropertiesForm, GeoTiffSourcePropertiesForm, PathBasedSourcePropertiesForm, TileSourcePropertiesForm, SourcePropertiesForm, } from './objectform/source';
3
3
  export function getLayerTypeForm(layerType) {
4
4
  let LayerForm = LayerPropertiesForm;
5
5
  switch (layerType) {
@@ -2,10 +2,11 @@ import { IJupyterGISModel } from '@jupytergis/schema';
2
2
  import { Dialog } from '@jupyterlab/apputils';
3
3
  import { Signal } from '@lumino/signaling';
4
4
  import { IChangeEvent, ISubmitEvent } from '@rjsf/core';
5
+ import { RJSFSchema, UiSchema } from '@rjsf/utils';
5
6
  import * as React from 'react';
6
- import { IDict } from '../../types';
7
+ import { IDict } from "../../types";
7
8
  export interface IBaseFormStates {
8
- schema?: IDict;
9
+ schema?: RJSFSchema;
9
10
  extraErrors?: any;
10
11
  }
11
12
  export interface IBaseFormProps {
@@ -61,7 +62,7 @@ export declare class BaseForm extends React.Component<IBaseFormProps, IBaseFormS
61
62
  constructor(props: IBaseFormProps);
62
63
  componentDidUpdate(prevProps: IBaseFormProps, prevState: IBaseFormStates): void;
63
64
  componentDidMount(): void;
64
- protected processSchema(data: IDict<any> | undefined, schema: IDict, uiSchema: IDict): void;
65
+ protected processSchema(data: IDict<any> | undefined, schema: RJSFSchema, uiSchema: UiSchema): void;
65
66
  /**
66
67
  * Remove a specific entry from the form. Can be used in subclasses if needed while under processSchema.
67
68
  * @param entry The entry name
@@ -69,7 +70,7 @@ export declare class BaseForm extends React.Component<IBaseFormProps, IBaseFormS
69
70
  * @param schema The form schema
70
71
  * @param uiSchema The form uiSchema
71
72
  */
72
- protected removeFormEntry(entry: string, data: IDict<any> | undefined, schema: IDict, uiSchema: IDict): void;
73
+ protected removeFormEntry(entry: string, data: IDict<any> | undefined, schema: RJSFSchema, uiSchema: UiSchema): void;
73
74
  protected syncData(properties: IDict<any> | undefined): void;
74
75
  protected onFormChange(e: IChangeEvent): void;
75
76
  protected onFormBlur(id: string, value: any): void;