@mwater/visualization 5.2.0 → 5.3.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 (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 +8 -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 +379 -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
@@ -1,24 +1,23 @@
1
1
  import React from "react";
2
- interface ColorComponentProps {
2
+ import { ColorState } from "react-color";
3
+ export interface ColorComponentProps {
3
4
  color: string | null | undefined;
4
5
  onChange: (value: string | null) => void;
6
+ disableReset?: boolean;
5
7
  }
6
8
  interface ColorComponentState {
7
- open: any;
8
- advanced: any;
9
+ open: boolean;
10
+ advanced: boolean;
9
11
  }
10
12
  export default class ColorComponent extends React.Component<ColorComponentProps, ColorComponentState> {
11
- constructor(props: any);
13
+ constructor(props: ColorComponentProps);
12
14
  handleClick: () => void;
13
- handleClose: (color: any) => void;
15
+ handleColor: (color: ColorState) => void;
14
16
  handleReset: () => void;
15
17
  handleTransparent: () => void;
16
18
  handleAdvanced: () => void;
17
- render(): React.DetailedReactHTMLElement<{
18
- style: {
19
- position: "relative";
20
- display: "inline-block";
21
- };
22
- }, HTMLElement>;
19
+ renderPopup(): React.ReactPortal | null;
20
+ colorWellRef: HTMLDivElement | null;
21
+ render(): React.JSX.Element;
23
22
  }
24
23
  export {};
@@ -1,13 +1,36 @@
1
1
  "use strict";
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;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
7
- const R = react_1.default.createElement;
29
+ const react_1 = __importStar(require("react"));
30
+ const react_dom_1 = __importDefault(require("react-dom"));
8
31
  const react_onclickout_1 = __importDefault(require("react-onclickout"));
9
32
  const react_color_1 = require("react-color");
10
- const react_color_2 = require("react-color");
33
+ const CustomColorsContext_1 = require("./CustomColorsContext");
11
34
  // Simple color well with popup
12
35
  class ColorComponent extends react_1.default.Component {
13
36
  constructor(props) {
@@ -17,7 +40,7 @@ class ColorComponent extends react_1.default.Component {
17
40
  handleClick = () => {
18
41
  return this.setState({ open: !this.state.open, advanced: false });
19
42
  };
20
- handleClose = (color) => {
43
+ handleColor = (color) => {
21
44
  return this.props.onChange(color.hex);
22
45
  };
23
46
  handleReset = () => {
@@ -31,6 +54,29 @@ class ColorComponent extends react_1.default.Component {
31
54
  handleAdvanced = () => {
32
55
  return this.setState({ advanced: !this.state.advanced });
33
56
  };
57
+ renderPopup() {
58
+ if (!this.state.open || !this.colorWellRef)
59
+ return null;
60
+ const rect = this.colorWellRef.getBoundingClientRect();
61
+ const popupPosition = {
62
+ position: "fixed",
63
+ top: `${rect.bottom + window.scrollY}px`,
64
+ left: `${rect.left + window.scrollX}px`,
65
+ zIndex: 1070,
66
+ backgroundColor: "white",
67
+ border: "solid 1px #DDD",
68
+ borderRadius: 3
69
+ };
70
+ return react_dom_1.default.createPortal(react_1.default.createElement(react_onclickout_1.default, { onClickOut: () => this.setState({ open: false }) },
71
+ react_1.default.createElement("div", { style: popupPosition },
72
+ !this.props.disableReset && (react_1.default.createElement("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleReset },
73
+ react_1.default.createElement("i", { className: "fa fa-undo" }),
74
+ " Reset Color")),
75
+ react_1.default.createElement("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleAdvanced }, this.state.advanced ? "Basic" : "Advanced"),
76
+ react_1.default.createElement(CustomColors, { color: this.props.color, onChange: this.props.onChange }),
77
+ this.state.advanced ? (react_1.default.createElement(react_color_1.SketchPicker, { color: this.props.color || undefined, disableAlpha: true, onChangeComplete: this.handleColor })) : (react_1.default.createElement(react_color_1.SwatchesPicker, { color: this.props.color || undefined, onChangeComplete: this.handleColor })))), document.body);
78
+ }
79
+ colorWellRef = null;
34
80
  render() {
35
81
  const style = {
36
82
  height: 20,
@@ -47,31 +93,34 @@ class ColorComponent extends react_1.default.Component {
47
93
  style.backgroundImage =
48
94
  "repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(255,255,255,.7) 2px, rgba(255,255,255,.7) 4px)";
49
95
  }
50
- const popupPosition = {
51
- position: "absolute",
52
- top: 0,
53
- left: 30,
54
- zIndex: 1000,
55
- backgroundColor: "white",
56
- border: "solid 1px #DDD",
57
- borderRadius: 3
58
- };
59
- return R("div", { style: { position: "relative", display: "inline-block" } }, R("div", { style, onClick: this.handleClick }), this.state.open
60
- ? react_1.default.createElement(react_onclickout_1.default, { onClickOut: () => this.setState({ open: false }) }, R("div", { style: popupPosition }, R("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleReset }, R("i", { className: "fa fa-undo" }), " Reset Color"),
61
- // R 'button', type: "button", className: "btn btn-link btn-sm", onClick: @handleTransparent,
62
- // R 'i', className: "fa fa-ban"
63
- // " None"
64
- R("button", { type: "button", className: "btn btn-link btn-sm", onClick: this.handleAdvanced }, this.state.advanced ? "Basic" : "Advanced"), this.state.advanced
65
- ? react_1.default.createElement(react_color_1.SketchPicker, {
66
- color: this.props.color || undefined,
67
- disableAlpha: true,
68
- onChangeComplete: this.handleClose
69
- })
70
- : react_1.default.createElement(react_color_2.SwatchesPicker, {
71
- color: this.props.color || undefined,
72
- onChangeComplete: this.handleClose
73
- })))
74
- : undefined);
96
+ return (react_1.default.createElement("div", { style: { position: "relative", display: "inline-block" } },
97
+ react_1.default.createElement("div", { style: style, onClick: this.handleClick, ref: ref => this.colorWellRef = ref }),
98
+ this.renderPopup()));
75
99
  }
76
100
  }
77
101
  exports.default = ColorComponent;
102
+ /**
103
+ * Custom colors component for the color picker that allows the user to select from a set of custom colors
104
+ * that are defined in CSS variables.
105
+ * @param props
106
+ * @returns
107
+ */
108
+ function CustomColors(props) {
109
+ const customColors = (0, react_1.useContext)(CustomColorsContext_1.CustomColorsContext);
110
+ return (react_1.default.createElement("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(5, 42px)', gap: 8, margin: 5, marginLeft: 16 } }, customColors?.customColors.filter(color => color != null).map((color) => {
111
+ const isSelected = props.color === color;
112
+ return (react_1.default.createElement("div", { key: color, title: color, tabIndex: 0, onClick: () => props.onChange(color), style: {
113
+ background: color,
114
+ height: '24px',
115
+ width: '40px',
116
+ cursor: 'pointer',
117
+ position: 'relative',
118
+ outline: 'none',
119
+ marginBottom: '1px',
120
+ overflow: 'hidden',
121
+ boxShadow: isSelected ? `${color} 0 0 4px` : 'none'
122
+ } }, isSelected && (react_1.default.createElement("div", { style: { color: '#FFFFFF', marginLeft: '8px' } },
123
+ react_1.default.createElement("svg", { viewBox: "0 0 24 24", style: { fill: 'currentcolor', width: '24px', height: '24px' } },
124
+ react_1.default.createElement("path", { d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" }))))));
125
+ })));
126
+ }
@@ -1,8 +1,19 @@
1
1
  import { AxisCategory } from "./axes/Axis";
2
2
  export default class ColorSchemeFactory {
3
- static createColorScheme(options: any): any[];
3
+ /**
4
+ * Creates a color scheme
5
+ * @param options
6
+ * @param options.type - type of the color scheme
7
+ * @param options.number - number of colors to be generated
8
+ * @param options.reversed - true to reversed
9
+ */
10
+ static createColorScheme(options: {
11
+ type: string;
12
+ number: number;
13
+ reversed: boolean;
14
+ }): string[];
4
15
  static createColorMapForCategories(categories: AxisCategory[], isCategorical: any): {
5
16
  value: any;
6
- color: any;
17
+ color: string;
7
18
  }[];
8
19
  }
@@ -50,11 +50,13 @@ function generateSequentialSet(set, number, reversed) {
50
50
  return lodash_1.default.map(colors, (color) => rgbStringToHex(color));
51
51
  }
52
52
  class ColorSchemeFactory {
53
- // creates a color scheme
54
- // options:
55
- // type: string (type of the color scheme)
56
- // number: int (number of colors to be generated)
57
- // reversed: true to reversed
53
+ /**
54
+ * Creates a color scheme
55
+ * @param options
56
+ * @param options.type - type of the color scheme
57
+ * @param options.number - number of colors to be generated
58
+ * @param options.reversed - true to reversed
59
+ */
58
60
  static createColorScheme(options) {
59
61
  switch (options.type) {
60
62
  case "schemeAccent":
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ export interface CustomColorsContextType {
3
+ customColors: (string | null)[];
4
+ }
5
+ /** Context for custom colors */
6
+ export declare const CustomColorsContext: import("react").Context<CustomColorsContextType | null>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomColorsContext = void 0;
4
+ const react_1 = require("react");
5
+ /** Context for custom colors */
6
+ exports.CustomColorsContext = (0, react_1.createContext)(null);
@@ -1,4 +1,3 @@
1
- import PropTypes from "prop-types";
2
1
  import React from "react";
3
2
  import { DataSource, Expr, Schema } from "@mwater/expressions";
4
3
  export interface FiltersDesignerComponentProps {
@@ -16,9 +15,7 @@ export interface FiltersDesignerComponentProps {
16
15
  }) => void;
17
16
  }
18
17
  export default class FiltersDesignerComponent extends React.Component<FiltersDesignerComponentProps> {
19
- static contextTypes: {
20
- locale: PropTypes.Requireable<string>;
21
- };
18
+ static contextType: React.Context<string>;
22
19
  handleFilterChange: (table: any, expr: any) => void;
23
20
  renderFilterableTable: (table: any) => React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
24
21
  render(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const lodash_1 = __importDefault(require("lodash"));
7
- const prop_types_1 = __importDefault(require("prop-types"));
8
7
  const react_1 = __importDefault(require("react"));
9
8
  const R = react_1.default.createElement;
10
9
  const expressions_ui_1 = require("@mwater/expressions-ui");
@@ -13,7 +12,7 @@ const expressions_2 = require("@mwater/expressions");
13
12
  // Designer for filters of multiple tables. Used for maps and dashboards
14
13
  // Filters are in format mwater-expression filter expression indexed by table. e.g. { sometable: logical expression, etc. }
15
14
  class FiltersDesignerComponent extends react_1.default.Component {
16
- static contextTypes = { locale: prop_types_1.default.string };
15
+ static contextType = expressions_ui_1.LocaleContext;
17
16
  handleFilterChange = (table, expr) => {
18
17
  // Clean filter
19
18
  expr = new expressions_1.ExprCleaner(this.props.schema).cleanExpr(expr, { table });
@@ -22,7 +21,7 @@ class FiltersDesignerComponent extends react_1.default.Component {
22
21
  return this.props.onFiltersChange(filters);
23
22
  };
24
23
  renderFilterableTable = (table) => {
25
- const name = expressions_2.ExprUtils.localizeString(this.props.schema.getTable(table).name, this.context.locale);
24
+ const name = expressions_2.ExprUtils.localizeString(this.props.schema.getTable(table).name, this.context);
26
25
  return R("div", { key: table }, R("label", null, name), react_1.default.createElement(expressions_ui_1.FilterExprComponent, {
27
26
  schema: this.props.schema,
28
27
  dataSource: this.props.dataSource,
@@ -1,14 +1,8 @@
1
1
  import React from "react";
2
- import PropTypes from "prop-types";
3
- /** Adds the locale to the context */
4
- export default class LocaleContextInjector extends React.Component<{
2
+ export interface LocaleContextProps {
5
3
  locale: string;
6
- }> {
7
- static childContextTypes: {
8
- locale: PropTypes.Requireable<string>;
9
- };
10
- getChildContext(): {
11
- locale: string;
12
- };
13
- render(): React.ReactNode;
4
+ children: React.ReactNode;
14
5
  }
6
+ /** Adds the locale to the context */
7
+ declare const LocaleContextInjector: React.FC<LocaleContextProps>;
8
+ export default LocaleContextInjector;
@@ -4,17 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const prop_types_1 = __importDefault(require("prop-types"));
7
+ const contexts_1 = require("@mwater/expressions-ui/lib/contexts");
8
8
  /** Adds the locale to the context */
9
- class LocaleContextInjector extends react_1.default.Component {
10
- static childContextTypes = {
11
- locale: prop_types_1.default.string
12
- };
13
- getChildContext() {
14
- return { locale: this.props.locale };
15
- }
16
- render() {
17
- return this.props.children;
18
- }
19
- }
9
+ const LocaleContextInjector = ({ locale, children }) => {
10
+ return (react_1.default.createElement(contexts_1.LocaleContext.Provider, { value: locale }, children));
11
+ };
20
12
  exports.default = LocaleContextInjector;
@@ -27,7 +27,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const jquery_1 = __importDefault(require("jquery"));
30
- const prop_types_1 = __importDefault(require("prop-types"));
31
30
  const lodash_1 = __importDefault(require("lodash"));
32
31
  const react_1 = __importDefault(require("react"));
33
32
  const R = react_1.default.createElement;
@@ -36,6 +35,7 @@ const ModalPopupComponent_1 = __importDefault(require("@mwater/react-library/lib
36
35
  const querystring_1 = __importDefault(require("querystring"));
37
36
  const expressions_1 = require("@mwater/expressions");
38
37
  const ui = __importStar(require("./UIComponents"));
38
+ const contexts_1 = require("@mwater/expressions-ui/lib/contexts");
39
39
  // Link that when clicked popup up a modal window allowing user to select a form
40
40
  // with an Site question to the extraTables
41
41
  class MWaterAddRelatedFormComponent extends react_1.default.Component {
@@ -81,7 +81,7 @@ class MWaterAddRelatedFormComponent extends react_1.default.Component {
81
81
  exports.default = MWaterAddRelatedFormComponent;
82
82
  /** Actual modal that displays the list of forms */
83
83
  class AddRelatedFormModalComponent extends react_1.default.Component {
84
- static contextTypes = { locale: prop_types_1.default.string };
84
+ static contextType = contexts_1.LocaleContext;
85
85
  constructor(props) {
86
86
  super(props);
87
87
  this.state = {
@@ -106,7 +106,7 @@ class AddRelatedFormModalComponent extends react_1.default.Component {
106
106
  forms = lodash_1.default.sortByOrder(forms, [(form) => (form.created.by === this.props.user ? 1 : 0), (form) => form.modified.on], ["desc", "desc"]);
107
107
  // Get _id, name, and description
108
108
  const items = lodash_1.default.map(forms, (form) => ({
109
- name: expressions_1.ExprUtils.localizeString(form.design.name, this.context.locale),
109
+ name: expressions_1.ExprUtils.localizeString(form.design.name, this.context),
110
110
  desc: `Modified ${(0, moment_1.default)(form.modified.on, moment_1.default.ISO_8601).format("ll")}`,
111
111
  onClick: this.props.onSelect.bind(null, "responses:" + form._id)
112
112
  }));
@@ -1,5 +1,4 @@
1
1
  /// <reference types="jquery" />
2
- import PropTypes from "prop-types";
3
2
  import React from "react";
4
3
  import { Schema } from "@mwater/expressions";
5
4
  export interface MWaterAddRelatedIndicatorComponentProps {
@@ -19,9 +18,7 @@ interface MWaterAddRelatedIndicatorComponentState {
19
18
  indicators: any;
20
19
  }
21
20
  export default class MWaterAddRelatedIndicatorComponent extends React.Component<MWaterAddRelatedIndicatorComponentProps, MWaterAddRelatedIndicatorComponentState> {
22
- static contextTypes: {
23
- locale: PropTypes.Requireable<string>;
24
- };
21
+ static contextType: React.Context<string>;
25
22
  constructor(props: any);
26
23
  componentDidMount(): JQuery.jqXHR<any>;
27
24
  doesIndicatorReferenceTable(indicator: any, table: any): boolean;
@@ -4,15 +4,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const jquery_1 = __importDefault(require("jquery"));
7
- const prop_types_1 = __importDefault(require("prop-types"));
8
7
  const lodash_1 = __importDefault(require("lodash"));
9
8
  const react_1 = __importDefault(require("react"));
10
9
  const R = react_1.default.createElement;
11
10
  const querystring_1 = __importDefault(require("querystring"));
12
11
  const expressions_1 = require("@mwater/expressions");
12
+ const contexts_1 = require("@mwater/expressions-ui/lib/contexts");
13
13
  // List of indicators related to an entity
14
14
  class MWaterAddRelatedIndicatorComponent extends react_1.default.Component {
15
- static contextTypes = { locale: prop_types_1.default.string };
15
+ static contextType = contexts_1.LocaleContext;
16
16
  constructor(props) {
17
17
  super(props);
18
18
  this.state = {
@@ -41,7 +41,7 @@ class MWaterAddRelatedIndicatorComponent extends react_1.default.Component {
41
41
  // Sort by recommended then name
42
42
  indicators = lodash_1.default.sortByOrder(indicators, [
43
43
  (indicator) => (indicator.design.recommended ? 0 : 1),
44
- (indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, this.context.locale)
44
+ (indicator) => expressions_1.ExprUtils.localizeString(indicator.design.name, this.context)
45
45
  ], ["asc", "asc"]);
46
46
  return this.setState({ indicators });
47
47
  }).fail((xhr) => {
@@ -72,13 +72,13 @@ class MWaterAddRelatedIndicatorComponent extends react_1.default.Component {
72
72
  });
73
73
  // Filter by search
74
74
  if (this.props.filter) {
75
- indicators = lodash_1.default.filter(indicators, (indicator) => filterMatches(this.props.filter, expressions_1.ExprUtils.localizeString(indicator.design.name, this.context.locale)));
75
+ indicators = lodash_1.default.filter(indicators, (indicator) => filterMatches(this.props.filter, expressions_1.ExprUtils.localizeString(indicator.design.name, this.context)));
76
76
  }
77
77
  return R("div", null, R("div", { style: { paddingLeft: 5 }, className: "text-muted" }, "Other Available Indicators. Click to enable. ", R("i", { className: "fa fa-check-circle" }), " = recommended", !this.state.indicators
78
78
  ? R("div", { className: "text-muted" }, R("i", { className: "fa fa-spin fa-spinner" }), " Loading...")
79
79
  : undefined, R("div", { style: { paddingLeft: 10 } }, lodash_1.default.map(indicators, (indicator) => {
80
- const name = expressions_1.ExprUtils.localizeString(indicator.design.name, this.context.locale);
81
- const desc = expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context.locale);
80
+ const name = expressions_1.ExprUtils.localizeString(indicator.design.name, this.context);
81
+ const desc = expressions_1.ExprUtils.localizeString(indicator.design.desc, this.context);
82
82
  // If added, put special message
83
83
  if (this.props.schema.getTable(`indicator_values:${indicator._id}`)) {
84
84
  return R("div", { key: indicator._id, style: { cursor: "pointer", padding: 4 }, className: "text-success" }, `${name} added. See above.`);
@@ -1,5 +1,4 @@
1
1
  /// <reference types="jquery" />
2
- import PropTypes from "prop-types";
3
2
  import React from "react";
4
3
  import * as uiComponents from "./UIComponents";
5
4
  import { Schema } from "@mwater/expressions";
@@ -21,9 +20,7 @@ interface MWaterCompleteTableSelectComponentProps {
21
20
  export default class MWaterCompleteTableSelectComponent extends React.Component<MWaterCompleteTableSelectComponentProps, {
22
21
  showLegacyAssets: boolean;
23
22
  }> {
24
- static contextTypes: {
25
- locale: PropTypes.Requireable<string>;
26
- };
23
+ static contextType: React.Context<string>;
27
24
  constructor(props: MWaterCompleteTableSelectComponentProps);
28
25
  handleExtraTableAdd: (tableId: any) => any;
29
26
  handleExtraTableRemove: (tableId: any) => any;
@@ -118,9 +115,7 @@ interface FormsListComponentState {
118
115
  }[] | null;
119
116
  }
120
117
  declare class FormsListComponent extends React.Component<FormsListComponentProps, FormsListComponentState> {
121
- static contextTypes: {
122
- locale: PropTypes.Requireable<string>;
123
- };
118
+ static contextType: React.Context<string>;
124
119
  constructor(props: any);
125
120
  componentDidMount(): void;
126
121
  handleTableRemove: (table: any) => any;
@@ -149,9 +144,7 @@ interface IndicatorsListComponentState {
149
144
  indicators: any[] | null;
150
145
  }
151
146
  declare class IndicatorsListComponent extends React.Component<IndicatorsListComponentProps, IndicatorsListComponentState> {
152
- static contextTypes: {
153
- locale: PropTypes.Requireable<string>;
154
- };
147
+ static contextType: React.Context<string>;
155
148
  addIndicatorConfirmPopup: AddIndicatorConfirmPopupComponent | null;
156
149
  constructor(props: any);
157
150
  componentDidMount(): JQuery.jqXHR<any>;
@@ -173,9 +166,7 @@ interface AddIndicatorConfirmPopupComponentState {
173
166
  visible: any;
174
167
  }
175
168
  declare class AddIndicatorConfirmPopupComponent extends React.Component<AddIndicatorConfirmPopupComponentProps, AddIndicatorConfirmPopupComponentState> {
176
- static contextTypes: {
177
- locale: PropTypes.Requireable<string>;
178
- };
169
+ static contextType: React.Context<string>;
179
170
  constructor(props: any);
180
171
  show(indicatorTable: any): void;
181
172
  renderContents(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | React.DetailedReactHTMLElement<{
@@ -203,9 +194,7 @@ interface IssuesListComponentState {
203
194
  issueTypes: any[] | null;
204
195
  }
205
196
  declare class IssuesListComponent extends React.Component<IssuesListComponentProps, IssuesListComponentState> {
206
- static contextTypes: {
207
- locale: PropTypes.Requireable<string>;
208
- };
197
+ static contextType: React.Context<string>;
209
198
  constructor(props: any);
210
199
  componentDidMount(): JQuery.jqXHR<any>;
211
200
  handleTableRemove: (table: any) => any;