@mwater/visualization 5.0.1 → 5.2.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 (172) hide show
  1. package/lib/GlobalFilter.d.ts +13 -0
  2. package/lib/GlobalFilter.js +2 -0
  3. package/lib/MWaterAddRelatedFormComponent.d.ts +1 -1
  4. package/lib/MWaterAddRelatedFormComponent.js +10 -17
  5. package/lib/MWaterCompleteTableSelectComponent.d.ts +2 -9
  6. package/lib/MWaterContextComponent.d.ts +31 -9
  7. package/lib/MWaterContextComponent.js +85 -76
  8. package/lib/MWaterCustomTablesetListComponent.js +9 -3
  9. package/lib/MWaterGlobalFiltersComponent.d.ts +6 -5
  10. package/lib/MWaterGlobalFiltersComponent.js +4 -4
  11. package/lib/MWaterLoaderComponent.d.ts +14 -4
  12. package/lib/MWaterLoaderComponent.js +10 -2
  13. package/lib/MWaterTableSelectComponent.d.ts +0 -1
  14. package/lib/MWaterTableSelectComponent.js +20 -41
  15. package/lib/axes/Axis.d.ts +20 -25
  16. package/lib/axes/AxisBuilder.js +9 -7
  17. package/lib/axes/AxisComponent.d.ts +4 -4
  18. package/lib/axes/RangesComponent.d.ts +12 -6
  19. package/lib/axes/RangesComponent.js +21 -10
  20. package/lib/dashboards/DashboardComponent.d.ts +1 -14
  21. package/lib/dashboards/DashboardComponent.js +18 -56
  22. package/lib/dashboards/DashboardDesign.d.ts +2 -17
  23. package/lib/dashboards/DashboardViewComponent.js +3 -4
  24. package/lib/dashboards/LayoutOptionsComponent.js +4 -3
  25. package/lib/dashboards/ServerDashboardDataSource.d.ts +1 -0
  26. package/lib/dashboards/ServerDashboardDataSource.js +3 -0
  27. package/lib/dashboards/SettingsModalComponent.d.ts +4 -15
  28. package/lib/dashboards/SettingsModalComponent.js +24 -38
  29. package/lib/datagrids/DatagridComponent.d.ts +10 -13
  30. package/lib/datagrids/DatagridComponent.js +27 -5
  31. package/lib/datagrids/DatagridDataSource.d.ts +3 -2
  32. package/lib/datagrids/DatagridDataSource.js +0 -11
  33. package/lib/datagrids/DatagridDesign.d.ts +2 -0
  34. package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -93
  35. package/lib/datagrids/DatagridDesignerComponent.js +11 -8
  36. package/lib/datagrids/DatagridViewComponent.js +2 -2
  37. package/lib/datagrids/DirectDatagridDataSource.d.ts +1 -0
  38. package/lib/datagrids/DirectDatagridDataSource.js +26 -0
  39. package/lib/datagrids/FindReplaceModalComponent.d.ts +4 -20
  40. package/lib/datagrids/FindReplaceModalComponent.js +27 -13
  41. package/lib/datagrids/ServerDatagridDataSource.d.ts +2 -1
  42. package/lib/datagrids/ServerDatagridDataSource.js +16 -3
  43. package/lib/demo.js +1 -1
  44. package/lib/index.d.ts +1 -1
  45. package/lib/index.js +2 -4
  46. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +2 -1
  47. package/lib/layouts/blocks/BlocksDisplayComponent.js +2 -2
  48. package/lib/layouts/grid/GridLayoutManager.d.ts +2 -1
  49. package/lib/layouts/grid/LegoLayoutEngine.d.ts +1 -1
  50. package/lib/maps/BufferLayer.js +3 -1
  51. package/lib/maps/BufferLayerDesignerComponent.js +2 -2
  52. package/lib/maps/ChoroplethLayerDesigner.js +2 -2
  53. package/lib/maps/ClusterLayer.js +3 -1
  54. package/lib/maps/ClusterLayerDesignerComponent.js +2 -2
  55. package/lib/maps/DirectMapDataSource.js +1 -2
  56. package/lib/maps/GridLayer.js +5 -3
  57. package/lib/maps/GridLayerDesigner.js +2 -3
  58. package/lib/maps/LayerSwitcherComponent.js +1 -1
  59. package/lib/maps/MapComponent.d.ts +2 -7
  60. package/lib/maps/MapDesign.d.ts +2 -13
  61. package/lib/maps/MapDesignerComponent.d.ts +1 -12
  62. package/lib/maps/MapDesignerComponent.js +5 -12
  63. package/lib/maps/MapFiltersDesignerComponent.d.ts +0 -4
  64. package/lib/maps/MapFiltersDesignerComponent.js +4 -5
  65. package/lib/maps/MarkersLayerDesignerComponent.js +2 -2
  66. package/lib/maps/PopupFilterJoinsUtils.d.ts +6 -1
  67. package/lib/maps/PopupFilterJoinsUtils.js +4 -3
  68. package/lib/maps/RasterMapViewComponent.d.ts +2 -9
  69. package/lib/maps/RegionSelectComponent.d.ts +2 -1
  70. package/lib/maps/ServerMapDataSource.d.ts +1 -1
  71. package/lib/maps/UtfGridLayer.js +1 -1
  72. package/lib/maps/vectorMaps.d.ts +1 -0
  73. package/lib/maps/vectorMaps.js +10 -2
  74. package/lib/quickfilter/QuickfilterCompiler.d.ts +1 -1
  75. package/lib/widgets/IFrameWidgetComponent.d.ts +2 -9
  76. package/lib/widgets/ImageWidgetComponent.d.ts +6 -24
  77. package/lib/widgets/ImageWidgetComponent.js +2 -2
  78. package/lib/widgets/MapWidget.d.ts +2 -7
  79. package/lib/widgets/MarkdownWidget.d.ts +2 -7
  80. package/lib/widgets/TOCWidget.d.ts +2 -9
  81. package/lib/widgets/charts/ChartWidget.d.ts +3 -15
  82. package/lib/widgets/charts/calendar/CalendarChartDesignerComponent.js +2 -2
  83. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +1 -1
  84. package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +1 -1
  85. package/lib/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.js +2 -2
  86. package/lib/widgets/charts/imagemosaic/ImagePopupComponent.d.ts +2 -7
  87. package/lib/widgets/charts/layered/LayeredChartDesignerComponent.d.ts +2 -31
  88. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.d.ts +2 -7
  89. package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +2 -2
  90. package/lib/widgets/charts/pivot/IntersectionDesignerComponent.d.ts +73 -66
  91. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +10 -6
  92. package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +2 -2
  93. package/lib/widgets/charts/pivot/PivotChartViewComponent.d.ts +3 -22
  94. package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +55 -58
  95. package/lib/widgets/charts/table/TableChartDesignerComponent.js +2 -2
  96. package/lib/widgets/charts/table/TableChartViewComponent.js +21 -7
  97. package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -13
  98. package/lib/widgets/text/ExprItemEditorComponent.js +2 -2
  99. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -13
  100. package/lib/widgets/text/TextWidgetDesign.d.ts +3 -1
  101. package/package.json +1 -1
  102. package/src/GlobalFilter.ts +17 -0
  103. package/src/MWaterAddRelatedFormComponent.ts +15 -20
  104. package/src/MWaterContextComponent.tsx +158 -0
  105. package/src/MWaterCustomTablesetListComponent.tsx +21 -3
  106. package/src/MWaterGlobalFiltersComponent.ts +8 -8
  107. package/src/MWaterLoaderComponent.ts +10 -3
  108. package/src/{MWaterTableSelectComponent.ts → MWaterTableSelectComponent.tsx} +61 -66
  109. package/src/axes/Axis.ts +24 -25
  110. package/src/axes/AxisBuilder.ts +10 -9
  111. package/src/axes/RangesComponent.ts +27 -16
  112. package/src/dashboards/{DashboardComponent.ts → DashboardComponent.tsx} +39 -80
  113. package/src/dashboards/DashboardDesign.ts +2 -22
  114. package/src/dashboards/DashboardViewComponent.ts +4 -5
  115. package/src/dashboards/LayoutOptionsComponent.tsx +6 -4
  116. package/src/dashboards/ServerDashboardDataSource.ts +16 -12
  117. package/src/dashboards/SettingsModalComponent.tsx +170 -0
  118. package/src/datagrids/DatagridComponent.ts +45 -14
  119. package/src/datagrids/DatagridDataSource.ts +10 -8
  120. package/src/datagrids/DatagridDesign.ts +3 -0
  121. package/src/datagrids/DatagridDesignerComponent.tsx +31 -19
  122. package/src/datagrids/DatagridViewComponent.ts +4 -4
  123. package/src/datagrids/DirectDatagridDataSource.ts +35 -0
  124. package/src/datagrids/ExprCellComponent.ts +0 -1
  125. package/src/datagrids/FindReplaceModalComponent.ts +39 -22
  126. package/src/datagrids/ServerDatagridDataSource.ts +23 -6
  127. package/src/demo.ts +1 -1
  128. package/src/index.ts +1 -2
  129. package/src/layouts/blocks/BlocksDisplayComponent.ts +2 -2
  130. package/src/layouts/grid/LegoLayoutEngine.ts +2 -2
  131. package/src/layouts/grid/WidgetContainerComponent.ts +2 -2
  132. package/src/maps/BingLayer.ts +2 -2
  133. package/src/maps/BufferLayer.ts +3 -1
  134. package/src/maps/BufferLayerDesignerComponent.ts +1 -1
  135. package/src/maps/ChoroplethLayerDesigner.tsx +1 -1
  136. package/src/maps/ClusterLayer.ts +3 -1
  137. package/src/maps/ClusterLayerDesignerComponent.ts +1 -1
  138. package/src/maps/DirectMapDataSource.ts +1 -2
  139. package/src/maps/GridLayer.ts +5 -3
  140. package/src/maps/GridLayerDesigner.tsx +1 -2
  141. package/src/maps/LayerSwitcherComponent.tsx +1 -1
  142. package/src/maps/LegendGroup.ts +1 -1
  143. package/src/maps/MWaterServerLayer.ts +2 -2
  144. package/src/maps/MapDesign.ts +2 -17
  145. package/src/maps/{MapDesignerComponent.ts → MapDesignerComponent.tsx} +8 -16
  146. package/src/maps/{MapFiltersDesignerComponent.ts → MapFiltersDesignerComponent.tsx} +25 -25
  147. package/src/maps/MarkersLayerDesignerComponent.ts +1 -1
  148. package/src/maps/PopupFilterJoinsUtils.ts +4 -4
  149. package/src/maps/ServerMapDataSource.ts +7 -7
  150. package/src/maps/SwitchableTileUrlLayerDesigner.tsx +1 -13
  151. package/src/maps/UtfGridLayer.ts +4 -4
  152. package/src/maps/VectorMapViewComponent.tsx +0 -1
  153. package/src/maps/mapboxUtils.ts +2 -2
  154. package/src/maps/vectorMaps.tsx +10 -1
  155. package/src/quickfilter/QuickfilterCompiler.ts +1 -1
  156. package/src/richtext/ExprItemsHtmlConverter.ts +1 -1
  157. package/src/richtext/FontColorPaletteItem.ts +1 -1
  158. package/src/richtext/FontSizePaletteItem.ts +1 -1
  159. package/src/richtext/ItemsHtmlConverter.ts +2 -2
  160. package/src/widgets/ImageWidgetComponent.ts +1 -1
  161. package/src/widgets/charts/calendar/CalendarChartDesignerComponent.ts +1 -1
  162. package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +1 -1
  163. package/src/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.ts +1 -1
  164. package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +1 -1
  165. package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +1 -1
  166. package/src/widgets/charts/table/TableChartDesignerComponent.ts +1 -1
  167. package/src/widgets/charts/table/TableChartViewComponent.ts +21 -7
  168. package/src/widgets/text/ExprItemEditorComponent.tsx +1 -1
  169. package/src/widgets/text/TextWidgetDesign.ts +4 -1
  170. package/src/MWaterContextComponent.ts +0 -141
  171. package/src/TableSelectComponent.ts +0 -60
  172. package/src/dashboards/SettingsModalComponent.ts +0 -169
package/lib/index.js CHANGED
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.RichTextComponent = exports.AxisColorEditorComponent = exports.MarkerSymbolSelectComponent = exports.DetailLevelSelectComponent = exports.LayoutManager = exports.LabeledExprGenerator = exports.DirectDatagridDataSource = exports.ServerDatagridDataSource = exports.DirectMapDataSource = exports.ServerMapDataSource = exports.ServerDashboardDataSource = exports.DatagridViewComponent = exports.DatagridComponent = exports.ColorSchemeFactory = exports.AxisBuilder = exports.WidgetScopesViewComponent = exports.WidgetScoper = exports.ChartViewComponent = exports.ImageMosaicChart = exports.CalendarChart = exports.TableChart = exports.LayeredChart = exports.CheckboxComponent = exports.RadioButtonComponent = exports.VerticalLayoutComponent = exports.MapComponent = exports.MapDesignerComponent = exports.LayerFactory = exports.UtfGridLayer = exports.BingLayer = exports.DashboardViewComponent = exports.UndoStack = exports.setMapTilerApiKey = exports.DirectWidgetDataSource = exports.mWaterLoader = exports.MWaterContextComponent = exports.MWaterLoaderComponent = exports.languages = exports.DatagridUtils = exports.Widget = exports.WidgetFactory = exports.LocaleContextInjector = exports.compressJson = exports.DirectDashboardDataSource = exports.DashboardDataSource = exports.DashboardComponent = exports.TableSelectComponent = exports.RegionSelectComponent = exports.DateRangeComponent = exports.LeafletMapComponent = void 0;
21
- exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler = exports.DropdownWidgetComponent = exports.ItemsHtmlConverter = void 0;
20
+ exports.ItemsHtmlConverter = exports.RichTextComponent = exports.AxisColorEditorComponent = exports.MarkerSymbolSelectComponent = exports.DetailLevelSelectComponent = exports.LayoutManager = exports.LabeledExprGenerator = exports.DirectDatagridDataSource = exports.ServerDatagridDataSource = exports.DirectMapDataSource = exports.ServerMapDataSource = exports.ServerDashboardDataSource = exports.DatagridViewComponent = exports.DatagridComponent = exports.ColorSchemeFactory = exports.AxisBuilder = exports.WidgetScopesViewComponent = exports.WidgetScoper = exports.ChartViewComponent = exports.ImageMosaicChart = exports.CalendarChart = exports.TableChart = exports.LayeredChart = exports.CheckboxComponent = exports.RadioButtonComponent = exports.VerticalLayoutComponent = exports.MapComponent = exports.MapDesignerComponent = exports.LayerFactory = exports.UtfGridLayer = exports.BingLayer = exports.DashboardViewComponent = exports.UndoStack = exports.setMapTilerApiKey = exports.DirectWidgetDataSource = exports.mWaterLoader = exports.MWaterContextComponent = exports.MWaterLoaderComponent = exports.languages = exports.DatagridUtils = exports.Widget = exports.WidgetFactory = exports.LocaleContextInjector = exports.compressJson = exports.DirectDashboardDataSource = exports.DashboardDataSource = exports.DashboardComponent = exports.RegionSelectComponent = exports.DateRangeComponent = exports.LeafletMapComponent = void 0;
21
+ exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler = exports.DropdownWidgetComponent = void 0;
22
22
  var LeafletMapComponent_1 = require("./maps/LeafletMapComponent");
23
23
  Object.defineProperty(exports, "LeafletMapComponent", { enumerable: true, get: function () { return __importDefault(LeafletMapComponent_1).default; } });
24
24
  var DateRangeComponent_1 = require("./DateRangeComponent");
@@ -26,8 +26,6 @@ Object.defineProperty(exports, "DateRangeComponent", { enumerable: true, get: fu
26
26
  var RegionSelectComponent_1 = require("./maps/RegionSelectComponent");
27
27
  Object.defineProperty(exports, "RegionSelectComponent", { enumerable: true, get: function () { return __importDefault(RegionSelectComponent_1).default; } });
28
28
  __exportStar(require("./datagrids/DatagridDesign"), exports);
29
- var TableSelectComponent_1 = require("./TableSelectComponent");
30
- Object.defineProperty(exports, "TableSelectComponent", { enumerable: true, get: function () { return __importDefault(TableSelectComponent_1).default; } });
31
29
  __exportStar(require("./JsonQLFilter"), exports);
32
30
  var DashboardComponent_1 = require("./dashboards/DashboardComponent");
33
31
  Object.defineProperty(exports, "DashboardComponent", { enumerable: true, get: function () { return __importDefault(DashboardComponent_1).default; } });
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import AutoSizeComponent from "@mwater/react-library/lib/AutoSizeComponent";
2
3
  import HorizontalBlockComponent from "./HorizontalBlockComponent";
3
4
  import { LayoutBlock } from "./blockUtils";
4
5
  export interface BlocksDisplayComponentProps {
@@ -38,7 +39,7 @@ declare class BlocksDisplayComponent extends React.Component<BlocksDisplayCompon
38
39
  left: number;
39
40
  };
40
41
  }, HTMLElement>;
41
- render(): React.CElement<any, React.Component<any, any, any>> | React.DetailedReactHTMLElement<{
42
+ render(): React.CElement<import("@mwater/react-library/lib/AutoSizeComponent").AutoSizeComponentProps, AutoSizeComponent> | React.DetailedReactHTMLElement<{
42
43
  style: {
43
44
  width: string;
44
45
  height: string;
@@ -265,7 +265,7 @@ class BlocksDisplayComponent extends react_1.default.Component {
265
265
  innerParentStyle = {};
266
266
  innerParentStyle.maxWidth = layoutOptions.maximumWidth || undefined;
267
267
  return R("div", { style: { width: "100%", height: "100%", overflow: "hidden", position: "relative" } }, this.renderPalette(), R("div", {
268
- style: { position: "absolute", left: 141, top: 0, bottom: 0, right: 0, overflow: "auto" },
268
+ style: { position: "absolute", left: 141, top: 0, bottom: 0, right: 0, overflowX: "auto", overflowY: "scroll" },
269
269
  className: `mwater-visualization-block-parent-outer mwater-visualization-block-parent-outer-${this.props.style || "default"} mwater-visualization-block-editing`
270
270
  }, R("div", {
271
271
  key: "inner",
@@ -275,7 +275,7 @@ class BlocksDisplayComponent extends react_1.default.Component {
275
275
  }
276
276
  else {
277
277
  return R(AutoSizeComponent_1.default, { injectWidth: true, injectHeight: true }, (size) => {
278
- const outerParentStyle = { width: "100%", height: "100%", overflowX: "auto" };
278
+ const outerParentStyle = { width: "100%", height: "100%", overflowX: "auto", overflowY: "scroll" };
279
279
  innerParentStyle = {};
280
280
  // Remove padding if small
281
281
  if (size.width < 600) {
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import LayoutManager from "../LayoutManager";
3
+ import AutoSizeComponent from "@mwater/react-library/lib/AutoSizeComponent";
3
4
  export default class GridLayoutManager extends LayoutManager {
4
5
  renderPalette(width: any): React.DetailedReactHTMLElement<{
5
6
  className: string;
@@ -11,7 +12,7 @@ export default class GridLayoutManager extends LayoutManager {
11
12
  width: number;
12
13
  };
13
14
  }, HTMLElement>;
14
- renderLayout(options: any): React.CElement<any, React.Component<any, any, any>>;
15
+ renderLayout(options: any): React.CElement<import("@mwater/react-library/lib/AutoSizeComponent").AutoSizeComponentProps, AutoSizeComponent>;
15
16
  isEmpty(items: any): boolean;
16
17
  getWidgetTypeAndDesign(items: any, widgetId: any): any;
17
18
  getAllWidgets(items: any): {
@@ -16,7 +16,7 @@ export default class LegoLayoutEngine {
16
16
  w: number;
17
17
  h: number;
18
18
  };
19
- performLayout(layouts: any, priority: any): {};
19
+ performLayout(layouts: any, priority: any): any;
20
20
  appendLayout(layouts: any, w: any, h: any): {
21
21
  x: number;
22
22
  y: number;
@@ -96,7 +96,9 @@ class BufferLayer extends Layer_1.default {
96
96
  sourceLayers: [{ id: "circles", jsonql: jsonql }],
97
97
  ctes: [],
98
98
  mapLayers: mapLayers,
99
- mapLayersHandleClicks: [`${sourceId}:fill`]
99
+ mapLayersHandleClicks: [`${sourceId}:fill`],
100
+ minZoom: this.getMinZoom(design),
101
+ maxZoom: this.getMaxZoom(design)
100
102
  };
101
103
  }
102
104
  createJsonQL(design, schema, filters) {
@@ -34,7 +34,7 @@ const expressions_1 = require("@mwater/expressions");
34
34
  const NumberInputComponent_1 = __importDefault(require("@mwater/react-library/lib/NumberInputComponent"));
35
35
  const AxisComponent_1 = __importDefault(require("./../axes/AxisComponent"));
36
36
  const ColorComponent_1 = __importDefault(require("../ColorComponent"));
37
- const TableSelectComponent_1 = __importDefault(require("../TableSelectComponent"));
37
+ const expressions_ui_2 = require("@mwater/expressions-ui");
38
38
  const rc_slider_1 = __importDefault(require("rc-slider"));
39
39
  const EditPopupComponent_1 = __importDefault(require("./EditPopupComponent"));
40
40
  const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
@@ -77,7 +77,7 @@ class BufferLayerDesignerComponent extends react_1.default.Component {
77
77
  this.props.onDesignChange({ ...this.props.design, unionShapes });
78
78
  };
79
79
  renderTable() {
80
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(TableSelectComponent_1.default, {
80
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(expressions_ui_2.TableSelectComponent, {
81
81
  schema: this.props.schema,
82
82
  value: this.props.design.table,
83
83
  onChange: this.handleTableChange,
@@ -33,7 +33,7 @@ const immer_1 = require("immer");
33
33
  const expressions_ui_1 = require("@mwater/expressions-ui");
34
34
  const expressions_1 = require("@mwater/expressions");
35
35
  const AxisComponent_1 = __importDefault(require("./../axes/AxisComponent"));
36
- const TableSelectComponent_1 = __importDefault(require("../TableSelectComponent"));
36
+ const expressions_ui_2 = require("@mwater/expressions-ui");
37
37
  const ColorComponent_1 = __importDefault(require("../ColorComponent"));
38
38
  const rc_slider_1 = __importDefault(require("rc-slider"));
39
39
  const EditPopupComponent_1 = __importDefault(require("./EditPopupComponent"));
@@ -147,7 +147,7 @@ class ChoroplethLayerDesigner extends react_1.default.Component {
147
147
  react_1.default.createElement("label", { className: "text-muted" },
148
148
  react_1.default.createElement("i", { className: "fa fa-database" }),
149
149
  " Data Source"),
150
- react_1.default.createElement(TableSelectComponent_1.default, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange, filter: this.props.design.filter, onFilterChange: this.handleFilterChange })));
150
+ react_1.default.createElement(expressions_ui_2.TableSelectComponent, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange, filter: this.props.design.filter, onFilterChange: this.handleFilterChange })));
151
151
  }
152
152
  renderRegionsTable() {
153
153
  let options = lodash_1.default.map(lodash_1.default.filter(this.props.schema.getTables(), table => table.id.startsWith("regions.")), table => ({ value: table.id, label: table.name.en }));
@@ -90,7 +90,9 @@ class ClusterLayer extends Layer_1.default {
90
90
  sourceLayers: [{ id: "clusters", jsonql: jsonql }],
91
91
  ctes: [],
92
92
  mapLayers: mapLayers,
93
- mapLayersHandleClicks: [`${sourceId}:circles-single`, `${sourceId}:circles-multiple`]
93
+ mapLayersHandleClicks: [`${sourceId}:circles-single`, `${sourceId}:circles-multiple`],
94
+ minZoom: this.getMinZoom(design),
95
+ maxZoom: this.getMaxZoom(design)
94
96
  };
95
97
  }
96
98
  createJsonQL(design, schema, filters) {
@@ -10,7 +10,7 @@ const expressions_ui_1 = require("@mwater/expressions-ui");
10
10
  const expressions_1 = require("@mwater/expressions");
11
11
  const AxisComponent_1 = __importDefault(require("./../axes/AxisComponent"));
12
12
  const ColorComponent_1 = __importDefault(require("../ColorComponent"));
13
- const TableSelectComponent_1 = __importDefault(require("../TableSelectComponent"));
13
+ const expressions_ui_2 = require("@mwater/expressions-ui");
14
14
  const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
15
15
  class ClusterLayerDesignerComponent extends react_1.default.Component {
16
16
  // Apply updates to design
@@ -38,7 +38,7 @@ class ClusterLayerDesignerComponent extends react_1.default.Component {
38
38
  return this.update({ fillColor: color });
39
39
  };
40
40
  renderTable() {
41
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(TableSelectComponent_1.default, {
41
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(expressions_ui_2.TableSelectComponent, {
42
42
  schema: this.props.schema,
43
43
  value: this.props.design.table,
44
44
  onChange: this.handleTableChange,
@@ -157,8 +157,7 @@ class DirectLayerDataSource {
157
157
  const { url, expires } = await getVectorTileFromDirectRequest({
158
158
  apiUrl: this.options.apiUrl,
159
159
  client: this.options.client,
160
- directTokenRequest,
161
- createdAfter
160
+ directTokenRequest
162
161
  });
163
162
  return { url, expires };
164
163
  }
@@ -51,7 +51,9 @@ class GridLayer extends Layer_1.default {
51
51
  sourceLayers: [{ id: "grid", jsonql: jsonql }],
52
52
  ctes: [],
53
53
  mapLayers: mapLayers,
54
- mapLayersHandleClicks: [`${sourceId}:fill`]
54
+ mapLayersHandleClicks: [`${sourceId}:fill`],
55
+ minZoom: this.getMinZoom(design),
56
+ maxZoom: this.getMaxZoom(design)
55
57
  };
56
58
  }
57
59
  createJsonQL(design, schema, filters) {
@@ -544,9 +546,9 @@ class GridLayer extends Layer_1.default {
544
546
  // }
545
547
  // Get min and max zoom levels
546
548
  getMinZoom(design) {
547
- // Determine if too zoomed out to safely display (zoom 6 at 20000 is limit)
549
+ // Determine if too zoomed out to safely display (200x200, so size = 4e7/(2^zoom) < 200)
548
550
  if (design.sizeUnits === "meters") {
549
- const minSafeZoom = Math.log2(1280000.0 / (design.size || 20000));
551
+ const minSafeZoom = Math.log2(200000.0 / (design.size || 20000));
550
552
  if (design.minZoom) {
551
553
  return Math.max(design.minZoom, minSafeZoom);
552
554
  }
@@ -33,7 +33,7 @@ const immer_1 = require("immer");
33
33
  const expressions_ui_1 = require("@mwater/expressions-ui");
34
34
  const expressions_1 = require("@mwater/expressions");
35
35
  const AxisComponent_1 = __importDefault(require("../axes/AxisComponent"));
36
- const TableSelectComponent_1 = __importDefault(require("../TableSelectComponent"));
36
+ const expressions_ui_2 = require("@mwater/expressions-ui");
37
37
  const rc_slider_1 = __importDefault(require("rc-slider"));
38
38
  const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
39
39
  const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
@@ -79,7 +79,6 @@ class GridLayerDesigner extends react_1.default.Component {
79
79
  this.update((d) => {
80
80
  d.sizeUnits = sizeUnits;
81
81
  d.size = 20000;
82
- d.minZoom = 6;
83
82
  });
84
83
  }
85
84
  };
@@ -127,7 +126,7 @@ class GridLayerDesigner extends react_1.default.Component {
127
126
  react_1.default.createElement("label", { className: "text-muted" },
128
127
  react_1.default.createElement("i", { className: "fa fa-database" }),
129
128
  " Data Source"),
130
- react_1.default.createElement(TableSelectComponent_1.default, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange, filter: this.props.design.filter, onFilterChange: this.handleFilterChange })));
129
+ react_1.default.createElement(expressions_ui_2.TableSelectComponent, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange, filter: this.props.design.filter, onFilterChange: this.handleFilterChange })));
131
130
  }
132
131
  renderGeometryExpr() {
133
132
  // If no data, hide
@@ -72,7 +72,7 @@ function LayerSwitcherComponent(props) {
72
72
  }) },
73
73
  react_1.default.createElement("div", { style: iconStyle, onClick: toggleDropdown },
74
74
  react_1.default.createElement("i", { className: "fas fa-layer-group fa-fw" })),
75
- dropdownOpen ? (react_1.default.createElement("div", { style: { backgroundColor: "white", padding: 5 } }, props.design.layerViews.map(renderLayerView))) : null));
75
+ dropdownOpen ? (react_1.default.createElement("div", { style: { backgroundColor: "white", padding: 5, textAlign: "left" } }, props.design.layerViews.map(renderLayerView))) : null));
76
76
  }
77
77
  exports.LayerSwitcherComponent = LayerSwitcherComponent;
78
78
  /** Hook for click outside catching */
@@ -1,5 +1,6 @@
1
1
  import PropTypes from "prop-types";
2
2
  import React, { ReactNode } from "react";
3
+ import AutoSizeComponent from "@mwater/react-library/lib/AutoSizeComponent";
3
4
  import UndoStack from "../UndoStack";
4
5
  import { DataSource, Schema } from "@mwater/expressions";
5
6
  import { MapDataSource } from "./MapDataSource";
@@ -60,13 +61,7 @@ export default class MapComponent extends React.Component<MapComponentProps, Map
60
61
  getDesign(): MapDesign;
61
62
  handleToggleDesignPanel: () => void;
62
63
  getQuickfilterValues: () => any[];
63
- renderView(): React.CElement<{
64
- injectWidth: boolean;
65
- injectHeight: boolean;
66
- }, React.Component<{
67
- injectWidth: boolean;
68
- injectHeight: boolean;
69
- }, any, any>>;
64
+ renderView(): React.CElement<import("@mwater/react-library/lib/AutoSizeComponent").AutoSizeComponentProps, AutoSizeComponent>;
70
65
  getCompiledFilters(): {
71
66
  table: string;
72
67
  jsonql: import("@mwater/jsonql").JsonQLExpr;
@@ -1,5 +1,6 @@
1
- import { Expr, LiteralType } from "@mwater/expressions";
1
+ import { Expr } from "@mwater/expressions";
2
2
  import { Quickfilter } from "../quickfilter/Quickfilter";
3
+ import { GlobalFilter } from "../GlobalFilter";
3
4
  /** Maps are stored as a base layer, a series of layers and filters. */
4
5
  export interface MapDesign {
5
6
  /** "bing_road"/"bing_aerial"/"cartodb_positron"/"cartodb_dark_matter"/"blank" */
@@ -63,15 +64,3 @@ export interface MapLayerView {
63
64
  /** true to hide legend */
64
65
  hideLegend?: boolean;
65
66
  }
66
- /** Global filters apply to multiple tables at once if a certain column is present. User-interface to set them is application-specific
67
- and the default (non-mWater) dashboard applies them but does not allow editing. */
68
- export interface GlobalFilter {
69
- /** id of column to filter */
70
- columnId: string;
71
- /** type of column to filter (to ensure that consistent) */
72
- columnType: LiteralType;
73
- /** op of expression for filtering */
74
- op: string;
75
- /** array of expressions to use for filtering. field expression for column will be injected as expression 0 in the resulting filter expression */
76
- exprs: Expr[];
77
- }
@@ -1,4 +1,3 @@
1
- import PropTypes from "prop-types";
2
1
  import React from "react";
3
2
  import { DataSource, Schema } from "@mwater/expressions";
4
3
  import { MapDesign } from "./MapDesign";
@@ -18,12 +17,6 @@ export interface MapDesignerComponentProps {
18
17
  enableQuickfilters?: boolean;
19
18
  }
20
19
  export default class MapDesignerComponent extends React.Component<MapDesignerComponentProps> {
21
- static childContextTypes: {
22
- activeTables: PropTypes.Requireable<string[]>;
23
- };
24
- getChildContext(): {
25
- activeTables: string[];
26
- };
27
20
  handleAttributionChange: (text: any) => void;
28
21
  handleAutoBoundsChange: (value: any) => void;
29
22
  handleShowLayerSwitcherChange: (value: any) => void;
@@ -31,9 +24,5 @@ export default class MapDesignerComponent extends React.Component<MapDesignerCom
31
24
  handleConvertToMarkersMap: () => void;
32
25
  handleInitialLegendDisplayChange: (value: any) => void;
33
26
  renderOptionsTab(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement>;
34
- render(): React.DetailedReactHTMLElement<{
35
- style: {
36
- padding: number;
37
- };
38
- }, HTMLElement>;
27
+ render(): React.JSX.Element;
39
28
  }
@@ -27,7 +27,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const lodash_1 = __importDefault(require("lodash"));
30
- const prop_types_1 = __importDefault(require("prop-types"));
31
30
  const react_1 = __importDefault(require("react"));
32
31
  const R = react_1.default.createElement;
33
32
  const TabbedComponent_1 = __importDefault(require("@mwater/react-library/lib/TabbedComponent"));
@@ -42,14 +41,8 @@ const MapUtils = __importStar(require("./MapUtils"));
42
41
  const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
43
42
  const QuickfiltersDesignComponent_1 = __importDefault(require("../quickfilter/QuickfiltersDesignComponent"));
44
43
  const immer_1 = __importDefault(require("immer"));
44
+ const expressions_ui_1 = require("@mwater/expressions-ui");
45
45
  class MapDesignerComponent extends react_1.default.Component {
46
- static childContextTypes = { activeTables: prop_types_1.default.arrayOf(prop_types_1.default.string.isRequired) };
47
- getChildContext() {
48
- return {
49
- // Pass active tables down to table select components so they can present a shorter list
50
- activeTables: MapUtils.getFilterableTables(this.props.design, this.props.schema)
51
- };
52
- }
53
46
  handleAttributionChange = (text) => {
54
47
  const design = { ...this.props.design, attribution: text };
55
48
  return this.props.onDesignChange(design);
@@ -152,10 +145,10 @@ class MapDesignerComponent extends react_1.default.Component {
152
145
  }))
153
146
  });
154
147
  }
155
- return R("div", { style: { padding: 5 } }, R(TabbedComponent_1.default, {
156
- initialTabId: "layers",
157
- tabs
158
- }));
148
+ const activeTables = MapUtils.getFilterableTables(this.props.design, this.props.schema);
149
+ return (react_1.default.createElement(expressions_ui_1.ActiveTablesContext.Provider, { value: activeTables },
150
+ react_1.default.createElement("div", { style: { padding: 5 } },
151
+ react_1.default.createElement(TabbedComponent_1.default, { initialTabId: "layers", tabs: tabs }))));
159
152
  }
160
153
  }
161
154
  exports.default = MapDesignerComponent;
@@ -1,4 +1,3 @@
1
- import PropTypes from "prop-types";
2
1
  import React from "react";
3
2
  import { DataSource, Schema } from "@mwater/expressions";
4
3
  export interface MapFiltersDesignerComponentProps {
@@ -12,9 +11,6 @@ export interface MapFiltersDesignerComponentProps {
12
11
  onDesignChange: any;
13
12
  }
14
13
  export default class MapFiltersDesignerComponent extends React.Component<MapFiltersDesignerComponentProps> {
15
- static contextTypes: {
16
- globalFiltersElementFactory: PropTypes.Requireable<(...args: any[]) => any>;
17
- };
18
14
  handleFiltersChange: (filters: any) => any;
19
15
  handleGlobalFiltersChange: (globalFilters: any) => any;
20
16
  render(): React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLElement>, HTMLElement> | null;
@@ -27,15 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const lodash_1 = __importDefault(require("lodash"));
30
- const prop_types_1 = __importDefault(require("prop-types"));
31
30
  const react_1 = __importDefault(require("react"));
32
31
  const R = react_1.default.createElement;
33
32
  const PopoverHelpComponent_1 = __importDefault(require("@mwater/react-library/lib/PopoverHelpComponent"));
34
33
  const FiltersDesignerComponent_1 = __importDefault(require("../FiltersDesignerComponent"));
35
34
  const MapUtils = __importStar(require("./MapUtils"));
35
+ const MWaterContextComponent_1 = require("../MWaterContextComponent");
36
36
  // Designer for filters for a map
37
37
  class MapFiltersDesignerComponent extends react_1.default.Component {
38
- static contextTypes = { globalFiltersElementFactory: prop_types_1.default.func };
39
38
  handleFiltersChange = (filters) => {
40
39
  const design = lodash_1.default.extend({}, this.props.design, { filters });
41
40
  return this.props.onDesignChange(design);
@@ -56,15 +55,15 @@ class MapFiltersDesignerComponent extends react_1.default.Component {
56
55
  filters: this.props.design.filters,
57
56
  onFiltersChange: this.handleFiltersChange,
58
57
  filterableTables
59
- }))), this.context.globalFiltersElementFactory
60
- ? R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, "Global Filters "), R("div", { style: { margin: 5 } }, this.context.globalFiltersElementFactory({
58
+ }))), react_1.default.createElement(MWaterContextComponent_1.GlobalFiltersElementFactoryContext.Consumer, null, globalFiltersElementFactory => globalFiltersElementFactory
59
+ ? R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, "Global Filters "), R("div", { style: { margin: 5 } }, globalFiltersElementFactory({
61
60
  schema: this.props.schema,
62
61
  dataSource: this.props.dataSource,
63
62
  filterableTables,
64
63
  globalFilters: this.props.design.globalFilters || [],
65
64
  onChange: this.handleGlobalFiltersChange
66
65
  })))
67
- : undefined);
66
+ : undefined));
68
67
  }
69
68
  }
70
69
  exports.default = MapFiltersDesignerComponent;
@@ -33,7 +33,7 @@ const expressions_ui_1 = require("@mwater/expressions-ui");
33
33
  const expressions_1 = require("@mwater/expressions");
34
34
  const AxisComponent_1 = __importDefault(require("./../axes/AxisComponent"));
35
35
  const ColorComponent_1 = __importDefault(require("../ColorComponent"));
36
- const TableSelectComponent_1 = __importDefault(require("../TableSelectComponent"));
36
+ const expressions_ui_2 = require("@mwater/expressions-ui");
37
37
  const EditPopupComponent_1 = __importDefault(require("./EditPopupComponent"));
38
38
  const ZoomLevelsComponent_1 = __importDefault(require("./ZoomLevelsComponent"));
39
39
  const MarkerSymbolSelectComponent_1 = __importDefault(require("./MarkerSymbolSelectComponent"));
@@ -86,7 +86,7 @@ class MarkersLayerDesignerComponent extends react_1.default.Component {
86
86
  return this.update({ lineWidth });
87
87
  };
88
88
  renderTable() {
89
- return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(TableSelectComponent_1.default, {
89
+ return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), R("div", { style: { marginLeft: 10 } }, R(expressions_ui_2.TableSelectComponent, {
90
90
  schema: this.props.schema,
91
91
  value: this.props.design.table,
92
92
  onChange: this.handleTableChange,
@@ -12,4 +12,9 @@ import { JsonQLFilter } from "..";
12
12
  export declare function createPopupFilters(popupFilterJoins: {
13
13
  [tableId: string]: Expr;
14
14
  }, schema: Schema, layerTable: any, rowId: any, useWithin?: boolean): JsonQLFilter[];
15
- export declare function createDefaultPopupFilterJoins(table: any): {};
15
+ export declare function createDefaultPopupFilterJoins(table: any): {
16
+ [x: number]: {
17
+ table: any;
18
+ type: string;
19
+ };
20
+ };
@@ -30,7 +30,7 @@ function createPopupFilters(popupFilterJoins, schema, layerTable, rowId, useWith
30
30
  type: "op",
31
31
  op: "within",
32
32
  table,
33
- exprs: [expr, { type: "literal", idTable: exprUtils.getExprIdTable(expr), valueType: "id", value: rowId }]
33
+ exprs: [expr, { type: "literal", idTable: exprUtils.getExprIdTable(expr) ?? undefined, valueType: "id", value: rowId }]
34
34
  };
35
35
  filters.push({ table, jsonql: exprCompiler.compileExpr({ expr: filterExpr, tableAlias: "{alias}" }) });
36
36
  }
@@ -83,9 +83,10 @@ function createPopupFilters(popupFilterJoins, schema, layerTable, rowId, useWith
83
83
  exports.createPopupFilters = createPopupFilters;
84
84
  // Create default popup filter joins where the join is just the id (not used for choropleth since that needs to join to admin_regions)
85
85
  function createDefaultPopupFilterJoins(table) {
86
- const popupFilterJoins = {};
87
86
  // Return id of row for a simple match
88
- popupFilterJoins[table] = { table, type: "id" };
87
+ const popupFilterJoins = {
88
+ [table]: { table, type: "id" }
89
+ };
89
90
  return popupFilterJoins;
90
91
  }
91
92
  exports.createDefaultPopupFilterJoins = createDefaultPopupFilterJoins;
@@ -2,6 +2,7 @@ import PropTypes from "prop-types";
2
2
  import React, { ReactNode } from "react";
3
3
  import LeafletMapComponent from "./LeafletMapComponent";
4
4
  import { Schema, DataSource } from "@mwater/expressions";
5
+ import ModalPopupComponent from "@mwater/react-library/lib/ModalPopupComponent";
5
6
  import { JsonQLFilter } from "../JsonQLFilter";
6
7
  import { MapDesign } from "./MapDesign";
7
8
  import { MapDataSource } from "./MapDataSource";
@@ -64,15 +65,7 @@ export default class RasterMapViewComponent extends React.Component<RasterMapVie
64
65
  locale: string;
65
66
  onHide: () => void;
66
67
  }>;
67
- renderPopup(): React.CElement<{
68
- onClose: () => void;
69
- showCloseX: boolean;
70
- size: string;
71
- }, React.Component<{
72
- onClose: () => void;
73
- showCloseX: boolean;
74
- size: string;
75
- }, any, any>> | null;
68
+ renderPopup(): React.CElement<import("@mwater/react-library/lib/ModalPopupComponent").ModalPopupComponentProps, ModalPopupComponent> | null;
76
69
  render(): React.DetailedReactHTMLElement<{
77
70
  style: {
78
71
  width: number;
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { IdLiteralComponent } from "@mwater/expressions-ui";
2
3
  import { DataSource, Schema } from "@mwater/expressions";
3
4
  export interface RegionSelectComponentProps {
4
5
  schema: Schema;
@@ -19,5 +20,5 @@ export default class RegionSelectComponent extends React.Component<RegionSelectC
19
20
  regionsTable: string;
20
21
  };
21
22
  handleChange: (id: any) => void;
22
- render(): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
23
+ render(): React.CElement<import("@mwater/expressions-ui/lib/IdLiteralComponent").IdLiteralComponentProps, IdLiteralComponent>;
23
24
  }
@@ -22,7 +22,7 @@ interface ServerMapDataSourceOptions {
22
22
  /** map id to use on server */
23
23
  mapId: string;
24
24
  /** revision to use to allow caching */
25
- rev: string;
25
+ rev: number;
26
26
  }
27
27
  interface ServerMapLayerDataSourceOptions extends ServerMapDataSourceOptions {
28
28
  layerView: MapLayerView;
@@ -59,7 +59,7 @@ module.exports = leaflet_1.default.Layer.extend({
59
59
  this._cache = {};
60
60
  //Find a unique id in window we can use for our callbacks
61
61
  //Required for jsonP
62
- var i = 0;
62
+ let i = 0;
63
63
  while (window["lu" + i]) {
64
64
  i++;
65
65
  }
@@ -2,6 +2,7 @@ import { Map, LngLatBoundsLike } from "maplibre-gl";
2
2
  import "maplibre-gl/dist/maplibre-gl.css";
3
3
  import "./VectorMapViewComponent.css";
4
4
  import React from "react";
5
+ export declare function setPrintingModeEnabled(val: boolean): void;
5
6
  /** This must be called to set the appropriate key before use. If it is not set, vector maps will not function.
6
7
  * Maps will fall back to leaflet if the key is not set or if set to ""
7
8
  */
@@ -3,13 +3,19 @@ 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
- exports.usePersistedMapBounds = exports.VectorMapLogo = exports.AttributionControl = exports.mergeBaseAndUserStyle = exports.useBaseStyle = exports.useStyleMap = exports.useHoverCursor = exports.useVectorMap = exports.areVectorMapsEnabled = exports.getMapTilerApiKey = exports.setMapTilerApiKey = void 0;
6
+ exports.usePersistedMapBounds = exports.VectorMapLogo = exports.AttributionControl = exports.mergeBaseAndUserStyle = exports.useBaseStyle = exports.useStyleMap = exports.useHoverCursor = exports.useVectorMap = exports.areVectorMapsEnabled = exports.getMapTilerApiKey = exports.setMapTilerApiKey = exports.setPrintingModeEnabled = void 0;
7
7
  const maplibre_gl_1 = __importDefault(require("maplibre-gl"));
8
8
  const react_1 = require("react");
9
9
  const mapSymbols_1 = require("./mapSymbols");
10
10
  require("maplibre-gl/dist/maplibre-gl.css");
11
11
  require("./VectorMapViewComponent.css");
12
12
  const react_2 = __importDefault(require("react"));
13
+ /** Set to true to enable printing by preserving the drawing buffer */
14
+ let printingModeEnabled = false;
15
+ function setPrintingModeEnabled(val) {
16
+ printingModeEnabled = val;
17
+ }
18
+ exports.setPrintingModeEnabled = setPrintingModeEnabled;
13
19
  /* Hooks and functions related to displaying a vector map */
14
20
  let mapTilerApiKey = "";
15
21
  /** This must be called to set the appropriate key before use. If it is not set, vector maps will not function.
@@ -45,7 +51,8 @@ function useVectorMap(options) {
45
51
  return;
46
52
  }
47
53
  const observer = new IntersectionObserver(function (entries) {
48
- setMapDivVisible(entries[0].isIntersecting);
54
+ // When in printing mode, always visible as we need to render the map
55
+ setMapDivVisible(entries[0].isIntersecting || printingModeEnabled);
49
56
  });
50
57
  observer.observe(divRef);
51
58
  return () => {
@@ -82,6 +89,7 @@ function useVectorMap(options) {
82
89
  [-179.9, -85],
83
90
  [179.9, 85] // Northeast coordinates
84
91
  ],
92
+ preserveDrawingBuffer: printingModeEnabled
85
93
  });
86
94
  setHasWebGLContext(true);
87
95
  // Add listener for losing context
@@ -12,5 +12,5 @@ export default class QuickfilterCompiler {
12
12
  * See README for values
13
13
  */
14
14
  compile(design: Quickfilter[] | undefined, values: any[] | null, locks: QuickfilterLock[] | null | undefined): JsonQLFilter[];
15
- compileToFilterExpr(expr: any, value: any, multi: any): OpExpr | null;
15
+ compileToFilterExpr(expr: any, value: any, multi?: boolean): OpExpr | null;
16
16
  }
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import DropdownWidgetComponent from "./DropdownWidgetComponent";
3
+ import ModalPopupComponent from "@mwater/react-library/lib/ModalPopupComponent";
3
4
  export interface IFrameWidgetComponentProps {
4
5
  design: any;
5
6
  /** Called with new design. null/undefined for readonly */
@@ -15,15 +16,7 @@ export default class IFrameWidgetComponent extends React.Component<IFrameWidgetC
15
16
  constructor(props: any);
16
17
  handleStartEditing: () => void;
17
18
  handleEndEditing: () => any;
18
- renderEditor(): React.CElement<{
19
- header: string;
20
- showCloseX: boolean;
21
- onClose: () => any;
22
- }, React.Component<{
23
- header: string;
24
- showCloseX: boolean;
25
- onClose: () => any;
26
- }, any, any>> | null;
19
+ renderEditor(): React.CElement<import("@mwater/react-library/lib/ModalPopupComponent").ModalPopupComponentProps, ModalPopupComponent> | null;
27
20
  renderEditLink(): React.DetailedReactHTMLElement<{
28
21
  className: string;
29
22
  onClick: () => void;