@mwater/visualization 5.3.2 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/lib/ColorComponent.d.ts +1 -1
  2. package/lib/ColorComponent.js +2 -2
  3. package/lib/CustomColorsContext.d.ts +0 -1
  4. package/lib/DateRangeComponent.js +10 -10
  5. package/lib/LocaleContextInjector.js +2 -2
  6. package/lib/MWaterAddRelatedFormComponent.js +8 -8
  7. package/lib/MWaterAddRelatedIndicatorComponent.d.ts +0 -1
  8. package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
  9. package/lib/MWaterAssetSystemsListComponent.d.ts +3 -3
  10. package/lib/MWaterAssetSystemsListComponent.js +4 -3
  11. package/lib/MWaterCompleteTableSelectComponent.d.ts +33 -34
  12. package/lib/MWaterCompleteTableSelectComponent.js +39 -38
  13. package/lib/MWaterCustomTablesetListComponent.d.ts +3 -3
  14. package/lib/MWaterCustomTablesetListComponent.js +5 -4
  15. package/lib/MWaterGlobalFiltersComponent.js +4 -4
  16. package/lib/MWaterLoaderComponent.d.ts +5 -5
  17. package/lib/MWaterLoaderComponent.js +1 -1
  18. package/lib/MWaterMetricsTableListComponent.d.ts +3 -3
  19. package/lib/MWaterMetricsTableListComponent.js +4 -3
  20. package/lib/MWaterResponsesFilterComponent.js +4 -4
  21. package/lib/MWaterTableSelectComponent.d.ts +1 -1
  22. package/lib/MWaterTableSelectComponent.js +5 -5
  23. package/lib/PopoverComponent.d.ts +4 -4
  24. package/lib/UIComponents.d.ts +5 -2
  25. package/lib/axes/AxisBuilder.js +42 -43
  26. package/lib/axes/AxisColorEditorComponent.d.ts +4 -4
  27. package/lib/axes/AxisColorEditorComponent.js +25 -60
  28. package/lib/axes/AxisComponent.d.ts +2 -3
  29. package/lib/axes/AxisComponent.js +20 -20
  30. package/lib/axes/BinsComponent.js +6 -6
  31. package/lib/axes/CategoryMapComponent.d.ts +2 -1
  32. package/lib/axes/CategoryMapComponent.js +7 -5
  33. package/lib/axes/ColorPaletteCollectionComponent.js +3 -3
  34. package/lib/axes/RangesComponent.js +12 -12
  35. package/lib/compressJson.js +1 -1
  36. package/lib/dashboards/DashboardComponent.d.ts +2 -0
  37. package/lib/dashboards/DashboardComponent.js +15 -8
  38. package/lib/dashboards/DashboardUtils.js +2 -3
  39. package/lib/dashboards/DashboardViewComponent.js +4 -4
  40. package/lib/dashboards/FontStyleEditor.js +8 -8
  41. package/lib/dashboards/LayoutOptionsComponent.js +101 -74
  42. package/lib/dashboards/SettingsModalComponent.d.ts +3 -4
  43. package/lib/dashboards/SettingsModalComponent.js +54 -40
  44. package/lib/dashboards/WidgetComponent.d.ts +0 -1
  45. package/lib/dashboards/WidgetComponent.js +1 -2
  46. package/lib/dashboards/layoutOptions.js +11 -7
  47. package/lib/datagrids/DatagridComponent.d.ts +1 -8
  48. package/lib/datagrids/DatagridComponent.js +14 -13
  49. package/lib/datagrids/DatagridDesignerComponent.js +18 -18
  50. package/lib/datagrids/DatagridQueryBuilder.d.ts +4 -4
  51. package/lib/datagrids/DatagridUtils.js +2 -2
  52. package/lib/datagrids/DatagridViewComponent.js +4 -4
  53. package/lib/datagrids/ExprCellComponent.js +1 -1
  54. package/lib/datagrids/FindReplaceModalComponent.js +17 -17
  55. package/lib/datagrids/OrderBysDesignerComponent.js +2 -2
  56. package/lib/languages.js +2 -2
  57. package/lib/layouts/DecoratedBlockComponent.js +2 -2
  58. package/lib/layouts/blocks/BlocksDisplayComponent.js +13 -13
  59. package/lib/layouts/blocks/BlocksLayoutManager.d.ts +2 -1
  60. package/lib/layouts/blocks/ClipboardPaletteItemComponent.js +3 -3
  61. package/lib/layouts/blocks/HorizontalBlockComponent.js +3 -3
  62. package/lib/layouts/blocks/blockUtils.js +4 -5
  63. package/lib/mWaterLoader.js +1 -1
  64. package/lib/maps/AddLayerComponent.js +13 -13
  65. package/lib/maps/AdminScopeAndDetailLevelComponent.js +5 -5
  66. package/lib/maps/BaseLayerDesignerComponent.js +2 -2
  67. package/lib/maps/BufferLayer.js +7 -7
  68. package/lib/maps/BufferLayerDesignerComponent.js +8 -8
  69. package/lib/maps/ChoroplethLayer.js +6 -6
  70. package/lib/maps/ChoroplethLayerDesigner.js +16 -16
  71. package/lib/maps/ClusterLayer.js +3 -3
  72. package/lib/maps/ClusterLayerDesignerComponent.js +5 -5
  73. package/lib/maps/DetailLevelSelectComponent.d.ts +11 -1
  74. package/lib/maps/DetailLevelSelectComponent.js +3 -3
  75. package/lib/maps/DirectMapDataSource.js +1 -2
  76. package/lib/maps/EditHoverOver.js +7 -5
  77. package/lib/maps/EditPopupComponent.js +2 -2
  78. package/lib/maps/GridLayer.js +5 -5
  79. package/lib/maps/GridLayerDesigner.js +15 -15
  80. package/lib/maps/LayerSwitcherComponent.js +1 -2
  81. package/lib/maps/LeafletMapComponent.d.ts +1 -1
  82. package/lib/maps/LeafletMapComponent.js +1 -1
  83. package/lib/maps/LegendComponent.js +1 -1
  84. package/lib/maps/MWaterServerLayer.d.ts +0 -1
  85. package/lib/maps/MWaterServerLayer.js +1 -1
  86. package/lib/maps/MapComponent.js +8 -8
  87. package/lib/maps/MapControlComponent.js +1 -1
  88. package/lib/maps/MapDesignerComponent.js +16 -16
  89. package/lib/maps/MapFiltersDesignerComponent.js +2 -2
  90. package/lib/maps/MapLayerViewDesignerComponent.js +8 -8
  91. package/lib/maps/MapUtils.js +6 -7
  92. package/lib/maps/MapViewComponent.js +1 -2
  93. package/lib/maps/MarkerSymbolSelectComponent.js +3 -3
  94. package/lib/maps/MarkersLayer.js +6 -7
  95. package/lib/maps/MarkersLayerDesignerComponent.js +22 -22
  96. package/lib/maps/PopupFilterJoinsEditComponent.js +4 -4
  97. package/lib/maps/PopupFilterJoinsUtils.js +2 -3
  98. package/lib/maps/RasterMapViewComponent.d.ts +3 -3
  99. package/lib/maps/RasterMapViewComponent.js +4 -4
  100. package/lib/maps/RegionSelectComponent.d.ts +1 -3
  101. package/lib/maps/RegionSelectComponent.js +1 -2
  102. package/lib/maps/ScopeAndDetailLevelComponent.js +3 -3
  103. package/lib/maps/TileUrlLayer.d.ts +1 -1
  104. package/lib/maps/TileUrlLayer.js +3 -3
  105. package/lib/maps/VectorMapViewComponent.js +6 -7
  106. package/lib/maps/ZoomLevelsComponent.js +5 -5
  107. package/lib/maps/mapSymbols.d.ts +1 -1
  108. package/lib/maps/mapSymbols.js +51 -50
  109. package/lib/maps/mapboxUtils.js +2 -3
  110. package/lib/maps/maps.d.ts +0 -1
  111. package/lib/maps/vectorMaps.js +14 -15
  112. package/lib/memoizedDebounce.js +1 -2
  113. package/lib/quickfilter/DateExprComponent.d.ts +4 -0
  114. package/lib/quickfilter/DateExprComponent.js +17 -16
  115. package/lib/quickfilter/IdArrayQuickfilterComponent.js +1 -1
  116. package/lib/quickfilter/QuickfilterUtils.js +1 -2
  117. package/lib/quickfilter/QuickfiltersComponent.d.ts +23 -2
  118. package/lib/quickfilter/QuickfiltersComponent.js +2 -2
  119. package/lib/quickfilter/QuickfiltersDesignComponent.js +8 -8
  120. package/lib/quickfilter/TextLiteralComponent.d.ts +35 -2
  121. package/lib/quickfilter/TextLiteralComponent.js +6 -6
  122. package/lib/richtext/DropdownPaletteItem.js +1 -1
  123. package/lib/richtext/ExprItemsHtmlConverter.js +8 -10
  124. package/lib/richtext/FontColorPaletteItem.js +7 -7
  125. package/lib/richtext/ItemsHtmlConverter.js +0 -1
  126. package/lib/richtext/RichTextComponent.d.ts +1 -0
  127. package/lib/richtext/RichTextComponent.js +33 -29
  128. package/lib/valueFormatter.js +18 -19
  129. package/lib/wellknown.js +2 -3
  130. package/lib/widgets/IFrameWidgetComponent.d.ts +9 -1
  131. package/lib/widgets/IFrameWidgetComponent.js +3 -3
  132. package/lib/widgets/ImageUploaderComponent.js +5 -5
  133. package/lib/widgets/ImageWidget.js +2 -2
  134. package/lib/widgets/ImageWidgetComponent.d.ts +9 -1
  135. package/lib/widgets/ImageWidgetComponent.js +20 -20
  136. package/lib/widgets/ImagelistCarouselComponent.js +1 -1
  137. package/lib/widgets/MapWidget.js +2 -2
  138. package/lib/widgets/MarkdownWidget.d.ts +1 -1
  139. package/lib/widgets/MarkdownWidget.js +1 -1
  140. package/lib/widgets/TOCWidget.js +11 -12
  141. package/lib/widgets/WidgetScopesViewComponent.js +1 -1
  142. package/lib/widgets/charts/Chart.js +1 -1
  143. package/lib/widgets/charts/ChartViewComponent.js +9 -9
  144. package/lib/widgets/charts/ChartWidgetComponent.js +4 -4
  145. package/lib/widgets/charts/calendar/CalendarChart.js +4 -4
  146. package/lib/widgets/charts/calendar/CalendarChartDesignerComponent.js +7 -7
  147. package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +3 -3
  148. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +18 -5
  149. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +3 -4
  150. package/lib/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.js +5 -5
  151. package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.d.ts +5 -19
  152. package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.js +66 -70
  153. package/lib/widgets/charts/imagemosaic/ImagePopupComponent.js +1 -1
  154. package/lib/widgets/charts/layered/LayeredChart.d.ts +1 -1
  155. package/lib/widgets/charts/layered/LayeredChart.js +9 -9
  156. package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +8 -8
  157. package/lib/widgets/charts/layered/LayeredChartCompiler.js +15 -15
  158. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +33 -33
  159. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +16 -16
  160. package/lib/widgets/charts/layered/LayeredChartUtils.js +1 -2
  161. package/lib/widgets/charts/layered/LayeredChartViewComponent.js +4 -4
  162. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +18 -17
  163. package/lib/widgets/charts/pivot/PivotChart.d.ts +1 -1
  164. package/lib/widgets/charts/pivot/PivotChart.js +12 -4
  165. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +5 -5
  166. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +10 -10
  167. package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +5 -5
  168. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +1 -1
  169. package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +5 -6
  170. package/lib/widgets/charts/pivot/PivotChartUtils.js +11 -12
  171. package/lib/widgets/charts/pivot/PivotChartViewComponent.js +9 -9
  172. package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +30 -30
  173. package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +28 -26
  174. package/lib/widgets/charts/table/OrderingsComponent.js +2 -2
  175. package/lib/widgets/charts/table/TableChart.js +3 -3
  176. package/lib/widgets/charts/table/TableChartDesignerComponent.js +17 -17
  177. package/lib/widgets/charts/table/TableChartViewComponent.js +3 -3
  178. package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -3
  179. package/lib/widgets/text/ExprInsertModalComponent.js +2 -14
  180. package/lib/widgets/text/ExprItemEditorComponent.js +4 -4
  181. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -3
  182. package/lib/widgets/text/ExprUpdateModalComponent.js +3 -15
  183. package/lib/widgets/text/TextComponent.js +3 -3
  184. package/lib/widgets/text/TextWidget.d.ts +1 -1
  185. package/lib/widgets/text/TextWidgetComponent.js +11 -11
  186. package/lib/widgets/text/TextWidgetDesign.d.ts +2 -1
  187. package/lib/widgets/text/TextWidgetDesign.js +1 -2
  188. package/package.json +3 -3
  189. package/src/ColorComponent.tsx +2 -2
  190. package/src/DateRangeComponent.ts +10 -10
  191. package/src/LocaleContextInjector.tsx +1 -1
  192. package/src/MWaterAddRelatedFormComponent.ts +7 -7
  193. package/src/MWaterAddRelatedIndicatorComponent.ts +5 -5
  194. package/src/MWaterAssetSystemsListComponent.tsx +3 -3
  195. package/src/MWaterCompleteTableSelectComponent.tsx +36 -35
  196. package/src/MWaterCustomTablesetListComponent.tsx +4 -4
  197. package/src/MWaterGlobalFiltersComponent.ts +4 -4
  198. package/src/MWaterLoaderComponent.ts +1 -1
  199. package/src/MWaterMetricsTableListComponent.tsx +3 -3
  200. package/src/MWaterResponsesFilterComponent.ts +6 -6
  201. package/src/MWaterTableSelectComponent.tsx +6 -7
  202. package/src/axes/AxisBuilder.ts +42 -44
  203. package/src/axes/AxisColorEditorComponent.tsx +178 -0
  204. package/src/axes/AxisComponent.ts +20 -20
  205. package/src/axes/BinsComponent.tsx +6 -6
  206. package/src/axes/CategoryMapComponent.ts +10 -10
  207. package/src/axes/ColorPaletteCollectionComponent.tsx +3 -3
  208. package/src/axes/RangesComponent.ts +14 -14
  209. package/src/dashboards/DashboardComponent.tsx +21 -9
  210. package/src/dashboards/DashboardViewComponent.tsx +3 -3
  211. package/src/dashboards/FontStyleEditor.tsx +8 -8
  212. package/src/dashboards/LayoutOptionsComponent.tsx +74 -74
  213. package/src/dashboards/SettingsModalComponent.tsx +134 -107
  214. package/src/dashboards/layoutOptions.tsx +5 -1
  215. package/src/datagrids/DatagridComponent.ts +65 -62
  216. package/src/datagrids/DatagridDesignerComponent.tsx +17 -17
  217. package/src/datagrids/DatagridUtils.ts +2 -2
  218. package/src/datagrids/DatagridViewComponent.ts +3 -3
  219. package/src/datagrids/ExprCellComponent.ts +1 -1
  220. package/src/datagrids/FindReplaceModalComponent.ts +13 -13
  221. package/src/datagrids/OrderBysDesignerComponent.tsx +2 -2
  222. package/src/globals.d.ts +7 -1
  223. package/src/languages.ts +2 -2
  224. package/src/layouts/blocks/BlocksDisplayComponent.tsx +13 -13
  225. package/src/layouts/blocks/BlocksLayoutManager.ts +3 -2
  226. package/src/layouts/blocks/ClipboardPaletteItemComponent.ts +3 -3
  227. package/src/maps/AddLayerComponent.ts +13 -13
  228. package/src/maps/AdminScopeAndDetailLevelComponent.ts +5 -5
  229. package/src/maps/BaseLayerDesignerComponent.ts +8 -8
  230. package/src/maps/BufferLayer.ts +5 -5
  231. package/src/maps/BufferLayerDesignerComponent.ts +8 -8
  232. package/src/maps/ChoroplethLayer.ts +3 -3
  233. package/src/maps/ChoroplethLayerDesigner.tsx +16 -16
  234. package/src/maps/ClusterLayer.ts +3 -3
  235. package/src/maps/ClusterLayerDesignerComponent.ts +5 -5
  236. package/src/maps/DetailLevelSelectComponent.ts +3 -3
  237. package/src/maps/EditHoverOver.tsx +5 -5
  238. package/src/maps/EditPopupComponent.ts +2 -2
  239. package/src/maps/GridLayer.ts +5 -5
  240. package/src/maps/GridLayerDesigner.tsx +15 -16
  241. package/src/maps/MWaterServerLayer.ts +1 -1
  242. package/src/maps/MapComponent.ts +6 -6
  243. package/src/maps/MapControlComponent.ts +1 -1
  244. package/src/maps/MapDesignerComponent.tsx +20 -20
  245. package/src/maps/MapFiltersDesignerComponent.tsx +3 -3
  246. package/src/maps/MapLayerViewDesignerComponent.ts +9 -9
  247. package/src/maps/MarkerSymbolSelectComponent.ts +4 -5
  248. package/src/maps/MarkersLayerDesignerComponent.ts +22 -22
  249. package/src/maps/PopupFilterJoinsEditComponent.ts +4 -4
  250. package/src/maps/RasterMapViewComponent.ts +2 -2
  251. package/src/maps/RegionSelectComponent.ts +1 -2
  252. package/src/maps/ScopeAndDetailLevelComponent.ts +3 -3
  253. package/src/maps/TileUrlLayer.tsx +3 -3
  254. package/src/maps/VectorMapViewComponent.tsx +5 -5
  255. package/src/maps/ZoomLevelsComponent.ts +6 -6
  256. package/src/maps/mapSymbols.ts +49 -49
  257. package/src/maps/vectorMaps.tsx +2 -2
  258. package/src/quickfilter/DateExprComponent.ts +19 -18
  259. package/src/quickfilter/IdArrayQuickfilterComponent.ts +1 -1
  260. package/src/quickfilter/QuickfiltersComponent.ts +1 -1
  261. package/src/quickfilter/QuickfiltersDesignComponent.tsx +9 -9
  262. package/src/quickfilter/TextLiteralComponent.ts +4 -4
  263. package/src/richtext/DropdownPaletteItem.tsx +1 -1
  264. package/src/richtext/ExprItemsHtmlConverter.ts +8 -10
  265. package/src/richtext/ItemsHtmlConverter.ts +0 -1
  266. package/src/richtext/RichTextComponent.tsx +31 -31
  267. package/src/valueFormatter.ts +14 -14
  268. package/src/widgets/IFrameWidgetComponent.ts +3 -3
  269. package/src/widgets/ImageUploaderComponent.tsx +5 -5
  270. package/src/widgets/ImageWidget.ts +2 -2
  271. package/src/widgets/ImageWidgetComponent.ts +26 -26
  272. package/src/widgets/ImagelistCarouselComponent.ts +2 -2
  273. package/src/widgets/MapWidget.ts +1 -1
  274. package/src/widgets/MarkdownWidget.ts +1 -1
  275. package/src/widgets/TOCWidget.ts +13 -14
  276. package/src/widgets/WidgetScopesViewComponent.ts +1 -1
  277. package/src/widgets/charts/Chart.ts +1 -1
  278. package/src/widgets/charts/ChartViewComponent.ts +4 -4
  279. package/src/widgets/charts/ChartWidgetComponent.tsx +3 -3
  280. package/src/widgets/charts/calendar/CalendarChart.ts +4 -4
  281. package/src/widgets/charts/calendar/CalendarChartDesignerComponent.ts +7 -7
  282. package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +2 -2
  283. package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +25 -8
  284. package/src/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.ts +5 -5
  285. package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.tsx +128 -0
  286. package/src/widgets/charts/layered/LayeredChart.ts +9 -9
  287. package/src/widgets/charts/layered/LayeredChartCompiler.ts +45 -45
  288. package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +39 -39
  289. package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +18 -19
  290. package/src/widgets/charts/layered/LayeredChartViewComponent.ts +1 -1
  291. package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +22 -23
  292. package/src/widgets/charts/pivot/PivotChart.ts +15 -5
  293. package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +12 -12
  294. package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +5 -5
  295. package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +7 -8
  296. package/src/widgets/charts/pivot/PivotChartViewComponent.tsx +6 -6
  297. package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +30 -30
  298. package/src/widgets/charts/table/OrderingsComponent.tsx +2 -2
  299. package/src/widgets/charts/table/TableChart.ts +3 -3
  300. package/src/widgets/charts/table/TableChartDesignerComponent.ts +16 -16
  301. package/src/widgets/charts/table/TableChartViewComponent.ts +2 -2
  302. package/src/widgets/text/{ExprInsertModalComponent.ts → ExprInsertModalComponent.tsx} +18 -20
  303. package/src/widgets/text/ExprItemEditorComponent.tsx +4 -4
  304. package/src/widgets/text/{ExprUpdateModalComponent.ts → ExprUpdateModalComponent.tsx} +18 -20
  305. package/src/widgets/text/TextComponent.tsx +2 -2
  306. package/src/widgets/text/TextWidgetComponent.tsx +10 -10
  307. package/src/widgets/text/TextWidgetDesign.ts +3 -1
  308. package/src/axes/AxisColorEditorComponent.ts +0 -210
  309. package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.ts +0 -117
@@ -104,6 +104,20 @@ export default class DateExprComponent extends React.Component<DateExprComponent
104
104
  return this.setState({ dropdownOpen: false })
105
105
  }
106
106
 
107
+ getPresets() {
108
+ return [
109
+ { id: "thisyear", name: T`This Year` },
110
+ { id: "lastyear", name: T`Last Year` },
111
+ { id: "thismonth", name: T`This Month` },
112
+ { id: "lastmonth", name: T`Last Month` },
113
+ { id: "today", name: T`Today` },
114
+ { id: "yesterday", name: T`Yesterday` },
115
+ { id: "last24hours", name: T`In Last 24 Hours` },
116
+ { id: "last7days", name: T`In Last 7 Days` },
117
+ { id: "last30days", name: T`In Last 30 Days` },
118
+ ]
119
+ }
120
+
107
121
  renderClear = () => {
108
122
  return R(
109
123
  "div",
@@ -117,10 +131,10 @@ export default class DateExprComponent extends React.Component<DateExprComponent
117
131
 
118
132
  renderSummary() {
119
133
  if (!this.props.value) {
120
- return R("span", { className: "text-muted" }, "All")
134
+ return R("span", { className: "text-muted" }, T`All`)
121
135
  }
122
136
 
123
- const preset = _.findWhere(presets, { id: this.props.value.op })
137
+ const preset = _.findWhere(this.getPresets(), { id: this.props.value.op })
124
138
  if (preset) {
125
139
  return preset.name
126
140
  }
@@ -161,7 +175,7 @@ export default class DateExprComponent extends React.Component<DateExprComponent
161
175
  R(
162
176
  "ul",
163
177
  { className: "nav nav-pills flex-column" },
164
- _.map(presets, (preset) => {
178
+ _.map(this.getPresets(), (preset) => {
165
179
  return R(
166
180
  "li",
167
181
  { className: "nav-item" },
@@ -178,7 +192,7 @@ export default class DateExprComponent extends React.Component<DateExprComponent
178
192
  R(
179
193
  "a",
180
194
  { className: "nav-link", style: { padding: 5 }, onClick: () => this.setState({ custom: true }) },
181
- "Custom Date Range..."
195
+ T`Custom Date Range...`
182
196
  )
183
197
  )
184
198
  )
@@ -268,17 +282,4 @@ export default class DateExprComponent extends React.Component<DateExprComponent
268
282
  )
269
283
  )
270
284
  }
271
- }
272
-
273
- var presets = [
274
- { id: "thisyear", name: "This Year" },
275
- { id: "lastyear", name: "Last Year" },
276
- { id: "thismonth", name: "This Month" },
277
- { id: "lastmonth", name: "Last Month" },
278
- { id: "today", name: "Today" },
279
- { id: "yesterday", name: "Yesterday" },
280
- { id: "last24hours", name: "In Last 24 Hours" },
281
- { id: "last7days", name: "In Last 7 Days" },
282
- { id: "last30days", name: "In Last 30 Days" },
283
- { id: "last365days", name: "In Last 365 Days" }
284
- ]
285
+ }
@@ -47,7 +47,7 @@ export default class IdArrayQuickfilterComponent extends React.Component<IdArray
47
47
  idTable,
48
48
  schema: this.props.schema,
49
49
  dataSource: this.props.dataSource,
50
- placeholder: "All",
50
+ placeholder: T`All`,
51
51
  multi: this.props.multi
52
52
  // TODO Does not use filters that are passed in
53
53
  })
@@ -11,7 +11,7 @@ import IdArrayQuickfilterComponent from "./IdArrayQuickfilterComponent"
11
11
  import { Quickfilter, QuickfilterLock } from "./Quickfilter"
12
12
  import { QuickfiltersDataSource } from "./QuickfiltersDataSource"
13
13
  import { JsonQLFilter } from ".."
14
- import { LocaleContext } from "@mwater/expressions-ui/lib/contexts"
14
+ import { LocaleContext } from "@mwater/expressions-ui"
15
15
 
16
16
  export interface QuickfiltersComponentProps {
17
17
  /** Design of quickfilters. See README.md */
@@ -118,7 +118,7 @@ export default class QuickfiltersDesignComponent extends React.Component<Quickfi
118
118
  "button",
119
119
  { type: "button", className: "btn btn-sm btn-link", onClick: this.handleAdd },
120
120
  R("span", { className: "fas fa-plus" }),
121
- " Add Quick Filter"
121
+ T`Add Quick Filter`
122
122
  )
123
123
  : undefined
124
124
  )
@@ -185,7 +185,7 @@ class QuickfilterDesignComponent extends React.Component<
185
185
  R(
186
186
  "div",
187
187
  { className: "mb-3 mt-1", key: "table" },
188
- R("label", { className: "text-muted" }, "Data Source"),
188
+ R("label", { className: "text-muted" }, T`Data Source`),
189
189
  R(ui.Select, {
190
190
  value: this.state.table,
191
191
  options: _.map(this.props.tables, (table) => ({
@@ -193,14 +193,14 @@ class QuickfilterDesignComponent extends React.Component<
193
193
  label: ExprUtils.localizeString(this.props.schema.getTable(table)!.name)
194
194
  })),
195
195
  onChange: this.handleTableChange,
196
- nullLabel: "Select..."
196
+ nullLabel: T`Select...`
197
197
  })
198
198
  ),
199
199
 
200
200
  R(
201
201
  "div",
202
202
  { className: "mb-3", key: "expr" },
203
- R("label", { className: "text-muted" }, "Filter By"),
203
+ R("label", { className: "text-muted" }, T`Filter By`),
204
204
  R(
205
205
  "div",
206
206
  null,
@@ -219,13 +219,13 @@ class QuickfilterDesignComponent extends React.Component<
219
219
  ? R(
220
220
  "div",
221
221
  { className: "mb-3", key: "label" },
222
- R("label", { className: "text-muted" }, "Label"),
222
+ R("label", { className: "text-muted" }, T`Label`),
223
223
  R("input", {
224
224
  type: "text",
225
225
  className: "form-control form-control-sm",
226
226
  value: this.props.design.label || "",
227
227
  onChange: this.handleLabelChange,
228
- placeholder: "Optional Label"
228
+ placeholder: T`Optional Label`
229
229
  })
230
230
  )
231
231
  : undefined,
@@ -237,8 +237,8 @@ class QuickfilterDesignComponent extends React.Component<
237
237
  value: this.props.design.merged,
238
238
  onChange: this.handleMergedChange
239
239
  },
240
- "Merge with previous quickfilter ",
241
- R("span", { className: "text-muted" }, "- displays as one single control that filters both")
240
+ T`Merge with previous quickfilter `,
241
+ R("span", { className: "text-muted" }, T`- displays as one single control that filters both`)
242
242
  )
243
243
  : undefined,
244
244
 
@@ -249,7 +249,7 @@ class QuickfilterDesignComponent extends React.Component<
249
249
  value: this.props.design.multi,
250
250
  onChange: this.handleMultiChange
251
251
  },
252
- "Allow multiple selections"
252
+ T`Allow multiple selections`
253
253
  )
254
254
  : undefined
255
255
  )
@@ -119,14 +119,14 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
119
119
 
120
120
  return R(AsyncReactSelect, {
121
121
  key: JSON.stringify(this.props.filters), // Include to force a change when filters change
122
- placeholder: "All",
122
+ placeholder: T`All`,
123
123
  value: currentValue,
124
124
  loadOptions: this.getOptions,
125
125
  onChange: this.props.onChange ? this.handleSingleChange : undefined,
126
126
  isClearable: true,
127
127
  defaultOptions: true,
128
128
  isDisabled: this.props.onChange == null,
129
- noOptionsMessage: () => "Type to search",
129
+ noOptionsMessage: () => T`Type to search`,
130
130
  styles: {
131
131
  // Keep menu above fixed data table headers
132
132
  menu: (style) => _.extend({}, style, { zIndex: 2000 })
@@ -138,7 +138,7 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
138
138
  const currentValue = this.props.value ? _.map(this.props.value, (v) => ({ value: v, label: v })) : null
139
139
 
140
140
  return R(AsyncReactSelect, {
141
- placeholder: "All",
141
+ placeholder: T`All`,
142
142
  value: currentValue,
143
143
  key: JSON.stringify(this.props.filters), // Include to force a change when filters change
144
144
  isMulti: true,
@@ -147,7 +147,7 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
147
147
  onChange: this.props.onChange ? this.handleMultipleChange : undefined,
148
148
  isClearable: true,
149
149
  isDisabled: this.props.onChange == null,
150
- noOptionsMessage: () => "Type to search",
150
+ noOptionsMessage: () => T`Type to search`,
151
151
  styles: {
152
152
  // Keep menu above fixed data table headers
153
153
  menu: (style) => _.extend({}, style, { zIndex: 2000 })
@@ -91,7 +91,7 @@ export default class DropdownPaletteItem extends React.Component<DropdownPalette
91
91
  className="dropdown-palette-menu-item"
92
92
  onMouseDown={this.handleMoreClick}
93
93
  >
94
- More...
94
+ {T`More...`}
95
95
  </div>
96
96
  )}
97
97
  </div>
@@ -66,7 +66,7 @@ export default class ExprItemsHtmlConverter extends ItemsHtmlConverter {
66
66
  if (this.summarizeExprs) {
67
67
  text = new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale)
68
68
  if (text.length > 30) {
69
- text = text.substr(0, 30) + "..."
69
+ text = text.substr(0, 30) + T`...`
70
70
  }
71
71
 
72
72
  exprHtml = _.escape(text)
@@ -88,26 +88,24 @@ export default class ExprItemsHtmlConverter extends ItemsHtmlConverter {
88
88
 
89
89
  exprHtml = _.escape(text)
90
90
  } else {
91
- exprHtml = '<span style="color: #DDD">---</span>'
91
+ exprHtml = `<span style="color: #DDD">${T`---`}</span>`
92
92
  }
93
93
  } else {
94
94
  // Placeholder
95
- exprHtml = '<span class="text-muted">\u25a0\u25a0\u25a0</span>'
95
+ exprHtml = `<span class="text-muted">\u25a0\u25a0\u25a0</span>`
96
96
  }
97
97
 
98
98
  // Add label
99
99
  if (exprItem.includeLabel) {
100
- const label = exprItem.labelText || new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale) + ":\u00A0"
101
- exprHtml = '<span class="text-muted">' + _.escape(label) + "</span>" + exprHtml
100
+ const label = exprItem.labelText || new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale) + T`:\u00A0`
101
+ exprHtml = `<span class="text-muted">${_.escape(label)}</span>` + exprHtml
102
102
  }
103
103
 
104
104
  if (this.designMode) {
105
105
  html +=
106
- '\u2060<span data-embed="' +
107
- _.escape(JSON.stringify(item)) +
108
- '" class="mwater-visualization-text-widget-expr">' +
109
- (exprHtml || "\u00A0") +
110
- "</span>\u2060"
106
+ `\u2060<span data-embed="${_.escape(JSON.stringify(item))}" class="mwater-visualization-text-widget-expr">` +
107
+ (exprHtml || T`\u00A0`) +
108
+ `</span>\u2060`
111
109
  } else {
112
110
  // View mode
113
111
  html += exprHtml
@@ -144,7 +144,6 @@ export default class ItemsHtmlConverter {
144
144
  if (node.nodeType === 1) {
145
145
  // Element
146
146
  // Handle embeds
147
- var style
148
147
  if ((node as HTMLElement).dataset?.embed) {
149
148
  items.push(JSON.parse((node as HTMLElement).dataset!.embed!))
150
149
  continue
@@ -11,6 +11,7 @@ export interface RichTextComponentProps {
11
11
  items?: HtmlItem[]
12
12
  onItemsChange?: (items: HtmlItem[]) => void
13
13
 
14
+ /** Called when an embed item is clicked */
14
15
  onItemClick?: (item: HtmlItem) => void
15
16
 
16
17
  /** Optional className of editor wrapper */
@@ -95,7 +96,7 @@ export default class RichTextComponent extends React.Component<RichTextComponent
95
96
  // Requires a selection
96
97
  const html = this.contentEditable!.getSelectedHTML()
97
98
  if (!html) {
98
- return alert("Please select text first to set color")
99
+ return alert(T`Please select text first to set color`)
99
100
  }
100
101
 
101
102
  this.handleCommand("foreColor", color)
@@ -200,7 +201,7 @@ export default class RichTextComponent extends React.Component<RichTextComponent
200
201
  ev.preventDefault()
201
202
 
202
203
  // Ask for url
203
- const url = window.prompt("Enter URL to link to")
204
+ const url = window.prompt(T`Enter URL to link to`)
204
205
  if (url) {
205
206
  document.execCommand("createLink", false, url)
206
207
  }
@@ -301,10 +302,10 @@ export default class RichTextComponent extends React.Component<RichTextComponent
301
302
  <DropdownPaletteItem
302
303
  key="justify"
303
304
  items={[
304
- { label: <span><i className="fas fa-align-left fa-fw"></i> Left</span>, value: "justifyLeft" },
305
- { label: <span><i className="fas fa-align-center fa-fw"></i> Center</span>, value: "justifyCenter" },
306
- { label: <span><i className="fas fa-align-right fa-fw"></i> Right</span>, value: "justifyRight" },
307
- { label: <span><i className="fas fa-align-justify fa-fw"></i> Justify</span>, value: "justifyFull" },
305
+ { label: <span><i className="fas fa-align-left fa-fw"></i> {T`Left`}</span>, value: "justifyLeft" },
306
+ { label: <span><i className="fas fa-align-center fa-fw"></i> {T`Center`}</span>, value: "justifyCenter" },
307
+ { label: <span><i className="fas fa-align-right fa-fw"></i> {T`Right`}</span>, value: "justifyRight" },
308
+ { label: <span><i className="fas fa-align-justify fa-fw"></i> {T`Justify`}</span>, value: "justifyFull" },
308
309
  ]}
309
310
  onSelect={(value) => this.handleCommand(value, null)}
310
311
  position={schemeName === "over" ? "under" : "over"}
@@ -328,28 +329,28 @@ export default class RichTextComponent extends React.Component<RichTextComponent
328
329
  <DropdownPaletteItem
329
330
  key="paragraph"
330
331
  items={[
331
- { label: "Heading 1", value: "h1" },
332
- { label: "Heading 2", value: "h2" },
333
- { label: "Extra Small", value: "xsmall" },
334
- { label: "Small", value: "small" },
335
- { label: "Normal", value: "normal" },
336
- { label: "Large", value: "large" },
337
- { label: "Extra Large", value: "xlarge" },
338
- { label: "6px", value: "6px", more: true },
339
- { label: "7px", value: "7px", more: true },
340
- { label: "8px", value: "8px", more: true },
341
- { label: "9px", value: "9px", more: true },
342
- { label: "10px", value: "10px", more: true },
343
- { label: "11px", value: "11px", more: true },
344
- { label: "12px", value: "12px", more: true },
345
- { label: "14px", value: "14px", more: true },
346
- { label: "16px", value: "16px", more: true },
347
- { label: "18px", value: "18px", more: true },
348
- { label: "20px", value: "20px", more: true },
349
- { label: "22px", value: "22px", more: true },
350
- { label: "24px", value: "24px", more: true },
351
- { label: "30px", value: "30px", more: true },
352
- { label: "36px", value: "36px", more: true },
332
+ { label: T`Heading 1`, value: "h1" },
333
+ { label: T`Heading 2`, value: "h2" },
334
+ { label: T`Extra Small`, value: "xsmall" },
335
+ { label: T`Small`, value: "small" },
336
+ { label: T`Normal`, value: "normal" },
337
+ { label: T`Large`, value: "large" },
338
+ { label: T`Extra Large`, value: "xlarge" },
339
+ { label: T`6px`, value: "6px", more: true },
340
+ { label: T`7px`, value: "7px", more: true },
341
+ { label: T`8px`, value: "8px", more: true },
342
+ { label: T`9px`, value: "9px", more: true },
343
+ { label: T`10px`, value: "10px", more: true },
344
+ { label: T`11px`, value: "11px", more: true },
345
+ { label: T`12px`, value: "12px", more: true },
346
+ { label: T`14px`, value: "14px", more: true },
347
+ { label: T`16px`, value: "16px", more: true },
348
+ { label: T`18px`, value: "18px", more: true },
349
+ { label: T`20px`, value: "20px", more: true },
350
+ { label: T`22px`, value: "22px", more: true },
351
+ { label: T`24px`, value: "24px", more: true },
352
+ { label: T`30px`, value: "30px", more: true },
353
+ { label: T`36px`, value: "36px", more: true },
353
354
  ]}
354
355
  onSelect={(tag) => {
355
356
  if (tag.startsWith("h")) {
@@ -397,9 +398,8 @@ export default class RichTextComponent extends React.Component<RichTextComponent
397
398
  {this.props.items?.[0] == null ? (
398
399
  <div
399
400
  key="placeholder"
400
- style={{ color: "#DDD", position: "absolute", top: 0, left: 0, right: 0, pointerEvents: "none" }}
401
- >
402
- Click to Edit
401
+ style={{ color: "#DDD", position: "absolute", top: 0, left: 0, right: 0, pointerEvents: "none" }} >
402
+ {T`Click to Edit`}
403
403
  </div>
404
404
  ) : undefined}
405
405
  </div>
@@ -19,22 +19,22 @@ export function canFormatType(type: LiteralType): boolean {
19
19
  export function getFormatOptions(type: LiteralType): FormatOption[] | null {
20
20
  if (type == "number") {
21
21
  return [
22
- { value: "", label: "Plain: 1234.567" },
23
- { value: ",", label: "Normal: 1,234.567" },
24
- { value: ",.0f", label: "Rounded: 1,234" },
25
- { value: ",.2f", label: "Two decimals: 1,234.56" },
26
- { value: "$,.2f", label: "Currency: $1,234.56" },
27
- { value: "$,.0f", label: "Currency rounded: $1,234" },
28
- { value: ".0%", label: "Percent rounded: 12%" },
29
- { value: ".2%", label: "Percent decimal: 12.34%" }
22
+ { value: "", label: T`Plain: 1234.567` },
23
+ { value: ",", label: T`Normal: 1,234.567` },
24
+ { value: ",.0f", label: T`Rounded: 1,234` },
25
+ { value: ",.2f", label: T`Two decimals: 1,234.56` },
26
+ { value: "$,.2f", label: T`Currency: $1,234.56` },
27
+ { value: "$,.0f", label: T`Currency rounded: $1,234` },
28
+ { value: ".0%", label: T`Percent rounded: 12%` },
29
+ { value: ".2%", label: T`Percent decimal: 12.34%` }
30
30
  ]
31
31
  }
32
32
 
33
33
  if (type == "geometry") {
34
34
  return [
35
- { value: "lat, lng", label: "Latitude, Longitude" },
36
- { value: "UTM", label: "UTM" },
37
- { value: "WKT", label: "Well-Known Text" }
35
+ { value: "lat, lng", label: T`Latitude, Longitude` },
36
+ { value: "UTM", label: T`UTM` },
37
+ { value: "WKT", label: T`Well-Known Text` }
38
38
  ]
39
39
  }
40
40
 
@@ -96,7 +96,7 @@ export function getDefaultFormat(type: LiteralType): string {
96
96
  return "lll"
97
97
  }
98
98
 
99
- throw new Error("Not supported")
99
+ throw new Error(T`Not supported`)
100
100
  }
101
101
 
102
102
  /** Format a value of a specified type as a string. For historical reasons,
@@ -140,10 +140,10 @@ export function formatValue(
140
140
  const longitude = value.coordinates[0]
141
141
 
142
142
  if (latitude > 84 || latitude < -80) {
143
- return "latitude out of range"
143
+ return T`latitude out of range`
144
144
  }
145
145
  if (longitude > 180 || longitude < -180) {
146
- return "longitude out of range"
146
+ return T`longitude out of range`
147
147
  }
148
148
 
149
149
  const { easting, northing, zoneNum, zoneLetter } = fromLatLon(latitude, longitude)
@@ -49,7 +49,7 @@ export default class IFrameWidgetComponent extends React.Component<
49
49
  const content = R(
50
50
  "div",
51
51
  { className: "mb-3" },
52
- R("label", null, "URL to embed"),
52
+ R("label", null, T`URL to embed`),
53
53
  R("input", {
54
54
  type: "text",
55
55
  className: "form-control",
@@ -62,7 +62,7 @@ export default class IFrameWidgetComponent extends React.Component<
62
62
  return R(
63
63
  ModalPopupComponent,
64
64
  {
65
- header: "Configure",
65
+ header: T`Configure`,
66
66
  showCloseX: true,
67
67
  onClose: this.handleEndEditing
68
68
  },
@@ -84,7 +84,7 @@ export default class IFrameWidgetComponent extends React.Component<
84
84
  render() {
85
85
  const dropdownItems = []
86
86
  if (this.props.onDesignChange != null) {
87
- dropdownItems.push({ label: "Edit", icon: "pencil", onClick: this.handleStartEditing })
87
+ dropdownItems.push({ label: T`Edit`, icon: "pencil", onClick: this.handleStartEditing })
88
88
  }
89
89
 
90
90
  return R(
@@ -71,7 +71,7 @@ export default class ImageUploaderComponent extends React.Component<
71
71
  this.props.onUpload(this.state.uid)
72
72
  } else {
73
73
  this.setState({ uploading: false, files: null, editing: false })
74
- alert(`Upload failed: ${e.target.responseText}`)
74
+ alert(T`Upload failed: ${e.target.responseText}`)
75
75
  }
76
76
  }
77
77
 
@@ -98,8 +98,8 @@ export default class ImageUploaderComponent extends React.Component<
98
98
  : <div>
99
99
  {
100
100
  isDragActive ?
101
- "Drop the files here"
102
- : "Drop file here or click to select file"
101
+ T`Drop the files here`
102
+ : T`Drop file here or click to select file`
103
103
  }
104
104
  </div>
105
105
  }
@@ -107,7 +107,7 @@ export default class ImageUploaderComponent extends React.Component<
107
107
  )}
108
108
  </Dropzone>
109
109
 
110
- { this.state.uid && <a className="link-plain" onClick={() => this.setState({ editing: false })}>Cancel</a> }
110
+ { this.state.uid && <a className="link-plain" onClick={() => this.setState({ editing: false })}>{T`Cancel`}</a> }
111
111
  </div>
112
112
  }
113
113
 
@@ -124,7 +124,7 @@ export default class ImageUploaderComponent extends React.Component<
124
124
  "div",
125
125
  null,
126
126
  R("img", { style: thumbnailStyle, src: this.props.dataSource.getImageUrl(this.state.uid) }),
127
- R("a", { className: "btn btn-secondary", onClick: this.handleChangeImage }, "Change")
127
+ R("a", { className: "btn btn-secondary", onClick: this.handleChangeImage }, T`Change`)
128
128
  )
129
129
  }
130
130
 
@@ -74,13 +74,13 @@ export default class ImageWidget extends Widget {
74
74
  // callback: (error, data)
75
75
  getData(design: ImageWidgetDesign, schema: Schema, dataSource: DataSource, filters: JsonQLFilter[], callback: any) {
76
76
  if (!design.expr) {
77
- return callback(null)
77
+ return callback(null, null)
78
78
  }
79
79
 
80
80
  const exprCleaner = new ExprCleaner(schema)
81
81
  const expr = exprCleaner.cleanExpr(design.expr)
82
82
  if (!expr) {
83
- return callback(null)
83
+ return callback(null, null)
84
84
  }
85
85
 
86
86
  const { table } = (design.expr as FieldExpr)