@mwater/visualization 5.5.0 → 5.6.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/MWaterContextComponent.d.ts +1 -1
- package/lib/MWaterGlobalFiltersComponent.d.ts +2 -2
- package/lib/MWaterGlobalFiltersComponent.js +11 -20
- package/lib/MWaterLoaderComponent.d.ts +4 -13
- package/lib/MWaterLoaderComponent.js +2 -11
- package/lib/UndoStack.d.ts +2 -1
- package/lib/UndoStack.js +12 -6
- package/lib/dashboards/DashboardComponent.js +5 -4
- package/lib/dashboards/DashboardDesign.d.ts +1 -1
- package/lib/dashboards/ServerDashboardDataSource.js +0 -10
- package/lib/dashboards/SettingsModalComponent.js +1 -1
- package/lib/datagrids/DatagridComponent.js +22 -2
- package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -3
- package/lib/datagrids/DatagridDesignerComponent.js +108 -120
- package/lib/datagrids/DatagridViewComponent.js +3 -2
- package/lib/datagrids/OrderBysDesignerComponent.d.ts +7 -7
- package/lib/datagrids/OrderBysDesignerComponent.js +19 -28
- package/lib/index.css +45 -2
- package/lib/index.d.ts +5 -5
- package/lib/index.js +2 -3
- package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +8 -1
- package/lib/layouts/blocks/BlocksDisplayComponent.js +46 -4
- package/lib/maps/BufferLayer.js +12 -0
- package/lib/maps/BufferLayerDesign.d.ts +1 -1
- package/lib/maps/BufferLayerDesignerComponent.js +2 -2
- package/lib/maps/ChoroplethLayer.js +12 -0
- package/lib/maps/ChoroplethLayerDesign.d.ts +5 -2
- package/lib/maps/ChoroplethLayerDesigner.d.ts +10 -32
- package/lib/maps/ChoroplethLayerDesigner.js +58 -89
- package/lib/maps/DirectMapDataSource.js +0 -10
- package/lib/maps/EditHoverOver.d.ts +4 -3
- package/lib/maps/EditHoverOver.js +3 -3
- package/lib/maps/HoverContent.js +1 -1
- package/lib/maps/LeafletMapComponent.js +10 -19
- package/lib/maps/MapComponent.js +0 -1
- package/lib/maps/MapUtils.js +10 -1
- package/lib/maps/MarkersLayer.js +18 -2
- package/lib/maps/MarkersLayerDesign.d.ts +1 -1
- package/lib/maps/MarkersLayerDesignerComponent.d.ts +12 -41
- package/lib/maps/MarkersLayerDesignerComponent.js +81 -111
- package/lib/maps/ServerMapDataSource.js +0 -10
- package/lib/maps/VectorMapViewComponent.js +1 -9
- package/lib/maps/symbols/font-awesome/asterisk.png +0 -0
- package/lib/maps/symbols/font-awesome/ban.png +0 -0
- package/lib/maps/symbols/font-awesome/beer.png +0 -0
- package/lib/maps/symbols/font-awesome/bell.png +0 -0
- package/lib/maps/symbols/font-awesome/bolt.png +0 -0
- package/lib/maps/symbols/font-awesome/building.png +0 -0
- package/lib/maps/symbols/font-awesome/bullseye.png +0 -0
- package/lib/maps/symbols/font-awesome/bus.png +0 -0
- package/lib/maps/symbols/font-awesome/caret-up.png +0 -0
- package/lib/maps/symbols/font-awesome/certificate.png +0 -0
- package/lib/maps/symbols/font-awesome/check-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/check.png +0 -0
- package/lib/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
- package/lib/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
- package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/lib/maps/symbols/font-awesome/cloud.png +0 -0
- package/lib/maps/symbols/font-awesome/comment.png +0 -0
- package/lib/maps/symbols/font-awesome/crosshairs.png +0 -0
- package/lib/maps/symbols/font-awesome/dot-circle-o.png +0 -0
- package/lib/maps/symbols/font-awesome/exclamation-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
- package/lib/maps/symbols/font-awesome/female.png +0 -0
- package/lib/maps/symbols/font-awesome/file.png +0 -0
- package/lib/maps/symbols/font-awesome/flag.png +0 -0
- package/lib/maps/symbols/font-awesome/flask.png +0 -0
- package/lib/maps/symbols/font-awesome/h-square.png +0 -0
- package/lib/maps/symbols/font-awesome/home.png +0 -0
- package/lib/maps/symbols/font-awesome/info-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/male.png +0 -0
- package/lib/maps/symbols/font-awesome/medkit.png +0 -0
- package/lib/maps/symbols/font-awesome/mobile.png +0 -0
- package/lib/maps/symbols/font-awesome/plus-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/plus-square.png +0 -0
- package/lib/maps/symbols/font-awesome/plus.png +0 -0
- package/lib/maps/symbols/font-awesome/square.png +0 -0
- package/lib/maps/symbols/font-awesome/star.png +0 -0
- package/lib/maps/symbols/font-awesome/thumbs-down.png +0 -0
- package/lib/maps/symbols/font-awesome/thumbs-up.png +0 -0
- package/lib/maps/symbols/font-awesome/ticket.png +0 -0
- package/lib/maps/symbols/font-awesome/times-circle.png +0 -0
- package/lib/maps/symbols/font-awesome/times.png +0 -0
- package/lib/maps/symbols/font-awesome/tint.png +0 -0
- package/lib/maps/symbols/font-awesome/tree.png +0 -0
- package/lib/maps/symbols/font-awesome/university.png +0 -0
- package/lib/maps/symbols/font-awesome/usd.png +0 -0
- package/lib/maps/symbols/font-awesome/user.png +0 -0
- package/lib/maps/symbols/font-awesome/users.png +0 -0
- package/lib/maps/symbols/font-awesome/wheelchair.png +0 -0
- package/lib/maps/symbols/sdf-ize.sh +93 -0
- package/lib/maps/vectorMaps.d.ts +1 -0
- package/lib/maps/vectorMaps.js +20 -36
- package/lib/mwater_table_selection/IndicatorsListComponent.d.ts +4 -2
- package/lib/mwater_table_selection/IndicatorsListComponent.js +103 -34
- package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.d.ts +18 -0
- package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.js +80 -0
- package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.d.ts +26 -0
- package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.js +237 -51
- package/lib/mwater_table_selection/MWaterTableSelectComponent.d.ts +2 -2
- package/lib/mwater_table_selection/MWaterTableSelectComponent.js +9 -4
- package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.d.ts +19 -0
- package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.js +111 -0
- package/lib/quickfilter/QuickfiltersComponent.d.ts +3 -102
- package/lib/quickfilter/QuickfiltersComponent.js +53 -110
- package/lib/quickfilter/TextLiteralComponent.d.ts +23 -47
- package/lib/quickfilter/TextLiteralComponent.js +85 -82
- package/lib/widgets/MapWidget.js +4 -2
- package/lib/widgets/text/ExprItemEditorComponent.d.ts +3 -8
- package/lib/widgets/text/ExprItemEditorComponent.js +36 -33
- package/lib/widgets/text/ExprUpdateModalComponent.d.ts +1 -0
- package/package.json +2 -3
- package/src/MWaterContextComponent.tsx +1 -1
- package/src/{MWaterGlobalFiltersComponent.ts → MWaterGlobalFiltersComponent.tsx} +32 -33
- package/src/{MWaterLoaderComponent.ts → MWaterLoaderComponent.tsx} +17 -18
- package/src/UndoStack.ts +14 -6
- package/src/dashboards/DashboardComponent.tsx +5 -4
- package/src/dashboards/DashboardDesign.ts +1 -1
- package/src/dashboards/ServerDashboardDataSource.ts +0 -12
- package/src/dashboards/SettingsModalComponent.tsx +1 -1
- package/src/datagrids/DatagridComponent.tsx +30 -2
- package/src/datagrids/DatagridDesignerComponent.tsx +241 -229
- package/src/datagrids/DatagridViewComponent.tsx +3 -2
- package/src/datagrids/OrderBysDesignerComponent.tsx +61 -70
- package/src/index.css +45 -2
- package/src/index.ts +5 -11
- package/src/layouts/blocks/BlocksDisplayComponent.tsx +60 -5
- package/src/maps/BufferLayer.ts +14 -1
- package/src/maps/BufferLayerDesign.ts +1 -1
- package/src/maps/BufferLayerDesignerComponent.tsx +2 -1
- package/src/maps/ChoroplethLayer.ts +20 -7
- package/src/maps/ChoroplethLayerDesign.ts +5 -2
- package/src/maps/ChoroplethLayerDesigner.tsx +169 -165
- package/src/maps/DirectMapDataSource.ts +0 -12
- package/src/maps/EditHoverOver.tsx +9 -5
- package/src/maps/HoverContent.tsx +1 -1
- package/src/maps/LeafletMapComponent.tsx +10 -19
- package/src/maps/MapComponent.ts +0 -1
- package/src/maps/MapUtils.ts +13 -1
- package/src/maps/MarkersLayer.ts +22 -5
- package/src/maps/MarkersLayerDesign.ts +1 -1
- package/src/maps/MarkersLayerDesignerComponent.tsx +360 -0
- package/src/maps/ServerMapDataSource.ts +0 -12
- package/src/maps/VectorMapViewComponent.tsx +2 -13
- package/src/maps/symbols/font-awesome/asterisk.png +0 -0
- package/src/maps/symbols/font-awesome/ban.png +0 -0
- package/src/maps/symbols/font-awesome/beer.png +0 -0
- package/src/maps/symbols/font-awesome/bell.png +0 -0
- package/src/maps/symbols/font-awesome/bolt.png +0 -0
- package/src/maps/symbols/font-awesome/building.png +0 -0
- package/src/maps/symbols/font-awesome/bullseye.png +0 -0
- package/src/maps/symbols/font-awesome/bus.png +0 -0
- package/src/maps/symbols/font-awesome/caret-up.png +0 -0
- package/src/maps/symbols/font-awesome/certificate.png +0 -0
- package/src/maps/symbols/font-awesome/check-circle.png +0 -0
- package/src/maps/symbols/font-awesome/check.png +0 -0
- package/src/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
- package/src/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
- package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
- package/src/maps/symbols/font-awesome/cloud.png +0 -0
- package/src/maps/symbols/font-awesome/comment.png +0 -0
- package/src/maps/symbols/font-awesome/crosshairs.png +0 -0
- package/src/maps/symbols/font-awesome/dot-circle-o.png +0 -0
- package/src/maps/symbols/font-awesome/exclamation-circle.png +0 -0
- package/src/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
- package/src/maps/symbols/font-awesome/female.png +0 -0
- package/src/maps/symbols/font-awesome/file.png +0 -0
- package/src/maps/symbols/font-awesome/flag.png +0 -0
- package/src/maps/symbols/font-awesome/flask.png +0 -0
- package/src/maps/symbols/font-awesome/h-square.png +0 -0
- package/src/maps/symbols/font-awesome/home.png +0 -0
- package/src/maps/symbols/font-awesome/info-circle.png +0 -0
- package/src/maps/symbols/font-awesome/male.png +0 -0
- package/src/maps/symbols/font-awesome/medkit.png +0 -0
- package/src/maps/symbols/font-awesome/mobile.png +0 -0
- package/src/maps/symbols/font-awesome/plus-circle.png +0 -0
- package/src/maps/symbols/font-awesome/plus-square.png +0 -0
- package/src/maps/symbols/font-awesome/plus.png +0 -0
- package/src/maps/symbols/font-awesome/square.png +0 -0
- package/src/maps/symbols/font-awesome/star.png +0 -0
- package/src/maps/symbols/font-awesome/thumbs-down.png +0 -0
- package/src/maps/symbols/font-awesome/thumbs-up.png +0 -0
- package/src/maps/symbols/font-awesome/ticket.png +0 -0
- package/src/maps/symbols/font-awesome/times-circle.png +0 -0
- package/src/maps/symbols/font-awesome/times.png +0 -0
- package/src/maps/symbols/font-awesome/tint.png +0 -0
- package/src/maps/symbols/font-awesome/tree.png +0 -0
- package/src/maps/symbols/font-awesome/university.png +0 -0
- package/src/maps/symbols/font-awesome/usd.png +0 -0
- package/src/maps/symbols/font-awesome/user.png +0 -0
- package/src/maps/symbols/font-awesome/users.png +0 -0
- package/src/maps/symbols/font-awesome/wheelchair.png +0 -0
- package/src/maps/symbols/sdf-ize.sh +93 -0
- package/src/maps/vectorMaps.tsx +20 -44
- package/src/mwater_table_selection/IndicatorsListComponent.tsx +165 -37
- package/src/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.tsx +111 -0
- package/src/mwater_table_selection/MWaterCompleteTableSelectComponent.tsx +373 -37
- package/src/mwater_table_selection/MWaterTableSelectComponent.tsx +12 -8
- package/src/mwater_table_selection/MWaterWorkflowsSelectComponent.tsx +159 -0
- package/src/quickfilter/{QuickfiltersComponent.ts → QuickfiltersComponent.tsx} +165 -158
- package/src/quickfilter/TextLiteralComponent.tsx +197 -0
- package/src/widgets/MapWidget.tsx +9 -1
- package/src/widgets/text/ExprItemEditorComponent.tsx +83 -77
- package/src/widgets/text/ExprUpdateModalComponent.tsx +1 -0
- package/test/UndoStackTests.ts +52 -1
- package/.storybook/config.js +0 -7
- package/.storybook/head.html +0 -3
- package/.storybook/webpack.config.js +0 -15
- package/src/maps/BingLayer.ts +0 -146
- package/src/maps/MarkersLayerDesignerComponent.ts +0 -374
- package/src/quickfilter/TextLiteralComponent.ts +0 -165
- package/stories/UpdateableComponent.js +0 -29
- package/stories/consoles.js +0 -202
- package/stories/dashboards.js +0 -217
- package/stories/datagridDesign.js +0 -114
- package/stories/datagrids.js +0 -69
- package/stories/dates.js +0 -80
- package/stories/exprcomponent.js +0 -43
- package/stories/index.js +0 -18
- package/stories/leaflet.js +0 -59
- package/stories/maps.js +0 -24
- package/stories/pivotChart.js +0 -235
|
@@ -28,7 +28,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
const lodash_1 = __importDefault(require("lodash"));
|
|
30
30
|
const react_1 = __importStar(require("react"));
|
|
31
|
-
const R = react_1.default.createElement;
|
|
32
31
|
const react_select_1 = __importDefault(require("react-select"));
|
|
33
32
|
const languages_1 = require("../languages");
|
|
34
33
|
const expressions_1 = require("@mwater/expressions");
|
|
@@ -36,6 +35,7 @@ const expressions_2 = require("@mwater/expressions");
|
|
|
36
35
|
const TabbedComponent_1 = __importDefault(require("@mwater/react-library/lib/TabbedComponent"));
|
|
37
36
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
38
37
|
const expressions_ui_2 = require("@mwater/expressions-ui");
|
|
38
|
+
const SelectExprModalComponent_1 = __importDefault(require("@mwater/expressions-ui/lib/SelectExprModalComponent"));
|
|
39
39
|
const OrderBysDesignerComponent_1 = __importDefault(require("./OrderBysDesignerComponent"));
|
|
40
40
|
const ReorderableListComponent_1 = __importDefault(require("@mwater/react-library/lib/reorderable/ReorderableListComponent"));
|
|
41
41
|
const QuickfiltersDesignComponent_1 = __importDefault(require("../quickfilter/QuickfiltersDesignComponent"));
|
|
@@ -70,80 +70,54 @@ class DatagridDesignerComponent extends react_1.default.Component {
|
|
|
70
70
|
};
|
|
71
71
|
// Render the tabs of the designer
|
|
72
72
|
renderTabs() {
|
|
73
|
-
return
|
|
74
|
-
initialTabId: "columns",
|
|
75
|
-
tabs: [
|
|
73
|
+
return react_1.default.createElement(TabbedComponent_1.default, { initialTabId: "columns", tabs: [
|
|
76
74
|
{
|
|
77
75
|
id: "columns",
|
|
78
76
|
label: T `Columns`,
|
|
79
|
-
elem:
|
|
80
|
-
schema: this.props.schema,
|
|
81
|
-
dataSource: this.props.dataSource,
|
|
82
|
-
table: this.props.design.table,
|
|
83
|
-
columns: this.props.design.columns,
|
|
84
|
-
onColumnsChange: this.handleColumnsChange
|
|
85
|
-
})
|
|
77
|
+
elem: react_1.default.createElement(ColumnsDesignerComponent, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, columns: this.props.design.columns, onColumnsChange: this.handleColumnsChange })
|
|
86
78
|
},
|
|
87
79
|
{
|
|
88
80
|
id: "filter",
|
|
89
81
|
label: T `Filter`,
|
|
90
82
|
// Here because of modal scroll issue
|
|
91
|
-
elem:
|
|
92
|
-
schema: this.props.schema,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
onChange: this.handleGlobalFiltersChange,
|
|
104
|
-
nullIfIrrelevant: true
|
|
105
|
-
}))
|
|
106
|
-
: undefined))
|
|
83
|
+
elem: react_1.default.createElement("div", { style: { marginBottom: 200 } },
|
|
84
|
+
react_1.default.createElement(expressions_ui_2.FilterExprComponent, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, value: this.props.design.filter, onChange: this.handleFilterChange }),
|
|
85
|
+
react_1.default.createElement(MWaterContextComponent_1.GlobalFiltersElementFactoryContext.Consumer, null, (globalFiltersElementFactory) => globalFiltersElementFactory
|
|
86
|
+
? react_1.default.createElement("div", { style: { marginTop: 20 } }, globalFiltersElementFactory({
|
|
87
|
+
schema: this.props.schema,
|
|
88
|
+
dataSource: this.props.dataSource,
|
|
89
|
+
filterableTables: [this.props.design.table],
|
|
90
|
+
globalFilters: this.props.design.globalFilters,
|
|
91
|
+
onChange: this.handleGlobalFiltersChange,
|
|
92
|
+
nullIfIrrelevant: true
|
|
93
|
+
}))
|
|
94
|
+
: undefined))
|
|
107
95
|
},
|
|
108
96
|
{
|
|
109
97
|
id: "order",
|
|
110
98
|
label: T `Sorting`,
|
|
111
|
-
elem:
|
|
112
|
-
schema: this.props.schema,
|
|
113
|
-
dataSource: this.props.dataSource,
|
|
114
|
-
table: this.props.design.table,
|
|
115
|
-
orderBys: this.props.design.orderBys,
|
|
116
|
-
onChange: this.handleOrderBysChange
|
|
117
|
-
}))
|
|
99
|
+
elem: react_1.default.createElement("div", { style: { marginBottom: 200 } },
|
|
100
|
+
react_1.default.createElement(OrderBysDesignerComponent_1.default, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.design.table, orderBys: this.props.design.orderBys, onChange: this.handleOrderBysChange }))
|
|
118
101
|
},
|
|
119
102
|
{
|
|
120
103
|
id: "quickfilters",
|
|
121
104
|
label: T `Quickfilters`,
|
|
122
|
-
elem:
|
|
123
|
-
design: this.props.design.quickfilters || [],
|
|
124
|
-
onDesignChange: (design) => this.props.onDesignChange((0, update_object_1.default)(this.props.design, { quickfilters: { $set: design } })),
|
|
125
|
-
schema: this.props.schema,
|
|
126
|
-
dataSource: this.props.dataSource,
|
|
127
|
-
tables: [this.props.design.table]
|
|
128
|
-
}))
|
|
105
|
+
elem: react_1.default.createElement("div", { style: { marginBottom: 200 } },
|
|
106
|
+
react_1.default.createElement(QuickfiltersDesignComponent_1.default, { design: this.props.design.quickfilters || [], onDesignChange: (design) => this.props.onDesignChange((0, update_object_1.default)(this.props.design, { quickfilters: { $set: design } })), schema: this.props.schema, dataSource: this.props.dataSource, tables: [this.props.design.table] }))
|
|
129
107
|
},
|
|
130
108
|
{
|
|
131
109
|
id: "options",
|
|
132
110
|
label: T `Options`,
|
|
133
|
-
elem:
|
|
134
|
-
design: this.props.design,
|
|
135
|
-
onDesignChange: this.props.onDesignChange
|
|
136
|
-
}))
|
|
111
|
+
elem: react_1.default.createElement("div", { style: { marginBottom: 200 } },
|
|
112
|
+
react_1.default.createElement(DatagridOptionsComponent, { design: this.props.design, onDesignChange: this.props.onDesignChange }))
|
|
137
113
|
}
|
|
138
|
-
]
|
|
139
|
-
});
|
|
114
|
+
] });
|
|
140
115
|
}
|
|
141
116
|
render() {
|
|
142
|
-
return
|
|
143
|
-
|
|
144
|
-
value: this.props.design.table,
|
|
145
|
-
|
|
146
|
-
}), this.props.design.table ? this.renderTabs() : undefined);
|
|
117
|
+
return react_1.default.createElement("div", null,
|
|
118
|
+
react_1.default.createElement("label", null, T `Data Source:`),
|
|
119
|
+
react_1.default.createElement(expressions_ui_3.TableSelectComponent, { schema: this.props.schema, value: this.props.design.table, onChange: this.handleTableChange }),
|
|
120
|
+
this.props.design.table ? this.renderTabs() : undefined);
|
|
147
121
|
}
|
|
148
122
|
}
|
|
149
123
|
exports.default = DatagridDesignerComponent;
|
|
@@ -163,6 +137,9 @@ function DatagridOptionsComponent(props) {
|
|
|
163
137
|
}
|
|
164
138
|
// Columns list
|
|
165
139
|
class ColumnsDesignerComponent extends react_1.default.Component {
|
|
140
|
+
state = {
|
|
141
|
+
showSelectExprModal: false
|
|
142
|
+
};
|
|
166
143
|
handleColumnChange = (columnIndex, column) => {
|
|
167
144
|
const columns = this.props.columns.slice();
|
|
168
145
|
// Handle remove
|
|
@@ -171,7 +148,7 @@ class ColumnsDesignerComponent extends react_1.default.Component {
|
|
|
171
148
|
}
|
|
172
149
|
else if (lodash_1.default.isArray(column)) {
|
|
173
150
|
// Handle array case
|
|
174
|
-
|
|
151
|
+
columns.splice(columnIndex, 1, ...column);
|
|
175
152
|
}
|
|
176
153
|
else {
|
|
177
154
|
columns[columnIndex] = column;
|
|
@@ -179,9 +156,28 @@ class ColumnsDesignerComponent extends react_1.default.Component {
|
|
|
179
156
|
return this.props.onColumnsChange(columns);
|
|
180
157
|
};
|
|
181
158
|
handleAddColumn = () => {
|
|
159
|
+
this.setState({ showSelectExprModal: true });
|
|
160
|
+
};
|
|
161
|
+
handleExprSelect = (expr) => {
|
|
162
|
+
// Clean the expression first
|
|
163
|
+
const exprCleaner = new expressions_1.ExprCleaner(this.props.schema);
|
|
164
|
+
const cleanedExpr = exprCleaner.cleanExpr(expr, {
|
|
165
|
+
aggrStatuses: ["individual", "literal", "aggregate"]
|
|
166
|
+
});
|
|
167
|
+
const exprUtils = new expressions_1.ExprUtils(this.props.schema);
|
|
182
168
|
const columns = this.props.columns.slice();
|
|
183
|
-
columns.push({
|
|
184
|
-
|
|
169
|
+
columns.push({
|
|
170
|
+
id: (0, uuid_1.default)(),
|
|
171
|
+
type: "expr",
|
|
172
|
+
width: 150,
|
|
173
|
+
expr: cleanedExpr,
|
|
174
|
+
label: exprUtils.summarizeExpr(cleanedExpr).slice(0, 30)
|
|
175
|
+
});
|
|
176
|
+
this.props.onColumnsChange(columns);
|
|
177
|
+
this.setState({ showSelectExprModal: false });
|
|
178
|
+
};
|
|
179
|
+
handleExprCancel = () => {
|
|
180
|
+
this.setState({ showSelectExprModal: false });
|
|
185
181
|
};
|
|
186
182
|
handleAddIdColumn = () => {
|
|
187
183
|
const columns = this.props.columns.slice();
|
|
@@ -206,7 +202,7 @@ class ColumnsDesignerComponent extends react_1.default.Component {
|
|
|
206
202
|
id: (0, uuid_1.default)(),
|
|
207
203
|
width: 150,
|
|
208
204
|
type: "expr",
|
|
209
|
-
label:
|
|
205
|
+
label: undefined, // Use default label instead. # labeledExpr.label
|
|
210
206
|
expr: labeledExpr.expr
|
|
211
207
|
});
|
|
212
208
|
}
|
|
@@ -217,45 +213,39 @@ class ColumnsDesignerComponent extends react_1.default.Component {
|
|
|
217
213
|
return this.props.onColumnsChange([]);
|
|
218
214
|
};
|
|
219
215
|
renderColumn = (column, columnIndex, connectDragSource, connectDragPreview, connectDropTarget) => {
|
|
220
|
-
return
|
|
221
|
-
key: columnIndex,
|
|
222
|
-
schema: this.props.schema,
|
|
223
|
-
table: this.props.table,
|
|
224
|
-
dataSource: this.props.dataSource,
|
|
225
|
-
column,
|
|
226
|
-
onColumnChange: this.handleColumnChange.bind(null, columnIndex),
|
|
227
|
-
connectDragSource,
|
|
228
|
-
connectDragPreview,
|
|
229
|
-
connectDropTarget
|
|
230
|
-
});
|
|
216
|
+
return react_1.default.createElement(ColumnDesignerComponent, { key: columnIndex, schema: this.props.schema, table: this.props.table, dataSource: this.props.dataSource, column: column, onColumnChange: this.handleColumnChange.bind(null, columnIndex), connectDragSource: connectDragSource, connectDragPreview: connectDragPreview, connectDropTarget: connectDropTarget });
|
|
231
217
|
};
|
|
232
218
|
render() {
|
|
233
|
-
return
|
|
234
|
-
key: "
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
219
|
+
return react_1.default.createElement("div", { style: { height: "auto", overflowY: "auto", overflowX: "hidden" } },
|
|
220
|
+
react_1.default.createElement("div", { style: { textAlign: "right" }, key: "options" },
|
|
221
|
+
react_1.default.createElement("button", { key: "addAll", type: "button", className: "btn btn-link btn-sm", onClick: this.handleAddDefaultColumns },
|
|
222
|
+
react_1.default.createElement("span", { className: "fas fa-plus" }),
|
|
223
|
+
" " + T `Add Default Columns`),
|
|
224
|
+
react_1.default.createElement("button", { key: "removeAll", type: "button", className: "btn btn-link btn-sm", onClick: this.handleRemoveAllColumns },
|
|
225
|
+
react_1.default.createElement("span", { className: "fas fa-times" }),
|
|
226
|
+
" " + T `Remove All Columns`)),
|
|
227
|
+
react_1.default.createElement(ReorderableListComponent_1.default, { items: this.props.columns, onReorder: this.props.onColumnsChange, renderItem: this.renderColumn, getItemId: (item) => item.id }),
|
|
228
|
+
react_1.default.createElement("div", { className: "p-2" },
|
|
229
|
+
react_1.default.createElement("button", { key: "add", type: "button", className: "btn btn-link", onClick: this.handleAddColumn },
|
|
230
|
+
react_1.default.createElement("span", { className: "fas fa-plus" }),
|
|
231
|
+
" " + T `Add Column`),
|
|
232
|
+
react_1.default.createElement("button", { key: "add-id", type: "button", className: "btn btn-link", onClick: this.handleAddIdColumn },
|
|
233
|
+
react_1.default.createElement("span", { className: "fas fa-plus" }),
|
|
234
|
+
" " + T `Add Unique Id (advanced)`)),
|
|
235
|
+
this.state.showSelectExprModal && (react_1.default.createElement(SelectExprModalComponent_1.default, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.table, value: null, allowCase: true, onSelect: this.handleExprSelect, onCancel: this.handleExprCancel, types: [
|
|
236
|
+
"text",
|
|
237
|
+
"number",
|
|
238
|
+
"enum",
|
|
239
|
+
"enumset",
|
|
240
|
+
"boolean",
|
|
241
|
+
"date",
|
|
242
|
+
"datetime",
|
|
243
|
+
"image",
|
|
244
|
+
"imagelist",
|
|
245
|
+
"text[]",
|
|
246
|
+
"geometry",
|
|
247
|
+
"id"
|
|
248
|
+
], aggrStatuses: ["literal", "individual", "aggregate"] })));
|
|
259
249
|
}
|
|
260
250
|
}
|
|
261
251
|
// Column item
|
|
@@ -317,10 +307,14 @@ class ColumnDesignerComponent extends react_1.default.Component {
|
|
|
317
307
|
const exprType = exprUtils.getExprType(this.props.column.expr);
|
|
318
308
|
switch (exprType) {
|
|
319
309
|
case "enumset":
|
|
320
|
-
return
|
|
310
|
+
return react_1.default.createElement("a", { className: "btn btn-sm btn-link", onClick: this.handleSplitEnumset },
|
|
311
|
+
react_1.default.createElement("i", { className: "fa fa-chain-broken" }),
|
|
312
|
+
" " + T `Split by options`);
|
|
321
313
|
break;
|
|
322
314
|
case "geometry":
|
|
323
|
-
return
|
|
315
|
+
return react_1.default.createElement("a", { className: "btn btn-sm btn-link", onClick: this.handleSplitGeometry },
|
|
316
|
+
react_1.default.createElement("i", { className: "fa fa-chain-broken" }),
|
|
317
|
+
" " + T `Split by lat/lng`);
|
|
324
318
|
break;
|
|
325
319
|
}
|
|
326
320
|
return null;
|
|
@@ -335,12 +329,10 @@ class ColumnDesignerComponent extends react_1.default.Component {
|
|
|
335
329
|
if (!formats) {
|
|
336
330
|
return null;
|
|
337
331
|
}
|
|
338
|
-
return
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
style: { width: "auto", display: "inline-block" },
|
|
342
|
-
onChange: this.handleFormatChange
|
|
343
|
-
}, lodash_1.default.map(formats, (format) => R("option", { key: format.value, value: format.value }, format.label))));
|
|
332
|
+
return react_1.default.createElement("div", { className: "mb-3" },
|
|
333
|
+
react_1.default.createElement("label", { className: "text-muted" }, T `Format`),
|
|
334
|
+
": ",
|
|
335
|
+
react_1.default.createElement("select", { value: this.props.column.format != null ? this.props.column.format : (0, valueFormatter_2.getDefaultFormat)(exprType), className: "form-select", style: { width: "auto", display: "inline-block" }, onChange: this.handleFormatChange }, lodash_1.default.map(formats, (format) => react_1.default.createElement("option", { key: format.value, value: format.value }, format.label))));
|
|
344
336
|
}
|
|
345
337
|
render = () => {
|
|
346
338
|
const exprUtils = new expressions_1.ExprUtils(this.props.schema);
|
|
@@ -368,25 +360,21 @@ class ColumnDesignerComponent extends react_1.default.Component {
|
|
|
368
360
|
const error = exprValidator.validateExpr(this.props.column.expr, {
|
|
369
361
|
aggrStatuses: ["individual", "literal", "aggregate"]
|
|
370
362
|
});
|
|
371
|
-
const elem =
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
react_1.default.createElement("
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
placeholder: exprUtils.summarizeExpr(this.props.column.expr),
|
|
387
|
-
value: this.props.column.label,
|
|
388
|
-
onChange: (ev) => this.handleLabelChange(ev.target.value)
|
|
389
|
-
})), R("div", { className: "col-1" }, R("a", { className: "link-plain", onClick: this.props.onColumnChange.bind(null, null) }, R("span", { className: "fas fa-times" }))));
|
|
363
|
+
const elem = react_1.default.createElement("div", { className: "row" },
|
|
364
|
+
react_1.default.createElement("div", { className: "col-1" }, this.props.connectDragSource(react_1.default.createElement("span", { className: "text-muted fa fa-bars mwater-visualization-cursor-hover" }))),
|
|
365
|
+
react_1.default.createElement("div", { className: "col-6" },
|
|
366
|
+
react_1.default.createElement(expressions_ui_1.ExprComponent, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.table, value: this.props.column.expr, aggrStatuses: ["literal", "individual", "aggregate"], types: allowedTypes, onChange: this.handleExprChange }),
|
|
367
|
+
this.renderSplit(),
|
|
368
|
+
this.renderFormat(),
|
|
369
|
+
error ? react_1.default.createElement("span", { className: "text-danger" },
|
|
370
|
+
react_1.default.createElement("i", { className: "fa fa-exclamation-circle" }),
|
|
371
|
+
" ",
|
|
372
|
+
error) : undefined),
|
|
373
|
+
react_1.default.createElement("div", { className: "col-4" },
|
|
374
|
+
react_1.default.createElement("input", { type: "text", className: "form-control", placeholder: exprUtils.summarizeExpr(this.props.column.expr), value: this.props.column.label, onChange: (ev) => this.handleLabelChange(ev.target.value) })),
|
|
375
|
+
react_1.default.createElement("div", { className: "col-1" },
|
|
376
|
+
react_1.default.createElement("a", { className: "link-plain", onClick: this.props.onColumnChange.bind(null, null) },
|
|
377
|
+
react_1.default.createElement("span", { className: "fas fa-times" }))));
|
|
390
378
|
return this.props.connectDropTarget(this.props.connectDragPreview(elem));
|
|
391
379
|
};
|
|
392
380
|
}
|
|
@@ -108,7 +108,6 @@ const DatagridViewComponent = (0, react_2.forwardRef)((props, ref) => {
|
|
|
108
108
|
});
|
|
109
109
|
});
|
|
110
110
|
function reload() {
|
|
111
|
-
console.log("reload");
|
|
112
111
|
setRows([]);
|
|
113
112
|
setEntirelyLoaded(false);
|
|
114
113
|
}
|
|
@@ -267,7 +266,9 @@ const DatagridViewComponent = (0, react_2.forwardRef)((props, ref) => {
|
|
|
267
266
|
fontWeight: "bold",
|
|
268
267
|
height: "100%",
|
|
269
268
|
display: "flex",
|
|
270
|
-
alignItems: "center"
|
|
269
|
+
alignItems: "center",
|
|
270
|
+
overflow: "hidden",
|
|
271
|
+
width: options.width
|
|
271
272
|
} }, column.label || exprUtils.summarizeExpr(column.expr, props.design.locale)));
|
|
272
273
|
});
|
|
273
274
|
const renderCellEditor = (0, useStableCallback_1.useStableCallback)((options) => {
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DataSource, Schema } from "@mwater/expressions";
|
|
3
|
+
import { DatagridDesignOrderBy } from "./DatagridDesign";
|
|
3
4
|
export interface OrderBysDesignerComponentProps {
|
|
4
5
|
/** schema to use */
|
|
5
6
|
schema: Schema;
|
|
6
7
|
/** dataSource to use */
|
|
7
8
|
dataSource: DataSource;
|
|
8
9
|
table: string;
|
|
9
|
-
|
|
10
|
-
orderBys: any;
|
|
10
|
+
orderBys: DatagridDesignOrderBy[];
|
|
11
11
|
/** Called when columns changes */
|
|
12
|
-
onChange:
|
|
12
|
+
onChange: (orderBys: DatagridDesignOrderBy[]) => void;
|
|
13
13
|
}
|
|
14
14
|
export default class OrderBysDesignerComponent extends React.Component<OrderBysDesignerComponentProps> {
|
|
15
15
|
static defaultProps: {
|
|
16
16
|
orderBys: never[];
|
|
17
17
|
};
|
|
18
|
-
handleChange: (index: any, orderBy: any) =>
|
|
19
|
-
handleRemove: (index: any) =>
|
|
20
|
-
handleAdd: () =>
|
|
21
|
-
render(): React.
|
|
18
|
+
handleChange: (index: any, orderBy: any) => void;
|
|
19
|
+
handleRemove: (index: any) => void;
|
|
20
|
+
handleAdd: () => void;
|
|
21
|
+
render(): React.JSX.Element;
|
|
22
22
|
}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const lodash_1 = __importDefault(require("lodash"));
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const R = react_1.default.createElement;
|
|
9
8
|
const expressions_ui_1 = require("@mwater/expressions-ui");
|
|
10
9
|
const bootstrap_1 = require("@mwater/react-library/lib/bootstrap");
|
|
11
10
|
// Edits an orderBys which is a list of expressions and directions. See README.md
|
|
@@ -27,22 +26,13 @@ class OrderBysDesignerComponent extends react_1.default.Component {
|
|
|
27
26
|
return this.props.onChange(orderBys);
|
|
28
27
|
};
|
|
29
28
|
render() {
|
|
30
|
-
return
|
|
31
|
-
|
|
32
|
-
key: index,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
onChange: this.handleChange.bind(null, index),
|
|
38
|
-
onRemove: this.handleRemove.bind(null, index)
|
|
39
|
-
});
|
|
40
|
-
}), R("button", {
|
|
41
|
-
key: "add",
|
|
42
|
-
type: "button",
|
|
43
|
-
className: "btn btn-link",
|
|
44
|
-
onClick: this.handleAdd
|
|
45
|
-
}, R("span", { className: "fas fa-plus" }), " " + T `Add Ordering`));
|
|
29
|
+
return (react_1.default.createElement("div", null,
|
|
30
|
+
lodash_1.default.map(this.props.orderBys, (orderBy, index) => {
|
|
31
|
+
return react_1.default.createElement(OrderByDesignerComponent, { key: index, schema: this.props.schema, table: this.props.table, dataSource: this.props.dataSource, orderBy: orderBy, onChange: this.handleChange.bind(null, index), onRemove: this.handleRemove.bind(null, index) });
|
|
32
|
+
}),
|
|
33
|
+
react_1.default.createElement("button", { key: "add", type: "button", className: "btn btn-link", onClick: this.handleAdd },
|
|
34
|
+
react_1.default.createElement("span", { className: "fas fa-plus" }),
|
|
35
|
+
" " + T `Add Ordering`)));
|
|
46
36
|
}
|
|
47
37
|
}
|
|
48
38
|
exports.default = OrderBysDesignerComponent;
|
|
@@ -50,18 +40,19 @@ class OrderByDesignerComponent extends react_1.default.Component {
|
|
|
50
40
|
handleExprChange = (expr) => {
|
|
51
41
|
return this.props.onChange(lodash_1.default.extend({}, this.props.orderBy, { expr }));
|
|
52
42
|
};
|
|
53
|
-
handleDirectionChange = (
|
|
54
|
-
return this.props.onChange(lodash_1.default.extend({}, this.props.orderBy, { direction
|
|
43
|
+
handleDirectionChange = (direction) => {
|
|
44
|
+
return this.props.onChange(lodash_1.default.extend({}, this.props.orderBy, { direction }));
|
|
55
45
|
};
|
|
56
46
|
render() {
|
|
57
|
-
return
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
47
|
+
return (react_1.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "8px" } },
|
|
48
|
+
react_1.default.createElement("div", { style: { flex: 1 } },
|
|
49
|
+
react_1.default.createElement(expressions_ui_1.ExprComponent, { schema: this.props.schema, dataSource: this.props.dataSource, table: this.props.table, types: ["text", "number", "boolean", "date", "datetime"], aggrStatuses: ["individual", "literal", "aggregate"], value: this.props.orderBy.expr, onChange: this.handleExprChange })),
|
|
50
|
+
react_1.default.createElement("div", { style: { display: "flex", alignItems: "center", gap: "8px" } },
|
|
51
|
+
react_1.default.createElement(bootstrap_1.Toggle, { size: "xs", value: this.props.orderBy.direction, onChange: this.handleDirectionChange, options: [
|
|
52
|
+
{ value: "asc", label: T `Ascending` },
|
|
53
|
+
{ value: "desc", label: T `Descending` }
|
|
54
|
+
] }),
|
|
55
|
+
react_1.default.createElement("button", { className: "btn btn-sm btn-link", type: "button", onClick: this.props.onRemove },
|
|
56
|
+
react_1.default.createElement("span", { className: "fas fa-times" })))));
|
|
66
57
|
}
|
|
67
58
|
}
|
package/lib/index.css
CHANGED
|
@@ -55,6 +55,12 @@ Lato, Lora, Inter, Merriweather, Roboto
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
@media only screen and (max-width: 800px) {
|
|
59
|
+
.hide-800px {
|
|
60
|
+
display: none;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
58
64
|
/* Dashed thresholds */
|
|
59
65
|
.bb-grid line {
|
|
60
66
|
stroke-dasharray: 3;
|
|
@@ -133,6 +139,20 @@ Lato, Lora, Inter, Merriweather, Roboto
|
|
|
133
139
|
visibility: visible;
|
|
134
140
|
}
|
|
135
141
|
|
|
142
|
+
/* Use these to make a grandchild that displays only when parent is hovered */
|
|
143
|
+
.hover-display-parent > * > .hover-display-grandchild {
|
|
144
|
+
visibility: hidden;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.hover-display-parent:hover > * > .hover-display-grandchild {
|
|
148
|
+
visibility: visible;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/* Use these to set a faint background on hover */
|
|
152
|
+
.hover-grey:hover {
|
|
153
|
+
background-color: #f8f8f8;
|
|
154
|
+
}
|
|
155
|
+
|
|
136
156
|
.bb-title {
|
|
137
157
|
font: 14px sans-serif;
|
|
138
158
|
font-weight: bold;
|
|
@@ -342,6 +362,29 @@ Lato, Lora, Inter, Merriweather, Roboto
|
|
|
342
362
|
background-color: #363b3e;
|
|
343
363
|
padding: 5px;
|
|
344
364
|
padding-top: 6px;
|
|
365
|
+
transform: translateX(-100%);
|
|
366
|
+
animation: slideIn 0.3s ease-in-out;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
@keyframes slideIn {
|
|
370
|
+
from {
|
|
371
|
+
transform: translateX(-100%);
|
|
372
|
+
}
|
|
373
|
+
to {
|
|
374
|
+
transform: translateX(0);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
.mwater-visualization-palette-container {
|
|
379
|
+
position: absolute;
|
|
380
|
+
top: 0;
|
|
381
|
+
left: 0;
|
|
382
|
+
height: 100%;
|
|
383
|
+
z-index: 1000;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.mwater-visualization-palette-container:not(.hidden) .mwater-visualization-palette {
|
|
387
|
+
transform: translateX(0);
|
|
345
388
|
}
|
|
346
389
|
|
|
347
390
|
.mwater-visualization-palette-item {
|
|
@@ -543,11 +586,11 @@ Lato, Lora, Inter, Merriweather, Roboto
|
|
|
543
586
|
background-color: rgba(0, 0, 0, 0.075);
|
|
544
587
|
}
|
|
545
588
|
|
|
546
|
-
.
|
|
589
|
+
.mwater-visualization-cursor-hover:hover {
|
|
547
590
|
cursor: move;
|
|
548
591
|
}
|
|
549
592
|
|
|
550
|
-
.
|
|
593
|
+
.mwater-visualization-map-hover-content {
|
|
551
594
|
display: grid;
|
|
552
595
|
grid-template-columns: 1fr 2fr;
|
|
553
596
|
grid-auto-rows: min-content;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { default as LeafletMapComponent
|
|
1
|
+
export { default as LeafletMapComponent } from "./maps/LeafletMapComponent";
|
|
2
|
+
export type { MapBounds, TileLayer, GeoJsonLayer, MapLayer } from "./maps/LeafletMapComponent";
|
|
2
3
|
export { default as DateRangeComponent } from "./DateRangeComponent";
|
|
3
4
|
export { default as RegionSelectComponent } from "./maps/RegionSelectComponent";
|
|
4
5
|
export * from "./datagrids/DatagridDesign";
|
|
@@ -7,7 +8,7 @@ export { default as DashboardComponent } from "./dashboards/DashboardComponent";
|
|
|
7
8
|
export { default as DashboardDataSource } from "./dashboards/DashboardDataSource";
|
|
8
9
|
export { default as DirectDashboardDataSource } from "./dashboards/DirectDashboardDataSource";
|
|
9
10
|
export * from "./dashboards/DashboardDesign";
|
|
10
|
-
export { MapDesign, MapLayerView } from "./maps/MapDesign";
|
|
11
|
+
export type { MapDesign, MapLayerView } from "./maps/MapDesign";
|
|
11
12
|
export { default as compressJson } from "./compressJson";
|
|
12
13
|
export { default as LocaleContextInjector } from "./LocaleContextInjector";
|
|
13
14
|
export * from "./WidgetScope";
|
|
@@ -15,12 +16,12 @@ export { default as WidgetFactory } from "./widgets/WidgetFactory";
|
|
|
15
16
|
export { default as Widget } from "./widgets/Widget";
|
|
16
17
|
export { default as DatagridUtils } from "./datagrids/DatagridUtils";
|
|
17
18
|
export * from "./maps/MapViewComponent";
|
|
18
|
-
export { MapScope } from "./maps/MapUtils";
|
|
19
|
+
export type { MapScope } from "./maps/MapUtils";
|
|
19
20
|
export { languages } from "./languages";
|
|
20
21
|
export { default as MWaterLoaderComponent } from "./MWaterLoaderComponent";
|
|
21
22
|
export { default as MWaterContextComponent } from "./MWaterContextComponent";
|
|
22
23
|
export { default as mWaterLoader } from "./mWaterLoader";
|
|
23
|
-
export { WidgetDataSource } from "./widgets/WidgetDataSource";
|
|
24
|
+
export type { WidgetDataSource } from "./widgets/WidgetDataSource";
|
|
24
25
|
export { default as DirectWidgetDataSource } from "./widgets/DirectWidgetDataSource";
|
|
25
26
|
import "leaflet/dist/leaflet.css";
|
|
26
27
|
import "rc-slider/assets/index.css";
|
|
@@ -31,7 +32,6 @@ import "./index.css";
|
|
|
31
32
|
export { setMapTilerApiKey } from "./maps/vectorMaps";
|
|
32
33
|
export { default as UndoStack } from "./UndoStack";
|
|
33
34
|
export { default as DashboardViewComponent } from "./dashboards/DashboardViewComponent";
|
|
34
|
-
export declare let BingLayer: any;
|
|
35
35
|
export declare let UtfGridLayer: any;
|
|
36
36
|
export { default as LayerFactory } from "./maps/LayerFactory";
|
|
37
37
|
export { default as MapDesignerComponent } from "./maps/MapDesignerComponent";
|
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.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.
|
|
21
|
-
exports.OptionListComponent = exports.ToggleEditComponent = exports.QuickfilterCompiler =
|
|
20
|
+
exports.DropdownWidgetComponent = 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.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 = 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");
|
|
@@ -68,7 +68,6 @@ var UndoStack_1 = require("./UndoStack");
|
|
|
68
68
|
Object.defineProperty(exports, "UndoStack", { enumerable: true, get: function () { return __importDefault(UndoStack_1).default; } });
|
|
69
69
|
var DashboardViewComponent_1 = require("./dashboards/DashboardViewComponent");
|
|
70
70
|
Object.defineProperty(exports, "DashboardViewComponent", { enumerable: true, get: function () { return __importDefault(DashboardViewComponent_1).default; } });
|
|
71
|
-
exports.BingLayer = require("./maps/BingLayer");
|
|
72
71
|
exports.UtfGridLayer = require("./maps/UtfGridLayer");
|
|
73
72
|
var LayerFactory_1 = require("./maps/LayerFactory");
|
|
74
73
|
Object.defineProperty(exports, "LayerFactory", { enumerable: true, get: function () { return __importDefault(LayerFactory_1).default; } });
|
|
@@ -20,11 +20,18 @@ export interface BlocksDisplayComponentProps {
|
|
|
20
20
|
/** message to display if clipboard can't be pasted into current dashboard */
|
|
21
21
|
cantPasteMessage?: string;
|
|
22
22
|
}
|
|
23
|
+
interface BlocksDisplayComponentState {
|
|
24
|
+
isPaletteVisible: boolean;
|
|
25
|
+
isManuallyHidden: boolean;
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
Renders the complete layout of the blocks and also optionally a palette to the left
|
|
25
29
|
that can be used to drag new items into the layout. Palette is only displayed if onItemsChange is not null
|
|
26
30
|
*/
|
|
27
|
-
declare class BlocksDisplayComponent extends React.Component<BlocksDisplayComponentProps> {
|
|
31
|
+
declare class BlocksDisplayComponent extends React.Component<BlocksDisplayComponentProps, BlocksDisplayComponentState> {
|
|
32
|
+
state: BlocksDisplayComponentState;
|
|
33
|
+
componentDidUpdate(prevProps: BlocksDisplayComponentProps): void;
|
|
34
|
+
handlePaletteToggle: () => void;
|
|
28
35
|
handleBlockDrop: (sourceBlock: LayoutBlock, targetBlock: LayoutBlock, side: "top" | "left" | "right" | "bottom") => void;
|
|
29
36
|
handleBlockRemove: (block: LayoutBlock) => void;
|
|
30
37
|
handleBlockUpdate: (block: LayoutBlock) => void;
|