@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.
- package/NOTICE +4826 -13873
- package/esm/index.d.ts +4 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/internal/components/configurationControls/ConfigSection.d.ts +2 -1
- package/esm/internal/components/configurationControls/ConfigSection.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/ConfigSection.js +7 -3
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts +4 -0
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorDropdown.js +13 -2
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.d.ts +5 -0
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/colors/colorDropdown/ColorPalette.js +5 -3
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.d.ts +13 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingDialog.js +158 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.d.ts +12 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/ConditionalFormattingSection.js +54 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.d.ts +14 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingColors.js +32 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts +28 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.d.ts.map +1 -0
- package/esm/internal/components/configurationControls/conditionalFormatting/conditionalFormattingModel.js +149 -0
- package/esm/internal/components/configurationControls/customTooltip/CustomTooltipSection.d.ts.map +1 -1
- package/esm/internal/components/configurationControls/customTooltip/CustomTooltipSection.js +3 -2
- package/esm/internal/components/configurationPanels/ConfigurationPanelContent.d.ts +1 -0
- package/esm/internal/components/configurationPanels/ConfigurationPanelContent.d.ts.map +1 -1
- package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.d.ts +1 -0
- package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.d.ts.map +1 -1
- package/esm/internal/components/configurationPanels/PivotTableConfigurationPanel.js +9 -1
- package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts +0 -1
- package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/AddWorkspaceToSubjects.js +3 -3
- package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts +0 -1
- package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.js +2 -2
- package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts +0 -1
- package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/UserGroupEditDialog.js +3 -3
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts +1 -2
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/AddWorkspace.js +2 -2
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts +1 -2
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/GranularPermissions.js +3 -3
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.d.ts +0 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/PermissionsDropdown.js +3 -5
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.d.ts +1 -2
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.d.ts.map +1 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceItem/WorkspaceItem.js +2 -2
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceList.d.ts +0 -1
- package/esm/internal/components/dialogs/userManagementDialogs/Workspace/WorkspaceList.d.ts.map +1 -1
- package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.d.ts +3 -0
- package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.d.ts.map +1 -1
- package/esm/internal/components/pluggableVisualizations/pivotTableNext/PluggablePivotTableNext.js +33 -5
- package/esm/internal/constants/supportedProperties.d.ts.map +1 -1
- package/esm/internal/constants/supportedProperties.js +1 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/de-DE.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/de-DE.localization-bundle.js +12 -1
- package/esm/internal/translations/en-AU.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/en-AU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-AU.localization-bundle.js +12 -1
- package/esm/internal/translations/en-GB.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/en-GB.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-GB.localization-bundle.js +12 -1
- package/esm/internal/translations/en-US.localization-bundle.d.ts +212 -0
- package/esm/internal/translations/en-US.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/en-US.localization-bundle.js +212 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/es-419.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-419.localization-bundle.js +12 -1
- package/esm/internal/translations/es-ES.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/es-ES.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/es-ES.localization-bundle.js +12 -1
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/fi-FI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fi-FI.localization-bundle.js +12 -1
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/fr-CA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-CA.localization-bundle.js +12 -1
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/fr-FR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/fr-FR.localization-bundle.js +12 -1
- package/esm/internal/translations/id-ID.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/id-ID.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/id-ID.localization-bundle.js +12 -1
- package/esm/internal/translations/it-IT.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/it-IT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/it-IT.localization-bundle.js +12 -1
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/ja-JP.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ja-JP.localization-bundle.js +12 -1
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/ko-KR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ko-KR.localization-bundle.js +12 -1
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/nl-NL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/nl-NL.localization-bundle.js +12 -1
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/pl-PL.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pl-PL.localization-bundle.js +12 -1
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/pt-BR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-BR.localization-bundle.js +12 -1
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/pt-PT.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/pt-PT.localization-bundle.js +12 -1
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/ru-RU.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/ru-RU.localization-bundle.js +12 -1
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/sl-SI.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/sl-SI.localization-bundle.js +12 -1
- package/esm/internal/translations/th-TH.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/th-TH.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/th-TH.localization-bundle.js +12 -1
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/tr-TR.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/tr-TR.localization-bundle.js +12 -1
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/uk-UA.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/uk-UA.localization-bundle.js +12 -1
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/vi-VN.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/vi-VN.localization-bundle.js +12 -1
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/zh-HK.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-HK.localization-bundle.js +12 -1
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/zh-Hans.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hans.localization-bundle.js +12 -1
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts +11 -0
- package/esm/internal/translations/zh-Hant.localization-bundle.d.ts.map +1 -1
- package/esm/internal/translations/zh-Hant.localization-bundle.js +12 -1
- package/esm/internal/utils/propertiesHelper.d.ts +2 -1
- package/esm/internal/utils/propertiesHelper.d.ts.map +1 -1
- package/esm/internal/utils/propertiesHelper.js +3 -0
- package/esm/locales.d.ts +79 -0
- package/esm/locales.d.ts.map +1 -1
- package/esm/locales.js +46 -0
- package/esm/sdk-ui-ext.d.ts +274 -3
- package/esm/share/ObjectShareDialog.d.ts +67 -0
- package/esm/share/ObjectShareDialog.d.ts.map +1 -0
- package/esm/share/ObjectShareDialog.js +102 -0
- package/esm/share/accessSummary.d.ts +20 -0
- package/esm/share/accessSummary.d.ts.map +1 -0
- package/esm/share/accessSummary.js +26 -0
- package/esm/share/messages.d.ts +44 -0
- package/esm/share/messages.d.ts.map +1 -0
- package/esm/share/messages.js +23 -0
- package/esm/share/objectShareController.helpers.d.ts +80 -0
- package/esm/share/objectShareController.helpers.d.ts.map +1 -0
- package/esm/share/objectShareController.helpers.js +152 -0
- package/esm/share/objectShareController.types.d.ts +110 -0
- package/esm/share/objectShareController.types.d.ts.map +1 -0
- package/esm/share/objectShareController.types.js +2 -0
- package/esm/share/types.d.ts +47 -0
- package/esm/share/types.d.ts.map +1 -0
- package/esm/share/types.js +2 -0
- package/esm/share/useAccessList.d.ts +51 -0
- package/esm/share/useAccessList.d.ts.map +1 -0
- package/esm/share/useAccessList.js +263 -0
- package/esm/share/useLabelScope.d.ts +54 -0
- package/esm/share/useLabelScope.d.ts.map +1 -0
- package/esm/share/useLabelScope.js +160 -0
- package/esm/share/useObjectShare.d.ts +50 -0
- package/esm/share/useObjectShare.d.ts.map +1 -0
- package/esm/share/useObjectShare.js +17 -0
- package/esm/share/useObjectShareController.d.ts +24 -0
- package/esm/share/useObjectShareController.d.ts.map +1 -0
- package/esm/share/useObjectShareController.js +347 -0
- package/package.json +21 -21
- package/styles/css/main.css +238 -0
- package/styles/css/main.css.map +1 -1
- package/styles/internal/css/conditional_formatting.css +239 -0
- package/styles/internal/css/conditional_formatting.css.map +1 -0
- package/styles/internal/css/config_panel.css +5 -0
- package/styles/internal/css/config_panel.css.map +1 -1
- package/styles/internal/scss/conditional_formatting.scss +269 -0
- package/styles/internal/scss/config_panel.scss +11 -0
- 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":"AAKA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAkC,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EACH,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,
|
|
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
|
package/esm/locales.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
+
});
|
package/esm/sdk-ui-ext.d.ts
CHANGED
|
@@ -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"}
|