@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.
Files changed (2) hide show
  1. package/dist/main.js +33 -44
  2. 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
- * Remove a single DrilldownItem from the current QueryItem.
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.fullName] = 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.fullName] = 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
- selectCurrentQueryParams,
1135
- (params) => ({ limit: params.pagiLimit || 0, offset: params.pagiOffset || 0 })
1136
- );
1137
- createSelector(
1138
- selectCurrentQueryParams,
1139
- (params) => ({ sortKey: params.sortKey || "", sortDir: params.sortDir })
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
- }, 700);
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(isActiveItem),
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(false);
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.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.data, params]
6663
+ [cube, result.data, params]
6675
6664
  );
6676
6665
  const content = useMemo(() => {
6677
6666
  const isSingleChart = charts.length === 1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datawheel/data-explorer",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/main.js"