@mwater/visualization 5.2.0 → 5.3.1

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 (254) hide show
  1. package/lib/ColorComponent.d.ts +10 -11
  2. package/lib/ColorComponent.js +78 -29
  3. package/lib/ColorSchemeFactory.d.ts +13 -2
  4. package/lib/ColorSchemeFactory.js +7 -5
  5. package/lib/CustomColorsContext.d.ts +6 -0
  6. package/lib/CustomColorsContext.js +6 -0
  7. package/lib/FiltersDesignerComponent.d.ts +1 -4
  8. package/lib/FiltersDesignerComponent.js +2 -3
  9. package/lib/LocaleContextInjector.d.ts +5 -11
  10. package/lib/LocaleContextInjector.js +4 -12
  11. package/lib/MWaterAddRelatedFormComponent.js +3 -3
  12. package/lib/MWaterAddRelatedIndicatorComponent.d.ts +1 -4
  13. package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
  14. package/lib/MWaterCompleteTableSelectComponent.d.ts +5 -16
  15. package/lib/MWaterCompleteTableSelectComponent.js +36 -36
  16. package/lib/MWaterContextComponent.d.ts +4 -6
  17. package/lib/MWaterContextComponent.js +4 -13
  18. package/lib/MWaterLoaderComponent.d.ts +5 -3
  19. package/lib/MWaterLoaderComponent.js +2 -1
  20. package/lib/MWaterTableSelectComponent.d.ts +1 -4
  21. package/lib/MWaterTableSelectComponent.js +10 -12
  22. package/lib/UIComponents.d.ts +2 -2
  23. package/lib/UIComponents.js +4 -12
  24. package/lib/axes/AxisBuilder.d.ts +7 -4
  25. package/lib/axes/AxisBuilder.js +3 -1
  26. package/lib/axes/AxisComponent.d.ts +2 -5
  27. package/lib/axes/AxisComponent.js +1 -2
  28. package/lib/axes/ColorPaletteCollectionComponent.d.ts +5 -12
  29. package/lib/axes/ColorPaletteCollectionComponent.js +67 -36
  30. package/lib/dashboards/DashboardComponent.d.ts +4 -12
  31. package/lib/dashboards/DashboardComponent.js +18 -38
  32. package/lib/dashboards/DashboardDesign.d.ts +3 -3
  33. package/lib/dashboards/DashboardUpgrader.js +36 -1
  34. package/lib/dashboards/DashboardViewComponent.d.ts +5 -34
  35. package/lib/dashboards/DashboardViewComponent.js +109 -132
  36. package/lib/dashboards/FontStyleEditor.d.ts +8 -0
  37. package/lib/dashboards/FontStyleEditor.js +130 -0
  38. package/lib/dashboards/LayoutOptionsComponent.d.ts +0 -1
  39. package/lib/dashboards/LayoutOptionsComponent.js +211 -42
  40. package/lib/dashboards/ServerDashboardDataSource.d.ts +1 -2
  41. package/lib/dashboards/ServerDashboardDataSource.js +52 -33
  42. package/lib/dashboards/WidgetComponent.d.ts +3 -3
  43. package/lib/dashboards/WidgetComponent.js +3 -6
  44. package/lib/dashboards/WidgetDataSourcePrioritizer.d.ts +20 -0
  45. package/lib/dashboards/WidgetDataSourcePrioritizer.js +72 -0
  46. package/lib/dashboards/layoutOptions.d.ts +83 -0
  47. package/lib/dashboards/layoutOptions.js +436 -10
  48. package/lib/datagrids/DatagridDesign.d.ts +7 -6
  49. package/lib/datagrids/ServerDatagridDataSource.d.ts +7 -6
  50. package/lib/datagrids/ServerDatagridDataSource.js +87 -33
  51. package/lib/demo.js +3 -3
  52. package/lib/index.css +5 -0
  53. package/lib/index.d.ts +1 -1
  54. package/lib/index.js +0 -1
  55. package/lib/layouts/LayoutManager.d.ts +33 -29
  56. package/lib/layouts/LayoutManager.js +2 -8
  57. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +26 -57
  58. package/lib/layouts/blocks/BlocksDisplayComponent.js +122 -205
  59. package/lib/layouts/blocks/BlocksLayoutManager.d.ts +6 -22
  60. package/lib/layouts/blocks/BlocksLayoutManager.js +5 -14
  61. package/lib/layouts/blocks/HorizontalBlockComponent.d.ts +5 -4
  62. package/lib/layouts/blocks/HorizontalBlockComponent.js +5 -5
  63. package/lib/mWaterLoader.d.ts +2 -0
  64. package/lib/mWaterLoader.js +2 -1
  65. package/lib/maps/AddLayerComponent.d.ts +6 -8
  66. package/lib/maps/AddLayerComponent.js +6 -6
  67. package/lib/maps/BingLayer.js +10 -20
  68. package/lib/maps/BufferLayer.js +2 -1
  69. package/lib/maps/ChoroplethLayer.js +2 -1
  70. package/lib/maps/DirectMapDataSource.d.ts +5 -2
  71. package/lib/maps/DirectMapDataSource.js +2 -1
  72. package/lib/maps/EditPopupComponent.js +2 -1
  73. package/lib/maps/MapComponent.d.ts +1 -4
  74. package/lib/maps/MapComponent.js +3 -3
  75. package/lib/maps/MarkersLayer.js +30 -25
  76. package/lib/maps/RasterMapViewComponent.d.ts +1 -4
  77. package/lib/maps/RasterMapViewComponent.js +3 -3
  78. package/lib/maps/ServerMapDataSource.d.ts +2 -3
  79. package/lib/maps/ServerMapDataSource.js +5 -5
  80. package/lib/maps/VectorMapViewComponent.js +2 -1
  81. package/lib/maps/mapSymbols.js +2 -0
  82. package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
  83. package/lib/maps/vectorMaps.js +61 -55
  84. package/lib/quickfilter/QuickfiltersComponent.d.ts +1 -4
  85. package/lib/quickfilter/QuickfiltersComponent.js +3 -3
  86. package/lib/richtext/DropdownPaletteItem.d.ts +32 -0
  87. package/lib/richtext/DropdownPaletteItem.js +82 -0
  88. package/lib/richtext/FontColorPaletteItem.d.ts +1 -5
  89. package/lib/richtext/FontColorPaletteItem.js +32 -27
  90. package/lib/richtext/ItemsHtmlConverter.js +12 -3
  91. package/lib/richtext/RichTextComponent.d.ts +26 -52
  92. package/lib/richtext/RichTextComponent.js +166 -128
  93. package/lib/valueFormatter.js +6 -1
  94. package/lib/wellknown.d.ts +5 -0
  95. package/lib/wellknown.js +288 -0
  96. package/lib/widgets/DropdownWidgetComponent.d.ts +8 -25
  97. package/lib/widgets/DropdownWidgetComponent.js +48 -25
  98. package/lib/widgets/IFrameWidgetComponent.d.ts +1 -2
  99. package/lib/widgets/ImageWidgetComponent.d.ts +2 -3
  100. package/lib/widgets/MapWidget.d.ts +2 -0
  101. package/lib/widgets/MapWidget.js +2 -1
  102. package/lib/widgets/TOCWidget.js +2 -1
  103. package/lib/widgets/Widget.d.ts +2 -0
  104. package/lib/widgets/WidgetDataSource.d.ts +3 -1
  105. package/lib/widgets/charts/Chart.d.ts +0 -1
  106. package/lib/widgets/charts/ChartViewComponent.d.ts +4 -0
  107. package/lib/widgets/charts/ChartViewComponent.js +11 -3
  108. package/lib/widgets/charts/ChartWidget.d.ts +1 -62
  109. package/lib/widgets/charts/ChartWidget.js +4 -183
  110. package/lib/widgets/charts/ChartWidgetComponent.d.ts +51 -0
  111. package/lib/widgets/charts/ChartWidgetComponent.js +167 -0
  112. package/lib/widgets/charts/calendar/CalendarChartViewComponent.d.ts +1 -4
  113. package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +4 -4
  114. package/lib/widgets/charts/layered/LayeredChart.d.ts +5 -10
  115. package/lib/widgets/charts/layered/LayeredChart.js +6 -7
  116. package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +4 -2
  117. package/lib/widgets/charts/layered/LayeredChartCompiler.js +46 -32
  118. package/lib/widgets/charts/layered/LayeredChartDesign.d.ts +4 -0
  119. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.d.ts +3 -0
  120. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +21 -3
  121. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.d.ts +1 -2
  122. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +2 -1
  123. package/lib/widgets/charts/layered/LayeredChartViewComponent.d.ts +1 -4
  124. package/lib/widgets/charts/layered/LayeredChartViewComponent.js +89 -38
  125. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.d.ts +5 -112
  126. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +122 -166
  127. package/lib/widgets/charts/pivot/PivotChart.d.ts +6 -0
  128. package/lib/widgets/charts/pivot/PivotChart.js +47 -17
  129. package/lib/widgets/charts/pivot/PivotChartDesign.d.ts +11 -0
  130. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +1 -1
  131. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +1 -1
  132. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.d.ts +2 -2
  133. package/lib/widgets/charts/pivot/PivotChartLayoutBuilder.js +20 -36
  134. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +0 -1
  135. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +23 -2
  136. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +215 -181
  137. package/lib/widgets/charts/pivot/PivotChartUtils.d.ts +2 -2
  138. package/lib/widgets/charts/pivot/PivotChartViewComponent.d.ts +9 -28
  139. package/lib/widgets/charts/pivot/PivotChartViewComponent.js +20 -60
  140. package/lib/widgets/charts/table/TableChart.js +8 -4
  141. package/lib/widgets/charts/table/TableChartDesignerComponent.js +3 -3
  142. package/lib/widgets/charts/table/TableChartViewComponent.js +11 -11
  143. package/lib/widgets/text/TextComponent.d.ts +5 -12
  144. package/lib/widgets/text/TextComponent.js +19 -39
  145. package/lib/widgets/text/TextWidget.d.ts +2 -1
  146. package/lib/widgets/text/TextWidget.js +5 -1
  147. package/lib/widgets/text/TextWidgetComponent.d.ts +15 -3
  148. package/lib/widgets/text/TextWidgetComponent.js +76 -19
  149. package/lib/widgets/text/TextWidgetDesign.d.ts +13 -1
  150. package/lib/widgets/text/TextWidgetDesign.js +6 -0
  151. package/package.json +4 -4
  152. package/src/ColorComponent.tsx +177 -0
  153. package/src/ColorSchemeFactory.ts +12 -6
  154. package/src/CustomColorsContext.tsx +9 -0
  155. package/src/FiltersDesignerComponent.ts +3 -4
  156. package/src/LocaleContextInjector.tsx +14 -13
  157. package/src/MWaterAddRelatedFormComponent.ts +3 -3
  158. package/src/MWaterAddRelatedIndicatorComponent.ts +6 -6
  159. package/src/MWaterCompleteTableSelectComponent.tsx +36 -36
  160. package/src/MWaterContextComponent.tsx +8 -17
  161. package/src/MWaterLoaderComponent.ts +6 -3
  162. package/src/MWaterTableSelectComponent.tsx +11 -12
  163. package/src/{UIComponents.ts → UIComponents.tsx} +7 -15
  164. package/src/axes/AxisBuilder.ts +7 -5
  165. package/src/axes/AxisComponent.ts +3 -4
  166. package/src/axes/{ColorPaletteCollectionComponent.ts → ColorPaletteCollectionComponent.tsx} +87 -61
  167. package/src/dashboards/DashboardComponent.tsx +71 -107
  168. package/src/dashboards/DashboardDesign.ts +3 -3
  169. package/src/dashboards/DashboardUpgrader.ts +41 -1
  170. package/src/dashboards/DashboardViewComponent.tsx +313 -0
  171. package/src/dashboards/FontStyleEditor.tsx +166 -0
  172. package/src/dashboards/LayoutOptionsComponent.tsx +380 -75
  173. package/src/dashboards/ServerDashboardDataSource.ts +52 -33
  174. package/src/dashboards/WidgetComponent.tsx +6 -12
  175. package/src/dashboards/WidgetDataSourcePrioritizer.ts +82 -0
  176. package/src/dashboards/layoutOptions.tsx +581 -0
  177. package/src/datagrids/DatagridDesign.ts +8 -3
  178. package/src/datagrids/ServerDatagridDataSource.ts +106 -43
  179. package/src/demo.ts +3 -3
  180. package/src/index.css +5 -0
  181. package/src/index.ts +1 -1
  182. package/src/layouts/LayoutManager.ts +44 -42
  183. package/src/layouts/blocks/BlocksDisplayComponent.tsx +498 -0
  184. package/src/layouts/blocks/BlocksLayoutManager.ts +6 -15
  185. package/src/layouts/blocks/HorizontalBlockComponent.ts +9 -8
  186. package/src/mWaterLoader.ts +4 -1
  187. package/src/maps/AddLayerComponent.ts +9 -9
  188. package/src/maps/BingLayer.ts +16 -26
  189. package/src/maps/BufferLayer.ts +2 -1
  190. package/src/maps/ChoroplethLayer.ts +2 -1
  191. package/src/maps/DirectMapDataSource.ts +12 -3
  192. package/src/maps/EditPopupComponent.ts +2 -1
  193. package/src/maps/MapComponent.ts +3 -3
  194. package/src/maps/MarkersLayer.ts +38 -41
  195. package/src/maps/RasterMapViewComponent.ts +3 -3
  196. package/src/maps/ServerMapDataSource.ts +7 -7
  197. package/src/maps/VectorMapViewComponent.tsx +2 -1
  198. package/src/maps/mapSymbols.ts +2 -0
  199. package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
  200. package/src/maps/vectorMaps.tsx +79 -74
  201. package/src/quickfilter/QuickfiltersComponent.ts +3 -3
  202. package/src/richtext/DropdownPaletteItem.tsx +144 -0
  203. package/src/richtext/FontColorPaletteItem.tsx +160 -0
  204. package/src/richtext/ItemsHtmlConverter.ts +15 -5
  205. package/src/richtext/RichTextComponent.tsx +274 -232
  206. package/src/valueFormatter.ts +5 -1
  207. package/src/wellknown.ts +286 -0
  208. package/src/widgets/DropdownWidgetComponent.tsx +75 -0
  209. package/src/widgets/MapWidget.ts +5 -2
  210. package/src/widgets/TOCWidget.ts +2 -1
  211. package/src/widgets/Widget.ts +3 -0
  212. package/src/widgets/WidgetDataSource.ts +3 -1
  213. package/src/widgets/charts/Chart.ts +1 -1
  214. package/src/widgets/charts/ChartViewComponent.ts +16 -3
  215. package/src/widgets/charts/ChartWidget.ts +3 -275
  216. package/src/widgets/charts/ChartWidgetComponent.tsx +281 -0
  217. package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +4 -4
  218. package/src/widgets/charts/layered/LayeredChart.ts +4 -6
  219. package/src/widgets/charts/layered/LayeredChartCompiler.ts +80 -63
  220. package/src/widgets/charts/layered/LayeredChartDesign.ts +7 -1
  221. package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +43 -10
  222. package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +6 -6
  223. package/src/widgets/charts/layered/LayeredChartViewComponent.ts +140 -88
  224. package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +305 -221
  225. package/src/widgets/charts/pivot/PivotChart.ts +56 -18
  226. package/src/widgets/charts/pivot/PivotChartDesign.ts +12 -0
  227. package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +4 -3
  228. package/src/widgets/charts/pivot/PivotChartLayoutBuilder.ts +39 -76
  229. package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +0 -1
  230. package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +230 -189
  231. package/src/widgets/charts/pivot/PivotChartUtils.ts +4 -4
  232. package/src/widgets/charts/pivot/{PivotChartViewComponent.ts → PivotChartViewComponent.tsx} +86 -89
  233. package/src/widgets/charts/table/TableChart.ts +8 -4
  234. package/src/widgets/charts/table/TableChartDesignerComponent.ts +4 -4
  235. package/src/widgets/charts/table/TableChartViewComponent.ts +13 -14
  236. package/src/widgets/text/TextComponent.tsx +47 -49
  237. package/src/widgets/text/TextWidget.ts +8 -3
  238. package/src/widgets/text/TextWidgetComponent.tsx +249 -0
  239. package/src/widgets/text/TextWidgetDesign.ts +22 -1
  240. package/src/ColorComponent.ts +0 -117
  241. package/src/dashboards/DashboardViewComponent.ts +0 -303
  242. package/src/dashboards/layoutOptions.ts +0 -40
  243. package/src/layout-styles.css +0 -263
  244. package/src/layouts/blocks/BlocksDisplayComponent.ts +0 -461
  245. package/src/layouts/grid/GridLayoutComponent.ts +0 -67
  246. package/src/layouts/grid/GridLayoutManager.ts +0 -185
  247. package/src/layouts/grid/LegoLayoutEngine.ts +0 -142
  248. package/src/layouts/grid/PaletteItemComponent.ts +0 -28
  249. package/src/layouts/grid/README.md +0 -14
  250. package/src/layouts/grid/WidgetContainerComponent.ts +0 -420
  251. package/src/richtext/FontColorPaletteItem.ts +0 -172
  252. package/src/richtext/FontSizePaletteItem.ts +0 -110
  253. package/src/widgets/DropdownWidgetComponent.ts +0 -78
  254. package/src/widgets/text/TextWidgetComponent.ts +0 -120
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ /*
3
+
4
+ https://github.com/mapbox/wellknown
5
+
6
+ Copyright (c) 2016, Mapbox
7
+
8
+ Permission to use, copy, modify, and/or distribute this software for any
9
+ purpose with or without fee is hereby granted, provided that the above
10
+ copyright notice and this permission notice appear in all copies.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19
+
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.stringify = exports.parse = void 0;
23
+ const numberRegexp = /[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;
24
+ // Matches sequences like '100 100' or '100 100 100'.
25
+ const tuples = new RegExp('^' + numberRegexp.source + '(\\s' + numberRegexp.source + '){1,}');
26
+ /*
27
+ * Parse WKT and return GeoJSON.
28
+ *
29
+ * @param {string} _ A WKT geometry
30
+ * @return {?Object} A GeoJSON geometry object
31
+ */
32
+ function parse(input) {
33
+ let parts = input.split(';');
34
+ let _ = parts.pop();
35
+ let srid = (parts.shift() || '').split('=').pop() || '';
36
+ let i = 0;
37
+ function $(re) {
38
+ let match = _.substring(i).match(re);
39
+ if (!match)
40
+ return null;
41
+ else {
42
+ i += match[0].length;
43
+ return match[0];
44
+ }
45
+ }
46
+ function crs(obj) {
47
+ if (obj && srid.match(/\d+/)) {
48
+ obj.crs = {
49
+ type: 'name',
50
+ properties: {
51
+ name: 'urn:ogc:def:crs:EPSG::' + srid
52
+ }
53
+ };
54
+ }
55
+ return obj;
56
+ }
57
+ function white() { $(/^\s*/); }
58
+ function multicoords() {
59
+ white();
60
+ let depth = 0;
61
+ let rings = [];
62
+ let stack = [rings];
63
+ let pointer = rings;
64
+ let elem;
65
+ while (elem =
66
+ $(/^(\()/) ||
67
+ $(/^(\))/) ||
68
+ $(/^(,)/) ||
69
+ $(tuples)) {
70
+ if (elem === '(') {
71
+ stack.push(pointer);
72
+ pointer = [];
73
+ stack[stack.length - 1].push(pointer);
74
+ depth++;
75
+ }
76
+ else if (elem === ')') {
77
+ // For the case: Polygon(), ...
78
+ if (pointer.length === 0)
79
+ return null;
80
+ pointer = stack.pop() || [];
81
+ // the stack was empty, input was malformed
82
+ if (!pointer)
83
+ return null;
84
+ depth--;
85
+ if (depth === 0)
86
+ break;
87
+ }
88
+ else if (elem === ',') {
89
+ pointer = [];
90
+ stack[stack.length - 1].push(pointer);
91
+ }
92
+ else if (!elem.split(/\s/g).some(s => isNaN(s))) {
93
+ Array.prototype.push.apply(pointer, elem.split(/\s/g).map(parseFloat));
94
+ }
95
+ else {
96
+ return null;
97
+ }
98
+ white();
99
+ }
100
+ if (depth !== 0)
101
+ return null;
102
+ return rings;
103
+ }
104
+ function coords() {
105
+ let list = [];
106
+ let item;
107
+ let pt;
108
+ while (pt =
109
+ $(tuples) ||
110
+ $(/^(,)/)) {
111
+ if (pt === ',') {
112
+ list.push(item);
113
+ item = [];
114
+ }
115
+ else if (!pt.split(/\s/g).some(s => isNaN(s))) {
116
+ if (!item)
117
+ item = [];
118
+ Array.prototype.push.apply(item, pt.split(/\s/g).map(parseFloat));
119
+ }
120
+ white();
121
+ }
122
+ if (item)
123
+ list.push(item);
124
+ else
125
+ return null;
126
+ return list.length ? list : null;
127
+ }
128
+ function point() {
129
+ if (!$(/^(point(\sz)?)/i))
130
+ return null;
131
+ white();
132
+ if (!$(/^(\()/))
133
+ return null;
134
+ let c = coords();
135
+ if (!c)
136
+ return null;
137
+ white();
138
+ if (!$(/^(\))/))
139
+ return null;
140
+ return {
141
+ type: 'Point',
142
+ coordinates: c[0]
143
+ };
144
+ }
145
+ function multipoint() {
146
+ if (!$(/^(multipoint(\sz)?)/i))
147
+ return null;
148
+ white();
149
+ let newCoordsFormat = _
150
+ .substring(_.indexOf('(') + 1, _.length - 1)
151
+ .replace(/\(/g, '')
152
+ .replace(/\)/g, '');
153
+ _ = 'MULTIPOINT (' + newCoordsFormat + ')';
154
+ let c = multicoords();
155
+ if (!c)
156
+ return null;
157
+ white();
158
+ return {
159
+ type: 'MultiPoint',
160
+ coordinates: c
161
+ };
162
+ }
163
+ function multilinestring() {
164
+ if (!$(/^(multilinestring(\sz)?)/i))
165
+ return null;
166
+ white();
167
+ let c = multicoords();
168
+ if (!c)
169
+ return null;
170
+ white();
171
+ return {
172
+ type: 'MultiLineString',
173
+ coordinates: c
174
+ };
175
+ }
176
+ function linestring() {
177
+ if (!$(/^(linestring(\sz)?)/i))
178
+ return null;
179
+ white();
180
+ if (!$(/^(\()/))
181
+ return null;
182
+ let c = coords();
183
+ if (!c)
184
+ return null;
185
+ if (!$(/^(\))/))
186
+ return null;
187
+ return {
188
+ type: 'LineString',
189
+ coordinates: c
190
+ };
191
+ }
192
+ function polygon() {
193
+ if (!$(/^(polygon(\sz)?)/i))
194
+ return null;
195
+ white();
196
+ let c = multicoords();
197
+ if (!c)
198
+ return null;
199
+ return {
200
+ type: 'Polygon',
201
+ coordinates: c
202
+ };
203
+ }
204
+ function multipolygon() {
205
+ if (!$(/^(multipolygon(\sz)?)/i))
206
+ return null;
207
+ white();
208
+ let c = multicoords();
209
+ if (!c)
210
+ return null;
211
+ return {
212
+ type: 'MultiPolygon',
213
+ coordinates: c
214
+ };
215
+ }
216
+ function geometrycollection() {
217
+ let geometries = [];
218
+ let geometry;
219
+ if (!$(/^(geometrycollection)/i))
220
+ return null;
221
+ white();
222
+ if (!$(/^(\()/))
223
+ return null;
224
+ while (geometry = root()) {
225
+ geometries.push(geometry);
226
+ white();
227
+ $(/^(,)/);
228
+ white();
229
+ }
230
+ if (!$(/^(\))/))
231
+ return null;
232
+ return {
233
+ type: 'GeometryCollection',
234
+ geometries: geometries
235
+ };
236
+ }
237
+ function root() {
238
+ return point() ||
239
+ linestring() ||
240
+ polygon() ||
241
+ multipoint() ||
242
+ multilinestring() ||
243
+ multipolygon() ||
244
+ geometrycollection();
245
+ }
246
+ return crs(root());
247
+ }
248
+ exports.parse = parse;
249
+ /**
250
+ * Stringifies a GeoJSON object into WKT
251
+ */
252
+ function stringify(gj) {
253
+ if (gj.type === 'Feature') {
254
+ gj = gj.geometry;
255
+ }
256
+ function pairWKT(c) {
257
+ return c.join(' ');
258
+ }
259
+ function ringWKT(r) {
260
+ return r.map(pairWKT).join(', ');
261
+ }
262
+ function ringsWKT(r) {
263
+ return r.map(ringWKT).map(wrapParens).join(', ');
264
+ }
265
+ function multiRingsWKT(r) {
266
+ return r.map(ringsWKT).map(wrapParens).join(', ');
267
+ }
268
+ function wrapParens(s) { return '(' + s + ')'; }
269
+ switch (gj.type) {
270
+ case 'Point':
271
+ return 'POINT (' + pairWKT(gj.coordinates) + ')';
272
+ case 'LineString':
273
+ return 'LINESTRING (' + ringWKT(gj.coordinates) + ')';
274
+ case 'Polygon':
275
+ return 'POLYGON (' + ringsWKT(gj.coordinates) + ')';
276
+ case 'MultiPoint':
277
+ return 'MULTIPOINT (' + ringWKT(gj.coordinates) + ')';
278
+ case 'MultiPolygon':
279
+ return 'MULTIPOLYGON (' + multiRingsWKT(gj.coordinates) + ')';
280
+ case 'MultiLineString':
281
+ return 'MULTILINESTRING (' + ringsWKT(gj.coordinates) + ')';
282
+ case 'GeometryCollection':
283
+ return 'GEOMETRYCOLLECTION (' + gj.geometries.map(stringify).join(', ') + ')';
284
+ default:
285
+ throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');
286
+ }
287
+ }
288
+ exports.stringify = stringify;
@@ -1,31 +1,14 @@
1
- /// <reference types="jquery" />
2
- /// <reference types="bootstrap" />
3
- import React from "react";
1
+ import React, { ReactNode } from "react";
4
2
  export interface DropdownWidgetComponentProps {
5
3
  /** Width specification */
6
4
  width?: any;
7
5
  /** Height specification */
8
6
  height?: any;
9
- dropdownItems: any;
10
- }
11
- export default class DropdownWidgetComponent extends React.Component<DropdownWidgetComponentProps> {
12
- renderDropdownItem: (item: any, i: any) => React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
13
- renderDropdown(): React.ReactElement<{
14
- style: {
15
- position: string;
16
- right: number;
17
- top: number;
18
- cursor: string;
19
- zIndex: number;
20
- };
21
- }, string | React.JSXElementConstructor<any>> | null;
22
- closeMenu: () => JQuery<HTMLElement>;
23
- render(): React.DetailedReactHTMLElement<{
24
- className: string;
25
- onMouseLeave: () => JQuery<HTMLElement>;
26
- style: {
27
- width: any;
28
- height: any;
29
- };
30
- }, HTMLElement>;
7
+ dropdownItems: {
8
+ label: ReactNode;
9
+ onClick: () => void;
10
+ }[];
11
+ children?: ReactNode;
31
12
  }
13
+ declare const DropdownWidgetComponent: (props: DropdownWidgetComponentProps) => React.JSX.Element;
14
+ export default DropdownWidgetComponent;
@@ -1,20 +1,39 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const lodash_1 = __importDefault(require("lodash"));
7
- const jquery_1 = __importDefault(require("jquery"));
8
- const react_1 = __importDefault(require("react"));
9
- const react_dom_1 = __importDefault(require("react-dom"));
10
- const R = react_1.default.createElement;
26
+ const react_1 = __importStar(require("react"));
11
27
  // Widget wrapper that adds a dropdown menu in a gear floating
12
- class DropdownWidgetComponent extends react_1.default.Component {
13
- renderDropdownItem = (item, i) => {
14
- return R("li", { key: `${i}` }, R("a", { className: "dropdown-item", onClick: item.onClick }, item.icon ? R("span", { className: `glyphicon glyphicon-${item.icon} text-muted` }) : undefined, item.icon ? " " : undefined, item.label));
28
+ const DropdownWidgetComponent = (props) => {
29
+ const { width, height, dropdownItems, children } = props;
30
+ const dropdownRef = (0, react_1.useRef)(null);
31
+ const renderDropdownItem = (item, i) => {
32
+ return (react_1.default.createElement("li", { key: `${i}` },
33
+ react_1.default.createElement("a", { className: "dropdown-item", onClick: item.onClick }, item.label)));
15
34
  };
16
- renderDropdown() {
17
- if (this.props.dropdownItems.length === 0) {
35
+ const renderDropdown = () => {
36
+ if (dropdownItems.length === 0) {
18
37
  return null;
19
38
  }
20
39
  const dropdownStyle = {
@@ -24,18 +43,22 @@ class DropdownWidgetComponent extends react_1.default.Component {
24
43
  cursor: "pointer",
25
44
  zIndex: 1029
26
45
  };
27
- const elem = R("div", { style: dropdownStyle, "data-bs-toggle": "dropdown" }, R("div", { className: "mwater-visualization-simple-widget-gear-button" }, R("span", { className: "fas fa-cog" })));
28
- return R("div", { style: dropdownStyle }, elem, R("ul", { className: "dropdown-menu dropdown-menu-end", style: { top: 25 } }, lodash_1.default.map(this.props.dropdownItems, this.renderDropdownItem)));
29
- }
30
- closeMenu = () => {
31
- return (0, jquery_1.default)(react_dom_1.default.findDOMNode(this)).find('[data-bs-toggle="dropdown"]').parent().removeClass("open");
46
+ return (react_1.default.createElement("div", { style: dropdownStyle, ref: dropdownRef },
47
+ react_1.default.createElement("div", { style: dropdownStyle, "data-bs-toggle": "dropdown" },
48
+ react_1.default.createElement("div", { className: "mwater-visualization-simple-widget-gear-button" },
49
+ react_1.default.createElement("span", { className: "fas fa-cog" }))),
50
+ react_1.default.createElement("ul", { className: "dropdown-menu dropdown-menu-end", style: { top: 25 } }, dropdownItems.map(renderDropdownItem))));
32
51
  };
33
- render() {
34
- return R("div", {
35
- className: "mwater-visualization-simple-widget",
36
- onMouseLeave: this.closeMenu,
37
- style: { width: this.props.width, height: this.props.height }
38
- }, this.props.children, this.renderDropdown());
39
- }
40
- }
52
+ const closeMenu = (0, react_1.useCallback)(() => {
53
+ if (dropdownRef.current) {
54
+ const dropdownToggle = dropdownRef.current.querySelector('[data-bs-toggle="dropdown"]');
55
+ if (dropdownToggle) {
56
+ dropdownToggle.parentElement?.classList.remove('open');
57
+ }
58
+ }
59
+ }, []);
60
+ return (react_1.default.createElement("div", { className: "mwater-visualization-simple-widget", onMouseLeave: closeMenu, style: { width, height } },
61
+ children,
62
+ renderDropdown()));
63
+ };
41
64
  exports.default = DropdownWidgetComponent;
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
- import DropdownWidgetComponent from "./DropdownWidgetComponent";
3
2
  import ModalPopupComponent from "@mwater/react-library/lib/ModalPopupComponent";
4
3
  export interface IFrameWidgetComponentProps {
5
4
  design: any;
@@ -21,6 +20,6 @@ export default class IFrameWidgetComponent extends React.Component<IFrameWidgetC
21
20
  className: string;
22
21
  onClick: () => void;
23
22
  }, HTMLElement>;
24
- render(): React.CElement<import("./DropdownWidgetComponent").DropdownWidgetComponentProps, DropdownWidgetComponent>;
23
+ render(): React.FunctionComponentElement<import("./DropdownWidgetComponent").DropdownWidgetComponentProps>;
25
24
  }
26
25
  export {};
@@ -1,7 +1,6 @@
1
1
  import React from "react";
2
2
  import AsyncLoadComponent from "@mwater/react-library/lib/AsyncLoadComponent";
3
3
  import AutoSizeComponent from "@mwater/react-library/lib/AutoSizeComponent";
4
- import DropdownWidgetComponent from "./DropdownWidgetComponent";
5
4
  import ModalPopupComponent from "@mwater/react-library/lib/ModalPopupComponent";
6
5
  import { DataSource, Schema } from "@mwater/expressions";
7
6
  import { WidgetDataSource } from "./WidgetDataSource";
@@ -25,7 +24,7 @@ export default class ImageWidgetComponent extends AsyncLoadComponent<ImageWidget
25
24
  }> {
26
25
  editor: ImageWidgetDesignComponent | null;
27
26
  isLoadNeeded(newProps: ImageWidgetComponentProps, oldProps: ImageWidgetComponentProps): boolean;
28
- load(props: ImageWidgetComponentProps, prevProps: ImageWidgetComponentProps, callback: any): void;
27
+ load(props: ImageWidgetComponentProps, prevProps: ImageWidgetComponentProps, callback: any): void | AbortController | undefined;
29
28
  handleStartEditing: () => void;
30
29
  renderEditLink(): React.DetailedReactHTMLElement<{
31
30
  className: string;
@@ -34,7 +33,7 @@ export default class ImageWidgetComponent extends AsyncLoadComponent<ImageWidget
34
33
  renderEditor(): React.CElement<any, ImageWidgetDesignComponent>;
35
34
  renderExpression(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.CElement<import("@mwater/react-library/lib/AutoSizeComponent").AutoSizeComponentProps, AutoSizeComponent> | null;
36
35
  renderContent(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.CElement<import("@mwater/react-library/lib/AutoSizeComponent").AutoSizeComponentProps, AutoSizeComponent> | React.CElement<RotatedImageComponentProps, RotatedImageComponent> | null;
37
- render(): React.CElement<import("./DropdownWidgetComponent").DropdownWidgetComponentProps, DropdownWidgetComponent>;
36
+ render(): React.FunctionComponentElement<import("./DropdownWidgetComponent").DropdownWidgetComponentProps>;
38
37
  }
39
38
  interface ImageWidgetDesignComponentProps {
40
39
  design: any;
@@ -26,6 +26,8 @@ interface MapWidgetComponentProps {
26
26
  /** called with (scope) as a scope to apply to self and filter to apply to other widgets. See WidgetScoper for details */
27
27
  onScopeChange?: any;
28
28
  onRowClick?: any;
29
+ /** TODO: implement refreshing */
30
+ refreshKey?: any;
29
31
  }
30
32
  interface MapWidgetComponentState {
31
33
  editDesign: any;
@@ -60,7 +60,8 @@ class MapWidget extends Widget_1.default {
60
60
  onScopeChange: options.onScopeChange,
61
61
  width: options.width,
62
62
  height: options.height,
63
- onRowClick: options.onRowClick
63
+ onRowClick: options.onRowClick,
64
+ refreshKey: options.refreshKey
64
65
  });
65
66
  }
66
67
  // Get a list of table ids that can be filtered on
@@ -151,6 +151,7 @@ class TOCWidgetViewComponent extends react_1.default.Component {
151
151
  onScrollToTOCEntry: prop_types_1.default.func
152
152
  };
153
153
  handleEntryClick = (tocEntry) => {
154
+ debugger;
154
155
  return this.props.onScrollToTOCEntry?.(tocEntry.widgetId, tocEntry.id);
155
156
  };
156
157
  renderTOCEntry(tocEntry, index) {
@@ -203,7 +204,7 @@ class TOCWidgetViewComponent extends react_1.default.Component {
203
204
  return this.renderTOCEntry(tocEntry, i);
204
205
  }),
205
206
  // Add placeholder if none and editable
206
- this.props.onDesignChange && this.props.tocEntries.length === 0
207
+ this.props.onDesignChange && (this.props.tocEntries || []).length === 0
207
208
  ? R("div", { className: "text-muted" }, "Table of Contents will appear here as text blocks with headings are added to the dashboard")
208
209
  : undefined);
209
210
  }
@@ -39,6 +39,8 @@ export interface CreateViewElementOptions {
39
39
  widgetRef?: (widget: any) => void;
40
40
  /** called with (widgetId, tocEntryId) to scroll to TOC entry */
41
41
  onScrollToTOCEntry?: (widgetId: string, tocEntryId: string) => void;
42
+ /** A key that changes when the widget should be refreshed */
43
+ refreshKey?: any;
42
44
  }
43
45
  export default class Widget {
44
46
  /** Creates a React element that is a view of the widget */
@@ -10,8 +10,10 @@ export interface WidgetDataSource {
10
10
  * design: design of the widget. Ignored in the case of server-side rendering
11
11
  * filters: array of filters to apply. Each is { table: table id, jsonql: jsonql condition with {alias} for tableAlias. Use injectAlias to correct
12
12
  * callback: (error, data)
13
+ *
14
+ * Can be aborted by cancelling the AbortController
13
15
  */
14
- getData(design: any, filters: JsonQLFilter[], callback: (error: any, data?: any) => void): void;
16
+ getData(design: any, filters: JsonQLFilter[], callback: (error: any, data?: any) => void): AbortController | void | undefined;
15
17
  /** For map widgets, the following is required */
16
18
  getMapDataSource?(design: MapDesign): MapDataSource;
17
19
  /** Get the url to download an image (by id from an image or imagelist column)
@@ -48,7 +48,6 @@ export default class Chart {
48
48
  createViewElement(options: ChartCreateViewElementOptions): ReactNode;
49
49
  createDropdownItems(design: any, schema: Schema, widgetDataSource: WidgetDataSource, filters: any): {
50
50
  label: ReactNode;
51
- icon?: string;
52
51
  onClick: () => void;
53
52
  }[];
54
53
  createDataTable(design: any, schema: Schema, dataSource: DataSource, data: any, locale: any): any[][];
@@ -24,6 +24,8 @@ export interface ChartViewComponentProps {
24
24
  /** called with (scope) as a scope to apply to self and filter to apply to other widgets. See WidgetScoper for details */
25
25
  onScopeChange?: (scope: WidgetScope | null) => void;
26
26
  onRowClick?: (tableId: string, rowId: any) => void;
27
+ /** A key that changes when the widget should be refreshed */
28
+ refreshKey?: any;
27
29
  }
28
30
  interface ChartViewComponentState {
29
31
  cacheExpiry?: any;
@@ -40,6 +42,8 @@ interface ChartViewComponentState {
40
42
  export default class ChartViewComponent extends React.Component<ChartViewComponentProps, ChartViewComponentState> {
41
43
  /** Ordinal of update (0, 1, 2...) to ensure using latest */
42
44
  updateSeq: number;
45
+ /** Abort controller for the current data load */
46
+ abortController: AbortController | undefined;
43
47
  constructor(props: ChartViewComponentProps);
44
48
  componentDidMount(): void;
45
49
  componentDidUpdate(prevProps: ChartViewComponentProps): void;
@@ -13,6 +13,8 @@ const R = react_1.default.createElement;
13
13
  class ChartViewComponent extends react_1.default.Component {
14
14
  /** Ordinal of update (0, 1, 2...) to ensure using latest */
15
15
  updateSeq;
16
+ /** Abort controller for the current data load */
17
+ abortController;
16
18
  constructor(props) {
17
19
  super(props);
18
20
  this.updateSeq = 0;
@@ -31,7 +33,8 @@ class ChartViewComponent extends react_1.default.Component {
31
33
  componentDidUpdate(prevProps) {
32
34
  if (!lodash_1.default.isEqual(prevProps.design, this.props.design) ||
33
35
  !lodash_1.default.isEqual(prevProps.filters, this.props.filters) ||
34
- this.props.dataSource.getCacheExpiry() !== this.state.cacheExpiry) {
36
+ this.props.dataSource.getCacheExpiry() !== this.state.cacheExpiry ||
37
+ prevProps.refreshKey !== this.props.refreshKey) {
35
38
  // Save new cache expiry
36
39
  this.setState({ cacheExpiry: this.props.dataSource.getCacheExpiry() });
37
40
  this.updateData();
@@ -46,20 +49,25 @@ class ChartViewComponent extends react_1.default.Component {
46
49
  return;
47
50
  }
48
51
  this.updateSeq += 1;
52
+ if (this.abortController) {
53
+ this.abortController.abort("Aborting previous data load");
54
+ }
49
55
  // Set loading data after interval to prevent unnecessary refresh
50
56
  const dataLoadingTimeout = setTimeout(() => {
51
57
  this.setState({ dataLoading: true });
52
58
  }, 100);
53
59
  // Store updateSeq to check if latest
54
60
  const loadingUpdateSeq = this.updateSeq;
55
- this.props.widgetDataSource.getData(design, this.props.filters || [], (error, data) => {
61
+ this.abortController = this.props.widgetDataSource.getData(design, this.props.filters || [], (error, data) => {
56
62
  // Prevent setting data loading if ready
57
63
  clearTimeout(dataLoadingTimeout);
58
64
  // Only update if latest
59
65
  if (loadingUpdateSeq == this.updateSeq) {
66
+ // Clear the abort controller
67
+ this.abortController = undefined;
60
68
  this.setState({ dataLoading: false, dataError: error, data, validDesign: design });
61
69
  }
62
- });
70
+ }) ?? undefined;
63
71
  }
64
72
  renderSpinner() {
65
73
  return R("div", { style: { position: "absolute", bottom: "50%", left: 0, right: 0, textAlign: "center", fontSize: 20 } }, R("i", { className: "fa fa-spinner fa-spin" }));
@@ -1,13 +1,8 @@
1
- import PropTypes from "prop-types";
2
1
  import React from "react";
3
2
  import Widget, { CreateViewElementOptions } from "./../Widget";
4
- import ActionCancelModalComponent from "@mwater/react-library/lib/ActionCancelModalComponent";
5
- import ChartViewComponent from "./ChartViewComponent";
6
- import ModalWindowComponent from "@mwater/react-library/lib/ModalWindowComponent";
7
3
  import { DataSource, Schema } from "@mwater/expressions";
8
- import { WidgetDataSource } from "../WidgetDataSource";
9
4
  import Chart from "./Chart";
10
- import { JsonQLFilter } from "../../JsonQLFilter";
5
+ import { ChartWidgetComponent } from "./ChartWidgetComponent";
11
6
  /** A widget which is a chart */
12
7
  export default class ChartWidget extends Widget {
13
8
  chart: Chart;
@@ -17,59 +12,3 @@ export default class ChartWidget extends Widget {
17
12
  getFilterableTables(design: any, schema: Schema): string[];
18
13
  isAutoHeight(): boolean;
19
14
  }
20
- interface ChartWidgetComponentProps {
21
- /** schema to use */
22
- schema: Schema;
23
- /** data source to use */
24
- dataSource: DataSource;
25
- widgetDataSource: WidgetDataSource;
26
- /** Chart object to use */
27
- chart: Chart;
28
- /** Design of chart */
29
- design: any;
30
- /** null/undefined for readonly */
31
- onDesignChange?: any;
32
- /** Width in pixels */
33
- width: number;
34
- /** Height, if a fixed height widget, or one that uses aspect ratio */
35
- height?: number;
36
- /** scope of the widget (when the widget self-selects a particular scope) */
37
- scope?: any;
38
- /** array of filters to apply. Each is { table: table id, jsonql: jsonql condition with {alias} for tableAlias. Use injectAlias to correct */
39
- filters: JsonQLFilter[];
40
- /** called with (scope) as a scope to apply to self and filter to apply to other widgets. See WidgetScoper for details */
41
- onScopeChange?: any;
42
- /** Called with (tableId, rowId) when item is clicked */
43
- onRowClick?: any;
44
- /** Connects move handle for dragging (see WidgetContainerComponent) TODO REMOVE */
45
- connectMoveHandle?: any;
46
- /** Connects resize handle for dragging (see WidgetContainerComponent) TODO REMOVE */
47
- connectResizeHandle?: any;
48
- }
49
- declare class ChartWidgetComponent extends React.PureComponent<ChartWidgetComponentProps, {
50
- editDesign: any;
51
- }> {
52
- static contextTypes: {
53
- locale: PropTypes.Requireable<string>;
54
- };
55
- constructor(props: any);
56
- handleSaveCsvFile: () => void;
57
- handleStartEditing: () => void;
58
- handleEndEditing: () => void;
59
- handleCancelEditing: () => void;
60
- handleEditDesignChange: (design: any) => void;
61
- renderChart(design: any, onDesignChange: any, width: any, height: any): React.CElement<import("./ChartViewComponent").ChartViewComponentProps, ChartViewComponent>;
62
- renderEditor(): React.CElement<import("@mwater/react-library/lib/ModalWindowComponent").ModalWindowComponentProps, ModalWindowComponent> | React.CElement<import("@mwater/react-library/lib/ActionCancelModalComponent").ActionCancelModalComponentProps, ActionCancelModalComponent> | null;
63
- renderEditLink(): React.DetailedReactHTMLElement<{
64
- className: string;
65
- onClick: () => void;
66
- }, HTMLElement>;
67
- render(): React.DetailedReactHTMLElement<{
68
- onDoubleClick: (() => void) | undefined;
69
- style: {
70
- position: "relative";
71
- width: number;
72
- };
73
- }, HTMLElement>;
74
- }
75
- export {};