@gooddata/sdk-ui-dashboard 11.36.0-alpha.6 → 11.36.0-alpha.7
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/NOTICE +14 -50
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/model/store/config/configSelectors.d.ts +0 -6
- package/esm/model/store/config/configSelectors.js +2 -10
- package/esm/model/store/widgetDrills/widgetDrillSelectors.js +10 -18
- package/esm/presentation/alerting/DefaultAlertingDialog/utils/items.js +5 -2
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdown.js +1 -3
- package/esm/presentation/drill/hooks/useDrillSelectDropdownMenuItems.js +1 -5
- package/esm/presentation/export/DefaultDashboardExportVariables.js +5 -2
- package/esm/presentation/export/hooks/useDashboardRelatedFilters.d.ts +2 -1
- package/esm/presentation/export/hooks/useDashboardRelatedFilters.js +9 -0
- package/esm/presentation/export/types.d.ts +2 -1
- package/esm/presentation/export/types.js +1 -1
- package/esm/presentation/export/useExportData.js +4 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +2 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +2 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +2 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -0
- package/esm/presentation/widget/insight/configuration/InsightDrillConfigPanel/useInsightDrillConfigPanel.js +4 -10
- package/esm/sdk-ui-dashboard.d.ts +3 -9
- package/package.json +20 -20
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-5-
|
|
10
|
+
Date generated: 2026-5-20
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: b6d15371a966d44461e8af8bc123206c32e6cb20
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -232,7 +232,7 @@ Revision ID: e8feca49139df19ea79a50cc6d819cf8eeafeb2e
|
|
|
232
232
|
- @nodelib/fs.walk (1.2.8) [MIT]
|
|
233
233
|
- @oxc-project/runtime (0.115.0) [MIT]
|
|
234
234
|
- @oxc-project/types (0.115.0) [MIT]
|
|
235
|
-
- @playwright/test (1.
|
|
235
|
+
- @playwright/test (1.60.0) [Apache-2.0]
|
|
236
236
|
- @polka/url (1.0.0-next.29) [MIT]
|
|
237
237
|
- @react-aria/interactions (3.25.5) [Apache-2.0]
|
|
238
238
|
- @react-aria/ssr (3.9.10) [Apache-2.0]
|
|
@@ -839,8 +839,8 @@ Revision ID: e8feca49139df19ea79a50cc6d819cf8eeafeb2e
|
|
|
839
839
|
- picomatch (4.0.3) [MIT]
|
|
840
840
|
- pify (4.0.1) [MIT]
|
|
841
841
|
- pkg-dir (4.2.0) [MIT]
|
|
842
|
-
- playwright (1.
|
|
843
|
-
- playwright-core (1.
|
|
842
|
+
- playwright (1.60.0) [Apache-2.0, MIT, ISC, CC-BY-4.0, BSD-3-Clause]
|
|
843
|
+
- playwright-core (1.60.0) [Apache-2.0, MIT, BSD-2-Clause, ISC, BSD-3-Clause]
|
|
844
844
|
- polished (3.7.2) [MIT, OFL-1.1]
|
|
845
845
|
- possible-typed-array-names (1.1.0) [MIT]
|
|
846
846
|
- postcss (8.5.6) [MIT]
|
|
@@ -3619,9 +3619,9 @@ MIT
|
|
|
3619
3619
|
|
|
3620
3620
|
|
|
3621
3621
|
--------------------------------------------------------------------------------
|
|
3622
|
-
Package Title: @playwright/test (1.
|
|
3622
|
+
Package Title: @playwright/test (1.60.0)
|
|
3623
3623
|
|
|
3624
|
-
Package Locator: npm+@playwright/test$1.
|
|
3624
|
+
Package Locator: npm+@playwright/test$1.60.0
|
|
3625
3625
|
|
|
3626
3626
|
Package Depth: Direct
|
|
3627
3627
|
--------------------------------------------------------------------------------
|
|
@@ -10961,9 +10961,9 @@ MIT
|
|
|
10961
10961
|
|
|
10962
10962
|
|
|
10963
10963
|
--------------------------------------------------------------------------------
|
|
10964
|
-
Package Title: playwright (1.
|
|
10964
|
+
Package Title: playwright (1.60.0)
|
|
10965
10965
|
|
|
10966
|
-
Package Locator: npm+playwright$1.
|
|
10966
|
+
Package Locator: npm+playwright$1.60.0
|
|
10967
10967
|
|
|
10968
10968
|
Package Depth: Transitive
|
|
10969
10969
|
--------------------------------------------------------------------------------
|
|
@@ -10973,13 +10973,13 @@ Apache-2.0
|
|
|
10973
10973
|
|
|
10974
10974
|
|
|
10975
10975
|
* Other Licenses *
|
|
10976
|
-
CC-BY-4.0,
|
|
10976
|
+
MIT, ISC, CC-BY-4.0, BSD-3-Clause
|
|
10977
10977
|
|
|
10978
10978
|
|
|
10979
10979
|
--------------------------------------------------------------------------------
|
|
10980
|
-
Package Title: playwright-core (1.
|
|
10980
|
+
Package Title: playwright-core (1.60.0)
|
|
10981
10981
|
|
|
10982
|
-
Package Locator: npm+playwright-core$1.
|
|
10982
|
+
Package Locator: npm+playwright-core$1.60.0
|
|
10983
10983
|
|
|
10984
10984
|
Package Depth: Transitive
|
|
10985
10985
|
--------------------------------------------------------------------------------
|
|
@@ -10989,7 +10989,7 @@ Apache-2.0
|
|
|
10989
10989
|
|
|
10990
10990
|
|
|
10991
10991
|
* Other Licenses *
|
|
10992
|
-
|
|
10992
|
+
MIT, BSD-2-Clause, ISC, BSD-3-Clause
|
|
10993
10993
|
|
|
10994
10994
|
|
|
10995
10995
|
--------------------------------------------------------------------------------
|
|
@@ -30356,14 +30356,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
30356
30356
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
30357
30357
|
|
|
30358
30358
|
|
|
30359
|
-
* IETF *
|
|
30360
|
-
|
|
30361
|
-
This repository relates to activities in the Internet Engineering Task Force (IETF). All material in this repository is considered Contributions to the IETF Standards Process, as defined in the intellectual property policies of IETF currently designated as BCP 78, BCP 79 and the IETF Trust Legal Provisions (TLP) Relating to IETF Documents.
|
|
30362
|
-
|
|
30363
|
-
Any edit, commit, pull request, issue, comment or other change made to this repository constitutes Contributions to the IETF Standards Process (https://www.ietf.org/).
|
|
30364
|
-
|
|
30365
|
-
You agree to comply with all applicable IETF policies and procedures, including, BCP 78, 79, the TLP, and the TLP rules regarding code components (e.g. being subject to a Simplified BSD License) in Contributions.
|
|
30366
|
-
|
|
30367
30359
|
* ISC *
|
|
30368
30360
|
|
|
30369
30361
|
ISC License
|
|
@@ -38157,34 +38149,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
38157
38149
|
SOFTWARE.
|
|
38158
38150
|
|
|
38159
38151
|
|
|
38160
|
-
* mit-addition *
|
|
38161
|
-
|
|
38162
|
-
Permission is hereby granted, free of charge, to any person obtaining a
|
|
38163
|
-
copy of this software and associated documentation files (the
|
|
38164
|
-
"Software"), to deal in the Software without restriction, including
|
|
38165
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
|
38166
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
|
38167
|
-
permit persons to whom the Software is furnished to do so, subject to
|
|
38168
|
-
the following conditions:
|
|
38169
|
-
|
|
38170
|
-
The above copyright notice and this permission notice shall be included
|
|
38171
|
-
in all copies or substantial portions of the Software.
|
|
38172
|
-
|
|
38173
|
-
THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
|
|
38174
|
-
EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
|
|
38175
|
-
WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
38176
|
-
|
|
38177
|
-
IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT
|
|
38178
|
-
OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
|
|
38179
|
-
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
|
|
38180
|
-
THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
|
|
38181
|
-
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
38182
|
-
|
|
38183
|
-
In addition, the following condition applies:
|
|
38184
|
-
|
|
38185
|
-
All redistributions must retain an intact copy of this copyright notice
|
|
38186
|
-
and disclaimer.
|
|
38187
|
-
|
|
38188
38152
|
* public-domain *
|
|
38189
38153
|
|
|
38190
38154
|
No license text available
|
|
@@ -38225,4 +38189,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
38225
38189
|
--------------------------------------------------------------------------------
|
|
38226
38190
|
--------------------------------------------------------------------------------
|
|
38227
38191
|
|
|
38228
|
-
Report Generated by FOSSA on 2026-5-
|
|
38192
|
+
Report Generated by FOSSA on 2026-5-20
|
package/esm/__version.d.ts
CHANGED
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.36.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.36.0-alpha.7";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
package/esm/index.d.ts
CHANGED
|
@@ -100,7 +100,7 @@ export type { SavingState } from "./model/store/saving/savingState.js";
|
|
|
100
100
|
export type { BackendCapabilitiesState } from "./model/store/backendCapabilities/backendCapabilitiesState.js";
|
|
101
101
|
export { selectBackendCapabilities, selectSupportsElementsQueryParentFiltering, selectSupportsElementUris, selectSupportsKpiWidgetCapability, selectSupportsAccessControlCapability, selectSupportsHierarchicalWorkspacesCapability, selectSupportsObjectUris, selectSupportsSettingConnectingAttributes, selectSupportsKeepingDependentFiltersSelection, selectAllowMultipleInteractionsPerAttributeAndMeasure, selectSupportsAttributeHierarchies, selectSupportsSingleSelectDependentFilters, selectSupportsCrossFiltering, selectSupportsMultipleDateFilters, selectSupportsRichTextWidgets, } from "./model/store/backendCapabilities/backendCapabilitiesSelectors.js";
|
|
102
102
|
export type { ConfigState } from "./model/store/config/configState.js";
|
|
103
|
-
export { selectConfig, selectLocale, selectSeparators, selectSettings, selectColorPalette, selectDateFilterConfig, selectObjectAvailabilityConfig, selectIsReadOnly, selectMapboxToken, selectAgGridToken, selectDateFormat, selectIsEmbedded, selectIsExport, selectExportMetadata, selectPlatformEdition, selectDisableDefaultDrills, selectEnableFilterValuesResolutionInDrillEvents, selectEnableKPIDashboardExportPDF, selectDisableKpiDashboardHeadlineUnderline, selectIsWhiteLabeled, selectIsSaveAsNewButtonHidden, selectAllowUnfinishedFeatures, selectAllowCreateInsightRequest, selectIsKPIDashboardDependentFiltersEnabled, selectIsShareButtonHidden, selectWeekStart, selectTimezone, selectEnableUnavailableItemsVisibility, selectEnableKDDependentFilters, selectIsKDDependentFiltersEnabled, selectEnableKDCrossFiltering, selectEnableMultipleDateFilters, selectEnableKDRichText, selectEnableKDAttributeFilterDatesValidation, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectEnableRichTextDescriptions, selectIsDisabledCrossFiltering, selectIsDisableUserFilterReset, selectEnableScheduling, selectEnableParameters, selectEnableFilterViews, selectEnableCustomizedDashboardsWithoutPluginOverlay, selectEnableAlerting, selectEnableAlertAttributes, selectEnableComparisonInAlerting, selectEnableVisualizationSwitcher, selectEnableIgnoreCrossFiltering, selectEnableAutomations, selectEnableCrossFilteringAliasTitles, selectEnableInPlatformNotifications, selectEnableExternalRecipients, selectEnableDrilledTooltip, selectFocusObject, selectEnableDashboardDescriptionDynamicHeight, selectEnableSlideshowExports, selectEnableRichTextDynamicReferences, selectEnableRichTextWidgetFilterConfiguration, selectEnableDashboardSectionHeadersDateDataSet, selectDashboardFiltersApplyMode, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectEnableExecutionCancelling, selectEnableOrchestratedTabularExports, selectEnableDashboardTabularExport, selectEnableDashboardShareLink, selectEnableAlertsEvaluationFrequencySetup, selectEnableDateFilterIdentifiers, selectEnableKDEmptyDateValuesFilter, selectEnableSnapshotExportAccessibility, selectEnableExportToDocumentStorage, selectExternalRecipient, selectEnableDashboardShareDialogLink, selectEnableNewScheduledExport, selectEnableAutomationManagement, selectEnableAutomationEvaluationMode, selectEnableExportToPdfTabular, selectEnableSnapshotExport, selectEnableAccessibilityMode, selectIsAddTabButtonHidden, selectExportResultPollingTimeout, selectEnableAnomalyDetectionAlert,
|
|
103
|
+
export { selectConfig, selectLocale, selectSeparators, selectSettings, selectColorPalette, selectDateFilterConfig, selectObjectAvailabilityConfig, selectIsReadOnly, selectMapboxToken, selectAgGridToken, selectDateFormat, selectIsEmbedded, selectIsExport, selectExportMetadata, selectPlatformEdition, selectDisableDefaultDrills, selectEnableFilterValuesResolutionInDrillEvents, selectEnableKPIDashboardExportPDF, selectDisableKpiDashboardHeadlineUnderline, selectIsWhiteLabeled, selectIsSaveAsNewButtonHidden, selectAllowUnfinishedFeatures, selectAllowCreateInsightRequest, selectIsKPIDashboardDependentFiltersEnabled, selectIsShareButtonHidden, selectWeekStart, selectTimezone, selectEnableUnavailableItemsVisibility, selectEnableKDDependentFilters, selectIsKDDependentFiltersEnabled, selectEnableKDCrossFiltering, selectEnableMultipleDateFilters, selectEnableKDRichText, selectEnableKDAttributeFilterDatesValidation, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectEnableRichTextDescriptions, selectIsDisabledCrossFiltering, selectIsDisableUserFilterReset, selectEnableScheduling, selectEnableParameters, selectEnableFilterViews, selectEnableCustomizedDashboardsWithoutPluginOverlay, selectEnableAlerting, selectEnableAlertAttributes, selectEnableComparisonInAlerting, selectEnableVisualizationSwitcher, selectEnableIgnoreCrossFiltering, selectEnableAutomations, selectEnableCrossFilteringAliasTitles, selectEnableInPlatformNotifications, selectEnableExternalRecipients, selectEnableDrilledTooltip, selectFocusObject, selectEnableDashboardDescriptionDynamicHeight, selectEnableSlideshowExports, selectEnableRichTextDynamicReferences, selectEnableRichTextWidgetFilterConfiguration, selectEnableDashboardSectionHeadersDateDataSet, selectDashboardFiltersApplyMode, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectEnableExecutionCancelling, selectEnableOrchestratedTabularExports, selectEnableDashboardTabularExport, selectEnableDashboardShareLink, selectEnableAlertsEvaluationFrequencySetup, selectEnableDateFilterIdentifiers, selectEnableKDEmptyDateValuesFilter, selectEnableSnapshotExportAccessibility, selectEnableExportToDocumentStorage, selectExternalRecipient, selectEnableDashboardShareDialogLink, selectEnableNewScheduledExport, selectEnableAutomationManagement, selectEnableAutomationEvaluationMode, selectEnableExportToPdfTabular, selectEnableSnapshotExport, selectEnableAccessibilityMode, selectIsAddTabButtonHidden, selectExportResultPollingTimeout, selectEnableAnomalyDetectionAlert, selectEnableFiscalCalendars, selectActiveCalendars, selectEnableDashboardFilterGroups, selectEnableDashboardDensitySetting, selectEnableFilterControlInDrillingConfiguration, } from "./model/store/config/configSelectors.js";
|
|
104
104
|
export type { IEntitlementsState } from "./model/store/entitlements/entitlementsState.js";
|
|
105
105
|
export { selectEntitlementMaxAutomationRecipients, selectEntitlementMaxAutomations, selectEntitlementMinimumRecurrenceMinutes, selectEntitlementUnlimitedAutomations, selectEntitlementUnlimitedAutomationRecipients, selectMaxAutomationRecipients, } from "./model/store/entitlements/entitlementsSelectors.js";
|
|
106
106
|
export type { PermissionsState } from "./model/store/permissions/permissionsState.js";
|
package/esm/index.js
CHANGED
|
@@ -79,7 +79,7 @@ export { queryAvailableDatasetsForItems, } from "./model/queries/availableDatase
|
|
|
79
79
|
export { selectDashboardLoading, selectIsDashboardLoading } from "./model/store/loading/loadingSelectors.js";
|
|
80
80
|
export { selectDashboardSaving, selectIsDashboardSaving } from "./model/store/saving/savingSelectors.js";
|
|
81
81
|
export { selectBackendCapabilities, selectSupportsElementsQueryParentFiltering, selectSupportsElementUris, selectSupportsKpiWidgetCapability, selectSupportsAccessControlCapability, selectSupportsHierarchicalWorkspacesCapability, selectSupportsObjectUris, selectSupportsSettingConnectingAttributes, selectSupportsKeepingDependentFiltersSelection, selectAllowMultipleInteractionsPerAttributeAndMeasure, selectSupportsAttributeHierarchies, selectSupportsSingleSelectDependentFilters, selectSupportsCrossFiltering, selectSupportsMultipleDateFilters, selectSupportsRichTextWidgets, } from "./model/store/backendCapabilities/backendCapabilitiesSelectors.js";
|
|
82
|
-
export { selectConfig, selectLocale, selectSeparators, selectSettings, selectColorPalette, selectDateFilterConfig, selectObjectAvailabilityConfig, selectIsReadOnly, selectMapboxToken, selectAgGridToken, selectDateFormat, selectIsEmbedded, selectIsExport, selectExportMetadata, selectPlatformEdition, selectDisableDefaultDrills, selectEnableFilterValuesResolutionInDrillEvents, selectEnableKPIDashboardExportPDF, selectDisableKpiDashboardHeadlineUnderline, selectIsWhiteLabeled, selectIsSaveAsNewButtonHidden, selectAllowUnfinishedFeatures, selectAllowCreateInsightRequest, selectIsKPIDashboardDependentFiltersEnabled, selectIsShareButtonHidden, selectWeekStart, selectTimezone, selectEnableUnavailableItemsVisibility, selectEnableKDDependentFilters, selectIsKDDependentFiltersEnabled, selectEnableKDCrossFiltering, selectEnableMultipleDateFilters, selectEnableKDRichText, selectEnableKDAttributeFilterDatesValidation, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectEnableRichTextDescriptions, selectIsDisabledCrossFiltering, selectIsDisableUserFilterReset, selectEnableScheduling, selectEnableParameters, selectEnableFilterViews, selectEnableCustomizedDashboardsWithoutPluginOverlay, selectEnableAlerting, selectEnableAlertAttributes, selectEnableComparisonInAlerting, selectEnableVisualizationSwitcher, selectEnableIgnoreCrossFiltering, selectEnableAutomations, selectEnableCrossFilteringAliasTitles, selectEnableInPlatformNotifications, selectEnableExternalRecipients, selectEnableDrilledTooltip, selectFocusObject, selectEnableDashboardDescriptionDynamicHeight, selectEnableSlideshowExports, selectEnableRichTextDynamicReferences, selectEnableRichTextWidgetFilterConfiguration, selectEnableDashboardSectionHeadersDateDataSet, selectDashboardFiltersApplyMode, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectEnableExecutionCancelling, selectEnableOrchestratedTabularExports, selectEnableDashboardTabularExport, selectEnableDashboardShareLink, selectEnableAlertsEvaluationFrequencySetup, selectEnableDateFilterIdentifiers, selectEnableKDEmptyDateValuesFilter, selectEnableSnapshotExportAccessibility, selectEnableExportToDocumentStorage, selectExternalRecipient, selectEnableDashboardShareDialogLink, selectEnableNewScheduledExport, selectEnableAutomationManagement, selectEnableAutomationEvaluationMode, selectEnableExportToPdfTabular, selectEnableSnapshotExport, selectEnableAccessibilityMode, selectIsAddTabButtonHidden, selectExportResultPollingTimeout, selectEnableAnomalyDetectionAlert,
|
|
82
|
+
export { selectConfig, selectLocale, selectSeparators, selectSettings, selectColorPalette, selectDateFilterConfig, selectObjectAvailabilityConfig, selectIsReadOnly, selectMapboxToken, selectAgGridToken, selectDateFormat, selectIsEmbedded, selectIsExport, selectExportMetadata, selectPlatformEdition, selectDisableDefaultDrills, selectEnableFilterValuesResolutionInDrillEvents, selectEnableKPIDashboardExportPDF, selectDisableKpiDashboardHeadlineUnderline, selectIsWhiteLabeled, selectIsSaveAsNewButtonHidden, selectAllowUnfinishedFeatures, selectAllowCreateInsightRequest, selectIsKPIDashboardDependentFiltersEnabled, selectIsShareButtonHidden, selectWeekStart, selectTimezone, selectEnableUnavailableItemsVisibility, selectEnableKDDependentFilters, selectIsKDDependentFiltersEnabled, selectEnableKDCrossFiltering, selectEnableMultipleDateFilters, selectEnableKDRichText, selectEnableKDAttributeFilterDatesValidation, selectEnableImmediateAttributeFilterDisplayAsLabelMigration, selectEnableRichTextDescriptions, selectIsDisabledCrossFiltering, selectIsDisableUserFilterReset, selectEnableScheduling, selectEnableParameters, selectEnableFilterViews, selectEnableCustomizedDashboardsWithoutPluginOverlay, selectEnableAlerting, selectEnableAlertAttributes, selectEnableComparisonInAlerting, selectEnableVisualizationSwitcher, selectEnableIgnoreCrossFiltering, selectEnableAutomations, selectEnableCrossFilteringAliasTitles, selectEnableInPlatformNotifications, selectEnableExternalRecipients, selectEnableDrilledTooltip, selectFocusObject, selectEnableDashboardDescriptionDynamicHeight, selectEnableSlideshowExports, selectEnableRichTextDynamicReferences, selectEnableRichTextWidgetFilterConfiguration, selectEnableDashboardSectionHeadersDateDataSet, selectDashboardFiltersApplyMode, selectIsApplyFiltersAllAtOnceEnabledAndSet, selectEnableExecutionCancelling, selectEnableOrchestratedTabularExports, selectEnableDashboardTabularExport, selectEnableDashboardShareLink, selectEnableAlertsEvaluationFrequencySetup, selectEnableDateFilterIdentifiers, selectEnableKDEmptyDateValuesFilter, selectEnableSnapshotExportAccessibility, selectEnableExportToDocumentStorage, selectExternalRecipient, selectEnableDashboardShareDialogLink, selectEnableNewScheduledExport, selectEnableAutomationManagement, selectEnableAutomationEvaluationMode, selectEnableExportToPdfTabular, selectEnableSnapshotExport, selectEnableAccessibilityMode, selectIsAddTabButtonHidden, selectExportResultPollingTimeout, selectEnableAnomalyDetectionAlert, selectEnableFiscalCalendars, selectActiveCalendars, selectEnableDashboardFilterGroups, selectEnableDashboardDensitySetting, selectEnableFilterControlInDrillingConfiguration, } from "./model/store/config/configSelectors.js";
|
|
83
83
|
export { selectEntitlementMaxAutomationRecipients, selectEntitlementMaxAutomations, selectEntitlementMinimumRecurrenceMinutes, selectEntitlementUnlimitedAutomations, selectEntitlementUnlimitedAutomationRecipients, selectMaxAutomationRecipients, } from "./model/store/entitlements/entitlementsSelectors.js";
|
|
84
84
|
export { selectPermissions, selectCanListUsersInWorkspace, selectCanManageWorkspace, selectCanExportReport, selectCanExportTabular, selectCanExportPdf, selectCanCreateAnalyticalDashboard, selectCanManageACL, selectCanManageAnalyticalDashboard, selectCanCreateScheduledMail, selectCanInitData, selectCanUploadNonProductionCSV, selectCanExecuteRaw, selectCanCreateVisualization, selectCanManageMetric, selectCanManageDomain, selectCanInviteUserToWorkspace, selectCanRefreshData, selectCanManageScheduledMail, selectCanManageAttributeHierarchy, selectCanCreateFilterView, selectCanCreateAutomation, selectCanUseAiAssistant, } from "./model/store/permissions/permissionsSelectors.js";
|
|
85
85
|
export { selectCanViewDashboardPermission, selectCanShareDashboardPermission, selectCanShareLockedDashboardPermission, selectCanEditDashboardPermission, selectCanEditLockedDashboardPermission, selectDashboardPermissions, } from "./model/store/dashboardPermissions/dashboardPermissionsSelectors.js";
|
|
@@ -557,12 +557,6 @@ export declare const selectEnableSnapshotExport: DashboardSelector<boolean>;
|
|
|
557
557
|
* @internal
|
|
558
558
|
*/
|
|
559
559
|
export declare const selectEnableAccessibilityMode: DashboardSelector<boolean>;
|
|
560
|
-
/**
|
|
561
|
-
* Returns whether implicit drill to url feature is enabled.
|
|
562
|
-
*
|
|
563
|
-
* @alpha
|
|
564
|
-
*/
|
|
565
|
-
export declare const selectEnableImplicitDrillToUrl: DashboardSelector<boolean>;
|
|
566
560
|
/**
|
|
567
561
|
* Returns the timeout to use when polling for export results (in milliseconds).
|
|
568
562
|
*
|
|
@@ -750,14 +750,6 @@ export const selectEnableSnapshotExport = createSelector(selectConfig, (state) =
|
|
|
750
750
|
export const selectEnableAccessibilityMode = createSelector(selectConfig, (state) => {
|
|
751
751
|
return Boolean(state.settings?.enableAccessibilityMode);
|
|
752
752
|
});
|
|
753
|
-
/**
|
|
754
|
-
* Returns whether implicit drill to url feature is enabled.
|
|
755
|
-
*
|
|
756
|
-
* @alpha
|
|
757
|
-
*/
|
|
758
|
-
export const selectEnableImplicitDrillToUrl = createSelector(selectConfig, (state) => {
|
|
759
|
-
return state.settings?.enableImplicitDrillToUrl ?? true;
|
|
760
|
-
});
|
|
761
753
|
/**
|
|
762
754
|
* Returns the timeout to use when polling for export results (in milliseconds).
|
|
763
755
|
*
|
|
@@ -776,8 +768,8 @@ export const selectExportResultPollingTimeout = createSelector(selectConfig, (st
|
|
|
776
768
|
*
|
|
777
769
|
* @alpha
|
|
778
770
|
*/
|
|
779
|
-
export const selectEnableDrillToUrlByDefault = createSelector(selectConfig,
|
|
780
|
-
return
|
|
771
|
+
export const selectEnableDrillToUrlByDefault = createSelector(selectConfig, (state) => {
|
|
772
|
+
return state.settings?.enableDrillToUrlByDefault ?? false;
|
|
781
773
|
});
|
|
782
774
|
/**
|
|
783
775
|
* Returns whether fiscal calendars feature flag is enabled.
|
|
@@ -10,7 +10,7 @@ import { createMemoizedSelector } from "../_infra/selectors.js";
|
|
|
10
10
|
import { selectAccessibleDashboardsLoaded, selectAccessibleDashboardsMap, } from "../accessibleDashboards/accessibleDashboardsSelectors.js";
|
|
11
11
|
import { selectBackendCapabilities, selectSupportsAttributeHierarchies, selectSupportsCrossFiltering, } from "../backendCapabilities/backendCapabilitiesSelectors.js";
|
|
12
12
|
import { selectAllCatalogAttributeHierarchies, selectAllCatalogAttributesMap, selectAllCatalogDisplayFormsMap, selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectCatalogDateAttributes, selectCatalogIsLoaded, } from "../catalog/catalogSelectors.js";
|
|
13
|
-
import { selectDisableDefaultDrills, selectEnableDrillToUrlByDefault,
|
|
13
|
+
import { selectDisableDefaultDrills, selectEnableDrillToUrlByDefault, selectEnableKDCrossFiltering, selectEnableKda, selectIsDisabledCrossFiltering, selectIsDisabledKda, selectIsEmbedded, } from "../config/configSelectors.js";
|
|
14
14
|
import { selectDrillableItems } from "../drill/drillSelectors.js";
|
|
15
15
|
import { selectDrillTargetsByWidgetRef } from "../drillTargets/drillTargetsSelectors.js";
|
|
16
16
|
import { selectInsightByWidgetRef, selectInsightsMap } from "../insights/insightsSelectors.js";
|
|
@@ -126,14 +126,11 @@ function getDrillDownDefinitionsWithPredicates(availableDrillAttributes, attribu
|
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
128
|
}
|
|
129
|
-
function getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithDisplayFormLink, ignoredDrillToUrlAttributes
|
|
129
|
+
function getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithDisplayFormLink, ignoredDrillToUrlAttributes) {
|
|
130
130
|
const matchingAvailableDrillAttributes = availableDrillAttributes.filter((candidate) => {
|
|
131
131
|
return attributesWithDisplayFormLink.some((attr) => areObjRefsEqual(attr.attribute.ref, candidate.attribute.attributeHeader.formOf.ref));
|
|
132
132
|
});
|
|
133
133
|
const filterIgnoredDrillToUrlAttributes = (targetAttribute) => {
|
|
134
|
-
if (!enableImplicitDrillToUrl) {
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
134
|
return !ignoredDrillToUrlAttributes?.some((ignoredAttributeRef) => areObjRefsEqual(targetAttribute.attribute.attributeHeader.ref, ignoredAttributeRef));
|
|
138
135
|
};
|
|
139
136
|
const mapDrillTargetToDefinition = (targetAttribute) => {
|
|
@@ -304,10 +301,7 @@ export const selectGlobalDrillsDownAttributeHierarchyByWidgetRef = createMemoize
|
|
|
304
301
|
/**
|
|
305
302
|
* @internal
|
|
306
303
|
*/
|
|
307
|
-
export const selectDrillsToUrlAttributeByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectIgnoredDrillToUrlAttributesByWidgetRef(ref), selectInsightByWidgetRef(ref), selectAllCatalogDisplayFormsMap, selectAllCatalogAttributesMap, selectEnableDrillToUrlByDefault,
|
|
308
|
-
if (!enableImplicitDrillToUrl) {
|
|
309
|
-
return [];
|
|
310
|
-
}
|
|
304
|
+
export const selectDrillsToUrlAttributeByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectIgnoredDrillToUrlAttributesByWidgetRef(ref), selectInsightByWidgetRef(ref), selectAllCatalogDisplayFormsMap, selectAllCatalogAttributesMap, selectEnableDrillToUrlByDefault, (availableDrillTargets, ignoredDrillToUrlAttributes, widgetInsight, allCatalogDisplayFormsMap, allCatalogAttributesMap, enableDrillToUrlByDefault) => {
|
|
311
305
|
const disableDrillIntoURL = widgetInsight?.insight?.properties?.["controls"]?.disableDrillIntoURL ??
|
|
312
306
|
!enableDrillToUrlByDefault;
|
|
313
307
|
if (disableDrillIntoURL) {
|
|
@@ -341,9 +335,9 @@ export const selectDrillsToUrlAttributeByWidgetRef = createMemoizedSelector((ref
|
|
|
341
335
|
/**
|
|
342
336
|
* @internal
|
|
343
337
|
*/
|
|
344
|
-
export const selectImplicitDrillsToUrlByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectAttributesWithDisplayFormLink, selectIgnoredDrillToUrlAttributesByWidgetRef(ref),
|
|
338
|
+
export const selectImplicitDrillsToUrlByWidgetRef = createMemoizedSelector((ref) => createSelector(selectDrillTargetsByWidgetRef(ref), selectAttributesWithDisplayFormLink, selectIgnoredDrillToUrlAttributesByWidgetRef(ref), (availableDrillTargets, attributesWithLink, ignoredDrillToUrlAttributes) => {
|
|
345
339
|
const availableDrillAttributes = availableDrillTargets?.availableDrillTargets?.attributes ?? [];
|
|
346
|
-
return getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithLink, ignoredDrillToUrlAttributes
|
|
340
|
+
return getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithLink, ignoredDrillToUrlAttributes);
|
|
347
341
|
}));
|
|
348
342
|
/**
|
|
349
343
|
* @internal
|
|
@@ -433,9 +427,9 @@ const selectKeyDriverAnalysisPredicates = createMemoizedSelector((ref) => create
|
|
|
433
427
|
/**
|
|
434
428
|
* @internal
|
|
435
429
|
*/
|
|
436
|
-
export const selectConfiguredAndImplicitDrillsByWidgetRef = createMemoizedSelector((ref) => createSelector(selectCatalogIsLoaded, selectAccessibleDashboardsLoaded, selectValidConfiguredDrillsByWidgetRef(ref), selectImplicitDrillsDownByWidgetRef(ref), selectImplicitDrillsToUrlByWidgetRef(ref), selectCrossFilteringByWidgetRef(ref), selectKdaByWidgetRef(ref), selectInsightByWidgetRef(ref), selectEnableDrillToUrlByDefault,
|
|
430
|
+
export const selectConfiguredAndImplicitDrillsByWidgetRef = createMemoizedSelector((ref) => createSelector(selectCatalogIsLoaded, selectAccessibleDashboardsLoaded, selectValidConfiguredDrillsByWidgetRef(ref), selectImplicitDrillsDownByWidgetRef(ref), selectImplicitDrillsToUrlByWidgetRef(ref), selectCrossFilteringByWidgetRef(ref), selectKdaByWidgetRef(ref), selectInsightByWidgetRef(ref), selectEnableDrillToUrlByDefault, (catalogIsLoaded, accessibleDashboardsLoaded, configuredDrills, implicitDrillDownDrills, implicitDrillToUrlDrills, crossFiltering, keyDriverAnalysis, insight, enableDrillToUrlByDefault) => {
|
|
437
431
|
const disableDrillIntoURL = insight?.insight.properties["controls"]?.disableDrillIntoURL ?? !enableDrillToUrlByDefault;
|
|
438
|
-
const isDrillToUrlDisabled =
|
|
432
|
+
const isDrillToUrlDisabled = disableDrillIntoURL;
|
|
439
433
|
// disable drilling until all necessary items are loaded (catalog, dash list, ...)
|
|
440
434
|
const drillActive = catalogIsLoaded && accessibleDashboardsLoaded;
|
|
441
435
|
return drillActive
|
|
@@ -464,16 +458,14 @@ export const selectDrillableItemsByWidgetRef = createMemoizedSelector((ref) => c
|
|
|
464
458
|
/**
|
|
465
459
|
* @internal
|
|
466
460
|
*/
|
|
467
|
-
export const selectImplicitDrillsByAvailableDrillTargets = createMemoizedSelector((availableDrillTargets, ignoredDrillDownHierarchies = [], disableDrillIntoURL) => createSelector(selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies, selectAllCatalogAttributeHierarchies, selectBackendCapabilities, selectEnableDrillToUrlByDefault,
|
|
461
|
+
export const selectImplicitDrillsByAvailableDrillTargets = createMemoizedSelector((availableDrillTargets, ignoredDrillDownHierarchies = [], disableDrillIntoURL) => createSelector(selectAttributesWithDisplayFormLink, selectAttributesWithHierarchyDescendants, selectAllCatalogAttributesMap, selectSupportsAttributeHierarchies, selectAllCatalogAttributeHierarchies, selectBackendCapabilities, selectEnableDrillToUrlByDefault, (attributesWithLink, attributesWithHierarchyDescendants, allCatalogAttributesMap, isDrillDownEnabled, allCatalogHierarchies, backendCapabilities, enableDrillToUrlByDefault) => {
|
|
468
462
|
const isDrillToUrlDisabled = disableDrillIntoURL ?? !enableDrillToUrlByDefault;
|
|
469
463
|
const availableDrillAttributes = availableDrillTargets?.attributes ?? [];
|
|
470
464
|
const drillDownDrills = isDrillDownEnabled
|
|
471
465
|
? getDrillDownDefinitionsWithPredicates(availableDrillAttributes, attributesWithHierarchyDescendants, allCatalogAttributesMap, allCatalogHierarchies, ignoredDrillDownHierarchies, backendCapabilities.supportsAttributeHierarchies)
|
|
472
466
|
: [];
|
|
473
|
-
const drillToUrlDrills = getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithLink, []
|
|
474
|
-
return
|
|
475
|
-
? drillDownDrills
|
|
476
|
-
: [...drillDownDrills, ...drillToUrlDrills];
|
|
467
|
+
const drillToUrlDrills = getDrillToUrlDefinitionsWithPredicates(availableDrillAttributes, attributesWithLink, []);
|
|
468
|
+
return isDrillToUrlDisabled ? drillDownDrills : [...drillDownDrills, ...drillToUrlDrills];
|
|
477
469
|
}));
|
|
478
470
|
/**
|
|
479
471
|
* @internal
|
|
@@ -59,6 +59,7 @@ export function getSupportedInsightMeasuresByInsight(insight, dateDatasets = [],
|
|
|
59
59
|
function getSupportedBucketsForComparison(insightType) {
|
|
60
60
|
switch (insightType) {
|
|
61
61
|
case "line":
|
|
62
|
+
case "radar":
|
|
62
63
|
return [BucketNames.TREND];
|
|
63
64
|
case "column":
|
|
64
65
|
case "bar":
|
|
@@ -169,7 +170,8 @@ function collectAllMetric(insight) {
|
|
|
169
170
|
case "waterfall":
|
|
170
171
|
case "dependencywheel":
|
|
171
172
|
case "sankey":
|
|
172
|
-
case "table":
|
|
173
|
+
case "table":
|
|
174
|
+
case "radar": {
|
|
173
175
|
return collectAllMetricsFrom(insight, [BucketNames.MEASURES], [BucketNames.SECONDARY_MEASURES, BucketNames.TERTIARY_MEASURES]);
|
|
174
176
|
}
|
|
175
177
|
case "pushpin": {
|
|
@@ -210,7 +212,8 @@ function collectAllAttributes(insight) {
|
|
|
210
212
|
case "waterfall":
|
|
211
213
|
case "dependencywheel":
|
|
212
214
|
case "sankey":
|
|
213
|
-
case "table":
|
|
215
|
+
case "table":
|
|
216
|
+
case "radar": {
|
|
214
217
|
return collectAllAttributesFrom(insight, [
|
|
215
218
|
BucketNames.ATTRIBUTE,
|
|
216
219
|
BucketNames.ATTRIBUTES,
|
|
@@ -12,7 +12,6 @@ import { getDrillOriginLocalIdentifier } from "../../../_staging/drills/drilling
|
|
|
12
12
|
import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
13
13
|
import { selectAccessibleDashboards } from "../../../model/store/accessibleDashboards/accessibleDashboardsSelectors.js";
|
|
14
14
|
import { selectCatalogAttributeDisplayFormsById } from "../../../model/store/catalog/catalogSelectors.js";
|
|
15
|
-
import { selectEnableImplicitDrillToUrl } from "../../../model/store/config/configSelectors.js";
|
|
16
15
|
import { selectInsightsMap } from "../../../model/store/insights/insightsSelectors.js";
|
|
17
16
|
import { selectDashboardTitle } from "../../../model/store/meta/metaSelectors.js";
|
|
18
17
|
import { selectWidgetByRef } from "../../../model/store/tabs/layout/layoutSelectors.js";
|
|
@@ -32,7 +31,6 @@ export function DrillSelectDropdown({ isOpen, dropDownAnchorClass, onClose, onCl
|
|
|
32
31
|
const insights = useDashboardSelector(selectInsightsMap);
|
|
33
32
|
const widget = useDashboardSelector(selectWidgetByRef(drillEvent.widgetRef));
|
|
34
33
|
const attributeDisplayForms = useDashboardSelector(selectCatalogAttributeDisplayFormsById);
|
|
35
|
-
const enableImplicitDrillToUrl = useDashboardSelector(selectEnableImplicitDrillToUrl);
|
|
36
34
|
const stopPropagation = useCallback((e) => {
|
|
37
35
|
e.stopPropagation();
|
|
38
36
|
}, []);
|
|
@@ -93,7 +91,7 @@ export function DrillSelectDropdown({ isOpen, dropDownAnchorClass, onClose, onCl
|
|
|
93
91
|
if (isDrillDownDefinition(item.drillDefinition)) {
|
|
94
92
|
return "drillDown";
|
|
95
93
|
}
|
|
96
|
-
if (isDrillToUrl(item.drillDefinition)
|
|
94
|
+
if (isDrillToUrl(item.drillDefinition)) {
|
|
97
95
|
return "drillToUrl";
|
|
98
96
|
}
|
|
99
97
|
if (isCrossFiltering(item.drillDefinition)) {
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { defineMessages, useIntl } from "react-intl";
|
|
4
|
-
import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
5
|
-
import { selectEnableImplicitDrillToUrl } from "../../../model/store/config/configSelectors.js";
|
|
6
4
|
import { DrillType } from "../DrillSelect/types.js";
|
|
7
5
|
const groupMenuItemMessages = defineMessages({
|
|
8
6
|
drillDown: { id: "drill_modal_picker.drill-down" },
|
|
@@ -13,7 +11,6 @@ const groupMenuItemMessages = defineMessages({
|
|
|
13
11
|
});
|
|
14
12
|
export const useDrillSelectDropdownMenuItems = ({ drillDownItems, drillItems, crossFilteringItems, keyDriverAnalysisItems, drillToUrlItems, onSelect, }) => {
|
|
15
13
|
const { formatMessage } = useIntl();
|
|
16
|
-
const enableImplicitDrillToUrl = useDashboardSelector(selectEnableImplicitDrillToUrl);
|
|
17
14
|
return useMemo(() => {
|
|
18
15
|
const createMenuGroup = (items, groupId, groupTitle) => ({
|
|
19
16
|
type: "group",
|
|
@@ -45,7 +42,7 @@ export const useDrillSelectDropdownMenuItems = ({ drillDownItems, drillItems, cr
|
|
|
45
42
|
const drillDownMenuItems = drillDownItems.length > 0
|
|
46
43
|
? [createMenuGroup(drillDownItems, "drill-down", groupMenuItemMessages.drillDown.id)]
|
|
47
44
|
: [];
|
|
48
|
-
const drillToUrlMenuItems =
|
|
45
|
+
const drillToUrlMenuItems = drillToUrlItems.length > 0
|
|
49
46
|
? [createMenuGroup(drillToUrlItems, "drill-to-url", groupMenuItemMessages.drillToUrl.id)]
|
|
50
47
|
: [];
|
|
51
48
|
const drillMenuItems = drillItems.length > 0
|
|
@@ -74,6 +71,5 @@ export const useDrillSelectDropdownMenuItems = ({ drillDownItems, drillItems, cr
|
|
|
74
71
|
drillToUrlItems,
|
|
75
72
|
formatMessage,
|
|
76
73
|
onSelect,
|
|
77
|
-
enableImplicitDrillToUrl,
|
|
78
74
|
]);
|
|
79
75
|
};
|
|
@@ -19,18 +19,21 @@ export function DefaultDashboardExportVariables({ renderMode }) {
|
|
|
19
19
|
const conf = useDashboardSelector(selectConfig);
|
|
20
20
|
const dashboardId = useDashboardSelector(selectDashboardId);
|
|
21
21
|
const dashboardDescriptor = useDashboardSelector(selectDashboardDescriptor);
|
|
22
|
-
const { dateFilters, attributeFilters, isError, isLoading } = useDashboardRelatedFilters(run);
|
|
22
|
+
const { dateFilters, attributeFilters, measureValueFilters, isError, isLoading } = useDashboardRelatedFilters(run);
|
|
23
23
|
const theme = useTheme();
|
|
24
24
|
if (!run) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
27
|
return (_jsxs("div", { className: "gd-dashboard-meta", ...exportData?.root, children: [
|
|
28
|
-
_jsx("div", { ...exportData?.id, children: dashboardId }), dashboardDescriptor.title ? _jsx("div", { ...exportData?.title, children: dashboardDescriptor.title }) : null, dashboardDescriptor.description ? (_jsx("div", { ...exportData?.description, children: dashboardDescriptor.description })) : null, dashboardDescriptor.tags && dashboardDescriptor.tags.length > 0 ? (_jsx("div", { ...exportData?.tags?.root, children: dashboardDescriptor.tags.map((tag, i) => (_jsx("span", { ...exportData?.tags?.tag, children: tag }, i))) })) : null, _jsx("div", { ...exportData?.filters?.root, ...exportData?.filters?.rootData(isLoading, isError), children: dateFilters.length > 0 || attributeFilters.length > 0 ? (_jsxs(_Fragment, { children: [dateFilters.map((filter, i) => (_jsxs("div", { ...exportData?.filters?.dateFilter, ...exportData?.filters?.filter.filterData(filter, isLoading, isError), children: [
|
|
28
|
+
_jsx("div", { ...exportData?.id, children: dashboardId }), dashboardDescriptor.title ? _jsx("div", { ...exportData?.title, children: dashboardDescriptor.title }) : null, dashboardDescriptor.description ? (_jsx("div", { ...exportData?.description, children: dashboardDescriptor.description })) : null, dashboardDescriptor.tags && dashboardDescriptor.tags.length > 0 ? (_jsx("div", { ...exportData?.tags?.root, children: dashboardDescriptor.tags.map((tag, i) => (_jsx("span", { ...exportData?.tags?.tag, children: tag }, i))) })) : null, _jsx("div", { ...exportData?.filters?.root, ...exportData?.filters?.rootData(isLoading, isError), children: dateFilters.length > 0 || attributeFilters.length > 0 || measureValueFilters.length > 0 ? (_jsxs(_Fragment, { children: [dateFilters.map((filter, i) => (_jsxs("div", { ...exportData?.filters?.dateFilter, ...exportData?.filters?.filter.filterData(filter, isLoading, isError), children: [
|
|
29
29
|
_jsx("span", { ...exportData?.filters?.filter.name, children: filter?.title }),
|
|
30
30
|
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: filter?.subtitle })
|
|
31
31
|
] }, i))), attributeFilters.map((filter, i) => (_jsxs("div", { ...exportData?.filters?.attributeFilter, ...exportData?.filters?.filter.filterData(filter, isLoading, isError), children: [
|
|
32
32
|
_jsx("span", { ...exportData?.filters?.filter.name, children: filter?.title }),
|
|
33
33
|
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: filter?.subtitle })
|
|
34
|
+
] }, i))), measureValueFilters.map((filter, i) => (_jsxs("div", { ...exportData?.filters?.measureValueFilter, ...exportData?.filters?.filter.filterData(filter, isLoading, isError), children: [
|
|
35
|
+
_jsx("span", { ...exportData?.filters?.filter.name, children: filter?.title }),
|
|
36
|
+
" -", " ", _jsx("span", { ...exportData?.filters?.filter.value, children: filter?.subtitle })
|
|
34
37
|
] }, i)))] })) : null }), user?.fullName ? _jsx("div", { ...exportData?.user, children: user.fullName }) : null, conf.workspaceDescriptor ? (_jsx("div", { ...exportData?.workspace, children: conf.workspaceDescriptor.title })) : null, _jsx(MetaImage, { image: theme?.images?.logo, type: "logo" }), _jsx(MetaImage, { image: theme?.images?.coverImage, type: "cover-image" }), _jsx(Palette, { data: theme?.palette?.complementary })
|
|
35
38
|
] }));
|
|
36
39
|
}
|
|
@@ -3,7 +3,7 @@ import { type DashboardAttributeFilterConfigMode, type DashboardDateFilterConfig
|
|
|
3
3
|
* @alpha
|
|
4
4
|
*/
|
|
5
5
|
export type DashboardRelatedFilter = {
|
|
6
|
-
type: "attributeFilter" | "dateFilter";
|
|
6
|
+
type: "attributeFilter" | "dateFilter" | "measureValueFilter";
|
|
7
7
|
all: boolean;
|
|
8
8
|
id: string;
|
|
9
9
|
title: string;
|
|
@@ -14,6 +14,7 @@ export type DashboardRelatedFilter = {
|
|
|
14
14
|
export declare function useDashboardRelatedFilters(run: boolean): {
|
|
15
15
|
dateFilters: DashboardRelatedFilter[];
|
|
16
16
|
attributeFilters: DashboardRelatedFilter[];
|
|
17
|
+
measureValueFilters: DashboardRelatedFilter[];
|
|
17
18
|
isLoading: boolean;
|
|
18
19
|
isError: boolean;
|
|
19
20
|
isSuccess: boolean;
|
|
@@ -7,6 +7,7 @@ import { selectAttributeFilterConfigsOverrides } from "../../../model/store/tabs
|
|
|
7
7
|
import { selectDateFilterConfigOverrides } from "../../../model/store/tabs/dateFilterConfig/dateFilterConfigSelectors.js";
|
|
8
8
|
import { selectDateFilterConfigsOverrides } from "../../../model/store/tabs/dateFilterConfigs/dateFilterConfigsSelectors.js";
|
|
9
9
|
import { selectFilterContextFilters } from "../../../model/store/tabs/filterContext/filterContextSelectors.js";
|
|
10
|
+
import { selectMeasureValueFilterConfigsOverrides } from "../../../model/store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
|
|
10
11
|
export function useDashboardRelatedFilters(run) {
|
|
11
12
|
const backend = useBackendStrict();
|
|
12
13
|
const workspaceId = useWorkspaceStrict();
|
|
@@ -14,6 +15,7 @@ export function useDashboardRelatedFilters(run) {
|
|
|
14
15
|
const dateFilterConfig = useDashboardSelector(selectDateFilterConfigOverrides);
|
|
15
16
|
const dateFiltersConfig = useDashboardSelector(selectDateFilterConfigsOverrides);
|
|
16
17
|
const attributeFiltersConfig = useDashboardSelector(selectAttributeFilterConfigsOverrides);
|
|
18
|
+
const measureValueFiltersConfig = useDashboardSelector(selectMeasureValueFilterConfigsOverrides);
|
|
17
19
|
const { result, status } = useCancelablePromise({
|
|
18
20
|
promise: async () => {
|
|
19
21
|
if (!run) {
|
|
@@ -36,6 +38,12 @@ export function useDashboardRelatedFilters(run) {
|
|
|
36
38
|
mode: dateFiltersConfig.find((c) => areObjRefsEqual(c.dateDataSet, f?.dataSet))?.config?.mode,
|
|
37
39
|
};
|
|
38
40
|
}
|
|
41
|
+
else if (f?.type === "measureValueFilter") {
|
|
42
|
+
return {
|
|
43
|
+
...f,
|
|
44
|
+
mode: measureValueFiltersConfig.find((c) => c.localIdentifier === f?.id)?.mode,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
39
47
|
return {
|
|
40
48
|
...f,
|
|
41
49
|
mode: attributeFiltersConfig.find((c) => c.localIdentifier === f?.id)?.mode,
|
|
@@ -47,6 +55,7 @@ export function useDashboardRelatedFilters(run) {
|
|
|
47
55
|
isSuccess: status === "success",
|
|
48
56
|
dateFilters: all.filter((f) => f?.type === "dateFilter"),
|
|
49
57
|
attributeFilters: all.filter((f) => f?.type === "attributeFilter"),
|
|
58
|
+
measureValueFilters: all.filter((f) => f?.type === "measureValueFilter"),
|
|
50
59
|
};
|
|
51
60
|
}
|
|
52
61
|
async function updateLabelElements(backend, workspaceId, attributeFiltersConfig, dashboardFilter) {
|
|
@@ -28,7 +28,7 @@ export type CommonExportDataAttributes = {
|
|
|
28
28
|
*/
|
|
29
29
|
export type MetaExportDataAttributes = {
|
|
30
30
|
"data-export-meta-type"?: ExportMetaType;
|
|
31
|
-
"data-export-meta-filter-type"?: "date" | "attribute";
|
|
31
|
+
"data-export-meta-filter-type"?: "date" | "attribute" | "measureValue";
|
|
32
32
|
"data-export-meta-filter-mode"?: "readonly" | "hidden" | "active";
|
|
33
33
|
"data-export-meta-filter-status"?: "loading" | "loaded" | "error";
|
|
34
34
|
"data-export-meta-filters-status"?: "loading" | "loaded" | "error";
|
|
@@ -57,6 +57,7 @@ export type MetaExportData = {
|
|
|
57
57
|
rootData: (isLoading: boolean, isError: boolean) => MetaExportDataAttributes;
|
|
58
58
|
dateFilter: MetaExportDataAttributes;
|
|
59
59
|
attributeFilter: MetaExportDataAttributes;
|
|
60
|
+
measureValueFilter: MetaExportDataAttributes;
|
|
60
61
|
filter: {
|
|
61
62
|
name: MetaExportDataAttributes;
|
|
62
63
|
value: MetaExportDataAttributes;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
// (C) 2025 GoodData Corporation
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
export {};
|
|
@@ -201,6 +201,10 @@ export const useMetaExportData = () => {
|
|
|
201
201
|
"data-export-meta-type": "dashboard-filter",
|
|
202
202
|
"data-export-meta-filter-type": "attribute",
|
|
203
203
|
},
|
|
204
|
+
measureValueFilter: {
|
|
205
|
+
"data-export-meta-type": "dashboard-filter",
|
|
206
|
+
"data-export-meta-filter-type": "measureValue",
|
|
207
|
+
},
|
|
204
208
|
filter: {
|
|
205
209
|
name: {
|
|
206
210
|
"data-export-meta-type": "dashboard-filter-name",
|
|
@@ -573,6 +573,7 @@ export declare const de_DE: {
|
|
|
573
573
|
"filter.configuration.mode.hidden.title": string;
|
|
574
574
|
"filter.configuration.mode.hidden.tooltip": string;
|
|
575
575
|
"filter.dependency.icon.tooltip": string;
|
|
576
|
+
"filter.dependency.icon.aria.label": string;
|
|
576
577
|
"configurationPanel.drillConfig.alreadyUsedTooltip": string;
|
|
577
578
|
"configurationPanel.respectCrossFiltering": string;
|
|
578
579
|
"configurationPanel.respectCrossFiltering.tooltip": string;
|
|
@@ -575,6 +575,7 @@ export const de_DE = {
|
|
|
575
575
|
"filter.configuration.mode.hidden.title": "Ausgeblendet",
|
|
576
576
|
"filter.configuration.mode.hidden.tooltip": "Dashboard-Benutzer können den Filter nicht sehen, er ist jedoch angewendet.",
|
|
577
577
|
"filter.dependency.icon.tooltip": "Werte für <strong>{filterTitle}</strong> werden durch Auswahl in einem anderen Filter gefiltert.",
|
|
578
|
+
"filter.dependency.icon.aria.label": "Verknüpfter Filter — verfügbare Werte hängen von der Auswahl eines anderen Filters ab.",
|
|
578
579
|
"configurationPanel.drillConfig.alreadyUsedTooltip": "Diese <strong>Hierarchie</strong> wird bereits für <strong>denselben</strong> Drilldown verwendet.",
|
|
579
580
|
"configurationPanel.respectCrossFiltering": "Querfilterung berücksichtigen",
|
|
580
581
|
"configurationPanel.respectCrossFiltering.tooltip": "Deaktivieren Sie diese Option, um Cross-Filtering von anderen Visualisierungen zu ignorieren.",
|
|
@@ -573,6 +573,7 @@ export declare const en_AU: {
|
|
|
573
573
|
"filter.configuration.mode.hidden.title": string;
|
|
574
574
|
"filter.configuration.mode.hidden.tooltip": string;
|
|
575
575
|
"filter.dependency.icon.tooltip": string;
|
|
576
|
+
"filter.dependency.icon.aria.label": string;
|
|
576
577
|
"configurationPanel.drillConfig.alreadyUsedTooltip": string;
|
|
577
578
|
"configurationPanel.respectCrossFiltering": string;
|
|
578
579
|
"configurationPanel.respectCrossFiltering.tooltip": string;
|
|
@@ -575,6 +575,7 @@ export const en_AU = {
|
|
|
575
575
|
"filter.configuration.mode.hidden.title": "Hidden",
|
|
576
576
|
"filter.configuration.mode.hidden.tooltip": "Dashboard users cannot see the filter but it is applied.",
|
|
577
577
|
"filter.dependency.icon.tooltip": "Values for <strong>{filterTitle}</strong> are filtered by selection in another filter.",
|
|
578
|
+
"filter.dependency.icon.aria.label": "Linked filter — available values depend on another filter selection.",
|
|
578
579
|
"configurationPanel.drillConfig.alreadyUsedTooltip": "This <strong>hierarchy</strong> is already used for <strong>the same</strong> drilling down.",
|
|
579
580
|
"configurationPanel.respectCrossFiltering": "Respect cross-filtering",
|
|
580
581
|
"configurationPanel.respectCrossFiltering.tooltip": "Disable this option to ignore cross-filtering from other visualisations.",
|
|
@@ -573,6 +573,7 @@ export declare const en_GB: {
|
|
|
573
573
|
"filter.configuration.mode.hidden.title": string;
|
|
574
574
|
"filter.configuration.mode.hidden.tooltip": string;
|
|
575
575
|
"filter.dependency.icon.tooltip": string;
|
|
576
|
+
"filter.dependency.icon.aria.label": string;
|
|
576
577
|
"configurationPanel.drillConfig.alreadyUsedTooltip": string;
|
|
577
578
|
"configurationPanel.respectCrossFiltering": string;
|
|
578
579
|
"configurationPanel.respectCrossFiltering.tooltip": string;
|
|
@@ -575,6 +575,7 @@ export const en_GB = {
|
|
|
575
575
|
"filter.configuration.mode.hidden.title": "Hidden",
|
|
576
576
|
"filter.configuration.mode.hidden.tooltip": "Dashboard users cannot see the filter but it is applied.",
|
|
577
577
|
"filter.dependency.icon.tooltip": "Values for <strong>{filterTitle}</strong> are filtered by selection in another filter.",
|
|
578
|
+
"filter.dependency.icon.aria.label": "Linked filter — available values depend on another filter selection.",
|
|
578
579
|
"configurationPanel.drillConfig.alreadyUsedTooltip": "This <strong>hierarchy</strong> is already used for <strong>the same</strong> drilling down.",
|
|
579
580
|
"configurationPanel.respectCrossFiltering": "Respect cross-filtering",
|
|
580
581
|
"configurationPanel.respectCrossFiltering.tooltip": "Disable this option to ignore cross-filtering from other visualisations.",
|
|
@@ -730,7 +731,7 @@ export const en_GB = {
|
|
|
730
731
|
"insightAlert.config.threshold": "Threshold",
|
|
731
732
|
"insightAlert.config.comparison": "Comparison",
|
|
732
733
|
"insightAlert.config.recipients": "Recipients",
|
|
733
|
-
"insightAlert.config.do": "
|
|
734
|
+
"insightAlert.config.do": "Do",
|
|
734
735
|
"insightAlert.config.warning.destination": "The selected destination only supports sending the alert to yourself.",
|
|
735
736
|
"insightAlert.config.filters": "using {n} {n, plural, one {filter} other {filters}}",
|
|
736
737
|
"insightAlert.config.and": "and",
|
|
@@ -573,6 +573,7 @@ export declare const es_419: {
|
|
|
573
573
|
"filter.configuration.mode.hidden.title": string;
|
|
574
574
|
"filter.configuration.mode.hidden.tooltip": string;
|
|
575
575
|
"filter.dependency.icon.tooltip": string;
|
|
576
|
+
"filter.dependency.icon.aria.label": string;
|
|
576
577
|
"configurationPanel.drillConfig.alreadyUsedTooltip": string;
|
|
577
578
|
"configurationPanel.respectCrossFiltering": string;
|
|
578
579
|
"configurationPanel.respectCrossFiltering.tooltip": string;
|