@gooddata/sdk-ui-dashboard 11.51.0-alpha.3 → 11.51.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.
- package/NOTICE +3 -3
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +3 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -1
- package/esm/model/commandHandlers/index.d.ts.map +1 -1
- package/esm/model/commandHandlers/index.js +2 -0
- package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.d.ts +6 -0
- package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.d.ts.map +1 -0
- package/esm/model/commandHandlers/timezone/changeDashboardTimezoneOverrideHandler.js +39 -0
- package/esm/model/commands/base.d.ts +1 -1
- package/esm/model/commands/base.d.ts.map +1 -1
- package/esm/model/commands/index.d.ts +2 -1
- package/esm/model/commands/index.d.ts.map +1 -1
- package/esm/model/commands/timezone.d.ts +42 -0
- package/esm/model/commands/timezone.d.ts.map +1 -0
- package/esm/model/commands/timezone.js +29 -0
- package/esm/model/events/base.d.ts +1 -1
- package/esm/model/events/base.d.ts.map +1 -1
- package/esm/model/events/index.d.ts +2 -1
- package/esm/model/events/index.d.ts.map +1 -1
- package/esm/model/events/timezone.d.ts +50 -0
- package/esm/model/events/timezone.d.ts.map +1 -0
- package/esm/model/events/timezone.js +31 -0
- package/esm/model/react/useDashboardCommand.d.ts +1 -0
- package/esm/model/react/useDashboardCommand.d.ts.map +1 -1
- package/esm/model/react/useDashboardCommandProcessing.d.ts +4 -0
- package/esm/model/react/useDashboardCommandProcessing.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.d.ts +6 -4
- package/esm/model/store/meta/metaSelectors.d.ts.map +1 -1
- package/esm/model/store/meta/metaSelectors.js +17 -6
- package/esm/model/store/ui/index.d.ts +3 -0
- package/esm/model/store/ui/index.d.ts.map +1 -1
- package/esm/model/store/ui/uiReducers.d.ts +6 -0
- package/esm/model/store/ui/uiReducers.d.ts.map +1 -1
- package/esm/model/store/ui/uiReducers.js +15 -0
- package/esm/model/store/ui/uiSelectors.d.ts +15 -0
- package/esm/model/store/ui/uiSelectors.d.ts.map +1 -1
- package/esm/model/store/ui/uiSelectors.js +15 -0
- package/esm/model/store/ui/uiState.d.ts +12 -0
- package/esm/model/store/ui/uiState.d.ts.map +1 -1
- package/esm/model/store/ui/uiState.js +4 -0
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/DefaultAlertingDialog.js +4 -23
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.d.ts +17 -8
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFilters.js +20 -8
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useAlertFormState.js +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts +7 -8
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.d.ts.map +1 -1
- package/esm/presentation/automations/alerting/DefaultAlertingDialog/hooks/useEditAlert.js +14 -4
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.js +1 -1
- package/esm/presentation/automations/connectors/ScheduledEmailConnector.test.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +4 -44
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +25 -26
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +20 -9
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailEffectiveFilters.js +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts +37 -15
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.d.ts.map +1 -1
- package/esm/presentation/automations/scheduledEmail/DefaultScheduledEmailDialog/hooks/useScheduledEmailFilters.js +42 -20
- package/esm/presentation/automations/shared/automationFilters/hooks/useDefaultSelectedFiltersForExistingAutomation.js +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/hooks/useValidateExistingAutomationFilters.js +2 -1
- package/esm/presentation/automations/shared/automationFilters/utils.d.ts +1 -32
- package/esm/presentation/automations/shared/automationFilters/utils.d.ts.map +1 -1
- package/esm/presentation/automations/shared/automationFilters/utils.js +2 -177
- package/esm/presentation/automations/shared/filters/conversions.d.ts +36 -0
- package/esm/presentation/automations/shared/filters/conversions.d.ts.map +1 -0
- package/esm/presentation/automations/shared/filters/conversions.js +242 -0
- package/esm/presentation/automations/shared/filters/index.d.ts +2 -0
- package/esm/presentation/automations/shared/filters/index.d.ts.map +1 -0
- package/esm/presentation/automations/shared/filters/index.js +3 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.d.ts.map +1 -1
- package/esm/presentation/dashboard/DashboardHeader/DashboardHeader.js +2 -1
- package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.d.ts +6 -0
- package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.d.ts.map +1 -0
- package/esm/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.js +14 -0
- package/esm/presentation/dashboard/components/DashboardLoading.js +1 -1
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.d.ts.map +1 -1
- package/esm/presentation/dashboardSettingsDialog/TimezoneOption.js +9 -7
- package/esm/presentation/drill/DrillSelect/DrillSelectDropdownMenuItem.js +2 -2
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +40 -0
- package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/en-US.localization-bundle.js +45 -5
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +13 -2
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +11 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +13 -2
- package/esm/presentation/timezoneDialog/TimezoneDialog.d.ts +15 -0
- package/esm/presentation/timezoneDialog/TimezoneDialog.d.ts.map +1 -0
- package/esm/presentation/timezoneDialog/TimezoneDialog.js +80 -0
- package/esm/presentation/topBar/menuButton/useDefaultMenuItems.d.ts.map +1 -1
- package/esm/presentation/topBar/menuButton/useDefaultMenuItems.js +22 -3
- package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.d.ts.map +1 -1
- package/esm/presentation/topBar/timezoneIndicator/TimezoneIndicator.js +2 -2
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts +5 -3
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.d.ts.map +1 -1
- package/esm/presentation/topBar/timezoneIndicator/resolveDashboardTimezoneInfo.js +6 -4
- package/esm/presentation/topBar/topBar/DefaultTopBar.d.ts.map +1 -1
- package/esm/presentation/topBar/topBar/DefaultTopBar.js +5 -3
- package/esm/sdk-ui-dashboard.d.ts +140 -11
- package/package.json +21 -21
- package/styles/css/filterBar.css +1 -0
- package/styles/css/filterBar.css.map +1 -1
- package/styles/css/main.css +24 -0
- package/styles/css/main.css.map +1 -1
- package/styles/css/timezoneDialog.css +24 -0
- package/styles/css/timezoneDialog.css.map +1 -0
- package/styles/scss/filterBar.scss +7 -0
- package/styles/scss/main.scss +1 -0
- package/styles/scss/timezoneDialog.scss +31 -0
- package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts +0 -3
- package/esm/presentation/automations/scheduledEmail/utils/filters.d.ts.map +0 -1
- package/esm/presentation/automations/scheduledEmail/utils/filters.js +0 -5
- package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts +0 -4
- package/esm/presentation/automations/shared/utils/filterContextUtils.d.ts.map +0 -1
- package/esm/presentation/automations/shared/utils/filterContextUtils.js +0 -67
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
// (C) 2025-2026 GoodData Corporation
|
|
2
|
+
import { compact } from "lodash-es";
|
|
3
|
+
import { NotSupported } from "@gooddata/sdk-backend-spi";
|
|
4
|
+
import { attributeLocalId, dashboardFilterLocalIdentifier, filterAttributeElements, filterLocalIdentifier, filterObjRef, hasMeasureValueFilterConditions, insightAttributes, isAbsoluteDateFilter, isAllDashboardMeasureValueFilter, isAllTimeDateFilter, isAllValuesAttributeFilter, isAllValuesDashboardAttributeFilter, isArbitraryAttributeFilter, isAttributeFilterWithSelection, isDashboardDateFilter, isDashboardMeasureValueFilter, isDateFilter, isInsightWidget, isLocalIdRef, isMatchAttributeFilter, isMeasureValueFilter, isNegativeAttributeFilter, isNoopAllTimeDashboardDateFilter, isObjRef, isRelativeBoundedDateFilter, isRelativeDateFilter, measureValueFilterConditions, measureValueFilterMeasure, mergeFilters, newAbsoluteDashboardDateFilter, newAllTimeDashboardDateFilter, newRelativeDashboardDateFilter, } from "@gooddata/sdk-model";
|
|
5
|
+
import { filterContextItemsToDashboardFiltersByWidget } from "../../../../converters/filterConverters.js";
|
|
6
|
+
import { removeIgnoredWidgetFilters } from "../../../../model/utils/widgetFilters.js";
|
|
7
|
+
export const getVisibleFiltersByFilters = (selectedFilters, visibleFiltersMetadata, storeFilters) => {
|
|
8
|
+
if (!storeFilters) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
const filters = (selectedFilters ?? [])
|
|
12
|
+
// Strip noop "All values" attribute filters and "All" measure value filters —
|
|
13
|
+
// they have no effect on execution and should not be stored in visible filters metadata.
|
|
14
|
+
.filter((filter) => !isAllValuesDashboardAttributeFilter(filter) && !isAllDashboardMeasureValueFilter(filter))
|
|
15
|
+
.map((selectedFilter) => {
|
|
16
|
+
const selectedLocalIdentifier = dashboardFilterLocalIdentifier(selectedFilter);
|
|
17
|
+
const targetFilter = (visibleFiltersMetadata ?? []).find((visibleFilter) => {
|
|
18
|
+
return selectedLocalIdentifier === visibleFilter.localIdentifier;
|
|
19
|
+
});
|
|
20
|
+
if (targetFilter && isDashboardDateFilter(selectedFilter)) {
|
|
21
|
+
return {
|
|
22
|
+
...targetFilter,
|
|
23
|
+
// NOTE: despite the name, this flag is used to mark *noop* "All time" filters (implicit default)
|
|
24
|
+
// that are intentionally not stored in automation execution filters.
|
|
25
|
+
isAllTimeDateFilter: isNoopAllTimeDashboardDateFilter(selectedFilter),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return targetFilter;
|
|
29
|
+
});
|
|
30
|
+
return compact(filters);
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get visible filters metadata structured by tab.
|
|
34
|
+
* Applies the same logic as getVisibleFiltersByFilters to each tab's filters.
|
|
35
|
+
*/
|
|
36
|
+
export const getVisibleFiltersByFiltersByTab = (filtersByTab, visibleFiltersMetadata, storeFilters) => {
|
|
37
|
+
if (!storeFilters || !filtersByTab) {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
return Object.entries(filtersByTab).reduce((acc, [tabId, tabFilters]) => {
|
|
41
|
+
const visibleFilters = getVisibleFiltersByFilters(tabFilters, visibleFiltersMetadata?.[tabId], true);
|
|
42
|
+
if (visibleFilters && visibleFilters.length > 0) {
|
|
43
|
+
acc[tabId] = visibleFilters;
|
|
44
|
+
}
|
|
45
|
+
return acc;
|
|
46
|
+
}, {});
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Get final execution filters for the widget alert or scheduled export.
|
|
50
|
+
*/
|
|
51
|
+
export const getAppliedWidgetFilters = (selectedAutomationFilters, dashboardHiddenFilters, widget, insight, commonDateFilterId, mergeInsightFilters = false, withoutWidget = false) => {
|
|
52
|
+
// Hidden filters are never included in selectedAutomationFilters,
|
|
53
|
+
// but we need them to construct proper execution filters, so merge them.
|
|
54
|
+
const selectedFiltersWithHiddenFilters = [...selectedAutomationFilters, ...dashboardHiddenFilters];
|
|
55
|
+
// Now, remove ignored filters (some of the hidden filters might be ignored).
|
|
56
|
+
const selectedFiltersWithoutIgnoredFilters = removeIgnoredWidgetFilters(selectedFiltersWithHiddenFilters, widget);
|
|
57
|
+
// Now, convert sanitized selected filters to execution filters shape.
|
|
58
|
+
const selectedExecutionFilters = isInsightWidget(widget)
|
|
59
|
+
? filterContextItemsToDashboardFiltersByWidget(selectedFiltersWithoutIgnoredFilters, widget)
|
|
60
|
+
: withoutWidget
|
|
61
|
+
? filterContextItemsToDashboardFiltersByWidget(selectedFiltersWithoutIgnoredFilters, undefined)
|
|
62
|
+
: [];
|
|
63
|
+
const filtersToUse = mergeInsightFilters
|
|
64
|
+
? mergeFilters(insight?.insight?.filters ?? [], selectedExecutionFilters, commonDateFilterId)
|
|
65
|
+
: selectedExecutionFilters;
|
|
66
|
+
// Resolve MVF dimensionality localIdRefs to stable identifierRefs so that
|
|
67
|
+
// alert executions (which have empty attributes) don't contain dangling refs.
|
|
68
|
+
const resolvedFilters = resolveMvfDimensionalityLocalRefs(filtersToUse, insight);
|
|
69
|
+
// Strip noop filters - they have no effect on execution.
|
|
70
|
+
return resolvedFilters.filter((filter) => {
|
|
71
|
+
// Strip noop "All time" date filters (implicit default with no extra configuration).
|
|
72
|
+
if (isDateFilter(filter)) {
|
|
73
|
+
return !isNoopAllTimeDateFilterFixed(filter);
|
|
74
|
+
}
|
|
75
|
+
// Strip noop "All" measure value filters (no conditions).
|
|
76
|
+
if (isMeasureValueFilter(filter)) {
|
|
77
|
+
return hasMeasureValueFilterConditions(filter);
|
|
78
|
+
}
|
|
79
|
+
// Strip noop "All values" attribute filters (negative filter with empty exclusion list).
|
|
80
|
+
return !isAllValuesAttributeFilter(filter);
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Get final filters for the dashboard scheduled export.
|
|
85
|
+
*/
|
|
86
|
+
export const getAppliedDashboardFilters = (selectedAutomationFilters, dashboardHiddenFilters, storeFilters) => {
|
|
87
|
+
if (!storeFilters) {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
// Hidden filters are never included in selectedAutomationFilters,
|
|
91
|
+
// but we need them to construct proper execution filters, so merge them.
|
|
92
|
+
const selectedFiltersWithHiddenFilters = [...selectedAutomationFilters, ...dashboardHiddenFilters];
|
|
93
|
+
// Strip noop filters - they have no effect on execution.
|
|
94
|
+
return selectedFiltersWithHiddenFilters.filter((filter) => {
|
|
95
|
+
// Strip noop "All time" date filters (implicit default with no extra configuration).
|
|
96
|
+
if (isDashboardDateFilter(filter)) {
|
|
97
|
+
return !isNoopAllTimeDashboardDateFilter(filter);
|
|
98
|
+
}
|
|
99
|
+
// Strip noop "All" measure value filters (no/empty conditions).
|
|
100
|
+
if (isDashboardMeasureValueFilter(filter)) {
|
|
101
|
+
return !isAllDashboardMeasureValueFilter(filter);
|
|
102
|
+
}
|
|
103
|
+
// Strip noop "All values" attribute filters.
|
|
104
|
+
return !isAllValuesDashboardAttributeFilter(filter);
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
export function dashboardFilterToFilterContextItem(filter, keepDatasets) {
|
|
108
|
+
if (isAttributeFilterWithSelection(filter)) {
|
|
109
|
+
return {
|
|
110
|
+
attributeFilter: {
|
|
111
|
+
negativeSelection: isNegativeAttributeFilter(filter),
|
|
112
|
+
displayForm: filterObjRef(filter),
|
|
113
|
+
attributeElements: filterAttributeElements(filter),
|
|
114
|
+
selectionMode: "multi",
|
|
115
|
+
localIdentifier: filterLocalIdentifier(filter),
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
else if (isArbitraryAttributeFilter(filter)) {
|
|
120
|
+
return {
|
|
121
|
+
arbitraryAttributeFilter: {
|
|
122
|
+
displayForm: filterObjRef(filter),
|
|
123
|
+
values: filter.arbitraryAttributeFilter.values,
|
|
124
|
+
negativeSelection: filter.arbitraryAttributeFilter.negativeSelection ?? false,
|
|
125
|
+
localIdentifier: filterLocalIdentifier(filter),
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
else if (isMatchAttributeFilter(filter)) {
|
|
130
|
+
return {
|
|
131
|
+
matchAttributeFilter: {
|
|
132
|
+
displayForm: filterObjRef(filter),
|
|
133
|
+
operator: filter.matchAttributeFilter.operator,
|
|
134
|
+
literal: filter.matchAttributeFilter.literal,
|
|
135
|
+
caseSensitive: filter.matchAttributeFilter.caseSensitive,
|
|
136
|
+
negativeSelection: filter.matchAttributeFilter.negativeSelection,
|
|
137
|
+
localIdentifier: filterLocalIdentifier(filter),
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
else if (isAbsoluteDateFilter(filter)) {
|
|
142
|
+
return newAbsoluteDashboardDateFilter(filter.absoluteDateFilter.from, filter.absoluteDateFilter.to, keepDatasets ? filter.absoluteDateFilter.dataSet : undefined, filter.absoluteDateFilter.localIdentifier, filter.absoluteDateFilter.emptyValueHandling);
|
|
143
|
+
}
|
|
144
|
+
else if (isAllTimeDateFilter(filter)) {
|
|
145
|
+
return newAllTimeDashboardDateFilter(keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, filter.relativeDateFilter.emptyValueHandling);
|
|
146
|
+
}
|
|
147
|
+
else if (isRelativeDateFilter(filter)) {
|
|
148
|
+
return newRelativeDashboardDateFilter(filter.relativeDateFilter.granularity, filter.relativeDateFilter.from, filter.relativeDateFilter.to, keepDatasets ? filter.relativeDateFilter.dataSet : undefined, filter.relativeDateFilter.localIdentifier, isRelativeBoundedDateFilter(filter) ? filter.relativeDateFilter.boundedFilter : undefined, filter.relativeDateFilter.emptyValueHandling);
|
|
149
|
+
}
|
|
150
|
+
else if (isMeasureValueFilter(filter)) {
|
|
151
|
+
const measure = measureValueFilterMeasure(filter);
|
|
152
|
+
// Dashboard MVFs always reference the measure by ObjRef. Insight MVFs use LocalIdRef
|
|
153
|
+
// (bucket localId) and have no honest representation in the dashboard filter context —
|
|
154
|
+
// they reach this converter only because automation execution filters mix dashboard and
|
|
155
|
+
// insight filters. Caller is responsible for dropping these undefined entries.
|
|
156
|
+
if (!isObjRef(measure)) {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const conditions = measureValueFilterConditions(filter);
|
|
160
|
+
return {
|
|
161
|
+
dashboardMeasureValueFilter: {
|
|
162
|
+
measure,
|
|
163
|
+
localIdentifier: filter.measureValueFilter.localIdentifier ?? `mvf:${JSON.stringify(measure)}`,
|
|
164
|
+
...(conditions ? { conditions } : {}),
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
throw new NotSupported(`Unsupported filter type! Please provide valid dashboard filter. Filter: ${JSON.stringify(filter)}`);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Resolve MVF dimensionality localIdRefs to stable identifierRefs using the insight's attributes.
|
|
172
|
+
*
|
|
173
|
+
* Measure value filters may reference attributes in their dimensionality via localIdRef,
|
|
174
|
+
* which is only meaningful within the insight's own execution context. When these filters
|
|
175
|
+
* are used in an alert execution (which may not include the original attributes), the
|
|
176
|
+
* localIdRefs become dangling. This function resolves them to display form identifierRefs.
|
|
177
|
+
*/
|
|
178
|
+
export function resolveMvfDimensionalityLocalRefs(filters, insight) {
|
|
179
|
+
if (!insight) {
|
|
180
|
+
return filters;
|
|
181
|
+
}
|
|
182
|
+
const attributeLocalIdToDisplayForm = new Map();
|
|
183
|
+
insightAttributes(insight).forEach((attribute) => {
|
|
184
|
+
attributeLocalIdToDisplayForm.set(attributeLocalId(attribute), attribute.attribute.displayForm);
|
|
185
|
+
});
|
|
186
|
+
if (attributeLocalIdToDisplayForm.size === 0) {
|
|
187
|
+
return filters;
|
|
188
|
+
}
|
|
189
|
+
return filters.map((filter) => {
|
|
190
|
+
if (!isMeasureValueFilter(filter)) {
|
|
191
|
+
return filter;
|
|
192
|
+
}
|
|
193
|
+
const dimensionality = filter.measureValueFilter.dimensionality;
|
|
194
|
+
if (!dimensionality?.length) {
|
|
195
|
+
return filter;
|
|
196
|
+
}
|
|
197
|
+
const resolvedDimensionality = dimensionality.map((item) => {
|
|
198
|
+
if (!isLocalIdRef(item)) {
|
|
199
|
+
return item;
|
|
200
|
+
}
|
|
201
|
+
return attributeLocalIdToDisplayForm.get(item.localIdentifier) ?? item;
|
|
202
|
+
});
|
|
203
|
+
const changed = dimensionality.some((item, i) => item !== resolvedDimensionality[i]);
|
|
204
|
+
if (!changed) {
|
|
205
|
+
return filter;
|
|
206
|
+
}
|
|
207
|
+
return {
|
|
208
|
+
...filter,
|
|
209
|
+
measureValueFilter: {
|
|
210
|
+
...filter.measureValueFilter,
|
|
211
|
+
dimensionality: resolvedDimensionality,
|
|
212
|
+
},
|
|
213
|
+
};
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Matches all-time date filters that are *noop*, i.e. that have no effect on execution.
|
|
218
|
+
*
|
|
219
|
+
* @remarks
|
|
220
|
+
* Noop all-time filters are implicit defaults and have no effect on execution. All-time filters with `emptyValueHandling`
|
|
221
|
+
* are considered meaningful (they carry extra configuration) and should not be treated as no-op.
|
|
222
|
+
*/
|
|
223
|
+
export function isNoopAllTimeDateFilterFixed(f) {
|
|
224
|
+
// Standard check for noop all-time date filter.
|
|
225
|
+
if (isAllTimeDateFilter(f)) {
|
|
226
|
+
return f.relativeDateFilter.emptyValueHandling === undefined;
|
|
227
|
+
}
|
|
228
|
+
// Analytical Designer may store "all-time" as a relative date filter without from/to.
|
|
229
|
+
// Treat it as no-op only when it does NOT carry extra configuration (e.g. emptyValueHandling).
|
|
230
|
+
if (isRelativeDateFilter(f)) {
|
|
231
|
+
return ((f.relativeDateFilter.from === null || f.relativeDateFilter.from === undefined) &&
|
|
232
|
+
(f.relativeDateFilter.to === null || f.relativeDateFilter.to === undefined) &&
|
|
233
|
+
f.relativeDateFilter.emptyValueHandling === undefined);
|
|
234
|
+
}
|
|
235
|
+
// Not expected, but keep the symmetric safety behavior for absolute filters.
|
|
236
|
+
if (isAbsoluteDateFilter(f)) {
|
|
237
|
+
return ((f.absoluteDateFilter.from === null || f.absoluteDateFilter.from === undefined) &&
|
|
238
|
+
(f.absoluteDateFilter.to === null || f.absoluteDateFilter.to === undefined) &&
|
|
239
|
+
f.absoluteDateFilter.emptyValueHandling === undefined);
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { getVisibleFiltersByFilters, getVisibleFiltersByFiltersByTab, getAppliedWidgetFilters, getAppliedDashboardFilters, dashboardFilterToFilterContextItem, resolveMvfDimensionalityLocalRefs, isNoopAllTimeDateFilterFixed, } from "./conversions.js";
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/automations/shared/filters/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,0BAA0B,EAC1B,+BAA+B,EAC/B,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// (C) 2026 GoodData Corporation
|
|
2
|
+
/* oxlint-disable no-barrel-files/no-barrel-files */
|
|
3
|
+
export { getVisibleFiltersByFilters, getVisibleFiltersByFiltersByTab, getAppliedWidgetFilters, getAppliedDashboardFilters, dashboardFilterToFilterContextItem, resolveMvfDimensionalityLocalRefs, isNoopAllTimeDateFilterFixed, } from "./conversions.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardHeader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/DashboardHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardHeader.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/DashboardHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAsE1C,wBAAgB,oBAAoB,4CAGnC;AAID,wBAAgB,eAAe,IAAI,YAAY,CA0B9C"}
|
|
@@ -24,6 +24,7 @@ import { DashboardTabs, useDashboardTabsProps } from "./DashboardTabs.js";
|
|
|
24
24
|
import { DensityDialogProvider } from "./DensityDialogProvider.js";
|
|
25
25
|
import { SettingsDialogProvider } from "./SettingsDialogProvider.js";
|
|
26
26
|
import { ShareDialogDashboardHeader } from "./ShareDialogDashboardHeader.js";
|
|
27
|
+
import { TimezoneDialogProvider } from "./TimezoneDialogProvider.js";
|
|
27
28
|
// these wrapper components are here to prevent the whole DashboardHeader from re-rendering whenever some
|
|
28
29
|
// of the sub-components' props change. by isolating the hooks more, we make sure only the really changed component re-renders.
|
|
29
30
|
function DeleteDialogWrapper() {
|
|
@@ -62,6 +63,6 @@ export function DashboardTabsWrapper() {
|
|
|
62
63
|
// (e.g. opening email dialog) do not re-render the dashboard body
|
|
63
64
|
export function DashboardHeader() {
|
|
64
65
|
return (_jsxs(_Fragment, { children: [
|
|
65
|
-
_jsx(ToastMessages, {}), _jsx(ExportXlsxDialogProvider, {}), _jsx(ExportCsvDialogProvider, {}), _jsx(ExportTabularPdfDialogProvider, {}), _jsx(ExportTemplateDialogProvider, {}), _jsx(ScheduledEmailAutomationsProvider, { children: _jsx(ScheduledEmailConnector, {}) }), _jsx(AlertingDialogProvider, {}), _jsx(ShareDialogDashboardHeader, {}), _jsx(SettingsDialogProvider, {}), _jsx(DensityDialogProvider, {}), _jsx(DeleteDialogWrapper, {}), _jsx(WidgetDeleteDialogWrapper, {}), _jsx(KpiDeleteDialogWrapper, {}), _jsx(SaveAsDialogWrapper, {}), _jsx(TopBarWrapper, {}), _jsx(DashboardTabsWrapper, {}), _jsx(FilterBarWrapper, {}), _jsx(CancelEditDialogWrapper, {})
|
|
66
|
+
_jsx(ToastMessages, {}), _jsx(ExportXlsxDialogProvider, {}), _jsx(ExportCsvDialogProvider, {}), _jsx(ExportTabularPdfDialogProvider, {}), _jsx(ExportTemplateDialogProvider, {}), _jsx(ScheduledEmailAutomationsProvider, { children: _jsx(ScheduledEmailConnector, {}) }), _jsx(AlertingDialogProvider, {}), _jsx(ShareDialogDashboardHeader, {}), _jsx(SettingsDialogProvider, {}), _jsx(DensityDialogProvider, {}), _jsx(TimezoneDialogProvider, {}), _jsx(DeleteDialogWrapper, {}), _jsx(WidgetDeleteDialogWrapper, {}), _jsx(KpiDeleteDialogWrapper, {}), _jsx(SaveAsDialogWrapper, {}), _jsx(TopBarWrapper, {}), _jsx(DashboardTabsWrapper, {}), _jsx(FilterBarWrapper, {}), _jsx(CancelEditDialogWrapper, {})
|
|
66
67
|
] }));
|
|
67
68
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimezoneDialogProvider.d.ts","sourceRoot":"","sources":["../../../../src/presentation/dashboard/DashboardHeader/TimezoneDialogProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,GAAG,IAAI,CAQ5D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useDashboardSelector } from "../../../model/react/DashboardStoreProvider.js";
|
|
3
|
+
import { selectIsTimezoneDialogOpen } from "../../../model/store/ui/uiSelectors.js";
|
|
4
|
+
import { TimezoneDialog } from "../../timezoneDialog/TimezoneDialog.js";
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export function TimezoneDialogProvider() {
|
|
9
|
+
const isOpen = useDashboardSelector(selectIsTimezoneDialogOpen);
|
|
10
|
+
if (!isOpen) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return _jsx(TimezoneDialog, {});
|
|
14
|
+
}
|
|
@@ -20,7 +20,7 @@ export function DashboardLoading(props) {
|
|
|
20
20
|
// can tell the rendering has started even before any dashboard data is loaded.
|
|
21
21
|
// The element is a hidden sibling (same as the gd-dashboard-meta export data),
|
|
22
22
|
// so it cannot affect the layout of the loading indicator.
|
|
23
|
-
return (_jsxs(_Fragment, { children: [exportData ? _jsx("div", { style: { display: "none" }, ...exportData }) : null, _jsx(LoadingComponent, {
|
|
23
|
+
return (_jsxs(_Fragment, { children: [exportData ? _jsx("div", { style: { display: "none" }, ...exportData }) : null, _jsx(LoadingComponent, {})
|
|
24
24
|
] }));
|
|
25
25
|
}
|
|
26
26
|
return _jsx(DashboardInner, { ...props });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimezoneOption.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardSettingsDialog/TimezoneOption.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAoB,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TimezoneOption.d.ts","sourceRoot":"","sources":["../../../src/presentation/dashboardSettingsDialog/TimezoneOption.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAoB,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAetF,UAAU,oBAAoB;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;IACnB,cAAc,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAsDhG"}
|
|
@@ -3,24 +3,26 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
4
|
import { useIntl } from "react-intl";
|
|
5
5
|
import { BROWSER_DETECTED } from "@gooddata/sdk-model";
|
|
6
|
-
import { Bubble, BubbleHoverTrigger, TimezoneSelect, } from "@gooddata/sdk-ui-kit";
|
|
6
|
+
import { Bubble, BubbleHoverTrigger, TimezoneSelect, getTimezoneDisplayLabel, } from "@gooddata/sdk-ui-kit";
|
|
7
|
+
import { useDashboardSelector } from "../../model/react/DashboardStoreProvider.js";
|
|
8
|
+
import { selectTimezone } from "../../model/store/config/configSelectors.js";
|
|
7
9
|
const BUBBLE_ALIGN_POINTS = [{ align: "bc tl" }];
|
|
8
10
|
export function TimezoneOption({ label, tooltip, timezoneConfig, onChange }) {
|
|
9
11
|
const intl = useIntl();
|
|
12
|
+
const workspaceTimezone = useDashboardSelector(selectTimezone);
|
|
13
|
+
const workspaceTimezoneName = getTimezoneDisplayLabel(workspaceTimezone);
|
|
10
14
|
const specialItems = useMemo(() => {
|
|
11
|
-
// TODO INE (CQ-2726): resolve the effective workspace timezone and include it in the item label
|
|
12
15
|
const workspaceItemLabel = intl.formatMessage({
|
|
13
16
|
id: "settingsDashboardDialog.section.timezone.defaultTimezone.workspace",
|
|
17
|
+
}, { timezone: workspaceTimezoneName });
|
|
18
|
+
const browserItemLabel = intl.formatMessage({
|
|
19
|
+
id: "settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser",
|
|
14
20
|
});
|
|
15
|
-
// plain ID here — the label template already brackets the value, so the "id (offset)"
|
|
16
|
-
// display label would produce nested brackets
|
|
17
|
-
const browserTimezoneId = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
18
|
-
const browserItemLabel = intl.formatMessage({ id: "settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser" }, { timezone: browserTimezoneId });
|
|
19
21
|
return [
|
|
20
22
|
{ id: undefined, label: workspaceItemLabel },
|
|
21
23
|
{ id: BROWSER_DETECTED, label: browserItemLabel },
|
|
22
24
|
];
|
|
23
|
-
}, [intl]);
|
|
25
|
+
}, [intl, workspaceTimezoneName]);
|
|
24
26
|
return (_jsxs("div", { className: "configuration-category-item", children: [
|
|
25
27
|
_jsxs("span", { className: "input-label-text", children: [label, _jsxs(BubbleHoverTrigger, { showDelay: 0, hideDelay: 0, eventsOnBubble: true, className: "configuration-category-item-tooltip-icon", children: [
|
|
26
28
|
_jsx("span", { className: "gd-icon-circle-question gd-filter-configuration__help-icon" }), _jsx(Bubble, { alignPoints: BUBBLE_ALIGN_POINTS, children: _jsx("div", { className: "gd-filter-configuration__help-tooltip", children: tooltip }) })
|
|
@@ -2,9 +2,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
// (C) 2025-2026 GoodData Corporation
|
|
3
3
|
import { DefaultUiMenuInteractiveItem } from "@gooddata/sdk-ui-kit";
|
|
4
4
|
export function DrillSelectDropdownMenuItem(props) {
|
|
5
|
-
const { item, isFocused } = props;
|
|
5
|
+
const { item, isFocused, isTooltipOpen } = props;
|
|
6
6
|
if (!item.stringTitle) {
|
|
7
7
|
return (_jsx("div", { className: "gd-drill-to-url-modal-picker s-drill-to-url-modal-picker", children: _jsx("div", { className: "gd-spinner small" }) }));
|
|
8
8
|
}
|
|
9
|
-
return (_jsx("div", { className: `s-gd-drill-modal-picker-item s-${item.data.type}`, children: _jsx(DefaultUiMenuInteractiveItem, { item: item, isFocused: isFocused }) }));
|
|
9
|
+
return (_jsx("div", { className: `s-gd-drill-modal-picker-item s-${item.data.type}`, children: _jsx(DefaultUiMenuInteractiveItem, { item: item, isFocused: isFocused, isTooltipOpen: isTooltipOpen }) }));
|
|
10
10
|
}
|
|
@@ -58,6 +58,7 @@ export declare const de_DE: {
|
|
|
58
58
|
"options.menu.data.too.large": string;
|
|
59
59
|
"options.menu.unsupported.raw.error": string;
|
|
60
60
|
"options.menu.density": string;
|
|
61
|
+
"options.menu.changeTimezone": string;
|
|
61
62
|
"density.dialog.title": string;
|
|
62
63
|
"density.dialog.description": string;
|
|
63
64
|
"density.dialog.option.standard": string;
|
|
@@ -117,6 +118,15 @@ export declare const de_DE: {
|
|
|
117
118
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": string;
|
|
118
119
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": string;
|
|
119
120
|
"settingsDashboardDialog.section.timezone.select.noMatch": string;
|
|
121
|
+
"timezoneDialog.title": string;
|
|
122
|
+
"timezoneDialog.description": string;
|
|
123
|
+
"timezoneDialog.description.ariaLabel": string;
|
|
124
|
+
"timezoneDialog.default": string;
|
|
125
|
+
"timezoneDialog.fromBrowser": string;
|
|
126
|
+
"timezoneDialog.select.searchPlaceholder": string;
|
|
127
|
+
"timezoneDialog.select.noMatch": string;
|
|
128
|
+
"timezoneDialog.currentTime": string;
|
|
129
|
+
"timezoneDialog.success": string;
|
|
120
130
|
"deleteDashboardDialog.headline": string;
|
|
121
131
|
"deleteDashboardDialog.submitButtonText": string;
|
|
122
132
|
"deleteDashboardDialog.defaultMessage": string;
|
|
@@ -368,6 +378,7 @@ export declare const de_DE: {
|
|
|
368
378
|
"header.shareStatus.private.text": string;
|
|
369
379
|
"header.shareStatus.private.strict.tooltip": string;
|
|
370
380
|
"header.shareStatus.private.not.strict.tooltip": string;
|
|
381
|
+
"topBar.timezoneIndicator.tooltip": string;
|
|
371
382
|
"dashboard.shareDialog.removeAccessGranteeTooltip": string;
|
|
372
383
|
"dashboardMeasureValueFilter.section.from_dashboard": string;
|
|
373
384
|
"dashboardMeasureValueFilter.section.all_other": string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"de-DE.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/de-DE.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA83BjB,CAAC"}
|
|
@@ -60,6 +60,7 @@ export const de_DE = {
|
|
|
60
60
|
"options.menu.data.too.large": "Export aufgrund zu vieler Datenpunkte im Ergebnis nicht verfügbar.",
|
|
61
61
|
"options.menu.unsupported.raw.error": "Export aufgrund zu vieler Datenpunkte oder Fehler im Ergebnis nicht verfügbar",
|
|
62
62
|
"options.menu.density": "Inhaltsdichte",
|
|
63
|
+
"options.menu.changeTimezone": "Zeitzone ändern",
|
|
63
64
|
"density.dialog.title": "Inhaltsdichte",
|
|
64
65
|
"density.dialog.description": "Wählen Sie Ihre bevorzugte Inhaltsdichte für dieses und andere Dashboards.",
|
|
65
66
|
"density.dialog.option.standard": "Komfortabel",
|
|
@@ -111,14 +112,23 @@ export const de_DE = {
|
|
|
111
112
|
"settingsDashboardDialog.section.timezone": "Zeitzone",
|
|
112
113
|
"settingsDashboardDialog.section.timezone.defaultTimezone": "Standardzeitzone",
|
|
113
114
|
"settingsDashboardDialog.section.timezone.defaultTimezone.tooltip": "Zeitzone, die zum Auswerten von Datumsfiltern und zum Anzeigen von Datumsangaben auf diesem Dashboard verwendet wird.",
|
|
114
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "Workspace-
|
|
115
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "
|
|
115
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "Workspace-Standard ({timezone})",
|
|
116
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "Lokale Benutzerzeit (vom Browser erkannt)",
|
|
116
117
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle": "Benutzern erlauben, die Dashboard-Zeitzone zu ändern",
|
|
117
118
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle.tooltip": "Wenn aktiviert, können Betrachtende die Dashboard-Zeitzone vorübergehend ändern. Die Änderung wird nicht gespeichert.",
|
|
118
119
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle": "Zeitzone anzeigen",
|
|
119
120
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": "Wenn aktiviert, zeigt das Dashboard an, welche Zeitzone verwendet wird.",
|
|
120
121
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": "Suchen…",
|
|
121
122
|
"settingsDashboardDialog.section.timezone.select.noMatch": "Keine passende Zeitzone.",
|
|
123
|
+
"timezoneDialog.title": "Zeitzone ändern",
|
|
124
|
+
"timezoneDialog.description": "<b>Hinweis:</b> Beim Neuladen der Seite wird die Zeitzone auf den Standard ({timezone}) zurückgesetzt.",
|
|
125
|
+
"timezoneDialog.description.ariaLabel": "Informationsmeldung im Dialog zum Ändern der Zeitzone",
|
|
126
|
+
"timezoneDialog.default": "Standard ({timezone})",
|
|
127
|
+
"timezoneDialog.fromBrowser": "Meine lokale Zeit ({timezone})",
|
|
128
|
+
"timezoneDialog.select.searchPlaceholder": "Suchen…",
|
|
129
|
+
"timezoneDialog.select.noMatch": "Keine passende Zeitzone.",
|
|
130
|
+
"timezoneDialog.currentTime": "Jetzt {time}",
|
|
131
|
+
"timezoneDialog.success": "Großartig! Wir haben die Zeitzone geändert!",
|
|
122
132
|
"deleteDashboardDialog.headline": "Dashboard löschen?",
|
|
123
133
|
"deleteDashboardDialog.submitButtonText": "Löschen",
|
|
124
134
|
"deleteDashboardDialog.defaultMessage": "Sind Sie sicher, dass Sie das Dashboard {title} löschen möchten?",
|
|
@@ -370,6 +380,7 @@ export const de_DE = {
|
|
|
370
380
|
"header.shareStatus.private.text": "Privat",
|
|
371
381
|
"header.shareStatus.private.strict.tooltip": "Nur Sie können dieses Dashboard ansehen und bearbeiten.",
|
|
372
382
|
"header.shareStatus.private.not.strict.tooltip": "Der Ersteller kann dieses Dashboard bearbeiten. Andere Benutzer mit entsprechenden Benutzerrollen können dieses Dashboard bearbeiten, wenn sie danach suchen.",
|
|
383
|
+
"topBar.timezoneIndicator.tooltip": "Zeitzone",
|
|
373
384
|
"dashboard.shareDialog.removeAccessGranteeTooltip": "Entfernt den Zugriff auf dieses Dashboard.",
|
|
374
385
|
"dashboardMeasureValueFilter.section.from_dashboard": "Vom Dashboard",
|
|
375
386
|
"dashboardMeasureValueFilter.section.all_other": "Alle anderen",
|
|
@@ -58,6 +58,7 @@ export declare const en_AU: {
|
|
|
58
58
|
"options.menu.data.too.large": string;
|
|
59
59
|
"options.menu.unsupported.raw.error": string;
|
|
60
60
|
"options.menu.density": string;
|
|
61
|
+
"options.menu.changeTimezone": string;
|
|
61
62
|
"density.dialog.title": string;
|
|
62
63
|
"density.dialog.description": string;
|
|
63
64
|
"density.dialog.option.standard": string;
|
|
@@ -117,6 +118,15 @@ export declare const en_AU: {
|
|
|
117
118
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": string;
|
|
118
119
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": string;
|
|
119
120
|
"settingsDashboardDialog.section.timezone.select.noMatch": string;
|
|
121
|
+
"timezoneDialog.title": string;
|
|
122
|
+
"timezoneDialog.description": string;
|
|
123
|
+
"timezoneDialog.description.ariaLabel": string;
|
|
124
|
+
"timezoneDialog.default": string;
|
|
125
|
+
"timezoneDialog.fromBrowser": string;
|
|
126
|
+
"timezoneDialog.select.searchPlaceholder": string;
|
|
127
|
+
"timezoneDialog.select.noMatch": string;
|
|
128
|
+
"timezoneDialog.currentTime": string;
|
|
129
|
+
"timezoneDialog.success": string;
|
|
120
130
|
"deleteDashboardDialog.headline": string;
|
|
121
131
|
"deleteDashboardDialog.submitButtonText": string;
|
|
122
132
|
"deleteDashboardDialog.defaultMessage": string;
|
|
@@ -368,6 +378,7 @@ export declare const en_AU: {
|
|
|
368
378
|
"header.shareStatus.private.text": string;
|
|
369
379
|
"header.shareStatus.private.strict.tooltip": string;
|
|
370
380
|
"header.shareStatus.private.not.strict.tooltip": string;
|
|
381
|
+
"topBar.timezoneIndicator.tooltip": string;
|
|
371
382
|
"dashboard.shareDialog.removeAccessGranteeTooltip": string;
|
|
372
383
|
"dashboardMeasureValueFilter.section.from_dashboard": string;
|
|
373
384
|
"dashboardMeasureValueFilter.section.all_other": string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"en-AU.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/en-AU.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA83BjB,CAAC"}
|
|
@@ -60,6 +60,7 @@ export const en_AU = {
|
|
|
60
60
|
"options.menu.data.too.large": "Export unavailable due to too many data points in the result.",
|
|
61
61
|
"options.menu.unsupported.raw.error": "Export unavailable due to too many data points or error in the result.",
|
|
62
62
|
"options.menu.density": "Content density",
|
|
63
|
+
"options.menu.changeTimezone": "Change time zone",
|
|
63
64
|
"density.dialog.title": "Content density",
|
|
64
65
|
"density.dialog.description": "Choose your preferred level of content density for this and other dashboards.",
|
|
65
66
|
"density.dialog.option.standard": "Comfortable",
|
|
@@ -111,14 +112,23 @@ export const en_AU = {
|
|
|
111
112
|
"settingsDashboardDialog.section.timezone": "Time zone",
|
|
112
113
|
"settingsDashboardDialog.section.timezone.defaultTimezone": "Default time zone setting",
|
|
113
114
|
"settingsDashboardDialog.section.timezone.defaultTimezone.tooltip": "Time zone used to evaluate date filters and show dates on this dashboard.",
|
|
114
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "
|
|
115
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "
|
|
115
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "Workspace default ({timezone})",
|
|
116
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "User local time (Browser-detected)",
|
|
116
117
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle": "Allow users to change the dashboard's time zone",
|
|
117
118
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle.tooltip": "When enabled, viewers can temporarily change the dashboard's time zone. The change is not saved.",
|
|
118
119
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle": "Show the time zone",
|
|
119
120
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": "When enabled, the dashboard shows which time zone is used.",
|
|
120
121
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": "Search ...",
|
|
121
122
|
"settingsDashboardDialog.section.timezone.select.noMatch": "No matching time zones.",
|
|
123
|
+
"timezoneDialog.title": "Change time zone",
|
|
124
|
+
"timezoneDialog.description": "<b>Note:</b> Time zone resets to the default ({timezone}) when you reload the page.",
|
|
125
|
+
"timezoneDialog.description.ariaLabel": "Change time zone dialog information message",
|
|
126
|
+
"timezoneDialog.default": "Default ({timezone})",
|
|
127
|
+
"timezoneDialog.fromBrowser": "My local time ({timezone})",
|
|
128
|
+
"timezoneDialog.select.searchPlaceholder": "Search ...",
|
|
129
|
+
"timezoneDialog.select.noMatch": "No matching time zones.",
|
|
130
|
+
"timezoneDialog.currentTime": "Now {time}",
|
|
131
|
+
"timezoneDialog.success": "Great! We changed the time zone!",
|
|
122
132
|
"deleteDashboardDialog.headline": "Delete dashboard?",
|
|
123
133
|
"deleteDashboardDialog.submitButtonText": "Delete",
|
|
124
134
|
"deleteDashboardDialog.defaultMessage": "Are you sure you want to delete dashboard {title}?",
|
|
@@ -370,6 +380,7 @@ export const en_AU = {
|
|
|
370
380
|
"header.shareStatus.private.text": "Private",
|
|
371
381
|
"header.shareStatus.private.strict.tooltip": "Only you can view and edit this dashboard.",
|
|
372
382
|
"header.shareStatus.private.not.strict.tooltip": "The creator can edit this dashboard. Other users with suitable user roles can edit this dashboard when they drill to it.",
|
|
383
|
+
"topBar.timezoneIndicator.tooltip": "Time zone",
|
|
373
384
|
"dashboard.shareDialog.removeAccessGranteeTooltip": "Remove access to this dashboard.",
|
|
374
385
|
"dashboardMeasureValueFilter.section.from_dashboard": "From dashboard",
|
|
375
386
|
"dashboardMeasureValueFilter.section.all_other": "All other",
|
|
@@ -58,6 +58,7 @@ export declare const en_GB: {
|
|
|
58
58
|
"options.menu.data.too.large": string;
|
|
59
59
|
"options.menu.unsupported.raw.error": string;
|
|
60
60
|
"options.menu.density": string;
|
|
61
|
+
"options.menu.changeTimezone": string;
|
|
61
62
|
"density.dialog.title": string;
|
|
62
63
|
"density.dialog.description": string;
|
|
63
64
|
"density.dialog.option.standard": string;
|
|
@@ -117,6 +118,15 @@ export declare const en_GB: {
|
|
|
117
118
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": string;
|
|
118
119
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": string;
|
|
119
120
|
"settingsDashboardDialog.section.timezone.select.noMatch": string;
|
|
121
|
+
"timezoneDialog.title": string;
|
|
122
|
+
"timezoneDialog.description": string;
|
|
123
|
+
"timezoneDialog.description.ariaLabel": string;
|
|
124
|
+
"timezoneDialog.default": string;
|
|
125
|
+
"timezoneDialog.fromBrowser": string;
|
|
126
|
+
"timezoneDialog.select.searchPlaceholder": string;
|
|
127
|
+
"timezoneDialog.select.noMatch": string;
|
|
128
|
+
"timezoneDialog.currentTime": string;
|
|
129
|
+
"timezoneDialog.success": string;
|
|
120
130
|
"deleteDashboardDialog.headline": string;
|
|
121
131
|
"deleteDashboardDialog.submitButtonText": string;
|
|
122
132
|
"deleteDashboardDialog.defaultMessage": string;
|
|
@@ -368,6 +378,7 @@ export declare const en_GB: {
|
|
|
368
378
|
"header.shareStatus.private.text": string;
|
|
369
379
|
"header.shareStatus.private.strict.tooltip": string;
|
|
370
380
|
"header.shareStatus.private.not.strict.tooltip": string;
|
|
381
|
+
"topBar.timezoneIndicator.tooltip": string;
|
|
371
382
|
"dashboard.shareDialog.removeAccessGranteeTooltip": string;
|
|
372
383
|
"dashboardMeasureValueFilter.section.from_dashboard": string;
|
|
373
384
|
"dashboardMeasureValueFilter.section.all_other": string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en-GB.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/en-GB.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"en-GB.localization-bundle.d.ts","sourceRoot":"","sources":["../../../../src/presentation/localization/bundles/en-GB.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA83BjB,CAAC"}
|
|
@@ -60,6 +60,7 @@ export const en_GB = {
|
|
|
60
60
|
"options.menu.data.too.large": "Export unavailable due to too many data points in the result.",
|
|
61
61
|
"options.menu.unsupported.raw.error": "Export unavailable due to too many data points or error in the result.",
|
|
62
62
|
"options.menu.density": "Content density",
|
|
63
|
+
"options.menu.changeTimezone": "Change time zone",
|
|
63
64
|
"density.dialog.title": "Content density",
|
|
64
65
|
"density.dialog.description": "Choose your preferred level of content density for this and other dashboards.",
|
|
65
66
|
"density.dialog.option.standard": "Comfortable",
|
|
@@ -111,14 +112,23 @@ export const en_GB = {
|
|
|
111
112
|
"settingsDashboardDialog.section.timezone": "Time zone",
|
|
112
113
|
"settingsDashboardDialog.section.timezone.defaultTimezone": "Default time zone",
|
|
113
114
|
"settingsDashboardDialog.section.timezone.defaultTimezone.tooltip": "Time zone used for evaluating date filters and displaying dates on this dashboard.",
|
|
114
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "Workspace
|
|
115
|
-
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "
|
|
115
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.workspace": "Workspace default ({timezone})",
|
|
116
|
+
"settingsDashboardDialog.section.timezone.defaultTimezone.fromBrowser": "User local time (Browser-detected)",
|
|
116
117
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle": "Allow users to change the dashboard's time zone",
|
|
117
118
|
"settingsDashboardDialog.section.timezone.allowUserOverride.toggle.tooltip": "When enabled, viewers can temporarily change the dashboard's time zone. The change is not saved.",
|
|
118
119
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle": "Show time zone",
|
|
119
120
|
"settingsDashboardDialog.section.timezone.showTimezoneInfo.toggle.tooltip": "When enabled, the dashboard shows which time zone is used.",
|
|
120
121
|
"settingsDashboardDialog.section.timezone.select.searchPlaceholder": "Search ...",
|
|
121
122
|
"settingsDashboardDialog.section.timezone.select.noMatch": "No matching time zones.",
|
|
123
|
+
"timezoneDialog.title": "Change time zone",
|
|
124
|
+
"timezoneDialog.description": "<b>Note:</b> Time zone resets to the default ({timezone}) when you reload the page.",
|
|
125
|
+
"timezoneDialog.description.ariaLabel": "Change time zone dialog information message",
|
|
126
|
+
"timezoneDialog.default": "Default ({timezone})",
|
|
127
|
+
"timezoneDialog.fromBrowser": "My local time ({timezone})",
|
|
128
|
+
"timezoneDialog.select.searchPlaceholder": "Search ...",
|
|
129
|
+
"timezoneDialog.select.noMatch": "No matching time zones.",
|
|
130
|
+
"timezoneDialog.currentTime": "Now {time}",
|
|
131
|
+
"timezoneDialog.success": "Great! We changed the time zone!",
|
|
122
132
|
"deleteDashboardDialog.headline": "Delete dashboard?",
|
|
123
133
|
"deleteDashboardDialog.submitButtonText": "Delete",
|
|
124
134
|
"deleteDashboardDialog.defaultMessage": "Are you certain you wish to delete dashboard {title}?",
|
|
@@ -370,6 +380,7 @@ export const en_GB = {
|
|
|
370
380
|
"header.shareStatus.private.text": "Private",
|
|
371
381
|
"header.shareStatus.private.strict.tooltip": "Only you can view and edit this dashboard.",
|
|
372
382
|
"header.shareStatus.private.not.strict.tooltip": "The creator can edit this dashboard. Other users with suitable user roles can edit this dashboard when they drill to it.",
|
|
383
|
+
"topBar.timezoneIndicator.tooltip": "Time zone",
|
|
373
384
|
"dashboard.shareDialog.removeAccessGranteeTooltip": "Remove access to this dashboard.",
|
|
374
385
|
"dashboardMeasureValueFilter.section.from_dashboard": "From dashboard",
|
|
375
386
|
"dashboardMeasureValueFilter.section.all_other": "All other",
|