@gooddata/sdk-ui-dashboard 11.57.0-alpha.3 → 11.57.0-alpha.5

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 (51) hide show
  1. package/NOTICE +5 -5
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/kdaDialog/dialog/hooks/useChangeAnalysis.js +1 -1
  5. package/esm/model/react/useDashboardAsyncRender.js +2 -2
  6. package/esm/model/react/useDashboardCommand.js +1 -1
  7. package/esm/model/react/useDashboardQueryProcessing.js +1 -1
  8. package/esm/model/react/useDispatchDashboardCommand.js +1 -1
  9. package/esm/model/react/useInitializeDashboardStore.js +1 -1
  10. package/esm/model/react/useWidgetFilters.js +7 -7
  11. package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialogAttribute.js +1 -1
  12. package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useElementHeightSnapshot.js +1 -1
  13. package/esm/presentation/automations/shared/automationFilters/useAutomationFilters.js +3 -3
  14. package/esm/presentation/dragAndDrop/useDashboardDragScroll.js +2 -2
  15. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +1 -1
  16. package/esm/presentation/filterBar/attributeFilter/addAttributeFilter/AttributesDropdown.js +1 -1
  17. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/hooks/useTitleConfiguration.js +1 -1
  18. package/esm/presentation/filterBar/attributeFilter/dashboardDropdownBody/configuration/limitValues/dialog/DateFiltersPage.js +1 -1
  19. package/esm/presentation/filterBar/filterBar/hooks/useResetFiltersButton.js +1 -1
  20. package/esm/presentation/filterBar/filterBar/useFiltersWithAddedPlaceholder.js +1 -1
  21. package/esm/presentation/flexibleLayout/DefaultDashboardLayoutRenderer/DashboardLayoutWidgetRenderer.js +1 -1
  22. package/esm/presentation/flexibleLayout/dragAndDrop/DragLayer.js +1 -1
  23. package/esm/presentation/flexibleLayout/dragAndDrop/Resize/HeightResizerHotspot.js +1 -1
  24. package/esm/presentation/insightList/InsightList.js +1 -1
  25. package/esm/presentation/saveAs/DefaultSaveAsDialog/useSaveAs.js +1 -1
  26. package/esm/presentation/topBar/menuButton/useDefaultMenuItems.js +4 -4
  27. package/esm/presentation/widget/common/configuration/useAttributeFilterConfigurationHandling.js +5 -5
  28. package/esm/presentation/widget/common/configuration/useDateFilterConfigurationHandling.js +5 -5
  29. package/esm/presentation/widget/common/configuration/useIsSelectedDatasetHidden.js +1 -1
  30. package/esm/presentation/widget/common/configuration/useMeasureValueFilterConfigurationHandling.js +5 -5
  31. package/esm/presentation/widget/common/useCustomWidgetInsightDataView.js +3 -3
  32. package/esm/presentation/widget/common/useExportHandler.js +1 -1
  33. package/esm/presentation/widget/common/useImageExportHandler.d.ts.map +1 -1
  34. package/esm/presentation/widget/common/useImageExportHandler.js +2 -2
  35. package/esm/presentation/widget/common/useInsightExport.js +11 -11
  36. package/esm/presentation/widget/common/useInsightWidgetDataView.js +2 -2
  37. package/esm/presentation/widget/common/useRawExportHandler.js +1 -1
  38. package/esm/presentation/widget/common/useSlidesExportHandler.js +1 -1
  39. package/esm/presentation/widget/common/useWidgetHighlighting.js +1 -1
  40. package/esm/presentation/widget/insight/ViewModeDashboardInsight/Insight/DashboardInsight.js +6 -6
  41. package/esm/presentation/widget/insight/ViewModeDashboardInsight/InsightDrillDialog/DrillDialogInsight.js +1 -1
  42. package/esm/presentation/widget/insight/ViewModeDashboardInsight/useResolveDashboardInsightProperties.js +1 -1
  43. package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/useInsightDrillConfigPanel.js +2 -2
  44. package/esm/presentation/widget/visualizationSwitcher/configuration/Toolbar.js +2 -2
  45. package/esm/presentation/widget/visualizationSwitcher/configuration/VisualizationsList/VisualizationListMenu.js +2 -2
  46. package/esm/presentation/widget/widget/DashboardWidget.js +1 -1
  47. package/esm/presentation/widget/widget/DefaultDashboardWidget.js +1 -1
  48. package/esm/presentation/widget/widget/InsightWidget/useInsightMenu.js +1 -1
  49. package/package.json +23 -24
  50. package/styles/css/main.css +1 -0
  51. package/styles/css/main.css.map +1 -1
package/NOTICE CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
9
9
 
10
- Date generated: 2026-9-14
10
+ Date generated: 2026-9-15
11
11
 
12
- Revision ID: 2ddc75aa28e022016649b61c0188b349322c1327
12
+ Revision ID: 36b4feb8b9e2614584f737017465f7ce9ea93c17
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -10074,7 +10074,7 @@ MIT
10074
10074
 
10075
10075
  * Package Info *
10076
10076
 
10077
- Authors: maggiepint@gmail.com, marwahaha@berkeley.edu, me@iskren.info, mj1856@hotmail.com, washwithcare@gmail.com
10077
+ Authors: gilmoreorless@gmail.com, maggiepint@gmail.com, marwahaha@berkeley.edu, mattjohnsonpint@gmail.com, me@iskren.info, washwithcare@gmail.com
10078
10078
  Package Manager: NPM
10079
10079
  Project URL: https://momentjs.com/
10080
10080
  Package Download URL: https://registry.npmjs.org/moment/-/moment-2.30.1.tgz
@@ -22305,7 +22305,7 @@ MIT
22305
22305
 
22306
22306
  Authors: ljharb@gmail.com
22307
22307
  Package Manager: NPM
22308
- Project URL: https://www.npmjs.com/package/call-bind
22308
+ Project URL: https://github.com/ljharb/call-bind#readme
22309
22309
  Package Download URL: https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz
22310
22310
  Dependency Path: @formatjs/cli-lib > @formatjs/ts-transformer > @types/json-stable-stringify > json-stable-stringify > call-bind > @formatjs/cli-lib > @formatjs/ts-transformer > json-stable-stringify > call-bind > @formatjs/cli-lib > @types/json-stable-stringify > json-stable-stringify > call-bind > @formatjs/cli-lib > json-stable-stringify > call-bind > json-stable-stringify > call-bind
22311
22311
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -64353,4 +64353,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
64353
64353
  --------------------------------------------------------------------------------
64354
64354
  --------------------------------------------------------------------------------
64355
64355
 
64356
- Report Generated by FOSSA on 2026-9-14
64356
+ Report Generated by FOSSA on 2026-9-15
@@ -1,4 +1,4 @@
1
- export declare const LIB_VERSION = "11.57.0-alpha.3";
1
+ export declare const LIB_VERSION = "11.57.0-alpha.5";
2
2
  export declare const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
3
3
  export declare const LIB_NAME = "@gooddata/sdk-ui-dashboard";
4
4
  //# sourceMappingURL=__version.d.ts.map
package/esm/__version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2021 GoodData Corporation
2
2
  // DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
3
- export const LIB_VERSION = "11.57.0-alpha.3";
3
+ export const LIB_VERSION = "11.57.0-alpha.5";
4
4
  export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
5
5
  export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
@@ -15,7 +15,7 @@ export function useChangeAnalysis() {
15
15
  const definition = state.definition;
16
16
  const attributes = useMemo(() => {
17
17
  return state.selectedAttributes;
18
- // eslint-disable-next-line react-hooks/exhaustive-deps
18
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
19
19
  }, [state.selectedUpdated]);
20
20
  const filters = useRelevantFilters();
21
21
  const measureValueFilters = state.measureValueFilters;
@@ -29,11 +29,11 @@ export const useDashboardAsyncRender = (id) => {
29
29
  const resolveDashboardAsyncRender = useDispatchDashboardCommand(resolveAsyncRender);
30
30
  const onRequestAsyncRender = useCallback(() => {
31
31
  requestDashboardAsyncRender(id);
32
- // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
33
33
  }, [id]);
34
34
  const onResolveAsyncRender = useCallback(() => {
35
35
  resolveDashboardAsyncRender(id);
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
36
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
37
37
  }, [id]);
38
38
  return {
39
39
  onRequestAsyncRender,
@@ -54,6 +54,6 @@ export const useDashboardCommand = (commandCreator, eventHandlers, onBeforeRun)
54
54
  }
55
55
  onBeforeRun?.(command);
56
56
  dispatch(command);
57
- // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
58
58
  }, []);
59
59
  };
@@ -67,7 +67,7 @@ export const useDashboardQueryProcessing = ({ queryCreator, onSuccess, onError,
67
67
  }
68
68
  });
69
69
  },
70
- // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
71
71
  [queryCreator, onSuccess, onError, onRejected, onBeforeRun]);
72
72
  // cancel any "in-flight" queries once the parent component is unmounting to prevent react warnings
73
73
  // about updating unmounted components
@@ -28,6 +28,6 @@ export const useDispatchDashboardCommand = (commandCreator) => {
28
28
  const command = commandCreator(...args);
29
29
  dispatch(command);
30
30
  },
31
- // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
32
32
  [commandCreator]);
33
33
  };
@@ -80,7 +80,7 @@ export const useInitializeDashboardStore = (props) => {
80
80
  dashboardStore.store.dispatch(configActions.setIsAiMode(!!props.config?.isAiMode));
81
81
  }
82
82
  }, [dashboardStore, props.config?.isAiMode]);
83
- // eslint-disable-next-line react-hooks/exhaustive-deps
83
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
84
84
  useEffect(() => {
85
85
  if (!shallowEqualObjects(previousInitProps, currentInitProps) || !dashboardStore) {
86
86
  if (dashboardStore) {
@@ -63,11 +63,11 @@ function useWidgetFiltersImpl(widget, insight) {
63
63
  runFiltersQuery(widget.ref, insight);
64
64
  }
65
65
  },
66
- // eslint-disable-next-line react-hooks/exhaustive-deps
66
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
67
67
  [
68
- // eslint-disable-next-line react-hooks/exhaustive-deps
68
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
69
69
  safeSerializeObjRef(widget?.ref),
70
- // eslint-disable-next-line react-hooks/exhaustive-deps
70
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
71
71
  fullFiltersDigest(nonIgnoredFilters),
72
72
  insight,
73
73
  nonIgnoredFiltersStatus,
@@ -152,13 +152,13 @@ function useNonIgnoredFilters(widget) {
152
152
  // force ignore the insight -> this way we get only the dashboard level filters even for InsightWidgets
153
153
  run(widget.ref, null);
154
154
  }
155
- // eslint-disable-next-line react-hooks/exhaustive-deps
155
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
156
156
  }, [
157
- // eslint-disable-next-line react-hooks/exhaustive-deps
157
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
158
158
  safeSerializeObjRef(widget?.ref),
159
- // eslint-disable-next-line react-hooks/exhaustive-deps
159
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
160
160
  stringify(widget?.ignoreDashboardFilters),
161
- // eslint-disable-next-line react-hooks/exhaustive-deps
161
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
162
162
  filtersDigest(usedFilters, widgetIgnoresDateFilter, isInEditMode),
163
163
  ]);
164
164
  const nonIgnoredFilters = useMemo(() => usedFilters.filter((filter) => {
@@ -110,7 +110,7 @@ export function DefaultAlertingDialogAttribute({ id, disabled, selectedAttribute
110
110
  // Attribute items
111
111
  ...attributeItems,
112
112
  ];
113
- // eslint-disable-next-line react-hooks/exhaustive-deps
113
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
114
114
  }, [
115
115
  availableAttributes,
116
116
  catalogAttributes,
@@ -34,7 +34,7 @@ export function useElementHeightSnapshot(ref, resubscribeKey) {
34
34
  },
35
35
  // resubscribeKey is not read in the body, but must force a resubscribe once the ref
36
36
  // points to a newly mounted node.
37
- // eslint-disable-next-line react-hooks/exhaustive-deps
37
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
38
38
  [ref, resubscribeKey]);
39
39
  const getSnapshot = useCallback(() => lastMeasuredHeightRef.current, []);
40
40
  return useSyncExternalStore(subscribe, getSnapshot);
@@ -100,7 +100,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
100
100
  const updatedFilters = applyFilterChange(selectedFilters, filter);
101
101
  onFiltersChange(updatedFilters);
102
102
  },
103
- // eslint-disable-next-line react-hooks/exhaustive-deps
103
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
104
104
  [onFiltersChange, selectedFilters, allAttributes, allDateDatasets, intl]);
105
105
  const handleDeleteFilter = useCallback((filter) => {
106
106
  const filterTitle = getFilterTitle(filter, allAttributes, allDateDatasets, intl);
@@ -110,7 +110,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
110
110
  onFiltersChange(updatedFilters);
111
111
  focusFilterGroup();
112
112
  },
113
- // eslint-disable-next-line react-hooks/exhaustive-deps
113
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
114
114
  [onFiltersChange, focusFilterGroup, selectedFilters, allAttributes, allDateDatasets, intl]);
115
115
  const handleAddFilter = useCallback((catalogItemRef, attributes, dateDatasets) => {
116
116
  const filter = resolveFilterToAdd(catalogItemRef, nonSelectedFilters, attributes, dateDatasets);
@@ -123,7 +123,7 @@ export const useAutomationFilters = ({ availableFilters, selectedFilters, onFilt
123
123
  setTimeout(focusAddFilterButton);
124
124
  }
125
125
  },
126
- // eslint-disable-next-line react-hooks/exhaustive-deps
126
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
127
127
  [
128
128
  nonSelectedFilters,
129
129
  onFiltersChange,
@@ -1,4 +1,4 @@
1
- // (C) 2022-2025 GoodData Corporation
1
+ // (C) 2022-2026 GoodData Corporation
2
2
  import { useEffect, useState } from "react";
3
3
  import { useDragDropManager } from "@evil-internetmann/react-dnd";
4
4
  import { useInterval } from "./useInterval.js";
@@ -64,7 +64,7 @@ export function useDashboardDragScroll(contentRef, stickyHeaderRef, stickyFooter
64
64
  setScrollingDirection(ScrollingDirection.None);
65
65
  });
66
66
  // we want to subscribe only once
67
- // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
68
68
  }, []);
69
69
  useInterval(() => {
70
70
  const scrollingTop = scrollingDirection * SCROLLING_STEP;
@@ -204,7 +204,7 @@ function DefaultDashboardAttributeFilterInner(props) {
204
204
  }, attributes: attributes })) }));
205
205
  }
206
206
  return DropdownActions;
207
- // eslint-disable-next-line react-hooks/exhaustive-deps
207
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
208
208
  }, [
209
209
  isConfigurationOpen,
210
210
  cancelText,
@@ -107,7 +107,7 @@ export function AttributesDropdown({ id, className, bodyClassName, onClose, onOp
107
107
  const insightsMap = useDashboardSelector(selectInsightsMap);
108
108
  const insightWidgets = useDashboardSelector(selectAllInsightWidgets);
109
109
  const shouldDisplayLocationIcon = useMemo(() => isLocationIconEnabled(insightWidgets, insightsMap), [insightWidgets, insightsMap]);
110
- // eslint-disable-next-line react-hooks/exhaustive-deps
110
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
111
111
  const onSearch = useCallback(debounce((query) => {
112
112
  setSearchQuery(query);
113
113
  }, 250), []);
@@ -22,7 +22,7 @@ export function useTitleConfiguration(currentFilter, defaultAttributeFilterTitle
22
22
  }
23
23
  const updatedTitle = title === defaultAttributeFilterTitle ? undefined : title?.trim();
24
24
  changeTitle(currentFilter.attributeFilter.localIdentifier, updatedTitle);
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
25
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
26
26
  }, [title, currentFilter, defaultAttributeFilterTitle, changeTitle]);
27
27
  const onTitleReset = useCallback(() => {
28
28
  setTitle(undefined);
@@ -19,7 +19,7 @@ export function DateAttributeListItem({ item: { item, isDisabled, title }, depen
19
19
  return cx("gd-list-item date-filter__limit__popup__item", `s-${simplifyText(title ?? "unknown")}`, {
20
20
  "is-disabled": isDisabled,
21
21
  });
22
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
23
23
  }, [item]);
24
24
  const dataSet = isDashboardDependentDateFilter(item) ? item.dataSet : undefined;
25
25
  const dependentDateFilterTitle = useDependentDateFilterTitle(dataSet, dependentDateFilters);
@@ -189,7 +189,7 @@ export const useResetFiltersButton = () => {
189
189
  filterContextStateReset();
190
190
  }
191
191
  addSuccess(messages.filterResetButtonSuccess);
192
- // eslint-disable-next-line react-hooks/exhaustive-deps
192
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
193
193
  }, [
194
194
  canReset,
195
195
  canResetFilters,
@@ -137,7 +137,7 @@ export function useFiltersWithAddedPlaceholder(filters, workingFilters) {
137
137
  }
138
138
  filterObjects.splice(addedAttributeFilter.filterIndex, 0, addedAttributeFilter);
139
139
  return filterObjects;
140
- // eslint-disable-next-line react-hooks/exhaustive-deps
140
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
141
141
  }, [addedAttributeFilter, draggableFilters, selectedDisplayForm]);
142
142
  // selects AF, DF with dimension, or MVF
143
143
  const selectDraggableFilter = useCallback(function (ref, selectionType) {
@@ -20,7 +20,7 @@ export function DashboardLayoutWidgetRenderer({ item, className, contentRef, isR
20
20
  computedStyle.overflowY = "auto";
21
21
  }
22
22
  return computedStyle;
23
- // eslint-disable-next-line react-hooks/exhaustive-deps
23
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
24
24
  }, [minHeight, height, allowOverflow, heightAsRatio, isResizedByLayoutSizingStrategy]);
25
25
  return (_jsx("div", { ref: contentRef, className: cx("gd-fluidlayout-column-container", className, {
26
26
  "custom-height": !!gridHeight,
@@ -29,7 +29,7 @@ export function DragLayerComponent() {
29
29
  const { itemType, isDragging } = dragLayerProperties;
30
30
  const getDragLayerPosition = useCallback(() => {
31
31
  return dragLayerRef.current?.getBoundingClientRect() ?? emptyDOMRect;
32
- // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
33
33
  }, [dragLayerRef.current]);
34
34
  const isResizing = itemType === "internal-height-resizer" || itemType === "internal-width-resizer";
35
35
  const { scrollCorrection } = useScrollCorrection(getDragLayerPosition, isDragging && isResizing);
@@ -63,7 +63,7 @@ export function HeightResizerHotspot({ section, items, getLayoutDimensions }) {
63
63
  if (isDragging) {
64
64
  resizeStart("height", widgetIdentifiers, isItemNested);
65
65
  }
66
- // eslint-disable-next-line react-hooks/exhaustive-deps -- we want to run this only when isDragging changes
66
+ // oxlint-disable-next-line react-hooks/exhaustive-deps -- we want to run this only when isDragging changes
67
67
  }, [isDragging]);
68
68
  const areWidgetsResizing = resizeDirection !== "none";
69
69
  const isColumnResizing = resizeDirection === "width";
@@ -134,7 +134,7 @@ export function InsightList({ height, width = LIST_WIDTH, searchAutofocus, rende
134
134
  e.preventDefault();
135
135
  e.stopPropagation();
136
136
  eventDispatch(createInsightRequested());
137
- // eslint-disable-next-line react-hooks/exhaustive-deps
137
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
138
138
  }, []);
139
139
  const TABS_AND_SEARCHFIELD_HEIGHT = 70;
140
140
  const SEARCHFIELD_HEIGHT = 47;
@@ -32,7 +32,7 @@ export const useSaveAs = (props) => {
32
32
  const handleSaveAs = useCallback((title, switchToDashboard = false, useOriginalFilterContext = true) => {
33
33
  saveAsCommandProcessing.run(title, switchToDashboard, useOriginalFilterContext);
34
34
  },
35
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
36
36
  []);
37
37
  return {
38
38
  locale,
@@ -106,14 +106,14 @@ export function useDefaultMenuItems() {
106
106
  filterContextTitle: null,
107
107
  filterContextText: intl.formatMessage({ id: "options.menu.export.dialog.includeExportInfo" }),
108
108
  });
109
- // eslint-disable-next-line react-hooks/exhaustive-deps
109
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
110
110
  }, [
111
111
  isNewDashboard,
112
112
  openDialog,
113
113
  intl,
114
- // eslint-disable-next-line react-hooks/exhaustive-deps
114
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
115
115
  settings?.["cellMergedByDefault"],
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
116
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
117
117
  settings?.["activeFiltersByDefault"],
118
118
  closeDialog,
119
119
  exportToTabular,
@@ -377,7 +377,7 @@ export function useDefaultMenuItems() {
377
377
  },
378
378
  ],
379
379
  ]);
380
- // eslint-disable-next-line react-hooks/exhaustive-deps
380
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
381
381
  }, [
382
382
  isDensitySettingEnabled,
383
383
  openDensityDialog,
@@ -107,15 +107,15 @@ export function useAttributeFilterConfigurationHandling(widget, displayFormRef,
107
107
  ignore(ref, displayFormRef);
108
108
  }
109
109
  },
110
- // eslint-disable-next-line react-hooks/exhaustive-deps
110
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
111
111
  [
112
- // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
113
113
  isInsightWidget(widget),
114
- // eslint-disable-next-line react-hooks/exhaustive-deps
114
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
115
115
  isRichTextWidget(widget),
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
116
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
117
117
  safeSerializeObjRef(displayFormRef),
118
- // eslint-disable-next-line react-hooks/exhaustive-deps
118
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
119
119
  safeSerializeObjRef(ref),
120
120
  ignoreInsightFilter,
121
121
  ignoreKpiFilter,
@@ -109,13 +109,13 @@ export function useDateFilterConfigurationHandling(widget, relatedDateDatasets,
109
109
  : (relatedDateDatasets?.at(0)?.dataSet.ref ?? null);
110
110
  enable(ref, preselectedRef ?? "default");
111
111
  },
112
- // eslint-disable-next-line react-hooks/exhaustive-deps
112
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
113
113
  [
114
- // eslint-disable-next-line react-hooks/exhaustive-deps
114
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
115
115
  isInsightWidget(widget),
116
- // eslint-disable-next-line react-hooks/exhaustive-deps
116
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
117
117
  isRichTextWidget(widget),
118
- // eslint-disable-next-line react-hooks/exhaustive-deps
118
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
119
119
  safeSerializeObjRef(ref),
120
120
  enableInsightDateFilter,
121
121
  disableInsightDateFilter,
@@ -211,7 +211,7 @@ export function useDateFilterConfigurationHandling(widget, relatedDateDatasets,
211
211
  enableKpiDateFilter(ref, idRef(id, "dataSet"));
212
212
  }
213
213
  },
214
- // eslint-disable-next-line react-hooks/exhaustive-deps
214
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
215
215
  [isInsightWidget(widget), isRichTextWidget(widget), safeSerializeObjRef(ref)]);
216
216
  return {
217
217
  status,
@@ -32,7 +32,7 @@ export function useIsSelectedDatasetHidden(selectedDateDatasetRef) {
32
32
  return false;
33
33
  }
34
34
  return !visibleDateDatasets.some((ds) => areObjRefsEqual(selectedDateDatasetRef, ds.dataSet.ref));
35
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
36
36
  }, [safeSerializeObjRef(selectedDateDatasetRef), visibleDateDatasets]);
37
37
  return {
38
38
  selectedDateDatasetHiddenByObjectAvailability,
@@ -72,15 +72,15 @@ export function useMeasureValueFilterConfigurationHandling(widget, measureRef, o
72
72
  ignore(ref, measureRef);
73
73
  }
74
74
  },
75
- // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
76
76
  [
77
- // eslint-disable-next-line react-hooks/exhaustive-deps
77
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
78
78
  isInsightWidget(widget),
79
- // eslint-disable-next-line react-hooks/exhaustive-deps
79
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
80
80
  isRichTextWidget(widget),
81
- // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
82
82
  safeSerializeObjRef(measureRef),
83
- // eslint-disable-next-line react-hooks/exhaustive-deps
83
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
84
84
  safeSerializeObjRef(ref),
85
85
  ignoreInsightFilter,
86
86
  ignoreRichTextFilter,
@@ -78,7 +78,7 @@ export function useCustomWidgetInsightDataView({ widget, insight, enableExecutio
78
78
  const insightWithAddedFilters = useMemo(() => effectiveInsightTask.result
79
79
  ? insightSetFilters(effectiveInsightTask.result, filterQueryTask.result)
80
80
  : undefined,
81
- // eslint-disable-next-line react-hooks/exhaustive-deps
81
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
82
82
  [
83
83
  effectiveInsightTask.result,
84
84
  /**
@@ -86,14 +86,14 @@ export function useCustomWidgetInsightDataView({ widget, insight, enableExecutio
86
86
  * and expensive re-renders down the line. The stringification is worth it as the filters are usually
87
87
  * pretty small thus saving more time than it is taking.
88
88
  */
89
- // eslint-disable-next-line react-hooks/exhaustive-deps
89
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
90
90
  stringify(filterQueryTask.result),
91
91
  ]);
92
92
  const insightExecution = useMemo(() => {
93
93
  return insightWithAddedFilters
94
94
  ? backend.workspace(workspace).execution().forInsight(insightWithAddedFilters)
95
95
  : undefined;
96
- // eslint-disable-next-line react-hooks/exhaustive-deps
96
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
97
97
  }, [backend, workspace, insightWithAddedFilters, widget]);
98
98
  const dataViewTask = useExecutionDataView({
99
99
  execution: insightExecution,
@@ -48,6 +48,6 @@ export const useExportHandler = () => {
48
48
  }
49
49
  addError(messages.messagesExportResultError);
50
50
  }
51
- // eslint-disable-next-line react-hooks/exhaustive-deps
51
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
52
52
  }, []);
53
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useImageExportHandler.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/common/useImageExportHandler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAMrF,KAAK,kBAAkB,GAAG,CACtB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,EACzD,KAAK,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,qBAAqB,QAAO,kBA8BxC,CAAC"}
1
+ {"version":3,"file":"useImageExportHandler.d.ts","sourceRoot":"","sources":["../../../../src/presentation/widget/common/useImageExportHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAMrF,KAAK,kBAAkB,GAAG,CACtB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,EACzD,KAAK,EAAE,MAAM,KACZ,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,qBAAqB,QAAO,kBA8BxC,CAAC"}
@@ -1,4 +1,4 @@
1
- // (C) 2020-2025 GoodData Corporation
1
+ // (C) 2020-2026 GoodData Corporation
2
2
  import { useCallback, useRef } from "react";
3
3
  import { isProtectedDataError } from "@gooddata/sdk-backend-spi";
4
4
  import { useToastMessage } from "@gooddata/sdk-ui-kit";
@@ -30,6 +30,6 @@ export const useImageExportHandler = () => {
30
30
  addError(messages.messagesExportResultError);
31
31
  }
32
32
  }
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
34
34
  }, []);
35
35
  };
@@ -51,16 +51,16 @@ export const useInsightExport = (config) => {
51
51
  ? "pdf"
52
52
  : "csv",
53
53
  }, uuid())).then((result) => result.payload.result),
54
- // eslint-disable-next-line react-hooks/exhaustive-deps
54
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
55
55
  [widgetRef, insight]);
56
56
  const exportRawFunction = useCallback((title, options) => dispatchAndWaitFor(dispatch, exportRawInsightWidget(widgetRef, widget, insight, title, options, uuid())).then((result) => result.payload.result),
57
- // eslint-disable-next-line react-hooks/exhaustive-deps
57
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
58
58
  [widgetRef, widget, insight]);
59
59
  const exportSlidesFunction = useCallback((title, exportType, templateId) => dispatchAndWaitFor(dispatch, exportSlidesInsightWidget(widgetRef, title, exportType, uuid(), templateId)).then((result) => result.payload.result),
60
- // eslint-disable-next-line react-hooks/exhaustive-deps
60
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
61
61
  [widgetRef]);
62
62
  const exportImageFunction = useCallback((title) => dispatchAndWaitFor(dispatch, exportImageInsightWidget(widgetRef, title, uuid())).then((result) => result.payload.result),
63
- // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
64
64
  [widgetRef]);
65
65
  const settings = useDashboardSelector(selectSettings);
66
66
  const isInsightExportable = insight
@@ -112,7 +112,7 @@ export const useInsightExport = (config) => {
112
112
  resolveTemplateAndExport((templateId) => {
113
113
  void exportSlidesHandler(exportSlidesFunction, title, "pptx", templateId).finally(() => setIsExporting(false));
114
114
  }, () => setIsExporting(false));
115
- // eslint-disable-next-line react-hooks/exhaustive-deps
115
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
116
116
  }, [exportSlidesFunction, title, resolveTemplateAndExport]);
117
117
  const onExportPdfPresentation = useCallback(() => {
118
118
  // if this bombs there is an issue with the logic enabling the buttons
@@ -121,14 +121,14 @@ export const useInsightExport = (config) => {
121
121
  resolveTemplateAndExport((templateId) => {
122
122
  void exportSlidesHandler(exportSlidesFunction, title, "pdf", templateId).finally(() => setIsExporting(false));
123
123
  }, () => setIsExporting(false));
124
- // eslint-disable-next-line react-hooks/exhaustive-deps
124
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
125
125
  }, [exportSlidesFunction, title, resolveTemplateAndExport]);
126
126
  const onExportPngImage = useCallback(() => {
127
127
  setIsExporting(true);
128
128
  // if this bombs there is an issue with the logic enabling the buttons
129
129
  invariant(exportImageFunction);
130
130
  void exportImageHandler(exportImageFunction, title).finally(() => setIsExporting(false));
131
- // eslint-disable-next-line react-hooks/exhaustive-deps
131
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
132
132
  }, [exportImageFunction, title]);
133
133
  const { exportToTabular } = useExportToTabular(() => setIsExporting(false));
134
134
  const onExportPdfTabular = useCallback(() => {
@@ -168,7 +168,7 @@ export const useInsightExport = (config) => {
168
168
  isShowInfoPageVisible: false,
169
169
  });
170
170
  }
171
- // eslint-disable-next-line react-hooks/exhaustive-deps
171
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
172
172
  }, [
173
173
  setIsExporting,
174
174
  title,
@@ -217,14 +217,14 @@ export const useInsightExport = (config) => {
217
217
  filterContextVisible: false,
218
218
  });
219
219
  }
220
- // eslint-disable-next-line react-hooks/exhaustive-deps
220
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
221
221
  }, [
222
222
  dashboardTabularExportEnabled,
223
223
  openXlsxDialog,
224
224
  intl,
225
- // eslint-disable-next-line react-hooks/exhaustive-deps
225
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
226
226
  settings?.["cellMergedByDefault"],
227
- // eslint-disable-next-line react-hooks/exhaustive-deps
227
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
228
228
  settings?.["activeFiltersByDefault"],
229
229
  closeXlsxDialog,
230
230
  exportToTabular,
@@ -19,7 +19,7 @@ export function useInsightWidgetDataView({ insightWidget, onCancel, onError, onL
19
19
  const insight = useDashboardSelector(selectInsightByRef(insightWidget?.insight));
20
20
  const widgetFiltersPromise = useWidgetFilters(insightWidget);
21
21
  const insightWithAddedFilters = useMemo(() => insightSetFilters(insight, widgetFiltersPromise.result),
22
- // eslint-disable-next-line react-hooks/exhaustive-deps
22
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
23
23
  [
24
24
  insight,
25
25
  /**
@@ -27,7 +27,7 @@ export function useInsightWidgetDataView({ insightWidget, onCancel, onError, onL
27
27
  * and expensive re-renders down the line. The stringification is worth it as the filters are usually
28
28
  * pretty small thus saving more time than it is taking.
29
29
  */
30
- // eslint-disable-next-line react-hooks/exhaustive-deps
30
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
31
31
  stringify(widgetFiltersPromise.result),
32
32
  ]);
33
33
  const insightExecution = useMemo(() => {
@@ -33,6 +33,6 @@ export const useRawExportHandler = () => {
33
33
  addError(messages.messagesExportResultError);
34
34
  }
35
35
  }
36
- // eslint-disable-next-line react-hooks/exhaustive-deps
36
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
37
37
  }, []);
38
38
  };
@@ -30,6 +30,6 @@ export const useSlidesExportHandler = () => {
30
30
  addError(messages.messagesExportResultError);
31
31
  }
32
32
  }
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
34
34
  }, []);
35
35
  };
@@ -86,7 +86,7 @@ export const useWidgetHighlighting = (widget) => {
86
86
  }
87
87
  }
88
88
  // We intentionally exclude keepHighlight
89
- // eslint-disable-next-line react-hooks/exhaustive-deps
89
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
90
90
  }, [isHighlighted, automationId, visualizationId, widgetId, retries]);
91
91
  // Remove highlight on outside click
92
92
  const removeHighlight = useCallback(() => setKeepHighlight(false), []);