@gooddata/sdk-ui-ext 11.43.0-alpha.1 → 11.43.0-alpha.3

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 (185) hide show
  1. package/NOTICE +4826 -13873
  2. package/esm/index.d.ts +4 -0
  3. package/esm/index.d.ts.map +1 -1
  4. package/esm/index.js +2 -0
  5. package/esm/internal/components/configurationControls/ConfigSection.d.ts +2 -1
  6. package/esm/internal/components/configurationControls/ConfigSection.d.ts.map +1 -1
  7. package/esm/internal/components/configurationControls/ConfigSection.js +7 -3
  8. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts +4 -0
  9. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts.map +1 -1
  10. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.js +13 -2
  11. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.d.ts +5 -0
  12. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.d.ts.map +1 -1
  13. package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.js +5 -3
  14. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.d.ts +13 -0
  15. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.d.ts.map +1 -0
  16. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.js +158 -0
  17. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.d.ts +12 -0
  18. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.d.ts.map +1 -0
  19. package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.js +54 -0
  20. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.d.ts +14 -0
  21. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.d.ts.map +1 -0
  22. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.js +32 -0
  23. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts +28 -0
  24. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts.map +1 -0
  25. package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.js +149 -0
  26. package/esm/internal/components/configurationControls/customTooltip/CustomTooltipSection.d.ts.map +1 -1
  27. package/esm/internal/components/configurationControls/customTooltip/CustomTooltipSection.js +3 -2
  28. package/esm/internal/components/configurationPanels/ConfigurationPanelContent.d.ts +1 -0
  29. package/esm/internal/components/configurationPanels/ConfigurationPanelContent.d.ts.map +1 -1
  30. package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.d.ts +1 -0
  31. package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.d.ts.map +1 -1
  32. package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.js +9 -1
  33. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts +0 -1
  34. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts.map +1 -1
  35. package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.js +3 -3
  36. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts +0 -1
  37. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts.map +1 -1
  38. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.js +2 -2
  39. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts +0 -1
  40. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts.map +1 -1
  41. package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.js +3 -3
  42. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts +1 -2
  43. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts.map +1 -1
  44. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.js +2 -2
  45. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts +1 -2
  46. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts.map +1 -1
  47. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.js +3 -3
  48. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.d.ts +0 -1
  49. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.d.ts.map +1 -1
  50. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.js +3 -5
  51. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.d.ts +1 -2
  52. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.d.ts.map +1 -1
  53. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.js +2 -2
  54. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceList.d.ts +0 -1
  55. package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceList.d.ts.map +1 -1
  56. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.d.ts +3 -0
  57. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.d.ts.map +1 -1
  58. package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.js +33 -5
  59. package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
  60. package/esm/internal/constants/supportedProperties.js +1 -0
  61. package/esm/internal/translations/de-DE.localization-bundle.d.ts +11 -0
  62. package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
  63. package/esm/internal/translations/de-DE.localization-bundle.js +12 -1
  64. package/esm/internal/translations/en-AU.localization-bundle.d.ts +11 -0
  65. package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
  66. package/esm/internal/translations/en-AU.localization-bundle.js +12 -1
  67. package/esm/internal/translations/en-GB.localization-bundle.d.ts +11 -0
  68. package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
  69. package/esm/internal/translations/en-GB.localization-bundle.js +12 -1
  70. package/esm/internal/translations/en-US.localization-bundle.d.ts +212 -0
  71. package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
  72. package/esm/internal/translations/en-US.localization-bundle.js +212 -0
  73. package/esm/internal/translations/es-419.localization-bundle.d.ts +11 -0
  74. package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
  75. package/esm/internal/translations/es-419.localization-bundle.js +12 -1
  76. package/esm/internal/translations/es-ES.localization-bundle.d.ts +11 -0
  77. package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
  78. package/esm/internal/translations/es-ES.localization-bundle.js +12 -1
  79. package/esm/internal/translations/fi-FI.localization-bundle.d.ts +11 -0
  80. package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
  81. package/esm/internal/translations/fi-FI.localization-bundle.js +12 -1
  82. package/esm/internal/translations/fr-CA.localization-bundle.d.ts +11 -0
  83. package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
  84. package/esm/internal/translations/fr-CA.localization-bundle.js +12 -1
  85. package/esm/internal/translations/fr-FR.localization-bundle.d.ts +11 -0
  86. package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
  87. package/esm/internal/translations/fr-FR.localization-bundle.js +12 -1
  88. package/esm/internal/translations/id-ID.localization-bundle.d.ts +11 -0
  89. package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
  90. package/esm/internal/translations/id-ID.localization-bundle.js +12 -1
  91. package/esm/internal/translations/it-IT.localization-bundle.d.ts +11 -0
  92. package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
  93. package/esm/internal/translations/it-IT.localization-bundle.js +12 -1
  94. package/esm/internal/translations/ja-JP.localization-bundle.d.ts +11 -0
  95. package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
  96. package/esm/internal/translations/ja-JP.localization-bundle.js +12 -1
  97. package/esm/internal/translations/ko-KR.localization-bundle.d.ts +11 -0
  98. package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
  99. package/esm/internal/translations/ko-KR.localization-bundle.js +12 -1
  100. package/esm/internal/translations/nl-NL.localization-bundle.d.ts +11 -0
  101. package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
  102. package/esm/internal/translations/nl-NL.localization-bundle.js +12 -1
  103. package/esm/internal/translations/pl-PL.localization-bundle.d.ts +11 -0
  104. package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
  105. package/esm/internal/translations/pl-PL.localization-bundle.js +12 -1
  106. package/esm/internal/translations/pt-BR.localization-bundle.d.ts +11 -0
  107. package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
  108. package/esm/internal/translations/pt-BR.localization-bundle.js +12 -1
  109. package/esm/internal/translations/pt-PT.localization-bundle.d.ts +11 -0
  110. package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
  111. package/esm/internal/translations/pt-PT.localization-bundle.js +12 -1
  112. package/esm/internal/translations/ru-RU.localization-bundle.d.ts +11 -0
  113. package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
  114. package/esm/internal/translations/ru-RU.localization-bundle.js +12 -1
  115. package/esm/internal/translations/sl-SI.localization-bundle.d.ts +11 -0
  116. package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
  117. package/esm/internal/translations/sl-SI.localization-bundle.js +12 -1
  118. package/esm/internal/translations/th-TH.localization-bundle.d.ts +11 -0
  119. package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
  120. package/esm/internal/translations/th-TH.localization-bundle.js +12 -1
  121. package/esm/internal/translations/tr-TR.localization-bundle.d.ts +11 -0
  122. package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
  123. package/esm/internal/translations/tr-TR.localization-bundle.js +12 -1
  124. package/esm/internal/translations/uk-UA.localization-bundle.d.ts +11 -0
  125. package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
  126. package/esm/internal/translations/uk-UA.localization-bundle.js +12 -1
  127. package/esm/internal/translations/vi-VN.localization-bundle.d.ts +11 -0
  128. package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
  129. package/esm/internal/translations/vi-VN.localization-bundle.js +12 -1
  130. package/esm/internal/translations/zh-HK.localization-bundle.d.ts +11 -0
  131. package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
  132. package/esm/internal/translations/zh-HK.localization-bundle.js +12 -1
  133. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +11 -0
  134. package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
  135. package/esm/internal/translations/zh-Hans.localization-bundle.js +12 -1
  136. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +11 -0
  137. package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
  138. package/esm/internal/translations/zh-Hant.localization-bundle.js +12 -1
  139. package/esm/internal/utils/propertiesHelper.d.ts +2 -1
  140. package/esm/internal/utils/propertiesHelper.d.ts.map +1 -1
  141. package/esm/internal/utils/propertiesHelper.js +3 -0
  142. package/esm/locales.d.ts +79 -0
  143. package/esm/locales.d.ts.map +1 -1
  144. package/esm/locales.js +46 -0
  145. package/esm/sdk-ui-ext.d.ts +274 -3
  146. package/esm/share/ObjectShareDialog.d.ts +67 -0
  147. package/esm/share/ObjectShareDialog.d.ts.map +1 -0
  148. package/esm/share/ObjectShareDialog.js +102 -0
  149. package/esm/share/accessSummary.d.ts +20 -0
  150. package/esm/share/accessSummary.d.ts.map +1 -0
  151. package/esm/share/accessSummary.js +26 -0
  152. package/esm/share/messages.d.ts +44 -0
  153. package/esm/share/messages.d.ts.map +1 -0
  154. package/esm/share/messages.js +23 -0
  155. package/esm/share/objectShareController.helpers.d.ts +80 -0
  156. package/esm/share/objectShareController.helpers.d.ts.map +1 -0
  157. package/esm/share/objectShareController.helpers.js +152 -0
  158. package/esm/share/objectShareController.types.d.ts +110 -0
  159. package/esm/share/objectShareController.types.d.ts.map +1 -0
  160. package/esm/share/objectShareController.types.js +2 -0
  161. package/esm/share/types.d.ts +47 -0
  162. package/esm/share/types.d.ts.map +1 -0
  163. package/esm/share/types.js +2 -0
  164. package/esm/share/useAccessList.d.ts +51 -0
  165. package/esm/share/useAccessList.d.ts.map +1 -0
  166. package/esm/share/useAccessList.js +263 -0
  167. package/esm/share/useLabelScope.d.ts +54 -0
  168. package/esm/share/useLabelScope.d.ts.map +1 -0
  169. package/esm/share/useLabelScope.js +160 -0
  170. package/esm/share/useObjectShare.d.ts +50 -0
  171. package/esm/share/useObjectShare.d.ts.map +1 -0
  172. package/esm/share/useObjectShare.js +17 -0
  173. package/esm/share/useObjectShareController.d.ts +24 -0
  174. package/esm/share/useObjectShareController.d.ts.map +1 -0
  175. package/esm/share/useObjectShareController.js +347 -0
  176. package/package.json +21 -21
  177. package/styles/css/main.css +238 -0
  178. package/styles/css/main.css.map +1 -1
  179. package/styles/internal/css/conditional_formatting.css +239 -0
  180. package/styles/internal/css/conditional_formatting.css.map +1 -0
  181. package/styles/internal/css/config_panel.css +5 -0
  182. package/styles/internal/css/config_panel.css.map +1 -1
  183. package/styles/internal/scss/conditional_formatting.scss +269 -0
  184. package/styles/internal/scss/config_panel.scss +11 -0
  185. package/styles/scss/main.scss +1 -0
@@ -594,5 +594,16 @@ export const zh_Hant = {
594
594
  "insightPicker.sortDirection.ascending": "升序",
595
595
  "insightPicker.sortDirection.descending": "降序",
596
596
  "insightPicker.menu.actions": "行動",
597
- "insightPicker.resetFilters": "重設篩選器"
597
+ "insightPicker.resetFilters": "重設篩選器",
598
+ "objectShare.confirm.restrict.title": "限制存取權?",
599
+ "objectShare.confirm.restrict.description": "這會將存取權限制為僅限上方列出的人員與群組。",
600
+ "objectShare.confirm.grantWorkspace.title": "授予整個工作區的存取權?",
601
+ "objectShare.confirm.grantWorkspace.description": "這會授予所有工作區成員對 \"{title}\" 的存取權。",
602
+ "objectShare.confirm.button": "確認",
603
+ "objectShare.toast.granteeAdded": "已新增存取權。",
604
+ "objectShare.toast.accessUpdated": "已更新存取權。",
605
+ "objectShare.toast.generalAccessUpdated": "已更新一般存取權。",
606
+ "objectShare.toast.error": "無法更新存取權。",
607
+ "objectShare.toast.labelScopePartial": "無法儲存某些標籤存取權。",
608
+ "objectShare.loadError": "無法載入共用設定。請關閉並再試一次。"
598
609
  };
@@ -1,6 +1,6 @@
1
1
  import { type IInsightDefinition, type ISettings } from "@gooddata/sdk-model";
2
2
  import { type ColumnHeadersPosition, type ColumnWidthItem, type GrandTotalsPosition, type MeasureGroupDimension } from "@gooddata/sdk-ui-pivot";
3
- import { type IPagination, type ITextWrapping } from "@gooddata/sdk-ui-pivot/next";
3
+ import { type IPagination, type ITextWrapping, type PivotTableNextConditionalFormattingConfig } from "@gooddata/sdk-ui-pivot/next";
4
4
  import { type AxisType } from "../interfaces/AxisType.js";
5
5
  import { type IBucketItem, type IExtendedReferencePoint, type IVisProps, type IVisualizationProperties } from "../interfaces/Visualization.js";
6
6
  export declare function getSupportedPropertiesControls(visualizationControlsProperties: IVisualizationProperties["controls"], supportedPropertiesList: string[] | undefined): IVisualizationProperties;
@@ -21,6 +21,7 @@ export declare function getColumnWidthsFromProperties(visualizationProperties: I
21
21
  export declare function getTextWrappingFromProperties(visualizationProperties: IVisualizationProperties): ITextWrapping | undefined;
22
22
  export declare function getGrandTotalsPositionFromProperties(visualizationProperties: IVisualizationProperties): GrandTotalsPosition | undefined;
23
23
  export declare function getPaginationFromProperties(visualizationProperties: IVisualizationProperties): IPagination | undefined;
24
+ export declare function getConditionalFormattingFromProperties(visualizationProperties: IVisualizationProperties): PivotTableNextConditionalFormattingConfig["conditionalFormatting"] | undefined;
24
25
  export declare function getPageSizeFromProperties(visualizationProperties: IVisualizationProperties): number | undefined;
25
26
  export declare function getMeasureGroupDimensionFromProperties(visualizationProperties: IVisualizationProperties): MeasureGroupDimension;
26
27
  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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"}
@@ -187,6 +187,9 @@ export function getGrandTotalsPositionFromProperties(visualizationProperties) {
187
187
  export function getPaginationFromProperties(visualizationProperties) {
188
188
  return visualizationProperties?.controls?.["pagination"];
189
189
  }
190
+ export function getConditionalFormattingFromProperties(visualizationProperties) {
191
+ return visualizationProperties?.controls?.["conditionalFormatting"];
192
+ }
190
193
  export function getPageSizeFromProperties(visualizationProperties) {
191
194
  const pageSize = visualizationProperties?.controls?.["pageSize"];
192
195
  return typeof pageSize === "number" ? pageSize : undefined;
package/esm/locales.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type MessageDescriptor } from "react-intl";
2
+ import { type ConditionalFormattingOperator } from "@gooddata/sdk-ui-pivot/next";
2
3
  export declare const titles: Record<string, MessageDescriptor>;
3
4
  export declare const subtitles: Record<string, MessageDescriptor>;
4
5
  export declare const messages: {
@@ -926,4 +927,82 @@ export declare const comparisonMessages: {
926
927
  id: string;
927
928
  };
928
929
  };
930
+ export declare const conditionalFormattingMessages: {
931
+ sectionTitle: {
932
+ id: string;
933
+ };
934
+ empty: {
935
+ id: string;
936
+ };
937
+ rulesLabel: {
938
+ id: string;
939
+ };
940
+ addRule: {
941
+ id: string;
942
+ };
943
+ ruleInvalid: {
944
+ id: string;
945
+ };
946
+ ruleEdit: {
947
+ id: string;
948
+ };
949
+ ruleDelete: {
950
+ id: string;
951
+ };
952
+ dialogAddTitle: {
953
+ id: string;
954
+ };
955
+ dialogEditTitle: {
956
+ id: string;
957
+ };
958
+ dialogTarget: {
959
+ id: string;
960
+ };
961
+ dialogSelectTarget: {
962
+ id: string;
963
+ };
964
+ dialogCondition: {
965
+ id: string;
966
+ };
967
+ dialogFormat: {
968
+ id: string;
969
+ };
970
+ dialogAddCondition: {
971
+ id: string;
972
+ };
973
+ dialogRemoveCondition: {
974
+ id: string;
975
+ };
976
+ dialogTextColor: {
977
+ id: string;
978
+ };
979
+ dialogFillColor: {
980
+ id: string;
981
+ };
982
+ dialogNoColor: {
983
+ id: string;
984
+ };
985
+ dialogScopeCell: {
986
+ id: string;
987
+ };
988
+ dialogScopeRow: {
989
+ id: string;
990
+ };
991
+ dialogValuePlaceholder: {
992
+ id: string;
993
+ };
994
+ dialogFromPlaceholder: {
995
+ id: string;
996
+ };
997
+ dialogToPlaceholder: {
998
+ id: string;
999
+ };
1000
+ dialogCancel: {
1001
+ id: string;
1002
+ };
1003
+ dialogSave: {
1004
+ id: string;
1005
+ };
1006
+ };
1007
+ export declare const conditionalFormattingOperatorMessages: Record<ConditionalFormattingOperator, MessageDescriptor>;
929
1008
  //# sourceMappingURL=locales.d.ts.map
@@ -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;AAGpE,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAuEnD,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAoBtD,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkPnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH7B,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,CAuEnD,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAoBtD,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkPnB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH7B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BxC,CAAC;AAEH,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAmBrG,CAAC"}
package/esm/locales.js CHANGED
@@ -453,3 +453,49 @@ export const comparisonMessages = defineMessages({
453
453
  positionRight: { id: "properties.comparison.position.right" },
454
454
  positionLeft: { id: "properties.comparison.position.left" },
455
455
  });
456
+ export const conditionalFormattingMessages = defineMessages({
457
+ sectionTitle: { id: "properties.conditionalFormatting.title" },
458
+ empty: { id: "properties.conditionalFormatting.empty" },
459
+ rulesLabel: { id: "properties.conditionalFormatting.rulesLabel" },
460
+ addRule: { id: "properties.conditionalFormatting.addRule" },
461
+ ruleInvalid: { id: "properties.conditionalFormatting.rule.invalid" },
462
+ ruleEdit: { id: "properties.conditionalFormatting.rule.edit" },
463
+ ruleDelete: { id: "properties.conditionalFormatting.rule.delete" },
464
+ dialogAddTitle: { id: "properties.conditionalFormatting.dialog.addTitle" },
465
+ dialogEditTitle: { id: "properties.conditionalFormatting.dialog.editTitle" },
466
+ dialogTarget: { id: "properties.conditionalFormatting.dialog.target" },
467
+ dialogSelectTarget: { id: "properties.conditionalFormatting.dialog.selectTarget" },
468
+ dialogCondition: { id: "properties.conditionalFormatting.dialog.condition" },
469
+ dialogFormat: { id: "properties.conditionalFormatting.dialog.format" },
470
+ dialogAddCondition: { id: "properties.conditionalFormatting.dialog.addCondition" },
471
+ dialogRemoveCondition: { id: "properties.conditionalFormatting.dialog.removeCondition" },
472
+ dialogTextColor: { id: "properties.conditionalFormatting.dialog.textColor" },
473
+ dialogFillColor: { id: "properties.conditionalFormatting.dialog.fillColor" },
474
+ dialogNoColor: { id: "properties.conditionalFormatting.dialog.noColor" },
475
+ dialogScopeCell: { id: "properties.conditionalFormatting.dialog.scope.cell" },
476
+ dialogScopeRow: { id: "properties.conditionalFormatting.dialog.scope.row" },
477
+ dialogValuePlaceholder: { id: "properties.conditionalFormatting.dialog.value" },
478
+ dialogFromPlaceholder: { id: "properties.conditionalFormatting.dialog.from" },
479
+ dialogToPlaceholder: { id: "properties.conditionalFormatting.dialog.to" },
480
+ dialogCancel: { id: "properties.conditionalFormatting.dialog.cancel" },
481
+ dialogSave: { id: "properties.conditionalFormatting.dialog.save" },
482
+ });
483
+ export const conditionalFormattingOperatorMessages = defineMessages({
484
+ ALL: { id: "properties.conditionalFormatting.operator.all" },
485
+ EQUAL_TO: { id: "properties.conditionalFormatting.operator.equalTo" },
486
+ NOT_EQUAL_TO: { id: "properties.conditionalFormatting.operator.notEqualTo" },
487
+ GREATER_THAN: { id: "properties.conditionalFormatting.operator.greaterThan" },
488
+ GREATER_THAN_OR_EQUAL_TO: { id: "properties.conditionalFormatting.operator.greaterThanOrEqualTo" },
489
+ LESS_THAN: { id: "properties.conditionalFormatting.operator.lessThan" },
490
+ LESS_THAN_OR_EQUAL_TO: { id: "properties.conditionalFormatting.operator.lessThanOrEqualTo" },
491
+ BETWEEN: { id: "properties.conditionalFormatting.operator.between" },
492
+ NOT_BETWEEN: { id: "properties.conditionalFormatting.operator.notBetween" },
493
+ CONTAINS: { id: "properties.conditionalFormatting.operator.contains" },
494
+ NOT_CONTAINS: { id: "properties.conditionalFormatting.operator.notContains" },
495
+ STARTS_WITH: { id: "properties.conditionalFormatting.operator.startsWith" },
496
+ NOT_STARTS_WITH: { id: "properties.conditionalFormatting.operator.notStartsWith" },
497
+ ENDS_WITH: { id: "properties.conditionalFormatting.operator.endsWith" },
498
+ NOT_ENDS_WITH: { id: "properties.conditionalFormatting.operator.notEndsWith" },
499
+ IS_EMPTY: { id: "properties.conditionalFormatting.operator.isEmpty" },
500
+ IS_NOT_EMPTY: { id: "properties.conditionalFormatting.operator.isNotEmpty" },
501
+ });
@@ -17,6 +17,7 @@ import { CopyCodeOriginType } from '@gooddata/sdk-ui-kit';
17
17
  import { Dispatch } from 'react';
18
18
  import { EmbedType } from '@gooddata/sdk-ui-kit';
19
19
  import { ExplicitDrill } from '@gooddata/sdk-ui';
20
+ import type { GeneralAccessValue } from '@gooddata/sdk-ui-kit';
20
21
  import { GoodDataSdkError } from '@gooddata/sdk-ui';
21
22
  import { IAlertComparisonOperator } from '@gooddata/sdk-model';
22
23
  import { IAlertRelativeArithmeticOperator } from '@gooddata/sdk-model';
@@ -40,10 +41,13 @@ import { ILoadingProps } from '@gooddata/sdk-ui';
40
41
  import { ILocale } from '@gooddata/sdk-ui';
41
42
  import { INotification } from '@gooddata/sdk-model';
42
43
  import { IntlShape } from 'react-intl';
44
+ import type { IObjectPermissionsObject } from '@gooddata/sdk-backend-spi';
43
45
  import { IPivotTableConfig } from '@gooddata/sdk-ui-pivot';
44
46
  import { ISettings } from '@gooddata/sdk-model';
45
47
  import { ITab } from '@gooddata/sdk-ui-kit';
46
48
  import { ITheme } from '@gooddata/sdk-model';
49
+ import type { IUiGranteeAsyncOptions } from '@gooddata/sdk-ui-kit';
50
+ import type { IUiPickedGrantee } from '@gooddata/sdk-ui-kit';
47
51
  import { IUserWorkspaceSettings } from '@gooddata/sdk-backend-spi';
48
52
  import { IVisualizationCallbacks } from '@gooddata/sdk-ui';
49
53
  import { IWidgetUrlBuilder } from '@gooddata/sdk-ui';
@@ -449,7 +453,6 @@ export declare interface IAddWorkspaceToSubjectsProps extends IWithTelemetryProp
449
453
  organizationId: string;
450
454
  onSuccess: () => void;
451
455
  onClose: () => void;
452
- areFilterViewsEnabled?: boolean;
453
456
  }
454
457
 
455
458
  /**
@@ -1411,6 +1414,201 @@ export declare function InsightRenderer(props: IInsightRendererProps): JSX.Eleme
1411
1414
  */
1412
1415
  export declare function InsightView(props: IInsightViewProps): JSX.Element;
1413
1416
 
1417
+ /**
1418
+ * Aggregated, read-only access state for an object — what the inline access row
1419
+ * in a host UI needs to render the current sharing state without opening the
1420
+ * full share dialog.
1421
+ *
1422
+ * - `generalAccess` — `RESTRICTED` if only named grantees can access the object;
1423
+ * `WORKSPACE` if the workspace-wide rule grant is present with non-empty permissions.
1424
+ * - `workspaceLevel` — the rule grant's permission level; `VIEW` by default,
1425
+ * `SHARE` when the rule explicitly permits `SHARE`. EDIT is intentionally not
1426
+ * surfaced (the UI caps at VIEW/SHARE).
1427
+ * - `granteeCount` — number of named grantees (users + groups). Excludes the
1428
+ * workspace-wide rule grant itself.
1429
+ *
1430
+ * @internal
1431
+ */
1432
+ export declare interface IObjectAccessSummary {
1433
+ generalAccess: GeneralAccessValue;
1434
+ workspaceLevel: "VIEW" | "SHARE";
1435
+ granteeCount: number;
1436
+ }
1437
+
1438
+ /**
1439
+ * @internal
1440
+ */
1441
+ export declare interface IObjectShareController {
1442
+ state: IObjectShareControllerState;
1443
+ actions: IObjectShareControllerActions;
1444
+ }
1445
+
1446
+ /**
1447
+ * @internal
1448
+ */
1449
+ export declare interface IObjectShareControllerActions {
1450
+ /** Reset transient dialog state (subview + pending buffers). Call on dialog close. */
1451
+ reset: () => void;
1452
+ openAddGrantee: () => void;
1453
+ closeAddGrantee: () => void;
1454
+ setPendingGrantees: (next: IUiPickedGrantee[]) => void;
1455
+ /**
1456
+ * Loader for the add-grantee picker. Wraps `getAvailableAssignees` with
1457
+ * client-side search + already-picked filtering, returning the picker's
1458
+ * `{ groups, users }` shape.
1459
+ */
1460
+ loadOptions: (search: string) => Promise<IUiGranteeAsyncOptions>;
1461
+ /** Commit all pending grantees to the backend. */
1462
+ confirmAddGrantees: () => Promise<void>;
1463
+ /** Change the permission level for a single grantee. Auto-saves. */
1464
+ changePermissionLevel: (granteeId: string, level: ObjectSharePermissionLevel) => Promise<void>;
1465
+ /** Remove a grantee. Auto-saves. */
1466
+ removeGrantee: (granteeId: string) => Promise<void>;
1467
+ /**
1468
+ * Scope a grantee's access to the given label ids (the primary label is always
1469
+ * kept). Sends a per-label VIEW/none grant for each label that changed. Auto-saves.
1470
+ */
1471
+ changeGranteeLabels: (granteeId: string, selectedLabelIds: string[]) => Promise<void>;
1472
+ /** Stage a general access change; opens the confirm dialog. */
1473
+ requestGeneralAccessChange: (next: GeneralAccessValue) => void;
1474
+ cancelGeneralAccessChange: () => void;
1475
+ /** Commit the pending general access change. Auto-saves. */
1476
+ confirmGeneralAccessChange: () => Promise<void>;
1477
+ }
1478
+
1479
+ /**
1480
+ * @internal
1481
+ */
1482
+ export declare interface IObjectShareControllerState {
1483
+ subview: "main" | "addGrantee";
1484
+ status: "idle" | "loading" | "success" | "error" | "saving";
1485
+ error?: Error;
1486
+ summary: IObjectAccessSummary | undefined;
1487
+ grantees: IObjectShareGrantee[];
1488
+ generalAccess: GeneralAccessValue;
1489
+ /**
1490
+ * Labels (display forms) of the shared attribute, in source order. Empty for
1491
+ * objects without labels (e.g. facts) — the labels picker is then hidden.
1492
+ */
1493
+ labels: IObjectShareLabel[];
1494
+ /**
1495
+ * Whether per-label scope resolution has finished. While false, a grantee's
1496
+ * label scope is not yet known: consumers must not treat a missing
1497
+ * `selectedLabelIdsByGrantee` entry as "all selected" for editing, and should
1498
+ * keep the Add action disabled.
1499
+ */
1500
+ labelsResolved: boolean;
1501
+ /**
1502
+ * Per-grantee label scope: grantee id → the label ids that grantee can access.
1503
+ * The primary label is always included. Empty entry means "all labels" has not
1504
+ * yet been resolved; consumers should treat a missing entry as all-selected.
1505
+ */
1506
+ selectedLabelIdsByGrantee: Record<string, string[]>;
1507
+ /** Pending confirm — when set, the confirm dialog is visible. */
1508
+ pendingGeneralAccess?: GeneralAccessValue;
1509
+ /** Grantees staged in the add-grantee dialog before confirmation. */
1510
+ pendingGrantees: IUiPickedGrantee[];
1511
+ }
1512
+
1513
+ /**
1514
+ * Props for {@link ObjectShareDialog}.
1515
+ *
1516
+ * @internal
1517
+ */
1518
+ export declare interface IObjectShareDialogProps {
1519
+ /** The object whose access is being managed. */
1520
+ target: IObjectPermissionsObject | undefined;
1521
+ /** Object title rendered in the dialog header ('Share "\{title\}"'). */
1522
+ objectTitle: string;
1523
+ /** Whether the dialog is shown. Owned by the consumer. */
1524
+ isOpen: boolean;
1525
+ /** Called when the dialog requests to close (backdrop, close button, after share). */
1526
+ onClose: () => void;
1527
+ /** Fires after each successful access mutation — e.g. to refresh an inline access row. */
1528
+ onSaved?: () => void;
1529
+ /**
1530
+ * Labels (display forms) of the shared attribute, enabling the per-grantee
1531
+ * label-scope picker. Omit for objects without labels (e.g. facts). Ignored
1532
+ * when `controller` is supplied (pass `labels` to {@link useObjectShare} instead).
1533
+ */
1534
+ labels?: IObjectShareLabel[];
1535
+ /**
1536
+ * Whether the object's labels are still loading. While true the Add action is
1537
+ * disabled, so a grantee can't be added before its labels are known (a new
1538
+ * grantee defaults to all labels, which can't be written until they resolve).
1539
+ * Omit for objects without labels (e.g. facts).
1540
+ */
1541
+ labelsLoading?: boolean;
1542
+ /**
1543
+ * Whether loading the object's labels failed. While true every access-changing
1544
+ * control (Add, row controls, general access) is disabled: the label set is
1545
+ * unknown, so any access change would diff against an empty scope and silently
1546
+ * orphan real per-label grants. Omit for objects without labels (e.g. facts).
1547
+ * Ignored when `controller` is supplied (pass `labelsError` to
1548
+ * {@link useObjectShare} instead).
1549
+ */
1550
+ labelsError?: boolean;
1551
+ /**
1552
+ * Escape hatch: supply a controller from {@link useObjectShare} to share its
1553
+ * single access-list fetch with an inline summary row. When omitted, the
1554
+ * dialog manages its own controller from `target`/`onSaved`/`labels`.
1555
+ */
1556
+ controller?: IObjectShareController;
1557
+ }
1558
+
1559
+ /**
1560
+ * Dialog row derived from a backend grant.
1561
+ *
1562
+ * @internal
1563
+ */
1564
+ export declare interface IObjectShareGrantee {
1565
+ /** Stable id used as the dialog row's React key. `user:<ref>` / `group:<ref>`. */
1566
+ id: string;
1567
+ kind: "user" | "group";
1568
+ granteeRef: ObjRef;
1569
+ name: string;
1570
+ email?: string;
1571
+ level: ObjectSharePermissionLevel;
1572
+ /**
1573
+ * Effective permission when it is *higher* than the directly-granted `level`
1574
+ * because the grantee inherits a stronger permission (e.g. via a group).
1575
+ * Undefined when the direct grant already is the effective permission. Drives
1576
+ * the row's "effective permission" warning badge.
1577
+ */
1578
+ effectivePermission?: ObjectSharePermissionLevel;
1579
+ /**
1580
+ * Row-level in-flight state for optimistic updates: `"saving"` while a level
1581
+ * change or freshly-added grant is being committed, `"removing"` while a
1582
+ * removal is in flight. Undefined when the row reflects committed state.
1583
+ */
1584
+ pending?: "saving" | "removing";
1585
+ }
1586
+
1587
+ /**
1588
+ * A label (attribute display form) of the shared attribute. The share dialog
1589
+ * scopes a grantee's access to a subset of these via per-label permission grants.
1590
+ *
1591
+ * @internal
1592
+ */
1593
+ export declare interface IObjectShareLabel {
1594
+ /** Backend ref of the label, used as the `kind: "label"` permission target. */
1595
+ ref: ObjRef;
1596
+ /** Stable id (serialized ref) — the picker's item id and selection key. */
1597
+ id: string;
1598
+ /** Display title shown in the labels picker. */
1599
+ title: string;
1600
+ /**
1601
+ * The primary (key) label. It is always accessible and cannot be unchecked —
1602
+ * rendered locked in the picker. Sharing an attribute always includes it.
1603
+ */
1604
+ isPrimary: boolean;
1605
+ /**
1606
+ * The default display label — the one shown by default in visualizations.
1607
+ * At most one label is the default. Distinct from the primary (key) label.
1608
+ */
1609
+ isDefault: boolean;
1610
+ }
1611
+
1414
1612
  /**
1415
1613
  * Type-guard testing whether the provided object is an instance of {@link IDrillDownDefinition}.
1416
1614
  * @beta
@@ -1498,6 +1696,40 @@ export declare interface ITabsIds {
1498
1696
  all: string;
1499
1697
  }
1500
1698
 
1699
+ /**
1700
+ * Options for {@link useObjectShare}.
1701
+ *
1702
+ * @internal
1703
+ */
1704
+ export declare interface IUseObjectShareOptions {
1705
+ /**
1706
+ * Fires after each successful access mutation (add grantee, change level,
1707
+ * remove, general access toggle). Use it to keep UI outside the dialog in
1708
+ * sync with edits made inside it (e.g. refresh an inline access row).
1709
+ */
1710
+ onSaved?: () => void;
1711
+ /**
1712
+ * Labels (display forms) of the shared attribute, enabling the per-grantee
1713
+ * label-scope picker. Omit for objects without labels (e.g. facts).
1714
+ */
1715
+ labels?: IObjectShareLabel[];
1716
+ /**
1717
+ * Whether loading the object's labels failed. While true the controller stays
1718
+ * label-unresolved so every access-changing control is disabled: with the
1719
+ * label set unknown, reconciling access would diff against an empty set and
1720
+ * silently orphan any real per-label grants. Distinct from an object that
1721
+ * genuinely has no labels (omit `labels`), where editing is safe.
1722
+ */
1723
+ labelsError?: boolean;
1724
+ /**
1725
+ * Whether the object's labels are still loading. While true the controller stays
1726
+ * label-unresolved (same gating as `labelsError`): the labels aren't passed yet,
1727
+ * so an empty list must not be mistaken for a label-free object — otherwise row
1728
+ * controls would reconcile against an empty set and orphan real per-label grants.
1729
+ */
1730
+ labelsLoading?: boolean;
1731
+ }
1732
+
1501
1733
  /**
1502
1734
  * Config for useInsightPagedList hook
1503
1735
  * @internal
@@ -1573,7 +1805,6 @@ export declare interface IUserEditDialogProps extends IWithTelemetryProps {
1573
1805
  onSuccess: () => void;
1574
1806
  onClose: () => void;
1575
1807
  renderDataSourceIcon?: (dataSource: IGrantedDataSource) => ReactElement;
1576
- areFilterViewsEnabled?: boolean;
1577
1808
  isSystemAccountFilteringEnabled?: boolean;
1578
1809
  selectedTab?: UserTabId;
1579
1810
  }
@@ -1589,7 +1820,6 @@ export declare interface IUserGroupEditDialogProps extends IWithTelemetryProps {
1589
1820
  onSuccess: () => void;
1590
1821
  onClose: () => void;
1591
1822
  renderDataSourceIcon?: (dataSource: IGrantedDataSource) => ReactElement;
1592
- areFilterViewsEnabled?: boolean;
1593
1823
  }
1594
1824
 
1595
1825
  /**
@@ -1662,6 +1892,33 @@ export declare const MIN_VISUALIZATION_WIDTH = 2;
1662
1892
  */
1663
1893
  export declare function NotificationsPanel(props: INotificationsPanelProps): JSX.Element;
1664
1894
 
1895
+ /**
1896
+ * Connected share dialog. Renders the main share modal, the add-grantee
1897
+ * sub-dialog and the general-access confirm dialog, all driven by one
1898
+ * controller. Each underlying dialog manages its own open state, so they can
1899
+ * be safely co-mounted; focus, backdrop and portal lifecycles are owned by
1900
+ * `UiModalDialog` inside the kit.
1901
+ *
1902
+ * Mount unconditionally and toggle via `isOpen`; the contents stay invisible
1903
+ * while closed. For the common case pass plain props and let the dialog own its
1904
+ * controller:
1905
+ *
1906
+ * ```tsx
1907
+ * <ObjectShareDialog target={ref} objectTitle={title} isOpen={open} onClose={close} />
1908
+ * ```
1909
+ *
1910
+ * @internal
1911
+ */
1912
+ export declare function ObjectShareDialog({ target, objectTitle, isOpen, onClose, onSaved, labels, labelsLoading, labelsError, controller }: IObjectShareDialogProps): JSX.Element;
1913
+
1914
+ /**
1915
+ * Permission level surfaced in the share dialog. `EDIT` is intentionally
1916
+ * not represented — the underlying permission menu caps at VIEW/SHARE.
1917
+ *
1918
+ * @internal
1919
+ */
1920
+ export declare type ObjectSharePermissionLevel = "VIEW" | "SHARE";
1921
+
1665
1922
  /**
1666
1923
  * @alpha
1667
1924
  */
@@ -1767,6 +2024,20 @@ export declare function useInsightPickerState(author?: string): {
1767
2024
  onTagFilterChange: Dispatch<SetStateAction<string[]>>;
1768
2025
  };
1769
2026
 
2027
+ /**
2028
+ * Connected controller hook backing {@link ObjectShareDialog}. Most consumers
2029
+ * do not need this — render `ObjectShareDialog` with plain props and it owns
2030
+ * its controller. Use this hook directly only to share a single access-list
2031
+ * fetch between the dialog and an inline summary row: call it once, read
2032
+ * `state.summary` for the row, and pass the controller into the dialog.
2033
+ *
2034
+ * The hook eagerly fetches the access list on mount so `state.summary` is
2035
+ * usable while the dialog is closed.
2036
+ *
2037
+ * @internal
2038
+ */
2039
+ export declare function useObjectShare(target: IObjectPermissionsObject | undefined, options?: IUseObjectShareOptions): IObjectShareController;
2040
+
1770
2041
  /**
1771
2042
  * @internal
1772
2043
  */
@@ -0,0 +1,67 @@
1
+ import type { IObjectPermissionsObject } from "@gooddata/sdk-backend-spi";
2
+ import type { IObjectShareController } from "./objectShareController.types.js";
3
+ import type { IObjectShareLabel } from "./types.js";
4
+ /**
5
+ * Props for {@link ObjectShareDialog}.
6
+ *
7
+ * @internal
8
+ */
9
+ export interface IObjectShareDialogProps {
10
+ /** The object whose access is being managed. */
11
+ target: IObjectPermissionsObject | undefined;
12
+ /** Object title rendered in the dialog header ('Share "\{title\}"'). */
13
+ objectTitle: string;
14
+ /** Whether the dialog is shown. Owned by the consumer. */
15
+ isOpen: boolean;
16
+ /** Called when the dialog requests to close (backdrop, close button, after share). */
17
+ onClose: () => void;
18
+ /** Fires after each successful access mutation — e.g. to refresh an inline access row. */
19
+ onSaved?: () => void;
20
+ /**
21
+ * Labels (display forms) of the shared attribute, enabling the per-grantee
22
+ * label-scope picker. Omit for objects without labels (e.g. facts). Ignored
23
+ * when `controller` is supplied (pass `labels` to {@link useObjectShare} instead).
24
+ */
25
+ labels?: IObjectShareLabel[];
26
+ /**
27
+ * Whether the object's labels are still loading. While true the Add action is
28
+ * disabled, so a grantee can't be added before its labels are known (a new
29
+ * grantee defaults to all labels, which can't be written until they resolve).
30
+ * Omit for objects without labels (e.g. facts).
31
+ */
32
+ labelsLoading?: boolean;
33
+ /**
34
+ * Whether loading the object's labels failed. While true every access-changing
35
+ * control (Add, row controls, general access) is disabled: the label set is
36
+ * unknown, so any access change would diff against an empty scope and silently
37
+ * orphan real per-label grants. Omit for objects without labels (e.g. facts).
38
+ * Ignored when `controller` is supplied (pass `labelsError` to
39
+ * {@link useObjectShare} instead).
40
+ */
41
+ labelsError?: boolean;
42
+ /**
43
+ * Escape hatch: supply a controller from {@link useObjectShare} to share its
44
+ * single access-list fetch with an inline summary row. When omitted, the
45
+ * dialog manages its own controller from `target`/`onSaved`/`labels`.
46
+ */
47
+ controller?: IObjectShareController;
48
+ }
49
+ /**
50
+ * Connected share dialog. Renders the main share modal, the add-grantee
51
+ * sub-dialog and the general-access confirm dialog, all driven by one
52
+ * controller. Each underlying dialog manages its own open state, so they can
53
+ * be safely co-mounted; focus, backdrop and portal lifecycles are owned by
54
+ * `UiModalDialog` inside the kit.
55
+ *
56
+ * Mount unconditionally and toggle via `isOpen`; the contents stay invisible
57
+ * while closed. For the common case pass plain props and let the dialog own its
58
+ * controller:
59
+ *
60
+ * ```tsx
61
+ * <ObjectShareDialog target={ref} objectTitle={title} isOpen={open} onClose={close} />
62
+ * ```
63
+ *
64
+ * @internal
65
+ */
66
+ export declare function ObjectShareDialog({ target, objectTitle, isOpen, onClose, onSaved, labels, labelsLoading, labelsError, controller }: IObjectShareDialogProps): import("react/jsx-runtime").JSX.Element;
67
+ //# sourceMappingURL=ObjectShareDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectShareDialog.d.ts","sourceRoot":"","sources":["../../src/share/ObjectShareDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAS1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,gDAAgD;IAChD,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC7C,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,OAAO,CAAC;IAChB,sFAAsF;IACtF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,sBAAsB,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,MAAM,EACN,WAAW,EACX,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACb,EAAE,uBAAuB,2CAwIzB"}