@mwater/visualization 5.3.2 → 5.4.1
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/ColorComponent.d.ts +1 -1
- package/lib/ColorComponent.js +2 -2
- package/lib/CustomColorsContext.d.ts +0 -1
- package/lib/DateRangeComponent.js +10 -10
- package/lib/LocaleContextInjector.js +2 -2
- package/lib/MWaterAddRelatedFormComponent.js +8 -8
- package/lib/MWaterAddRelatedIndicatorComponent.d.ts +0 -1
- package/lib/MWaterAddRelatedIndicatorComponent.js +6 -6
- package/lib/MWaterAssetSystemsListComponent.d.ts +3 -3
- package/lib/MWaterAssetSystemsListComponent.js +4 -3
- package/lib/MWaterCompleteTableSelectComponent.d.ts +33 -34
- package/lib/MWaterCompleteTableSelectComponent.js +39 -38
- package/lib/MWaterCustomTablesetListComponent.d.ts +3 -3
- package/lib/MWaterCustomTablesetListComponent.js +5 -4
- package/lib/MWaterGlobalFiltersComponent.js +4 -4
- package/lib/MWaterLoaderComponent.d.ts +5 -5
- package/lib/MWaterLoaderComponent.js +1 -1
- package/lib/MWaterMetricsTableListComponent.d.ts +3 -3
- package/lib/MWaterMetricsTableListComponent.js +4 -3
- package/lib/MWaterResponsesFilterComponent.js +4 -4
- package/lib/MWaterTableSelectComponent.d.ts +1 -1
- package/lib/MWaterTableSelectComponent.js +5 -5
- package/lib/PopoverComponent.d.ts +4 -4
- package/lib/UIComponents.d.ts +5 -2
- package/lib/axes/AxisBuilder.js +42 -43
- package/lib/axes/AxisColorEditorComponent.d.ts +4 -4
- package/lib/axes/AxisColorEditorComponent.js +25 -60
- package/lib/axes/AxisComponent.d.ts +2 -3
- package/lib/axes/AxisComponent.js +20 -20
- package/lib/axes/BinsComponent.js +6 -6
- package/lib/axes/CategoryMapComponent.d.ts +2 -1
- package/lib/axes/CategoryMapComponent.js +7 -5
- package/lib/axes/ColorPaletteCollectionComponent.js +3 -3
- package/lib/axes/RangesComponent.js +12 -12
- package/lib/compressJson.js +1 -1
- package/lib/dashboards/DashboardComponent.d.ts +2 -0
- package/lib/dashboards/DashboardComponent.js +15 -8
- package/lib/dashboards/DashboardUtils.js +2 -3
- package/lib/dashboards/DashboardViewComponent.js +4 -4
- package/lib/dashboards/FontStyleEditor.js +8 -8
- package/lib/dashboards/LayoutOptionsComponent.js +101 -74
- package/lib/dashboards/SettingsModalComponent.d.ts +3 -4
- package/lib/dashboards/SettingsModalComponent.js +54 -40
- package/lib/dashboards/WidgetComponent.d.ts +0 -1
- package/lib/dashboards/WidgetComponent.js +1 -2
- package/lib/dashboards/layoutOptions.js +11 -7
- package/lib/datagrids/DatagridComponent.d.ts +1 -8
- package/lib/datagrids/DatagridComponent.js +14 -13
- package/lib/datagrids/DatagridDesignerComponent.js +18 -18
- package/lib/datagrids/DatagridQueryBuilder.d.ts +4 -4
- package/lib/datagrids/DatagridUtils.js +2 -2
- package/lib/datagrids/DatagridViewComponent.js +4 -4
- package/lib/datagrids/ExprCellComponent.js +1 -1
- package/lib/datagrids/FindReplaceModalComponent.js +17 -17
- package/lib/datagrids/OrderBysDesignerComponent.js +2 -2
- package/lib/languages.js +2 -2
- package/lib/layouts/DecoratedBlockComponent.js +2 -2
- package/lib/layouts/blocks/BlocksDisplayComponent.js +13 -13
- package/lib/layouts/blocks/BlocksLayoutManager.d.ts +2 -1
- package/lib/layouts/blocks/ClipboardPaletteItemComponent.js +3 -3
- package/lib/layouts/blocks/HorizontalBlockComponent.js +3 -3
- package/lib/layouts/blocks/blockUtils.js +4 -5
- package/lib/mWaterLoader.js +1 -1
- package/lib/maps/AddLayerComponent.js +13 -13
- package/lib/maps/AdminScopeAndDetailLevelComponent.js +5 -5
- package/lib/maps/BaseLayerDesignerComponent.js +2 -2
- package/lib/maps/BufferLayer.js +7 -7
- package/lib/maps/BufferLayerDesignerComponent.js +8 -8
- package/lib/maps/ChoroplethLayer.js +6 -6
- package/lib/maps/ChoroplethLayerDesigner.js +16 -16
- package/lib/maps/ClusterLayer.js +3 -3
- package/lib/maps/ClusterLayerDesignerComponent.js +5 -5
- package/lib/maps/DetailLevelSelectComponent.d.ts +11 -1
- package/lib/maps/DetailLevelSelectComponent.js +3 -3
- package/lib/maps/DirectMapDataSource.js +1 -2
- package/lib/maps/EditHoverOver.js +7 -5
- package/lib/maps/EditPopupComponent.js +2 -2
- package/lib/maps/GridLayer.js +5 -5
- package/lib/maps/GridLayerDesigner.js +15 -15
- package/lib/maps/LayerSwitcherComponent.js +1 -2
- package/lib/maps/LeafletMapComponent.d.ts +1 -1
- package/lib/maps/LeafletMapComponent.js +1 -1
- package/lib/maps/LegendComponent.js +1 -1
- package/lib/maps/MWaterServerLayer.d.ts +0 -1
- package/lib/maps/MWaterServerLayer.js +1 -1
- package/lib/maps/MapComponent.js +8 -8
- package/lib/maps/MapControlComponent.js +1 -1
- package/lib/maps/MapDesignerComponent.js +16 -16
- package/lib/maps/MapFiltersDesignerComponent.js +2 -2
- package/lib/maps/MapLayerViewDesignerComponent.js +8 -8
- package/lib/maps/MapUtils.js +6 -7
- package/lib/maps/MapViewComponent.js +1 -2
- package/lib/maps/MarkerSymbolSelectComponent.js +3 -3
- package/lib/maps/MarkersLayer.js +6 -7
- package/lib/maps/MarkersLayerDesignerComponent.js +22 -22
- package/lib/maps/PopupFilterJoinsEditComponent.js +4 -4
- package/lib/maps/PopupFilterJoinsUtils.js +2 -3
- package/lib/maps/RasterMapViewComponent.d.ts +3 -3
- package/lib/maps/RasterMapViewComponent.js +4 -4
- package/lib/maps/RegionSelectComponent.d.ts +1 -3
- package/lib/maps/RegionSelectComponent.js +1 -2
- package/lib/maps/ScopeAndDetailLevelComponent.js +3 -3
- package/lib/maps/TileUrlLayer.d.ts +1 -1
- package/lib/maps/TileUrlLayer.js +3 -3
- package/lib/maps/VectorMapViewComponent.js +6 -7
- package/lib/maps/ZoomLevelsComponent.js +5 -5
- package/lib/maps/mapSymbols.d.ts +1 -1
- package/lib/maps/mapSymbols.js +51 -50
- package/lib/maps/mapboxUtils.js +2 -3
- package/lib/maps/maps.d.ts +0 -1
- package/lib/maps/vectorMaps.js +14 -15
- package/lib/memoizedDebounce.js +1 -2
- package/lib/quickfilter/DateExprComponent.d.ts +4 -0
- package/lib/quickfilter/DateExprComponent.js +17 -16
- package/lib/quickfilter/IdArrayQuickfilterComponent.js +1 -1
- package/lib/quickfilter/QuickfilterUtils.js +1 -2
- package/lib/quickfilter/QuickfiltersComponent.d.ts +23 -2
- package/lib/quickfilter/QuickfiltersComponent.js +2 -2
- package/lib/quickfilter/QuickfiltersDesignComponent.js +8 -8
- package/lib/quickfilter/TextLiteralComponent.d.ts +35 -2
- package/lib/quickfilter/TextLiteralComponent.js +6 -6
- package/lib/richtext/DropdownPaletteItem.js +1 -1
- package/lib/richtext/ExprItemsHtmlConverter.js +8 -10
- package/lib/richtext/FontColorPaletteItem.js +7 -7
- package/lib/richtext/ItemsHtmlConverter.js +0 -1
- package/lib/richtext/RichTextComponent.d.ts +1 -0
- package/lib/richtext/RichTextComponent.js +33 -29
- package/lib/valueFormatter.js +18 -19
- package/lib/wellknown.js +2 -3
- package/lib/widgets/IFrameWidgetComponent.d.ts +9 -1
- package/lib/widgets/IFrameWidgetComponent.js +3 -3
- package/lib/widgets/ImageUploaderComponent.js +5 -5
- package/lib/widgets/ImageWidget.js +2 -2
- package/lib/widgets/ImageWidgetComponent.d.ts +9 -1
- package/lib/widgets/ImageWidgetComponent.js +20 -20
- package/lib/widgets/ImagelistCarouselComponent.js +1 -1
- package/lib/widgets/MapWidget.js +2 -2
- package/lib/widgets/MarkdownWidget.d.ts +1 -1
- package/lib/widgets/MarkdownWidget.js +1 -1
- package/lib/widgets/TOCWidget.js +11 -12
- package/lib/widgets/WidgetScopesViewComponent.js +1 -1
- package/lib/widgets/charts/Chart.js +1 -1
- package/lib/widgets/charts/ChartViewComponent.js +9 -9
- package/lib/widgets/charts/ChartWidgetComponent.js +4 -4
- package/lib/widgets/charts/calendar/CalendarChart.js +4 -4
- package/lib/widgets/charts/calendar/CalendarChartDesignerComponent.js +7 -7
- package/lib/widgets/charts/calendar/CalendarChartViewComponent.js +3 -3
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.d.ts +18 -5
- package/lib/widgets/charts/imagemosaic/ImageMosaicChart.js +3 -4
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.js +5 -5
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.d.ts +5 -19
- package/lib/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.js +66 -70
- package/lib/widgets/charts/imagemosaic/ImagePopupComponent.js +1 -1
- package/lib/widgets/charts/layered/LayeredChart.d.ts +1 -1
- package/lib/widgets/charts/layered/LayeredChart.js +9 -9
- package/lib/widgets/charts/layered/LayeredChartCompiler.d.ts +8 -8
- package/lib/widgets/charts/layered/LayeredChartCompiler.js +17 -17
- package/lib/widgets/charts/layered/LayeredChartDesignerComponent.js +33 -33
- package/lib/widgets/charts/layered/LayeredChartLayerDesignerComponent.js +16 -16
- package/lib/widgets/charts/layered/LayeredChartUtils.js +1 -2
- package/lib/widgets/charts/layered/LayeredChartViewComponent.js +4 -4
- package/lib/widgets/charts/pivot/IntersectionDesignerComponent.js +18 -17
- package/lib/widgets/charts/pivot/PivotChart.d.ts +1 -1
- package/lib/widgets/charts/pivot/PivotChart.js +12 -4
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.d.ts +6 -5
- package/lib/widgets/charts/pivot/PivotChartDesignerComponent.js +10 -10
- package/lib/widgets/charts/pivot/PivotChartLayoutComponent.js +5 -5
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.d.ts +1 -1
- package/lib/widgets/charts/pivot/PivotChartQueryBuilder.js +5 -6
- package/lib/widgets/charts/pivot/PivotChartUtils.js +11 -12
- package/lib/widgets/charts/pivot/PivotChartViewComponent.js +9 -9
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.d.ts +36 -30
- package/lib/widgets/charts/pivot/SegmentDesignerComponent.js +28 -26
- package/lib/widgets/charts/table/OrderingsComponent.js +2 -2
- package/lib/widgets/charts/table/TableChart.js +3 -3
- package/lib/widgets/charts/table/TableChartDesignerComponent.js +17 -17
- package/lib/widgets/charts/table/TableChartViewComponent.js +3 -3
- package/lib/widgets/text/ExprInsertModalComponent.d.ts +2 -3
- package/lib/widgets/text/ExprInsertModalComponent.js +2 -14
- package/lib/widgets/text/ExprItemEditorComponent.js +4 -4
- package/lib/widgets/text/ExprUpdateModalComponent.d.ts +2 -3
- package/lib/widgets/text/ExprUpdateModalComponent.js +3 -15
- package/lib/widgets/text/TextComponent.js +3 -3
- package/lib/widgets/text/TextWidget.d.ts +1 -1
- package/lib/widgets/text/TextWidgetComponent.js +11 -11
- package/lib/widgets/text/TextWidgetDesign.d.ts +2 -1
- package/lib/widgets/text/TextWidgetDesign.js +1 -2
- package/package.json +3 -3
- package/src/ColorComponent.tsx +2 -2
- package/src/DateRangeComponent.ts +10 -10
- package/src/LocaleContextInjector.tsx +1 -1
- package/src/MWaterAddRelatedFormComponent.ts +7 -7
- package/src/MWaterAddRelatedIndicatorComponent.ts +5 -5
- package/src/MWaterAssetSystemsListComponent.tsx +3 -3
- package/src/MWaterCompleteTableSelectComponent.tsx +36 -35
- package/src/MWaterCustomTablesetListComponent.tsx +4 -4
- package/src/MWaterGlobalFiltersComponent.ts +4 -4
- package/src/MWaterLoaderComponent.ts +1 -1
- package/src/MWaterMetricsTableListComponent.tsx +3 -3
- package/src/MWaterResponsesFilterComponent.ts +6 -6
- package/src/MWaterTableSelectComponent.tsx +6 -7
- package/src/axes/AxisBuilder.ts +42 -44
- package/src/axes/AxisColorEditorComponent.tsx +178 -0
- package/src/axes/AxisComponent.ts +20 -20
- package/src/axes/BinsComponent.tsx +6 -6
- package/src/axes/CategoryMapComponent.ts +10 -10
- package/src/axes/ColorPaletteCollectionComponent.tsx +3 -3
- package/src/axes/RangesComponent.ts +14 -14
- package/src/dashboards/DashboardComponent.tsx +21 -9
- package/src/dashboards/DashboardViewComponent.tsx +3 -3
- package/src/dashboards/FontStyleEditor.tsx +8 -8
- package/src/dashboards/LayoutOptionsComponent.tsx +74 -74
- package/src/dashboards/SettingsModalComponent.tsx +134 -107
- package/src/dashboards/layoutOptions.tsx +5 -1
- package/src/datagrids/DatagridComponent.ts +65 -62
- package/src/datagrids/DatagridDesignerComponent.tsx +17 -17
- package/src/datagrids/DatagridUtils.ts +2 -2
- package/src/datagrids/DatagridViewComponent.ts +3 -3
- package/src/datagrids/ExprCellComponent.ts +1 -1
- package/src/datagrids/FindReplaceModalComponent.ts +13 -13
- package/src/datagrids/OrderBysDesignerComponent.tsx +2 -2
- package/src/globals.d.ts +7 -1
- package/src/languages.ts +2 -2
- package/src/layouts/blocks/BlocksDisplayComponent.tsx +13 -13
- package/src/layouts/blocks/BlocksLayoutManager.ts +3 -2
- package/src/layouts/blocks/ClipboardPaletteItemComponent.ts +3 -3
- package/src/maps/AddLayerComponent.ts +13 -13
- package/src/maps/AdminScopeAndDetailLevelComponent.ts +5 -5
- package/src/maps/BaseLayerDesignerComponent.ts +8 -8
- package/src/maps/BufferLayer.ts +5 -5
- package/src/maps/BufferLayerDesignerComponent.ts +8 -8
- package/src/maps/ChoroplethLayer.ts +3 -3
- package/src/maps/ChoroplethLayerDesigner.tsx +16 -16
- package/src/maps/ClusterLayer.ts +3 -3
- package/src/maps/ClusterLayerDesignerComponent.ts +5 -5
- package/src/maps/DetailLevelSelectComponent.ts +3 -3
- package/src/maps/EditHoverOver.tsx +5 -5
- package/src/maps/EditPopupComponent.ts +2 -2
- package/src/maps/GridLayer.ts +5 -5
- package/src/maps/GridLayerDesigner.tsx +15 -16
- package/src/maps/MWaterServerLayer.ts +1 -1
- package/src/maps/MapComponent.ts +6 -6
- package/src/maps/MapControlComponent.ts +1 -1
- package/src/maps/MapDesignerComponent.tsx +20 -20
- package/src/maps/MapFiltersDesignerComponent.tsx +3 -3
- package/src/maps/MapLayerViewDesignerComponent.ts +9 -9
- package/src/maps/MarkerSymbolSelectComponent.ts +4 -5
- package/src/maps/MarkersLayerDesignerComponent.ts +22 -22
- package/src/maps/PopupFilterJoinsEditComponent.ts +4 -4
- package/src/maps/RasterMapViewComponent.ts +2 -2
- package/src/maps/RegionSelectComponent.ts +1 -2
- package/src/maps/ScopeAndDetailLevelComponent.ts +3 -3
- package/src/maps/TileUrlLayer.tsx +3 -3
- package/src/maps/VectorMapViewComponent.tsx +5 -5
- package/src/maps/ZoomLevelsComponent.ts +6 -6
- package/src/maps/mapSymbols.ts +49 -49
- package/src/maps/vectorMaps.tsx +2 -2
- package/src/quickfilter/DateExprComponent.ts +19 -18
- package/src/quickfilter/IdArrayQuickfilterComponent.ts +1 -1
- package/src/quickfilter/QuickfiltersComponent.ts +1 -1
- package/src/quickfilter/QuickfiltersDesignComponent.tsx +9 -9
- package/src/quickfilter/TextLiteralComponent.ts +4 -4
- package/src/richtext/DropdownPaletteItem.tsx +1 -1
- package/src/richtext/ExprItemsHtmlConverter.ts +8 -10
- package/src/richtext/ItemsHtmlConverter.ts +0 -1
- package/src/richtext/RichTextComponent.tsx +31 -31
- package/src/valueFormatter.ts +14 -14
- package/src/widgets/IFrameWidgetComponent.ts +3 -3
- package/src/widgets/ImageUploaderComponent.tsx +5 -5
- package/src/widgets/ImageWidget.ts +2 -2
- package/src/widgets/ImageWidgetComponent.ts +26 -26
- package/src/widgets/ImagelistCarouselComponent.ts +2 -2
- package/src/widgets/MapWidget.ts +1 -1
- package/src/widgets/MarkdownWidget.ts +1 -1
- package/src/widgets/TOCWidget.ts +13 -14
- package/src/widgets/WidgetScopesViewComponent.ts +1 -1
- package/src/widgets/charts/Chart.ts +1 -1
- package/src/widgets/charts/ChartViewComponent.ts +4 -4
- package/src/widgets/charts/ChartWidgetComponent.tsx +3 -3
- package/src/widgets/charts/calendar/CalendarChart.ts +4 -4
- package/src/widgets/charts/calendar/CalendarChartDesignerComponent.ts +7 -7
- package/src/widgets/charts/calendar/CalendarChartViewComponent.tsx +2 -2
- package/src/widgets/charts/imagemosaic/ImageMosaicChart.ts +25 -8
- package/src/widgets/charts/imagemosaic/ImageMosaicChartDesignerComponent.ts +5 -5
- package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.tsx +128 -0
- package/src/widgets/charts/layered/LayeredChart.ts +9 -9
- package/src/widgets/charts/layered/LayeredChartCompiler.ts +47 -47
- package/src/widgets/charts/layered/LayeredChartDesignerComponent.tsx +39 -39
- package/src/widgets/charts/layered/LayeredChartLayerDesignerComponent.tsx +18 -19
- package/src/widgets/charts/layered/LayeredChartViewComponent.ts +1 -1
- package/src/widgets/charts/pivot/IntersectionDesignerComponent.tsx +22 -23
- package/src/widgets/charts/pivot/PivotChart.ts +15 -5
- package/src/widgets/charts/pivot/PivotChartDesignerComponent.tsx +12 -12
- package/src/widgets/charts/pivot/PivotChartLayoutComponent.tsx +5 -5
- package/src/widgets/charts/pivot/PivotChartQueryBuilder.ts +7 -8
- package/src/widgets/charts/pivot/PivotChartViewComponent.tsx +6 -6
- package/src/widgets/charts/pivot/SegmentDesignerComponent.tsx +30 -30
- package/src/widgets/charts/table/OrderingsComponent.tsx +2 -2
- package/src/widgets/charts/table/TableChart.ts +3 -3
- package/src/widgets/charts/table/TableChartDesignerComponent.ts +16 -16
- package/src/widgets/charts/table/TableChartViewComponent.ts +2 -2
- package/src/widgets/text/{ExprInsertModalComponent.ts → ExprInsertModalComponent.tsx} +18 -20
- package/src/widgets/text/ExprItemEditorComponent.tsx +4 -4
- package/src/widgets/text/{ExprUpdateModalComponent.ts → ExprUpdateModalComponent.tsx} +18 -20
- package/src/widgets/text/TextComponent.tsx +2 -2
- package/src/widgets/text/TextWidgetComponent.tsx +10 -10
- package/src/widgets/text/TextWidgetDesign.ts +3 -1
- package/src/axes/AxisColorEditorComponent.ts +0 -210
- package/src/widgets/charts/imagemosaic/ImageMosaicChartViewComponent.ts +0 -117
|
@@ -104,6 +104,20 @@ export default class DateExprComponent extends React.Component<DateExprComponent
|
|
|
104
104
|
return this.setState({ dropdownOpen: false })
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
getPresets() {
|
|
108
|
+
return [
|
|
109
|
+
{ id: "thisyear", name: T`This Year` },
|
|
110
|
+
{ id: "lastyear", name: T`Last Year` },
|
|
111
|
+
{ id: "thismonth", name: T`This Month` },
|
|
112
|
+
{ id: "lastmonth", name: T`Last Month` },
|
|
113
|
+
{ id: "today", name: T`Today` },
|
|
114
|
+
{ id: "yesterday", name: T`Yesterday` },
|
|
115
|
+
{ id: "last24hours", name: T`In Last 24 Hours` },
|
|
116
|
+
{ id: "last7days", name: T`In Last 7 Days` },
|
|
117
|
+
{ id: "last30days", name: T`In Last 30 Days` },
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
|
|
107
121
|
renderClear = () => {
|
|
108
122
|
return R(
|
|
109
123
|
"div",
|
|
@@ -117,10 +131,10 @@ export default class DateExprComponent extends React.Component<DateExprComponent
|
|
|
117
131
|
|
|
118
132
|
renderSummary() {
|
|
119
133
|
if (!this.props.value) {
|
|
120
|
-
return R("span", { className: "text-muted" },
|
|
134
|
+
return R("span", { className: "text-muted" }, T`All`)
|
|
121
135
|
}
|
|
122
136
|
|
|
123
|
-
const preset = _.findWhere(
|
|
137
|
+
const preset = _.findWhere(this.getPresets(), { id: this.props.value.op })
|
|
124
138
|
if (preset) {
|
|
125
139
|
return preset.name
|
|
126
140
|
}
|
|
@@ -161,7 +175,7 @@ export default class DateExprComponent extends React.Component<DateExprComponent
|
|
|
161
175
|
R(
|
|
162
176
|
"ul",
|
|
163
177
|
{ className: "nav nav-pills flex-column" },
|
|
164
|
-
_.map(
|
|
178
|
+
_.map(this.getPresets(), (preset) => {
|
|
165
179
|
return R(
|
|
166
180
|
"li",
|
|
167
181
|
{ className: "nav-item" },
|
|
@@ -178,7 +192,7 @@ export default class DateExprComponent extends React.Component<DateExprComponent
|
|
|
178
192
|
R(
|
|
179
193
|
"a",
|
|
180
194
|
{ className: "nav-link", style: { padding: 5 }, onClick: () => this.setState({ custom: true }) },
|
|
181
|
-
|
|
195
|
+
T`Custom Date Range...`
|
|
182
196
|
)
|
|
183
197
|
)
|
|
184
198
|
)
|
|
@@ -268,17 +282,4 @@ export default class DateExprComponent extends React.Component<DateExprComponent
|
|
|
268
282
|
)
|
|
269
283
|
)
|
|
270
284
|
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
var presets = [
|
|
274
|
-
{ id: "thisyear", name: "This Year" },
|
|
275
|
-
{ id: "lastyear", name: "Last Year" },
|
|
276
|
-
{ id: "thismonth", name: "This Month" },
|
|
277
|
-
{ id: "lastmonth", name: "Last Month" },
|
|
278
|
-
{ id: "today", name: "Today" },
|
|
279
|
-
{ id: "yesterday", name: "Yesterday" },
|
|
280
|
-
{ id: "last24hours", name: "In Last 24 Hours" },
|
|
281
|
-
{ id: "last7days", name: "In Last 7 Days" },
|
|
282
|
-
{ id: "last30days", name: "In Last 30 Days" },
|
|
283
|
-
{ id: "last365days", name: "In Last 365 Days" }
|
|
284
|
-
]
|
|
285
|
+
}
|
|
@@ -47,7 +47,7 @@ export default class IdArrayQuickfilterComponent extends React.Component<IdArray
|
|
|
47
47
|
idTable,
|
|
48
48
|
schema: this.props.schema,
|
|
49
49
|
dataSource: this.props.dataSource,
|
|
50
|
-
placeholder:
|
|
50
|
+
placeholder: T`All`,
|
|
51
51
|
multi: this.props.multi
|
|
52
52
|
// TODO Does not use filters that are passed in
|
|
53
53
|
})
|
|
@@ -11,7 +11,7 @@ import IdArrayQuickfilterComponent from "./IdArrayQuickfilterComponent"
|
|
|
11
11
|
import { Quickfilter, QuickfilterLock } from "./Quickfilter"
|
|
12
12
|
import { QuickfiltersDataSource } from "./QuickfiltersDataSource"
|
|
13
13
|
import { JsonQLFilter } from ".."
|
|
14
|
-
import { LocaleContext } from "@mwater/expressions-ui
|
|
14
|
+
import { LocaleContext } from "@mwater/expressions-ui"
|
|
15
15
|
|
|
16
16
|
export interface QuickfiltersComponentProps {
|
|
17
17
|
/** Design of quickfilters. See README.md */
|
|
@@ -118,7 +118,7 @@ export default class QuickfiltersDesignComponent extends React.Component<Quickfi
|
|
|
118
118
|
"button",
|
|
119
119
|
{ type: "button", className: "btn btn-sm btn-link", onClick: this.handleAdd },
|
|
120
120
|
R("span", { className: "fas fa-plus" }),
|
|
121
|
-
|
|
121
|
+
T`Add Quick Filter`
|
|
122
122
|
)
|
|
123
123
|
: undefined
|
|
124
124
|
)
|
|
@@ -185,7 +185,7 @@ class QuickfilterDesignComponent extends React.Component<
|
|
|
185
185
|
R(
|
|
186
186
|
"div",
|
|
187
187
|
{ className: "mb-3 mt-1", key: "table" },
|
|
188
|
-
R("label", { className: "text-muted" },
|
|
188
|
+
R("label", { className: "text-muted" }, T`Data Source`),
|
|
189
189
|
R(ui.Select, {
|
|
190
190
|
value: this.state.table,
|
|
191
191
|
options: _.map(this.props.tables, (table) => ({
|
|
@@ -193,14 +193,14 @@ class QuickfilterDesignComponent extends React.Component<
|
|
|
193
193
|
label: ExprUtils.localizeString(this.props.schema.getTable(table)!.name)
|
|
194
194
|
})),
|
|
195
195
|
onChange: this.handleTableChange,
|
|
196
|
-
nullLabel:
|
|
196
|
+
nullLabel: T`Select...`
|
|
197
197
|
})
|
|
198
198
|
),
|
|
199
199
|
|
|
200
200
|
R(
|
|
201
201
|
"div",
|
|
202
202
|
{ className: "mb-3", key: "expr" },
|
|
203
|
-
R("label", { className: "text-muted" },
|
|
203
|
+
R("label", { className: "text-muted" }, T`Filter By`),
|
|
204
204
|
R(
|
|
205
205
|
"div",
|
|
206
206
|
null,
|
|
@@ -219,13 +219,13 @@ class QuickfilterDesignComponent extends React.Component<
|
|
|
219
219
|
? R(
|
|
220
220
|
"div",
|
|
221
221
|
{ className: "mb-3", key: "label" },
|
|
222
|
-
R("label", { className: "text-muted" },
|
|
222
|
+
R("label", { className: "text-muted" }, T`Label`),
|
|
223
223
|
R("input", {
|
|
224
224
|
type: "text",
|
|
225
225
|
className: "form-control form-control-sm",
|
|
226
226
|
value: this.props.design.label || "",
|
|
227
227
|
onChange: this.handleLabelChange,
|
|
228
|
-
placeholder:
|
|
228
|
+
placeholder: T`Optional Label`
|
|
229
229
|
})
|
|
230
230
|
)
|
|
231
231
|
: undefined,
|
|
@@ -237,8 +237,8 @@ class QuickfilterDesignComponent extends React.Component<
|
|
|
237
237
|
value: this.props.design.merged,
|
|
238
238
|
onChange: this.handleMergedChange
|
|
239
239
|
},
|
|
240
|
-
|
|
241
|
-
R("span", { className: "text-muted" },
|
|
240
|
+
T`Merge with previous quickfilter `,
|
|
241
|
+
R("span", { className: "text-muted" }, T`- displays as one single control that filters both`)
|
|
242
242
|
)
|
|
243
243
|
: undefined,
|
|
244
244
|
|
|
@@ -249,7 +249,7 @@ class QuickfilterDesignComponent extends React.Component<
|
|
|
249
249
|
value: this.props.design.multi,
|
|
250
250
|
onChange: this.handleMultiChange
|
|
251
251
|
},
|
|
252
|
-
|
|
252
|
+
T`Allow multiple selections`
|
|
253
253
|
)
|
|
254
254
|
: undefined
|
|
255
255
|
)
|
|
@@ -119,14 +119,14 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
|
|
|
119
119
|
|
|
120
120
|
return R(AsyncReactSelect, {
|
|
121
121
|
key: JSON.stringify(this.props.filters), // Include to force a change when filters change
|
|
122
|
-
placeholder:
|
|
122
|
+
placeholder: T`All`,
|
|
123
123
|
value: currentValue,
|
|
124
124
|
loadOptions: this.getOptions,
|
|
125
125
|
onChange: this.props.onChange ? this.handleSingleChange : undefined,
|
|
126
126
|
isClearable: true,
|
|
127
127
|
defaultOptions: true,
|
|
128
128
|
isDisabled: this.props.onChange == null,
|
|
129
|
-
noOptionsMessage: () =>
|
|
129
|
+
noOptionsMessage: () => T`Type to search`,
|
|
130
130
|
styles: {
|
|
131
131
|
// Keep menu above fixed data table headers
|
|
132
132
|
menu: (style) => _.extend({}, style, { zIndex: 2000 })
|
|
@@ -138,7 +138,7 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
|
|
|
138
138
|
const currentValue = this.props.value ? _.map(this.props.value, (v) => ({ value: v, label: v })) : null
|
|
139
139
|
|
|
140
140
|
return R(AsyncReactSelect, {
|
|
141
|
-
placeholder:
|
|
141
|
+
placeholder: T`All`,
|
|
142
142
|
value: currentValue,
|
|
143
143
|
key: JSON.stringify(this.props.filters), // Include to force a change when filters change
|
|
144
144
|
isMulti: true,
|
|
@@ -147,7 +147,7 @@ export default class TextLiteralComponent extends React.Component<TextLiteralCom
|
|
|
147
147
|
onChange: this.props.onChange ? this.handleMultipleChange : undefined,
|
|
148
148
|
isClearable: true,
|
|
149
149
|
isDisabled: this.props.onChange == null,
|
|
150
|
-
noOptionsMessage: () =>
|
|
150
|
+
noOptionsMessage: () => T`Type to search`,
|
|
151
151
|
styles: {
|
|
152
152
|
// Keep menu above fixed data table headers
|
|
153
153
|
menu: (style) => _.extend({}, style, { zIndex: 2000 })
|
|
@@ -66,7 +66,7 @@ export default class ExprItemsHtmlConverter extends ItemsHtmlConverter {
|
|
|
66
66
|
if (this.summarizeExprs) {
|
|
67
67
|
text = new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale)
|
|
68
68
|
if (text.length > 30) {
|
|
69
|
-
text = text.substr(0, 30) +
|
|
69
|
+
text = text.substr(0, 30) + T`...`
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
exprHtml = _.escape(text)
|
|
@@ -88,26 +88,24 @@ export default class ExprItemsHtmlConverter extends ItemsHtmlConverter {
|
|
|
88
88
|
|
|
89
89
|
exprHtml = _.escape(text)
|
|
90
90
|
} else {
|
|
91
|
-
exprHtml =
|
|
91
|
+
exprHtml = `<span style="color: #DDD">${T`---`}</span>`
|
|
92
92
|
}
|
|
93
93
|
} else {
|
|
94
94
|
// Placeholder
|
|
95
|
-
exprHtml =
|
|
95
|
+
exprHtml = `<span class="text-muted">\u25a0\u25a0\u25a0</span>`
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
// Add label
|
|
99
99
|
if (exprItem.includeLabel) {
|
|
100
|
-
const label = exprItem.labelText || new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale) +
|
|
101
|
-
exprHtml =
|
|
100
|
+
const label = exprItem.labelText || new ExprUtils(this.schema).summarizeExpr(exprItem.expr, this.locale) + T`:\u00A0`
|
|
101
|
+
exprHtml = `<span class="text-muted">${_.escape(label)}</span>` + exprHtml
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
if (this.designMode) {
|
|
105
105
|
html +=
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
(exprHtml || "\u00A0") +
|
|
110
|
-
"</span>\u2060"
|
|
106
|
+
`\u2060<span data-embed="${_.escape(JSON.stringify(item))}" class="mwater-visualization-text-widget-expr">` +
|
|
107
|
+
(exprHtml || T`\u00A0`) +
|
|
108
|
+
`</span>\u2060`
|
|
111
109
|
} else {
|
|
112
110
|
// View mode
|
|
113
111
|
html += exprHtml
|
|
@@ -11,6 +11,7 @@ export interface RichTextComponentProps {
|
|
|
11
11
|
items?: HtmlItem[]
|
|
12
12
|
onItemsChange?: (items: HtmlItem[]) => void
|
|
13
13
|
|
|
14
|
+
/** Called when an embed item is clicked */
|
|
14
15
|
onItemClick?: (item: HtmlItem) => void
|
|
15
16
|
|
|
16
17
|
/** Optional className of editor wrapper */
|
|
@@ -95,7 +96,7 @@ export default class RichTextComponent extends React.Component<RichTextComponent
|
|
|
95
96
|
// Requires a selection
|
|
96
97
|
const html = this.contentEditable!.getSelectedHTML()
|
|
97
98
|
if (!html) {
|
|
98
|
-
return alert(
|
|
99
|
+
return alert(T`Please select text first to set color`)
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
this.handleCommand("foreColor", color)
|
|
@@ -200,7 +201,7 @@ export default class RichTextComponent extends React.Component<RichTextComponent
|
|
|
200
201
|
ev.preventDefault()
|
|
201
202
|
|
|
202
203
|
// Ask for url
|
|
203
|
-
const url = window.prompt(
|
|
204
|
+
const url = window.prompt(T`Enter URL to link to`)
|
|
204
205
|
if (url) {
|
|
205
206
|
document.execCommand("createLink", false, url)
|
|
206
207
|
}
|
|
@@ -301,10 +302,10 @@ export default class RichTextComponent extends React.Component<RichTextComponent
|
|
|
301
302
|
<DropdownPaletteItem
|
|
302
303
|
key="justify"
|
|
303
304
|
items={[
|
|
304
|
-
{ label: <span><i className="fas fa-align-left fa-fw"></i> Left</span>, value: "justifyLeft" },
|
|
305
|
-
{ label: <span><i className="fas fa-align-center fa-fw"></i> Center</span>, value: "justifyCenter" },
|
|
306
|
-
{ label: <span><i className="fas fa-align-right fa-fw"></i> Right</span>, value: "justifyRight" },
|
|
307
|
-
{ label: <span><i className="fas fa-align-justify fa-fw"></i> Justify</span>, value: "justifyFull" },
|
|
305
|
+
{ label: <span><i className="fas fa-align-left fa-fw"></i> {T`Left`}</span>, value: "justifyLeft" },
|
|
306
|
+
{ label: <span><i className="fas fa-align-center fa-fw"></i> {T`Center`}</span>, value: "justifyCenter" },
|
|
307
|
+
{ label: <span><i className="fas fa-align-right fa-fw"></i> {T`Right`}</span>, value: "justifyRight" },
|
|
308
|
+
{ label: <span><i className="fas fa-align-justify fa-fw"></i> {T`Justify`}</span>, value: "justifyFull" },
|
|
308
309
|
]}
|
|
309
310
|
onSelect={(value) => this.handleCommand(value, null)}
|
|
310
311
|
position={schemeName === "over" ? "under" : "over"}
|
|
@@ -328,28 +329,28 @@ export default class RichTextComponent extends React.Component<RichTextComponent
|
|
|
328
329
|
<DropdownPaletteItem
|
|
329
330
|
key="paragraph"
|
|
330
331
|
items={[
|
|
331
|
-
{ label:
|
|
332
|
-
{ label:
|
|
333
|
-
{ label:
|
|
334
|
-
{ label:
|
|
335
|
-
{ label:
|
|
336
|
-
{ label:
|
|
337
|
-
{ label:
|
|
338
|
-
{ label:
|
|
339
|
-
{ label:
|
|
340
|
-
{ label:
|
|
341
|
-
{ label:
|
|
342
|
-
{ label:
|
|
343
|
-
{ label:
|
|
344
|
-
{ label:
|
|
345
|
-
{ label:
|
|
346
|
-
{ label:
|
|
347
|
-
{ label:
|
|
348
|
-
{ label:
|
|
349
|
-
{ label:
|
|
350
|
-
{ label:
|
|
351
|
-
{ label:
|
|
352
|
-
{ label:
|
|
332
|
+
{ label: T`Heading 1`, value: "h1" },
|
|
333
|
+
{ label: T`Heading 2`, value: "h2" },
|
|
334
|
+
{ label: T`Extra Small`, value: "xsmall" },
|
|
335
|
+
{ label: T`Small`, value: "small" },
|
|
336
|
+
{ label: T`Normal`, value: "normal" },
|
|
337
|
+
{ label: T`Large`, value: "large" },
|
|
338
|
+
{ label: T`Extra Large`, value: "xlarge" },
|
|
339
|
+
{ label: T`6px`, value: "6px", more: true },
|
|
340
|
+
{ label: T`7px`, value: "7px", more: true },
|
|
341
|
+
{ label: T`8px`, value: "8px", more: true },
|
|
342
|
+
{ label: T`9px`, value: "9px", more: true },
|
|
343
|
+
{ label: T`10px`, value: "10px", more: true },
|
|
344
|
+
{ label: T`11px`, value: "11px", more: true },
|
|
345
|
+
{ label: T`12px`, value: "12px", more: true },
|
|
346
|
+
{ label: T`14px`, value: "14px", more: true },
|
|
347
|
+
{ label: T`16px`, value: "16px", more: true },
|
|
348
|
+
{ label: T`18px`, value: "18px", more: true },
|
|
349
|
+
{ label: T`20px`, value: "20px", more: true },
|
|
350
|
+
{ label: T`22px`, value: "22px", more: true },
|
|
351
|
+
{ label: T`24px`, value: "24px", more: true },
|
|
352
|
+
{ label: T`30px`, value: "30px", more: true },
|
|
353
|
+
{ label: T`36px`, value: "36px", more: true },
|
|
353
354
|
]}
|
|
354
355
|
onSelect={(tag) => {
|
|
355
356
|
if (tag.startsWith("h")) {
|
|
@@ -397,9 +398,8 @@ export default class RichTextComponent extends React.Component<RichTextComponent
|
|
|
397
398
|
{this.props.items?.[0] == null ? (
|
|
398
399
|
<div
|
|
399
400
|
key="placeholder"
|
|
400
|
-
style={{ color: "#DDD", position: "absolute", top: 0, left: 0, right: 0, pointerEvents: "none" }}
|
|
401
|
-
|
|
402
|
-
Click to Edit
|
|
401
|
+
style={{ color: "#DDD", position: "absolute", top: 0, left: 0, right: 0, pointerEvents: "none" }} >
|
|
402
|
+
{T`Click to Edit`}
|
|
403
403
|
</div>
|
|
404
404
|
) : undefined}
|
|
405
405
|
</div>
|
package/src/valueFormatter.ts
CHANGED
|
@@ -19,22 +19,22 @@ export function canFormatType(type: LiteralType): boolean {
|
|
|
19
19
|
export function getFormatOptions(type: LiteralType): FormatOption[] | null {
|
|
20
20
|
if (type == "number") {
|
|
21
21
|
return [
|
|
22
|
-
{ value: "", label:
|
|
23
|
-
{ value: ",", label:
|
|
24
|
-
{ value: ",.0f", label:
|
|
25
|
-
{ value: ",.2f", label:
|
|
26
|
-
{ value: "$,.2f", label:
|
|
27
|
-
{ value: "$,.0f", label:
|
|
28
|
-
{ value: ".0%", label:
|
|
29
|
-
{ value: ".2%", label:
|
|
22
|
+
{ value: "", label: T`Plain: 1234.567` },
|
|
23
|
+
{ value: ",", label: T`Normal: 1,234.567` },
|
|
24
|
+
{ value: ",.0f", label: T`Rounded: 1,234` },
|
|
25
|
+
{ value: ",.2f", label: T`Two decimals: 1,234.56` },
|
|
26
|
+
{ value: "$,.2f", label: T`Currency: $1,234.56` },
|
|
27
|
+
{ value: "$,.0f", label: T`Currency rounded: $1,234` },
|
|
28
|
+
{ value: ".0%", label: T`Percent rounded: 12%` },
|
|
29
|
+
{ value: ".2%", label: T`Percent decimal: 12.34%` }
|
|
30
30
|
]
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (type == "geometry") {
|
|
34
34
|
return [
|
|
35
|
-
{ value: "lat, lng", label:
|
|
36
|
-
{ value: "UTM", label:
|
|
37
|
-
{ value: "WKT", label:
|
|
35
|
+
{ value: "lat, lng", label: T`Latitude, Longitude` },
|
|
36
|
+
{ value: "UTM", label: T`UTM` },
|
|
37
|
+
{ value: "WKT", label: T`Well-Known Text` }
|
|
38
38
|
]
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -96,7 +96,7 @@ export function getDefaultFormat(type: LiteralType): string {
|
|
|
96
96
|
return "lll"
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
throw new Error(
|
|
99
|
+
throw new Error(T`Not supported`)
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/** Format a value of a specified type as a string. For historical reasons,
|
|
@@ -140,10 +140,10 @@ export function formatValue(
|
|
|
140
140
|
const longitude = value.coordinates[0]
|
|
141
141
|
|
|
142
142
|
if (latitude > 84 || latitude < -80) {
|
|
143
|
-
return
|
|
143
|
+
return T`latitude out of range`
|
|
144
144
|
}
|
|
145
145
|
if (longitude > 180 || longitude < -180) {
|
|
146
|
-
return
|
|
146
|
+
return T`longitude out of range`
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
const { easting, northing, zoneNum, zoneLetter } = fromLatLon(latitude, longitude)
|
|
@@ -49,7 +49,7 @@ export default class IFrameWidgetComponent extends React.Component<
|
|
|
49
49
|
const content = R(
|
|
50
50
|
"div",
|
|
51
51
|
{ className: "mb-3" },
|
|
52
|
-
R("label", null,
|
|
52
|
+
R("label", null, T`URL to embed`),
|
|
53
53
|
R("input", {
|
|
54
54
|
type: "text",
|
|
55
55
|
className: "form-control",
|
|
@@ -62,7 +62,7 @@ export default class IFrameWidgetComponent extends React.Component<
|
|
|
62
62
|
return R(
|
|
63
63
|
ModalPopupComponent,
|
|
64
64
|
{
|
|
65
|
-
header:
|
|
65
|
+
header: T`Configure`,
|
|
66
66
|
showCloseX: true,
|
|
67
67
|
onClose: this.handleEndEditing
|
|
68
68
|
},
|
|
@@ -84,7 +84,7 @@ export default class IFrameWidgetComponent extends React.Component<
|
|
|
84
84
|
render() {
|
|
85
85
|
const dropdownItems = []
|
|
86
86
|
if (this.props.onDesignChange != null) {
|
|
87
|
-
dropdownItems.push({ label:
|
|
87
|
+
dropdownItems.push({ label: T`Edit`, icon: "pencil", onClick: this.handleStartEditing })
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
return R(
|
|
@@ -71,7 +71,7 @@ export default class ImageUploaderComponent extends React.Component<
|
|
|
71
71
|
this.props.onUpload(this.state.uid)
|
|
72
72
|
} else {
|
|
73
73
|
this.setState({ uploading: false, files: null, editing: false })
|
|
74
|
-
alert(`Upload failed: ${e.target.responseText}`)
|
|
74
|
+
alert(T`Upload failed: ${e.target.responseText}`)
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
|
|
@@ -98,8 +98,8 @@ export default class ImageUploaderComponent extends React.Component<
|
|
|
98
98
|
: <div>
|
|
99
99
|
{
|
|
100
100
|
isDragActive ?
|
|
101
|
-
|
|
102
|
-
:
|
|
101
|
+
T`Drop the files here`
|
|
102
|
+
: T`Drop file here or click to select file`
|
|
103
103
|
}
|
|
104
104
|
</div>
|
|
105
105
|
}
|
|
@@ -107,7 +107,7 @@ export default class ImageUploaderComponent extends React.Component<
|
|
|
107
107
|
)}
|
|
108
108
|
</Dropzone>
|
|
109
109
|
|
|
110
|
-
{ this.state.uid && <a className="link-plain" onClick={() => this.setState({ editing: false })}>Cancel</a> }
|
|
110
|
+
{ this.state.uid && <a className="link-plain" onClick={() => this.setState({ editing: false })}>{T`Cancel`}</a> }
|
|
111
111
|
</div>
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -124,7 +124,7 @@ export default class ImageUploaderComponent extends React.Component<
|
|
|
124
124
|
"div",
|
|
125
125
|
null,
|
|
126
126
|
R("img", { style: thumbnailStyle, src: this.props.dataSource.getImageUrl(this.state.uid) }),
|
|
127
|
-
R("a", { className: "btn btn-secondary", onClick: this.handleChangeImage },
|
|
127
|
+
R("a", { className: "btn btn-secondary", onClick: this.handleChangeImage }, T`Change`)
|
|
128
128
|
)
|
|
129
129
|
}
|
|
130
130
|
|
|
@@ -74,13 +74,13 @@ export default class ImageWidget extends Widget {
|
|
|
74
74
|
// callback: (error, data)
|
|
75
75
|
getData(design: ImageWidgetDesign, schema: Schema, dataSource: DataSource, filters: JsonQLFilter[], callback: any) {
|
|
76
76
|
if (!design.expr) {
|
|
77
|
-
return callback(null)
|
|
77
|
+
return callback(null, null)
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
const exprCleaner = new ExprCleaner(schema)
|
|
81
81
|
const expr = exprCleaner.cleanExpr(design.expr)
|
|
82
82
|
if (!expr) {
|
|
83
|
-
return callback(null)
|
|
83
|
+
return callback(null, null)
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
const { table } = (design.expr as FieldExpr)
|