@gridsuite/commons-ui 0.81.0 → 0.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/ExpertFilterForm.css +8 -1
- package/dist/components/authentication/AuthenticationRouterErrorDisplay.js +1 -0
- package/dist/components/authentication/utils/authService.d.ts +6 -1
- package/dist/components/authentication/utils/userManagerMock.d.ts +18 -17
- package/dist/components/authentication/utils/userManagerMock.js +80 -92
- package/dist/components/cardErrorBoundary/CardErrorBoundary.d.ts +6 -9
- package/dist/components/cardErrorBoundary/CardErrorBoundary.js +1 -3
- package/dist/components/filter/expert/expertFilterConstants.js +2 -2
- package/dist/components/flatParameters/FlatParameters.js +13 -14
- package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +1 -1
- package/dist/components/inputs/reactHookForm/agGridTable/cellEditors/numericEditor.d.ts +6 -7
- package/dist/components/inputs/reactHookForm/agGridTable/cellEditors/numericEditor.js +7 -13
- package/dist/components/inputs/reactQueryBuilder/CombinatorSelector.js +4 -2
- package/dist/components/inputs/reactQueryBuilder/FieldSelector.js +3 -1
- package/dist/components/inputs/reactQueryBuilder/PropertyValueEditor.js +18 -6
- package/dist/components/inputs/reactQueryBuilder/TextValueEditor.js +14 -2
- package/dist/components/inputs/reactQueryBuilder/ValueSelector.js +3 -1
- package/dist/components/topBar/MessageBanner.d.ts +7 -0
- package/dist/components/topBar/MessageBanner.js +55 -0
- package/dist/components/topBar/TopBar.d.ts +3 -2
- package/dist/components/topBar/TopBar.js +325 -312
- package/dist/components/topBar/UserSettingsDialog.d.ts +8 -0
- package/dist/components/topBar/UserSettingsDialog.js +48 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/useCustomFilterOptions.d.ts +6 -0
- package/dist/hooks/useCustomFilterOptions.js +20 -0
- package/dist/hooks/useSelectAppearance.d.ts +29 -0
- package/dist/hooks/useSelectAppearance.js +22 -0
- package/dist/index.js +4 -1
- package/dist/module-localized-countries.d.js +1 -0
- package/dist/translations/en/filterEn.d.ts +2 -2
- package/dist/translations/en/filterEn.js +5 -5
- package/dist/translations/en/filterExpertEn.d.ts +1 -0
- package/dist/translations/en/filterExpertEn.js +3 -2
- package/dist/translations/en/topBarEn.d.ts +7 -2
- package/dist/translations/en/topBarEn.js +8 -3
- package/dist/translations/fr/filterExpertFr.d.ts +1 -0
- package/dist/translations/fr/filterExpertFr.js +3 -2
- package/dist/translations/fr/filterFr.d.ts +2 -2
- package/dist/translations/fr/filterFr.js +5 -5
- package/dist/translations/fr/topBarFr.d.ts +6 -1
- package/dist/translations/fr/topBarFr.js +7 -2
- package/dist/utils/index.js +2 -1
- package/dist/utils/mapper/getFileIcon.js +0 -1
- package/dist/utils/types/elementType.d.ts +0 -1
- package/dist/utils/types/elementType.js +0 -1
- package/dist/utils/types/equipmentType.d.ts +4 -0
- package/dist/utils/types/equipmentType.js +6 -0
- package/dist/utils/types/index.js +2 -1
- package/dist/utils/types/metadata.d.ts +1 -3
- package/package.json +1 -2
|
@@ -95,6 +95,14 @@
|
|
|
95
95
|
display: none;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
.queryBuilder-branches .rule:hover .rule-remove {
|
|
99
|
+
visibility: visible;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.queryBuilder-branches .rule .rule-remove {
|
|
103
|
+
visibility: hidden;
|
|
104
|
+
}
|
|
105
|
+
|
|
98
106
|
.queryBuilder-branches .ruleGroup .ruleGroup::before,
|
|
99
107
|
.queryBuilder-branches .ruleGroup .ruleGroup::after {
|
|
100
108
|
left: calc(calc(-0.5rem - 1px) - 1px);
|
|
@@ -110,7 +118,6 @@
|
|
|
110
118
|
}
|
|
111
119
|
|
|
112
120
|
/* Justify layout */
|
|
113
|
-
.queryBuilder .ruleGroup-remove,
|
|
114
121
|
.queryBuilder .rule-remove {
|
|
115
122
|
margin-left: auto;
|
|
116
123
|
}
|
|
@@ -2,6 +2,7 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Grid } from "@mui/material";
|
|
3
3
|
import { Logout } from "./Logout.js";
|
|
4
4
|
import { logout } from "./utils/authService.js";
|
|
5
|
+
import "./utils/userManagerMock.js";
|
|
5
6
|
import { ErrorInLogoutAlert } from "./alert/ErrorInLogoutAlert.js";
|
|
6
7
|
import { ErrorInUserValidationAlert } from "./alert/ErrorInUserValidationAlert.js";
|
|
7
8
|
import { UnauthorizedAccessAlert } from "./alert/UnauthorizedAccessAlert.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AuthenticationActions } from '../../../redux/actions/authActions';
|
|
2
|
-
import { User, UserManager } from 'oidc-client';
|
|
2
|
+
import { Log, User, UserManager } from 'oidc-client';
|
|
3
3
|
import { Location, NavigateFunction } from 'react-router-dom';
|
|
4
4
|
import { Dispatch } from 'react';
|
|
5
5
|
|
|
@@ -19,6 +19,11 @@ type CustomUserManager = UserManager & {
|
|
|
19
19
|
maxExpiresIn?: number;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
+
declare global {
|
|
23
|
+
interface Window {
|
|
24
|
+
OIDCLog?: Log;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
22
27
|
export declare function login(location: Location, userManagerInstance: UserManager | null): Promise<void> | undefined;
|
|
23
28
|
export declare function logout(dispatch: Dispatch<AuthenticationActions>, userManagerInstance: UserManager | null): Promise<void> | undefined;
|
|
24
29
|
export declare function dispatchUser(dispatch: Dispatch<AuthenticationActions>, userManagerInstance: CustomUserManager, validateUser: UserValidationFunc): Promise<void>;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { MetadataService, SigninRequest, SigninResponse, SignoutRequest, SignoutResponse, User, UserManager, UserManagerEvents, UserManagerSettings } from 'oidc-client';
|
|
1
|
+
import { MetadataService, OidcClientSettings, SigninRequest, SigninResponse, SignoutRequest, SignoutResponse, User, UserManager, UserManagerEvents, UserManagerSettings } from 'oidc-client';
|
|
2
2
|
|
|
3
3
|
declare class Events implements UserManagerEvents {
|
|
4
|
-
userLoadedCallbacks:
|
|
5
|
-
addUserLoaded(callback: (data: User) => void): void;
|
|
6
|
-
addSilentRenewError(): void;
|
|
4
|
+
userLoadedCallbacks: UserManagerEvents.UserLoadedCallback[];
|
|
7
5
|
load(): void;
|
|
8
6
|
unload(): void;
|
|
7
|
+
addAccessTokenExpiring(): void;
|
|
8
|
+
removeAccessTokenExpiring(): void;
|
|
9
|
+
addAccessTokenExpired(): void;
|
|
10
|
+
removeAccessTokenExpired(): void;
|
|
11
|
+
addUserLoaded(callback: UserManagerEvents.UserLoadedCallback): void;
|
|
9
12
|
removeUserLoaded(): void;
|
|
10
13
|
addUserUnloaded(): void;
|
|
11
14
|
removeUserUnloaded(): void;
|
|
15
|
+
addSilentRenewError(): void;
|
|
12
16
|
removeSilentRenewError(): void;
|
|
13
17
|
addUserSignedIn(): void;
|
|
14
18
|
removeUserSignedIn(): void;
|
|
@@ -16,32 +20,29 @@ declare class Events implements UserManagerEvents {
|
|
|
16
20
|
removeUserSignedOut(): void;
|
|
17
21
|
addUserSessionChanged(): void;
|
|
18
22
|
removeUserSessionChanged(): void;
|
|
19
|
-
addAccessTokenExpiring(): void;
|
|
20
|
-
removeAccessTokenExpiring(): void;
|
|
21
|
-
addAccessTokenExpired(): void;
|
|
22
|
-
removeAccessTokenExpired(): void;
|
|
23
23
|
}
|
|
24
24
|
export declare class UserManagerMock implements UserManager {
|
|
25
|
-
settings: UserManagerSettings;
|
|
26
25
|
events: Events;
|
|
27
|
-
|
|
26
|
+
readonly settings: OidcClientSettings;
|
|
27
|
+
private static readonly user;
|
|
28
28
|
readonly metadataService: MetadataService;
|
|
29
|
+
private static readonly STORAGE_KEY;
|
|
29
30
|
constructor(settings: UserManagerSettings);
|
|
30
|
-
getUser(): Promise<
|
|
31
|
+
getUser(): Promise<User | null>;
|
|
31
32
|
signinSilent(): Promise<User>;
|
|
32
33
|
signinSilentCallback(): Promise<never>;
|
|
33
34
|
signinRedirect(): Promise<void>;
|
|
34
35
|
signoutRedirect(): Promise<void>;
|
|
35
|
-
signinRedirectCallback(): Promise<User
|
|
36
|
+
signinRedirectCallback(): Promise<Readonly<User>>;
|
|
36
37
|
clearStaleState(): Promise<void>;
|
|
37
38
|
storeUser(): Promise<void>;
|
|
38
39
|
removeUser(): Promise<void>;
|
|
39
|
-
signinPopup(): Promise<User
|
|
40
|
+
signinPopup(): Promise<Readonly<User>>;
|
|
40
41
|
signinPopupCallback(): Promise<undefined>;
|
|
41
42
|
signoutRedirectCallback(): Promise<SignoutResponse>;
|
|
42
43
|
signoutPopup(): Promise<void>;
|
|
43
44
|
signoutPopupCallback(): Promise<void>;
|
|
44
|
-
signinCallback(): Promise<User
|
|
45
|
+
signinCallback(): Promise<Readonly<User>>;
|
|
45
46
|
signoutCallback(): Promise<undefined>;
|
|
46
47
|
querySessionStatus(): Promise<{
|
|
47
48
|
session_state: string;
|
|
@@ -49,11 +50,11 @@ export declare class UserManagerMock implements UserManager {
|
|
|
49
50
|
sid: undefined;
|
|
50
51
|
}>;
|
|
51
52
|
revokeAccessToken(): Promise<void>;
|
|
52
|
-
startSilentRenew():
|
|
53
|
-
stopSilentRenew():
|
|
53
|
+
startSilentRenew(): void;
|
|
54
|
+
stopSilentRenew(): void;
|
|
54
55
|
createSigninRequest(): Promise<SigninRequest>;
|
|
55
56
|
processSigninResponse(): Promise<SigninResponse>;
|
|
56
57
|
createSignoutRequest(): Promise<SignoutRequest>;
|
|
57
58
|
processSignoutResponse(): Promise<SignoutResponse>;
|
|
58
59
|
}
|
|
59
|
-
export
|
|
60
|
+
export {};
|
|
@@ -2,21 +2,29 @@ class Events {
|
|
|
2
2
|
constructor() {
|
|
3
3
|
this.userLoadedCallbacks = [];
|
|
4
4
|
}
|
|
5
|
-
addUserLoaded(callback) {
|
|
6
|
-
this.userLoadedCallbacks.push(callback);
|
|
7
|
-
}
|
|
8
|
-
addSilentRenewError() {
|
|
9
|
-
}
|
|
10
5
|
load() {
|
|
11
6
|
}
|
|
12
7
|
unload() {
|
|
13
8
|
}
|
|
9
|
+
addAccessTokenExpiring() {
|
|
10
|
+
}
|
|
11
|
+
removeAccessTokenExpiring() {
|
|
12
|
+
}
|
|
13
|
+
addAccessTokenExpired() {
|
|
14
|
+
}
|
|
15
|
+
removeAccessTokenExpired() {
|
|
16
|
+
}
|
|
17
|
+
addUserLoaded(callback) {
|
|
18
|
+
this.userLoadedCallbacks.push(callback);
|
|
19
|
+
}
|
|
14
20
|
removeUserLoaded() {
|
|
15
21
|
}
|
|
16
22
|
addUserUnloaded() {
|
|
17
23
|
}
|
|
18
24
|
removeUserUnloaded() {
|
|
19
25
|
}
|
|
26
|
+
addSilentRenewError() {
|
|
27
|
+
}
|
|
20
28
|
removeSilentRenewError() {
|
|
21
29
|
}
|
|
22
30
|
addUserSignedIn() {
|
|
@@ -31,139 +39,119 @@ class Events {
|
|
|
31
39
|
}
|
|
32
40
|
removeUserSessionChanged() {
|
|
33
41
|
}
|
|
34
|
-
addAccessTokenExpiring() {
|
|
35
|
-
}
|
|
36
|
-
removeAccessTokenExpiring() {
|
|
37
|
-
}
|
|
38
|
-
addAccessTokenExpired() {
|
|
39
|
-
}
|
|
40
|
-
removeAccessTokenExpired() {
|
|
41
|
-
}
|
|
42
42
|
}
|
|
43
|
-
class
|
|
43
|
+
const _UserManagerMock = class _UserManagerMock {
|
|
44
44
|
constructor(settings) {
|
|
45
|
-
this.user = {
|
|
46
|
-
profile: {
|
|
47
|
-
name: "John Doe",
|
|
48
|
-
email: "Jhon.Doe@rte-france.com",
|
|
49
|
-
iss: "",
|
|
50
|
-
sub: "",
|
|
51
|
-
aud: "",
|
|
52
|
-
exp: Number.MAX_SAFE_INTEGER,
|
|
53
|
-
iat: 0
|
|
54
|
-
},
|
|
55
|
-
id_token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSJ9.eyJhdWQiOiI5YzQwMjQ2MS1iMmFiLTQ3NjctOWRiMy02Njg1OWJiMGZjZDAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5L3YyLjAiLCJpYXQiOjE1ODUzMzEyNDksIm5iZiI6MTU4NTMzMTI0OSwiZXhwIjoyNTg1MzM1MTQ5LCJhaW8iOiJBV1FBbS84UEFBQUF3Q0xyTDRIUEUvTnVjOU9OdHN0SUV4cVpyMUlqa1FGbXJvUW5EUzJBaksyWnpneUhQTldPdkE3bitveHkvRzgxWElsb1A0TitsQjZINFJteElwakhNYVArTjIyTzVnMUFaR04yc1d6VHA5T3JWMDIvOXhndXJBMjZrdUNXbGg2RSIsImF0X2hhc2giOiJJaWRYdGRHdzVkbjlOZDFQblVvbDh3IiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvOTE4ODA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkLyIsIm5vbmNlIjoiMjkzZTcxNzhmOWE5NGZlNjg1ZWY3MjdlZTg5MTYxYjEiLCJzdWIiOiJyTnZjWXJMSXJSN25iSDJPQlhoOFkzU05wZEtPc3dfTUNkX3F3NF9vNDRJIiwidGlkIjoiNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5IiwidXRpIjoiUFBYdkw1UWxDMG1oMGp2N3NaNGJBQSIsInZlciI6IjIuMCJ9.dPAh24KTfsqmDaRoBtMLcayAWnDqVtydQ97P1a99dg93JsDu4Jhxju9vlzvjd6Ro5a1RZdrKFKB_pgC2DkQ3wSeYjpdSNyBAlW1_ryq65JkTJVMp33OsM_7SdjaRIiJfPiJ3U9jRBSyj7ofoHCLUjD_Uu-XreKxpMGhFHOQIO72UfXg8TBpsapjkEv9Dyz2UqMa2BQvO5mxKw93LNg5BI6j2a5LhbMEmmRWqfxWGITJ9TWfHjYdFkrXKcmvWZ9D2b4tsw_5NorDxkuzVFhA89M_0ASzOXoj1Yb6LgdkzWXDimssvyyz5Oe4V3gdkAe8Jj7Uwz-9AR-MO2kNkH7ytHA",
|
|
56
|
-
session_state: "session state",
|
|
57
|
-
access_token: "eyJ0eXAiOiJKV1QiLCJub25jZSI6InhKWHlQeXVrU1paQ3BOeEcxZUQway1lVDF0YzZtQ01ZVkZKcnBDOTJxc28iLCJhbGciOiJSUzI1NiIsIng1dCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSIsImtpZCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NTAyZGFkNS1kNjRjLTQ2YzctOWQ0Ny1iMTZmNTgwZmNmYTkvIiwiaWF0IjoxNTg1MzMxMjQ5LCJuYmYiOjE1ODUzMzEyNDksImV4cCI6MTU4NTMzNTE0OSwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhQQUFBQXdwc3RYMlVkY2VDQWx4dU9tVHpIY0R3RlhTWUtYanIvZUNTSi9PdTRqbTJyUVBCUml0U1dWMThmNldCVEdNdnQ5ZGx0Ry9lTXB1VXZqaTN2NCtzanh3PT0iLCJhbHRzZWNpZCI6IjE6bGl2ZS5jb206MDAwMzQwMDExOUZEOTIxMiIsImFtciI6WyJwd2QiXSwiYXBwX2Rpc3BsYXluYW1lIjoic3BhIiwiYXBwaWQiOiI5YzQwMjQ2MS1iMmFiLTQ3NjctOWRiMy02Njg1OWJiMGZjZDAiLCJhcHBpZGFjciI6IjAiLCJlbWFpbCI6ImNoYW1zZWRkaW5lLmJlbmhhbWVkQGVuc2ktdW1hLnRuIiwiZmFtaWx5X25hbWUiOiJCRU5IQU1FRCIsImdpdmVuX25hbWUiOiJDaGFtc2VkZGluZSIsImlkcCI6ImxpdmUuY29tIiwiaXBhZGRyIjoiNzcuMjA0LjE0Ni4xNTkiLCJuYW1lIjoiQ2hhbXNlZGRpbmUgQkVOSEFNRUQiLCJvaWQiOiIzNTIzYmQ3OC0yZjIxLTQ3ZjYtODhlOC1hYWIzYjZmMjdmNjAiLCJwbGF0ZiI6IjE0IiwicHVpZCI6IjEwMDMyMDAwOURFMDg1NkEiLCJzY3AiOiJVc2VyLlJlYWQgcHJvZmlsZSBvcGVuaWQgZW1haWwiLCJzdWIiOiJjVEd5LVlfV3FLR2x1cmRUVDdSUVlfY3FjSDJoVHpEdllZTmotQ3hONXA4IiwidGlkIjoiNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5IiwidW5pcXVlX25hbWUiOiJsaXZlLmNvbSNjaGFtc2VkZGluZS5iZW5oYW1lZEBlbnNpLXVtYS50biIsInV0aSI6IlBQWHZMNVFsQzBtaDBqdjdzWjRiQUEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoick52Y1lyTElyUjduYkgyT0JYaDhZM1NOcGRLT3N3X01DZF9xdzRfbzQ0SSJ9LCJ4bXNfdGNkdCI6MTU4MjgyMDM1Mn0.W_ccOGW_AGdg37KSMi7LWHtvm3Mw5p1dHjgDIrUaXduKF2iLS4dCaPw7yeo4VjAcOyV6C0h6ABLDCtkwVt8BSDTIIU7DaT8k2bRbMCCq69BmeiYPsbp-yX6ywGCx5DHsnOLqI2oHbBQktA2Nmv9Va651Pbm3OpSPuGPdVimkFCcnisiGlUOej1ZMNwyVT6386O2pERPtxmFUt_D1dKLxBXxBNxLVUG5BG3bI7wMpBOHEUA5CbaBzYXmGrLMXVVbrj9OsF-WQ6aNoqsm9cicX6pJB60lFz1dxLeSgcFO7Zh2K3PFe4FnXCqAvNPadQMz_kJEO9_phlDV85c2MPqeXbA",
|
|
58
|
-
token_type: "Bearer",
|
|
59
|
-
scope: "scopes",
|
|
60
|
-
scopes: ["scopes"],
|
|
61
|
-
expires_at: Number.MAX_SAFE_INTEGER,
|
|
62
|
-
expires_in: Number.MAX_SAFE_INTEGER,
|
|
63
|
-
expired: false,
|
|
64
|
-
state: null,
|
|
65
|
-
toStorageString: () => "Mock of UserManager"
|
|
66
|
-
};
|
|
67
45
|
this.metadataService = null;
|
|
68
46
|
this.settings = settings;
|
|
69
47
|
this.events = new Events();
|
|
70
48
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return Promise.resolve(JSON.parse(sessionStorage.getItem("powsybl-gridsuite-mock-user") ?? "null"));
|
|
49
|
+
async getUser() {
|
|
50
|
+
return JSON.parse(sessionStorage.getItem(_UserManagerMock.STORAGE_KEY) ?? "null");
|
|
74
51
|
}
|
|
75
52
|
async signinSilent() {
|
|
76
53
|
console.info("signinSilent..............");
|
|
77
|
-
const localStorageUser = JSON.parse(localStorage.getItem(
|
|
54
|
+
const localStorageUser = JSON.parse(localStorage.getItem(_UserManagerMock.STORAGE_KEY) ?? "null");
|
|
78
55
|
if (localStorageUser === null) {
|
|
79
56
|
throw new Error("End-User authentication required");
|
|
80
57
|
}
|
|
81
|
-
sessionStorage.setItem(
|
|
58
|
+
sessionStorage.setItem(_UserManagerMock.STORAGE_KEY, JSON.stringify(localStorageUser));
|
|
82
59
|
this.events.userLoadedCallbacks.forEach((c) => c(localStorageUser));
|
|
83
60
|
return localStorageUser;
|
|
84
61
|
}
|
|
85
|
-
// eslint-disable-next-line class-methods-use-this
|
|
86
62
|
signinSilentCallback() {
|
|
87
63
|
console.error("Unsupported, iframe signinSilentCallback in UserManagerMock (dev mode)");
|
|
88
64
|
return Promise.reject();
|
|
89
65
|
}
|
|
90
|
-
signinRedirect() {
|
|
91
|
-
localStorage.setItem(
|
|
66
|
+
async signinRedirect() {
|
|
67
|
+
localStorage.setItem(_UserManagerMock.STORAGE_KEY, JSON.stringify(_UserManagerMock.user));
|
|
92
68
|
window.location.href = "./sign-in-callback";
|
|
93
|
-
return Promise.resolve();
|
|
94
69
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
localStorage.removeItem("powsybl-gridsuite-mock-user");
|
|
70
|
+
async signoutRedirect() {
|
|
71
|
+
sessionStorage.removeItem(_UserManagerMock.STORAGE_KEY);
|
|
72
|
+
localStorage.removeItem(_UserManagerMock.STORAGE_KEY);
|
|
99
73
|
window.location.href = ".";
|
|
100
|
-
return Promise.resolve();
|
|
101
74
|
}
|
|
102
|
-
signinRedirectCallback() {
|
|
103
|
-
sessionStorage.setItem(
|
|
104
|
-
this.events.userLoadedCallbacks.forEach((c) => c(
|
|
105
|
-
return
|
|
75
|
+
async signinRedirectCallback() {
|
|
76
|
+
sessionStorage.setItem(_UserManagerMock.STORAGE_KEY, JSON.stringify(_UserManagerMock.user));
|
|
77
|
+
this.events.userLoadedCallbacks.forEach((c) => c(_UserManagerMock.user));
|
|
78
|
+
return _UserManagerMock.user;
|
|
106
79
|
}
|
|
107
|
-
clearStaleState() {
|
|
108
|
-
return Promise.resolve();
|
|
80
|
+
async clearStaleState() {
|
|
109
81
|
}
|
|
110
|
-
storeUser() {
|
|
111
|
-
return Promise.resolve();
|
|
82
|
+
async storeUser() {
|
|
112
83
|
}
|
|
113
|
-
removeUser() {
|
|
114
|
-
return Promise.resolve();
|
|
84
|
+
async removeUser() {
|
|
115
85
|
}
|
|
116
|
-
signinPopup() {
|
|
117
|
-
return
|
|
86
|
+
async signinPopup() {
|
|
87
|
+
return _UserManagerMock.user;
|
|
118
88
|
}
|
|
119
|
-
signinPopupCallback() {
|
|
120
|
-
return
|
|
89
|
+
async signinPopupCallback() {
|
|
90
|
+
return void 0;
|
|
121
91
|
}
|
|
122
|
-
signoutRedirectCallback() {
|
|
123
|
-
return
|
|
92
|
+
async signoutRedirectCallback() {
|
|
93
|
+
return {};
|
|
124
94
|
}
|
|
125
|
-
signoutPopup() {
|
|
126
|
-
return Promise.resolve();
|
|
95
|
+
async signoutPopup() {
|
|
127
96
|
}
|
|
128
|
-
signoutPopupCallback() {
|
|
129
|
-
return Promise.resolve();
|
|
97
|
+
async signoutPopupCallback() {
|
|
130
98
|
}
|
|
131
|
-
signinCallback() {
|
|
132
|
-
return
|
|
99
|
+
async signinCallback() {
|
|
100
|
+
return _UserManagerMock.user;
|
|
133
101
|
}
|
|
134
|
-
signoutCallback() {
|
|
135
|
-
return
|
|
102
|
+
async signoutCallback() {
|
|
103
|
+
return void 0;
|
|
136
104
|
}
|
|
137
|
-
querySessionStatus() {
|
|
138
|
-
return
|
|
105
|
+
async querySessionStatus() {
|
|
106
|
+
return {
|
|
139
107
|
session_state: "",
|
|
140
108
|
sub: "",
|
|
141
109
|
sid: void 0
|
|
142
|
-
}
|
|
110
|
+
};
|
|
143
111
|
}
|
|
144
|
-
revokeAccessToken() {
|
|
145
|
-
return Promise.resolve();
|
|
112
|
+
async revokeAccessToken() {
|
|
146
113
|
}
|
|
147
114
|
startSilentRenew() {
|
|
148
|
-
return Promise.resolve();
|
|
149
115
|
}
|
|
150
116
|
stopSilentRenew() {
|
|
151
|
-
return Promise.resolve();
|
|
152
117
|
}
|
|
153
|
-
createSigninRequest() {
|
|
154
|
-
return
|
|
118
|
+
async createSigninRequest() {
|
|
119
|
+
return {};
|
|
155
120
|
}
|
|
156
|
-
processSigninResponse() {
|
|
157
|
-
return
|
|
121
|
+
async processSigninResponse() {
|
|
122
|
+
return {};
|
|
158
123
|
}
|
|
159
|
-
createSignoutRequest() {
|
|
160
|
-
return
|
|
124
|
+
async createSignoutRequest() {
|
|
125
|
+
return {};
|
|
161
126
|
}
|
|
162
|
-
processSignoutResponse() {
|
|
163
|
-
return
|
|
127
|
+
async processSignoutResponse() {
|
|
128
|
+
return {};
|
|
164
129
|
}
|
|
165
|
-
}
|
|
130
|
+
};
|
|
131
|
+
_UserManagerMock.user = Object.freeze({
|
|
132
|
+
profile: Object.freeze({
|
|
133
|
+
name: "John Doe",
|
|
134
|
+
email: "Jhon.Doe@rte-france.com",
|
|
135
|
+
iss: "",
|
|
136
|
+
sub: "",
|
|
137
|
+
aud: "",
|
|
138
|
+
exp: Number.MAX_SAFE_INTEGER,
|
|
139
|
+
iat: 0
|
|
140
|
+
}),
|
|
141
|
+
id_token: "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSJ9.eyJhdWQiOiI5YzQwMjQ2MS1iMmFiLTQ3NjctOWRiMy02Njg1OWJiMGZjZDAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5L3YyLjAiLCJpYXQiOjE1ODUzMzEyNDksIm5iZiI6MTU4NTMzMTI0OSwiZXhwIjoyNTg1MzM1MTQ5LCJhaW8iOiJBV1FBbS84UEFBQUF3Q0xyTDRIUEUvTnVjOU9OdHN0SUV4cVpyMUlqa1FGbXJvUW5EUzJBaksyWnpneUhQTldPdkE3bitveHkvRzgxWElsb1A0TitsQjZINFJteElwakhNYVArTjIyTzVnMUFaR04yc1d6VHA5T3JWMDIvOXhndXJBMjZrdUNXbGg2RSIsImF0X2hhc2giOiJJaWRYdGRHdzVkbjlOZDFQblVvbDh3IiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvOTE4ODA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkLyIsIm5vbmNlIjoiMjkzZTcxNzhmOWE5NGZlNjg1ZWY3MjdlZTg5MTYxYjEiLCJzdWIiOiJyTnZjWXJMSXJSN25iSDJPQlhoOFkzU05wZEtPc3dfTUNkX3F3NF9vNDRJIiwidGlkIjoiNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5IiwidXRpIjoiUFBYdkw1UWxDMG1oMGp2N3NaNGJBQSIsInZlciI6IjIuMCJ9.dPAh24KTfsqmDaRoBtMLcayAWnDqVtydQ97P1a99dg93JsDu4Jhxju9vlzvjd6Ro5a1RZdrKFKB_pgC2DkQ3wSeYjpdSNyBAlW1_ryq65JkTJVMp33OsM_7SdjaRIiJfPiJ3U9jRBSyj7ofoHCLUjD_Uu-XreKxpMGhFHOQIO72UfXg8TBpsapjkEv9Dyz2UqMa2BQvO5mxKw93LNg5BI6j2a5LhbMEmmRWqfxWGITJ9TWfHjYdFkrXKcmvWZ9D2b4tsw_5NorDxkuzVFhA89M_0ASzOXoj1Yb6LgdkzWXDimssvyyz5Oe4V3gdkAe8Jj7Uwz-9AR-MO2kNkH7ytHA",
|
|
142
|
+
session_state: "session state",
|
|
143
|
+
access_token: "eyJ0eXAiOiJKV1QiLCJub25jZSI6InhKWHlQeXVrU1paQ3BOeEcxZUQway1lVDF0YzZtQ01ZVkZKcnBDOTJxc28iLCJhbGciOiJSUzI1NiIsIng1dCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSIsImtpZCI6IllNRUxIVDBndmIwbXhvU0RvWWZvbWpxZmpZVSJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83NTAyZGFkNS1kNjRjLTQ2YzctOWQ0Ny1iMTZmNTgwZmNmYTkvIiwiaWF0IjoxNTg1MzMxMjQ5LCJuYmYiOjE1ODUzMzEyNDksImV4cCI6MTU4NTMzNTE0OSwiYWNjdCI6MCwiYWNyIjoiMSIsImFpbyI6IkFVUUF1LzhQQUFBQXdwc3RYMlVkY2VDQWx4dU9tVHpIY0R3RlhTWUtYanIvZUNTSi9PdTRqbTJyUVBCUml0U1dWMThmNldCVEdNdnQ5ZGx0Ry9lTXB1VXZqaTN2NCtzanh3PT0iLCJhbHRzZWNpZCI6IjE6bGl2ZS5jb206MDAwMzQwMDExOUZEOTIxMiIsImFtciI6WyJwd2QiXSwiYXBwX2Rpc3BsYXluYW1lIjoic3BhIiwiYXBwaWQiOiI5YzQwMjQ2MS1iMmFiLTQ3NjctOWRiMy02Njg1OWJiMGZjZDAiLCJhcHBpZGFjciI6IjAiLCJlbWFpbCI6ImNoYW1zZWRkaW5lLmJlbmhhbWVkQGVuc2ktdW1hLnRuIiwiZmFtaWx5X25hbWUiOiJCRU5IQU1FRCIsImdpdmVuX25hbWUiOiJDaGFtc2VkZGluZSIsImlkcCI6ImxpdmUuY29tIiwiaXBhZGRyIjoiNzcuMjA0LjE0Ni4xNTkiLCJuYW1lIjoiQ2hhbXNlZGRpbmUgQkVOSEFNRUQiLCJvaWQiOiIzNTIzYmQ3OC0yZjIxLTQ3ZjYtODhlOC1hYWIzYjZmMjdmNjAiLCJwbGF0ZiI6IjE0IiwicHVpZCI6IjEwMDMyMDAwOURFMDg1NkEiLCJzY3AiOiJVc2VyLlJlYWQgcHJvZmlsZSBvcGVuaWQgZW1haWwiLCJzdWIiOiJjVEd5LVlfV3FLR2x1cmRUVDdSUVlfY3FjSDJoVHpEdllZTmotQ3hONXA4IiwidGlkIjoiNzUwMmRhZDUtZDY0Yy00NmM3LTlkNDctYjE2ZjU4MGZjZmE5IiwidW5pcXVlX25hbWUiOiJsaXZlLmNvbSNjaGFtc2VkZGluZS5iZW5oYW1lZEBlbnNpLXVtYS50biIsInV0aSI6IlBQWHZMNVFsQzBtaDBqdjdzWjRiQUEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoick52Y1lyTElyUjduYkgyT0JYaDhZM1NOcGRLT3N3X01DZF9xdzRfbzQ0SSJ9LCJ4bXNfdGNkdCI6MTU4MjgyMDM1Mn0.W_ccOGW_AGdg37KSMi7LWHtvm3Mw5p1dHjgDIrUaXduKF2iLS4dCaPw7yeo4VjAcOyV6C0h6ABLDCtkwVt8BSDTIIU7DaT8k2bRbMCCq69BmeiYPsbp-yX6ywGCx5DHsnOLqI2oHbBQktA2Nmv9Va651Pbm3OpSPuGPdVimkFCcnisiGlUOej1ZMNwyVT6386O2pERPtxmFUt_D1dKLxBXxBNxLVUG5BG3bI7wMpBOHEUA5CbaBzYXmGrLMXVVbrj9OsF-WQ6aNoqsm9cicX6pJB60lFz1dxLeSgcFO7Zh2K3PFe4FnXCqAvNPadQMz_kJEO9_phlDV85c2MPqeXbA",
|
|
144
|
+
token_type: "Bearer",
|
|
145
|
+
scope: "scopes",
|
|
146
|
+
scopes: ["scopes"],
|
|
147
|
+
expires_at: Number.MAX_SAFE_INTEGER,
|
|
148
|
+
expires_in: Number.MAX_SAFE_INTEGER,
|
|
149
|
+
expired: false,
|
|
150
|
+
state: null,
|
|
151
|
+
toStorageString: () => "Mock of UserManager"
|
|
152
|
+
});
|
|
153
|
+
_UserManagerMock.STORAGE_KEY = "powsybl-gridsuite-mock-user";
|
|
154
|
+
let UserManagerMock = _UserManagerMock;
|
|
166
155
|
export {
|
|
167
|
-
UserManagerMock
|
|
168
|
-
UserManagerMock as default
|
|
156
|
+
UserManagerMock
|
|
169
157
|
};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import { Component, ErrorInfo,
|
|
1
|
+
import { Component, ErrorInfo, PropsWithChildren } from 'react';
|
|
2
2
|
import { IconButtonProps } from '@mui/material';
|
|
3
3
|
|
|
4
4
|
export interface ExpandMoreProps extends IconButtonProps {
|
|
5
5
|
expand: boolean;
|
|
6
6
|
}
|
|
7
|
-
interface Props {
|
|
8
|
-
children?: ReactNode;
|
|
9
|
-
}
|
|
10
7
|
type CardErrorBoundaryStateError = {
|
|
11
8
|
hasError: true;
|
|
12
9
|
error: Error;
|
|
@@ -17,15 +14,15 @@ type CardErrorBoundaryStateSuccess = {
|
|
|
17
14
|
type CardErrorBoundaryState = (CardErrorBoundaryStateError | CardErrorBoundaryStateSuccess) & {
|
|
18
15
|
expanded: boolean;
|
|
19
16
|
};
|
|
20
|
-
export declare class CardErrorBoundary extends Component<
|
|
21
|
-
constructor(props:
|
|
17
|
+
export declare class CardErrorBoundary extends Component<PropsWithChildren<{}>, CardErrorBoundaryState> {
|
|
18
|
+
constructor(props: PropsWithChildren<{}>);
|
|
22
19
|
static getDerivedStateFromError(error: Error): {
|
|
23
20
|
hasError: boolean;
|
|
24
21
|
error: Error;
|
|
25
22
|
};
|
|
26
23
|
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
27
|
-
handleExpandClick
|
|
28
|
-
handleReloadClick
|
|
29
|
-
render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<ReactNode> | null | undefined;
|
|
24
|
+
private handleExpandClick;
|
|
25
|
+
private handleReloadClick;
|
|
26
|
+
render(): string | number | boolean | import("react/jsx-runtime").JSX.Element | Iterable<import('react').ReactNode> | null | undefined;
|
|
30
27
|
}
|
|
31
28
|
export {};
|
|
@@ -30,9 +30,7 @@ class CardErrorBoundary extends Component {
|
|
|
30
30
|
console.error("CardErrorBoundary caught: ", error, errorInfo);
|
|
31
31
|
}
|
|
32
32
|
handleExpandClick() {
|
|
33
|
-
this.setState((state) => ({
|
|
34
|
-
expanded: !state.expanded
|
|
35
|
-
}));
|
|
33
|
+
this.setState((state) => ({ expanded: !state.expanded }));
|
|
36
34
|
}
|
|
37
35
|
handleReloadClick() {
|
|
38
36
|
this.setState(() => ({
|
|
@@ -165,12 +165,12 @@ const OPERATOR_OPTIONS = {
|
|
|
165
165
|
IS_PART_OF: {
|
|
166
166
|
name: OperatorType.IS_PART_OF,
|
|
167
167
|
customName: OperatorType.IS_PART_OF,
|
|
168
|
-
label: "
|
|
168
|
+
label: "inFilter"
|
|
169
169
|
},
|
|
170
170
|
IS_NOT_PART_OF: {
|
|
171
171
|
name: OperatorType.IS_NOT_PART_OF,
|
|
172
172
|
customName: OperatorType.IS_NOT_PART_OF,
|
|
173
|
-
label: "
|
|
173
|
+
label: "notInFilter"
|
|
174
174
|
}
|
|
175
175
|
};
|
|
176
176
|
const COMBINATOR_OPTIONS = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useCallback, Fragment } from "react";
|
|
3
|
-
import { List, ListItem, Tooltip, Typography, Divider,
|
|
3
|
+
import { List, ListItem, Tooltip, Typography, Divider, Select, MenuItem, TextField, IconButton, Autocomplete, Chip, Switch } from "@mui/material";
|
|
4
4
|
import { Tune } from "@mui/icons-material";
|
|
5
5
|
import { useIntl, FormattedMessage } from "react-intl";
|
|
6
6
|
import { MultipleSelectionDialog } from "../multipleSelectionDialog/MultipleSelectionDialog.js";
|
|
@@ -314,20 +314,19 @@ function FlatParameters({
|
|
|
314
314
|
}
|
|
315
315
|
);
|
|
316
316
|
}
|
|
317
|
-
default:
|
|
318
|
-
return /* @__PURE__ */ jsx(
|
|
319
|
-
TextField,
|
|
320
|
-
{
|
|
321
|
-
sx: { width: "50%" },
|
|
322
|
-
size: "small",
|
|
323
|
-
value: fieldValue || "",
|
|
324
|
-
onFocus: () => onUncommitted(param, true),
|
|
325
|
-
onBlur: () => onUncommitted(param, false),
|
|
326
|
-
onChange: (e) => onFieldChange(e.target.value, param),
|
|
327
|
-
variant
|
|
328
|
-
}
|
|
329
|
-
);
|
|
330
317
|
}
|
|
318
|
+
return /* @__PURE__ */ jsx(
|
|
319
|
+
TextField,
|
|
320
|
+
{
|
|
321
|
+
sx: { width: "50%" },
|
|
322
|
+
size: "small",
|
|
323
|
+
value: fieldValue || "",
|
|
324
|
+
onFocus: () => onUncommitted(param, true),
|
|
325
|
+
onBlur: () => onUncommitted(param, false),
|
|
326
|
+
onChange: (e) => onFieldChange(e.target.value, param),
|
|
327
|
+
variant
|
|
328
|
+
}
|
|
329
|
+
);
|
|
331
330
|
};
|
|
332
331
|
return /* @__PURE__ */ jsx(List, { sx: styles.paramList, children: paramsAsArray.map((param, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
333
332
|
/* @__PURE__ */ jsxs(ListItem, { sx: styles.paramListItem, children: [
|
|
@@ -140,7 +140,7 @@ function DirectoryItemsInput({
|
|
|
140
140
|
{
|
|
141
141
|
sx: mergeSx(
|
|
142
142
|
styles.formDirectoryElements1,
|
|
143
|
-
// @ts-
|
|
143
|
+
// @ts-expect-error
|
|
144
144
|
(error == null ? void 0 : error.message) && styles.formDirectoryElementsError
|
|
145
145
|
),
|
|
146
146
|
error: !!(error == null ? void 0 : error.message),
|
|
@@ -8,16 +8,15 @@ import { ICellEditorComp, ICellEditorParams } from 'ag-grid-community';
|
|
|
8
8
|
* https://www.ag-grid.com/react-data-grid/component-cell-editor/#cell-editor-example
|
|
9
9
|
*/
|
|
10
10
|
export declare class NumericEditor implements ICellEditorComp {
|
|
11
|
-
eInput
|
|
12
|
-
cancelBeforeStart
|
|
11
|
+
private eInput;
|
|
12
|
+
private cancelBeforeStart;
|
|
13
13
|
init(params: ICellEditorParams): void;
|
|
14
|
-
static isBackspace
|
|
15
|
-
static isNavigationKey
|
|
14
|
+
private static isBackspace;
|
|
15
|
+
private static isNavigationKey;
|
|
16
16
|
getGui(): HTMLInputElement;
|
|
17
17
|
afterGuiAttached(): void;
|
|
18
18
|
isCancelBeforeStart(): boolean;
|
|
19
19
|
getValue(): number | null;
|
|
20
|
-
static isCharNumeric
|
|
21
|
-
static isNumericKey
|
|
22
|
-
static focusOut(): boolean;
|
|
20
|
+
private static isCharNumeric;
|
|
21
|
+
private static isNumericKey;
|
|
23
22
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { KeyCode } from "ag-grid-community";
|
|
2
2
|
class NumericEditor {
|
|
3
3
|
// gets called once before the renderer is used
|
|
4
4
|
init(params) {
|
|
5
5
|
this.eInput = document.createElement("input");
|
|
6
6
|
this.eInput.classList.add("numeric-input");
|
|
7
|
-
if (params.eventKey ===
|
|
7
|
+
if (params.eventKey === KeyCode.BACKSPACE) {
|
|
8
8
|
this.eInput.value = "";
|
|
9
9
|
} else if (NumericEditor.isCharNumeric(params.eventKey)) {
|
|
10
10
|
this.eInput.value = params.eventKey;
|
|
@@ -28,7 +28,7 @@ class NumericEditor {
|
|
|
28
28
|
this.cancelBeforeStart = !!isNotANumber;
|
|
29
29
|
}
|
|
30
30
|
static isBackspace(event) {
|
|
31
|
-
return event.key ===
|
|
31
|
+
return event.key === KeyCode.BACKSPACE;
|
|
32
32
|
}
|
|
33
33
|
static isNavigationKey(event) {
|
|
34
34
|
return event.key === "ArrowLeft" || event.key === "ArrowRight";
|
|
@@ -47,20 +47,14 @@ class NumericEditor {
|
|
|
47
47
|
}
|
|
48
48
|
// returns the new value after editing
|
|
49
49
|
getValue() {
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
return parseFloat(tmp) || null;
|
|
50
|
+
const result = parseFloat(this.eInput.value.replace(",", "."));
|
|
51
|
+
return Number.isNaN(result) ? null : result;
|
|
53
52
|
}
|
|
54
53
|
static isCharNumeric(charStr) {
|
|
55
|
-
return charStr &&
|
|
54
|
+
return charStr && /\d|,|\./.test(charStr);
|
|
56
55
|
}
|
|
57
56
|
static isNumericKey(event) {
|
|
58
|
-
|
|
59
|
-
return NumericEditor.isCharNumeric(charStr);
|
|
60
|
-
}
|
|
61
|
-
// force call when focus is leaving the editor
|
|
62
|
-
static focusOut() {
|
|
63
|
-
return true;
|
|
57
|
+
return NumericEditor.isCharNumeric(event.key);
|
|
64
58
|
}
|
|
65
59
|
}
|
|
66
60
|
export {
|
|
@@ -2,8 +2,9 @@ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useCallback } from "react";
|
|
3
3
|
import { MaterialValueSelector } from "@react-querybuilder/material";
|
|
4
4
|
import { PopupConfirmationDialog } from "../../dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
|
|
5
|
+
import { useSelectAppearance } from "../../../hooks/useSelectAppearance.js";
|
|
5
6
|
function CombinatorSelector(props) {
|
|
6
|
-
const { value, handleOnChange } = props;
|
|
7
|
+
const { options, value, handleOnChange } = props;
|
|
7
8
|
const [tempCombinator, setTempCombinator] = useState(value);
|
|
8
9
|
const [openPopup, setOpenPopup] = useState(false);
|
|
9
10
|
const handlePopupConfirmation = useCallback(() => {
|
|
@@ -28,7 +29,8 @@ function CombinatorSelector(props) {
|
|
|
28
29
|
handleOnChange: (newCombinator) => {
|
|
29
30
|
setTempCombinator(newCombinator);
|
|
30
31
|
setOpenPopup(true);
|
|
31
|
-
}
|
|
32
|
+
},
|
|
33
|
+
...useSelectAppearance(options.length)
|
|
32
34
|
}
|
|
33
35
|
)
|
|
34
36
|
] });
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { MaterialValueSelector } from "@react-querybuilder/material";
|
|
3
|
+
import { useSelectAppearance } from "../../../hooks/useSelectAppearance.js";
|
|
3
4
|
const ITEM_HEIGHT = 32;
|
|
4
5
|
const ITEM_PADDING = 4;
|
|
5
6
|
const ITEMS_COUNT = 10;
|
|
@@ -11,7 +12,8 @@ const MenuProps = {
|
|
|
11
12
|
}
|
|
12
13
|
};
|
|
13
14
|
function FieldSelector(props) {
|
|
14
|
-
|
|
15
|
+
const { options } = props;
|
|
16
|
+
return /* @__PURE__ */ jsx(MaterialValueSelector, { ...props, MenuProps, ...useSelectAppearance(options.length) });
|
|
15
17
|
}
|
|
16
18
|
export {
|
|
17
19
|
FieldSelector
|