@mwater/visualization 5.0.1 → 5.1.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.
- package/lib/MWaterAddRelatedFormComponent.d.ts +1 -1
- package/lib/MWaterAddRelatedFormComponent.js +10 -17
- package/lib/MWaterContextComponent.d.ts +17 -7
- package/lib/MWaterContextComponent.js +51 -67
- package/lib/MWaterLoaderComponent.d.ts +2 -2
- package/lib/MWaterLoaderComponent.js +1 -1
- package/lib/MWaterTableSelectComponent.d.ts +0 -1
- package/lib/MWaterTableSelectComponent.js +20 -41
- package/lib/axes/RangesComponent.d.ts +12 -6
- package/lib/axes/RangesComponent.js +21 -10
- package/lib/dashboards/DashboardComponent.d.ts +1 -9
- package/lib/dashboards/DashboardComponent.js +16 -27
- package/lib/dashboards/ServerDashboardDataSource.d.ts +1 -0
- package/lib/dashboards/ServerDashboardDataSource.js +3 -0
- package/lib/datagrids/DatagridComponent.d.ts +8 -4
- package/lib/datagrids/DatagridComponent.js +27 -5
- package/lib/datagrids/DatagridDataSource.d.ts +1 -0
- package/lib/datagrids/DatagridDataSource.js +3 -0
- package/lib/datagrids/DatagridDesign.d.ts +2 -0
- package/lib/datagrids/DatagridDesignerComponent.js +3 -2
- package/lib/datagrids/DatagridViewComponent.js +1 -1
- package/lib/datagrids/DirectDatagridDataSource.d.ts +1 -0
- package/lib/datagrids/DirectDatagridDataSource.js +26 -0
- package/lib/datagrids/ServerDatagridDataSource.d.ts +1 -0
- package/lib/datagrids/ServerDatagridDataSource.js +15 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.js +2 -4
- package/lib/layouts/blocks/BlocksDisplayComponent.js +2 -2
- package/lib/layouts/grid/LegoLayoutEngine.d.ts +1 -1
- package/lib/maps/BufferLayerDesignerComponent.js +2 -2
- package/lib/maps/ChoroplethLayerDesigner.js +2 -2
- package/lib/maps/ClusterLayerDesignerComponent.js +2 -2
- package/lib/maps/DirectMapDataSource.js +1 -2
- package/lib/maps/GridLayerDesigner.js +2 -2
- package/lib/maps/MapDesignerComponent.d.ts +1 -12
- package/lib/maps/MapDesignerComponent.js +5 -12
- package/lib/maps/MarkersLayerDesignerComponent.js +2 -2
- package/lib/maps/PopupFilterJoinsUtils.d.ts +6 -1
- package/lib/maps/PopupFilterJoinsUtils.js +4 -3
- package/lib/maps/UtfGridLayer.js +1 -1
- package/lib/widgets/ImageWidgetComponent.js +2 -2
- package/lib/widgets/charts/calendar/CalendarChartDesignerComponent.js +2 -2
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +1 -1
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +1 -1
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.js +2 -2
- package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +2 -2
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +2 -2
- package/lib/widgets/charts/table/TableChartDesignerComponent.js +2 -2
- package/lib/widgets/text/ExprItemEditorComponent.js +2 -2
- package/package.json +1 -1
- package/src/MWaterAddRelatedFormComponent.ts +15 -20
- package/src/MWaterContextComponent.tsx +140 -0
- package/src/MWaterLoaderComponent.ts +2 -2
- package/src/{MWaterTableSelectComponent.ts → MWaterTableSelectComponent.tsx} +61 -66
- package/src/axes/AxisBuilder.ts +1 -1
- package/src/axes/RangesComponent.ts +27 -16
- package/src/dashboards/{DashboardComponent.ts → DashboardComponent.tsx} +37 -40
- package/src/dashboards/ServerDashboardDataSource.ts +16 -12
- package/src/datagrids/DatagridComponent.ts +45 -14
- package/src/datagrids/DatagridDataSource.ts +8 -0
- package/src/datagrids/DatagridDesign.ts +3 -0
- package/src/datagrids/DatagridDesignerComponent.tsx +9 -1
- package/src/datagrids/DatagridViewComponent.ts +1 -1
- package/src/datagrids/DirectDatagridDataSource.ts +35 -0
- package/src/datagrids/ServerDatagridDataSource.ts +22 -4
- package/src/index.ts +0 -2
- package/src/layouts/blocks/BlocksDisplayComponent.ts +2 -2
- package/src/layouts/grid/LegoLayoutEngine.ts +2 -2
- package/src/layouts/grid/WidgetContainerComponent.ts +2 -2
- package/src/maps/BingLayer.ts +2 -2
- package/src/maps/BufferLayerDesignerComponent.ts +1 -1
- package/src/maps/ChoroplethLayerDesigner.tsx +1 -1
- package/src/maps/ClusterLayerDesignerComponent.ts +1 -1
- package/src/maps/DirectMapDataSource.ts +1 -2
- package/src/maps/GridLayerDesigner.tsx +1 -1
- package/src/maps/LegendGroup.ts +1 -1
- package/src/maps/MWaterServerLayer.ts +2 -2
- package/src/maps/{MapDesignerComponent.ts → MapDesignerComponent.tsx} +8 -16
- package/src/maps/MarkersLayerDesignerComponent.ts +1 -1
- package/src/maps/PopupFilterJoinsUtils.ts +4 -4
- package/src/maps/ServerMapDataSource.ts +6 -6
- package/src/maps/SwitchableTileUrlLayerDesigner.tsx +1 -13
- package/src/maps/UtfGridLayer.ts +4 -4
- package/src/maps/mapboxUtils.ts +2 -2
- package/src/richtext/ExprItemsHtmlConverter.ts +1 -1
- package/src/richtext/FontColorPaletteItem.ts +1 -1
- package/src/richtext/FontSizePaletteItem.ts +1 -1
- package/src/richtext/ItemsHtmlConverter.ts +2 -2
- package/src/widgets/ImageWidgetComponent.ts +1 -1
- package/src/widgets/charts/calendar/CalendarChartDesignerComponent.ts +1 -1
- package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +1 -1
- package/src/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.ts +1 -1
- package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +1 -1
- package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +1 -1
- package/src/widgets/charts/table/TableChartDesignerComponent.ts +1 -1
- package/src/widgets/text/ExprItemEditorComponent.tsx +1 -1
- package/src/MWaterContextComponent.ts +0 -141
- package/src/TableSelectComponent.ts +0 -60
|
@@ -17,6 +17,7 @@ const DatagridUtils_1 = __importDefault(require("./DatagridUtils"));
|
|
|
17
17
|
const QuickfiltersComponent_1 = __importDefault(require("../quickfilter/QuickfiltersComponent"));
|
|
18
18
|
const QuickfilterCompiler_1 = __importDefault(require("../quickfilter/QuickfilterCompiler"));
|
|
19
19
|
const FindReplaceModalComponent_1 = __importDefault(require("./FindReplaceModalComponent"));
|
|
20
|
+
const d3_format_1 = require("d3-format");
|
|
20
21
|
// Datagrid with decorations
|
|
21
22
|
// See README.md for description of datagrid format
|
|
22
23
|
// Design should be cleaned already before being passed in (see DatagridUtils)
|
|
@@ -35,13 +36,34 @@ class DatagridComponent extends react_1.default.Component {
|
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
38
|
reload() {
|
|
38
|
-
|
|
39
|
+
this.datagridView?.reload();
|
|
39
40
|
}
|
|
40
41
|
componentDidMount() {
|
|
41
|
-
|
|
42
|
+
this.loadRowCount();
|
|
43
|
+
this.updateHeight();
|
|
42
44
|
}
|
|
43
|
-
componentDidUpdate() {
|
|
44
|
-
|
|
45
|
+
componentDidUpdate(prevProps, prevState) {
|
|
46
|
+
if (!lodash_1.default.isEqual(prevProps.design, this.props.design) || !lodash_1.default.isEqual(prevState.quickfiltersValues, this.state.quickfiltersValues) || prevState.refreshKey !== this.state.refreshKey) {
|
|
47
|
+
this.loadRowCount();
|
|
48
|
+
}
|
|
49
|
+
this.updateHeight();
|
|
50
|
+
}
|
|
51
|
+
loadRowCount() {
|
|
52
|
+
if (!this.props.design.showNumRows) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
let filters = this.props.filters || [];
|
|
56
|
+
// Compile quickfilters
|
|
57
|
+
filters = filters.concat(this.getQuickfilterFilters());
|
|
58
|
+
this.props.datagridDataSource.countRows(this.props.design, filters, (error, numRows) => {
|
|
59
|
+
if (error) {
|
|
60
|
+
console.error(error);
|
|
61
|
+
alert(T("Error loading data"));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
console.log(numRows);
|
|
65
|
+
this.setState({ numRows });
|
|
66
|
+
});
|
|
45
67
|
}
|
|
46
68
|
handleRefreshData = () => {
|
|
47
69
|
this.props.dataSource.clearCache?.();
|
|
@@ -164,7 +186,7 @@ class DatagridComponent extends react_1.default.Component {
|
|
|
164
186
|
}, T("Find/Replace"));
|
|
165
187
|
}
|
|
166
188
|
renderTitleBar() {
|
|
167
|
-
return R("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: 40, padding: 4 } }, R("div", { style: { float: "right" } }, this.renderFindReplace(), this.renderCellEdit(), this.renderEditButton(), R("a", { key: "refresh", className: "btn btn-link btn-sm", onClick: this.handleRefreshData }, R("span", { className: "fas fa-sync" }), R("span", { className: "hide-600px" }, " Refresh")), this.props.extraTitleButtonsElem), this.props.titleElem);
|
|
189
|
+
return R("div", { style: { position: "absolute", top: 0, left: 0, right: 0, height: 40, padding: 4 } }, R("div", { style: { float: "right" } }, this.props.design.showNumRows && this.state.numRows ? R("small", { className: 'text-muted text-sm' }, `${(0, d3_format_1.format)(',')(this.state.numRows)} rows`) : undefined, this.renderFindReplace(), this.renderCellEdit(), this.renderEditButton(), R("a", { key: "refresh", className: "btn btn-link btn-sm", onClick: this.handleRefreshData }, R("span", { className: "fas fa-sync" }), R("span", { className: "hide-600px" }, " Refresh")), this.props.extraTitleButtonsElem), this.props.titleElem);
|
|
168
190
|
}
|
|
169
191
|
renderQuickfilter() {
|
|
170
192
|
return R("div", {
|
|
@@ -4,6 +4,7 @@ import { QuickfiltersDataSource } from "../quickfilter/QuickfiltersDataSource";
|
|
|
4
4
|
export default class DatagridDataSource {
|
|
5
5
|
/** Gets the rows specified */
|
|
6
6
|
getRows(design: DatagridDesign, offset: number, limit: number, filters: JsonQLFilter[] | undefined, callback: (error: any, rows: Row[]) => void): void;
|
|
7
|
+
countRows(design: DatagridDesign, filters: JsonQLFilter[] | undefined, callback: (error: any, numRows: number) => void): void;
|
|
7
8
|
/** Gets the quickfilters data source */
|
|
8
9
|
getQuickfiltersDataSource(): QuickfiltersDataSource;
|
|
9
10
|
}
|
|
@@ -5,6 +5,9 @@ class DatagridDataSource {
|
|
|
5
5
|
getRows(design, offset, limit, filters, callback) {
|
|
6
6
|
throw new Error("Not implemented");
|
|
7
7
|
}
|
|
8
|
+
countRows(design, filters, callback) {
|
|
9
|
+
throw new Error("Not implemented");
|
|
10
|
+
}
|
|
8
11
|
/** Gets the quickfilters data source */
|
|
9
12
|
getQuickfiltersDataSource() {
|
|
10
13
|
throw new Error("Not implemented");
|
|
@@ -23,6 +23,8 @@ export interface DatagridDesign {
|
|
|
23
23
|
showRowNumbers?: boolean;
|
|
24
24
|
/** array of global filters. See below. */
|
|
25
25
|
globalFilters?: DatagridDesignGlobalFilter[];
|
|
26
|
+
/** true to show number of rows */
|
|
27
|
+
showNumRows?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export interface DatagridDesignColumn {
|
|
28
30
|
/** unique id of the column */
|
|
@@ -41,7 +41,7 @@ const OrderBysDesignerComponent_1 = __importDefault(require("./OrderBysDesignerC
|
|
|
41
41
|
const ReorderableListComponent_1 = __importDefault(require("@mwater/react-library/lib/reorderable/ReorderableListComponent"));
|
|
42
42
|
const QuickfiltersDesignComponent_1 = __importDefault(require("../quickfilter/QuickfiltersDesignComponent"));
|
|
43
43
|
const LabeledExprGenerator_1 = __importDefault(require("./LabeledExprGenerator"));
|
|
44
|
-
const
|
|
44
|
+
const expressions_ui_3 = require("@mwater/expressions-ui");
|
|
45
45
|
const uuid_1 = __importDefault(require("uuid"));
|
|
46
46
|
const update_object_1 = __importDefault(require("update-object"));
|
|
47
47
|
const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
|
|
@@ -140,7 +140,7 @@ class DatagridDesignerComponent extends react_1.default.Component {
|
|
|
140
140
|
});
|
|
141
141
|
}
|
|
142
142
|
render() {
|
|
143
|
-
return R("div", null, R("label", null, T("Data Source:")), R(
|
|
143
|
+
return R("div", null, R("label", null, T("Data Source:")), R(expressions_ui_3.TableSelectComponent, {
|
|
144
144
|
schema: this.props.schema,
|
|
145
145
|
value: this.props.design.table,
|
|
146
146
|
onChange: this.handleTableChange
|
|
@@ -158,6 +158,7 @@ function DatagridOptionsComponent(props) {
|
|
|
158
158
|
}, []);
|
|
159
159
|
return react_1.default.createElement("div", null,
|
|
160
160
|
react_1.default.createElement(ui.Checkbox, { value: props.design.showRowNumbers, onChange: (showRowNumbers) => props.onDesignChange({ ...props.design, showRowNumbers }) }, T("Show row numbers")),
|
|
161
|
+
react_1.default.createElement(ui.Checkbox, { value: props.design.showNumRows, onChange: (showNumRows) => props.onDesignChange({ ...props.design, showNumRows }) }, T("Show number of rows")),
|
|
161
162
|
react_1.default.createElement(ui.FormGroup, { label: T("Language"), hint: T("Preferred language of the datagrid") },
|
|
162
163
|
react_1.default.createElement(react_select_1.default, { value: localeOptions.find(opt => opt.value == (props.design.locale || "en")) || null, options: localeOptions, onChange: (locale) => props.onDesignChange({ ...props.design, locale: locale.value }) })));
|
|
163
164
|
}
|
|
@@ -32,7 +32,7 @@ class DatagridViewComponent extends react_1.default.Component {
|
|
|
32
32
|
// If design or filters changed, delete all rows
|
|
33
33
|
// TODO won't this reload on column resize?
|
|
34
34
|
if (!lodash_1.default.isEqual(nextProps.design, this.props.design) || !lodash_1.default.isEqual(nextProps.filters, this.props.filters) || nextProps.refreshKey !== this.props.refreshKey) {
|
|
35
|
-
|
|
35
|
+
this.setState({ rows: [], entirelyLoaded: false });
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
// Loads more rows because the placeholder last row has been rendered
|
|
@@ -14,6 +14,7 @@ export default class DirectDatagridDataSource implements DatagridDataSource {
|
|
|
14
14
|
});
|
|
15
15
|
/** Gets the rows specified */
|
|
16
16
|
getRows(design: DatagridDesign, offset: number, limit: number, filters: JsonQLFilter[] | undefined, callback: (error: any, rows: Row[]) => void): void;
|
|
17
|
+
countRows(design: DatagridDesign, filters: JsonQLFilter[] | undefined, callback: (error: any, numRows: number) => void): void;
|
|
17
18
|
getQuickfiltersDataSource(): {
|
|
18
19
|
getValues: (index: any, expr: any, filters: any, offset: any, limit: any, callback: any) => void;
|
|
19
20
|
};
|
|
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const DatagridQueryBuilder_1 = __importDefault(require("./DatagridQueryBuilder"));
|
|
30
30
|
const QuickfilterUtils = __importStar(require("../quickfilter/QuickfilterUtils"));
|
|
31
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
32
|
/** Uses direct DataSource queries */
|
|
32
33
|
class DirectDatagridDataSource {
|
|
33
34
|
options;
|
|
@@ -49,6 +50,31 @@ class DirectDatagridDataSource {
|
|
|
49
50
|
});
|
|
50
51
|
return this.options.dataSource.performQuery(query, callback);
|
|
51
52
|
}
|
|
53
|
+
countRows(design, filters, callback) {
|
|
54
|
+
const queryBuilder = new DatagridQueryBuilder_1.default(this.options.schema);
|
|
55
|
+
// Create query to get the page of rows at the specific offset
|
|
56
|
+
const query = queryBuilder.createQuery(design, {
|
|
57
|
+
extraFilters: filters
|
|
58
|
+
});
|
|
59
|
+
const countQuery = {
|
|
60
|
+
...lodash_1.default.omit(query, 'orderBy'),
|
|
61
|
+
selects: [
|
|
62
|
+
{
|
|
63
|
+
type: 'select',
|
|
64
|
+
expr: {
|
|
65
|
+
type: 'op',
|
|
66
|
+
op: 'count',
|
|
67
|
+
exprs: []
|
|
68
|
+
},
|
|
69
|
+
alias: 'cnt'
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
};
|
|
73
|
+
console.log(countQuery);
|
|
74
|
+
return this.options.dataSource.performQuery(countQuery, (error, rows) => {
|
|
75
|
+
callback(error, rows?.[0]?.cnt);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
52
78
|
// Gets the quickfilters data source
|
|
53
79
|
getQuickfiltersDataSource() {
|
|
54
80
|
return {
|
|
@@ -18,6 +18,7 @@ export default class ServerDatagridDataSource extends DatagridDataSource {
|
|
|
18
18
|
options: ServerDatagridDataSourceOptions;
|
|
19
19
|
constructor(options: ServerDatagridDataSourceOptions);
|
|
20
20
|
getRows(design: DatagridDesign, offset: any, limit: any, filters: any, callback: any): JQuery.jqXHR<any>;
|
|
21
|
+
countRows(design: DatagridDesign, filters: any, callback: any): JQuery.jqXHR<any>;
|
|
21
22
|
getQuickfiltersDataSource(): ServerQuickfilterDataSource;
|
|
22
23
|
}
|
|
23
24
|
interface ServerQuickfilterDataSourceOptions {
|
|
@@ -40,6 +40,21 @@ class ServerDatagridDataSource extends DatagridDataSource_1.default {
|
|
|
40
40
|
return callback(new Error(xhr.responseText));
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
countRows(design, filters, callback) {
|
|
44
|
+
const query = {
|
|
45
|
+
client: this.options.client,
|
|
46
|
+
share: this.options.share,
|
|
47
|
+
filters: (0, compressJson_1.default)(filters),
|
|
48
|
+
rev: this.options.rev,
|
|
49
|
+
};
|
|
50
|
+
const url = this.options.apiUrl + `datagrids/${this.options.datagridId}/summary?` + querystring_1.default.stringify(query);
|
|
51
|
+
return jquery_1.default.getJSON(url, (data) => {
|
|
52
|
+
return callback(null, data?.[0]?.cnt);
|
|
53
|
+
}).fail((xhr) => {
|
|
54
|
+
console.log(xhr.responseText);
|
|
55
|
+
return callback(new Error(xhr.responseText));
|
|
56
|
+
});
|
|
57
|
+
}
|
|
43
58
|
getQuickfiltersDataSource() {
|
|
44
59
|
return new ServerQuickfilterDataSource(this.options);
|
|
45
60
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export { default as LeafletMapComponent, MapBounds, TileLayer, GeoJsonLayer, Map
|
|
|
2
2
|
export { default as DateRangeComponent } from "./DateRangeComponent";
|
|
3
3
|
export { default as RegionSelectComponent } from "./maps/RegionSelectComponent";
|
|
4
4
|
export * from "./datagrids/DatagridDesign";
|
|
5
|
-
export { default as TableSelectComponent } from "./TableSelectComponent";
|
|
6
5
|
export * from "./JsonQLFilter";
|
|
7
6
|
export { default as DashboardComponent } from "./dashboards/DashboardComponent";
|
|
8
7
|
export { default as DashboardDataSource } from "./dashboards/DashboardDataSource";
|
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.
|
|
21
|
-
exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler = exports.DropdownWidgetComponent =
|
|
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; } });
|
|
@@ -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,
|
|
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) {
|
|
@@ -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
|
|
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(
|
|
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
|
|
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(
|
|
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 }));
|
|
@@ -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
|
|
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(
|
|
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
|
}
|
|
@@ -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
|
|
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"));
|
|
@@ -127,7 +127,7 @@ class GridLayerDesigner extends react_1.default.Component {
|
|
|
127
127
|
react_1.default.createElement("label", { className: "text-muted" },
|
|
128
128
|
react_1.default.createElement("i", { className: "fa fa-database" }),
|
|
129
129
|
" Data Source"),
|
|
130
|
-
react_1.default.createElement(
|
|
130
|
+
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
131
|
}
|
|
132
132
|
renderGeometryExpr() {
|
|
133
133
|
// If no data, hide
|
|
@@ -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.
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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;
|
|
@@ -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
|
|
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(
|
|
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
|
|
87
|
+
const popupFilterJoins = {
|
|
88
|
+
[table]: { table, type: "id" }
|
|
89
|
+
};
|
|
89
90
|
return popupFilterJoins;
|
|
90
91
|
}
|
|
91
92
|
exports.createDefaultPopupFilterJoins = createDefaultPopupFilterJoins;
|
package/lib/maps/UtfGridLayer.js
CHANGED
|
@@ -37,7 +37,7 @@ const DropdownWidgetComponent_1 = __importDefault(require("./DropdownWidgetCompo
|
|
|
37
37
|
const ModalPopupComponent_1 = __importDefault(require("@mwater/react-library/lib/ModalPopupComponent"));
|
|
38
38
|
const TabbedComponent_1 = __importDefault(require("@mwater/react-library/lib/TabbedComponent"));
|
|
39
39
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
40
|
-
const
|
|
40
|
+
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
41
41
|
const ImageUploaderComponent_1 = __importDefault(require("./ImageUploaderComponent"));
|
|
42
42
|
const ImagelistCarouselComponent_1 = __importDefault(require("./ImagelistCarouselComponent"));
|
|
43
43
|
class ImageWidgetComponent extends AsyncLoadComponent_1.default {
|
|
@@ -257,7 +257,7 @@ class ImageWidgetDesignComponent extends react_1.default.Component {
|
|
|
257
257
|
});
|
|
258
258
|
};
|
|
259
259
|
renderExpressionEditor() {
|
|
260
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(
|
|
260
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(expressions_ui_2.TableSelectComponent, { schema: this.props.schema, value: this.state.table, onChange: this.handleTableChange }), R("br"), this.state.table
|
|
261
261
|
? R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, "Field"), ": ", R(expressions_ui_1.ExprComponent, {
|
|
262
262
|
schema: this.props.schema,
|
|
263
263
|
dataSource: this.props.dataSource,
|
|
@@ -32,7 +32,7 @@ const R = react_1.default.createElement;
|
|
|
32
32
|
const ui = __importStar(require("../../../UIComponents"));
|
|
33
33
|
const AxisComponent_1 = __importDefault(require("../../../axes/AxisComponent"));
|
|
34
34
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
35
|
-
const
|
|
35
|
+
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
36
36
|
const ColorComponent_1 = __importDefault(require("../../../ColorComponent"));
|
|
37
37
|
class CalendarChartDesignerComponent extends react_1.default.Component {
|
|
38
38
|
// Updates design with the specified changes
|
|
@@ -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(
|
|
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, {
|
|
71
71
|
schema: this.props.schema,
|
|
72
72
|
value: this.props.design.table,
|
|
73
73
|
onChange: this.handleTableChange,
|
|
@@ -15,7 +15,7 @@ export default class ImageMosaicChart extends Chart {
|
|
|
15
15
|
}>;
|
|
16
16
|
getData(design: any, schema: Schema, dataSource: DataSource, filters: JsonQLFilter[] | null, callback: any): void;
|
|
17
17
|
createViewElement(options: ChartCreateViewElementOptions): React.DetailedReactHTMLElement<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
|
|
18
|
-
createDataTable(design: any, schema: Schema, dataSource: DataSource, data: any):
|
|
18
|
+
createDataTable(design: any, schema: Schema, dataSource: DataSource, data: any): never[];
|
|
19
19
|
getFilterableTables(design: any, schema: Schema): any[];
|
|
20
20
|
getPlaceholderIcon(): string;
|
|
21
21
|
}
|
|
@@ -32,7 +32,7 @@ const R = react_1.default.createElement;
|
|
|
32
32
|
const ui = __importStar(require("../../../UIComponents"));
|
|
33
33
|
const AxisComponent_1 = __importDefault(require("../../../axes/AxisComponent"));
|
|
34
34
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
35
|
-
const
|
|
35
|
+
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
36
36
|
class ImageMosaicChartDesignerComponent extends react_1.default.Component {
|
|
37
37
|
// Updates design with the specified changes
|
|
38
38
|
updateDesign(changes) {
|
|
@@ -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(
|
|
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, {
|
|
56
56
|
schema: this.props.schema,
|
|
57
57
|
value: this.props.design.table,
|
|
58
58
|
onChange: this.handleTableChange,
|
|
@@ -37,7 +37,7 @@ const ColorComponent_1 = __importDefault(require("../../../ColorComponent"));
|
|
|
37
37
|
const LayeredChartUtils = __importStar(require("./LayeredChartUtils"));
|
|
38
38
|
const LayeredChartCompiler_1 = __importDefault(require("./LayeredChartCompiler"));
|
|
39
39
|
const uiComponents = __importStar(require("../../../UIComponents"));
|
|
40
|
-
const
|
|
40
|
+
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
41
41
|
const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
|
|
42
42
|
const bootstrap_1 = require("@mwater/react-library/lib/bootstrap");
|
|
43
43
|
const PopoverHelpComponent_1 = __importDefault(require("@mwater/react-library/lib/PopoverHelpComponent"));
|
|
@@ -165,7 +165,7 @@ class LayeredChartLayerDesignerComponent extends react_1.default.Component {
|
|
|
165
165
|
}
|
|
166
166
|
renderTable() {
|
|
167
167
|
const layer = this.props.design.layers[this.props.index];
|
|
168
|
-
return R(uiComponents.SectionComponent, { icon: "fa-database", label: "Data Source" }, R(
|
|
168
|
+
return R(uiComponents.SectionComponent, { icon: "fa-database", label: "Data Source" }, R(expressions_ui_2.TableSelectComponent, {
|
|
169
169
|
schema: this.props.schema,
|
|
170
170
|
value: layer.table,
|
|
171
171
|
onChange: this.handleTableChange,
|
|
@@ -32,7 +32,7 @@ const R = react_1.default.createElement;
|
|
|
32
32
|
const uuid_1 = __importDefault(require("uuid"));
|
|
33
33
|
const ui = __importStar(require("@mwater/react-library/lib/bootstrap"));
|
|
34
34
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
35
|
-
const
|
|
35
|
+
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
36
36
|
const AxisComponent_1 = __importDefault(require("../../../axes/AxisComponent"));
|
|
37
37
|
// Designer for overall chart. Has a special setup mode first time it is run
|
|
38
38
|
class PivotChartDesignerComponent extends react_1.default.Component {
|
|
@@ -76,7 +76,7 @@ class PivotChartDesignerComponent extends react_1.default.Component {
|
|
|
76
76
|
return this.updateDesign({ intersections });
|
|
77
77
|
};
|
|
78
78
|
renderTable() {
|
|
79
|
-
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(
|
|
79
|
+
return R("div", { className: "mb-3" }, R("label", { className: "text-muted" }, R("i", { className: "fa fa-database" }), " ", "Data Source"), ": ", R(expressions_ui_2.TableSelectComponent, {
|
|
80
80
|
schema: this.props.schema,
|
|
81
81
|
value: this.props.design.table,
|
|
82
82
|
onChange: this.handleTableChange,
|