@mwater/visualization 5.3.1 → 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 +1 -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 +9 -9
  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 +102 -75
  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
@@ -67,7 +67,7 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
67
67
  this.updateDesign({ cellColor });
68
68
  };
69
69
  renderTable() {
70
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(expressions_ui_2.TableSelectComponent, {
70
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", T `Data Source`), ": ", R(expressions_ui_2.TableSelectComponent, {
71
71
  schema: this.props.schema,
72
72
  value: this.props.design.table,
73
73
  onChange: this.handleTableChange,
@@ -76,12 +76,12 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
76
76
  }));
77
77
  }
78
78
  renderTitle() {
79
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, "Title"), R("input", {
79
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Title`), R("input", {
80
80
  type: "text",
81
81
  className: "form-control form-control-sm",
82
82
  value: this.props.design.titleText,
83
83
  onChange: this.handleTitleTextChange,
84
- placeholder: "Untitled"
84
+ placeholder: T `Untitled`
85
85
  }));
86
86
  }
87
87
  renderFilter() {
@@ -89,7 +89,7 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
89
89
  if (!this.props.design.table) {
90
90
  return null;
91
91
  }
92
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), " ", "Filters"), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
92
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), " ", T `Filters`), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
93
93
  schema: this.props.schema,
94
94
  dataSource: this.props.dataSource,
95
95
  onChange: this.handleFilterChange,
@@ -101,7 +101,7 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
101
101
  if (!this.props.design.table) {
102
102
  return;
103
103
  }
104
- return R(ui.SectionComponent, { label: "Date Axis" }, R(AxisComponent_1.default, {
104
+ return R(ui.SectionComponent, { label: T `Date Axis` }, R(AxisComponent_1.default, {
105
105
  schema: this.props.schema,
106
106
  dataSource: this.props.dataSource,
107
107
  table: this.props.design.table,
@@ -117,7 +117,7 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
117
117
  if (!this.props.design.table || !this.props.design.dateAxis) {
118
118
  return;
119
119
  }
120
- return R(ui.SectionComponent, { label: "Value Axis" }, R(AxisComponent_1.default, {
120
+ return R(ui.SectionComponent, { label: T `Value Axis` }, R(AxisComponent_1.default, {
121
121
  schema: this.props.schema,
122
122
  dataSource: this.props.dataSource,
123
123
  table: this.props.design.table,
@@ -130,7 +130,7 @@ class CalendarChartDesignerComponent extends react_1.default.Component {
130
130
  }));
131
131
  }
132
132
  renderCellColor() {
133
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), "Cell Color"), R("div", null, R(ColorComponent_1.default, {
133
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-tint" }), T `Cell Color`), R("div", null, R(ColorComponent_1.default, {
134
134
  color: this.props.design.cellColor || "#FDAE61",
135
135
  onChange: this.handleCellColorChange
136
136
  })));
@@ -33,7 +33,7 @@ const R = react_1.default.createElement;
33
33
  const moment_1 = __importDefault(require("moment"));
34
34
  const AxisBuilder_1 = __importDefault(require("../../../axes/AxisBuilder"));
35
35
  const d3 = __importStar(require("d3"));
36
- const contexts_1 = require("@mwater/expressions-ui/lib/contexts");
36
+ const expressions_ui_1 = require("@mwater/expressions-ui");
37
37
  // Require d3-tip to use it
38
38
  const d3_tip_1 = __importDefault(require("d3-tip"));
39
39
  // creates a d3 calendar visualization
@@ -43,7 +43,7 @@ class CalendarChartViewComponent extends react_1.default.Component {
43
43
  monthsStrokeWidth: 1,
44
44
  highlightCellFillColor: "#000000"
45
45
  };
46
- static contextType = contexts_1.LocaleContext;
46
+ static contextType = expressions_ui_1.LocaleContext;
47
47
  axisBuilder;
48
48
  reloading;
49
49
  chart_container;
@@ -92,7 +92,7 @@ class CalendarChartViewComponent extends react_1.default.Component {
92
92
  }
93
93
  const scopeData = {
94
94
  name: this.axisBuilder.summarizeAxis(this.props.design.dateAxis, this.context) +
95
- " is " +
95
+ T ` is ` +
96
96
  this.axisBuilder.formatValue(this.props.design.dateAxis, data, this.context),
97
97
  filter: {
98
98
  jsonql: this.axisBuilder.createValueFilter(this.props.design.dateAxis, data),
@@ -1,14 +1,27 @@
1
1
  import React from "react";
2
- import { DataSource, Schema } from "@mwater/expressions";
2
+ import { DataSource, Expr, Schema } from "@mwater/expressions";
3
3
  import Chart, { ChartCreateViewElementOptions } from "../Chart";
4
4
  import { JsonQLFilter } from "../../..";
5
+ import { Axis } from "../../../axes/Axis";
6
+ export interface ImageMosaicChartDesign {
7
+ /** Version of design */
8
+ version?: number;
9
+ /** Table to use */
10
+ table: string;
11
+ /** Title text */
12
+ titleText: string;
13
+ /** Image axis */
14
+ imageAxis: Axis;
15
+ /** Optional filter */
16
+ filter: Expr;
17
+ }
5
18
  export default class ImageMosaicChart extends Chart {
6
- cleanDesign(design: any, schema: Schema): any;
7
- validateDesign(design: any, schema: Schema): string | null;
8
- isEmpty(design: any): boolean;
19
+ cleanDesign(design: ImageMosaicChartDesign, schema: Schema): ImageMosaicChartDesign;
20
+ validateDesign(design: ImageMosaicChartDesign, schema: Schema): string | null;
21
+ isEmpty(design: ImageMosaicChartDesign): boolean;
9
22
  createDesignerElement(options: any): React.FunctionComponentElement<{
10
23
  schema: any;
11
- design: any;
24
+ design: ImageMosaicChartDesign;
12
25
  dataSource: any;
13
26
  filters: any;
14
27
  onDesignChange: (design: any) => any;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
7
  const react_1 = __importDefault(require("react"));
8
- const R = react_1.default.createElement;
9
8
  const immer_1 = __importDefault(require("immer"));
10
9
  const expressions_1 = require("@mwater/expressions");
11
10
  const Chart_1 = __importDefault(require("../Chart"));
@@ -44,12 +43,12 @@ class ImageMosaicChart extends Chart_1.default {
44
43
  const axisBuilder = new AxisBuilder_1.default({ schema });
45
44
  // Check that has table
46
45
  if (!design.table) {
47
- return "Missing data source";
46
+ return T `Missing data source`;
48
47
  }
49
48
  // Check that has axes
50
49
  let error = null;
51
50
  if (!design.imageAxis) {
52
- error = error || "Missing image";
51
+ error = error || T `Missing image`;
53
52
  }
54
53
  error = error || axisBuilder.validateAxis({ axis: design.imageAxis });
55
54
  return error;
@@ -156,7 +155,7 @@ class ImageMosaicChart extends Chart_1.default {
156
155
  return react_1.default.createElement(ImageMosaicChartViewComponent, props);
157
156
  }
158
157
  createDataTable(design, schema, dataSource, data) {
159
- alert("Not available for Image Mosaics");
158
+ alert(T `Not available for Image Mosaics`);
160
159
  return [];
161
160
  }
162
161
  // TODO
@@ -52,7 +52,7 @@ class ImageMosaicChartDesignerComponent extends react_1.default.Component {
52
52
  return this.updateDesign({ imageAxis });
53
53
  };
54
54
  renderTable() {
55
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(expressions_ui_2.TableSelectComponent, {
55
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", T `Data Source`), ": ", R(expressions_ui_2.TableSelectComponent, {
56
56
  schema: this.props.schema,
57
57
  value: this.props.design.table,
58
58
  onChange: this.handleTableChange,
@@ -61,12 +61,12 @@ class ImageMosaicChartDesignerComponent extends react_1.default.Component {
61
61
  }));
62
62
  }
63
63
  renderTitle() {
64
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, "Title"), R("input", {
64
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, T `Title`), R("input", {
65
65
  type: "text",
66
66
  className: "form-control form-control-sm",
67
67
  value: this.props.design.titleText,
68
68
  onChange: this.handleTitleTextChange,
69
- placeholder: "Untitled"
69
+ placeholder: T `Untitled`
70
70
  }));
71
71
  }
72
72
  renderFilter() {
@@ -74,7 +74,7 @@ class ImageMosaicChartDesignerComponent extends react_1.default.Component {
74
74
  if (!this.props.design.table) {
75
75
  return null;
76
76
  }
77
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), " ", "Filters"), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
77
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("span", { className: "fas fa-filter" }), " ", T `Filters`), R("div", { style: { marginLeft: 8 } }, react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
78
78
  schema: this.props.schema,
79
79
  dataSource: this.props.dataSource,
80
80
  onChange: this.handleFilterChange,
@@ -86,7 +86,7 @@ class ImageMosaicChartDesignerComponent extends react_1.default.Component {
86
86
  if (!this.props.design.table) {
87
87
  return;
88
88
  }
89
- return R(ui.SectionComponent, { label: "Image Axis" }, R(AxisComponent_1.default, {
89
+ return R(ui.SectionComponent, { label: T `Image Axis` }, R(AxisComponent_1.default, {
90
90
  schema: this.props.schema,
91
91
  dataSource: this.props.dataSource,
92
92
  table: this.props.design.table,
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import ImagePopupComponent from "./ImagePopupComponent";
3
2
  import { DataSource } from "@mwater/expressions";
3
+ import { ImageMosaicChartDesign } from "./ImageMosaicChart";
4
4
  export interface ImageMosaicChartViewComponentProps {
5
5
  /** Design of chart */
6
- design: any;
6
+ design: ImageMosaicChartDesign;
7
7
  /** Data that the chart has requested. In format [image: {image data or imagelist data}] */
8
8
  data: any;
9
9
  /** Data source to use */
@@ -12,20 +12,6 @@ export interface ImageMosaicChartViewComponentProps {
12
12
  height?: number;
13
13
  onRowClick?: any;
14
14
  }
15
- /** creates a d3 calendar visualization */
16
- export default class ImageMosaicChartViewComponent extends React.Component<ImageMosaicChartViewComponentProps> {
17
- imagePopup: ImagePopupComponent | null;
18
- shouldComponentUpdate(prevProps: any): boolean;
19
- handleClick: (primaryKey: any, image: any) => any;
20
- renderImage: (primaryKey: any, image: any, imageManager: any) => React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
21
- renderImages(imageManager: any): (React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> | React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>[])[];
22
- render(): React.ReactElement<{
23
- style: {
24
- width: number | undefined;
25
- height: number | undefined;
26
- position: string;
27
- overflowY: string;
28
- };
29
- className: string;
30
- }, string | React.JSXElementConstructor<any>>;
31
- }
15
+ /** Creates an image mosaic chart */
16
+ declare function ImageMosaicChartViewComponent(props: ImageMosaicChartViewComponentProps): React.JSX.Element;
17
+ export default ImageMosaicChartViewComponent;
@@ -3,85 +3,81 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const lodash_1 = __importDefault(require("lodash"));
7
6
  const react_1 = __importDefault(require("react"));
8
- const R = react_1.default.createElement;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const react_2 = require("react");
9
9
  const react_lazy_load_image_component_1 = require("react-lazy-load-image-component");
10
10
  const RotationAwareImageComponent_1 = __importDefault(require("@mwater/forms/lib/RotationAwareImageComponent"));
11
11
  const ImagePopupComponent_1 = __importDefault(require("./ImagePopupComponent"));
12
- /** creates a d3 calendar visualization */
13
- class ImageMosaicChartViewComponent extends react_1.default.Component {
14
- imagePopup;
15
- shouldComponentUpdate(prevProps) {
16
- return !lodash_1.default.isEqual(prevProps, this.props);
17
- }
18
- handleClick = (primaryKey, image) => {
19
- if (this.props.onRowClick) {
20
- return this.props.onRowClick(this.props.design.table, primaryKey);
12
+ /** Creates an image mosaic chart */
13
+ function ImageMosaicChartViewComponent(props) {
14
+ const { design, data, dataSource, width, height, onRowClick } = props;
15
+ const imagePopupRef = (0, react_2.useRef)(null);
16
+ const [isPrinting, setIsPrinting] = (0, react_2.useState)(false);
17
+ (0, react_2.useEffect)(() => {
18
+ const mediaQueryList = window.matchMedia('print');
19
+ const handlePrintChange = (mql) => {
20
+ setIsPrinting(mql.matches);
21
+ };
22
+ mediaQueryList.addEventListener('change', handlePrintChange);
23
+ return () => {
24
+ mediaQueryList.removeEventListener('change', handlePrintChange);
25
+ };
26
+ }, []);
27
+ const handleClick = (0, react_2.useCallback)((primaryKey, image) => {
28
+ if (onRowClick) {
29
+ return onRowClick(design.table, primaryKey);
21
30
  }
22
31
  else {
23
- return this.imagePopup?.show(image);
32
+ return imagePopupRef.current?.show(image);
24
33
  }
25
- };
34
+ }, [onRowClick, design.table]);
26
35
  // Render a single image
27
- renderImage = (primaryKey, image, imageManager) => {
28
- return R(react_lazy_load_image_component_1.LazyLoadComponent, { key: image.id }, R(RotationAwareImageComponent_1.default, {
29
- imageManager,
30
- image,
31
- thumbnail: true,
32
- height: 120,
33
- width: 80,
34
- onClick: () => this.handleClick(primaryKey, image)
35
- }));
36
- };
36
+ const renderImage = (0, react_2.useCallback)((primaryKey, image, imageManager) => {
37
+ const imageComponent = (react_1.default.createElement(RotationAwareImageComponent_1.default, { imageManager: imageManager, image: image, thumbnail: true, height: 120, width: 80, onClick: () => handleClick(primaryKey, image) }));
38
+ // DISABLED PRINTING AS WAS CRASHING CHROME
39
+ return isPrinting && false ? (react_1.default.createElement("div", { style: { display: "inline-block", minWidth: "50px" }, key: image.id }, imageComponent)) : (react_1.default.createElement(react_lazy_load_image_component_1.LazyLoadComponent, { key: image.id }, imageComponent));
40
+ }, [handleClick, isPrinting]);
37
41
  // Render images
38
- renderImages(imageManager) {
39
- const imageElems = [];
40
- // For each image
41
- return (() => {
42
- const result = [];
43
- for (var row of this.props.data) {
44
- let imageObj = row.image;
45
- // Ignore nulls (https://github.com/mWater/mwater-server/issues/202)
46
- if (!imageObj) {
47
- continue;
48
- }
49
- if (lodash_1.default.isString(imageObj)) {
50
- imageObj = JSON.parse(imageObj);
51
- }
52
- if (lodash_1.default.isArray(imageObj)) {
53
- result.push(imageObj.map((image) => this.renderImage(row.id, image, imageManager)));
54
- }
55
- else {
56
- result.push(this.renderImage(row.id, imageObj, imageManager));
57
- }
42
+ const renderImages = (0, react_2.useCallback)((imageManager) => {
43
+ const result = [];
44
+ for (let row of data) {
45
+ let imageObj = row.image;
46
+ // Ignore nulls (https://github.com/mWater/mwater-server/issues/202)
47
+ if (!imageObj) {
48
+ continue;
58
49
  }
59
- return result;
60
- })();
61
- }
62
- render() {
63
- const titleStyle = {
64
- textAlign: "center",
65
- fontSize: "14px",
66
- fontWeight: "bold"
67
- };
68
- const style = {
69
- width: this.props.width,
70
- height: this.props.height,
71
- position: "relative",
72
- overflowY: "auto"
73
- };
74
- const title = this.props.design.titleText;
75
- const imageManager = {
76
- getImageThumbnailUrl: (id, success, error) => success(this.props.dataSource.getImageUrl(id, 100)),
77
- getImageUrl: (id, success, error) => success(this.props.dataSource.getImageUrl(id))
78
- };
79
- return R("div", { style, className: "image-mosaic" }, title ? R("p", { style: titleStyle }, title) : undefined, R(ImagePopupComponent_1.default, {
80
- ref: (c) => {
81
- this.imagePopup = c;
82
- },
83
- imageManager
84
- }), R("div", null, this.renderImages(imageManager)));
85
- }
50
+ if (lodash_1.default.isString(imageObj)) {
51
+ imageObj = JSON.parse(imageObj);
52
+ }
53
+ if (lodash_1.default.isArray(imageObj)) {
54
+ result.push(imageObj.map((image) => renderImage(row.id, image, imageManager)));
55
+ }
56
+ else {
57
+ result.push(renderImage(row.id, imageObj, imageManager));
58
+ }
59
+ }
60
+ return result;
61
+ }, [data, renderImage]);
62
+ const titleStyle = {
63
+ textAlign: "center",
64
+ fontSize: "14px",
65
+ fontWeight: "bold"
66
+ };
67
+ const style = {
68
+ width,
69
+ height,
70
+ position: "relative",
71
+ overflowY: "auto"
72
+ };
73
+ const title = design.titleText;
74
+ const imageManager = {
75
+ getImageThumbnailUrl: (id, success, error) => success(dataSource.getImageUrl(id, 100)),
76
+ getImageUrl: (id, success, error) => success(dataSource.getImageUrl(id))
77
+ };
78
+ return (react_1.default.createElement("div", { style: style, className: "image-mosaic" },
79
+ title && react_1.default.createElement("p", { style: titleStyle }, title),
80
+ react_1.default.createElement(ImagePopupComponent_1.default, { ref: imagePopupRef, imageManager: imageManager }),
81
+ react_1.default.createElement("div", null, renderImages(imageManager))));
86
82
  }
87
83
  exports.default = ImageMosaicChartViewComponent;
@@ -12,7 +12,7 @@ class ImagePopupComponent extends react_1.default.Component {
12
12
  constructor(props) {
13
13
  super(props);
14
14
  this.state = {
15
- image: null,
15
+ image: null, // Set to display
16
16
  url: null
17
17
  };
18
18
  }
@@ -11,7 +11,7 @@ export default class LayeredChart extends Chart {
11
11
  validateDesign(design: LayeredChartDesign, schema: Schema): string | null | undefined;
12
12
  isEmpty(design: any): boolean;
13
13
  createDesignerElement(options: any): React.CElement<import("./LayeredChartDesignerComponent").LayeredChartDesignerComponentProps, LayeredChartDesignerComponent>;
14
- getData(design: any, schema: Schema, dataSource: DataSource, filters: JsonQLFilter[], callback: any): void;
14
+ getData(design: any, schema: Schema, dataSource: DataSource, filters: JsonQLFilter[], callback: any): any;
15
15
  createViewElement(options: ChartCreateViewElementOptions): React.CElement<any, LayeredChartViewComponent>;
16
16
  createDropdownItems(design: any, schema: Schema, widgetDataSource: WidgetDataSource, filters: any): {
17
17
  label: string;
@@ -114,23 +114,23 @@ class LayeredChart extends Chart_1.default {
114
114
  return axisBuilder.getAxisType(l.axes.x);
115
115
  }));
116
116
  if (xAxisTypes.length > 1) {
117
- return "All x axes must be of same type";
117
+ return T `All x axes must be of same type`;
118
118
  }
119
119
  for (let layerId = 0, end = design.layers.length, asc = 0 <= end; asc ? layerId < end : layerId > end; asc ? layerId++ : layerId--) {
120
120
  const layer = design.layers[layerId];
121
121
  // Check that has table
122
122
  if (!layer.table) {
123
- return "Missing data source";
123
+ return T `Missing data source`;
124
124
  }
125
125
  // Check that has y axis
126
126
  if (!layer.axes.y) {
127
- return "Missing Y Axis";
127
+ return T `Missing Y Axis`;
128
128
  }
129
129
  if (!layer.axes.x && compiler.isXAxisRequired(design, layerId)) {
130
- return "Missing X Axis";
130
+ return T `Missing X Axis`;
131
131
  }
132
132
  if (!layer.axes.color && compiler.isColorAxisRequired(design, layerId)) {
133
- return "Missing Color Axis";
133
+ return T `Missing Color Axis`;
134
134
  }
135
135
  error = null;
136
136
  // Validate axes
@@ -232,7 +232,7 @@ class LayeredChart extends Chart_1.default {
232
232
  design = this.cleanDesign(design, schema);
233
233
  return widgetDataSource.getData(design, filters, (err, data) => {
234
234
  if (err) {
235
- return alert("Unable to load data");
235
+ return alert(T `Unable to load data`);
236
236
  }
237
237
  else {
238
238
  return LayeredChartSvgFileSaver_1.default.save(design, data, schema, format);
@@ -244,8 +244,8 @@ class LayeredChart extends Chart_1.default {
244
244
  return [];
245
245
  }
246
246
  return [
247
- { label: "Save as SVG", onClick: save.bind(null, "svg") },
248
- { label: "Save as PNG", onClick: save.bind(null, "png") }
247
+ { label: T `Save as SVG`, onClick: save.bind(null, "svg") },
248
+ { label: T `Save as PNG`, onClick: save.bind(null, "png") }
249
249
  ];
250
250
  }
251
251
  createDataTable(design, schema, dataSource, data, locale) {
@@ -254,7 +254,7 @@ class LayeredChart extends Chart_1.default {
254
254
  const headers = [];
255
255
  // Only allow if either all layers have x axis or one layer
256
256
  if (!design.layers.every((layer) => layer.axes.x != null) && design.layers.length > 1) {
257
- throw new Error("Cannot export multi-layer charts without x axis");
257
+ throw new Error(T `Cannot export multi-layer charts without x axis`);
258
258
  }
259
259
  for (let layerNum = 0; layerNum < design.layers.length; layerNum++) {
260
260
  const layer = design.layers[layerNum];
@@ -97,14 +97,14 @@ export default class LayeredChartCompiler {
97
97
  flattenRowData(rows: any): any[];
98
98
  compileDataCategorical(design: LayeredChartDesign, data: C3ChartData, locale?: string): C3Data;
99
99
  compileExpr(expr: any): JsonQLExpr;
100
- getLayerType(design: any, layerIndex: any): any;
101
- getLayerTypeString(design: any, layerIndex: any): any;
102
- doesLayerNeedGrouping(design: any, layerIndex: any): boolean;
103
- canLayerUseXExpr(design: any, layerIndex: any): boolean;
104
- isXAxisRequired(design: any, layerIndex: any): boolean;
105
- isColorAxisRequired(design: any, layerIndex: any): boolean;
106
- compileDefaultTitleText(design: any, locale: any): string;
107
- compileDefaultYAxisLabelText(design: any, locale?: string): string;
100
+ getLayerType(design: LayeredChartDesign, layerIndex: number): "area" | "line" | "bar" | "spline" | "scatter" | "pie" | "donut";
101
+ getLayerTypeString(design: LayeredChartDesign, layerIndex: number): "area" | "line" | "bar" | "spline" | "scatter" | "pie" | "donut";
102
+ doesLayerNeedGrouping(design: LayeredChartDesign, layerIndex: number): boolean;
103
+ canLayerUseXExpr(design: LayeredChartDesign, layerIndex: number): boolean;
104
+ isXAxisRequired(design: LayeredChartDesign): boolean;
105
+ isColorAxisRequired(design: LayeredChartDesign, layerIndex: number): boolean;
106
+ compileDefaultTitleText(design: LayeredChartDesign, locale?: string): string;
107
+ compileDefaultYAxisLabelText(design: LayeredChartDesign, locale?: string): string;
108
108
  compileDefaultXAxisLabelText(design: any, locale?: string): string;
109
109
  compileTitleText(design: any, locale?: string): any;
110
110
  compileYAxisLabelText(design: any, locale?: string): any;
@@ -246,7 +246,7 @@ class LayeredChartCompiler {
246
246
  ? true
247
247
  : c3Data.legendHide
248
248
  },
249
- grid: { focus: { show: false } },
249
+ grid: { focus: { show: false } }, // Don't display hover grid
250
250
  axis: {
251
251
  x: {
252
252
  type: c3Data.xAxisType,
@@ -308,7 +308,7 @@ class LayeredChartCompiler {
308
308
  // same color values gets hidden!! https://github.com/naver/billboard.js/issues/871
309
309
  chartDesign.data.labels = {
310
310
  colors: chartDesign.data.columns.reduce((a, c) => {
311
- a[c[0]] = "#000";
311
+ a[c[0]] = "var(--chart-text-color)";
312
312
  return a;
313
313
  }, {})
314
314
  };
@@ -360,7 +360,7 @@ class LayeredChartCompiler {
360
360
  // # If x axis is year only, display year in ticks
361
361
  // if options.design.layers[0]?.axes.x?.xform?.type == "year"
362
362
  // chartDesign.axis.x.tick.format = (x) -> if _.isDate(x) then x.getFullYear() else x
363
- console.log(chartDesign);
363
+ // console.log(chartDesign)
364
364
  return chartDesign;
365
365
  }
366
366
  isCategoricalX(design) {
@@ -440,7 +440,7 @@ class LayeredChartCompiler {
440
440
  columns.push([series, row.y]);
441
441
  types[series] = this.getLayerType(design, layerIndex);
442
442
  // Name is name of entire layer
443
- names[series] = layer.name || (design.layers.length === 1 ? "Value" : `Series ${layerIndex + 1}`);
443
+ names[series] = layer.name || (design.layers.length === 1 ? T `Value` : T `Series ${layerIndex + 1}`);
444
444
  dataMap[series] = { layerIndex, row };
445
445
  format[series] = (value) => value != null ? this.axisBuilder.formatValue(layer.axes.y, value, locale, true) : "";
446
446
  // Set color if present
@@ -469,7 +469,7 @@ class LayeredChartCompiler {
469
469
  names,
470
470
  dataMap,
471
471
  colors,
472
- xAxisType: "category",
472
+ xAxisType: "category", // Polar charts are always category x-axis
473
473
  titleText: this.compileTitleText(design, locale),
474
474
  order,
475
475
  format
@@ -545,7 +545,7 @@ class LayeredChartCompiler {
545
545
  columns.push([seriesY].concat(yValues));
546
546
  columns.push([seriesX].concat(xValues));
547
547
  types[seriesY] = this.getLayerType(design, layerIndex);
548
- names[seriesY] = layer.name || (design.layers.length === 1 ? "Value" : `Series ${layerIndex + 1}`);
548
+ names[seriesY] = layer.name || (design.layers.length === 1 ? T `Value` : T `Series ${layerIndex + 1}`);
549
549
  xs[seriesY] = seriesX;
550
550
  colors[seriesY] = layer.color || defaultColors[layerIndex];
551
551
  format[seriesY] = (value) => value != null ? this.axisBuilder.formatValue(layer.axes.y, value, locale, true) : "";
@@ -558,7 +558,7 @@ class LayeredChartCompiler {
558
558
  const trendlineSeries = seriesY + ":trendline";
559
559
  columns.push([trendlineSeries].concat(calculateLinearRegression(yValues, xValues)));
560
560
  types[trendlineSeries] = (0, billboard_js_1.line)();
561
- names[trendlineSeries] = names[seriesY] + " Trendline";
561
+ names[trendlineSeries] = names[seriesY] + T ` Trendline`;
562
562
  xs[trendlineSeries] = seriesX;
563
563
  colors[trendlineSeries] = layer.color || defaultColors[layerIndex];
564
564
  legendHide.push(trendlineSeries); // Hide in legend
@@ -583,11 +583,11 @@ class LayeredChartCompiler {
583
583
  legendHide,
584
584
  classes,
585
585
  xAxisType: ["date"].includes(xType || "") ? "timeseries" : "indexed",
586
- xAxisTickFit: false,
586
+ xAxisTickFit: false, // Don't put a tick for each point
587
587
  xAxisLabelText: this.compileXAxisLabelText(design, locale),
588
588
  yAxisLabelText: this.compileYAxisLabelText(design, locale),
589
589
  titleText: this.compileTitleText(design, locale),
590
- order: undefined,
590
+ order: undefined, // Use order of data for stacking
591
591
  format
592
592
  };
593
593
  }
@@ -871,12 +871,12 @@ class LayeredChartCompiler {
871
871
  legendHide,
872
872
  classes,
873
873
  xAxisType: "category",
874
- xAxisTickFit: xType !== "date",
874
+ xAxisTickFit: xType !== "date" || xAxis.xform?.type != "date", // Put a tick for each point since categorical unless untransformed date which has too many ticks
875
875
  xAxisTickMultiline: design.xAxisTickMultiline,
876
876
  xAxisLabelText: this.compileXAxisLabelText(design, locale),
877
877
  yAxisLabelText: this.compileYAxisLabelText(design, locale),
878
878
  titleText: this.compileTitleText(design, locale),
879
- order: null,
879
+ order: null, // Use order of data for stacking
880
880
  format,
881
881
  color: (color, d) => {
882
882
  // Handle overall series color which calls with a non-object for d
@@ -926,7 +926,7 @@ class LayeredChartCompiler {
926
926
  let needle;
927
927
  return (needle = this.getLayerTypeString(design, layerIndex)), !["pie", "donut"].includes(needle);
928
928
  }
929
- isXAxisRequired(design, layerIndex) {
929
+ isXAxisRequired(design) {
930
930
  let needle;
931
931
  return lodash_1.default.any(design.layers, (layer, i) => ((needle = this.getLayerTypeString(design, i)), !["pie", "donut"].includes(needle)));
932
932
  }
@@ -1000,7 +1000,7 @@ class LayeredChartCompiler {
1000
1000
  ]
1001
1001
  });
1002
1002
  names.push(this.axisBuilder.summarizeAxis(layer.axes.x, locale) +
1003
- " includes " +
1003
+ ` ${T `includes`} ` +
1004
1004
  this.exprUtils.stringifyExprLiteral(layer.axes.x.expr, [row.x], locale));
1005
1005
  data.x = row.x;
1006
1006
  }
@@ -1017,7 +1017,7 @@ class LayeredChartCompiler {
1017
1017
  filters.push(this.axisBuilder.createValueFilter(layer.axes.color, row.color));
1018
1018
  filterExprs.push(this.axisBuilder.createValueFilterExpr(layer.axes.color, row.color));
1019
1019
  names.push(this.axisBuilder.summarizeAxis(layer.axes.color, locale) +
1020
- " is " +
1020
+ ` ${T `is`} ` +
1021
1021
  this.axisBuilder.formatValue(layer.axes.color, row.color, locale, true));
1022
1022
  data.color = row.color;
1023
1023
  }
@@ -1045,7 +1045,7 @@ class LayeredChartCompiler {
1045
1045
  filterExpr = filterExprs[0];
1046
1046
  }
1047
1047
  const scope = {
1048
- name: expressions_2.ExprUtils.localizeString(this.schema.getTable(layer.table).name, locale) + " " + names.join(" and "),
1048
+ name: expressions_2.ExprUtils.localizeString(this.schema.getTable(layer.table).name, locale) + " " + names.join(` ${T `and`} `),
1049
1049
  filter,
1050
1050
  filterExpr,
1051
1051
  data