@datawheel/data-explorer 1.0.8 → 1.0.9

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.mjs +54 -15
  2. package/package.json +1 -1
package/dist/main.mjs CHANGED
@@ -2812,14 +2812,35 @@ var propertiesUpdateHandler = (actions2, item, activeProps) => {
2812
2812
  );
2813
2813
  actions2.updateDrilldown({ ...item, properties });
2814
2814
  };
2815
- var removeColumn = (actions2, entity, measures, drilldowns, type) => {
2815
+ var removeColumn = (actions2, entity, measures, drilldowns, type, queryItem, updateURL) => {
2816
+ const newQuery = buildQuery(_.cloneDeep(queryItem));
2816
2817
  if ("aggregator" in entity) {
2817
2818
  const measure = measures.find((d) => d.name === entity.name);
2818
- measure && actions2.updateMeasure({ ...measure, active: false });
2819
+ if (measure) {
2820
+ const newMeasure = { ...measure, active: false };
2821
+ actions2.updateMeasure(newMeasure);
2822
+ newQuery.params.measures[newMeasure.name] = newMeasure;
2823
+ updateURL({
2824
+ ...newQuery,
2825
+ params: {
2826
+ ...newQuery.params
2827
+ }
2828
+ });
2829
+ }
2819
2830
  }
2820
2831
  if ("depth" in entity) {
2821
2832
  const drilldown = drilldowns.find((d) => d.level === entity.name);
2822
- drilldown && actions2.updateDrilldown({ ...drilldown, active: false });
2833
+ if (drilldown) {
2834
+ const newDrilldown = { ...drilldown, active: false };
2835
+ actions2.updateDrilldown(newDrilldown);
2836
+ newQuery.params.drilldowns[newDrilldown.key] = newDrilldown;
2837
+ updateURL({
2838
+ ...newQuery,
2839
+ params: {
2840
+ ...newQuery.params
2841
+ }
2842
+ });
2843
+ }
2823
2844
  }
2824
2845
  if (isProperty(type)) {
2825
2846
  const activeDrilldowns = drilldowns.filter((d) => d.active);
@@ -3131,8 +3152,18 @@ function useTable({
3131
3152
  {
3132
3153
  label: `At least one ${getEntityText(entityType)} is required.`,
3133
3154
  key: `remove-${column2.columnDef.header}`,
3134
- disabled: !showTrashIcon(finalKeys, entityType),
3135
- onClick: () => removeColumn(actions2, entity, measures, drilldowns, entityType),
3155
+ disabled: !showTrashIcon(finalKeys, entityType) || isLoading || isFetching,
3156
+ onClick: () => {
3157
+ removeColumn(
3158
+ actions2,
3159
+ entity,
3160
+ measures,
3161
+ drilldowns,
3162
+ entityType,
3163
+ queryItem,
3164
+ updateURL
3165
+ );
3166
+ },
3136
3167
  showTooltip: !showTrashIcon(finalKeys, entityType),
3137
3168
  size: 25,
3138
3169
  ml: rem(5)
@@ -4806,16 +4837,24 @@ function QueryProvider({ children, defaultCube }) {
4806
4837
  newQuery.params.locale = defaultLocale || newQuery.params.locale;
4807
4838
  if (newQuery) {
4808
4839
  const promises = Object.values(newQuery.params.drilldowns).map((dd) => {
4809
- return fetchMembers(dd.level, newQuery == null ? void 0 : newQuery.params.locale, cube).then((levelMeta) => {
4810
- const cut = buildCut({ ...dd, active: false });
4811
- return {
4812
- drilldown: {
4813
- ...dd,
4814
- members: levelMeta.members
4815
- },
4816
- cut
4817
- };
4818
- });
4840
+ const currentDrilldown = queryItem.params.drilldowns[dd.key];
4841
+ if (currentDrilldown && currentDrilldown.members && currentDrilldown.members.length > 0) {
4842
+ return Promise.resolve({
4843
+ drilldown: currentDrilldown,
4844
+ cut: buildCut({ ...currentDrilldown, active: false })
4845
+ });
4846
+ } else {
4847
+ return fetchMembers(dd.level, newQuery == null ? void 0 : newQuery.params.locale, cube).then((levelMeta) => {
4848
+ const cut = buildCut({ ...dd, active: false });
4849
+ return {
4850
+ drilldown: {
4851
+ ...dd,
4852
+ members: levelMeta.members
4853
+ },
4854
+ cut
4855
+ };
4856
+ });
4857
+ }
4819
4858
  });
4820
4859
  runFetchMembers(Promise.all(promises)).then((data) => {
4821
4860
  const drilldowns = data.map((item) => item.drilldown);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datawheel/data-explorer",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "main": "./dist/main.mjs",
5
5
  "types": "./dist/main.d.mts",
6
6
  "files": [