@gooddata/sdk-ui-ext 11.52.0-alpha.5 → 11.52.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/esm/dataLoaders/InsightDataLoader.d.ts +6 -0
  2. package/esm/dataLoaders/InsightDataLoader.d.ts.map +1 -1
  3. package/esm/dataLoaders/InsightDataLoader.js +4 -1
  4. package/esm/dataLoaders/index.d.ts +13 -0
  5. package/esm/dataLoaders/index.d.ts.map +1 -1
  6. package/esm/dataLoaders/index.js +14 -0
  7. package/esm/index.d.ts +1 -1
  8. package/esm/index.d.ts.map +1 -1
  9. package/esm/index.js +1 -1
  10. package/esm/insightView/InsightRenderer.d.ts +3 -6
  11. package/esm/insightView/InsightRenderer.d.ts.map +1 -1
  12. package/esm/insightView/InsightRenderer.js +165 -142
  13. package/esm/internal/components/configurationControls/conditionalFormatting/CfDateValueDropdown.d.ts +3 -4
  14. package/esm/internal/components/configurationControls/conditionalFormatting/CfDateValueDropdown.d.ts.map +1 -1
  15. package/esm/internal/components/configurationControls/conditionalFormatting/CfDateValueDropdown.js +9 -7
  16. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionEditor.d.ts.map +1 -1
  17. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionEditor.js +57 -37
  18. package/esm/internal/components/configurationControls/conditionalFormatting/cfFieldProps.d.ts +12 -0
  19. package/esm/internal/components/configurationControls/conditionalFormatting/cfFieldProps.d.ts.map +1 -0
  20. package/esm/internal/components/configurationControls/conditionalFormatting/cfFieldProps.js +2 -0
  21. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts +10 -10
  22. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts.map +1 -1
  23. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.js +11 -11
  24. package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.d.ts.map +1 -1
  25. package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.js +2 -1
  26. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts +6 -1
  27. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.d.ts.map +1 -1
  28. package/esm/internal/components/pluggableVisualizations/mekko/PluggableMekko.js +39 -5
  29. package/esm/internal/components/pluggableVisualizations/pivotTable/PluggablePivotTable.d.ts.map +1 -1
  30. package/esm/internal/components/pluggableVisualizations/pivotTable/PluggablePivotTable.js +0 -1
  31. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PivotTableNextDescriptor.d.ts.map +1 -1
  32. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PivotTableNextDescriptor.js +2 -9
  33. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.d.ts.map +1 -1
  34. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.js +2 -2
  35. package/esm/internal/components/pluggableVisualizations/pivotTableNext/pivotTableNextConfigFromInsight.d.ts +8 -3
  36. package/esm/internal/components/pluggableVisualizations/pivotTableNext/pivotTableNextConfigFromInsight.d.ts.map +1 -1
  37. package/esm/internal/components/pluggableVisualizations/pivotTableNext/pivotTableNextConfigFromInsight.js +41 -37
  38. package/esm/internal/translations/en-US.localization-bundle.d.ts +12 -0
  39. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  40. package/esm/internal/translations/en-US.localization-bundle.js +12 -0
  41. package/esm/internal/utils/bucketHelper.d.ts.map +1 -1
  42. package/esm/internal/utils/bucketHelper.js +7 -14
  43. package/esm/internal/utils/embeddingCodeGenerator/insightToPropsConverter/convertor.d.ts +2 -2
  44. package/esm/internal/utils/embeddingCodeGenerator/insightToPropsConverter/convertor.d.ts.map +1 -1
  45. package/esm/internal/utils/embeddingCodeGenerator/insightToPropsConverter/convertor.js +4 -2
  46. package/esm/internal/utils/propertiesHelper.d.ts +5 -0
  47. package/esm/internal/utils/propertiesHelper.d.ts.map +1 -1
  48. package/esm/internal/utils/propertiesHelper.js +7 -0
  49. package/esm/locales.d.ts +6 -0
  50. package/esm/locales.d.ts.map +1 -1
  51. package/esm/locales.js +2 -0
  52. package/esm/notificationsPanel/Notification/Notification.d.ts.map +1 -1
  53. package/esm/notificationsPanel/Notification/Notification.js +6 -3
  54. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.d.ts +3 -3
  55. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.d.ts.map +1 -1
  56. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.js +4 -4
  57. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.d.ts +9 -3
  58. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.d.ts.map +1 -1
  59. package/esm/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.js +4 -4
  60. package/esm/sdk-ui-ext.d.ts +13 -0
  61. package/esm/share/ObjectShareDialog.js +22 -6
  62. package/esm/share/messages.d.ts +7 -0
  63. package/esm/share/messages.d.ts.map +1 -1
  64. package/esm/share/messages.js +5 -0
  65. package/esm/share/objectShareController.helpers.d.ts +117 -17
  66. package/esm/share/objectShareController.helpers.d.ts.map +1 -1
  67. package/esm/share/objectShareController.helpers.js +181 -44
  68. package/esm/share/objectShareController.types.d.ts +34 -10
  69. package/esm/share/objectShareController.types.d.ts.map +1 -1
  70. package/esm/share/useAccessList.d.ts +6 -0
  71. package/esm/share/useAccessList.d.ts.map +1 -1
  72. package/esm/share/useAccessList.js +26 -6
  73. package/esm/share/useLabelScope.d.ts +46 -1
  74. package/esm/share/useLabelScope.d.ts.map +1 -1
  75. package/esm/share/useLabelScope.js +98 -6
  76. package/esm/share/useObjectShareController.d.ts.map +1 -1
  77. package/esm/share/useObjectShareController.js +213 -45
  78. package/esm/share/useObjectShareDialog.d.ts +7 -0
  79. package/esm/share/useObjectShareDialog.d.ts.map +1 -1
  80. package/esm/share/useObjectShareDialog.js +22 -2
  81. package/package.json +21 -21
@@ -1,57 +1,61 @@
1
1
  // (C) 2025-2026 GoodData Corporation
2
- import { isEmpty } from "lodash-es";
3
2
  import { insightProperties, insightVisualizationUrl, } from "@gooddata/sdk-model";
4
- import { getPaginationFromProperties, getTextWrappingFromProperties, } from "../../../utils/propertiesHelper.js";
3
+ import { getConditionalFormattingFromProperties, getPaginationFromProperties, getTextWrappingFromProperties, isConditionalFormattingEnabled, } from "../../../utils/propertiesHelper.js";
4
+ import { removeUseless } from "../../../utils/removeUseless.js";
5
5
  import { createPivotTableNextConfig } from "../pivotTableNext/PluggablePivotTableNext.js";
6
6
  const AG_GRID_TOKEN_PLACEHOLDER = {
7
7
  agGridToken: "<fill your AG Grid Enterprise license token here>",
8
8
  };
9
+ function pivotTableNextConfigMeta(name) {
10
+ return {
11
+ typeImport: {
12
+ importType: "named",
13
+ name,
14
+ package: "@gooddata/sdk-ui-pivot/next",
15
+ },
16
+ cardinality: "scalar",
17
+ };
18
+ }
19
+ /**
20
+ * Only a config that actually carries conditional formatting references the `@alpha` extended
21
+ * type; every other snippet stays on the `@public` {@link PivotTableNextConfig}.
22
+ */
23
+ export function pivotTableNextConfigPropMeta(config) {
24
+ const hasConditionalFormatting = typeof config === "object" && config !== null && "conditionalFormatting" in config;
25
+ return pivotTableNextConfigMeta(hasConditionalFormatting ? "PivotTableNextConfigWithConditionalFormatting" : "PivotTableNextConfig");
26
+ }
9
27
  export function isPivotTableNext(insightDefinition, settings) {
10
28
  const uri = insightVisualizationUrl(insightDefinition);
11
29
  return !!settings?.enableNewPivotTable && uri === "local:table";
12
30
  }
13
31
  export function pivotTableNextConfigFromInsight(insight, ctx) {
14
32
  const baseConfig = ctx?.settings && ctx.backend
15
- ? createPivotTableNextConfig({ separators: ctx?.settings?.separators }, "none", ctx.settings)
33
+ ? createPivotTableNextConfig({ separators: ctx.settings.separators }, "none", ctx.settings)
16
34
  : {};
17
- const menuProp = isEmpty(baseConfig.menu) ? {} : { menu: baseConfig.menu };
18
- const separatorsProp = isEmpty(baseConfig.separators) ? {} : { separators: baseConfig.separators };
19
- const measureGroupDimension = insightProperties(insight)?.["controls"]?.measureGroupDimension;
20
- const metricsPositionProp = isEmpty(measureGroupDimension) ? {} : { measureGroupDimension };
21
- const columnHeadersPosition = insightProperties(insight)?.["controls"]?.columnHeadersPosition;
22
- const columnHeadersPositionProp = isEmpty(columnHeadersPosition) ? {} : { columnHeadersPosition };
23
- const grandTotalsPosition = insightProperties(insight)?.["controls"]?.grandTotalsPosition;
24
- const grandTotalsPositionProp = isEmpty(grandTotalsPosition) ? {} : { grandTotalsPosition };
25
- const pagination = getPaginationFromProperties(insightProperties(insight));
26
- const paginationProp = isEmpty(pagination) ? {} : { pagination };
27
- const columnSizing = {
28
- columnWidths: insightProperties(insight)?.["controls"]?.columnWidths,
29
- defaultWidth: "autoresizeAll",
30
- growToFit: true,
31
- };
32
- const textWrapping = getTextWrappingFromProperties(insightProperties(insight));
33
- return {
34
- ...menuProp,
35
- ...separatorsProp,
36
- ...metricsPositionProp,
37
- ...columnHeadersPositionProp,
38
- ...grandTotalsPositionProp,
39
- ...paginationProp,
40
- columnSizing,
41
- textWrapping,
35
+ const properties = insightProperties(insight);
36
+ const controls = properties?.["controls"];
37
+ return removeUseless({
38
+ menu: baseConfig.menu,
39
+ separators: baseConfig.separators,
40
+ measureGroupDimension: controls?.measureGroupDimension,
41
+ columnHeadersPosition: controls?.columnHeadersPosition,
42
+ grandTotalsPosition: controls?.grandTotalsPosition,
43
+ pagination: getPaginationFromProperties(properties),
44
+ textWrapping: getTextWrappingFromProperties(properties),
45
+ conditionalFormatting: isConditionalFormattingEnabled(ctx?.settings)
46
+ ? getConditionalFormattingFromProperties(properties)
47
+ : undefined,
48
+ columnSizing: {
49
+ columnWidths: controls?.columnWidths,
50
+ defaultWidth: "autoresizeAll",
51
+ growToFit: true,
52
+ },
42
53
  ...AG_GRID_TOKEN_PLACEHOLDER,
43
- };
54
+ });
44
55
  }
45
56
  export function pivotTableNextConfigForInsightViewComponent() {
46
57
  return {
47
58
  value: AG_GRID_TOKEN_PLACEHOLDER,
48
- meta: {
49
- cardinality: "scalar",
50
- typeImport: {
51
- importType: "named",
52
- name: "PivotTableNextConfig",
53
- package: "@gooddata/sdk-ui-pivot/next",
54
- },
55
- },
59
+ meta: pivotTableNextConfigMeta("PivotTableNextConfig"),
56
60
  };
57
61
  }
@@ -2515,6 +2515,10 @@ export declare const en_US: {
2515
2515
  text: string;
2516
2516
  crowdinContext: string;
2517
2517
  };
2518
+ "objectShare.granteeRemove.inherited": {
2519
+ text: string;
2520
+ crowdinContext: string;
2521
+ };
2518
2522
  "objectShare.grantee.you": {
2519
2523
  text: string;
2520
2524
  crowdinContext: string;
@@ -2659,10 +2663,18 @@ export declare const en_US: {
2659
2663
  text: string;
2660
2664
  crowdinContext: string;
2661
2665
  };
2666
+ "properties.conditionalFormatting.dialog.error.wrapper": {
2667
+ text: string;
2668
+ crowdinContext: string;
2669
+ };
2662
2670
  "properties.conditionalFormatting.dialog.error.rangeOrder": {
2663
2671
  text: string;
2664
2672
  crowdinContext: string;
2665
2673
  };
2674
+ "properties.conditionalFormatting.dialog.error.valueEmpty": {
2675
+ text: string;
2676
+ crowdinContext: string;
2677
+ };
2666
2678
  "properties.conditionalFormatting.dialog.selectPeriod": {
2667
2679
  text: string;
2668
2680
  crowdinContext: string;
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAitFjB,CAAC"}
1
+ {"version":3,"file":"en-US.localization-bundle.d.ts","sourceRoot":"","sources":["../../../src/internal/translations/en-US.localization-bundle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6tFjB,CAAC"}
@@ -2517,6 +2517,10 @@ export const en_US = {
2517
2517
  "text": "This permission is granted from a parent workspace and cannot be lowered here.",
2518
2518
  "crowdinContext": "Tooltip on permission options in the all-workspace-members permission menu that are disabled because a parent workspace already grants a higher workspace-wide level, so picking a lower level here could not take effect."
2519
2519
  },
2520
+ "objectShare.granteeRemove.inherited": {
2521
+ "text": "This access is inherited from a group or a parent workspace and cannot be removed here.",
2522
+ "crowdinContext": "Tooltip on the disabled Remove access action in a grantee row's permission menu, shown when the grantee has no permission granted in this workspace, so there is nothing here to remove."
2523
+ },
2520
2524
  "objectShare.grantee.you": {
2521
2525
  "text": "{name} (you)",
2522
2526
  "crowdinContext": "Display name of the signed-in user's own row in the share dialog grantee list. {name} is the user's full name."
@@ -2661,10 +2665,18 @@ export const en_US = {
2661
2665
  "text": "Save",
2662
2666
  "crowdinContext": "Button that saves the conditional-formatting rule being edited."
2663
2667
  },
2668
+ "properties.conditionalFormatting.dialog.error.wrapper": {
2669
+ "text": "Error: {message}",
2670
+ "crowdinContext": "Wraps every inline validation error in the conditional-formatting rule dialog; {message} is the error itself, e.g. “Value cannot be empty”. Reorder the label and adjust its punctuation and spacing as the language requires."
2671
+ },
2664
2672
  "properties.conditionalFormatting.dialog.error.rangeOrder": {
2665
2673
  "text": "“From” must be less than or equal to “To”.",
2666
2674
  "crowdinContext": "Inline validation error shown when the lower bound of a between/not-between condition is greater than the upper bound."
2667
2675
  },
2676
+ "properties.conditionalFormatting.dialog.error.valueEmpty": {
2677
+ "text": "Value cannot be empty.",
2678
+ "crowdinContext": "Inline validation error shown when a condition whose operator needs a value is left without one (the input was visited and left blank, or the date period was never picked)."
2679
+ },
2668
2680
  "properties.conditionalFormatting.dialog.selectPeriod": {
2669
2681
  "text": "Select period",
2670
2682
  "crowdinContext": "Placeholder of the date-period picker before a period is chosen in a date condition."
@@ -1 +1 @@
1
- {"version":3,"file":"bucketHelper.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/bucketHelper.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,MAAM,EAad,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,sBAAsB,EAG9B,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,wBAAwB,EAChC,MAAM,gCAAgC,CAAC;AAIxC,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,IAAI,WAAW,CAErF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,IAAI,kBAAkB,CAE5F;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,IAAI,gBAAgB,CAO/F;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,IAAI,mBAAmB,CAWrG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAKzE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,MAAM,IAAI,cAAc,CAU3F;AAkKD,wBAAgB,eAAe,CAC3B,iBAAiB,EAAE,uBAAuB,EAC1C,iBAAiB,EAAE,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC,GAC5D,uBAAuB,CA8GzB;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAErE;AAED,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,WAAW,GACxB,UAAU,IAAI,WAAW,GAAG;IAAE,uBAAuB,EAAE,MAAM,EAAE,CAAA;CAAE,CAEnE;AA0CD;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAChD,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,YAAY,EAAE,GACxB,sBAAsB,EAAE,CAY1B;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAE/E;AAMD,wBAAgB,sCAAsC,CAClD,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,YAAY,EAAE,GACxB,WAAW,EAAE,CAEf;AAWD,wBAAgB,sCAAsC,CAClD,QAAQ,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,sBAAsB,GACpC,WAAW,EAAE,CAIf;AAED,wBAAgB,uCAAuC,CACnD,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,YAAY,EAAE,EACvB,mBAAmB,EAAE,sBAAsB,GAC5C,WAAW,EAAE,CAOf;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,eAAO,MAAM,mBAAmB,sCAA2B,CAAC;AAE5D,wBAAgB,aAAa,CAAC,aAAa,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAUzE;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,QAAQ,GAAG,sBAAsB,CAS5F;AA6CD,wBAAgB,eAAe,CAC3B,cAAc,EAAE,uBAAuB,EACvC,iBAAiB,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,SAAS,GACjB,SAAS,GAAG,IAAI,GAAG,SAAS,CA2B9B;AAED,wBAAgB,qBAAqB,CACjC,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM,GAC1B,MAAM,GAAG,SAAS,CAEpB;AAMD,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,WAAW,EAAE,CAE9F;AAGD,wBAAgB,mBAAmB,CAC/B,OAAO,EAAE,YAAY,EAAE,EACvB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,KAAK,CAAC,EAAE,MAAM,EAAE,GACjB,WAAW,EAAE,CASf;AAED,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,YAAY,EAAE,EACvB,eAAe,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EAAE,GAChB,WAAW,EAAE,CAUf;AAED,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,EACpB,IAAI,EAAE,MAAM,EAAE,GACf,WAAW,EAAE,CAGf;AA8BD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAKzF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAgBlF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAGzF;AAOD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,QAAQ,EAAE,CAM3F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAErE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,CAIzE;AAWD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,CAEtE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CActE;AAED,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,YAAY,EAAE,EACvB,cAAc,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE,MAAM,EAAE,GACf,WAAW,EAAE,CAKf;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,GAAE,MAAM,EAAgB,GAAG,WAAW,EAAE,CAIvG;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAG1E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAO5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,SAAS,GAAE,MAAM,EAAgB,GAAG,WAAW,EAAE,CAItG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAMxE;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,SAAS,GAAE,MAAM,EAAgB,GAClC,WAAW,EAAE,CAIf;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAKrF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAE3E;AAOD,wBAAgB,kCAAkC,CAC9C,OAAO,EAAE,YAAY,EAAE,EACvB,UAAU,EAAE,MAAM,EAAE,GACrB,WAAW,EAAE,CAef;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAEnE;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAEpF;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,GAAG,SAAS,CAGjG;AACD,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,GAAG,SAAS,CAGhF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,WAAW,CAGrE;AAwBD,wBAAgB,aAAa,CAAC,cAAc,EAAE,uBAAuB,GAAG,uBAAuB,CAQ9F;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAEnF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAErG;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAE1F;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAQpF;AAED,wBAAgB,sCAAsC,CAClD,sBAAsB,EAAE,uBAAuB,GAChD,uBAAuB,CAMzB;AAED,wBAAgB,wBAAwB,CACpC,sBAAsB,EAAE,uBAAuB,GAChD,uBAAuB,CAKzB;AAED,wBAAgB,oBAAoB,CAChC,iBAAiB,EAAE,WAAW,EAC9B,WAAW,EAAE,WAAW,EAAE,GAC3B,WAAW,GAAG,SAAS,CAEzB;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAE/E;AAED,wBAAgB,sBAAsB,CAClC,gBAAgB,EAAE,WAAW,EAC7B,WAAW,EAAE,WAAW,EAAE,GAC3B,WAAW,EAAE,CAIf;AAED,wBAAgB,qBAAqB,CACjC,gBAAgB,EAAE,WAAW,EAC7B,WAAW,EAAE,WAAW,EAAE,GAC3B,WAAW,GAAG,SAAS,CAIzB;AAED,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAMrG;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAO1F;AAED,wBAAgB,gEAAgE,CAC5E,OAAO,EAAE,YAAY,EAAE,GACxB,WAAW,EAAE,CASf;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAUlE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAUrE;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,kBAAkB,EAAE,MAAM,EAC1B,4BAA4B,GAAE,OAAe,EAC7C,eAAe,GAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAoB,GAC1D,YAAY,EAAE,CAsChB;AAkHD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAEhE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,WAAW,EAAE,CAKzG;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAE7E;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CAExF;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAEvE;AAED,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,mGAiDnC,CAAC;AAkBF,eAAO,MAAM,oBAAoB,oEAKhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,wEAOpC,CAAC;AAUF,eAAO,MAAM,qBAAqB,yDAcjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,sDAI/B,CAAC;AAEF,eAAO,MAAM,eAAe,oCAI3B,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,yCAAyC,CACrD,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,UAAU,EAAE,wBAAwB,GAAG,SAAS,GACjD,MAAM,EAAE,CA2BV;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS,GAAG,MAAM,EAAE,CAOlG"}
1
+ {"version":3,"file":"bucketHelper.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/bucketHelper.ts"],"names":[],"mappings":"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"}
@@ -196,20 +196,13 @@ export function sanitizeFilters(newReferencePoint, oldReferencePoint) {
196
196
  }
197
197
  else if (isRankingFilter(filter)) {
198
198
  // A ranking filter referencing a catalog measure by ObjRef need not have that measure in the
199
- // buckets, and may have no attributes (granularity is added later) - mirrors measure value
200
- // filters. Keep it as-is.
201
- if (isCatalogRankingFilter(filter)) {
202
- return true;
203
- }
204
- // Legacy ranking filter referencing a bucket measure by local identifier - it requires a
205
- // slicing attribute and the ranked measure to be present in the buckets. A catalog "out of"
206
- // attribute (ObjRef) is independent of the buckets, so a filter that ranks out of one survives
207
- // even without any attribute bucket items.
208
- const hasCatalogAttributes = filter.attributes?.some((attribute) => typeof attribute !== "string");
209
- if (attributeBucketItems.length === 0 && !hasCatalogAttributes) {
210
- return false;
211
- }
212
- const hasValidMeasure = measureBucketItems.some((measureBucketItem) => measureBucketItem.localIdentifier === filter.measure);
199
+ // buckets - mirrors measure value filters. A filter referencing a bucket measure by local
200
+ // identifier requires that measure to be present in the buckets. Either way, if the filter
201
+ // ranks "out of" a bucket attribute (referenced by local identifier), that attribute must
202
+ // still be present in the buckets - a plain Top/Bottom N with no attributes is valid even
203
+ // without any attribute bucket items.
204
+ const hasValidMeasure = isCatalogRankingFilter(filter) ||
205
+ measureBucketItems.some((measureBucketItem) => measureBucketItem.localIdentifier === filter.measure);
213
206
  const hasValidAttributes = !filter.attributes ||
214
207
  filter.attributes.every((attribute) =>
215
208
  // Catalog attributes are referenced by ObjRef and are independent of the buckets;
@@ -6,13 +6,13 @@ import { type InsightToPropsConverter, type PropMeta } from "../types.js";
6
6
  */
7
7
  export interface IInsightToPropConversion<TProps extends object, TPropKey extends keyof TProps, TReturnType = TProps[TPropKey]> {
8
8
  propName: TPropKey;
9
- propType: PropMeta;
9
+ propType: PropMeta | ((value: unknown) => PropMeta);
10
10
  itemAccessor: (insight: IInsightDefinition, ctx: IEmbeddingCodeContext | undefined) => TReturnType;
11
11
  }
12
12
  /**
13
13
  * Conversion based on the whole {@link @gooddata/sdk-model#IInsightDefinition}.
14
14
  */
15
- export declare function insightConversion<TProps extends object, TPropKey extends keyof TProps, TReturnType = TProps[TPropKey]>(propName: TPropKey, propType: PropMeta, insightItemAccessor: (insight: IInsightDefinition, ctx: IEmbeddingCodeContext | undefined) => TReturnType): IInsightToPropConversion<TProps, TPropKey, TReturnType>;
15
+ export declare function insightConversion<TProps extends object, TPropKey extends keyof TProps, TReturnType = TProps[TPropKey]>(propName: TPropKey, propType: PropMeta | ((value: unknown) => PropMeta), insightItemAccessor: (insight: IInsightDefinition, ctx: IEmbeddingCodeContext | undefined) => TReturnType): IInsightToPropConversion<TProps, TPropKey, TReturnType>;
16
16
  /**
17
17
  * Conversion based on a single bucket.
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"convertor.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/embeddingCodeGenerator/insightToPropsConverter/convertor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EAGhB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACrC,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IAE9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,qBAAqB,GAAG,SAAS,KAAK,WAAW,CAAC;CACtG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,EAE9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,qBAAqB,GAAG,SAAS,KAAK,WAAW,GAC1G,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAMzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,EAE9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GACrD,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC,CASrE;AAED,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;KAC/C,CAAC,IAAI,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAClF,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC5D,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GACvC,uBAAuB,CAAC,MAAM,CAAC,CAejC"}
1
+ {"version":3,"file":"convertor.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/embeddingCodeGenerator/insightToPropsConverter/convertor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,qBAAqB,CAAC;AAE3F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAC5F,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EAGhB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,wBAAwB,CACrC,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;IAE9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,qBAAqB,GAAG,SAAS,KAAK,WAAW,CAAC;CACtG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,EAE9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,QAAQ,CAAC,EACnD,mBAAmB,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,qBAAqB,GAAG,SAAS,KAAK,WAAW,GAC1G,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,CAMzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,MAAM,SAAS,MAAM,EACrB,QAAQ,SAAS,MAAM,MAAM,EAC7B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,EAE9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GACrD,wBAAwB,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC,CASrE;AAED,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,MAAM,IAAI;KAC/C,CAAC,IAAI,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAClF,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,SAAS,MAAM,EAC5D,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,GACvC,uBAAuB,CAAC,MAAM,CAAC,CAkBjC"}
@@ -1,4 +1,4 @@
1
- // (C) 2022-2025 GoodData Corporation
1
+ // (C) 2022-2026 GoodData Corporation
2
2
  import { insightBucket } from "@gooddata/sdk-model";
3
3
  /**
4
4
  * Conversion based on the whole {@link @gooddata/sdk-model#IInsightDefinition}.
@@ -41,7 +41,9 @@ export function getInsightToPropsConverter(conversionSpec) {
41
41
  if (propValue) {
42
42
  acc[propName] = {
43
43
  value: propValue,
44
- meta: conversion.propType,
44
+ meta: typeof conversion.propType === "function"
45
+ ? conversion.propType(propValue)
46
+ : conversion.propType,
45
47
  };
46
48
  }
47
49
  return acc;
@@ -22,6 +22,11 @@ export declare function getTextWrappingFromProperties(visualizationProperties: I
22
22
  export declare function getGrandTotalsPositionFromProperties(visualizationProperties: IVisualizationProperties): GrandTotalsPosition | undefined;
23
23
  export declare function getPaginationFromProperties(visualizationProperties: IVisualizationProperties): IPagination | undefined;
24
24
  export declare function getConditionalFormattingFromProperties(visualizationProperties: IVisualizationProperties): PivotTableNextConditionalFormattingConfig["conditionalFormatting"] | undefined;
25
+ /**
26
+ * Every conditional formatting gate (runtime render, embed code, configuration panel) must go
27
+ * through this predicate so the enablement rule cannot drift between call sites.
28
+ */
29
+ export declare function isConditionalFormattingEnabled(settings: ISettings | undefined): boolean;
25
30
  export declare function getPageSizeFromProperties(visualizationProperties: IVisualizationProperties): number | undefined;
26
31
  export declare function getMeasureGroupDimensionFromProperties(visualizationProperties: IVisualizationProperties): MeasureGroupDimension;
27
32
  export declare function getColumnHeadersPositionFromProperties(visualizationProperties: IVisualizationProperties): ColumnHeadersPosition;
@@ -1 +1 @@
1
- {"version":3,"file":"propertiesHelper.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/propertiesHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propertiesHelper.d.ts","sourceRoot":"","sources":["../../../src/internal/utils/propertiesHelper.ts"],"names":[],"mappings":"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"}
@@ -190,6 +190,13 @@ export function getPaginationFromProperties(visualizationProperties) {
190
190
  export function getConditionalFormattingFromProperties(visualizationProperties) {
191
191
  return visualizationProperties?.controls?.["conditionalFormatting"];
192
192
  }
193
+ /**
194
+ * Every conditional formatting gate (runtime render, embed code, configuration panel) must go
195
+ * through this predicate so the enablement rule cannot drift between call sites.
196
+ */
197
+ export function isConditionalFormattingEnabled(settings) {
198
+ return settings?.enableConditionalFormatting ?? false;
199
+ }
193
200
  export function getPageSizeFromProperties(visualizationProperties) {
194
201
  const pageSize = visualizationProperties?.controls?.["pageSize"];
195
202
  return typeof pageSize === "number" ? pageSize : undefined;
package/esm/locales.d.ts CHANGED
@@ -1072,9 +1072,15 @@ export declare const conditionalFormattingMessages: {
1072
1072
  dialogSave: {
1073
1073
  id: string;
1074
1074
  };
1075
+ dialogErrorWrapper: {
1076
+ id: string;
1077
+ };
1075
1078
  dialogErrorRangeOrder: {
1076
1079
  id: string;
1077
1080
  };
1081
+ dialogErrorValueEmpty: {
1082
+ id: string;
1083
+ };
1078
1084
  dialogSelectPeriod: {
1079
1085
  id: string;
1080
1086
  };
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../src/locales.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAGjF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CA2EnD,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAsBtD,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuQnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH7B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxC,CAAC;AAEH,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAmBrG,CAAC;AAEP,wGAAsG;AACtG,eAAO,MAAM,yCAAyC,EAAE,OAAO,CAC3D,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAS1D,CAAC"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../src/locales.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAkB,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAGjF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CA2EnD,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAsBtD,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuQnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH7B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCxC,CAAC;AAEH,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAmBrG,CAAC;AAEP,wGAAsG;AACtG,eAAO,MAAM,yCAAyC,EAAE,OAAO,CAC3D,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAS1D,CAAC"}
package/esm/locales.js CHANGED
@@ -508,7 +508,9 @@ export const conditionalFormattingMessages = defineMessages({
508
508
  dialogUnitPercent: { id: "properties.conditionalFormatting.dialog.unitPercent" },
509
509
  dialogCancel: { id: "properties.conditionalFormatting.dialog.cancel" },
510
510
  dialogSave: { id: "properties.conditionalFormatting.dialog.save" },
511
+ dialogErrorWrapper: { id: "properties.conditionalFormatting.dialog.error.wrapper" },
511
512
  dialogErrorRangeOrder: { id: "properties.conditionalFormatting.dialog.error.rangeOrder" },
513
+ dialogErrorValueEmpty: { id: "properties.conditionalFormatting.dialog.error.valueEmpty" },
512
514
  dialogSelectPeriod: { id: "properties.conditionalFormatting.dialog.selectPeriod" },
513
515
  dialogErrorDateUnresolvable: { id: "properties.conditionalFormatting.dialog.error.dateUnresolvable" },
514
516
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/Notification/Notification.tsx"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,kBAAkB,EAGvB,KAAK,qBAAqB,EAC7B,MAAM,qBAAqB,CAAC;AAoB7B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;IACzD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,GAAG,qBAAqB,KAAK,IAAI,CAAC;IACzF,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACvC;AA4BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EACzB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EAC1B,EAAE,mBAAmB,2CA2HrB"}
1
+ {"version":3,"file":"Notification.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/Notification/Notification.tsx"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,kBAAkB,EAGvB,KAAK,qBAAqB,EAC7B,MAAM,qBAAqB,CAAC;AAoB7B;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,kBAAkB,GAAG,qBAAqB,CAAC;IACzD,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,GAAG,qBAAqB,KAAK,IAAI,CAAC;IACzF,uBAAuB,EAAE,MAAM,IAAI,CAAC;CACvC;AA4BD;;GAEG;AACH,wBAAgB,YAAY,CAAC,EACzB,YAAY,EACZ,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EAC1B,EAAE,mBAAmB,2CA8HrB"}
@@ -32,8 +32,11 @@ export function Notification({ notification, markNotificationAsRead, onNotificat
32
32
  const intl = useIntl();
33
33
  const { addWarning } = useToastMessage();
34
34
  const notificationTitle = getNotificationTitle(notification);
35
- const filters = notification.details.data.filters;
36
- const hasFilters = !!filters?.length;
35
+ const filterItems = [
36
+ ...(notification.details.data.filters ?? []).map(({ title, filter }) => ({ title, value: filter })),
37
+ ...(notification.details.data.parameters ?? []),
38
+ ];
39
+ const hasFiltersOrParameters = filterItems.length > 0;
37
40
  const isAlertNotification = notification.notificationType === "alertNotification";
38
41
  const isScheduleNotification = notification.notificationType === "scheduleNotification";
39
42
  const isSliced = isAlertNotification && !!notification.details.data.alert.attribute;
@@ -51,7 +54,7 @@ export function Notification({ notification, markNotificationAsRead, onNotificat
51
54
  const isExpired = fileExpiresAt != null && new Date(fileExpiresAt) < new Date();
52
55
  const { isError, errorTitle, errorMessage, traceId } = getNotificationErrorInfo(notification, exports);
53
56
  const actions = compact([
54
- hasFilters && isAlertNotification && _jsx(NotificationFiltersDetail, { filters: filters }),
57
+ hasFiltersOrParameters && isAlertNotification && _jsx(NotificationFiltersDetail, { items: filterItems }),
55
58
  hasTriggers && isSliced && _jsx(NotificationTriggerDetail, { notification: notification }),
56
59
  hasExports && _jsx(FileLink, { notification: notification }),
57
60
  hasExports && fileExpiresAt && _jsx(FileExpiration, { fileExpiresAt: fileExpiresAt, isExpired: isExpired }),
@@ -1,12 +1,12 @@
1
- import { type AlertFilters } from "@gooddata/sdk-model";
1
+ import { type AlertItem } from "./NotificationFiltersDetailDialog.js";
2
2
  /**
3
3
  * @internal
4
4
  */
5
5
  export interface INotificationFiltersDetailProps {
6
- filters: AlertFilters[];
6
+ items: AlertItem[];
7
7
  }
8
8
  /**
9
9
  * @internal
10
10
  */
11
- export declare function NotificationFiltersDetail({ filters }: INotificationFiltersDetailProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function NotificationFiltersDetail({ items }: INotificationFiltersDetailProps): import("react/jsx-runtime").JSX.Element;
12
12
  //# sourceMappingURL=NotificationFiltersDetail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFiltersDetail.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAaxD;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,OAAO,EAAE,YAAY,EAAE,CAAC;CAC3B;AAQD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,OAAO,EAAE,EAAE,+BAA+B,2CAyCrF"}
1
+ {"version":3,"file":"NotificationFiltersDetail.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetail.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,SAAS,EAAmC,MAAM,sCAAsC,CAAC;AAUvG;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC5C,KAAK,EAAE,SAAS,EAAE,CAAC;CACtB;AAQD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,KAAK,EAAE,EAAE,+BAA+B,2CAyCnF"}
@@ -1,5 +1,5 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2024-2025 GoodData Corporation
2
+ // (C) 2024-2026 GoodData Corporation
3
3
  import { useRef, useState } from "react";
4
4
  import { defineMessages, useIntl } from "react-intl";
5
5
  import { Overlay, UiButton, alignConfigToAlignPoint } from "@gooddata/sdk-ui-kit";
@@ -19,16 +19,16 @@ const messages = defineMessages({
19
19
  /**
20
20
  * @internal
21
21
  */
22
- export function NotificationFiltersDetail({ filters }) {
22
+ export function NotificationFiltersDetail({ items }) {
23
23
  const [isFiltersDialogOpen, setIsFiltersDialogOpen] = useState(false);
24
24
  const intl = useIntl();
25
25
  const ref = useRef(null);
26
26
  const closeFiltersDialog = () => setIsFiltersDialogOpen(false);
27
27
  const toggleFiltersDialog = () => setIsFiltersDialogOpen((x) => !x);
28
- return (_jsxs(_Fragment, { children: [filters.length ? (_jsx(UiButton, { ref: ref, onClick: (e) => {
28
+ return (_jsxs(_Fragment, { children: [items.length > 0 ? (_jsx(UiButton, { ref: ref, onClick: (e) => {
29
29
  e.stopPropagation();
30
30
  toggleFiltersDialog();
31
31
  }, onKeyDown: (e) => {
32
32
  e.stopPropagation();
33
- }, variant: "tertiary", size: "small", label: intl.formatMessage(messages.buttonLabel, { count: filters.length }) })) : null, isFiltersDialogOpen ? (_jsx(Overlay, { isModal: false, alignTo: ref.current, alignPoints: ALIGN_POINTS, closeOnEscape: true, closeOnOutsideClick: true, closeOnParentScroll: true, closeOnMouseDrag: false, onClose: closeFiltersDialog, children: _jsx(NotificationFiltersDetailDialog, { filters: filters, onClose: closeFiltersDialog }) })) : null] }));
33
+ }, variant: "tertiary", size: "small", label: intl.formatMessage(messages.buttonLabel, { count: items.length }) })) : null, isFiltersDialogOpen ? (_jsx(Overlay, { isModal: false, alignTo: ref.current, alignPoints: ALIGN_POINTS, closeOnEscape: true, closeOnOutsideClick: true, closeOnParentScroll: true, closeOnMouseDrag: false, onClose: closeFiltersDialog, children: _jsx(NotificationFiltersDetailDialog, { items: items, onClose: closeFiltersDialog }) })) : null] }));
34
34
  }
@@ -1,13 +1,19 @@
1
- import { type AlertFilters } from "@gooddata/sdk-model";
1
+ /**
2
+ * @internal
3
+ */
4
+ export type AlertItem = {
5
+ title?: string;
6
+ value: string;
7
+ };
2
8
  /**
3
9
  * @internal
4
10
  */
5
11
  export interface INotificationFiltersDetailDialogProps {
6
- filters: AlertFilters[];
12
+ items: AlertItem[];
7
13
  onClose: () => void;
8
14
  }
9
15
  /**
10
16
  * @internal
11
17
  */
12
- export declare function NotificationFiltersDetailDialog({ filters, onClose }: INotificationFiltersDetailDialogProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function NotificationFiltersDetailDialog({ items, onClose }: INotificationFiltersDetailDialogProps): import("react/jsx-runtime").JSX.Element;
13
19
  //# sourceMappingURL=NotificationFiltersDetailDialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationFiltersDetailDialog.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAaxD;;GAEG;AACH,MAAM,WAAW,qCAAqC;IAClD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,qCAAqC,2CAmB1G"}
1
+ {"version":3,"file":"NotificationFiltersDetailDialog.d.ts","sourceRoot":"","sources":["../../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.tsx"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qCAAqC;IAClD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,qCAAqC,2CAmBxG"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- // (C) 2024-2025 GoodData Corporation
2
+ // (C) 2024-2026 GoodData Corporation
3
3
  import { defineMessages, useIntl } from "react-intl";
4
4
  import { bem } from "../bem.js";
5
5
  import { DetailsDialog } from "../components/DetailsDialog.js";
@@ -12,9 +12,9 @@ const messages = defineMessages({
12
12
  /**
13
13
  * @internal
14
14
  */
15
- export function NotificationFiltersDetailDialog({ filters, onClose }) {
15
+ export function NotificationFiltersDetailDialog({ items, onClose }) {
16
16
  const intl = useIntl();
17
- return (_jsx(DetailsDialog, { title: `${intl.formatMessage(messages.title)} (${filters.length})`, content: _jsx("div", { className: b(), children: filters.map(({ title, filter }, idx) => (_jsxs("div", { className: e("item"), children: [
18
- _jsx("div", { className: e("label"), children: title }), _jsx("div", { className: e("values"), children: filter })
17
+ return (_jsx(DetailsDialog, { title: `${intl.formatMessage(messages.title)} (${items.length})`, content: _jsx("div", { className: b(), children: items.map(({ title, value }, idx) => (_jsxs("div", { className: e("item"), children: [
18
+ _jsx("div", { className: e("label"), children: title }), _jsx("div", { className: e("values"), children: value })
19
19
  ] }, idx))) }), onClose: onClose }));
20
20
  }
@@ -231,6 +231,19 @@ export declare type AutomationsType = Extract<AutomationType, "alert" | "schedul
231
231
 
232
232
  export { ChartInlineVisualizationType }
233
233
 
234
+ /**
235
+ * Clears the cached definition of a single insight used by the InsightView components.
236
+ *
237
+ * @remarks
238
+ * Use this after an insight has been edited, so that the next render fetches the new
239
+ * definition. To clear every cache at once, use {@link clearInsightViewCaches}.
240
+ *
241
+ * @param workspace - the workspace the insight belongs to
242
+ * @param ref - the ref of the insight whose cached definition should be dropped
243
+ * @public
244
+ */
245
+ export declare function clearInsightViewCacheForInsight(workspace: string, ref: ObjRef): void;
246
+
234
247
  /**
235
248
  * Clears all the caches used by the InsightView components.
236
249
  *
@@ -40,7 +40,7 @@ export function ObjectShareDialog(props) {
40
40
  /** The dialog session — mounted only while open, so its state cannot outlive a close. */
41
41
  function ObjectShareDialogSession({ target, objectTitle, onClose, onSummaryChange, labels, labelsLoading, labelsError, }) {
42
42
  const intl = useIntl();
43
- const { state, actions, isShareViewOpen, isAddGranteeOpen, isGeneralAccessConfirmOpen, isSelfRestrictConfirmOpen, isMutable, isLoading, workspaceDisabledLevels, rowDisabledLevels, onClose: closeDialog, onRowPermissionChange, onRowRemove, onSelfRestrictCancel, onSelfRestrictConfirm, } = useObjectShareDialog({
43
+ const { state, actions, isShareViewOpen, isAddGranteeOpen, isGeneralAccessConfirmOpen, isSelfRestrictConfirmOpen, isMutable, isLoading, workspaceDisabledLevels, rowDisabledLevels, isRowRemoveDisabled, rowRemoveDisabledTooltip, onClose: closeDialog, onRowPermissionChange, onRowRemove, onSelfRestrictCancel, onSelfRestrictConfirm, } = useObjectShareDialog({
44
44
  target,
45
45
  onClose,
46
46
  onSummaryChange,
@@ -55,10 +55,23 @@ function ObjectShareDialogSession({ target, objectTitle, onClose, onSummaryChang
55
55
  kind: l.isPrimary ? "primary" : undefined,
56
56
  locked: l.isPrimary,
57
57
  }));
58
+ // Per row: a label the grantee only inherits is locked too. It is in their scope
59
+ // (so it shows checked, as the granting workspace shows it) but this workspace
60
+ // holds no grant on it to revoke — the same rule that disables Remove access for a
61
+ // grantee whose object access is inherited-only.
62
+ const rowLabelItems = (granteeId) => {
63
+ const inherited = state.inheritedLabelIdsByGrantee[granteeId];
64
+ if (!inherited?.length) {
65
+ return labelItems;
66
+ }
67
+ return labelItems.map((item) => item.locked || !inherited.includes(item.id) ? item : { ...item, locked: true });
68
+ };
58
69
  const toGranteeRow = (g) => {
59
70
  const display = granteeDisplayPair(g);
60
- // Levels come back only for the signed-in user's own sole grant (you can't
61
- // raise yourself); the confirm-vs-direct routing lives in the hook too.
71
+ // Row policy levels the caller may not pick (their own sole grant, or a
72
+ // level an inherited grant already exceeds) and whether there is a grant in
73
+ // this workspace to remove — is decided in the hook, with the matching
74
+ // tooltips; this only renders it.
62
75
  const disabledLevels = rowDisabledLevels(g);
63
76
  return {
64
77
  id: g.id,
@@ -68,9 +81,9 @@ function ObjectShareDialogSession({ target, objectTitle, onClose, onSummaryChang
68
81
  : display.name,
69
82
  email: display.email,
70
83
  isPending: g.pending !== undefined,
71
- controls: (_jsx(UiGranteeRowControls, { labels: labelItems, selectedLabelIds: state.selectedLabelIdsByGrantee[g.id] ?? state.labels.map((l) => l.id), permissionLevel: g.level, effectivePermission: g.effectivePermission, disabledLevels: disabledLevels, disabledTooltip: disabledLevels
84
+ controls: (_jsx(UiGranteeRowControls, { labels: rowLabelItems(g.id), selectedLabelIds: state.selectedLabelIdsByGrantee[g.id] ?? state.labels.map((l) => l.id), permissionLevel: g.level, effectivePermission: g.effectivePermission, disabledLevels: disabledLevels, disabledTooltip: disabledLevels
72
85
  ? intl.formatMessage(objectShareMessages.selfRestrictWarning)
73
- : undefined,
86
+ : undefined, isRemoveDisabled: isRowRemoveDisabled(g), removeDisabledTooltip: rowRemoveDisabledTooltip,
74
87
  // Disabled while the row's own write is saving, while mutations are
75
88
  // gated (unresolved label scope would orphan real per-label grants),
76
89
  // and while a sole row's self identity is unknown.
@@ -125,7 +138,10 @@ function ObjectShareDialogSession({ target, objectTitle, onClose, onSummaryChang
125
138
  // On a failed load the empty grantee list + RESTRICTED radio are a
126
139
  // placeholder, not the real policy — show why instead of letting it
127
140
  // read as "no one has access".
128
- error: state.status === "error" ? intl.formatMessage(objectShareMessages.loadError) : undefined }), _jsx(UiAddGranteeDialog, { isOpen: isAddGranteeOpen, objectTitle: objectTitle, loadOptions: actions.loadOptions, selectedGrantees: state.pendingGrantees, onSelectedGranteesChange: actions.setPendingGrantees, onBack: actions.closeAddGrantee, onClose: closeDialog, onCancel: actions.closeAddGrantee, onShare: () => {
141
+ error: state.status === "error" ? intl.formatMessage(objectShareMessages.loadError) : undefined }), _jsx(UiAddGranteeDialog, { isOpen: isAddGranteeOpen, objectTitle: objectTitle, loadOptions: actions.loadOptions, selectedGrantees: state.pendingGrantees, onSelectedGranteesChange: actions.setPendingGrantees,
142
+ // Same checklist the grantee rows use, so a label scope can be narrowed
143
+ // while adding instead of only after the grant landed.
144
+ labels: labelItems, onBack: actions.closeAddGrantee, onClose: closeDialog, onCancel: actions.closeAddGrantee, onShare: () => {
129
145
  void actions.confirmAddGrantees();
130
146
  } }), _jsx(UiConfirmDialog, { isOpen: isGeneralAccessConfirmOpen, title: intl.formatMessage(state.pendingGeneralAccess === "RESTRICTED"
131
147
  ? objectShareMessages.confirmRestrictTitle
@@ -40,6 +40,13 @@ export declare const objectShareMessages: {
40
40
  workspaceLevelInherited: {
41
41
  id: string;
42
42
  };
43
+ /**
44
+ * Disabled-action tooltip on a grantee row's Remove access, for a grantee whose
45
+ * access is inherited only — there is no grant in this workspace to revoke.
46
+ */
47
+ granteeRemoveInherited: {
48
+ id: string;
49
+ };
43
50
  granteeYou: {
44
51
  id: string;
45
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/share/messages.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;IAO5B;;;;OAIG;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWL,CAAC"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/share/messages.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;IAO5B;;;;OAIG;;;;IAEH;;;OAGG;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWL,CAAC"}