@datawheel/data-explorer 0.2.3 → 0.2.4
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/dist/main.js +33 -44
- package/package.json +1 -1
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { keyframes, createStyles, Select, rem, Flex, Title, Text, Group, Button, Box, Anchor, Input, Stack, SimpleGrid, ScrollArea, Table, MultiSelect, Center, Alert, Loader, Modal, NumberInput, Menu, ActionIcon, useMantineTheme, MantineProvider, Paper, useComponentDefaultProps, Switch, ThemeIcon, Tooltip, Tabs, CloseButton, Drawer, Checkbox, UnstyledButton, TextInput, Accordion, Popover, Divider } from '@mantine/core';
|
|
1
|
+
import { keyframes, createStyles, Select, rem, Flex, Title, Text, Group, Button, Box, Anchor, Input, Stack, SimpleGrid, ScrollArea, LoadingOverlay, Table, MultiSelect, Center, Alert, Loader, Modal, NumberInput, Menu, ActionIcon, useMantineTheme, MantineProvider, Paper, useComponentDefaultProps, Switch, ThemeIcon, Tooltip, Tabs, CloseButton, Drawer, Checkbox, UnstyledButton, TextInput, Accordion, Popover, Divider } from '@mantine/core';
|
|
2
2
|
import { useClipboard, useClickOutside, useFullscreen, useMediaQuery, useDebouncedValue, useDisclosure } from '@mantine/hooks';
|
|
3
3
|
import { Prism } from '@mantine/prism';
|
|
4
4
|
import { IconWorld, IconExternalLink, IconClipboard, IconAlertCircle, IconAlertTriangle, IconSettings, IconMathGreater, IconMathLower, IconArrowsLeftRight, IconCopy, IconDownload, IconDotsVertical, IconArrowsMinimize, IconArrowsMaximize, IconInfoCircleFilled, IconTrash, IconSearch, IconPhotoDown, IconVectorTriangle, IconStack3, IconFilterOff, IconFilter, IconArrowsSort, IconSortDescendingNumbers, IconSortDescendingLetters, IconSortAscendingNumbers, IconSortAscendingLetters, IconLanguage } from '@tabler/icons-react';
|
|
@@ -913,8 +913,8 @@ var queriesSlice = createSlice({
|
|
|
913
913
|
delete query.params.drilldowns[action.payload];
|
|
914
914
|
},
|
|
915
915
|
/**
|
|
916
|
-
|
|
917
|
-
|
|
916
|
+
* Remove a single DrilldownItem from the current QueryItem.
|
|
917
|
+
*/
|
|
918
918
|
removeMeasure(state, action) {
|
|
919
919
|
const query = taintCurrentQuery(state);
|
|
920
920
|
delete query.params.measures[action.payload];
|
|
@@ -1002,14 +1002,14 @@ var queriesSlice = createSlice({
|
|
|
1002
1002
|
*/
|
|
1003
1003
|
updateCut(state, { payload }) {
|
|
1004
1004
|
const query = taintCurrentQuery(state);
|
|
1005
|
-
query.params.cuts[payload.
|
|
1005
|
+
query.params.cuts[payload.key] = payload;
|
|
1006
1006
|
},
|
|
1007
1007
|
/**
|
|
1008
1008
|
* Replaces a single DrilldownItem in the current QueryItem.
|
|
1009
1009
|
*/
|
|
1010
1010
|
updateDrilldown(state, { payload }) {
|
|
1011
1011
|
const query = taintCurrentQuery(state);
|
|
1012
|
-
query.params.drilldowns[payload.
|
|
1012
|
+
query.params.drilldowns[payload.key] = payload;
|
|
1013
1013
|
},
|
|
1014
1014
|
/**
|
|
1015
1015
|
* Replaces a single FilterItem in the current QueryItem.
|
|
@@ -1083,10 +1083,7 @@ var selectCurrentQueryParams = createSelector(
|
|
|
1083
1083
|
selectCurrentQueryItem,
|
|
1084
1084
|
(query) => query.params
|
|
1085
1085
|
);
|
|
1086
|
-
var selectCubeName = createSelector(
|
|
1087
|
-
selectCurrentQueryParams,
|
|
1088
|
-
(params) => params.cube
|
|
1089
|
-
);
|
|
1086
|
+
var selectCubeName = createSelector(selectCurrentQueryParams, (params) => params.cube);
|
|
1090
1087
|
var selectLocale = createSelector(
|
|
1091
1088
|
[selectCurrentQueryParams, selectServerState],
|
|
1092
1089
|
(params, server) => {
|
|
@@ -1098,10 +1095,7 @@ var selectLocale = createSelector(
|
|
|
1098
1095
|
};
|
|
1099
1096
|
}
|
|
1100
1097
|
);
|
|
1101
|
-
var selectCutMap = createSelector(
|
|
1102
|
-
selectCurrentQueryParams,
|
|
1103
|
-
(params) => params.cuts
|
|
1104
|
-
);
|
|
1098
|
+
var selectCutMap = createSelector(selectCurrentQueryParams, (params) => params.cuts);
|
|
1105
1099
|
createSelector(selectCutMap, getKeys);
|
|
1106
1100
|
var selectCutItems = createSelector(selectCutMap, getValues);
|
|
1107
1101
|
var selectDrilldownMap = createSelector(
|
|
@@ -1110,34 +1104,25 @@ var selectDrilldownMap = createSelector(
|
|
|
1110
1104
|
);
|
|
1111
1105
|
createSelector(selectDrilldownMap, getKeys);
|
|
1112
1106
|
var selectDrilldownItems = createSelector(selectDrilldownMap, getValues);
|
|
1113
|
-
var selectFilterMap = createSelector(
|
|
1114
|
-
selectCurrentQueryParams,
|
|
1115
|
-
(params) => params.filters
|
|
1116
|
-
);
|
|
1107
|
+
var selectFilterMap = createSelector(selectCurrentQueryParams, (params) => params.filters);
|
|
1117
1108
|
createSelector(selectFilterMap, getKeys);
|
|
1118
1109
|
var selectFilterItems = createSelector(selectFilterMap, getValues);
|
|
1119
|
-
var selectMeasureMap = createSelector(
|
|
1120
|
-
selectCurrentQueryParams,
|
|
1121
|
-
(params) => params.measures
|
|
1122
|
-
);
|
|
1110
|
+
var selectMeasureMap = createSelector(selectCurrentQueryParams, (params) => params.measures);
|
|
1123
1111
|
createSelector(selectMeasureMap, getKeys);
|
|
1124
1112
|
var selectMeasureItems = createSelector(selectMeasureMap, getValues);
|
|
1125
|
-
createSelector(
|
|
1126
|
-
selectCurrentQueryParams,
|
|
1127
|
-
(params) => params.booleans
|
|
1128
|
-
);
|
|
1113
|
+
createSelector(selectCurrentQueryParams, (params) => params.booleans);
|
|
1129
1114
|
var selectIsPreviewMode = createSelector(
|
|
1130
1115
|
selectCurrentQueryParams,
|
|
1131
1116
|
(params) => params.isPreview
|
|
1132
1117
|
);
|
|
1133
|
-
var selectPaginationParams = createSelector(
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
);
|
|
1137
|
-
createSelector(
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
);
|
|
1118
|
+
var selectPaginationParams = createSelector(selectCurrentQueryParams, (params) => ({
|
|
1119
|
+
limit: params.pagiLimit || 0,
|
|
1120
|
+
offset: params.pagiOffset || 0
|
|
1121
|
+
}));
|
|
1122
|
+
createSelector(selectCurrentQueryParams, (params) => ({
|
|
1123
|
+
sortKey: params.sortKey || "",
|
|
1124
|
+
sortDir: params.sortDir
|
|
1125
|
+
}));
|
|
1141
1126
|
createSelector(
|
|
1142
1127
|
selectCurrentQueryParams,
|
|
1143
1128
|
(params) => isValidQueryVerbose(params)
|
|
@@ -1574,6 +1559,7 @@ function calcMaxMemberCount(query, params, dispatch) {
|
|
|
1574
1559
|
memberCount: members.length,
|
|
1575
1560
|
members
|
|
1576
1561
|
};
|
|
1562
|
+
dispatch(actions.updateDrilldown(buildDrilldown({ ...ddd, key: stringifyName(ddd) })));
|
|
1577
1563
|
createCutHandler(params.cuts, ddd, dispatch);
|
|
1578
1564
|
}
|
|
1579
1565
|
return members.length;
|
|
@@ -1590,7 +1576,7 @@ function hydrateDrilldownProperties(cube, drilldownItem) {
|
|
|
1590
1576
|
if (level.matches(drilldownItem)) {
|
|
1591
1577
|
return buildDrilldown({
|
|
1592
1578
|
...drilldownItem,
|
|
1593
|
-
key: stringifyName(drilldownItem),
|
|
1579
|
+
// key: stringifyName(drilldownItem),
|
|
1594
1580
|
fullName: level.fullName,
|
|
1595
1581
|
uniqueName: level.uniqueName,
|
|
1596
1582
|
dimType: level.dimension.dimensionType,
|
|
@@ -3172,7 +3158,7 @@ function useTableData({ columns, filters, cuts, pagination }) {
|
|
|
3172
3158
|
const handler = debounce(() => {
|
|
3173
3159
|
const term = [columnsStr, filterKey, cutKey, page];
|
|
3174
3160
|
setDebouncedTerm(term);
|
|
3175
|
-
},
|
|
3161
|
+
}, 800);
|
|
3176
3162
|
handler();
|
|
3177
3163
|
return () => handler.cancel();
|
|
3178
3164
|
}, [columnsStr, filterKey, cutKey, page, enabled]);
|
|
@@ -3284,7 +3270,9 @@ function useTable({
|
|
|
3284
3270
|
}, [measuresMap, measuresOlap, filtersMap, filterItems]);
|
|
3285
3271
|
const { isLoading, isFetching, isError, data, isPlaceholderData } = useTableData({
|
|
3286
3272
|
columns: finalUniqueKeys,
|
|
3287
|
-
filters: filterItems.filter(
|
|
3273
|
+
filters: filterItems.filter(
|
|
3274
|
+
(f) => isActiveItem(f) && isActiveItem(measures.find((m) => m.name === f.measure) || { active: false })
|
|
3275
|
+
),
|
|
3288
3276
|
cuts: itemsCuts.filter(isActiveCut),
|
|
3289
3277
|
pagination
|
|
3290
3278
|
});
|
|
@@ -3495,9 +3483,9 @@ function useTable({
|
|
|
3495
3483
|
...constTableProps,
|
|
3496
3484
|
...mantineTableProps
|
|
3497
3485
|
});
|
|
3498
|
-
return { table, isError, isLoading, data: tableData };
|
|
3486
|
+
return { table, isError, isLoading, data: tableData, columns };
|
|
3499
3487
|
}
|
|
3500
|
-
function TableView({ table, result, isError, isLoading, data }) {
|
|
3488
|
+
function TableView({ table, result, isError, isLoading = false, data, columns }) {
|
|
3501
3489
|
const isData = Boolean(table.getRowModel().rows.length);
|
|
3502
3490
|
return /* @__PURE__ */ React10__default.createElement(Box, { sx: { height: "100%" } }, /* @__PURE__ */ React10__default.createElement(Flex, { direction: "column", justify: "space-between", sx: { height: "100%", flex: "1 1 auto" } }, /* @__PURE__ */ React10__default.createElement(MRT_ProgressBar, { isTopToolbar: false, table }), /* @__PURE__ */ React10__default.createElement(
|
|
3503
3491
|
ScrollArea,
|
|
@@ -3509,6 +3497,7 @@ function TableView({ table, result, isError, isLoading, data }) {
|
|
|
3509
3497
|
overflow: "scroll"
|
|
3510
3498
|
}
|
|
3511
3499
|
},
|
|
3500
|
+
/* @__PURE__ */ React10__default.createElement(LoadingOverlay, { visible: columns.length === 0 && isLoading }),
|
|
3512
3501
|
/* @__PURE__ */ React10__default.createElement(
|
|
3513
3502
|
Table,
|
|
3514
3503
|
{
|
|
@@ -3871,7 +3860,7 @@ function SuccessResult(props) {
|
|
|
3871
3860
|
const { previewLimit, actions: actions2 } = useSettings();
|
|
3872
3861
|
const queryItem = useSelector$1(selectCurrentQueryItem);
|
|
3873
3862
|
const isPreviewMode = useSelector$1(selectIsPreviewMode);
|
|
3874
|
-
const { table, isError, isLoading, data } = useTable({ cube, result });
|
|
3863
|
+
const { table, isError, isLoading, data, columns } = useTable({ cube, result });
|
|
3875
3864
|
const fullscreen = useFullscreen();
|
|
3876
3865
|
const [CurrentComponent, panelKey, panelMeta] = useMemo(() => {
|
|
3877
3866
|
const currentPanel = queryItem.panel || `${panels[0].key}-`;
|
|
@@ -3904,7 +3893,8 @@ function SuccessResult(props) {
|
|
|
3904
3893
|
table,
|
|
3905
3894
|
isError,
|
|
3906
3895
|
isLoading,
|
|
3907
|
-
data
|
|
3896
|
+
data,
|
|
3897
|
+
columns
|
|
3908
3898
|
}
|
|
3909
3899
|
)))))));
|
|
3910
3900
|
}
|
|
@@ -4186,7 +4176,7 @@ function LocaleSelector() {
|
|
|
4186
4176
|
var [useSideBar, Provider] = createContext2("SideBar");
|
|
4187
4177
|
function SideBarProvider(props) {
|
|
4188
4178
|
const [input, setInput] = useState("");
|
|
4189
|
-
const [expanded, setExpanded] = useState(
|
|
4179
|
+
const [expanded, setExpanded] = useState(true);
|
|
4190
4180
|
const [results, setResults] = useState([]);
|
|
4191
4181
|
const [map, setMap] = useState();
|
|
4192
4182
|
const [graph, setGraph] = useState(new graph_default());
|
|
@@ -6627,7 +6617,6 @@ function createVizbuilderView(settings) {
|
|
|
6627
6617
|
return VizbuilderView;
|
|
6628
6618
|
function VizbuilderView(props) {
|
|
6629
6619
|
const { cube, panelKey, params, result } = props;
|
|
6630
|
-
console.log(result);
|
|
6631
6620
|
const { actions: actions2, formatters } = useSettings();
|
|
6632
6621
|
const [panelName, currentChart] = useMemo(() => `${panelKey || ""}-`.split("-"), [panelKey]);
|
|
6633
6622
|
const resetCurrentPanel = useCallback(() => {
|
|
@@ -6638,7 +6627,7 @@ function createVizbuilderView(settings) {
|
|
|
6638
6627
|
[
|
|
6639
6628
|
{
|
|
6640
6629
|
cube,
|
|
6641
|
-
dataset: result.data
|
|
6630
|
+
dataset: result.data,
|
|
6642
6631
|
params: {
|
|
6643
6632
|
locale: params.locale || defaultLocale,
|
|
6644
6633
|
booleans: params.booleans,
|
|
@@ -6671,7 +6660,7 @@ function createVizbuilderView(settings) {
|
|
|
6671
6660
|
],
|
|
6672
6661
|
chartGenOptions
|
|
6673
6662
|
),
|
|
6674
|
-
[cube, result.data
|
|
6663
|
+
[cube, result.data, params]
|
|
6675
6664
|
);
|
|
6676
6665
|
const content = useMemo(() => {
|
|
6677
6666
|
const isSingleChart = charts.length === 1;
|