@gooddata/sdk-ui-dashboard 11.36.0-alpha.3 → 11.36.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/NOTICE +63 -115
  2. package/esm/__version.d.ts +1 -1
  3. package/esm/__version.js +1 -1
  4. package/esm/index.d.ts +5 -13
  5. package/esm/index.js +2 -10
  6. package/esm/internal.d.ts +1 -1
  7. package/esm/model/commandHandlers/dashboard/common/filterViews.js +24 -1
  8. package/esm/model/commandHandlers/dashboard/common/parameterHydration.d.ts +7 -1
  9. package/esm/model/commandHandlers/dashboard/common/parameterHydration.js +16 -2
  10. package/esm/model/commandHandlers/dashboard/common/stateInitializers.js +4 -2
  11. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.d.ts +7 -1
  12. package/esm/model/commandHandlers/drill/resolveDrillToCustomUrl.js +80 -4
  13. package/esm/model/commandHandlers/filterContext/filterViewHandler.js +10 -0
  14. package/esm/model/commandHandlers/filterContext/filterViewParameters.d.ts +7 -0
  15. package/esm/model/commandHandlers/filterContext/filterViewParameters.js +11 -0
  16. package/esm/model/store/config/configSelectors.d.ts +0 -6
  17. package/esm/model/store/config/configSelectors.js +0 -8
  18. package/esm/model/store/tabs/index.d.ts +4 -0
  19. package/esm/model/store/tabs/parameters/parametersReducers.d.ts +11 -1
  20. package/esm/model/store/tabs/parameters/parametersReducers.js +16 -8
  21. package/esm/model/store/tabs/parameters/parametersSelectors.d.ts +7 -0
  22. package/esm/model/store/tabs/parameters/parametersSelectors.js +17 -0
  23. package/esm/model/types/commonTypes.d.ts +11 -2
  24. package/esm/model/utils/measureValueFilterUtils.d.ts +14 -0
  25. package/esm/model/utils/measureValueFilterUtils.js +21 -0
  26. package/esm/presentation/alerting/DefaultAlertingDialog/{DefaultAlertingDialogNew.d.ts → DefaultAlertingDialog.d.ts} +1 -1
  27. package/esm/presentation/alerting/DefaultAlertingDialog/{DefaultAlertingDialogNew.js → DefaultAlertingDialog.js} +6 -12
  28. package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelect.js +43 -9
  29. package/esm/presentation/alerting/DefaultAlertingDialog/hooks/useSaveAlertToBackend.js +13 -25
  30. package/esm/presentation/alerting/types.d.ts +1 -72
  31. package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.d.ts +1 -2
  32. package/esm/presentation/automationFilters/hooks/useValidateExistingAutomationFilters.js +5 -5
  33. package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProvider.js +1 -8
  34. package/esm/presentation/dashboard/DashboardHeader/ScheduledEmailDialogProvider.js +17 -8
  35. package/esm/presentation/dashboard/DashboardHeader/ShareDialogDashboardHeader.js +5 -2
  36. package/esm/presentation/dashboard/components/DashboardRenderer.js +2 -2
  37. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditor.js +97 -13
  38. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParameters.d.ts +1 -1
  39. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParameters.js +3 -3
  40. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/DashboardParametersSection.d.ts +3 -2
  41. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/DashboardParametersSection.js +17 -4
  42. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/InsightParametersSection.d.ts +4 -2
  43. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/InsightParametersSection.js +37 -4
  44. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/Parameter.d.ts +4 -3
  45. package/esm/presentation/drill/DrillConfigPanel/DrillToUrl/CustomUrlEditorParametersSections/Parameter.js +3 -4
  46. package/esm/presentation/filterBar/attributeFilter/DefaultDashboardAttributeFilter.js +4 -1
  47. package/esm/presentation/filterBar/filterBar/DefaultDashboardFilterGroup.js +4 -1
  48. package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +2 -9
  49. package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +2 -9
  50. package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +2 -9
  51. package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +2 -9
  52. package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +2 -9
  53. package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +2 -9
  54. package/esm/presentation/localization/bundles/en-US.localization-bundle.d.ts +4 -36
  55. package/esm/presentation/localization/bundles/en-US.localization-bundle.js +4 -36
  56. package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +2 -9
  57. package/esm/presentation/localization/bundles/es-419.localization-bundle.js +2 -9
  58. package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +2 -9
  59. package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +2 -9
  60. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +2 -9
  61. package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +2 -9
  62. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +2 -9
  63. package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +2 -9
  64. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +2 -9
  65. package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +2 -9
  66. package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +2 -9
  67. package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +2 -9
  68. package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +2 -9
  69. package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +2 -9
  70. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +2 -9
  71. package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +2 -9
  72. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +2 -9
  73. package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +2 -9
  74. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +2 -9
  75. package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +2 -9
  76. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +2 -9
  77. package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +2 -9
  78. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +2 -9
  79. package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +2 -9
  80. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +2 -9
  81. package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +2 -9
  82. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +2 -9
  83. package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +2 -9
  84. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +2 -9
  85. package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +2 -9
  86. package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +2 -9
  87. package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +2 -9
  88. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +2 -9
  89. package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +2 -9
  90. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +2 -9
  91. package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +2 -9
  92. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +2 -9
  93. package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +2 -9
  94. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +2 -9
  95. package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +2 -9
  96. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +2 -9
  97. package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +2 -9
  98. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +2 -9
  99. package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +2 -9
  100. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/DefaultScheduledEmailDialog.js +26 -59
  101. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.d.ts +2 -6
  102. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useEditScheduledEmail.js +22 -104
  103. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/hooks/useSaveScheduledEmailToBackend.js +12 -33
  104. package/esm/presentation/scheduledEmail/hooks/useWidgetAutomationFilters.d.ts +3 -0
  105. package/esm/presentation/scheduledEmail/hooks/useWidgetAutomationFilters.js +46 -0
  106. package/esm/presentation/scheduledEmail/types.d.ts +1 -7
  107. package/esm/presentation/scheduledEmail/utils/filters.d.ts +2 -0
  108. package/esm/presentation/scheduledEmail/utils/filters.js +5 -0
  109. package/esm/presentation/shareDialog/DefaultShareDialog.d.ts +1 -1
  110. package/esm/presentation/shareDialog/DefaultShareDialog.js +2 -2
  111. package/esm/presentation/shareDialog/types.d.ts +5 -1
  112. package/esm/presentation/widget/insight/configuration/DrillTargets/useInvalidFilteringParametersIdentifiers.d.ts +2 -2
  113. package/esm/presentation/widget/insight/configuration/DrillTargets/useInvalidFilteringParametersIdentifiers.js +36 -5
  114. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/EditAlert.js +2 -2
  115. package/esm/presentation/widget/insight/configuration/InsightAlertConfig/hooks/useInsightWidgetAlerting.js +3 -6
  116. package/esm/presentation/widget/insight/configuration/InsightAlerts.js +1 -9
  117. package/esm/sdk-ui-dashboard.d.ts +28 -240
  118. package/package.json +20 -20
  119. package/esm/model/react/filtering/shared.d.ts +0 -6
  120. package/esm/model/react/filtering/shared.js +0 -38
  121. package/esm/model/react/filtering/useAutomationAvailableDashboardFilters.d.ts +0 -13
  122. package/esm/model/react/filtering/useAutomationAvailableDashboardFilters.js +0 -54
  123. package/esm/model/react/filtering/useDashboardScheduledExportFilters.d.ts +0 -19
  124. package/esm/model/react/filtering/useDashboardScheduledExportFilters.js +0 -18
  125. package/esm/model/react/filtering/useScheduledExportFilters.d.ts +0 -26
  126. package/esm/model/react/filtering/useScheduledExportFilters.js +0 -23
  127. package/esm/model/react/filtering/useWidgetAlertFilters.d.ts +0 -33
  128. package/esm/model/react/filtering/useWidgetAlertFilters.js +0 -48
  129. package/esm/model/react/filtering/useWidgetScheduledExportFilters.d.ts +0 -33
  130. package/esm/model/react/filtering/useWidgetScheduledExportFilters.js +0 -48
  131. package/esm/model/react/useDashboardAlerting/useEnableAutomationFilterContext.d.ts +0 -4
  132. package/esm/model/react/useDashboardAlerting/useEnableAutomationFilterContext.js +0 -20
  133. package/esm/model/react/useDashboardAlertsOld.d.ts +0 -32
  134. package/esm/model/react/useDashboardAlertsOld.js +0 -141
  135. package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogOld.d.ts +0 -5
  136. package/esm/presentation/alerting/DefaultAlertingDialog/DefaultAlertingDialogOld.js +0 -36
  137. package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelectOld.d.ts +0 -17
  138. package/esm/presentation/alerting/DefaultAlertingDialog/components/AlertAttributeSelectOld.js +0 -103
  139. package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogOld.d.ts +0 -5
  140. package/esm/presentation/alerting/DefaultAlertingManagementDialog/DefaultAlertingManagementDialogOld.js +0 -53
  141. package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/AlertOld.d.ts +0 -9
  142. package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/AlertOld.js +0 -84
  143. package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/AlertsListOld.d.ts +0 -11
  144. package/esm/presentation/alerting/DefaultAlertingManagementDialog/components/AlertsListOld.js +0 -16
  145. package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProviderOld.d.ts +0 -1
  146. package/esm/presentation/dashboard/DashboardHeader/AlertingDialogProviderOld.js +0 -12
  147. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFilters.d.ts +0 -29
  148. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFilters.js +0 -61
  149. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFiltersList.d.ts +0 -6
  150. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentFiltersList.js +0 -12
  151. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentItems.d.ts +0 -17
  152. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentItems.js +0 -68
  153. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.d.ts +0 -4
  154. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/AttachmentsWrapper.js +0 -6
  155. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.d.ts +0 -15
  156. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/DashboardAttachments.js +0 -42
  157. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.d.ts +0 -18
  158. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/components/AttachmentsOld/WidgetAttachments.js +0 -25
  159. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.d.ts +0 -2
  160. package/esm/presentation/scheduledEmail/DefaultScheduledEmailDialog/types.js +0 -2
  161. package/esm/presentation/widget/insight/configuration/InsightAlertsOld.d.ts +0 -2
  162. package/esm/presentation/widget/insight/configuration/InsightAlertsOld.js +0 -43
@@ -2,14 +2,19 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
2
2
  // (C) 2020-2026 GoodData Corporation
3
3
  import { Fragment } from "react";
4
4
  import { FormattedMessage } from "react-intl";
5
- import { filterLocalIdentifier, filterObjRef, } from "@gooddata/sdk-model";
5
+ import { filterLocalIdentifier, filterObjRef, objRefToString, } from "@gooddata/sdk-model";
6
+ import { MeasureValueFilterDetailsBubble } from "@gooddata/sdk-ui-filters/internal";
6
7
  import { useDashboardSelector } from "../../../../../model/react/DashboardStoreProvider.js";
7
- import { selectAllCatalogDisplayFormsMap } from "../../../../../model/store/catalog/catalogSelectors.js";
8
+ import { selectAllCatalogDisplayFormsMap, selectAllCatalogMeasuresMap, } from "../../../../../model/store/catalog/catalogSelectors.js";
8
9
  import { DropdownSectionHeader } from "../DropdownSectionHeader.js";
9
10
  import { DisplayFormParam } from "./DisplayFormParam.js";
10
- export function DashboardParametersSection({ dashboardFilters, attributeFilterConfigs, onAdd, }) {
11
+ import { Parameter } from "./Parameter.js";
12
+ export function DashboardParametersSection({ dashboardFilters, dashboardMeasureValueFilters, attributeFilterConfigs, intl, onAdd, }) {
11
13
  const catalogDisplayFormsMap = useDashboardSelector(selectAllCatalogDisplayFormsMap);
12
- return dashboardFilters && dashboardFilters.length > 0 ? (_jsxs(_Fragment, { children: [
14
+ const catalogMeasuresMap = useDashboardSelector(selectAllCatalogMeasuresMap);
15
+ const hasAttributeFilters = !!dashboardFilters?.length;
16
+ const hasMeasureValueFilters = !!dashboardMeasureValueFilters?.length;
17
+ return hasAttributeFilters || hasMeasureValueFilters ? (_jsxs(_Fragment, { children: [
13
18
  _jsx(DropdownSectionHeader, { children: _jsx(FormattedMessage, { id: "configurationPanel.drillIntoUrl.editor.dashboardParametersSectionLabel" }) }), dashboardFilters?.map((filter, index) => {
14
19
  const df = catalogDisplayFormsMap.get(filterObjRef(filter));
15
20
  const filterIdentifier = df?.id;
@@ -24,5 +29,13 @@ export function DashboardParametersSection({ dashboardFilters, attributeFilterCo
24
29
  }, isFilter: true })) : null, secondaryDf && areDfsDifferent ? (_jsx(DisplayFormParam, { item: secondaryDf, iconClassName: "gd-icon-filter", onAdd: () => {
25
30
  onAdd(`{dash_attribute_filter_selection(${filterSecondaryIdentifier})}`);
26
31
  }, isFilter: true })) : null] }, index));
32
+ }), dashboardMeasureValueFilters?.map((filter) => {
33
+ const { measure, localIdentifier, title } = filter.dashboardMeasureValueFilter;
34
+ const catalogMeasure = catalogMeasuresMap.get(measure);
35
+ const measureIdentifier = catalogMeasure?.measure.id ?? objRefToString(measure);
36
+ const measureTitle = title ?? catalogMeasure?.measure.title ?? measureIdentifier;
37
+ return (_jsx(Parameter, { name: measureTitle, description: measureIdentifier, detailTrigger: _jsx(MeasureValueFilterDetailsBubble, { title: measureTitle, requestHandler: catalogMeasure ? async () => catalogMeasure.measure : undefined }), iconClassName: "gd-icon-filter", onAdd: () => {
38
+ onAdd(`{dash_mvf_condition(${measureIdentifier})}`);
39
+ }, intl: intl }, localIdentifier));
27
40
  })] })) : null;
28
41
  }
@@ -1,8 +1,10 @@
1
- import { type IAttributeFilter } from "@gooddata/sdk-model";
1
+ import { type IAttributeFilter, type IMeasureValueFilter, type ObjRef } from "@gooddata/sdk-model";
2
2
  import { type IAttributeWithDisplayForm, type IParametersPanelSectionsCommonProps } from "../types.js";
3
3
  export interface IInsightParametersSectionProps extends IParametersPanelSectionsCommonProps {
4
4
  attributeDisplayForms?: IAttributeWithDisplayForm[];
5
5
  loadingAttributeDisplayForms: boolean;
6
6
  insightFilters?: IAttributeFilter[];
7
+ insightMeasureValueFilters?: IMeasureValueFilter[];
8
+ widgetRef: ObjRef;
7
9
  }
8
- export declare function InsightParametersSection({ attributeDisplayForms, loadingAttributeDisplayForms, insightFilters, onAdd }: IInsightParametersSectionProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function InsightParametersSection({ attributeDisplayForms, loadingAttributeDisplayForms, insightFilters, insightMeasureValueFilters, widgetRef, intl, onAdd }: IInsightParametersSectionProps): import("react/jsx-runtime").JSX.Element;
@@ -1,19 +1,52 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2020-2026 GoodData Corporation
3
3
  import { FormattedMessage } from "react-intl";
4
- import { filterObjRef } from "@gooddata/sdk-model";
4
+ import { areObjRefsEqual, filterObjRef, insightMeasures, isLocalIdRef, measureAlias, measureItem, measureLocalId, measureTitle, objRefToString, } from "@gooddata/sdk-model";
5
+ import { MeasureValueFilterDetailsBubble } from "@gooddata/sdk-ui-filters/internal";
5
6
  import { useDashboardSelector } from "../../../../../model/react/DashboardStoreProvider.js";
6
- import { selectAllCatalogDisplayFormsMap } from "../../../../../model/store/catalog/catalogSelectors.js";
7
+ import { selectAllCatalogDisplayFormsMap, selectAllCatalogMeasuresMap, } from "../../../../../model/store/catalog/catalogSelectors.js";
8
+ import { selectInsightByWidgetRef } from "../../../../../model/store/insights/insightsSelectors.js";
7
9
  import { DropdownSectionHeader } from "../DropdownSectionHeader.js";
8
10
  import { DisplayFormParam } from "./DisplayFormParam.js";
9
- export function InsightParametersSection({ attributeDisplayForms, loadingAttributeDisplayForms, insightFilters, onAdd, }) {
11
+ import { Parameter } from "./Parameter.js";
12
+ export function InsightParametersSection({ attributeDisplayForms, loadingAttributeDisplayForms, insightFilters, insightMeasureValueFilters, widgetRef, intl, onAdd, }) {
10
13
  const catalogDisplayForms = useDashboardSelector(selectAllCatalogDisplayFormsMap);
14
+ const catalogMeasuresMap = useDashboardSelector(selectAllCatalogMeasuresMap);
15
+ const insight = useDashboardSelector(selectInsightByWidgetRef(widgetRef));
16
+ const measures = insight ? insightMeasures(insight) : [];
11
17
  return (_jsx(_Fragment, { children: (attributeDisplayForms && attributeDisplayForms.length > 0) ||
12
18
  loadingAttributeDisplayForms ||
13
- (insightFilters && insightFilters.length > 0) ? (_jsxs(_Fragment, { children: [
19
+ (insightFilters && insightFilters.length > 0) ||
20
+ (insightMeasureValueFilters && insightMeasureValueFilters.length > 0) ? (_jsxs(_Fragment, { children: [
14
21
  _jsx(DropdownSectionHeader, { children: _jsx(FormattedMessage, { id: "configurationPanel.drillIntoUrl.editor.insightParametersSectionLabel" }) }), loadingAttributeDisplayForms ? (_jsx("div", { className: "gd-drill-to-url-section-loading s-drill-to-custom-url-attr-section-loading", children: _jsx("div", { className: "gd-spinner small" }) })) : (attributeDisplayForms?.map((item) => (_jsx(DisplayFormParam, { item: item.displayForm, onAdd: onAdd }, item.displayForm.id)))), insightFilters?.map((filter, index) => {
15
22
  const displayFormRef = filterObjRef(filter);
16
23
  const df = catalogDisplayForms.get(displayFormRef);
17
24
  return (df && (_jsx(DisplayFormParam, { item: df, onAdd: () => onAdd(`{attribute_filter_selection(${df.id})}`), iconClassName: "gd-icon-filter", isFilter: true }, index)));
25
+ }), insightMeasureValueFilters?.map((filter) => {
26
+ const { measure, localIdentifier } = filter.measureValueFilter;
27
+ const insightMeasure = getInsightMeasure(measure, measures);
28
+ const insightMeasureItem = insightMeasure ? measureItem(insightMeasure) : undefined;
29
+ const catalogMeasure = isLocalIdRef(measure)
30
+ ? insightMeasureItem && catalogMeasuresMap.get(insightMeasureItem)
31
+ : catalogMeasuresMap.get(measure);
32
+ const measureIdentifier = objRefToString(measure);
33
+ const resolvedTitle = getInsightMeasureTitle(insightMeasure) ??
34
+ catalogMeasure?.measure.title ??
35
+ measureIdentifier;
36
+ return (_jsx(Parameter, { name: resolvedTitle, description: measureIdentifier, detailTrigger: _jsx(MeasureValueFilterDetailsBubble, { title: resolvedTitle, requestHandler: catalogMeasure ? async () => catalogMeasure.measure : undefined }), iconClassName: "gd-icon-filter", onAdd: () => {
37
+ onAdd(`{mvf_condition(${measureIdentifier})}`);
38
+ }, intl: intl }, localIdentifier ?? measureIdentifier));
18
39
  })] })) : null }));
19
40
  }
41
+ function getInsightMeasureTitle(measure) {
42
+ return measure ? (measureAlias(measure) ?? measureTitle(measure)) : undefined;
43
+ }
44
+ function getInsightMeasure(measureRef, measures) {
45
+ if (isLocalIdRef(measureRef)) {
46
+ return measures.find((measure) => measureLocalId(measure) === measureRef.localIdentifier);
47
+ }
48
+ return measures.find((measure) => {
49
+ const item = measureItem(measure);
50
+ return item ? areObjRefsEqual(item, measureRef) : false;
51
+ });
52
+ }
@@ -1,12 +1,13 @@
1
- import { type ReactElement } from "react";
1
+ import { type ReactElement, type ReactNode } from "react";
2
2
  import { type IntlShape } from "react-intl";
3
3
  interface IParameterProps {
4
4
  name: string;
5
5
  description?: string;
6
- detailContent: ReactElement;
6
+ detailContent?: ReactElement;
7
+ detailTrigger?: ReactNode;
7
8
  iconClassName: string;
8
9
  onAdd: () => void;
9
10
  intl: IntlShape;
10
11
  }
11
- export declare function Parameter({ name, description, detailContent, iconClassName, onAdd, intl }: IParameterProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Parameter({ name, description, detailContent, detailTrigger, iconClassName, onAdd, intl }: IParameterProps): import("react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -5,7 +5,7 @@ import classNames from "classnames";
5
5
  import { Bubble, Button } from "@gooddata/sdk-ui-kit";
6
6
  import { isDarkTheme, useTheme } from "@gooddata/sdk-ui-theme-provider";
7
7
  import { simplifyText } from "@gooddata/util";
8
- export function Parameter({ name, description, detailContent, iconClassName, onAdd, intl }) {
8
+ export function Parameter({ name, description, detailContent, detailTrigger, iconClassName, onAdd, intl, }) {
9
9
  const [displayHelp, setDisplayHelp] = useState(false);
10
10
  const theme = useTheme();
11
11
  const isDark = theme && isDarkTheme(theme);
@@ -16,7 +16,6 @@ export function Parameter({ name, description, detailContent, iconClassName, onA
16
16
  id: "configurationPanel.drillIntoUrl.editor.addParameterButtonLabel",
17
17
  });
18
18
  return (_jsxs("div", { id: id, className: itemClassNames, onClick: () => onAdd(), children: [
19
- _jsx("span", { className: "gd-parameter-title", children: name }), description ? _jsxs("span", { className: "addon s-parameter-description", children: ["(", description, ")"] }) : null, _jsx(Button, { className: "gd-button gd-button-link s-parameter-add-button", value: addButtonLabel }), _jsxs("div", { className: "gd-list-item-tooltip", children: [
20
- _jsx("span", { className: "gd-icon-circle-question gd-list-item-tooltip-icon s-parameter-help-icon", onMouseEnter: () => setDisplayHelp(true), onMouseLeave: () => setDisplayHelp(false) }), displayHelp ? (_jsx(Bubble, { className: `themed-bubble ${isDark ? "bubble-primary" : "bubble-light"}`, alignTo: `#${id}`, alignPoints: [{ align: "cr tl" }], children: detailContent })) : null] })
21
- ] }));
19
+ _jsx("span", { className: "gd-parameter-title", children: name }), description ? _jsxs("span", { className: "addon s-parameter-description", children: ["(", description, ")"] }) : null, _jsx(Button, { className: "gd-button gd-button-link s-parameter-add-button", value: addButtonLabel }), detailTrigger ? (_jsx("div", { className: "gd-list-item-tooltip", onClick: (event) => event.stopPropagation(), children: detailTrigger })) : detailContent ? (_jsxs("div", { className: "gd-list-item-tooltip", children: [
20
+ _jsx("span", { className: "gd-icon-circle-question gd-list-item-tooltip-icon s-parameter-help-icon", onMouseEnter: () => setDisplayHelp(true), onMouseLeave: () => setDisplayHelp(false) }), displayHelp ? (_jsx(Bubble, { className: `themed-bubble ${isDark ? "bubble-primary" : "bubble-light"}`, alignTo: `#${id}`, alignPoints: [{ align: "cr tl" }], children: detailContent })) : null] })) : null] }));
22
21
  }
@@ -145,6 +145,9 @@ function DefaultDashboardAttributeFilterInner(props) {
145
145
  filterTitle: title,
146
146
  strong: (chunks) => _jsx("strong", { children: chunks }),
147
147
  });
148
+ const filterDependencyIconAriaLabel = intl.formatMessage({
149
+ id: "filter.dependency.icon.aria.label",
150
+ });
148
151
  const CustomTooltipComponent = useMemo(() => {
149
152
  // When text filter FFs are enabled, the attribute filter dropdown header
150
153
  // has its own help icon (AttributeFilterDetailsBubble), so hide this one.
@@ -160,7 +163,7 @@ function DefaultDashboardAttributeFilterInner(props) {
160
163
  return undefined;
161
164
  }, [displayAttributeTooltip, defaultAttributeFilterTitle, attributeDataSet, isOpen, title]);
162
165
  const shouldExtendTitle = !!capabilities.supportsKeepingDependentFiltersSelection && isAttributeFilterDependent;
163
- const titleExtension = shouldExtendTitle ? (_jsx(AttributeFilterDependencyTooltip, { tooltipContent: filterDependencyIconTooltip })) : null;
166
+ const titleExtension = shouldExtendTitle ? (_jsx(AttributeFilterDependencyTooltip, { tooltipContent: filterDependencyIconTooltip, ariaLabel: filterDependencyIconAriaLabel })) : null;
164
167
  return (_jsx(AttributeFilterDropdownButton, { ...props, isDraggable: isDraggable, TooltipContentComponent: CustomTooltipComponent, titleExtension: titleExtension, className: isVirtualAttributeFilter ? "gd-virtual-attribute-filter-dropdown-button" : undefined }));
165
168
  }
166
169
  return DropdownButton;
@@ -120,7 +120,10 @@ export function DefaultDashboardFilterGroup(props) {
120
120
  filterTitle,
121
121
  strong: (chunks) => _jsx("strong", { children: chunks }),
122
122
  });
123
- return _jsx(AttributeFilterDependencyTooltip, { tooltipContent: filterDependencyIconTooltip });
123
+ const filterDependencyIconAriaLabel = intl.formatMessage({
124
+ id: "filter.dependency.icon.aria.label",
125
+ });
126
+ return (_jsx(AttributeFilterDependencyTooltip, { tooltipContent: filterDependencyIconTooltip, ariaLabel: filterDependencyIconAriaLabel }));
124
127
  }, [capabilities.supportsKeepingDependentFiltersSelection, filterDependenciesByLocalId, intl]);
125
128
  return (_jsx(FilterGroup, { title: groupItem.groupConfig.title, filters: itemFilters, getFilterIdentifier: getFilterIdentifier, hasSelectedElements: hasSelectedElements, renderFilter: renderFilter, getTitleExtension: getTitleExtension }));
126
129
  }
@@ -225,7 +225,6 @@ export declare const de_DE: {
225
225
  "dialogs.schedule.management.create.new": string;
226
226
  "dialogs.schedule.management.create.tooManyMessage": string;
227
227
  "dialogs.schedule.management.noSchedules": string;
228
- "dialogs.schedule.management.attachments.attachment": string;
229
228
  "dialogs.schedule.management.attachments.xlsx.settings": string;
230
229
  "dialogs.schedule.management.attachments.csv.settings": string;
231
230
  "dialogs.schedule.management.attachments.cells.merged": string;
@@ -235,14 +234,6 @@ export declare const de_DE: {
235
234
  "dialogs.export.pdf.headline": string;
236
235
  "dialogs.schedule.management.attachments.delete": string;
237
236
  "dialogs.schedule.management.attachments.removed": string;
238
- "dialogs.schedule.management.attachments.filters.title": string;
239
- "dialogs.schedule.management.attachments.filters.using": string;
240
- "dialogs.schedule.management.attachments.filters.default": string;
241
- "dialogs.schedule.management.attachments.filters.edited": string;
242
- "dialogs.schedule.management.attachments.filters.item.default": string;
243
- "dialogs.schedule.management.attachments.filters.item.edited": string;
244
- "dialogs.schedule.management.attachments.filters.item.tooltip": string;
245
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": string;
246
237
  "dialogs.schedule.management.attachments.message": string;
247
238
  "scheduledEmail.attachmentFormat.widget.png": string;
248
239
  "scheduledEmail.attachmentFormat.widget.pptx": string;
@@ -482,6 +473,8 @@ export declare const de_DE: {
482
473
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": string;
483
474
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": string;
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": string;
476
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": string;
477
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": string;
485
478
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": string;
486
479
  "rankingFilter.preview.top_without_attribute_plain": string;
487
480
  "rankingFilter.preview.bottom_without_attribute_plain": string;
@@ -227,7 +227,6 @@ export const de_DE = {
227
227
  "dialogs.schedule.management.create.new": "Neu erstellen",
228
228
  "dialogs.schedule.management.create.tooManyMessage": "Ihr Unternehmen hat das Limit für geplante Exporte erreicht. Wenden Sie sich an Ihren Administrator, um weitere zu erstellen.",
229
229
  "dialogs.schedule.management.noSchedules": "Es gibt keine geplanten Exporte.{br}Neu erstellen.",
230
- "dialogs.schedule.management.attachments.attachment": "Als {format} Datei anhängen",
231
230
  "dialogs.schedule.management.attachments.xlsx.settings": "XLSX-Optionen",
232
231
  "dialogs.schedule.management.attachments.csv.settings": "CSV-Optionen",
233
232
  "dialogs.schedule.management.attachments.cells.merged": "Attributzellen zusammengeführt lassen",
@@ -237,14 +236,6 @@ export const de_DE = {
237
236
  "dialogs.export.pdf.headline": "Export-Einstellungen (.pdf)",
238
237
  "dialogs.schedule.management.attachments.delete": " Anhang löschen{format}",
239
238
  "dialogs.schedule.management.attachments.removed": "{format}-Anhang entfernt.",
240
- "dialogs.schedule.management.attachments.filters.title": "Dashboard-Filter",
241
- "dialogs.schedule.management.attachments.filters.using": "unter Verwendung von",
242
- "dialogs.schedule.management.attachments.filters.default": "Standard-Dashboard-Filter",
243
- "dialogs.schedule.management.attachments.filters.edited": "bearbeitete Dashboard-Filter",
244
- "dialogs.schedule.management.attachments.filters.item.default": "Standardfilter verwenden",
245
- "dialogs.schedule.management.attachments.filters.item.edited": "Bearbeitete Filter verwenden",
246
- "dialogs.schedule.management.attachments.filters.item.tooltip": "Der Standardstatus der Dashboard-Filter wird beim geplanten Export verwendet, auch wenn sich die Standardwerte in Zukunft ändern.",
247
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": "Um einen Export mit Standardfiltern zu planen, erstellen Sie einen neuen geplanten Export.",
248
239
  "dialogs.schedule.management.attachments.message": "<strong>Hinweis</strong>. Cross-Filtering wird im geplanten Export nicht angewendet.",
249
240
  "scheduledEmail.attachmentFormat.widget.png": "Schnappschuss (.png)",
250
241
  "scheduledEmail.attachmentFormat.widget.pptx": "Einzelfolie (.pptx)",
@@ -484,6 +475,8 @@ export const de_DE = {
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": "Kann nicht aktiviert werden. Fügen Sie diesen Filter zuerst zum Ziel-Dashboard hinzu.",
485
476
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": "Kann nicht aktiviert werden. Der übereinstimmende Filter auf dem Zieldashboard unterstützt diesen Filtertyp nicht.",
486
477
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": "Metrikfilter können nicht an das Ziel-Dashboard übergeben werden.",
478
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": "Ein anderer Filter für diese Metrik wird bereits übergeben.",
479
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": "Filter ist auf das Drill-Ziel nicht anwendbar.",
487
480
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": "Top-/Bottom-Filter können nicht an das Ziel-Dashboard übergeben werden.",
488
481
  "rankingFilter.preview.top_without_attribute_plain": "Top {value} von {measure}",
489
482
  "rankingFilter.preview.bottom_without_attribute_plain": "Bottom {value} von {measure}",
@@ -225,7 +225,6 @@ export declare const en_AU: {
225
225
  "dialogs.schedule.management.create.new": string;
226
226
  "dialogs.schedule.management.create.tooManyMessage": string;
227
227
  "dialogs.schedule.management.noSchedules": string;
228
- "dialogs.schedule.management.attachments.attachment": string;
229
228
  "dialogs.schedule.management.attachments.xlsx.settings": string;
230
229
  "dialogs.schedule.management.attachments.csv.settings": string;
231
230
  "dialogs.schedule.management.attachments.cells.merged": string;
@@ -235,14 +234,6 @@ export declare const en_AU: {
235
234
  "dialogs.export.pdf.headline": string;
236
235
  "dialogs.schedule.management.attachments.delete": string;
237
236
  "dialogs.schedule.management.attachments.removed": string;
238
- "dialogs.schedule.management.attachments.filters.title": string;
239
- "dialogs.schedule.management.attachments.filters.using": string;
240
- "dialogs.schedule.management.attachments.filters.default": string;
241
- "dialogs.schedule.management.attachments.filters.edited": string;
242
- "dialogs.schedule.management.attachments.filters.item.default": string;
243
- "dialogs.schedule.management.attachments.filters.item.edited": string;
244
- "dialogs.schedule.management.attachments.filters.item.tooltip": string;
245
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": string;
246
237
  "dialogs.schedule.management.attachments.message": string;
247
238
  "scheduledEmail.attachmentFormat.widget.png": string;
248
239
  "scheduledEmail.attachmentFormat.widget.pptx": string;
@@ -482,6 +473,8 @@ export declare const en_AU: {
482
473
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": string;
483
474
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": string;
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": string;
476
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": string;
477
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": string;
485
478
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": string;
486
479
  "rankingFilter.preview.top_without_attribute_plain": string;
487
480
  "rankingFilter.preview.bottom_without_attribute_plain": string;
@@ -227,7 +227,6 @@ export const en_AU = {
227
227
  "dialogs.schedule.management.create.new": "Create new",
228
228
  "dialogs.schedule.management.create.tooManyMessage": "Your organisation has reached the limit of scheduled exports. Contact your administrator to create more.",
229
229
  "dialogs.schedule.management.noSchedules": "There are no scheduled exports.{br}Create new.",
230
- "dialogs.schedule.management.attachments.attachment": "Attach as a {format} file.",
231
230
  "dialogs.schedule.management.attachments.xlsx.settings": "XLSX options",
232
231
  "dialogs.schedule.management.attachments.csv.settings": "CSV options",
233
232
  "dialogs.schedule.management.attachments.cells.merged": "Keep attribute cells merged",
@@ -237,14 +236,6 @@ export const en_AU = {
237
236
  "dialogs.export.pdf.headline": "Export settings (.pdf)",
238
237
  "dialogs.schedule.management.attachments.delete": "Delete {format} attachment",
239
238
  "dialogs.schedule.management.attachments.removed": "{format} attachment removed.",
240
- "dialogs.schedule.management.attachments.filters.title": "Dashboard filters",
241
- "dialogs.schedule.management.attachments.filters.using": "using",
242
- "dialogs.schedule.management.attachments.filters.default": "default dashboard filters",
243
- "dialogs.schedule.management.attachments.filters.edited": "edited dashboard filters",
244
- "dialogs.schedule.management.attachments.filters.item.default": "Use default filters",
245
- "dialogs.schedule.management.attachments.filters.item.edited": "Use edited filters",
246
- "dialogs.schedule.management.attachments.filters.item.tooltip": "Default state of dashboard filters will be used in the scheduled export, even if the default values change in the future.",
247
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": "To schedule an export with default filters, create a new scheduled export.",
248
239
  "dialogs.schedule.management.attachments.message": "<strong>Note</strong>. Cross-filtering will not be applied in the scheduled export.",
249
240
  "scheduledEmail.attachmentFormat.widget.png": "Snapshot (.png)",
250
241
  "scheduledEmail.attachmentFormat.widget.pptx": "Single Slide (.pptx)",
@@ -484,6 +475,8 @@ export const en_AU = {
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": "Cannot be enabled. Add this filter to the target dashboard first.",
485
476
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": "Cannot be enabled. The matching filter on the target dashboard does not support this filter type.",
486
477
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": "Metric filters cannot be passed to the target dashboard.",
478
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": "Another filter for this metric is already being passed.",
479
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": "Filter is not applicable to the drill destination.",
487
480
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": "Top/bottom filters can’t be passed to the target dashboard.",
488
481
  "rankingFilter.preview.top_without_attribute_plain": "Top {value} of {measure}",
489
482
  "rankingFilter.preview.bottom_without_attribute_plain": "Bottom {value} of {measure}",
@@ -225,7 +225,6 @@ export declare const en_GB: {
225
225
  "dialogs.schedule.management.create.new": string;
226
226
  "dialogs.schedule.management.create.tooManyMessage": string;
227
227
  "dialogs.schedule.management.noSchedules": string;
228
- "dialogs.schedule.management.attachments.attachment": string;
229
228
  "dialogs.schedule.management.attachments.xlsx.settings": string;
230
229
  "dialogs.schedule.management.attachments.csv.settings": string;
231
230
  "dialogs.schedule.management.attachments.cells.merged": string;
@@ -235,14 +234,6 @@ export declare const en_GB: {
235
234
  "dialogs.export.pdf.headline": string;
236
235
  "dialogs.schedule.management.attachments.delete": string;
237
236
  "dialogs.schedule.management.attachments.removed": string;
238
- "dialogs.schedule.management.attachments.filters.title": string;
239
- "dialogs.schedule.management.attachments.filters.using": string;
240
- "dialogs.schedule.management.attachments.filters.default": string;
241
- "dialogs.schedule.management.attachments.filters.edited": string;
242
- "dialogs.schedule.management.attachments.filters.item.default": string;
243
- "dialogs.schedule.management.attachments.filters.item.edited": string;
244
- "dialogs.schedule.management.attachments.filters.item.tooltip": string;
245
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": string;
246
237
  "dialogs.schedule.management.attachments.message": string;
247
238
  "scheduledEmail.attachmentFormat.widget.png": string;
248
239
  "scheduledEmail.attachmentFormat.widget.pptx": string;
@@ -482,6 +473,8 @@ export declare const en_GB: {
482
473
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": string;
483
474
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": string;
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": string;
476
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": string;
477
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": string;
485
478
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": string;
486
479
  "rankingFilter.preview.top_without_attribute_plain": string;
487
480
  "rankingFilter.preview.bottom_without_attribute_plain": string;
@@ -227,7 +227,6 @@ export const en_GB = {
227
227
  "dialogs.schedule.management.create.new": "Create new",
228
228
  "dialogs.schedule.management.create.tooManyMessage": "Your organisation has reached the limit of scheduled exports. Contact your administrator to create more.",
229
229
  "dialogs.schedule.management.noSchedules": "There are no scheduled exports.{br}Create new.",
230
- "dialogs.schedule.management.attachments.attachment": "Attach as a {format} file.",
231
230
  "dialogs.schedule.management.attachments.xlsx.settings": "XLSX options",
232
231
  "dialogs.schedule.management.attachments.csv.settings": "CSV options",
233
232
  "dialogs.schedule.management.attachments.cells.merged": "Keep attribute cells merged",
@@ -237,14 +236,6 @@ export const en_GB = {
237
236
  "dialogs.export.pdf.headline": "Export settings (.pdf)",
238
237
  "dialogs.schedule.management.attachments.delete": "Delete {format} attachment",
239
238
  "dialogs.schedule.management.attachments.removed": "{format} attachment removed.",
240
- "dialogs.schedule.management.attachments.filters.title": "Dashboard filters",
241
- "dialogs.schedule.management.attachments.filters.using": "using",
242
- "dialogs.schedule.management.attachments.filters.default": "default dashboard filters",
243
- "dialogs.schedule.management.attachments.filters.edited": "edited dashboard filters",
244
- "dialogs.schedule.management.attachments.filters.item.default": "Use default filters",
245
- "dialogs.schedule.management.attachments.filters.item.edited": "Use edited filters",
246
- "dialogs.schedule.management.attachments.filters.item.tooltip": "The default state of dashboard filters will be used in the scheduled export, even if the default values change in the future.",
247
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": "To schedule an export with default filters, create a new scheduled export.",
248
239
  "dialogs.schedule.management.attachments.message": "<strong>Note</strong>. Cross-filtering will not be applied in the scheduled export.",
249
240
  "scheduledEmail.attachmentFormat.widget.png": "Snapshot (.png)",
250
241
  "scheduledEmail.attachmentFormat.widget.pptx": "Single Slide (.pptx)",
@@ -484,6 +475,8 @@ export const en_GB = {
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": "Cannot be enabled. Add this filter to the target dashboard first.",
485
476
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": "Cannot be enabled. The matching filter on the target dashboard does not support this filter type.",
486
477
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": "Metric filters cannot be passed to the target dashboard.",
478
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": "Another filter for this metric is already being passed.",
479
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": "Filter is not applicable to the drill destination.",
487
480
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": "Top/bottom filters can’t be passed to the target dashboard.",
488
481
  "rankingFilter.preview.top_without_attribute_plain": "Top {value} of {measure}",
489
482
  "rankingFilter.preview.bottom_without_attribute_plain": "Bottom {value} of {measure}",
@@ -903,10 +903,6 @@ export declare const en_US: {
903
903
  text: string;
904
904
  crowdinContext: string;
905
905
  };
906
- "dialogs.schedule.management.attachments.attachment": {
907
- text: string;
908
- crowdinContext: string;
909
- };
910
906
  "dialogs.schedule.management.attachments.xlsx.settings": {
911
907
  text: string;
912
908
  crowdinContext: string;
@@ -943,38 +939,6 @@ export declare const en_US: {
943
939
  text: string;
944
940
  crowdinContext: string;
945
941
  };
946
- "dialogs.schedule.management.attachments.filters.title": {
947
- text: string;
948
- crowdinContext: string;
949
- };
950
- "dialogs.schedule.management.attachments.filters.using": {
951
- text: string;
952
- crowdinContext: string;
953
- };
954
- "dialogs.schedule.management.attachments.filters.default": {
955
- text: string;
956
- crowdinContext: string;
957
- };
958
- "dialogs.schedule.management.attachments.filters.edited": {
959
- text: string;
960
- crowdinContext: string;
961
- };
962
- "dialogs.schedule.management.attachments.filters.item.default": {
963
- text: string;
964
- crowdinContext: string;
965
- };
966
- "dialogs.schedule.management.attachments.filters.item.edited": {
967
- text: string;
968
- crowdinContext: string;
969
- };
970
- "dialogs.schedule.management.attachments.filters.item.tooltip": {
971
- text: string;
972
- crowdinContext: string;
973
- };
974
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": {
975
- text: string;
976
- crowdinContext: string;
977
- };
978
942
  "dialogs.schedule.management.attachments.message": {
979
943
  text: string;
980
944
  crowdinContext: string;
@@ -2331,6 +2295,10 @@ export declare const en_US: {
2331
2295
  text: string;
2332
2296
  crowdinContext: string;
2333
2297
  };
2298
+ "filter.dependency.icon.aria.label": {
2299
+ text: string;
2300
+ crowdinContext: string;
2301
+ };
2334
2302
  "configurationPanel.drillConfig.alreadyUsedTooltip": {
2335
2303
  text: string;
2336
2304
  crowdinContext: string;
@@ -905,10 +905,6 @@ export const en_US = {
905
905
  "text": "There are no scheduled exports.{br}Create new.",
906
906
  "crowdinContext": "Message shown when no scheduled exports exist, with line break placeholder"
907
907
  },
908
- "dialogs.schedule.management.attachments.attachment": {
909
- "text": "Attach as a {format} file",
910
- "crowdinContext": "File format checkbox label in scheduled export settings. {format} is the file format, e.g. PDF, CSV, XLSX."
911
- },
912
908
  "dialogs.schedule.management.attachments.xlsx.settings": {
913
909
  "text": "XLSX options",
914
910
  "crowdinContext": "Section header for Excel export format configuration. XLSX is the file format."
@@ -945,38 +941,6 @@ export const en_US = {
945
941
  "text": "{format} attachment removed.",
946
942
  "crowdinContext": "Screen reader announcement when an attachment is removed from scheduled export. Example: 'PDF attachment removed.'"
947
943
  },
948
- "dialogs.schedule.management.attachments.filters.title": {
949
- "text": "Dashboard filters",
950
- "crowdinContext": "Section title for filter settings in scheduled export configuration"
951
- },
952
- "dialogs.schedule.management.attachments.filters.using": {
953
- "text": "using",
954
- "crowdinContext": "Conjunction word connecting the export action with the filter selection"
955
- },
956
- "dialogs.schedule.management.attachments.filters.default": {
957
- "text": "default dashboard filters",
958
- "crowdinContext": "Label indicating that default dashboard filters will be used in export"
959
- },
960
- "dialogs.schedule.management.attachments.filters.edited": {
961
- "text": "edited dashboard filters",
962
- "crowdinContext": "Label indicating that custom edited filters will be used in export"
963
- },
964
- "dialogs.schedule.management.attachments.filters.item.default": {
965
- "text": "Use default filters",
966
- "crowdinContext": "Dropdown option to use default dashboard filters in scheduled export"
967
- },
968
- "dialogs.schedule.management.attachments.filters.item.edited": {
969
- "text": "Use edited filters",
970
- "crowdinContext": "Dropdown option to use custom edited filters in scheduled export"
971
- },
972
- "dialogs.schedule.management.attachments.filters.item.tooltip": {
973
- "text": "Default state of dashboard filters will be used in the scheduled export, even if the default values change in the future.",
974
- "crowdinContext": "Tooltip explaining how default filters work in scheduled exports"
975
- },
976
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": {
977
- "text": "To schedule an export with default filters, create a new scheduled export.",
978
- "crowdinContext": "Tooltip explaining why default filter option is disabled and how to use it"
979
- },
980
944
  "dialogs.schedule.management.attachments.message": {
981
945
  "text": "<strong>Note</strong>. Cross-filtering will not be applied in the scheduled export.",
982
946
  "crowdinContext": "Important notice about scheduled exports. The <strong> tags emphasize that cross-filtering won't apply to exported data."
@@ -2333,6 +2297,10 @@ export const en_US = {
2333
2297
  "text": "Values for <strong>{filterTitle}</strong> are filtered by selection in another filter.",
2334
2298
  "crowdinContext": "Tooltip explaining that filter values are affected by another filter selection"
2335
2299
  },
2300
+ "filter.dependency.icon.aria.label": {
2301
+ "text": "Linked filter — available values depends on another filter selection.",
2302
+ "crowdinContext": "Accessible label for the linked-filter dependency icon; announced by screen readers to explain that a filter's available values depend on another filter's selection."
2303
+ },
2336
2304
  "configurationPanel.drillConfig.alreadyUsedTooltip": {
2337
2305
  "text": "This <strong>hierarchy</strong> is already used for <strong>the same</strong> drill down.",
2338
2306
  "crowdinContext": "Warning tooltip when attempting to use an already selected hierarchy for drill down"
@@ -225,7 +225,6 @@ export declare const es_419: {
225
225
  "dialogs.schedule.management.create.new": string;
226
226
  "dialogs.schedule.management.create.tooManyMessage": string;
227
227
  "dialogs.schedule.management.noSchedules": string;
228
- "dialogs.schedule.management.attachments.attachment": string;
229
228
  "dialogs.schedule.management.attachments.xlsx.settings": string;
230
229
  "dialogs.schedule.management.attachments.csv.settings": string;
231
230
  "dialogs.schedule.management.attachments.cells.merged": string;
@@ -235,14 +234,6 @@ export declare const es_419: {
235
234
  "dialogs.export.pdf.headline": string;
236
235
  "dialogs.schedule.management.attachments.delete": string;
237
236
  "dialogs.schedule.management.attachments.removed": string;
238
- "dialogs.schedule.management.attachments.filters.title": string;
239
- "dialogs.schedule.management.attachments.filters.using": string;
240
- "dialogs.schedule.management.attachments.filters.default": string;
241
- "dialogs.schedule.management.attachments.filters.edited": string;
242
- "dialogs.schedule.management.attachments.filters.item.default": string;
243
- "dialogs.schedule.management.attachments.filters.item.edited": string;
244
- "dialogs.schedule.management.attachments.filters.item.tooltip": string;
245
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": string;
246
237
  "dialogs.schedule.management.attachments.message": string;
247
238
  "scheduledEmail.attachmentFormat.widget.png": string;
248
239
  "scheduledEmail.attachmentFormat.widget.pptx": string;
@@ -482,6 +473,8 @@ export declare const es_419: {
482
473
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": string;
483
474
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": string;
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": string;
476
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": string;
477
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": string;
485
478
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": string;
486
479
  "rankingFilter.preview.top_without_attribute_plain": string;
487
480
  "rankingFilter.preview.bottom_without_attribute_plain": string;
@@ -227,7 +227,6 @@ export const es_419 = {
227
227
  "dialogs.schedule.management.create.new": "Crear nuevo",
228
228
  "dialogs.schedule.management.create.tooManyMessage": "Su organización ha alcanzado el límite de exportaciones programadas. Póngase en contacto con su administrador para crear más.",
229
229
  "dialogs.schedule.management.noSchedules": "No hay exportaciones programadas.{br}Crear nuevo.",
230
- "dialogs.schedule.management.attachments.attachment": "Adjuntar como archivo {format}",
231
230
  "dialogs.schedule.management.attachments.xlsx.settings": "Opciones XLSX",
232
231
  "dialogs.schedule.management.attachments.csv.settings": "Opciones de CSV",
233
232
  "dialogs.schedule.management.attachments.cells.merged": "Mantener fusionadas las celdas de atributos",
@@ -237,14 +236,6 @@ export const es_419 = {
237
236
  "dialogs.export.pdf.headline": "Exportar configuración (.pdf)",
238
237
  "dialogs.schedule.management.attachments.delete": "Borrar el {format} archivo adjunto",
239
238
  "dialogs.schedule.management.attachments.removed": "Se eliminó el archivo adjunto {format}.",
240
- "dialogs.schedule.management.attachments.filters.title": "Filtros del panel",
241
- "dialogs.schedule.management.attachments.filters.using": "utilizando",
242
- "dialogs.schedule.management.attachments.filters.default": "filtros por defecto del cuadro de mandos",
243
- "dialogs.schedule.management.attachments.filters.edited": "edición de los filtros del cuadro de mandos",
244
- "dialogs.schedule.management.attachments.filters.item.default": "Utilizar filtros por defecto",
245
- "dialogs.schedule.management.attachments.filters.item.edited": "Utilizar filtros editados",
246
- "dialogs.schedule.management.attachments.filters.item.tooltip": "El estado predeterminado de los filtros del cuadro de mandos se utilizará en la exportación programada, incluso si los valores predeterminados cambian en el futuro.",
247
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": "Para programar una exportación con filtros predeterminados, cree una nueva exportación programada.",
248
239
  "dialogs.schedule.management.attachments.message": "<strong>Nota</strong>. El filtrado cruzado no se aplicará en la exportación programada.",
249
240
  "scheduledEmail.attachmentFormat.widget.png": "Instantánea (.png)",
250
241
  "scheduledEmail.attachmentFormat.widget.pptx": "Diapositiva única (.pptx)",
@@ -484,6 +475,8 @@ export const es_419 = {
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": "No se puede habilitar. Agregue este filtro al panel de destino primero.",
485
476
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": "No se puede habilitar. El filtro coincidente en el panel de destino no admite este tipo de filtro.",
486
477
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": "Los filtros de métrica no se pueden pasar al panel de destino.",
478
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": "Ya se está pasando otro filtro para esta métrica.",
479
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": "El filtro no se puede aplicar al destino del desglose.",
487
480
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": "Los filtros superior/inferior no se pueden pasar al panel de destino.",
488
481
  "rankingFilter.preview.top_without_attribute_plain": "{value} principales de {measure}",
489
482
  "rankingFilter.preview.bottom_without_attribute_plain": "{value} inferiores de {measure}",
@@ -225,7 +225,6 @@ export declare const es_ES: {
225
225
  "dialogs.schedule.management.create.new": string;
226
226
  "dialogs.schedule.management.create.tooManyMessage": string;
227
227
  "dialogs.schedule.management.noSchedules": string;
228
- "dialogs.schedule.management.attachments.attachment": string;
229
228
  "dialogs.schedule.management.attachments.xlsx.settings": string;
230
229
  "dialogs.schedule.management.attachments.csv.settings": string;
231
230
  "dialogs.schedule.management.attachments.cells.merged": string;
@@ -235,14 +234,6 @@ export declare const es_ES: {
235
234
  "dialogs.export.pdf.headline": string;
236
235
  "dialogs.schedule.management.attachments.delete": string;
237
236
  "dialogs.schedule.management.attachments.removed": string;
238
- "dialogs.schedule.management.attachments.filters.title": string;
239
- "dialogs.schedule.management.attachments.filters.using": string;
240
- "dialogs.schedule.management.attachments.filters.default": string;
241
- "dialogs.schedule.management.attachments.filters.edited": string;
242
- "dialogs.schedule.management.attachments.filters.item.default": string;
243
- "dialogs.schedule.management.attachments.filters.item.edited": string;
244
- "dialogs.schedule.management.attachments.filters.item.tooltip": string;
245
- "dialogs.schedule.management.attachments.filters.item.tooltip.disabled": string;
246
237
  "dialogs.schedule.management.attachments.message": string;
247
238
  "scheduledEmail.attachmentFormat.widget.png": string;
248
239
  "scheduledEmail.attachmentFormat.widget.pptx": string;
@@ -482,6 +473,8 @@ export declare const es_ES: {
482
473
  "configurationPanel.drillConfig.filterSelection.drillToDashboardDashboardFilter.tooltip": string;
483
474
  "configurationPanel.drillConfig.filterSelection.drillToDashboardFilterNotCompatible.tooltip": string;
484
475
  "configurationPanel.drillConfig.filterSelection.drillToDashboardMetricFilter.tooltip": string;
476
+ "configurationPanel.drillConfig.filterSelection.drillToDashboardDuplicateMetricFilter.tooltip": string;
477
+ "configurationPanel.drillConfig.filterSelection.drillToInsightMeasureValueFilter.tooltip": string;
485
478
  "configurationPanel.drillConfig.filterSelection.drillToDashboardRankingFilter.tooltip": string;
486
479
  "rankingFilter.preview.top_without_attribute_plain": string;
487
480
  "rankingFilter.preview.bottom_without_attribute_plain": string;