@gooddata/sdk-ui-ext 11.63.0-alpha.2 → 11.63.0-alpha.4

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 (31) hide show
  1. package/esm/internal/components/dialogs/userManagementDialogs/Details/EditUserDetails.d.ts +8 -2
  2. package/esm/internal/components/dialogs/userManagementDialogs/Details/EditUserDetails.d.ts.map +1 -1
  3. package/esm/internal/components/dialogs/userManagementDialogs/Details/EditUserDetails.js +3 -3
  4. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserDetailsView.d.ts +7 -1
  5. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserDetailsView.d.ts.map +1 -1
  6. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserDetailsView.js +11 -4
  7. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserLanguagesSection.d.ts +11 -0
  8. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserLanguagesSection.d.ts.map +1 -0
  9. package/esm/internal/components/dialogs/userManagementDialogs/Details/UserLanguagesSection.js +76 -0
  10. package/esm/internal/components/dialogs/userManagementDialogs/Details/detailsHooks.d.ts +4 -1
  11. package/esm/internal/components/dialogs/userManagementDialogs/Details/detailsHooks.d.ts.map +1 -1
  12. package/esm/internal/components/dialogs/userManagementDialogs/Details/detailsHooks.js +24 -4
  13. package/esm/internal/components/dialogs/userManagementDialogs/Details/userLanguages.d.ts +11 -0
  14. package/esm/internal/components/dialogs/userManagementDialogs/Details/userLanguages.d.ts.map +1 -0
  15. package/esm/internal/components/dialogs/userManagementDialogs/Details/userLanguages.js +50 -0
  16. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts +1 -0
  17. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.d.ts.map +1 -1
  18. package/esm/internal/components/dialogs/userManagementDialogs/UserEditDialog.js +14 -4
  19. package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.d.ts +11 -0
  20. package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.d.ts.map +1 -1
  21. package/esm/internal/components/dialogs/userManagementDialogs/dialogHooks.js +37 -0
  22. package/esm/internal/components/dialogs/userManagementDialogs/locales.d.ts +36 -0
  23. package/esm/internal/components/dialogs/userManagementDialogs/locales.d.ts.map +1 -1
  24. package/esm/internal/components/dialogs/userManagementDialogs/locales.js +12 -0
  25. package/esm/sdk-ui-ext.d.ts +1 -0
  26. package/package.json +21 -21
  27. package/styles/css/main.css +52 -0
  28. package/styles/css/main.css.map +1 -1
  29. package/styles/internal/css/user_management_dialogs.css +52 -0
  30. package/styles/internal/css/user_management_dialogs.css.map +1 -1
  31. package/styles/internal/scss/user_management_dialogs.scss +55 -0
@@ -1,3 +1,4 @@
1
+ import { type ILocalizationStatistics, type IUserLocalizationSettings } from "@gooddata/sdk-backend-spi";
1
2
  import { type IUser } from "@gooddata/sdk-model";
2
3
  export interface IEditUserDetailsProps {
3
4
  isAdmin: boolean;
@@ -6,10 +7,15 @@ export interface IEditUserDetailsProps {
6
7
  enableBackButton?: boolean;
7
8
  changeUserMembership?: boolean;
8
9
  isSystemAccountFilteringEnabled?: boolean;
9
- onSubmit: (user: IUser, isAdmin: boolean) => void;
10
+ isLocalizationEnabled?: boolean;
11
+ languages?: IUserLocalizationSettings;
12
+ isLanguagesError?: boolean;
13
+ statistics?: ILocalizationStatistics;
14
+ onLanguagesSaveFailed?: () => void;
15
+ onSubmit: (user: IUser, isAdmin: boolean, languages?: IUserLocalizationSettings) => void;
10
16
  onCancel: () => void;
11
17
  onClose: () => void;
12
18
  removeAdminGroup: () => Promise<void>;
13
19
  }
14
- export declare function EditUserDetails({ user, isBootstrapUser, isAdmin, enableBackButton, changeUserMembership, isSystemAccountFilteringEnabled, onSubmit, onCancel, onClose, removeAdminGroup, }: IEditUserDetailsProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function EditUserDetails({ user, isBootstrapUser, isAdmin, enableBackButton, changeUserMembership, isSystemAccountFilteringEnabled, isLocalizationEnabled, languages, isLanguagesError, statistics, onLanguagesSaveFailed, onSubmit, onCancel, onClose, removeAdminGroup, }: IEditUserDetailsProps): import("react/jsx-runtime").JSX.Element;
15
21
  //# sourceMappingURL=EditUserDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditUserDetails.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/EditUserDetails.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AASjD,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,gBAAgB,GACnB,EAAE,qBAAqB,2CAgDvB"}
1
+ {"version":3,"file":"EditUserDetails.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/EditUserDetails.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AASjD,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzF,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,+BAA+B,EAC/B,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,gBAAgB,GACnB,EAAE,qBAAqB,2CAgEvB"}
@@ -7,9 +7,9 @@ import { messages } from "../locales.js";
7
7
  import { extractUserName } from "../utils.js";
8
8
  import { useUserDetails } from "./detailsHooks.js";
9
9
  import { UserDetailsView } from "./UserDetailsView.js";
10
- export function EditUserDetails({ user, isBootstrapUser, isAdmin, enableBackButton, changeUserMembership, isSystemAccountFilteringEnabled, onSubmit, onCancel, onClose, removeAdminGroup, }) {
10
+ export function EditUserDetails({ user, isBootstrapUser, isAdmin, enableBackButton, changeUserMembership, isSystemAccountFilteringEnabled, isLocalizationEnabled, languages, isLanguagesError, statistics, onLanguagesSaveFailed, onSubmit, onCancel, onClose, removeAdminGroup, }) {
11
11
  const intl = useIntl();
12
- const { updatedUser, isUpdatedAdmin, isProcessing, onSave, onChange, isDirty } = useUserDetails(user, isAdmin, onSubmit, onCancel, removeAdminGroup, isSystemAccountFilteringEnabled);
12
+ const { updatedUser, isUpdatedAdmin, updatedLanguages, isProcessing, onSave, onChange, onLanguagesChange, isDirty, } = useUserDetails(user, isAdmin, onSubmit, onCancel, removeAdminGroup, isSystemAccountFilteringEnabled, languages, onLanguagesSaveFailed);
13
13
  // change user membership if dialog was opened for that reason, enable Save button, do it just once
14
14
  useEffect(() => {
15
15
  if (changeUserMembership) {
@@ -20,5 +20,5 @@ export function EditUserDetails({ user, isBootstrapUser, isAdmin, enableBackButt
20
20
  const backButtonRenderer = useCallback(() => {
21
21
  return _jsx(BackButton, { onClick: onCancel, className: "s-user-management-navigate-back" });
22
22
  }, [onCancel]);
23
- return (_jsx(ConfirmDialogBase, { className: "gd-share-dialog gd-share-dialog-add-users s-user-management-edit-user", displayCloseButton: true, isPositive: true, isSubmitDisabled: !isDirty || isProcessing, showProgressIndicator: isProcessing, headline: extractUserName(user), cancelButtonText: intl.formatMessage(messages.closeEditMode), submitButtonText: intl.formatMessage(messages.saveEditedDetails), onCancel: onCancel, onSubmit: onSave, onClose: onClose, headerLeftButtonRenderer: enableBackButton ? backButtonRenderer : undefined, children: _jsx(UserDetailsView, { user: updatedUser, isAdmin: isUpdatedAdmin, isBootstrapUser: isBootstrapUser, mode: "EDIT", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, onChange: onChange }) }));
23
+ return (_jsx(ConfirmDialogBase, { className: "gd-share-dialog gd-share-dialog-add-users s-user-management-edit-user", displayCloseButton: true, isPositive: true, isSubmitDisabled: !isDirty || isProcessing, showProgressIndicator: isProcessing, headline: extractUserName(user), cancelButtonText: intl.formatMessage(messages.closeEditMode), submitButtonText: intl.formatMessage(messages.saveEditedDetails), onCancel: onCancel, onSubmit: onSave, onClose: onClose, headerLeftButtonRenderer: enableBackButton ? backButtonRenderer : undefined, children: _jsx(UserDetailsView, { user: updatedUser, isAdmin: isUpdatedAdmin, isBootstrapUser: isBootstrapUser, mode: "EDIT", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, isLocalizationEnabled: isLocalizationEnabled, languages: updatedLanguages, isLanguagesError: isLanguagesError, statistics: statistics, onChange: onChange, onLanguagesChange: onLanguagesChange }) }));
24
24
  }
@@ -1,3 +1,4 @@
1
+ import { type ILocalizationStatistics, type IUserLocalizationSettings } from "@gooddata/sdk-backend-spi";
1
2
  import { type IUser } from "@gooddata/sdk-model";
2
3
  import { type ListMode } from "../types.js";
3
4
  export interface IDetailsViewProps {
@@ -6,7 +7,12 @@ export interface IDetailsViewProps {
6
7
  user: IUser | undefined;
7
8
  mode: ListMode;
8
9
  isSystemAccountFilteringEnabled?: boolean;
10
+ isLocalizationEnabled?: boolean;
11
+ languages?: IUserLocalizationSettings;
12
+ isLanguagesError?: boolean;
13
+ statistics?: ILocalizationStatistics;
9
14
  onChange?: (user: IUser, isAdmin: boolean) => void;
15
+ onLanguagesChange?: (languages: IUserLocalizationSettings) => void;
10
16
  }
11
- export declare function UserDetailsView({ user, isAdmin, isBootstrapUser, mode, isSystemAccountFilteringEnabled, onChange, }: IDetailsViewProps): import("react/jsx-runtime").JSX.Element | null;
17
+ export declare function UserDetailsView({ user, isAdmin, isBootstrapUser, mode, isSystemAccountFilteringEnabled, isLocalizationEnabled, languages, isLanguagesError, statistics, onChange, onLanguagesChange, }: IDetailsViewProps): import("react/jsx-runtime").JSX.Element | null;
12
18
  //# sourceMappingURL=UserDetailsView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserDetailsView.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/UserDetailsView.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,eAAe,EACf,IAAI,EACJ,+BAAuC,EACvC,QAAQ,GACX,EAAE,iBAAiB,kDA2FnB"}
1
+ {"version":3,"file":"UserDetailsView.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/UserDetailsView.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,uBAAuB,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACtE;AAED,wBAAgB,eAAe,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,eAAe,EACf,IAAI,EACJ,+BAAuC,EACvC,qBAA6B,EAC7B,SAAS,EACT,gBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,iBAAiB,GACpB,EAAE,iBAAiB,kDAiHnB"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2023-2026 GoodData Corporation
3
3
  import { useId } from "react";
4
+ import cx from "classnames";
4
5
  import { useIntl } from "react-intl";
5
6
  import { Checkbox } from "@gooddata/sdk-ui-kit";
6
7
  import { messages } from "../locales.js";
@@ -8,7 +9,8 @@ import { useTelemetry } from "../TelemetryContext.js";
8
9
  import { QuestionMarkIcon } from "../Workspace/WorkspaceItem/QuestionMarkIcon.js";
9
10
  import { DetailRow } from "./DetailRow.js";
10
11
  import { OrganizationMemberDropdown } from "./OrganizationMemberDropdown.js";
11
- export function UserDetailsView({ user, isAdmin, isBootstrapUser, mode, isSystemAccountFilteringEnabled = false, onChange, }) {
12
+ import { UserLanguagesSection } from "./UserLanguagesSection.js";
13
+ export function UserDetailsView({ user, isAdmin, isBootstrapUser, mode, isSystemAccountFilteringEnabled = false, isLocalizationEnabled = false, languages, isLanguagesError = false, statistics, onChange, onLanguagesChange, }) {
12
14
  const intl = useIntl();
13
15
  const trackEvent = useTelemetry();
14
16
  const systemAccountCheckboxId = useId();
@@ -21,14 +23,19 @@ export function UserDetailsView({ user, isAdmin, isBootstrapUser, mode, isSystem
21
23
  // demoted to a regular member.
22
24
  const isSystemAccountDisplayed = isAdmin || !!user.systemAccount;
23
25
  const isSystemAccountDisabled = mode === "VIEW" || isAdmin;
24
- return (_jsxs("div", { className: "gd-user-management-dialog-detail s-user-management-user", children: [_jsx(DetailRow, { labelText: intl.formatMessage(messages.userFirstName), value: user.firstName, mode: mode, onChange: (firstName) => onChange?.({ ...user, firstName: String(firstName) }, isAdmin) }), _jsx(DetailRow, { labelText: intl.formatMessage(messages.userLastName), value: user.lastName, mode: mode, onChange: (lastName) => onChange?.({ ...user, lastName: String(lastName) }, isAdmin) }), _jsx(DetailRow, { labelText: intl.formatMessage(messages.userEmail), value: user.email, mode: mode, onChange: (email) => onChange?.({ ...user, email: String(email) }, isAdmin) }), _jsxs("div", { className: "gd-user-management-dialog-detail-row", children: [_jsx("div", { className: "gd-user-management-dialog-detail-label", children: intl.formatMessage(messages.userMembership) }), _jsxs("div", { children: [mode === "VIEW" &&
26
+ const idRow = (_jsx(DetailRow, { labelText: intl.formatMessage(messages.userId), value: user.login, mode: mode, disabled: true, onChange: () => { } }));
27
+ return (_jsxs("div", { className: cx("gd-user-management-dialog-detail", "s-user-management-user", {
28
+ "gd-user-management-dialog-detail-localization": isLocalizationEnabled,
29
+ }), children: [_jsx(DetailRow, { labelText: intl.formatMessage(messages.userFirstName), value: user.firstName, mode: mode, onChange: (firstName) => onChange?.({ ...user, firstName: String(firstName) }, isAdmin) }), _jsx(DetailRow, { labelText: intl.formatMessage(messages.userLastName), value: user.lastName, mode: mode, onChange: (lastName) => onChange?.({ ...user, lastName: String(lastName) }, isAdmin) }), _jsx(DetailRow, { labelText: intl.formatMessage(messages.userEmail), value: user.email, mode: mode, onChange: (email) => onChange?.({ ...user, email: String(email) }, isAdmin) }), isLocalizationEnabled ? idRow : null, _jsxs("div", { className: "gd-user-management-dialog-detail-row", children: [_jsx("div", { className: "gd-user-management-dialog-detail-label", children: intl.formatMessage(messages.userMembership) }), _jsxs("div", { children: [mode === "VIEW" &&
25
30
  (isAdmin
26
31
  ? intl.formatMessage(messages.userIsAdmin)
27
32
  : intl.formatMessage(messages.userIsRegularUser)), mode === "EDIT" && (_jsx(OrganizationMemberDropdown, { isDisabled: isBootstrapUser, isAdmin: isAdmin, onChange: (isAdminNow) => {
28
33
  onChange?.(user, isAdminNow);
29
34
  trackEvent(isAdmin ? "user-role-changed-to-admin" : "user-role-changed-to-member");
30
- } }))] })] }), isSystemAccountFilteringEnabled ? (_jsxs("div", { className: "gd-user-management-dialog-detail-row", children: [_jsxs("div", { className: "gd-user-management-dialog-detail-label gd-user-management-dialog-detail-label-with-icon", children: [_jsx("label", { htmlFor: systemAccountCheckboxId, children: intl.formatMessage(messages.userSystemAccount) }), _jsx(QuestionMarkIcon, { bubbleTextId: messages.userSystemAccountTooltip.id })] }), _jsx("div", { children: _jsx(Checkbox, { id: systemAccountCheckboxId, value: isSystemAccountDisplayed, disabled: isSystemAccountDisabled, onChange: (value) => {
35
+ } }))] })] }), isSystemAccountFilteringEnabled ? (_jsxs("div", { className: cx("gd-user-management-dialog-detail-row", {
36
+ "gd-user-management-dialog-detail-row-checkbox-edit": isLocalizationEnabled && mode === "EDIT",
37
+ }), children: [_jsxs("div", { className: "gd-user-management-dialog-detail-label gd-user-management-dialog-detail-label-with-icon", children: [_jsx("label", { htmlFor: systemAccountCheckboxId, children: intl.formatMessage(messages.userSystemAccount) }), _jsx(QuestionMarkIcon, { bubbleTextId: messages.userSystemAccountTooltip.id })] }), _jsx("div", { children: _jsx(Checkbox, { id: systemAccountCheckboxId, value: isSystemAccountDisplayed, disabled: isSystemAccountDisabled, onChange: (value) => {
31
38
  onChange?.({ ...user, systemAccount: value }, isAdmin);
32
39
  trackEvent(value ? "user-marked-system-account" : "user-unmarked-system-account");
33
- } }) })] })) : null, _jsx(DetailRow, { labelText: intl.formatMessage(messages.userId), value: user.login, mode: mode, disabled: true, onChange: () => { } })] }));
40
+ } }) })] })) : null, isLocalizationEnabled ? null : idRow, isLocalizationEnabled ? (_jsx(UserLanguagesSection, { languages: languages, isError: isLanguagesError, mode: mode, statistics: statistics, onChange: onLanguagesChange })) : null] }));
34
41
  }
@@ -0,0 +1,11 @@
1
+ import { type ILocalizationStatistics, type IUserLocalizationSettings } from "@gooddata/sdk-backend-spi";
2
+ import { type ListMode } from "../types.js";
3
+ export interface IUserLanguagesSectionProps {
4
+ languages: IUserLocalizationSettings | undefined;
5
+ isError: boolean;
6
+ mode: ListMode;
7
+ statistics?: ILocalizationStatistics;
8
+ onChange?: (languages: IUserLocalizationSettings) => void;
9
+ }
10
+ export declare function UserLanguagesSection({ languages, isError, mode, statistics, onChange, }: IUserLanguagesSectionProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=UserLanguagesSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserLanguagesSection.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/UserLanguagesSection.tsx"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAEjC,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoB5C,MAAM,WAAW,0BAA0B;IACvC,SAAS,EAAE,yBAAyB,GAAG,SAAS,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC;CAC7D;AAED,wBAAgB,oBAAoB,CAAC,EACjC,SAAS,EACT,OAAO,EACP,IAAI,EACJ,UAAU,EACV,QAAQ,GACX,EAAE,0BAA0B,2CAqD5B"}
@@ -0,0 +1,76 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // (C) 2026 GoodData Corporation
3
+ import { Fragment, useId } from "react";
4
+ import cx from "classnames";
5
+ import { useIntl } from "react-intl";
6
+ import { DropdownButton, Message, UiDropdown, UiListbox } from "@gooddata/sdk-ui-kit";
7
+ import { messages } from "../locales.js";
8
+ import { QuestionMarkIcon } from "../Workspace/WorkspaceItem/QuestionMarkIcon.js";
9
+ import { USER_LANGUAGE_SETTINGS, languageName, languageNotice, languageOptions } from "./userLanguages.js";
10
+ const NOT_SET_ID = "not-set";
11
+ const LIST_MAX_HEIGHT = 250;
12
+ const LABELS = {
13
+ LOCALE: messages.userInterfaceLanguage,
14
+ METADATA_LOCALE: messages.userMetadataLanguage,
15
+ DATA_LOCALE: messages.userDataLanguage,
16
+ };
17
+ const NOT_SET_TOOLTIPS = {
18
+ LOCALE: messages.userInterfaceLanguageNotSetTooltip,
19
+ METADATA_LOCALE: messages.userMetadataLanguageNotSetTooltip,
20
+ DATA_LOCALE: messages.userDataLanguageNotSetTooltip,
21
+ };
22
+ export function UserLanguagesSection({ languages, isError, mode, statistics, onChange, }) {
23
+ const intl = useIntl();
24
+ const idPrefix = useId();
25
+ const change = (type, value) => {
26
+ onChange?.({ ...languages, [type]: value });
27
+ };
28
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "gd-user-management-dialog-detail-section-title", children: intl.formatMessage(messages.userLanguagesTitle) }), isError ? (_jsx("div", { className: "gd-user-management-dialog-detail-value-empty s-user-languages-error", children: intl.formatMessage(messages.userLanguagesLoadError) })) : (USER_LANGUAGE_SETTINGS.map((type) => {
29
+ const notice = mode === "VIEW" && languages ? languageNotice(type, languages) : undefined;
30
+ return (_jsxs(Fragment, { children: [_jsxs("div", { className: cx("gd-user-management-dialog-detail-row", `s-user-language-${type}`), children: [_jsx("div", { id: `${idPrefix}-${type}-label`, className: "gd-user-management-dialog-detail-label", children: intl.formatMessage(LABELS[type]) }), mode === "VIEW" ? (_jsx(LanguageValue, { type: type, code: languages?.[type] })) : (_jsx(LanguageDropdown, { type: type, labelId: `${idPrefix}-${type}-label`, code: languages?.[type], statistics: statistics, onSelect: (value) => change(type, value) }))] }), notice ? _jsx(LanguageNotSupportedMessage, { type: type }) : null] }, type));
31
+ }))] }));
32
+ }
33
+ function LanguageNotSupportedMessage({ type }) {
34
+ const intl = useIntl();
35
+ return (_jsx(Message, { type: "error", className: cx("gd-user-management-dialog-detail-notice", `s-user-language-notice-${type}`), children: intl.formatMessage(messages.userLanguageNotSupported, {
36
+ b: (chunks) => _jsx("b", { children: chunks }),
37
+ }) }));
38
+ }
39
+ function LanguageCode({ code }) {
40
+ return _jsx("span", { className: "gd-user-management-dialog-detail-code", children: code });
41
+ }
42
+ function LanguageValue({ type, code }) {
43
+ const intl = useIntl();
44
+ if (!code) {
45
+ return (_jsxs("div", { className: "gd-user-management-dialog-detail-value gd-user-management-dialog-detail-value-not-set", children: [intl.formatMessage(messages.userLanguageNotSet), _jsx(QuestionMarkIcon, { bubbleTextId: NOT_SET_TOOLTIPS[type].id })] }));
46
+ }
47
+ return (_jsxs("div", { className: "gd-user-management-dialog-detail-value", children: [languageName(code, intl.locale), " ", _jsx(LanguageCode, { code: code })] }));
48
+ }
49
+ function LanguageDropdown({ type, labelId, code, statistics, onSelect, }) {
50
+ const intl = useIntl();
51
+ const optionLabel = (value) => value
52
+ ? intl.formatMessage(messages.userLanguageOption, {
53
+ name: languageName(value, intl.locale),
54
+ code: value,
55
+ })
56
+ : intl.formatMessage(messages.userLanguageNotSetOption);
57
+ const items = [
58
+ undefined,
59
+ ...languageOptions(type, code, intl.locale, statistics),
60
+ ].map((value) => ({
61
+ type: "interactive",
62
+ id: value ?? NOT_SET_ID,
63
+ stringTitle: optionLabel(value),
64
+ data: value,
65
+ }));
66
+ return (_jsx(UiDropdown, { width: "same-as-anchor", closeOnParentScroll: true, closeOnMouseDrag: true, closeOnEscape: true, autofocusOnOpen: true, accessibilityConfig: {
67
+ triggerRole: "combobox",
68
+ popupRole: "listbox",
69
+ }, renderButton: ({ isOpen, toggleDropdown, ref, dropdownId }) => (_jsx(DropdownButton, { value: code ? (_jsxs(_Fragment, { children: [languageName(code, intl.locale), " ", _jsx(LanguageCode, { code: code })] })) : (intl.formatMessage(messages.userLanguageNotSet)), title: optionLabel(code), isOpen: isOpen, isSmall: false, onClick: toggleDropdown, buttonRef: ref, dropdownId: dropdownId, accessibilityConfig: {
70
+ popupType: "listbox",
71
+ ariaLabelledBy: labelId,
72
+ }, className: "gd-user-management-dialog-detail-input s-user-language-dropdown" })), renderBody: ({ closeDropdown, ariaAttributes }) => (_jsx(UiListbox, { items: items, selectedItemId: code ?? NOT_SET_ID, maxHeight: LIST_MAX_HEIGHT, ariaAttributes: {
73
+ ...ariaAttributes,
74
+ "aria-labelledby": labelId,
75
+ }, onClose: closeDropdown, onSelect: (item) => onSelect(item.data) })) }));
76
+ }
@@ -1,7 +1,10 @@
1
+ import { type IUserLocalizationSettings } from "@gooddata/sdk-backend-spi";
1
2
  import { type IUser, type IUserGroup } from "@gooddata/sdk-model";
2
- export declare const useUserDetails: (user: IUser | undefined, isAdmin: boolean, onSubmit: (user: IUser, isAdmin: boolean) => void, onCancel: () => void, removeAdminGroup: () => Promise<void>, isSystemAccountFilteringEnabled?: boolean) => {
3
+ export declare const useUserDetails: (user: IUser | undefined, isAdmin: boolean, onSubmit: (user: IUser, isAdmin: boolean, languages?: IUserLocalizationSettings) => void, onCancel: () => void, removeAdminGroup: () => Promise<void>, isSystemAccountFilteringEnabled?: boolean, languages?: IUserLocalizationSettings, onLanguagesSaveFailed?: () => void) => {
3
4
  updatedUser: IUser | undefined;
4
5
  isUpdatedAdmin: boolean;
6
+ updatedLanguages: Partial<Record<import("@gooddata/sdk-backend-spi").LocalizationSettingType, string>> | undefined;
7
+ onLanguagesChange: import("react").Dispatch<import("react").SetStateAction<Partial<Record<import("@gooddata/sdk-backend-spi").LocalizationSettingType, string>> | undefined>>;
5
8
  onChange: (user: IUser, isAdmin: boolean) => void;
6
9
  onSave: () => void;
7
10
  isDirty: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"detailsHooks.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/detailsHooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQlE,eAAO,MAAM,cAAc,SACjB,KAAK,GAAG,SAAS,WACd,OAAO,YACN,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,YACvC,MAAM,IAAI,oBACF,MAAM,OAAO,CAAC,IAAI,CAAC;;;qBAgBb,KAAK,WAAW,OAAO;;;;CAkElD,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACjB,UAAU,GAAG,SAAS,YACvB,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,YAC/B,MAAM,IAAI;;;;;;CAgDvB,CAAC"}
1
+ {"version":3,"file":"detailsHooks.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/detailsHooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUlE,eAAO,MAAM,cAAc,SACjB,KAAK,GAAG,SAAS,WACd,OAAO,YACN,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,yBAAyB,KAAK,IAAI,YAC9E,MAAM,IAAI,oBACF,MAAM,OAAO,CAAC,IAAI,CAAC,yDAEzB,yBAAyB,0BACb,MAAM,IAAI;;;;;qBAyBV,KAAK,WAAW,OAAO;;;;CAqFlD,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACjB,UAAU,GAAG,SAAS,YACvB,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,YAC/B,MAAM,IAAI;;;;;;CAgDvB,CAAC"}
@@ -6,9 +6,11 @@ import { useToastMessage } from "@gooddata/sdk-ui-kit";
6
6
  import { messages } from "../locales.js";
7
7
  import { useOrganizationId } from "../OrganizationIdContext.js";
8
8
  import { useTelemetry } from "../TelemetryContext.js";
9
- export const useUserDetails = (user, isAdmin, onSubmit, onCancel, removeAdminGroup, isSystemAccountFilteringEnabled = false) => {
9
+ import { changedLanguageSettings } from "./userLanguages.js";
10
+ export const useUserDetails = (user, isAdmin, onSubmit, onCancel, removeAdminGroup, isSystemAccountFilteringEnabled = false, languages, onLanguagesSaveFailed) => {
10
11
  const { addSuccess, addError } = useToastMessage();
11
12
  const [updatedUser, setUpdatedUser] = useState(user);
13
+ const [updatedLanguages, setUpdatedLanguages] = useState(languages);
12
14
  const [isUpdatedAdmin, setUpdatedAdmin] = useState(isAdmin);
13
15
  const backend = useBackendStrict();
14
16
  const organizationId = useOrganizationId();
@@ -18,6 +20,10 @@ export const useUserDetails = (user, isAdmin, onSubmit, onCancel, removeAdminGro
18
20
  useEffect(() => {
19
21
  setUpdatedUser(user);
20
22
  }, [user]);
23
+ useEffect(() => {
24
+ setUpdatedLanguages((current) => current ?? languages);
25
+ }, [languages]);
26
+ const languageChanges = useMemo(() => (languages && updatedLanguages ? changedLanguageSettings(languages, updatedLanguages) : []), [languages, updatedLanguages]);
21
27
  const onChange = (user, isAdmin) => {
22
28
  setUpdatedUser(user);
23
29
  setUpdatedAdmin(isAdmin);
@@ -33,10 +39,13 @@ export const useUserDetails = (user, isAdmin, onSubmit, onCancel, removeAdminGro
33
39
  fullName: firstName && lastName ? `${firstName} ${lastName}` : undefined,
34
40
  ...(isSystemAccountFilteringEnabled ? {} : { systemAccount: undefined }),
35
41
  };
42
+ const isLanguageOnlySave = stringify(user) === stringify(updatedUser) && !updateAdmin && languageChanges.length > 0;
36
43
  setIsProcessing(true);
37
44
  Promise.all([
38
45
  // update user details
39
- backend.organization(organizationId).users().updateUser(sanitizedUser),
46
+ isLanguageOnlySave
47
+ ? Promise.resolve()
48
+ : backend.organization(organizationId).users().updateUser(sanitizedUser),
40
49
  // grant or remove org manage rights if they are supposed to change
41
50
  updateAdmin
42
51
  ? backend
@@ -54,23 +63,34 @@ export const useUserDetails = (user, isAdmin, onSubmit, onCancel, removeAdminGro
54
63
  : Promise.resolve(),
55
64
  // remove admin group if org manage rights must be removed and user is its member
56
65
  updateAdmin && !isUpdatedAdmin ? removeAdminGroup() : Promise.resolve(),
66
+ ...languageChanges.map(([type, value]) => backend
67
+ .organization(organizationId)
68
+ .users()
69
+ .setUserLocalizationSetting(sanitizedUser.login, type, value)),
57
70
  ])
58
71
  .then(() => {
59
72
  addSuccess(messages.userDetailsUpdatedSuccess);
60
73
  trackEvent("user-detail-updated");
61
- onSubmit(sanitizedUser, isUpdatedAdmin);
74
+ onSubmit(sanitizedUser, isUpdatedAdmin, updatedLanguages);
62
75
  onCancel();
63
76
  })
64
77
  .catch((error) => {
65
78
  console.error("Change of user details failed", error);
66
79
  addError(messages.userDetailsUpdatedFailure);
80
+ if (languageChanges.length > 0) {
81
+ onLanguagesSaveFailed?.();
82
+ }
67
83
  })
68
84
  .finally(() => setIsProcessing(false));
69
85
  };
70
- const isDirty = useMemo(() => stringify(user) !== stringify(updatedUser) || isAdmin !== isUpdatedAdmin, [user, updatedUser, isAdmin, isUpdatedAdmin]);
86
+ const isDirty = useMemo(() => stringify(user) !== stringify(updatedUser) ||
87
+ isAdmin !== isUpdatedAdmin ||
88
+ languageChanges.length > 0, [user, updatedUser, isAdmin, isUpdatedAdmin, languageChanges]);
71
89
  return {
72
90
  updatedUser,
73
91
  isUpdatedAdmin,
92
+ updatedLanguages,
93
+ onLanguagesChange: setUpdatedLanguages,
74
94
  onChange,
75
95
  onSave,
76
96
  isDirty,
@@ -0,0 +1,11 @@
1
+ import { type ILocalizationStatistics, type IUserLocalizationSettings, type LocalizationSettingType } from "@gooddata/sdk-backend-spi";
2
+ export declare const USER_LANGUAGE_SETTINGS: LocalizationSettingType[];
3
+ export type LanguageNotice = {
4
+ type: "notSupported";
5
+ };
6
+ export declare function languageName(code: string, uiLocale: string): string;
7
+ export declare function isInterfaceLanguage(code: string): boolean;
8
+ export declare function languageOptions(setting: LocalizationSettingType, current: string | undefined, uiLocale: string, statistics?: ILocalizationStatistics): string[];
9
+ export declare function languageNotice(setting: LocalizationSettingType, languages: IUserLocalizationSettings): LanguageNotice | undefined;
10
+ export declare function changedLanguageSettings(original: IUserLocalizationSettings, updated: IUserLocalizationSettings): Array<[LocalizationSettingType, string | undefined]>;
11
+ //# sourceMappingURL=userLanguages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userLanguages.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/components/dialogs/userManagementDialogs/Details/userLanguages.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC/B,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EAAiD,CAAC;AAS9G,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAsBtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,wBAAgB,eAAe,CAC3B,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,uBAAuB,GACrC,MAAM,EAAE,CAQV;AAED,wBAAgB,cAAc,CAC1B,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,yBAAyB,GACrC,cAAc,GAAG,SAAS,CAG5B;AAED,wBAAgB,uBAAuB,CACnC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,EAAE,yBAAyB,GACnC,KAAK,CAAC,CAAC,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAKtD"}
@@ -0,0 +1,50 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { LOCALES } from "@gooddata/sdk-model";
3
+ export const USER_LANGUAGE_SETTINGS = ["LOCALE", "METADATA_LOCALE", "DATA_LOCALE"];
4
+ const TRANSLATION_KINDS = {
5
+ METADATA_LOCALE: "metadata",
6
+ DATA_LOCALE: "data",
7
+ };
8
+ const displayNames = new Map();
9
+ function displayNamesFor(uiLocale) {
10
+ if (!displayNames.has(uiLocale)) {
11
+ try {
12
+ displayNames.set(uiLocale, new Intl.DisplayNames([uiLocale], {
13
+ type: "language",
14
+ languageDisplay: "standard",
15
+ fallback: "none",
16
+ }));
17
+ }
18
+ catch {
19
+ displayNames.set(uiLocale, undefined);
20
+ }
21
+ }
22
+ return displayNames.get(uiLocale);
23
+ }
24
+ export function languageName(code, uiLocale) {
25
+ try {
26
+ return displayNamesFor(uiLocale)?.of(code.split("-x-")[0]) ?? code;
27
+ }
28
+ catch {
29
+ return code;
30
+ }
31
+ }
32
+ export function isInterfaceLanguage(code) {
33
+ return LOCALES.some((locale) => locale === code);
34
+ }
35
+ export function languageOptions(setting, current, uiLocale, statistics) {
36
+ const kind = TRANSLATION_KINDS[setting];
37
+ const available = kind && statistics ? statistics[kind].locales.map(({ locale }) => locale) : [...LOCALES];
38
+ const codes = new Set(current ? [...available, current] : available);
39
+ return [...codes].sort((a, b) => languageName(a, uiLocale).localeCompare(languageName(b, uiLocale), uiLocale));
40
+ }
41
+ export function languageNotice(setting, languages) {
42
+ const code = languages[setting];
43
+ return setting === "LOCALE" && code && !isInterfaceLanguage(code) ? { type: "notSupported" } : undefined;
44
+ }
45
+ export function changedLanguageSettings(original, updated) {
46
+ return USER_LANGUAGE_SETTINGS.filter((type) => original[type] !== updated[type]).map((type) => [
47
+ type,
48
+ updated[type],
49
+ ]);
50
+ }
@@ -18,6 +18,7 @@ export interface IUserEditDialogProps extends IWithTelemetryProps {
18
18
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
19
19
  areComputedAttributesEnabled?: boolean;
20
20
  areVisualizationPermissionsEnabled?: boolean;
21
+ isLocalizationEnabled?: boolean;
21
22
  selectedTab?: UserTabId;
22
23
  }
23
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UserEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA0B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AA6RD;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAAyC,CAAC"}
1
+ {"version":3,"file":"UserEditDialog.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/UserEditDialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AA4B7D,OAAO,EAAE,KAAK,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EACH,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,YAAY,CAAC;IACxE,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,+CAA+C,CAAC,EAAE,OAAO,CAAC;IAC1D,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,kCAAkC,CAAC,EAAE,OAAO,CAAC;IAC7C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B;AAyTD;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAAyC,CAAC"}
@@ -10,7 +10,7 @@ import { AddDataSource } from "./DataSources/AddDataSource.js";
10
10
  import { DataSourceList } from "./DataSources/DataSourceList.js";
11
11
  import { EditUserDetails } from "./Details/EditUserDetails.js";
12
12
  import { UserDetailsView } from "./Details/UserDetailsView.js";
13
- import { useDeleteDialog, useDeleteUser, useOrganizationDetails, useUser, useUserDialogMode, useUserDialogTabs, useUserGroups, } from "./dialogHooks.js";
13
+ import { useDeleteDialog, useDeleteUser, useLanguageStatistics, useOrganizationDetails, useUser, useUserDialogMode, useUserDialogTabs, useUserGroups, useUserLanguages, } from "./dialogHooks.js";
14
14
  import { ErrorDialog } from "./ErrorDialog.js";
15
15
  import { usePermissions } from "./hooks/usePermissions.js";
16
16
  import { messages, userDialogTabsMessages } from "./locales.js";
@@ -23,10 +23,12 @@ import { ViewDialog } from "./ViewDialog.js";
23
23
  import { AddWorkspace } from "./Workspace/AddWorkspace.js";
24
24
  import { WorkspaceList } from "./Workspace/WorkspaceList.js";
25
25
  const alignPoints = [{ align: "cc cc" }];
26
- function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", changeUserMembership = false, renderDataSourceIcon, isSystemAccountFilteringEnabled = false, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, selectedTab = undefined, }) {
26
+ function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, onClose, initialView = "VIEW", changeUserMembership = false, renderDataSourceIcon, isSystemAccountFilteringEnabled = false, areMetricPermissionsEnabled = false, isCreateVisualizationWorkspacePermissionEnabled = false, areComputedAttributesEnabled = false, areVisualizationPermissionsEnabled = false, isLocalizationEnabled = false, selectedTab = undefined, }) {
27
27
  const intl = useIntl();
28
28
  const { dialogMode, setDialogMode } = useUserDialogMode(initialView);
29
29
  const { user, isCurrentlyAdmin, onUserDetailsChanged, setIsAdmin, error, isLoading: userIsLoading, } = useUser(userId, organizationId, isAdmin, onSuccess);
30
+ const { languages, setLanguages, reloadLanguages, isLoading: languagesAreLoading, isError: isLanguagesError, } = useUserLanguages(userId, organizationId, isLocalizationEnabled);
31
+ const { statistics, isLoading: statisticsAreLoading } = useLanguageStatistics(organizationId, isLocalizationEnabled);
30
32
  const { isBootstrapUser, bootstrapUserGroupId } = useOrganizationDetails(organizationId);
31
33
  const { grantedWorkspaces, onWorkspacesChanged, removeGrantedWorkspace, updateGrantedWorkspace, grantedDataSources, onDataSourcesChanged, removeGrantedDataSource, updateGrantedDataSource, reloadPermissions, } = usePermissions({ id: userId, subjectType: "user", organizationId, onSuccess });
32
34
  const { grantedUserGroups, onUserGroupsChanged, removeGrantedUserGroup, removeAdminGroup } = useUserGroups({
@@ -70,7 +72,12 @@ function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, o
70
72
  }, [intl, selectedTabId]);
71
73
  const isLoading = error
72
74
  ? false
73
- : userIsLoading || !grantedWorkspaces || !grantedUserGroups || !grantedDataSources;
75
+ : userIsLoading ||
76
+ languagesAreLoading ||
77
+ statisticsAreLoading ||
78
+ !grantedWorkspaces ||
79
+ !grantedUserGroups ||
80
+ !grantedDataSources;
74
81
  const isOpenedInEditMode = initialView !== "VIEW";
75
82
  const [workspaceToEdit, setWorkspaceToEdit] = useState(undefined);
76
83
  const handleWorkspaceEdit = (workspace) => {
@@ -87,7 +94,10 @@ function UserEditDialogComponent({ userId, organizationId, isAdmin, onSuccess, o
87
94
  };
88
95
  return (_jsxs(OrganizationIdProvider, { organizationId: organizationId, children: [isConfirmDeleteOpened ? (_jsx(DeleteConfirmDialog, { titleText: intl.formatMessage(messages.deleteUserConfirmTitle), bodyText: intl.formatMessage(messages.deleteUserConfirmBody), onConfirm: deleteUser, isProcessing: isDeleteUserProcessing, onCancel: onCloseDeleteDialog })) : null, _jsx(Overlay, { alignPoints: alignPoints, isModal: true, positionType: "fixed", className: dialogOverlayClassNames, resizeObserverThreshold: 0.2, children: _jsx("div", { className: dialogWrapperClassNames, children: isLoading ? (_jsxs(_Fragment, { children: [_jsx(LoadingComponent, { className: "gd-user-management-dialog-loading" }), _jsx(ErrorDialog, { dialogTitle: "", onClose: onClose })] })) : error ? (_jsx(ErrorDialog, { onClose: onClose, dialogTitle: intl.formatMessage(messages.userLoadingErrorTitle), children: _jsx(Message, { type: "error", className: "gd-user-management-dialog-error", children: intl.formatMessage(isUnexpectedResponseError(error) && error.httpStatus === 404
89
96
  ? messages.userLoadingErrorNotExist
90
- : messages.userLoadingErrorUnknown) }) })) : (_jsxs(_Fragment, { children: [dialogMode === "VIEW" && (_jsxs(ViewDialog, { dialogTitle: extractUserName(user), isAdmin: isCurrentlyAdmin, isDeleteLinkEnabled: !isBootstrapUser(user), deleteLinkDisabledTooltipTextId: messages.deleteUserDisabledTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isCurrentlyAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "user", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userDialogTabsMessages.userGroups.id && (_jsx(UserGroupsList, { userGroups: grantedUserGroups, mode: "VIEW", onDelete: removeGrantedUserGroup, isBootstrapUser: isBootstrapUser(user), bootstrapUserGroupId: bootstrapUserGroupId })), selectedTabId.id === userDialogTabsMessages.details.id && (_jsx(UserDetailsView, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), mode: "VIEW", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled })), selectedTabId.id === userDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "user", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userId], subjectType: "user", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })), dialogMode === "USER_GROUPS" && (_jsx(AddUserGroup, { userIds: [userId], grantedUserGroups: grantedUserGroups, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userId], subjectType: "user", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserDetails, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), enableBackButton: !isOpenedInEditMode, changeUserMembership: changeUserMembership, isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, onSubmit: onUserDetailsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, removeAdminGroup: removeAdminGroup }))] })) }) })] }));
97
+ : messages.userLoadingErrorUnknown) }) })) : (_jsxs(_Fragment, { children: [dialogMode === "VIEW" && (_jsxs(ViewDialog, { dialogTitle: extractUserName(user), isAdmin: isCurrentlyAdmin, isDeleteLinkEnabled: !isBootstrapUser(user), deleteLinkDisabledTooltipTextId: messages.deleteUserDisabledTooltip.id, deleteLinkText: intl.formatMessage(messages.deleteUserLink), onOpenDeleteDialog: onOpenDeleteDialog, onClose: onClose, onEdit: () => setDialogMode(editButtonMode), editButtonText: editButtonText, editButtonIconClassName: editButtonIconClassName, children: [isCurrentlyAdmin ? (_jsx("div", { className: "gd-message information gd-user-management-admin-alert s-admin-message", children: _jsx("div", { className: "gd-message-text", children: intl.formatMessage(messages.adminAlert) }) })) : null, _jsx(Tabs, { selectedTabId: selectedTabId.id, onTabSelect: setSelectedTabId, tabs: tabs, className: "gd-user-management-dialog-tabs s-user-management-tabs" }), selectedTabId.id === userDialogTabsMessages.workspaces.id && (_jsx(WorkspaceList, { workspaces: grantedWorkspaces, subjectType: "user", mode: "VIEW", onDelete: removeGrantedWorkspace, onChange: updateGrantedWorkspace, onClick: handleWorkspaceEdit })), selectedTabId.id === userDialogTabsMessages.userGroups.id && (_jsx(UserGroupsList, { userGroups: grantedUserGroups, mode: "VIEW", onDelete: removeGrantedUserGroup, isBootstrapUser: isBootstrapUser(user), bootstrapUserGroupId: bootstrapUserGroupId })), selectedTabId.id === userDialogTabsMessages.details.id && (_jsx(UserDetailsView, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), mode: "VIEW", isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, isLocalizationEnabled: isLocalizationEnabled, languages: languages, isLanguagesError: isLanguagesError })), selectedTabId.id === userDialogTabsMessages.dataSources.id && (_jsx(DataSourceList, { dataSources: grantedDataSources, subjectType: "user", mode: "VIEW", onDelete: removeGrantedDataSource, onChange: updateGrantedDataSource, renderDataSourceIcon: renderDataSourceIcon }))] })), dialogMode === "WORKSPACE" && (_jsx(AddWorkspace, { ids: [userId], subjectType: "user", grantedWorkspaces: grantedWorkspaces, enableBackButton: !isOpenedInEditMode, onSubmit: handleWorkspaceChanged, onCancel: isOpenedInEditMode ? onClose : handleWorkspaceCancel, onClose: onClose, editWorkspace: workspaceToEdit, areMetricPermissionsEnabled: areMetricPermissionsEnabled, isCreateVisualizationWorkspacePermissionEnabled: isCreateVisualizationWorkspacePermissionEnabled, areComputedAttributesEnabled: areComputedAttributesEnabled, areVisualizationPermissionsEnabled: areVisualizationPermissionsEnabled })), dialogMode === "USER_GROUPS" && (_jsx(AddUserGroup, { userIds: [userId], grantedUserGroups: grantedUserGroups, enableBackButton: !isOpenedInEditMode, onSubmit: onUserGroupsChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose })), dialogMode === "DATA_SOURCES" && (_jsx(AddDataSource, { ids: [userId], subjectType: "user", grantedDataSources: grantedDataSources, enableBackButton: !isOpenedInEditMode, onSubmit: onDataSourcesChanged, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, renderDataSourceIcon: renderDataSourceIcon })), dialogMode === "DETAIL" && (_jsx(EditUserDetails, { user: user, isAdmin: isCurrentlyAdmin, isBootstrapUser: isBootstrapUser(user), enableBackButton: !isOpenedInEditMode, changeUserMembership: changeUserMembership, isSystemAccountFilteringEnabled: isSystemAccountFilteringEnabled, isLocalizationEnabled: isLocalizationEnabled, languages: languages, isLanguagesError: isLanguagesError, statistics: statistics, onLanguagesSaveFailed: reloadLanguages, onSubmit: (updatedUser, isUpdatedAdmin, updatedLanguages) => {
98
+ setLanguages(updatedLanguages);
99
+ onUserDetailsChanged(updatedUser, isUpdatedAdmin);
100
+ }, onCancel: isOpenedInEditMode ? onClose : () => setDialogMode("VIEW"), onClose: onClose, removeAdminGroup: removeAdminGroup }))] })) }) })] }));
91
101
  }
92
102
  /**
93
103
  * @internal
@@ -9,6 +9,17 @@ export declare const useUser: (userId: string, organizationId: string, isAdmin:
9
9
  error: any;
10
10
  isLoading: boolean;
11
11
  };
12
+ export declare const useUserLanguages: (userId: string, organizationId: string, isEnabled: boolean) => {
13
+ languages: Partial<Record<import("@gooddata/sdk-backend-spi").LocalizationSettingType, string>> | undefined;
14
+ setLanguages: import("react").Dispatch<import("react").SetStateAction<Partial<Record<import("@gooddata/sdk-backend-spi").LocalizationSettingType, string>> | undefined>>;
15
+ reloadLanguages: () => void;
16
+ isLoading: boolean;
17
+ isError: boolean;
18
+ };
19
+ export declare const useLanguageStatistics: (organizationId: string, isEnabled: boolean) => {
20
+ statistics: import("@gooddata/sdk-backend-spi").ILocalizationStatistics | undefined;
21
+ isLoading: boolean;
22
+ };
12
23
  export declare const useUserGroup: (userGroupId: string, organizationId: string, onSuccess: () => void) => {
13
24
  userGroup: IUserGroup | undefined;
14
25
  onUserGroupDetailsChanged: (userGroup: IUserGroup) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"dialogHooks.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/dialogHooks.ts"],"names":[],"mappings":"AAMA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,UAAU,EAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,OAAO,WAAY,MAAM,kBAAkB,MAAM,WAAW,OAAO,aAAa,MAAM,IAAI;;iCAc/D,KAAK,WAAW,OAAO;;;;;CAc9D,CAAC;AAEF,eAAO,MAAM,YAAY,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;2CAY7C,UAAU;;;CAW3D,CAAC;AAEF,eAAO,MAAM,aAAa,WACd,MAAM,kBACE,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACd,MAAM,kBACH,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;CAiB3B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGvC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,kGAOvB,oBAAoB;;sCA0DsB,iBAAiB,EAAE;+CArCV,iBAAiB;;CAwDtE,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;4BAuCxD,WAAW,EAAE;sCAjBH,WAAW;CA4BvD,CAAC;AAeF,eAAO,MAAM,iBAAiB,sBACP,iBAAiB,EAAE,GAAG,SAAS,qBAC/B,iBAAiB,EAAE,GAAG,SAAS,sBAC9B,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO,gBACF,SAAS;;;;;;;;CAmC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,sBACZ,iBAAiB,EAAE,GAAG,SAAS,gBACpC,WAAW,EAAE,sBACP,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO;;;;;;;;CA+BnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,kBAAkB;;;CAMhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAAiB,uBAAuB;;;CAM1E,CAAC;AAsBF,eAAO,MAAM,sBAAsB,mBAAoB,MAAM;IAGrD,eAAe,SAAS,KAAK,GAAG,SAAS;IACzC,oBAAoB,cAAc,UAAU,GAAG,SAAS;IAExD,eAAe;IACf,oBAAoB;CAE3B,CAAC"}
1
+ {"version":3,"file":"dialogHooks.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/dialogHooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,UAAU,EAGlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,IAAI,EAAmB,MAAM,sBAAsB,CAAC;AAIlE,OAAO,EACH,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACjB,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,OAAO,WAAY,MAAM,kBAAkB,MAAM,WAAW,OAAO,aAAa,MAAM,IAAI;;iCAc/D,KAAK,WAAW,OAAO;;;;;CAc9D,CAAC;AAEF,eAAO,MAAM,gBAAgB,WAAY,MAAM,kBAAkB,MAAM,aAAa,OAAO;;;;;;CA8B1F,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAAoB,MAAM,aAAa,OAAO;IAaxE,UAAU;IACV,SAAS;CAEhB,CAAC;AAEF,eAAO,MAAM,YAAY,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;2CAY7C,UAAU;;;CAW3D,CAAC;AAEF,eAAO,MAAM,aAAa,WACd,MAAM,kBACE,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACd,MAAM,kBACH,MAAM,aACX,MAAM,IAAI,WACZ,MAAM,IAAI;;;CA8BtB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;CAiB3B,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGvC,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,kGAOvB,oBAAoB;;sCA0DsB,iBAAiB,EAAE;+CArCV,iBAAiB;;CAwDtE,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAAiB,MAAM,kBAAkB,MAAM,aAAa,MAAM,IAAI;;4BAuCxD,WAAW,EAAE;sCAjBH,WAAW;CA4BvD,CAAC;AAeF,eAAO,MAAM,iBAAiB,sBACP,iBAAiB,EAAE,GAAG,SAAS,qBAC/B,iBAAiB,EAAE,GAAG,SAAS,sBAC9B,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO,gBACF,SAAS;;;;;;;;CAmC1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,sBACZ,iBAAiB,EAAE,GAAG,SAAS,gBACpC,WAAW,EAAE,sBACP,kBAAkB,EAAE,GAAG,SAAS,WAC3C,OAAO;;;;;;;;CA+BnB,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAAiB,kBAAkB;;;CAMhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAAiB,uBAAuB;;;CAM1E,CAAC;AAsBF,eAAO,MAAM,sBAAsB,mBAAoB,MAAM;IAGrD,eAAe,SAAS,KAAK,GAAG,SAAS;IACzC,oBAAoB,cAAc,UAAU,GAAG,SAAS;IAExD,eAAe;IACf,oBAAoB;CAE3B,CAAC"}
@@ -29,6 +29,43 @@ export const useUser = (userId, organizationId, isAdmin, onSuccess) => {
29
29
  isLoading: status === "loading",
30
30
  };
31
31
  };
32
+ export const useUserLanguages = (userId, organizationId, isEnabled) => {
33
+ const [languages, setLanguages] = useState();
34
+ const backend = useBackendStrict();
35
+ const { status } = useCancelablePromise({
36
+ promise: isEnabled
37
+ ? () => backend.organization(organizationId).users().getUserLocalizationSettings(userId)
38
+ : null,
39
+ onSuccess: (languages) => setLanguages(languages),
40
+ }, [backend, userId, organizationId, isEnabled]);
41
+ const reloadLanguages = useCallback(() => {
42
+ backend
43
+ .organization(organizationId)
44
+ .users()
45
+ .getUserLocalizationSettings(userId)
46
+ .then(setLanguages)
47
+ .catch((error) => console.error("Reload of user languages failed", error));
48
+ }, [backend, organizationId, userId]);
49
+ return {
50
+ languages,
51
+ setLanguages,
52
+ reloadLanguages,
53
+ isLoading: status === "loading",
54
+ isError: status === "error",
55
+ };
56
+ };
57
+ export const useLanguageStatistics = (organizationId, isEnabled) => {
58
+ const backend = useBackendStrict();
59
+ const { result, status } = useCancelablePromise({
60
+ promise: isEnabled
61
+ ? () => backend.organization(organizationId).localization().getStatistics()
62
+ : null,
63
+ }, [backend, organizationId, isEnabled]);
64
+ return {
65
+ statistics: result,
66
+ isLoading: status === "loading",
67
+ };
68
+ };
32
69
  export const useUserGroup = (userGroupId, organizationId, onSuccess) => {
33
70
  const [userGroup, setUserGroup] = useState();
34
71
  const backend = useBackendStrict();
@@ -243,6 +243,42 @@ export declare const messages: {
243
243
  emptyDetailValue: {
244
244
  id: string;
245
245
  };
246
+ userLanguagesTitle: {
247
+ id: string;
248
+ };
249
+ userInterfaceLanguage: {
250
+ id: string;
251
+ };
252
+ userMetadataLanguage: {
253
+ id: string;
254
+ };
255
+ userDataLanguage: {
256
+ id: string;
257
+ };
258
+ userLanguageNotSet: {
259
+ id: string;
260
+ };
261
+ userLanguageNotSetOption: {
262
+ id: string;
263
+ };
264
+ userInterfaceLanguageNotSetTooltip: {
265
+ id: string;
266
+ };
267
+ userMetadataLanguageNotSetTooltip: {
268
+ id: string;
269
+ };
270
+ userDataLanguageNotSetTooltip: {
271
+ id: string;
272
+ };
273
+ userLanguageOption: {
274
+ id: string;
275
+ };
276
+ userLanguageNotSupported: {
277
+ id: string;
278
+ };
279
+ userLanguagesLoadError: {
280
+ id: string;
281
+ };
246
282
  closeEditMode: {
247
283
  id: string;
248
284
  };
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/locales.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB;;QACjB,EAAE;;;QACF,EAAE;;;QACL,EAAE;;;QACE,EAAE;;CACnB,CAAC;AAEH,eAAO,MAAM,2BAA2B;;QACtB,EAAE;;;QACP,EAAE;;;QACA,EAAE;;;QACE,EAAE;;CACnB,CAAC;AAEH,eAAO,MAAM,QAAQ;;QACa,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACQ,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACC,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACb,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACA,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACJ,EAAE;;;QACO,EAAE;;;QACJ,EAAE;;;QACK,EAAE;;;QACJ,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACH,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACU,EAAE;;;QACF,EAAE;;;QACZ,EAAE;;;QACF,EAAE;;;QACI,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACd,EAAE;;;QACF,EAAE;;;QACP,EAAE;;;QACc,EAAE;;;QACjB,EAAE;;;QACG,EAAE;;;QACP,EAAE;;;QACG,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACE,EAAE;;;QACJ,EAAE;;;QACH,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACC,EAAE;;;QACN,EAAE;;;QACA,EAAE;;;QACH,EAAE;;;QAClB,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACJ,EAAE;;;QACL,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACK,EAAE;;;QACH,EAAE;;;QACK,EAAE;;;QACb,EAAE;;;QACH,EAAE;;;QACL,EAAE;;;QACL,EAAE;;;QACK,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACC,EAAE;;;QACK,EAAE;;;QACH,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACR,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACJ,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACR,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACM,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACJ,EAAE;;;QACD,EAAE;;;QACC,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACH,EAAE;;;QACM,EAAE;;;QACR,EAAE;;;QACC,EAAE;;;QACM,EAAE;;;QACR,EAAE;;;QACrB,EAAE;;;QACG,EAAE;;;QACR,EAAE;;;QACmB,EAAE;;;QACG,EAAE;;;QACT,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACC,EAAE;;CACnC,CAAC"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../../../src/internal/components/dialogs/userManagementDialogs/locales.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB;;QACjB,EAAE;;;QACF,EAAE;;;QACL,EAAE;;;QACE,EAAE;;CACnB,CAAC;AAEH,eAAO,MAAM,2BAA2B;;QACtB,EAAE;;;QACP,EAAE;;;QACA,EAAE;;;QACE,EAAE;;CACnB,CAAC;AAEH,eAAO,MAAM,QAAQ;;QACa,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACQ,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACC,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACb,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACA,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACJ,EAAE;;;QACO,EAAE;;;QACJ,EAAE;;;QACK,EAAE;;;QACJ,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACH,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACU,EAAE;;;QACF,EAAE;;;QACZ,EAAE;;;QACF,EAAE;;;QACI,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACd,EAAE;;;QACF,EAAE;;;QACP,EAAE;;;QACc,EAAE;;;QACjB,EAAE;;;QACG,EAAE;;;QACP,EAAE;;;QACG,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACE,EAAE;;;QACJ,EAAE;;;QACH,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACC,EAAE;;;QACN,EAAE;;;QACA,EAAE;;;QACH,EAAE;;;QAClB,EAAE;;;QACM,EAAE;;;QACH,EAAE;;;QACJ,EAAE;;;QACA,EAAE;;;QACC,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACA,EAAE;;;QACI,EAAE;;;QACQ,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACb,EAAE;;;QACI,EAAE;;;QACJ,EAAE;;;QACX,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACK,EAAE;;;QACH,EAAE;;;QACK,EAAE;;;QACb,EAAE;;;QACH,EAAE;;;QACL,EAAE;;;QACL,EAAE;;;QACK,EAAE;;;QACJ,EAAE;;;QACC,EAAE;;;QACC,EAAE;;;QACK,EAAE;;;QACH,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACR,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACJ,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACR,EAAE;;;QACE,EAAE;;;QACR,EAAE;;;QACM,EAAE;;;QACI,EAAE;;;QACH,EAAE;;;QACN,EAAE;;;QACJ,EAAE;;;QACD,EAAE;;;QACC,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACP,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACF,EAAE;;;QACG,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACH,EAAE;;;QACM,EAAE;;;QACR,EAAE;;;QACC,EAAE;;;QACM,EAAE;;;QACR,EAAE;;;QACrB,EAAE;;;QACG,EAAE;;;QACR,EAAE;;;QACmB,EAAE;;;QACG,EAAE;;;QACT,EAAE;;;QACG,EAAE;;;QACX,EAAE;;;QACF,EAAE;;;QACH,EAAE;;;QACF,EAAE;;;QACD,EAAE;;;QACC,EAAE;;CACnC,CAAC"}
@@ -85,6 +85,18 @@ export const messages = defineMessages({
85
85
  confirmDeleteButton: { id: "userManagement.deleteDialog.confirmButton" },
86
86
  cancelDeleteButton: { id: "userManagement.deleteDialog.cancelButton" },
87
87
  emptyDetailValue: { id: "userManagement.userDetail.emptyValue" },
88
+ userLanguagesTitle: { id: "userManagement.userDetail.languages.title" },
89
+ userInterfaceLanguage: { id: "userManagement.userDetail.interfaceLanguage.label" },
90
+ userMetadataLanguage: { id: "userManagement.userDetail.metadataLanguage.label" },
91
+ userDataLanguage: { id: "userManagement.userDetail.dataLanguage.label" },
92
+ userLanguageNotSet: { id: "userManagement.userDetail.language.notSet" },
93
+ userLanguageNotSetOption: { id: "userManagement.userDetail.language.notSetOption" },
94
+ userInterfaceLanguageNotSetTooltip: { id: "userManagement.userDetail.interfaceLanguage.notSet.tooltip" },
95
+ userMetadataLanguageNotSetTooltip: { id: "userManagement.userDetail.metadataLanguage.notSet.tooltip" },
96
+ userDataLanguageNotSetTooltip: { id: "userManagement.userDetail.dataLanguage.notSet.tooltip" },
97
+ userLanguageOption: { id: "userManagement.userDetail.language.option" },
98
+ userLanguageNotSupported: { id: "userManagement.userDetail.interfaceLanguage.notSupported" },
99
+ userLanguagesLoadError: { id: "userManagement.userDetail.languages.loadError" },
88
100
  closeEditMode: { id: "userManagement.userDetail.cancelButton" },
89
101
  saveEditedDetails: { id: "userManagement.userDetail.saveButton" },
90
102
  userIsAdmin: { id: "userManagement.detail.orgPermission.admin" },
@@ -2134,6 +2134,7 @@ export declare interface IUserEditDialogProps extends IWithTelemetryProps {
2134
2134
  isCreateVisualizationWorkspacePermissionEnabled?: boolean;
2135
2135
  areComputedAttributesEnabled?: boolean;
2136
2136
  areVisualizationPermissionsEnabled?: boolean;
2137
+ isLocalizationEnabled?: boolean;
2137
2138
  selectedTab?: UserTabId;
2138
2139
  }
2139
2140
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-ext",
3
- "version": "11.63.0-alpha.2",
3
+ "version": "11.63.0-alpha.4",
4
4
  "description": "GoodData.UI SDK - Extensions",
5
5
  "license": "LicenseRef-LICENSE",
6
6
  "author": "GoodData Corporation",
@@ -63,20 +63,20 @@
63
63
  "ts-invariant": "0.10.3",
64
64
  "tslib": "2.8.1",
65
65
  "uuid": "11.1.1",
66
- "@gooddata/sdk-backend-base": "11.63.0-alpha.2",
67
- "@gooddata/sdk-backend-spi": "11.63.0-alpha.2",
68
- "@gooddata/sdk-embedding": "11.63.0-alpha.2",
69
- "@gooddata/sdk-ui": "11.63.0-alpha.2",
70
- "@gooddata/sdk-model": "11.63.0-alpha.2",
71
- "@gooddata/sdk-ui-charts": "11.63.0-alpha.2",
72
- "@gooddata/sdk-ui-filters": "11.63.0-alpha.2",
73
- "@gooddata/sdk-ui-geo": "11.63.0-alpha.2",
74
- "@gooddata/sdk-ui-pivot": "11.63.0-alpha.2",
75
- "@gooddata/sdk-ui-kit": "11.63.0-alpha.2",
76
- "@gooddata/sdk-ui-semantic-search": "11.63.0-alpha.2",
77
- "@gooddata/sdk-ui-theme-provider": "11.63.0-alpha.2",
78
- "@gooddata/sdk-ui-vis-commons": "11.63.0-alpha.2",
79
- "@gooddata/util": "11.63.0-alpha.2"
66
+ "@gooddata/sdk-backend-base": "11.63.0-alpha.4",
67
+ "@gooddata/sdk-backend-spi": "11.63.0-alpha.4",
68
+ "@gooddata/sdk-embedding": "11.63.0-alpha.4",
69
+ "@gooddata/sdk-ui-charts": "11.63.0-alpha.4",
70
+ "@gooddata/sdk-ui": "11.63.0-alpha.4",
71
+ "@gooddata/sdk-ui-filters": "11.63.0-alpha.4",
72
+ "@gooddata/sdk-model": "11.63.0-alpha.4",
73
+ "@gooddata/sdk-ui-geo": "11.63.0-alpha.4",
74
+ "@gooddata/sdk-ui-kit": "11.63.0-alpha.4",
75
+ "@gooddata/sdk-ui-pivot": "11.63.0-alpha.4",
76
+ "@gooddata/sdk-ui-semantic-search": "11.63.0-alpha.4",
77
+ "@gooddata/sdk-ui-theme-provider": "11.63.0-alpha.4",
78
+ "@gooddata/util": "11.63.0-alpha.4",
79
+ "@gooddata/sdk-ui-vis-commons": "11.63.0-alpha.4"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@microsoft/api-documenter": "7.30.16",
@@ -120,12 +120,12 @@
120
120
  "svgo": "2.8.4",
121
121
  "typescript": "7.0.2",
122
122
  "vitest": "5.0.4",
123
- "@gooddata/eslint-config": "11.63.0-alpha.2",
124
- "@gooddata/i18n-toolkit": "11.63.0-alpha.2",
125
- "@gooddata/oxlint-config": "11.63.0-alpha.2",
126
- "@gooddata/sdk-backend-mockingbird": "11.63.0-alpha.2",
127
- "@gooddata/stylelint-config": "11.63.0-alpha.2",
128
- "@gooddata/reference-workspace": "11.63.0-alpha.2"
123
+ "@gooddata/eslint-config": "11.63.0-alpha.4",
124
+ "@gooddata/i18n-toolkit": "11.63.0-alpha.4",
125
+ "@gooddata/oxlint-config": "11.63.0-alpha.4",
126
+ "@gooddata/reference-workspace": "11.63.0-alpha.4",
127
+ "@gooddata/sdk-backend-mockingbird": "11.63.0-alpha.4",
128
+ "@gooddata/stylelint-config": "11.63.0-alpha.4"
129
129
  },
130
130
  "peerDependencies": {
131
131
  "react": "^18.0.0 || ^19.0.0",
@@ -432,6 +432,16 @@
432
432
  gap: 20px;
433
433
  }
434
434
 
435
+ .gd-user-management-dialog-detail-localization .gd-user-management-dialog-detail-row .input-checkbox-label {
436
+ margin: 0;
437
+ vertical-align: top;
438
+ }
439
+
440
+ .gd-user-management-dialog-detail-row-checkbox-edit {
441
+ align-items: center;
442
+ min-height: 32px;
443
+ }
444
+
435
445
  .gd-user-management-dialog-detail-label {
436
446
  width: 150px;
437
447
  color: #6d7680;
@@ -611,6 +621,48 @@
611
621
  color: var(--gd-palette-complementary-6, #94a1ad);
612
622
  }
613
623
 
624
+ .gd-user-management-dialog-detail-section-title {
625
+ display: flex;
626
+ align-items: center;
627
+ gap: 10px;
628
+ height: 28px;
629
+ margin-top: 20px;
630
+ color: var(--gd-palette-complementary-6, #94a1ad);
631
+ font-size: 11px;
632
+ font-weight: 700;
633
+ text-transform: uppercase;
634
+ }
635
+ .gd-user-management-dialog-detail-section-title::after {
636
+ content: "";
637
+ flex: 1;
638
+ border-top: 1px solid var(--gd-palette-complementary-3, #dde4eb);
639
+ }
640
+
641
+ .gd-user-management-dialog-detail-code {
642
+ color: var(--gd-palette-complementary-6, #94a1ad);
643
+ }
644
+ .gd-user-management-dialog-detail-input .gd-user-management-dialog-detail-code {
645
+ font-size: 12px;
646
+ }
647
+
648
+ .gd-user-management-dialog-detail-value-not-set {
649
+ display: flex;
650
+ align-items: center;
651
+ gap: 5px;
652
+ color: var(--gd-palette-complementary-6, #94a1ad);
653
+ }
654
+ .gd-user-management-dialog-detail-value-not-set .gd-bubble-trigger {
655
+ display: inline-flex;
656
+ }
657
+
658
+ .gd-message.gd-user-management-dialog-detail-notice {
659
+ align-self: flex-start;
660
+ margin-left: 170px;
661
+ padding: 4px 10px;
662
+ font-size: 12px;
663
+ line-height: 16px;
664
+ }
665
+
614
666
  .gd-attribute-hierarchy-detail-panel {
615
667
  width: 200px;
616
668
  padding: 8px 5px;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/src/@ui/defaultTheme.scss","../internal/scss/dashboard_embedding.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../internal/scss/variables.scss","../internal/scss/user_management_dialogs.scss","../internal/scss/attribute_hierarchies.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Bubble/_variables.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/bubble.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/overlay.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/typo-mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/tabs.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiIcon/UiIcon.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiButton/UiButton.scss","../../node_modules/react-loading-skeleton/dist/skeleton.css","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiSkeleton/UiSkeleton.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiPagedVirtualList/UiPagedVirtualList.scss","../../src/notificationsPanel/components/DetailsDialog.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.scss","../../src/notificationsPanel/Notification/DefaultNotification.scss","../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.scss","../../src/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.scss","../automations/automations.scss","../internal/scss/insightPicker.scss","../internal/scss/conditional_formatting.scss"],"names":[],"mappings":"AAIA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EAGA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC3VJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA,aCiFc;EDhFd,kBCGa;;;ADAjB;EACI;EACA;EACA;EACA;EACA;;AAEA;EAPJ;IAQQ;IACA;;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA,aEqBuB;EFpBvB;EACA,YEtB2C;EFuB3C,OE3BuC;;;ACnB3C;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIA;EACI,OFqBkB;;;AEhBtB;EACI;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA,OF3CoB;;;AE8CxB;EACI;EACA;EACA;;AAEA;EACI;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI,OFpEgB;EEqEhB;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;;AAIR;EACI;EACA,OFxHgB;EEyHhB;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA,OFtJe;EEuJf;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OFtNmB;EEuNnB;EACA;EACA;EACA;;;AAOA;AAAA;EAEI;;;AAOJ;EACI;;AAIJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;ACpRR;EACI;EACA;EACA;EACA;EACA,OH6BY;;AG3BZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA,OH2LS;EG1LT;;AAGJ;EACI;EACA;EACA;EACA;EACA,OHEe;;AGCnB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAIR;EACI;EAGA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;;AAIA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;;AAMhB;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;;AAKZ;EACI;;AAEA;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;;AAQR;AAAA;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;EACI;EACA;EACA;EACA;;;AAKJ;EACI;;AAEA;EACI;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;;;ACpNJ;AA4DA;ACjLA;AAAA;AAAA;ACAA;AAAA;AAAA;AAIA;EACI;EACA;;;AAIJ;EACI;EACA;EACA;EACA,ODFgB;;ACIhB;EACI;;AFwJJ;EEpJI;;AF4IJ;EExII,ODZkB;ECalB;;;AAIR;EACI;EACA,WD5Be;ED0Df,0BE5B2B;EF6B3B,6BE7B2B;EF8B3B,qBE9B2B;EFkC3B,0BElCoC;EFmCpC,6BEnCoC;EFoCpC,qBEpCoC;EFwCpC,iCExC0C;EFyC1C,oCEzC0C;EF0C1C,4BE1C0C;;AAE1C;EACI,WDhCiB;;ACmCrB;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EFVA,SEYwB;;AAG5B;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EFVZ,0BEYuC;EFXvC,6BEWuC;EFVvC,qBEUuC;EFNvC,0BEM4C;EFL5C,6BEK4C;EFJ5C,qBEI4C;EFA5C;EACA,oCEDmD;EFEnD,4BEFmD;;AAEvC;EACI;;AAIR;AAAA;AAAA;EAGI;;AAGJ;EACI;;AAGJ;EACI;;AAKZ;EACI;;AAyCA;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDjIM;EDEV;;AE0IQ;EACI;;AAOZ;EACI,ODlIW;ECmIX,YDtJM;;ACwJN;AAAA;EAEI;;AAKJ;EACI,kBDhKE;;ACmKN;EACI,kBDpKE;;ACyKN;EACI,qBD1KE;;AC6KN;EACI,qBD9KE;;ACmLN;EACI,oBDpLE;;ACuLN;EACI,oBDxLE;;AC6LN;EACI,mBD9LE;;ACiMN;EACI,mBDlME;;AC4HV;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cD1HY;EDLhB;;AE0IQ;EACI;;AAOZ;EACI,ONhIU;EMiIV,YD/IY;;ACiJZ;AAAA;EAEI;;AAKJ;EACI,kBDzJQ;;AC4JZ;EACI,kBD7JQ;;ACkKZ;EACI,qBDnKQ;;ACsKZ;EACI,qBDvKQ;;AC4KZ;EACI,oBD7KQ;;ACgLZ;EACI,oBDjLQ;;ACsLZ;EACI,mBDvLQ;;AC0LZ;EACI,mBD3LQ;;ACqHhB;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDjIM;EDEV;;AE0IQ;EACI;;AAOZ;EACI,ODlIW;ECmIX,YDtJM;;ACwJN;AAAA;EAEI;;AAKJ;EACI,kBDhKE;;ACmKN;EACI,kBDpKE;;ACyKN;EACI,qBD1KE;;AC6KN;EACI,qBD9KE;;ACmLN;EACI,oBDpLE;;ACuLN;EACI,oBDxLE;;AC6LN;EACI,mBD9LE;;ACiMN;EACI,mBDlME;;AC4HV;EACI;EACA;EACA;EACA,cDjGe;ECkGf,cDhHe;EDfnB;;AEkJA;EACI,ODrHS;ECsHT,YD3IQ;;AC6IR;AAAA;EAEI;;AAKJ;EACI,kBD/IW;;ACkJf;EACI,kBDzJI;;AC8JR;EACI,qBDzJW;;AC4Jf;EACI,qBDnKI;;ACwKR;EACI,oBDnKW;;ACsKf;EACI,oBD7KI;;ACkLR;EACI,mBD7KW;;ACgLf;EACI,mBDvLI;;ACiHZ;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDrHU;EDVd;;AE0IQ;EACI;;AAOZ;EACI,ONhIU;EMiIV,YD1IU;;AC4IV;AAAA;EAEI;;AAKJ;EACI,kBDpJM;;ACuJV;EACI,kBDxJM;;AC6JV;EACI,qBD9JM;;ACiKV;EACI,qBDlKM;;ACuKV;EACI,oBDxKM;;AC2KV;EACI,oBD5KM;;ACiLV;EACI,mBDlLM;;ACqLV;EACI,mBDtLM;;ACgHd;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDpFW;ED3Cf;;AE0IQ;EACI;;AAOZ;EACI,ONh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CA;;AAGI;EAKI;EAEA;;AAIR;EACI;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EAEI;EACA;EACA;EACA;EACA;;AAGI;EAII;;AAIR;EACI;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGI;EAKI;EAEA;;AAIR;EACI;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGI;EAEI;EACA;EACA;;AAIJ;EAEI;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EAEA;EACA;EACA;EACA;;AAGI;EAII;EACA;EAEA;;AAIR;EACI;EACA;EACA;;;AC1UhB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EASA;EAEA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;ACnDJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAIA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACzCR;EAGI;EACA;EACA;EACA;EACA;EACA;;AAGI;EACI;;AAEA;EV4NR;EACA;EACA;;AU1NY;EAJJ;IAKQ;;;AAMhB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAIA;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAMhB;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AChFR;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACjDR;EACI;EACA;EACA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EAEA;;;AClBJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EAEA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AC5BR;EACI;EACA;EACA;EACA;EACA;;AAEA;EAEI;;AAGJ;EAII;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjCR;EACI;EACA;EACA;EACA;EACA;EACA;;;ACNJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;;;ACjBJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;;;ACjBJ;EAGI;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EAEA;;AAGI;EACI;;AAIA;EACI;;AAGJ;EACI;;AAIR;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;ACjLR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EAEA;EACA;EACA;;AAGJ;EACI;EAEA;EACA;EACA;;;ACxBR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EAEA;EACA;EAEA;EACA;EACA;EAEA;EAEA;;AAGJ;EACI;EACA;EAEA;EAEA;EACA;EACA;EAEA;;AAGJ;EAEI;EACA;EACA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;;ACxER;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIA;EACI;;AAKZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EAEI;EACA;EACA;;;AAIR;EACI;EACA;;AAGI;EACI;;;ACvEZ;EACI;;;AAOA;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;;;AAKZ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAGA;;AAEA;EACI;;AAGJ;EACI;;AAGA;EACI;;AAMR;EACI;;AAEA;EACI;;;AASZ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;;;AAIA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA,YACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAKJ;EAEI;EACA;;;AC1PR;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACI;;;AAKR;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAaJ;EACI;EACA;EACA;EACA;EACA;EACA,YACI;;AAKJ;EACI;EACA;EACA;;AAKJ;EA3BA;EACA;EACA,YACI;EA2BA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;;AAGJ;EAEI;;;AAOR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;;;AAMR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAEI;EACA;EACA;EACA;;AAIA;EACI;;AAIR;EACI;EACA;EACA;;AAIA;AAAA;AAAA;EAGI;;AAIR;EACI;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;;AAMJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EAjRA;EACA;EACA,YACI;EAiRA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AAOR;EACI;EACA;;;AAKJ;EACI;;;AAOJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/src/@ui/defaultTheme.scss","../internal/scss/dashboard_embedding.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../internal/scss/variables.scss","../internal/scss/user_management_dialogs.scss","../internal/scss/attribute_hierarchies.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Bubble/_variables.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/bubble.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/overlay.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/typo-mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/tabs.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiIcon/UiIcon.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiButton/UiButton.scss","../../node_modules/react-loading-skeleton/dist/skeleton.css","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiSkeleton/UiSkeleton.scss","../../node_modules/@gooddata/sdk-ui-kit/src/@ui/UiPagedVirtualList/UiPagedVirtualList.scss","../../src/notificationsPanel/components/DetailsDialog.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanel.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelHeader.scss","../../src/notificationsPanel/NotificationsPanel/DefaultNotificationsPanelButton.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsList.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsListEmptyState.scss","../../src/notificationsPanel/NotificationsList/DefaultNotificationsListErrorState.scss","../../src/notificationsPanel/Notification/DefaultNotification.scss","../../src/notificationsPanel/NotificationFiltersDetail/NotificationFiltersDetailDialog.scss","../../src/notificationsPanel/NotificationTriggersDetail/NotificationTriggersDetailDialog.scss","../automations/automations.scss","../internal/scss/insightPicker.scss","../internal/scss/conditional_formatting.scss"],"names":[],"mappings":"AAIA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EAGA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EAGA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EAGA;EACA;EAGA;EAGA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;AAAA;AAAA;AAAA;EAIA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC3VJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA,aCiFc;EDhFd,kBCGa;;;ADAjB;EACI;EACA;EACA;EACA;EACA;;AAEA;EAPJ;IAQQ;IACA;;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA,aEqBuB;EFpBvB;EACA,YEtB2C;EFuB3C,OE3BuC;;;ACnB3C;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIA;EACI,OFqBkB;;;AEhBtB;EACI;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA,OFrDoB;;;AEwDxB;EACI;EACA;EACA;;AAEA;EACI;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI,OF9EgB;EE+EhB;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;;AAIR;EACI;EACA,OFlIgB;EEmIhB;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA,OFhKe;EEiKf;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OFhOmB;EEiOnB;EACA;EACA;EACA;;;AAOA;AAAA;EAEI;;;AAOJ;EACI;;AAIJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA,OF7QmB;EE8QnB;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI,OF1RmB;;AE4RnB;EACI;;;AAIR;EACI;EACA;EACA;EACA,OFrSmB;;AEuSnB;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AC5UJ;EACI;EACA;EACA;EACA;EACA,OH6BY;;AG3BZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA,OH2LS;EG1LT;;AAGJ;EACI;EACA;EACA;EACA;EACA,OHEe;;AGCnB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;;AAIR;EACI;EAGA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;;AAIA;EACI;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;EAII;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;;;AAMhB;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;;AAKZ;EACI;;AAEA;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;;AAQR;AAAA;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;AAAA;EACI;EACA;EACA;EACA;;;AAKJ;EACI;;AAEA;EACI;EACA;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA,YACI;EAEJ;;;ACpNJ;AA4DA;ACjLA;AAAA;AAAA;ACAA;AAAA;AAAA;AAIA;EACI;EACA;;;AAIJ;EACI;EACA;EACA;EACA,ODFgB;;ACIhB;EACI;;AFwJJ;EEpJI;;AF4IJ;EExII,ODZkB;ECalB;;;AAIR;EACI;EACA,WD5Be;ED0Df,0BE5B2B;EF6B3B,6BE7B2B;EF8B3B,qBE9B2B;EFkC3B,0BElCoC;EFmCpC,6BEnCoC;EFoCpC,qBEpCoC;EFwCpC,iCExC0C;EFyC1C,oCEzC0C;EF0C1C,4BE1C0C;;AAE1C;EACI,WDhCiB;;ACmCrB;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EFVA,SEYwB;;AAG5B;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EFVZ,0BEYuC;EFXvC,6BEWuC;EFVvC,qBEUuC;EFNvC,0BEM4C;EFL5C,6BEK4C;EFJ5C,qBEI4C;EFA5C;EACA,oCEDmD;EFEnD,4BEFmD;;AAEvC;EACI;;AAIR;AAAA;AAAA;EAGI;;AAGJ;EACI;;AAGJ;EACI;;AAKZ;EACI;;AAyCA;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDjIM;EDEV;;AE0IQ;EACI;;AAOZ;EACI,ODlIW;ECmIX,YDtJM;;ACwJN;AAAA;EAEI;;AAKJ;EACI,kBDhKE;;ACmKN;EACI,kBDpKE;;ACyKN;EACI,qBD1KE;;AC6KN;EACI,qBD9KE;;ACmLN;EACI,oBDpLE;;ACuLN;EACI,oBDxLE;;AC6LN;EACI,mBD9LE;;ACiMN;EACI,mBDlME;;AC4HV;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cD1HY;EDLhB;;AE0IQ;EACI;;AAOZ;EACI,ONhIU;EMiIV,YD/IY;;ACiJZ;AAAA;EAEI;;AAKJ;EACI,kBDzJQ;;AC4JZ;EACI,kBD7JQ;;ACkKZ;EACI,qBDnKQ;;ACsKZ;EACI,qBDvKQ;;AC4KZ;EACI,oBD7KQ;;ACgLZ;EACI,oBDjLQ;;ACsLZ;EACI,mBDvLQ;;AC0LZ;EACI,mBD3LQ;;ACqHhB;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDjIM;EDEV;;AE0IQ;EACI;;AAOZ;EACI,ODlIW;ECmIX,YDtJM;;ACwJN;AAAA;EAEI;;AAKJ;EACI,kBDhKE;;ACmKN;EACI,kBDpKE;;ACyKN;EACI,qBD1KE;;AC6KN;EACI,qBD9KE;;ACmLN;EACI,oBDpLE;;ACuLN;EACI,oBDxLE;;AC6LN;EACI,mBD9LE;;ACiMN;EACI,mBDlME;;AC4HV;EACI;EACA;EACA;EACA,cDjGe;ECkGf,cDhHe;EDfnB;;AEkJA;EACI,ODrHS;ECsHT,YD3IQ;;AC6IR;AAAA;EAEI;;AAKJ;EACI,kBD/IW;;ACkJf;EACI,kBDzJI;;AC8JR;EACI,qBDzJW;;AC4Jf;EACI,qBDnKI;;ACwKR;EACI,oBDnKW;;ACsKf;EACI,oBD7KI;;ACkLR;EACI,mBD7KW;;ACgLf;EACI,mBDvLI;;ACiHZ;EACI;EACA;EACA;EACA,cDjIS;ECkIT,cDrHU;EDVd;;AE0IQ;EACI;;AAOZ;EACI,ONhIU;EMiIV,YD1IU;;AC4IV;AAAA;EAEI;;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I;EACI;EACA;EACA;EACA;EACA;;AAGI;EAEI;EACA;;AAIJ;EAGI;EACA;;AAKR;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGI;EAEI;EAEA;EACA;EACA;EACA;;AAIJ;EAGI;EAEA;EACA;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAIR;EAEI;EACA;EACA;EACA;EACA;EACA;;AAGI;EAKI;EAEA;;AAIR;EACI;EACA;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;;AAEA;EACI;;AAIR;EAEI;EACA;EACA;EACA;EACA;;AAGI;EAII;;AAIR;EACI;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGI;EAKI;EAEA;;AAIR;EACI;;AAGJ;EACI;;AAEJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;;AAGI;EAEI;EACA;EACA;;AAIJ;EAEI;EACA;EACA;;AAKR;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EAEA;EACA;EACA;EACA;;AAGI;EAII;EACA;EAEA;;AAIR;EACI;EACA;EACA;;;AC1UhB;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EASA;EAEA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;ACnDJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAIA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACzCR;EAGI;EACA;EACA;EACA;EACA;EACA;;AAGI;EACI;;AAEA;EV4NR;EACA;EACA;;AU1NY;EAJJ;IAKQ;;;AAMhB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAIA;EACI;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;EACA;;AAMhB;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;;;AChFR;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;ACjDR;EACI;EACA;EACA;EAEA;EAEA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EAEA;;;AClBJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EAEA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;;AC5BR;EACI;EACA;EACA;EACA;EACA;;AAEA;EAEI;;AAGJ;EAII;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACjCR;EACI;EACA;EACA;EACA;EACA;EACA;;;ACNJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;;;ACjBJ;EACI;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EAEA;EAEA;EACA;EACA;EACA;EACA;;;ACjBJ;EAGI;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EAEA;;AAGI;EACI;;AAIA;EACI;;AAGJ;EACI;;AAIR;EACI;;AAIR;EACI;;AAGJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EAEA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;;ACjLR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;EAEA;EACA;EACA;;AAGJ;EACI;EAEA;EACA;EACA;;;ACxBR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EAEA;EACA;EAEA;EACA;EACA;EAEA;EAEA;;AAGJ;EACI;EACA;EAEA;EAEA;EACA;EACA;EAEA;;AAGJ;EAEI;EACA;EACA;EAEA;EAEA;EACA;EACA;EAEA;EAEA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;;;ACxER;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAIA;EACI;;AAKZ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EAEI;EACA;EACA;;;AAIR;EACI;EACA;;AAGI;EACI;;;ACvEZ;EACI;;;AAOA;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;;AAGJ;EACI;;;AAKZ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EAGA;;AAEA;EACI;;AAGJ;EACI;;AAGA;EACI;;AAMR;EACI;;AAEA;EACI;;;AASZ;EACI;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA;;;AAIA;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA,YACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;;;AAKJ;EAEI;EACA;;;AC1PR;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAKJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAMR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACI;;;AAKR;EACI;;;AAGJ;AAAA;EAEI;;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;;AAaJ;EACI;EACA;EACA;EACA;EACA;EACA,YACI;;AAKJ;EACI;EACA;EACA;;AAKJ;EA3BA;EACA;EACA,YACI;EA2BA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;;AAGJ;EAEI;;;AAOR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;;;AAMR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EAEI;EACA;EACA;EACA;;AAIA;EACI;;AAIR;EACI;EACA;EACA;;AAIA;AAAA;AAAA;EAGI;;AAIR;EACI;EACA;EACA;;AAKJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACI;;AAMJ;EACI;;AAGJ;EACI;EACA;;AAKJ;EAjRA;EACA;EACA,YACI;EAiRA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;;AAOR;EACI;EACA;;;AAKJ;EACI;;;AAOJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI","file":"main.css"}
@@ -60,6 +60,16 @@
60
60
  gap: 20px;
61
61
  }
62
62
 
63
+ .gd-user-management-dialog-detail-localization .gd-user-management-dialog-detail-row .input-checkbox-label {
64
+ margin: 0;
65
+ vertical-align: top;
66
+ }
67
+
68
+ .gd-user-management-dialog-detail-row-checkbox-edit {
69
+ align-items: center;
70
+ min-height: 32px;
71
+ }
72
+
63
73
  .gd-user-management-dialog-detail-label {
64
74
  width: 150px;
65
75
  color: #6d7680;
@@ -239,4 +249,46 @@
239
249
  color: var(--gd-palette-complementary-6, #94a1ad);
240
250
  }
241
251
 
252
+ .gd-user-management-dialog-detail-section-title {
253
+ display: flex;
254
+ align-items: center;
255
+ gap: 10px;
256
+ height: 28px;
257
+ margin-top: 20px;
258
+ color: var(--gd-palette-complementary-6, #94a1ad);
259
+ font-size: 11px;
260
+ font-weight: 700;
261
+ text-transform: uppercase;
262
+ }
263
+ .gd-user-management-dialog-detail-section-title::after {
264
+ content: "";
265
+ flex: 1;
266
+ border-top: 1px solid var(--gd-palette-complementary-3, #dde4eb);
267
+ }
268
+
269
+ .gd-user-management-dialog-detail-code {
270
+ color: var(--gd-palette-complementary-6, #94a1ad);
271
+ }
272
+ .gd-user-management-dialog-detail-input .gd-user-management-dialog-detail-code {
273
+ font-size: 12px;
274
+ }
275
+
276
+ .gd-user-management-dialog-detail-value-not-set {
277
+ display: flex;
278
+ align-items: center;
279
+ gap: 5px;
280
+ color: var(--gd-palette-complementary-6, #94a1ad);
281
+ }
282
+ .gd-user-management-dialog-detail-value-not-set .gd-bubble-trigger {
283
+ display: inline-flex;
284
+ }
285
+
286
+ .gd-message.gd-user-management-dialog-detail-notice {
287
+ align-self: flex-start;
288
+ margin-left: 170px;
289
+ padding: 4px 10px;
290
+ font-size: 12px;
291
+ line-height: 16px;
292
+ }
293
+
242
294
  /*# sourceMappingURL=user_management_dialogs.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../scss/user_management_dialogs.scss","../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AAIA;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIA;EACI,OCqBkB;;;ADhBtB;EACI;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA,OC3CoB;;;AD8CxB;EACI;EACA;EACA;;AAEA;EACI;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI,OCpEgB;EDqEhB;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;;AAIR;EACI;EACA,OCxHgB;EDyHhB;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA,OCtJe;EDuJf;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OCtNmB;EDuNnB;EACA;EACA;EACA;;;AAOA;AAAA;EAEI;;;AAOJ;EACI;;AAIJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA","file":"user_management_dialogs.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../scss/user_management_dialogs.scss","../../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss"],"names":[],"mappings":"AAIA;EACI;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;;AAIA;EACI,OCqBkB;;;ADhBtB;EACI;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA,OCrDoB;;;ADwDxB;EACI;EACA;EACA;;AAEA;EACI;EACA;;;AAIR;EACI;EACA;EACA;;;AAGJ;EACI,OC9EgB;ED+EhB;;;AAGJ;EACI;;;AAGJ;EACI;;;AAGJ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;;AAIR;EACI;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;;AAIR;EACI;EACA,OClIgB;EDmIhB;EACA;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA,OChKe;EDiKf;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;;;AAKJ;EACI;EACA;;AAGJ;EACI;EACA;;AAEA;EACI;;;AAKZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,OChOmB;EDiOnB;EACA;EACA;EACA;;;AAOA;AAAA;EAEI;;;AAOJ;EACI;;AAIJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA,OC7QmB;ED8QnB;EACA;EACA;;AAEA;EACI;EACA;EACA;;;AAIR;EACI,OC1RmB;;AD4RnB;EACI;;;AAIR;EACI;EACA;EACA;EACA,OCrSmB;;ADuSnB;EACI;;;AAIR;EACI;EACA;EACA;EACA;EACA","file":"user_management_dialogs.css"}
@@ -71,6 +71,16 @@
71
71
  gap: 20px;
72
72
  }
73
73
 
74
+ .gd-user-management-dialog-detail-localization .gd-user-management-dialog-detail-row .input-checkbox-label {
75
+ margin: 0;
76
+ vertical-align: top;
77
+ }
78
+
79
+ .gd-user-management-dialog-detail-row-checkbox-edit {
80
+ align-items: center;
81
+ min-height: 32px;
82
+ }
83
+
74
84
  .gd-user-management-dialog-detail-label {
75
85
  width: 150px;
76
86
  color: kit-variables.$default-gd-color-label;
@@ -280,3 +290,48 @@
280
290
  color: var(--gd-palette-complementary-6, #94a1ad);
281
291
  }
282
292
  }
293
+
294
+ .gd-user-management-dialog-detail-section-title {
295
+ display: flex;
296
+ align-items: center;
297
+ gap: 10px;
298
+ height: 28px;
299
+ margin-top: 20px;
300
+ color: kit-variables.$gd-color-state-blank;
301
+ font-size: 11px;
302
+ font-weight: 700;
303
+ text-transform: uppercase;
304
+
305
+ &::after {
306
+ content: "";
307
+ flex: 1;
308
+ border-top: 1px solid kit-variables.$gd-border-color;
309
+ }
310
+ }
311
+
312
+ .gd-user-management-dialog-detail-code {
313
+ color: kit-variables.$gd-color-state-blank;
314
+
315
+ .gd-user-management-dialog-detail-input & {
316
+ font-size: 12px;
317
+ }
318
+ }
319
+
320
+ .gd-user-management-dialog-detail-value-not-set {
321
+ display: flex;
322
+ align-items: center;
323
+ gap: 5px;
324
+ color: kit-variables.$gd-color-state-blank;
325
+
326
+ .gd-bubble-trigger {
327
+ display: inline-flex;
328
+ }
329
+ }
330
+
331
+ .gd-message.gd-user-management-dialog-detail-notice {
332
+ align-self: flex-start;
333
+ margin-left: 170px;
334
+ padding: 4px 10px;
335
+ font-size: 12px;
336
+ line-height: 16px;
337
+ }