@plumile/backoffice-react 0.1.90 → 0.1.92
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/lib/esm/{BackofficeLoginPage-DgdIWTeu.js → BackofficeLoginPage-BkQHm0x6.js} +3 -2
- package/lib/esm/{BackofficeLoginPage-DgdIWTeu.js.map → BackofficeLoginPage-BkQHm0x6.js.map} +1 -1
- package/lib/esm/backoffice-react.js +896 -894
- package/lib/esm/backoffice-react.js.map +1 -1
- package/lib/types/hooks/useBackofficeSessionAuth.d.ts.map +1 -1
- package/lib/types/i18n/resources.d.ts +2 -0
- package/lib/types/i18n/resources.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/pages/BackofficeLoginPage.d.ts.map +1 -1
- package/lib/types/provider/BackofficeProvider.d.ts.map +1 -1
- package/lib/types/provider/types.d.ts +4 -0
- package/lib/types/provider/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -9,17 +9,17 @@ import { t as v } from "./PasswordResetCompleteScreen-Cgg96DPo.js";
|
|
|
9
9
|
import { t as y } from "./PasswordResetRequestScreen-I1nFvGLd.js";
|
|
10
10
|
import { t as ee } from "./VerifyEmailScreen-Br5KyHjg.js";
|
|
11
11
|
import { t as te } from "./BackofficeErrorBoundary-BwRVSDHU.js";
|
|
12
|
-
import { i as
|
|
13
|
-
import { i as
|
|
14
|
-
import { a as
|
|
15
|
-
import { t as
|
|
16
|
-
import { i as
|
|
17
|
-
import { t as
|
|
18
|
-
import { n as
|
|
19
|
-
import { StrictMode as
|
|
20
|
-
import { createInstance as
|
|
21
|
-
import { I18nextProvider as
|
|
22
|
-
import { HttpRedirect as
|
|
12
|
+
import { i as ne, n as re, t as ie } from "./EntityFilterValue-BWUdPBwp.js";
|
|
13
|
+
import { i as b, t as ae } from "./EntityIdPickerDialog-Yhmr-WsV.js";
|
|
14
|
+
import { a as oe, i as se, r as ce, t as le } from "./BackofficeDetailPayload-P61MDRLE.js";
|
|
15
|
+
import { t as ue } from "./useBackofficeListUrlState-D4fx5O7u.js";
|
|
16
|
+
import { i as de, n as fe, r as pe, t as me } from "./mutationResult-CcQMY13J.js";
|
|
17
|
+
import { t as he } from "./pageResolution-hAQA5C6S.js";
|
|
18
|
+
import { n as ge, t as _e } from "./BackofficeRightPageLayout-DZQvIHnj.js";
|
|
19
|
+
import { StrictMode as ve, useCallback as x, useContext as ye, useEffect as S, useMemo as C, useRef as be, useState as w } from "react";
|
|
20
|
+
import { createInstance as xe } from "i18next";
|
|
21
|
+
import { I18nextProvider as Se, initReactI18next as Ce, useTranslation as T } from "react-i18next";
|
|
22
|
+
import { HttpRedirect as we, Link as E, RouterRenderer as Te, RoutingContext as Ee, createRouter as De, getResourcePage as D, r as Oe } from "@plumile/router";
|
|
23
23
|
import { BackofficeTabs as ke, DetailPageTemplate as Ae, SidebarSearchSvg as je, Spinner as Me, ThemeProvider as Ne, cx as Pe } from "@plumile/ui";
|
|
24
24
|
import Fe from "i18next-browser-languagedetector";
|
|
25
25
|
import * as O from "react-relay";
|
|
@@ -63,9 +63,9 @@ function P(e, t, n) {
|
|
|
63
63
|
}
|
|
64
64
|
return N(e);
|
|
65
65
|
}
|
|
66
|
-
async function
|
|
67
|
-
let { resources: t, lng: n, fallbackLng: r = "en", initOptions: i = {}, instance: a =
|
|
68
|
-
o && a.use(Fe), a.use(
|
|
66
|
+
async function Ge(e) {
|
|
67
|
+
let { resources: t, lng: n, fallbackLng: r = "en", initOptions: i = {}, instance: a = xe(), useLanguageDetector: o = !1, detection: s } = e, { interpolation: c, ...l } = i;
|
|
68
|
+
o && a.use(Fe), a.use(Ce);
|
|
69
69
|
try {
|
|
70
70
|
let e = {
|
|
71
71
|
...l,
|
|
@@ -84,765 +84,777 @@ async function F(e) {
|
|
|
84
84
|
} catch {}
|
|
85
85
|
return a;
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
87
|
+
var Ke = {
|
|
88
|
+
actions: {
|
|
89
|
+
form: {
|
|
90
|
+
cancel: "Cancel",
|
|
91
|
+
errors: {
|
|
92
|
+
invalidJson: "{{label}} must be valid JSON.",
|
|
93
|
+
invalidJsonArray: "{{label}} must be a valid JSON array.",
|
|
94
|
+
invalidJsonObject: "{{label}} must be a valid JSON object.",
|
|
95
|
+
invalidNumber: "{{label}} must be a valid number.",
|
|
96
|
+
invalidPayload: "The submitted payload is invalid.",
|
|
97
|
+
required: "{{label}} is required."
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
invalidPayload: "The submitted payload is invalid.",
|
|
116
|
-
required: "{{label}} is required."
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
view: "View"
|
|
120
|
-
},
|
|
121
|
-
auth: {
|
|
122
|
-
acceptInvitation: {
|
|
123
|
-
actions: { backToLogin: "Back to login" },
|
|
124
|
-
errors: {
|
|
125
|
-
alreadyAccepted: "This invitation has already been accepted.",
|
|
126
|
-
default: "Unable to accept invitation.",
|
|
127
|
-
emailMismatch: "This invitation was sent to a different email address.",
|
|
128
|
-
expired: "Invitation link has expired.",
|
|
129
|
-
invalidToken: "Invitation link is invalid.",
|
|
130
|
-
missingToken: "Invitation link is missing or invalid.",
|
|
131
|
-
passwordMismatch: "Password and confirmation do not match.",
|
|
132
|
-
passwordPolicyViolation: "Your password does not meet policy requirements.",
|
|
133
|
-
rateLimited: "Too many attempts. Please try again later."
|
|
134
|
-
},
|
|
135
|
-
form: {
|
|
136
|
-
confirmLabel: "Confirm password",
|
|
137
|
-
confirmPlaceholder: "Confirm your password",
|
|
138
|
-
passwordLabel: "Password",
|
|
139
|
-
passwordPlaceholder: "Create a password",
|
|
140
|
-
submit: "Accept invitation"
|
|
141
|
-
},
|
|
142
|
-
mfaSubtitle: "Enter the verification code to continue.",
|
|
143
|
-
mfaTitle: "Verify your identity",
|
|
144
|
-
status: {
|
|
145
|
-
success: "Invitation accepted.",
|
|
146
|
-
workingButton: "Working..."
|
|
147
|
-
},
|
|
148
|
-
subtitle: "Create your account to join.",
|
|
149
|
-
title: "Accept invitation"
|
|
150
|
-
},
|
|
151
|
-
emailCapture: {
|
|
152
|
-
continue: "Continue",
|
|
153
|
-
description: "Enter your work email to continue.",
|
|
154
|
-
emailLabel: "Work email",
|
|
155
|
-
emailPlaceholder: "you@company.com",
|
|
156
|
-
forgotPassword: "Forgot your password?"
|
|
157
|
-
},
|
|
158
|
-
loginFlow: {
|
|
159
|
-
errors: {
|
|
160
|
-
accountLocked: "Too many attempts. Try again later.",
|
|
161
|
-
emailRequired: "Enter an email address to continue.",
|
|
162
|
-
invalidCredentials: "Email or password is incorrect.",
|
|
163
|
-
invalidEmail: "Enter a valid email address.",
|
|
164
|
-
passkeyUnavailable: "Passkeys are not available.",
|
|
165
|
-
rateLimited: "Too many attempts. Please try again later.",
|
|
166
|
-
tryAgain: "Something went wrong. Please try again."
|
|
167
|
-
},
|
|
168
|
-
methods: { title: "Choose a sign-in method" },
|
|
169
|
-
passkey: {
|
|
170
|
-
description: "Use the passkey associated with {{email}}.",
|
|
171
|
-
title: "Use a passkey"
|
|
172
|
-
},
|
|
173
|
-
subtitle: {
|
|
174
|
-
default: "Choose a sign-in method to continue.",
|
|
175
|
-
mfa: "Enter the verification code to continue."
|
|
176
|
-
},
|
|
177
|
-
title: {
|
|
178
|
-
default: "Sign in",
|
|
179
|
-
mfa: "Two-factor authentication"
|
|
180
|
-
}
|
|
181
|
-
},
|
|
182
|
-
methodChooser: {
|
|
183
|
-
actions: { back: "Back" },
|
|
184
|
-
locked: "Too many attempts. Try again later.",
|
|
185
|
-
lockedWithTime: "Too many attempts. Try again at {{time}}.",
|
|
186
|
-
methods: {
|
|
187
|
-
other: "{{method}}",
|
|
188
|
-
passkey: "Passkey",
|
|
189
|
-
password: "Password"
|
|
190
|
-
},
|
|
191
|
-
prompt: "Choose how to sign in for <strong>{{email}}</strong>."
|
|
192
|
-
},
|
|
193
|
-
mfa: {
|
|
194
|
-
actions: {
|
|
195
|
-
back: "Back",
|
|
196
|
-
submit: "Verify"
|
|
197
|
-
},
|
|
198
|
-
errors: {
|
|
199
|
-
expired: "Verification session expired. Please try again.",
|
|
200
|
-
invalidChallenge: "Verification session is invalid. Restart the login.",
|
|
201
|
-
invalidCode: "Invalid code. Try again.",
|
|
202
|
-
shortCode: "Enter the 6-digit code.",
|
|
203
|
-
tooManyAttempts: "Too many attempts. Try again later.",
|
|
204
|
-
verificationFailed: "Verification failed. Try again."
|
|
205
|
-
},
|
|
206
|
-
form: {
|
|
207
|
-
label: "Verification code",
|
|
208
|
-
placeholder: "123456"
|
|
209
|
-
},
|
|
210
|
-
helper: {
|
|
211
|
-
default: "Enter the 6-digit code from your authenticator.",
|
|
212
|
-
withEmail: "Enter the 6-digit code sent to {{email}}."
|
|
213
|
-
}
|
|
99
|
+
},
|
|
100
|
+
view: "View"
|
|
101
|
+
},
|
|
102
|
+
auth: {
|
|
103
|
+
acceptInvitation: {
|
|
104
|
+
actions: { backToLogin: "Back to login" },
|
|
105
|
+
errors: {
|
|
106
|
+
alreadyAccepted: "This invitation has already been accepted.",
|
|
107
|
+
default: "Unable to accept invitation.",
|
|
108
|
+
emailMismatch: "This invitation was sent to a different email address.",
|
|
109
|
+
expired: "Invitation link has expired.",
|
|
110
|
+
invalidToken: "Invitation link is invalid.",
|
|
111
|
+
missingToken: "Invitation link is missing or invalid.",
|
|
112
|
+
passwordMismatch: "Password and confirmation do not match.",
|
|
113
|
+
passwordPolicyViolation: "Your password does not meet policy requirements.",
|
|
114
|
+
rateLimited: "Too many attempts. Please try again later."
|
|
214
115
|
},
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
116
|
+
form: {
|
|
117
|
+
confirmLabel: "Confirm password",
|
|
118
|
+
confirmPlaceholder: "Confirm your password",
|
|
119
|
+
passwordLabel: "Password",
|
|
120
|
+
passwordPlaceholder: "Create a password",
|
|
121
|
+
submit: "Accept invitation"
|
|
122
|
+
},
|
|
123
|
+
mfaSubtitle: "Enter the verification code to continue.",
|
|
124
|
+
mfaTitle: "Verify your identity",
|
|
125
|
+
status: {
|
|
126
|
+
success: "Invitation accepted.",
|
|
127
|
+
workingButton: "Working..."
|
|
128
|
+
},
|
|
129
|
+
subtitle: "Create your account to join.",
|
|
130
|
+
title: "Accept invitation"
|
|
131
|
+
},
|
|
132
|
+
emailCapture: {
|
|
133
|
+
continue: "Continue",
|
|
134
|
+
description: "Enter your work email to continue.",
|
|
135
|
+
emailLabel: "Work email",
|
|
136
|
+
emailPlaceholder: "you@company.com",
|
|
137
|
+
forgotPassword: "Forgot your password?"
|
|
138
|
+
},
|
|
139
|
+
loginFlow: {
|
|
140
|
+
errors: {
|
|
141
|
+
accountLocked: "Too many attempts. Try again later.",
|
|
142
|
+
emailRequired: "Enter an email address to continue.",
|
|
143
|
+
invalidCredentials: "Email or password is incorrect.",
|
|
144
|
+
invalidEmail: "Enter a valid email address.",
|
|
145
|
+
passkeyUnavailable: "Passkeys are not available.",
|
|
146
|
+
rateLimited: "Too many attempts. Please try again later.",
|
|
147
|
+
tryAgain: "Something went wrong. Please try again."
|
|
148
|
+
},
|
|
149
|
+
methods: { title: "Choose a sign-in method" },
|
|
220
150
|
passkey: {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
submit: "Continue with passkey",
|
|
224
|
-
submitting: "Waiting for passkey..."
|
|
225
|
-
},
|
|
226
|
-
errors: {
|
|
227
|
-
challengeExpired: "Passkey request expired. Try again.",
|
|
228
|
-
emailRequired: "Enter your email to continue.",
|
|
229
|
-
failed: "Passkey sign-in failed.",
|
|
230
|
-
invalidAssertion: "Passkey response is invalid. Try again.",
|
|
231
|
-
invalidChallenge: "Passkey request is invalid. Try again.",
|
|
232
|
-
invalidEmail: "Enter a valid email address.",
|
|
233
|
-
locked: "Too many attempts. Try again later.",
|
|
234
|
-
lockedWithTime: "Too many attempts. Try again at {{time}}.",
|
|
235
|
-
notAvailable: "Passkeys are not available on this device.",
|
|
236
|
-
notFound: "No passkey found for this account."
|
|
237
|
-
},
|
|
238
|
-
form: {
|
|
239
|
-
emailLabel: "Email",
|
|
240
|
-
emailPlaceholder: "you@company.com"
|
|
241
|
-
},
|
|
242
|
-
helper: "Use a passkey instead of your password."
|
|
151
|
+
description: "Use the passkey associated with {{email}}.",
|
|
152
|
+
title: "Use a passkey"
|
|
243
153
|
},
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
154
|
+
subtitle: {
|
|
155
|
+
default: "Choose a sign-in method to continue.",
|
|
156
|
+
mfa: "Enter the verification code to continue."
|
|
247
157
|
},
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
invalid: "Reset link is invalid or expired.",
|
|
252
|
-
minLength: "Password must be at least {{minLength}} characters.",
|
|
253
|
-
mismatch: "Passwords do not match.",
|
|
254
|
-
missingToken: "Reset link is missing or invalid.",
|
|
255
|
-
policyViolation: "Your new password does not meet policy requirements."
|
|
256
|
-
},
|
|
257
|
-
form: {
|
|
258
|
-
confirmLabel: "Confirm password",
|
|
259
|
-
confirmPlaceholder: "Re-enter your password",
|
|
260
|
-
description: "Enter a new password for your account.",
|
|
261
|
-
passwordLabel: "Password",
|
|
262
|
-
passwordPlaceholder: "Enter a new password",
|
|
263
|
-
submit: "Update password",
|
|
264
|
-
title: "New password"
|
|
265
|
-
},
|
|
266
|
-
subtitle: "Choose a strong password to secure your account.",
|
|
267
|
-
success: {
|
|
268
|
-
action: "Back to login",
|
|
269
|
-
description: "Your password has been changed.",
|
|
270
|
-
helper: "You can now sign in with your new password.",
|
|
271
|
-
title: "Password updated"
|
|
272
|
-
},
|
|
273
|
-
title: "Set a new password"
|
|
274
|
-
},
|
|
275
|
-
passwordResetRequest: {
|
|
276
|
-
errors: {
|
|
277
|
-
emailRequired: "Enter an email address.",
|
|
278
|
-
invalidEmail: "Please enter a valid email address.",
|
|
279
|
-
rateLimited: "Too many requests. Please wait and try again.",
|
|
280
|
-
startFailed: "Unable to start password reset."
|
|
281
|
-
},
|
|
282
|
-
form: {
|
|
283
|
-
description: "Enter the email for your account.",
|
|
284
|
-
emailLabel: "Email",
|
|
285
|
-
emailPlaceholder: "you@company.com",
|
|
286
|
-
submit: "Send reset link"
|
|
287
|
-
},
|
|
288
|
-
sent: {
|
|
289
|
-
action: "Send another email",
|
|
290
|
-
description: "We sent a reset link to {{email}}.",
|
|
291
|
-
helper: "If you don't see it, check spam or try again.",
|
|
292
|
-
title: "Check your email"
|
|
293
|
-
},
|
|
294
|
-
title: "Reset your password"
|
|
295
|
-
},
|
|
296
|
-
verifyEmail: {
|
|
297
|
-
actions: {
|
|
298
|
-
continue: "Continue",
|
|
299
|
-
return: "Back to login"
|
|
300
|
-
},
|
|
301
|
-
errors: {
|
|
302
|
-
alreadyVerified: "This email address is already verified.",
|
|
303
|
-
expired: "This verification link has expired.",
|
|
304
|
-
invalid: "Verification link is invalid or expired.",
|
|
305
|
-
missingToken: "Verification link is missing or invalid."
|
|
306
|
-
},
|
|
307
|
-
status: {
|
|
308
|
-
success: "Email verified. You can continue.",
|
|
309
|
-
verifying: "Verifying...",
|
|
310
|
-
verifyingButton: "Verifying"
|
|
311
|
-
},
|
|
312
|
-
subtitle: "Confirm your email address to continue.",
|
|
313
|
-
title: "Verify your email"
|
|
158
|
+
title: {
|
|
159
|
+
default: "Sign in",
|
|
160
|
+
mfa: "Two-factor authentication"
|
|
314
161
|
}
|
|
315
162
|
},
|
|
316
|
-
|
|
317
|
-
actions: {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
}
|
|
326
|
-
boolean: {
|
|
327
|
-
no: "No",
|
|
328
|
-
yes: "Yes"
|
|
329
|
-
},
|
|
330
|
-
loading: "Loading...",
|
|
331
|
-
notAvailable: "N/A"
|
|
163
|
+
methodChooser: {
|
|
164
|
+
actions: { back: "Back" },
|
|
165
|
+
locked: "Too many attempts. Try again later.",
|
|
166
|
+
lockedWithTime: "Too many attempts. Try again at {{time}}.",
|
|
167
|
+
methods: {
|
|
168
|
+
other: "{{method}}",
|
|
169
|
+
passkey: "Passkey",
|
|
170
|
+
password: "Password"
|
|
171
|
+
},
|
|
172
|
+
prompt: "Choose how to sign in for <strong>{{email}}</strong>."
|
|
332
173
|
},
|
|
333
|
-
|
|
174
|
+
mfa: {
|
|
334
175
|
actions: {
|
|
335
|
-
|
|
336
|
-
|
|
176
|
+
back: "Back",
|
|
177
|
+
submit: "Verify"
|
|
337
178
|
},
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
title: "No results"
|
|
179
|
+
errors: {
|
|
180
|
+
expired: "Verification session expired. Please try again.",
|
|
181
|
+
invalidChallenge: "Verification session is invalid. Restart the login.",
|
|
182
|
+
invalidCode: "Invalid code. Try again.",
|
|
183
|
+
shortCode: "Enter the 6-digit code.",
|
|
184
|
+
tooManyAttempts: "Too many attempts. Try again later.",
|
|
185
|
+
verificationFailed: "Verification failed. Try again."
|
|
346
186
|
},
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
187
|
+
form: {
|
|
188
|
+
label: "Verification code",
|
|
189
|
+
placeholder: "123456"
|
|
190
|
+
},
|
|
191
|
+
helper: {
|
|
192
|
+
default: "Enter the 6-digit code from your authenticator.",
|
|
193
|
+
withEmail: "Enter the 6-digit code sent to {{email}}."
|
|
350
194
|
}
|
|
351
195
|
},
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
196
|
+
oidc: { buttons: {
|
|
197
|
+
apple: "Continue with Apple",
|
|
198
|
+
generic: "Continue with single sign-on",
|
|
199
|
+
google: "Continue with Google"
|
|
200
|
+
} },
|
|
201
|
+
passkey: {
|
|
202
|
+
actions: {
|
|
203
|
+
showMethods: "Use another method",
|
|
204
|
+
submit: "Continue with passkey",
|
|
205
|
+
submitting: "Waiting for passkey..."
|
|
206
|
+
},
|
|
207
|
+
errors: {
|
|
208
|
+
challengeExpired: "Passkey request expired. Try again.",
|
|
209
|
+
emailRequired: "Enter your email to continue.",
|
|
210
|
+
failed: "Passkey sign-in failed.",
|
|
211
|
+
invalidAssertion: "Passkey response is invalid. Try again.",
|
|
212
|
+
invalidChallenge: "Passkey request is invalid. Try again.",
|
|
213
|
+
invalidEmail: "Enter a valid email address.",
|
|
214
|
+
locked: "Too many attempts. Try again later.",
|
|
215
|
+
lockedWithTime: "Too many attempts. Try again at {{time}}.",
|
|
216
|
+
notAvailable: "Passkeys are not available on this device.",
|
|
217
|
+
notFound: "No passkey found for this account."
|
|
361
218
|
},
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
219
|
+
form: {
|
|
220
|
+
emailLabel: "Email",
|
|
221
|
+
emailPlaceholder: "you@company.com"
|
|
365
222
|
},
|
|
366
|
-
|
|
223
|
+
helper: "Use a passkey instead of your password."
|
|
367
224
|
},
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
225
|
+
passwordLogin: {
|
|
226
|
+
forgotPassword: "Forgot your password?",
|
|
227
|
+
title: "Sign in"
|
|
228
|
+
},
|
|
229
|
+
passwordResetComplete: {
|
|
230
|
+
errors: {
|
|
231
|
+
expired: "This reset link has expired.",
|
|
232
|
+
invalid: "Reset link is invalid or expired.",
|
|
233
|
+
minLength: "Password must be at least {{minLength}} characters.",
|
|
234
|
+
mismatch: "Passwords do not match.",
|
|
235
|
+
missingToken: "Reset link is missing or invalid.",
|
|
236
|
+
policyViolation: "Your new password does not meet policy requirements."
|
|
372
237
|
},
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
238
|
+
form: {
|
|
239
|
+
confirmLabel: "Confirm password",
|
|
240
|
+
confirmPlaceholder: "Re-enter your password",
|
|
241
|
+
description: "Enter a new password for your account.",
|
|
242
|
+
passwordLabel: "Password",
|
|
243
|
+
passwordPlaceholder: "Enter a new password",
|
|
244
|
+
submit: "Update password",
|
|
245
|
+
title: "New password"
|
|
246
|
+
},
|
|
247
|
+
subtitle: "Choose a strong password to secure your account.",
|
|
248
|
+
success: {
|
|
249
|
+
action: "Back to login",
|
|
250
|
+
description: "Your password has been changed.",
|
|
251
|
+
helper: "You can now sign in with your new password.",
|
|
252
|
+
title: "Password updated"
|
|
253
|
+
},
|
|
254
|
+
title: "Set a new password"
|
|
255
|
+
},
|
|
256
|
+
passwordResetRequest: {
|
|
257
|
+
errors: {
|
|
258
|
+
emailRequired: "Enter an email address.",
|
|
259
|
+
invalidEmail: "Please enter a valid email address.",
|
|
260
|
+
rateLimited: "Too many requests. Please wait and try again.",
|
|
261
|
+
startFailed: "Unable to start password reset."
|
|
376
262
|
},
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
263
|
+
form: {
|
|
264
|
+
description: "Enter the email for your account.",
|
|
265
|
+
emailLabel: "Email",
|
|
266
|
+
emailPlaceholder: "you@company.com",
|
|
267
|
+
submit: "Send reset link"
|
|
380
268
|
},
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
269
|
+
sent: {
|
|
270
|
+
action: "Send another email",
|
|
271
|
+
description: "We sent a reset link to {{email}}.",
|
|
272
|
+
helper: "If you don't see it, check spam or try again.",
|
|
273
|
+
title: "Check your email"
|
|
384
274
|
},
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
275
|
+
title: "Reset your password"
|
|
276
|
+
},
|
|
277
|
+
verifyEmail: {
|
|
278
|
+
actions: {
|
|
279
|
+
continue: "Continue",
|
|
280
|
+
return: "Back to login"
|
|
388
281
|
},
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
282
|
+
errors: {
|
|
283
|
+
alreadyVerified: "This email address is already verified.",
|
|
284
|
+
expired: "This verification link has expired.",
|
|
285
|
+
invalid: "Verification link is invalid or expired.",
|
|
286
|
+
missingToken: "Verification link is missing or invalid."
|
|
287
|
+
},
|
|
288
|
+
status: {
|
|
289
|
+
success: "Email verified. You can continue.",
|
|
290
|
+
verifying: "Verifying...",
|
|
291
|
+
verifyingButton: "Verifying"
|
|
292
|
+
},
|
|
293
|
+
subtitle: "Confirm your email address to continue.",
|
|
294
|
+
title: "Verify your email"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
common: {
|
|
298
|
+
actions: {
|
|
299
|
+
change: "Change",
|
|
300
|
+
clear: "Clear",
|
|
301
|
+
close: "Close",
|
|
302
|
+
copied: "Copied",
|
|
303
|
+
copy: "Copy",
|
|
304
|
+
pick: "Pick",
|
|
305
|
+
retry: "Retry"
|
|
306
|
+
},
|
|
307
|
+
boolean: {
|
|
308
|
+
no: "No",
|
|
309
|
+
yes: "Yes"
|
|
310
|
+
},
|
|
311
|
+
loading: "Loading...",
|
|
312
|
+
notAvailable: "N/A"
|
|
313
|
+
},
|
|
314
|
+
dashboard: {
|
|
315
|
+
actions: {
|
|
316
|
+
openList: "Open list",
|
|
317
|
+
openTool: "Open tool"
|
|
318
|
+
},
|
|
319
|
+
subtitle: "Overview of the Work context.",
|
|
320
|
+
title: "Dashboard"
|
|
321
|
+
},
|
|
322
|
+
detail: { notFound: "Not found" },
|
|
323
|
+
emptyState: {
|
|
324
|
+
listEmpty: {
|
|
325
|
+
description: "There are no records to display.",
|
|
326
|
+
title: "No results"
|
|
327
|
+
},
|
|
328
|
+
listEmptyFiltered: {
|
|
329
|
+
actions: { reset: "Reset filters" },
|
|
330
|
+
description: "No results match the current filters."
|
|
331
|
+
}
|
|
332
|
+
},
|
|
333
|
+
filters: {
|
|
334
|
+
actions: { filterBy: "Filter by {{label}}" },
|
|
335
|
+
all: "All {{label}}",
|
|
336
|
+
allFilters: "All filters",
|
|
337
|
+
allFiltersWithCount_one: "All filters ({{count}})",
|
|
338
|
+
allFiltersWithCount_other: "All filters ({{count}})",
|
|
339
|
+
boolean: {
|
|
340
|
+
no: "No",
|
|
341
|
+
yes: "Yes"
|
|
342
|
+
},
|
|
343
|
+
placeholders: {
|
|
344
|
+
search: "Search {{label}}",
|
|
345
|
+
unresolved: "Unresolved ID"
|
|
346
|
+
},
|
|
347
|
+
sections: { default: "Filters" }
|
|
348
|
+
},
|
|
349
|
+
flags: {
|
|
350
|
+
agentManaged: {
|
|
351
|
+
agentManaged: "Agent managed",
|
|
352
|
+
userManaged: "User managed"
|
|
353
|
+
},
|
|
354
|
+
capability: {
|
|
355
|
+
allowed: "Allowed",
|
|
356
|
+
denied: "Denied"
|
|
357
|
+
},
|
|
358
|
+
default: {
|
|
359
|
+
default: "Default",
|
|
360
|
+
notDefault: "Not default"
|
|
361
|
+
},
|
|
362
|
+
deployedProduction: {
|
|
363
|
+
deployed: "Deployed",
|
|
364
|
+
notDeployed: "Not deployed"
|
|
365
|
+
},
|
|
366
|
+
enabled: {
|
|
367
|
+
disabled: "Disabled",
|
|
368
|
+
enabled: "Enabled"
|
|
369
|
+
},
|
|
370
|
+
encrypted: {
|
|
371
|
+
encrypted: "Encrypted",
|
|
372
|
+
notEncrypted: "Not encrypted"
|
|
373
|
+
},
|
|
374
|
+
failure: {
|
|
375
|
+
failed: "Failed",
|
|
376
|
+
ok: "OK"
|
|
377
|
+
},
|
|
378
|
+
forced: {
|
|
379
|
+
forced: "Forced",
|
|
380
|
+
normal: "Normal"
|
|
381
|
+
},
|
|
382
|
+
locked: {
|
|
383
|
+
locked: "Locked",
|
|
384
|
+
unlocked: "Unlocked"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
format: {
|
|
388
|
+
currency: "{{value, currency}}",
|
|
389
|
+
number: "{{value, number}}",
|
|
390
|
+
percent: "{{value, percent}}"
|
|
391
|
+
},
|
|
392
|
+
history: "",
|
|
393
|
+
list: {
|
|
394
|
+
actions: {
|
|
395
|
+
refresh: "Refresh",
|
|
396
|
+
retry: "Retry"
|
|
397
|
+
},
|
|
398
|
+
errors: {
|
|
399
|
+
tableFailed: "The table failed to load.",
|
|
400
|
+
title: "Table error"
|
|
401
|
+
},
|
|
402
|
+
loadMore: {
|
|
403
|
+
end: "End of results",
|
|
404
|
+
loading: "Loading more…",
|
|
405
|
+
more: "More results available"
|
|
406
|
+
},
|
|
407
|
+
showing: "Showing {{shown, number}} of {{total, number}}",
|
|
408
|
+
title: ""
|
|
409
|
+
},
|
|
410
|
+
overview: "",
|
|
411
|
+
picker: {
|
|
412
|
+
errors: { loadFailed: "Failed to load." },
|
|
413
|
+
searchPlaceholder: { default: "Search..." },
|
|
414
|
+
searchRequired: "Enter an ID to search.",
|
|
415
|
+
title: "Select an ID",
|
|
416
|
+
unavailable: "Picker not available for {{entity}}."
|
|
417
|
+
},
|
|
418
|
+
relations: {
|
|
419
|
+
labelWithCount_one: "{{label}} ({{count}})",
|
|
420
|
+
labelWithCount_other: "{{label}} ({{count}})",
|
|
421
|
+
menu: { label: "Relations" },
|
|
422
|
+
viewList: "View list"
|
|
423
|
+
},
|
|
424
|
+
review: { status: {
|
|
425
|
+
approved: "Approved",
|
|
426
|
+
changesRequested: "Changes requested",
|
|
427
|
+
pending: "Pending",
|
|
428
|
+
unknown: "Unknown"
|
|
429
|
+
} },
|
|
430
|
+
sidebar: {
|
|
431
|
+
actions: {
|
|
432
|
+
pin: "Pin",
|
|
433
|
+
reorder: "Reorder",
|
|
434
|
+
unpin: "Unpin"
|
|
435
|
+
},
|
|
436
|
+
items: { dashboard: "Dashboard" },
|
|
437
|
+
profile: {
|
|
438
|
+
actions: { signOut: "Sign out" },
|
|
439
|
+
menuAriaLabel: "Open profile menu",
|
|
440
|
+
title: "Profile",
|
|
441
|
+
unknownUser: "Unknown user"
|
|
442
|
+
},
|
|
443
|
+
search: { placeholder: "Search…" },
|
|
444
|
+
sections: { pinned: "Pinned" }
|
|
445
|
+
},
|
|
446
|
+
tools: { output: "Output" }
|
|
447
|
+
}, qe = {
|
|
448
|
+
actions: {
|
|
449
|
+
form: {
|
|
450
|
+
cancel: "Annuler",
|
|
451
|
+
errors: {
|
|
452
|
+
invalidJson: "{{label}} doit être un JSON valide.",
|
|
453
|
+
invalidJsonArray: "{{label}} doit être un tableau JSON valide.",
|
|
454
|
+
invalidJsonObject: "{{label}} doit être un objet JSON valide.",
|
|
455
|
+
invalidNumber: "{{label}} doit être un nombre valide.",
|
|
456
|
+
invalidPayload: "La charge utile soumise est invalide.",
|
|
457
|
+
required: "{{label}} est requis."
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
view: "Voir"
|
|
461
|
+
},
|
|
462
|
+
auth: {
|
|
463
|
+
acceptInvitation: {
|
|
464
|
+
actions: { backToLogin: "Retour à la connexion" },
|
|
465
|
+
errors: {
|
|
466
|
+
alreadyAccepted: "Cette invitation a déjà été acceptée.",
|
|
467
|
+
default: "Impossible d'accepter l'invitation.",
|
|
468
|
+
emailMismatch: "Cette invitation a été envoyée à une autre adresse email.",
|
|
469
|
+
expired: "Le lien d'invitation a expiré.",
|
|
470
|
+
invalidToken: "Le lien d'invitation est invalide.",
|
|
471
|
+
missingToken: "Le lien d'invitation est manquant ou invalide.",
|
|
472
|
+
passwordMismatch: "Le mot de passe et sa confirmation ne correspondent pas.",
|
|
473
|
+
passwordPolicyViolation: "Votre mot de passe ne respecte pas la politique de sécurité.",
|
|
474
|
+
rateLimited: "Trop de tentatives. Veuillez réessayer plus tard."
|
|
392
475
|
},
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
476
|
+
form: {
|
|
477
|
+
confirmLabel: "Confirmer le mot de passe",
|
|
478
|
+
confirmPlaceholder: "Confirmez votre mot de passe",
|
|
479
|
+
passwordLabel: "Mot de passe",
|
|
480
|
+
passwordPlaceholder: "Créez un mot de passe",
|
|
481
|
+
submit: "Accepter l'invitation"
|
|
482
|
+
},
|
|
483
|
+
mfaSubtitle: "Entrez le code de vérification pour continuer.",
|
|
484
|
+
mfaTitle: "Vérifiez votre identité",
|
|
485
|
+
status: {
|
|
486
|
+
success: "Invitation acceptée.",
|
|
487
|
+
workingButton: "Traitement..."
|
|
488
|
+
},
|
|
489
|
+
subtitle: "Créez votre compte pour rejoindre.",
|
|
490
|
+
title: "Accepter l'invitation"
|
|
491
|
+
},
|
|
492
|
+
emailCapture: {
|
|
493
|
+
continue: "Continuer",
|
|
494
|
+
description: "Entrez votre email professionnel pour continuer.",
|
|
495
|
+
emailLabel: "Email professionnel",
|
|
496
|
+
emailPlaceholder: "vous@entreprise.com",
|
|
497
|
+
forgotPassword: "Mot de passe oublié ?"
|
|
498
|
+
},
|
|
499
|
+
loginFlow: {
|
|
500
|
+
errors: {
|
|
501
|
+
accountLocked: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
502
|
+
emailRequired: "Entrez une adresse email pour continuer.",
|
|
503
|
+
invalidCredentials: "Email ou mot de passe incorrect.",
|
|
504
|
+
invalidEmail: "Entrez une adresse email valide.",
|
|
505
|
+
passkeyUnavailable: "Les passkeys ne sont pas disponibles.",
|
|
506
|
+
rateLimited: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
507
|
+
tryAgain: "Une erreur est survenue. Veuillez réessayer."
|
|
508
|
+
},
|
|
509
|
+
methods: { title: "Choisissez une méthode de connexion" },
|
|
510
|
+
passkey: {
|
|
511
|
+
description: "Utilisez la passkey associée à {{email}}.",
|
|
512
|
+
title: "Utiliser une passkey"
|
|
396
513
|
},
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
514
|
+
subtitle: {
|
|
515
|
+
default: "Choisissez une méthode de connexion pour continuer.",
|
|
516
|
+
mfa: "Entrez le code de vérification pour continuer."
|
|
400
517
|
},
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
518
|
+
title: {
|
|
519
|
+
default: "Se connecter",
|
|
520
|
+
mfa: "Authentification à deux facteurs"
|
|
404
521
|
}
|
|
405
522
|
},
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
523
|
+
methodChooser: {
|
|
524
|
+
actions: { back: "Retour" },
|
|
525
|
+
locked: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
526
|
+
lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
|
|
527
|
+
methods: {
|
|
528
|
+
other: "{{method}}",
|
|
529
|
+
passkey: "Passkey",
|
|
530
|
+
password: "Mot de passe"
|
|
531
|
+
},
|
|
532
|
+
prompt: "Choisissez comment vous connecter pour <strong>{{email}}</strong>."
|
|
410
533
|
},
|
|
411
|
-
|
|
412
|
-
list: {
|
|
534
|
+
mfa: {
|
|
413
535
|
actions: {
|
|
414
|
-
|
|
415
|
-
|
|
536
|
+
back: "Retour",
|
|
537
|
+
submit: "Vérifier"
|
|
416
538
|
},
|
|
417
539
|
errors: {
|
|
418
|
-
|
|
419
|
-
|
|
540
|
+
expired: "La session de vérification a expiré. Réessayez.",
|
|
541
|
+
invalidChallenge: "La session de vérification est invalide. Reprenez la connexion.",
|
|
542
|
+
invalidCode: "Code invalide. Réessayez.",
|
|
543
|
+
shortCode: "Entrez le code à 6 chiffres.",
|
|
544
|
+
tooManyAttempts: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
545
|
+
verificationFailed: "La vérification a échoué. Réessayez."
|
|
420
546
|
},
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
more: "More results available"
|
|
547
|
+
form: {
|
|
548
|
+
label: "Code de vérification",
|
|
549
|
+
placeholder: "123456"
|
|
425
550
|
},
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
unavailable: "Picker not available for {{entity}}."
|
|
436
|
-
},
|
|
437
|
-
relations: {
|
|
438
|
-
labelWithCount_one: "{{label}} ({{count}})",
|
|
439
|
-
labelWithCount_other: "{{label}} ({{count}})",
|
|
440
|
-
menu: { label: "Relations" },
|
|
441
|
-
viewList: "View list"
|
|
442
|
-
},
|
|
443
|
-
review: { status: {
|
|
444
|
-
approved: "Approved",
|
|
445
|
-
changesRequested: "Changes requested",
|
|
446
|
-
pending: "Pending",
|
|
447
|
-
unknown: "Unknown"
|
|
551
|
+
helper: {
|
|
552
|
+
default: "Entrez le code à 6 chiffres de votre authentificateur.",
|
|
553
|
+
withEmail: "Entrez le code à 6 chiffres envoyé à {{email}}."
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
oidc: { buttons: {
|
|
557
|
+
apple: "Continuer avec Apple",
|
|
558
|
+
generic: "Continuer avec un SSO",
|
|
559
|
+
google: "Continuer avec Google"
|
|
448
560
|
} },
|
|
449
|
-
|
|
561
|
+
passkey: {
|
|
450
562
|
actions: {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
563
|
+
showMethods: "Utiliser une autre méthode",
|
|
564
|
+
submit: "Continuer avec la passkey",
|
|
565
|
+
submitting: "En attente de la passkey..."
|
|
454
566
|
},
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
search: { placeholder: "Search…" },
|
|
463
|
-
sections: { pinned: "Pinned" }
|
|
464
|
-
},
|
|
465
|
-
tools: { output: "Output" }
|
|
466
|
-
} },
|
|
467
|
-
fr: { backofficeReact: {
|
|
468
|
-
actions: {
|
|
469
|
-
form: {
|
|
470
|
-
cancel: "Annuler",
|
|
471
|
-
errors: {
|
|
472
|
-
invalidJson: "{{label}} doit être un JSON valide.",
|
|
473
|
-
invalidJsonArray: "{{label}} doit être un tableau JSON valide.",
|
|
474
|
-
invalidJsonObject: "{{label}} doit être un objet JSON valide.",
|
|
475
|
-
invalidNumber: "{{label}} doit être un nombre valide.",
|
|
476
|
-
invalidPayload: "La charge utile soumise est invalide.",
|
|
477
|
-
required: "{{label}} est requis."
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
|
-
view: "Voir"
|
|
481
|
-
},
|
|
482
|
-
auth: {
|
|
483
|
-
acceptInvitation: {
|
|
484
|
-
actions: { backToLogin: "Retour à la connexion" },
|
|
485
|
-
errors: {
|
|
486
|
-
alreadyAccepted: "Cette invitation a déjà été acceptée.",
|
|
487
|
-
default: "Impossible d'accepter l'invitation.",
|
|
488
|
-
emailMismatch: "Cette invitation a été envoyée à une autre adresse email.",
|
|
489
|
-
expired: "Le lien d'invitation a expiré.",
|
|
490
|
-
invalidToken: "Le lien d'invitation est invalide.",
|
|
491
|
-
missingToken: "Le lien d'invitation est manquant ou invalide.",
|
|
492
|
-
passwordMismatch: "Le mot de passe et sa confirmation ne correspondent pas.",
|
|
493
|
-
passwordPolicyViolation: "Votre mot de passe ne respecte pas la politique de sécurité.",
|
|
494
|
-
rateLimited: "Trop de tentatives. Veuillez réessayer plus tard."
|
|
495
|
-
},
|
|
496
|
-
form: {
|
|
497
|
-
confirmLabel: "Confirmer le mot de passe",
|
|
498
|
-
confirmPlaceholder: "Confirmez votre mot de passe",
|
|
499
|
-
passwordLabel: "Mot de passe",
|
|
500
|
-
passwordPlaceholder: "Créez un mot de passe",
|
|
501
|
-
submit: "Accepter l'invitation"
|
|
502
|
-
},
|
|
503
|
-
mfaSubtitle: "Entrez le code de vérification pour continuer.",
|
|
504
|
-
mfaTitle: "Vérifiez votre identité",
|
|
505
|
-
status: {
|
|
506
|
-
success: "Invitation acceptée.",
|
|
507
|
-
workingButton: "Traitement..."
|
|
508
|
-
},
|
|
509
|
-
subtitle: "Créez votre compte pour rejoindre.",
|
|
510
|
-
title: "Accepter l'invitation"
|
|
511
|
-
},
|
|
512
|
-
emailCapture: {
|
|
513
|
-
continue: "Continuer",
|
|
514
|
-
description: "Entrez votre email professionnel pour continuer.",
|
|
515
|
-
emailLabel: "Email professionnel",
|
|
516
|
-
emailPlaceholder: "vous@entreprise.com",
|
|
517
|
-
forgotPassword: "Mot de passe oublié ?"
|
|
518
|
-
},
|
|
519
|
-
loginFlow: {
|
|
520
|
-
errors: {
|
|
521
|
-
accountLocked: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
522
|
-
emailRequired: "Entrez une adresse email pour continuer.",
|
|
523
|
-
invalidCredentials: "Email ou mot de passe incorrect.",
|
|
524
|
-
invalidEmail: "Entrez une adresse email valide.",
|
|
525
|
-
passkeyUnavailable: "Les passkeys ne sont pas disponibles.",
|
|
526
|
-
rateLimited: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
527
|
-
tryAgain: "Une erreur est survenue. Veuillez réessayer."
|
|
528
|
-
},
|
|
529
|
-
methods: { title: "Choisissez une méthode de connexion" },
|
|
530
|
-
passkey: {
|
|
531
|
-
description: "Utilisez la passkey associée à {{email}}.",
|
|
532
|
-
title: "Utiliser une passkey"
|
|
533
|
-
},
|
|
534
|
-
subtitle: {
|
|
535
|
-
default: "Choisissez une méthode de connexion pour continuer.",
|
|
536
|
-
mfa: "Entrez le code de vérification pour continuer."
|
|
537
|
-
},
|
|
538
|
-
title: {
|
|
539
|
-
default: "Se connecter",
|
|
540
|
-
mfa: "Authentification à deux facteurs"
|
|
541
|
-
}
|
|
542
|
-
},
|
|
543
|
-
methodChooser: {
|
|
544
|
-
actions: { back: "Retour" },
|
|
567
|
+
errors: {
|
|
568
|
+
challengeExpired: "La demande de passkey a expiré. Réessayez.",
|
|
569
|
+
emailRequired: "Entrez votre email pour continuer.",
|
|
570
|
+
failed: "Échec de la connexion par passkey.",
|
|
571
|
+
invalidAssertion: "La réponse de passkey est invalide. Réessayez.",
|
|
572
|
+
invalidChallenge: "La demande de passkey est invalide. Réessayez.",
|
|
573
|
+
invalidEmail: "Entrez une adresse email valide.",
|
|
545
574
|
locked: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
546
575
|
lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
passkey: "Passkey",
|
|
550
|
-
password: "Mot de passe"
|
|
551
|
-
},
|
|
552
|
-
prompt: "Choisissez comment vous connecter pour <strong>{{email}}</strong>."
|
|
576
|
+
notAvailable: "Les passkeys ne sont pas disponibles sur cet appareil.",
|
|
577
|
+
notFound: "Aucune passkey n'est associée à ce compte."
|
|
553
578
|
},
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
submit: "Vérifier"
|
|
558
|
-
},
|
|
559
|
-
errors: {
|
|
560
|
-
expired: "La session de vérification a expiré. Réessayez.",
|
|
561
|
-
invalidChallenge: "La session de vérification est invalide. Reprenez la connexion.",
|
|
562
|
-
invalidCode: "Code invalide. Réessayez.",
|
|
563
|
-
shortCode: "Entrez le code à 6 chiffres.",
|
|
564
|
-
tooManyAttempts: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
565
|
-
verificationFailed: "La vérification a échoué. Réessayez."
|
|
566
|
-
},
|
|
567
|
-
form: {
|
|
568
|
-
label: "Code de vérification",
|
|
569
|
-
placeholder: "123456"
|
|
570
|
-
},
|
|
571
|
-
helper: {
|
|
572
|
-
default: "Entrez le code à 6 chiffres de votre authentificateur.",
|
|
573
|
-
withEmail: "Entrez le code à 6 chiffres envoyé à {{email}}."
|
|
574
|
-
}
|
|
579
|
+
form: {
|
|
580
|
+
emailLabel: "Email",
|
|
581
|
+
emailPlaceholder: "vous@entreprise.com"
|
|
575
582
|
},
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
},
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
failed: "Échec de la connexion par passkey.",
|
|
591
|
-
invalidAssertion: "La réponse de passkey est invalide. Réessayez.",
|
|
592
|
-
invalidChallenge: "La demande de passkey est invalide. Réessayez.",
|
|
593
|
-
invalidEmail: "Entrez une adresse email valide.",
|
|
594
|
-
locked: "Trop de tentatives. Veuillez réessayer plus tard.",
|
|
595
|
-
lockedWithTime: "Trop de tentatives. Veuillez réessayer à {{time}}.",
|
|
596
|
-
notAvailable: "Les passkeys ne sont pas disponibles sur cet appareil.",
|
|
597
|
-
notFound: "Aucune passkey n'est associée à ce compte."
|
|
598
|
-
},
|
|
599
|
-
form: {
|
|
600
|
-
emailLabel: "Email",
|
|
601
|
-
emailPlaceholder: "vous@entreprise.com"
|
|
602
|
-
},
|
|
603
|
-
helper: "Utilisez une passkey à la place de votre mot de passe."
|
|
583
|
+
helper: "Utilisez une passkey à la place de votre mot de passe."
|
|
584
|
+
},
|
|
585
|
+
passwordLogin: {
|
|
586
|
+
forgotPassword: "Mot de passe oublié ?",
|
|
587
|
+
title: "Se connecter"
|
|
588
|
+
},
|
|
589
|
+
passwordResetComplete: {
|
|
590
|
+
errors: {
|
|
591
|
+
expired: "Ce lien de réinitialisation a expiré.",
|
|
592
|
+
invalid: "Le lien de réinitialisation est invalide ou expiré.",
|
|
593
|
+
minLength: "Le mot de passe doit contenir au moins {{minLength}} caractères.",
|
|
594
|
+
mismatch: "Les mots de passe ne correspondent pas.",
|
|
595
|
+
missingToken: "Le lien de réinitialisation est manquant ou invalide.",
|
|
596
|
+
policyViolation: "Votre nouveau mot de passe ne respecte pas la politique de sécurité."
|
|
604
597
|
},
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
598
|
+
form: {
|
|
599
|
+
confirmLabel: "Confirmer le mot de passe",
|
|
600
|
+
confirmPlaceholder: "Saisissez à nouveau votre mot de passe",
|
|
601
|
+
description: "Entrez un nouveau mot de passe pour votre compte.",
|
|
602
|
+
passwordLabel: "Mot de passe",
|
|
603
|
+
passwordPlaceholder: "Entrez un nouveau mot de passe",
|
|
604
|
+
submit: "Mettre à jour le mot de passe",
|
|
605
|
+
title: "Nouveau mot de passe"
|
|
606
|
+
},
|
|
607
|
+
subtitle: "Choisissez un mot de passe robuste pour sécuriser votre compte.",
|
|
608
|
+
success: {
|
|
609
|
+
action: "Retour à la connexion",
|
|
610
|
+
description: "Votre mot de passe a été modifié.",
|
|
611
|
+
helper: "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
|
|
612
|
+
title: "Mot de passe mis à jour"
|
|
613
|
+
},
|
|
614
|
+
title: "Définir un nouveau mot de passe"
|
|
615
|
+
},
|
|
616
|
+
passwordResetRequest: {
|
|
617
|
+
errors: {
|
|
618
|
+
emailRequired: "Entrez une adresse email.",
|
|
619
|
+
invalidEmail: "Veuillez saisir une adresse email valide.",
|
|
620
|
+
rateLimited: "Trop de demandes. Veuillez patienter puis réessayer.",
|
|
621
|
+
startFailed: "Impossible de démarrer la réinitialisation."
|
|
608
622
|
},
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
mismatch: "Les mots de passe ne correspondent pas.",
|
|
615
|
-
missingToken: "Le lien de réinitialisation est manquant ou invalide.",
|
|
616
|
-
policyViolation: "Votre nouveau mot de passe ne respecte pas la politique de sécurité."
|
|
617
|
-
},
|
|
618
|
-
form: {
|
|
619
|
-
confirmLabel: "Confirmer le mot de passe",
|
|
620
|
-
confirmPlaceholder: "Saisissez à nouveau votre mot de passe",
|
|
621
|
-
description: "Entrez un nouveau mot de passe pour votre compte.",
|
|
622
|
-
passwordLabel: "Mot de passe",
|
|
623
|
-
passwordPlaceholder: "Entrez un nouveau mot de passe",
|
|
624
|
-
submit: "Mettre à jour le mot de passe",
|
|
625
|
-
title: "Nouveau mot de passe"
|
|
626
|
-
},
|
|
627
|
-
subtitle: "Choisissez un mot de passe robuste pour sécuriser votre compte.",
|
|
628
|
-
success: {
|
|
629
|
-
action: "Retour à la connexion",
|
|
630
|
-
description: "Votre mot de passe a été modifié.",
|
|
631
|
-
helper: "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
|
|
632
|
-
title: "Mot de passe mis à jour"
|
|
633
|
-
},
|
|
634
|
-
title: "Définir un nouveau mot de passe"
|
|
623
|
+
form: {
|
|
624
|
+
description: "Entrez l'email de votre compte.",
|
|
625
|
+
emailLabel: "Email",
|
|
626
|
+
emailPlaceholder: "vous@entreprise.com",
|
|
627
|
+
submit: "Envoyer le lien de réinitialisation"
|
|
635
628
|
},
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
startFailed: "Impossible de démarrer la réinitialisation."
|
|
642
|
-
},
|
|
643
|
-
form: {
|
|
644
|
-
description: "Entrez l'email de votre compte.",
|
|
645
|
-
emailLabel: "Email",
|
|
646
|
-
emailPlaceholder: "vous@entreprise.com",
|
|
647
|
-
submit: "Envoyer le lien de réinitialisation"
|
|
648
|
-
},
|
|
649
|
-
sent: {
|
|
650
|
-
action: "Envoyer un autre email",
|
|
651
|
-
description: "Nous avons envoyé un lien de réinitialisation à {{email}}.",
|
|
652
|
-
helper: "Si vous ne le voyez pas, vérifiez les spams ou réessayez.",
|
|
653
|
-
title: "Vérifiez votre email"
|
|
654
|
-
},
|
|
655
|
-
title: "Réinitialiser votre mot de passe"
|
|
629
|
+
sent: {
|
|
630
|
+
action: "Envoyer un autre email",
|
|
631
|
+
description: "Nous avons envoyé un lien de réinitialisation à {{email}}.",
|
|
632
|
+
helper: "Si vous ne le voyez pas, vérifiez les spams ou réessayez.",
|
|
633
|
+
title: "Vérifiez votre email"
|
|
656
634
|
},
|
|
657
|
-
|
|
658
|
-
actions: {
|
|
659
|
-
continue: "Continuer",
|
|
660
|
-
return: "Retour à la connexion"
|
|
661
|
-
},
|
|
662
|
-
errors: {
|
|
663
|
-
alreadyVerified: "Cette adresse email est déjà vérifiée.",
|
|
664
|
-
expired: "Ce lien de vérification a expiré.",
|
|
665
|
-
invalid: "Le lien de vérification est invalide ou expiré.",
|
|
666
|
-
missingToken: "Le lien de vérification est manquant ou invalide."
|
|
667
|
-
},
|
|
668
|
-
status: {
|
|
669
|
-
success: "Email vérifié. Vous pouvez continuer.",
|
|
670
|
-
verifying: "Vérification...",
|
|
671
|
-
verifyingButton: "Vérification"
|
|
672
|
-
},
|
|
673
|
-
subtitle: "Confirmez votre adresse email pour continuer.",
|
|
674
|
-
title: "Vérifier votre email"
|
|
675
|
-
}
|
|
635
|
+
title: "Réinitialiser votre mot de passe"
|
|
676
636
|
},
|
|
677
|
-
|
|
637
|
+
verifyEmail: {
|
|
678
638
|
actions: {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
close: "Fermer",
|
|
682
|
-
copied: "Copié",
|
|
683
|
-
copy: "Copier",
|
|
684
|
-
pick: "Choisir",
|
|
685
|
-
retry: "Réessayer"
|
|
686
|
-
},
|
|
687
|
-
boolean: {
|
|
688
|
-
no: "Non",
|
|
689
|
-
yes: "Oui"
|
|
639
|
+
continue: "Continuer",
|
|
640
|
+
return: "Retour à la connexion"
|
|
690
641
|
},
|
|
691
|
-
|
|
692
|
-
|
|
642
|
+
errors: {
|
|
643
|
+
alreadyVerified: "Cette adresse email est déjà vérifiée.",
|
|
644
|
+
expired: "Ce lien de vérification a expiré.",
|
|
645
|
+
invalid: "Le lien de vérification est invalide ou expiré.",
|
|
646
|
+
missingToken: "Le lien de vérification est manquant ou invalide."
|
|
647
|
+
},
|
|
648
|
+
status: {
|
|
649
|
+
success: "Email vérifié. Vous pouvez continuer.",
|
|
650
|
+
verifying: "Vérification...",
|
|
651
|
+
verifyingButton: "Vérification"
|
|
652
|
+
},
|
|
653
|
+
subtitle: "Confirmez votre adresse email pour continuer.",
|
|
654
|
+
title: "Vérifier votre email"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
common: {
|
|
658
|
+
actions: {
|
|
659
|
+
change: "Modifier",
|
|
660
|
+
clear: "Effacer",
|
|
661
|
+
close: "Fermer",
|
|
662
|
+
copied: "Copié",
|
|
663
|
+
copy: "Copier",
|
|
664
|
+
pick: "Choisir",
|
|
665
|
+
retry: "Réessayer"
|
|
693
666
|
},
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
openTool: "Ouvrir l'outil"
|
|
698
|
-
},
|
|
699
|
-
subtitle: "Vue d'ensemble du contexte Work.",
|
|
700
|
-
title: "Tableau de bord"
|
|
701
|
-
},
|
|
702
|
-
detail: { notFound: "Introuvable" },
|
|
703
|
-
emptyState: {
|
|
704
|
-
listEmpty: {
|
|
705
|
-
description: "Aucun enregistrement à afficher.",
|
|
706
|
-
title: "Aucun résultat"
|
|
707
|
-
},
|
|
708
|
-
listEmptyFiltered: {
|
|
709
|
-
actions: { reset: "Réinitialiser les filtres" },
|
|
710
|
-
description: "Aucun résultat ne correspond aux filtres actuels."
|
|
711
|
-
}
|
|
667
|
+
boolean: {
|
|
668
|
+
no: "Non",
|
|
669
|
+
yes: "Oui"
|
|
712
670
|
},
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
boolean: {
|
|
721
|
-
no: "Non",
|
|
722
|
-
yes: "Oui"
|
|
723
|
-
},
|
|
724
|
-
placeholders: {
|
|
725
|
-
search: "Rechercher {{label}}",
|
|
726
|
-
unresolved: "ID introuvable"
|
|
727
|
-
},
|
|
728
|
-
sections: { default: "Filtres" }
|
|
671
|
+
loading: "Chargement...",
|
|
672
|
+
notAvailable: "N/D"
|
|
673
|
+
},
|
|
674
|
+
dashboard: {
|
|
675
|
+
actions: {
|
|
676
|
+
openList: "Ouvrir la liste",
|
|
677
|
+
openTool: "Ouvrir l'outil"
|
|
729
678
|
},
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
},
|
|
739
|
-
default: {
|
|
740
|
-
default: "Par défaut",
|
|
741
|
-
notDefault: "Non par défaut"
|
|
742
|
-
},
|
|
743
|
-
deployedProduction: {
|
|
744
|
-
deployed: "Déployé",
|
|
745
|
-
notDeployed: "Non déployé"
|
|
746
|
-
},
|
|
747
|
-
enabled: {
|
|
748
|
-
disabled: "Désactivé",
|
|
749
|
-
enabled: "Activé"
|
|
750
|
-
},
|
|
751
|
-
encrypted: {
|
|
752
|
-
encrypted: "Chiffré",
|
|
753
|
-
notEncrypted: "Non chiffré"
|
|
754
|
-
},
|
|
755
|
-
failure: {
|
|
756
|
-
failed: "Échoué",
|
|
757
|
-
ok: "OK"
|
|
758
|
-
},
|
|
759
|
-
forced: {
|
|
760
|
-
forced: "Forcé",
|
|
761
|
-
normal: "Normal"
|
|
762
|
-
},
|
|
763
|
-
locked: {
|
|
764
|
-
locked: "Verrouillé",
|
|
765
|
-
unlocked: "Déverrouillé"
|
|
766
|
-
}
|
|
679
|
+
subtitle: "Vue d'ensemble du contexte Work.",
|
|
680
|
+
title: "Tableau de bord"
|
|
681
|
+
},
|
|
682
|
+
detail: { notFound: "Introuvable" },
|
|
683
|
+
emptyState: {
|
|
684
|
+
listEmpty: {
|
|
685
|
+
description: "Aucun enregistrement à afficher.",
|
|
686
|
+
title: "Aucun résultat"
|
|
767
687
|
},
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
688
|
+
listEmptyFiltered: {
|
|
689
|
+
actions: { reset: "Réinitialiser les filtres" },
|
|
690
|
+
description: "Aucun résultat ne correspond aux filtres actuels."
|
|
691
|
+
}
|
|
692
|
+
},
|
|
693
|
+
filters: {
|
|
694
|
+
actions: { filterBy: "Filtrer par {{label}}" },
|
|
695
|
+
all: "Tous {{label}}",
|
|
696
|
+
allFilters: "Tous les filtres",
|
|
697
|
+
allFiltersWithCount_one: "Tous les filtres ({{count}})",
|
|
698
|
+
allFiltersWithCount_many: "Tous les filtres ({{count}})",
|
|
699
|
+
allFiltersWithCount_other: "Tous les filtres ({{count}})",
|
|
700
|
+
boolean: {
|
|
701
|
+
no: "Non",
|
|
702
|
+
yes: "Oui"
|
|
772
703
|
},
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
}
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
704
|
+
placeholders: {
|
|
705
|
+
search: "Rechercher {{label}}",
|
|
706
|
+
unresolved: "ID introuvable"
|
|
707
|
+
},
|
|
708
|
+
sections: { default: "Filtres" }
|
|
709
|
+
},
|
|
710
|
+
flags: {
|
|
711
|
+
agentManaged: {
|
|
712
|
+
agentManaged: "Géré par un agent",
|
|
713
|
+
userManaged: "Géré par un utilisateur"
|
|
714
|
+
},
|
|
715
|
+
capability: {
|
|
716
|
+
allowed: "Autorisé",
|
|
717
|
+
denied: "Refusé"
|
|
718
|
+
},
|
|
719
|
+
default: {
|
|
720
|
+
default: "Par défaut",
|
|
721
|
+
notDefault: "Non par défaut"
|
|
722
|
+
},
|
|
723
|
+
deployedProduction: {
|
|
724
|
+
deployed: "Déployé",
|
|
725
|
+
notDeployed: "Non déployé"
|
|
726
|
+
},
|
|
727
|
+
enabled: {
|
|
728
|
+
disabled: "Désactivé",
|
|
729
|
+
enabled: "Activé"
|
|
730
|
+
},
|
|
731
|
+
encrypted: {
|
|
732
|
+
encrypted: "Chiffré",
|
|
733
|
+
notEncrypted: "Non chiffré"
|
|
734
|
+
},
|
|
735
|
+
failure: {
|
|
736
|
+
failed: "Échoué",
|
|
737
|
+
ok: "OK"
|
|
738
|
+
},
|
|
739
|
+
forced: {
|
|
740
|
+
forced: "Forcé",
|
|
741
|
+
normal: "Normal"
|
|
742
|
+
},
|
|
743
|
+
locked: {
|
|
744
|
+
locked: "Verrouillé",
|
|
745
|
+
unlocked: "Déverrouillé"
|
|
746
|
+
}
|
|
747
|
+
},
|
|
748
|
+
format: {
|
|
749
|
+
currency: "{{value, currency}}",
|
|
750
|
+
number: "{{value, number}}",
|
|
751
|
+
percent: "{{value, percent}}"
|
|
752
|
+
},
|
|
753
|
+
history: "",
|
|
754
|
+
list: {
|
|
755
|
+
actions: {
|
|
756
|
+
refresh: "Actualiser",
|
|
757
|
+
retry: "Réessayer"
|
|
758
|
+
},
|
|
759
|
+
errors: {
|
|
760
|
+
tableFailed: "Le tableau n'a pas pu se charger.",
|
|
761
|
+
title: "Erreur du tableau"
|
|
762
|
+
},
|
|
763
|
+
loadMore: {
|
|
764
|
+
end: "Fin des résultats",
|
|
765
|
+
loading: "Chargement…",
|
|
766
|
+
more: "Plus de résultats disponibles"
|
|
767
|
+
},
|
|
768
|
+
showing: "Affichage de {{shown, number}} sur {{total, number}}",
|
|
769
|
+
title: ""
|
|
770
|
+
},
|
|
771
|
+
overview: "",
|
|
772
|
+
picker: {
|
|
773
|
+
errors: { loadFailed: "Échec du chargement." },
|
|
774
|
+
searchPlaceholder: { default: "Rechercher..." },
|
|
775
|
+
searchRequired: "Saisissez un ID pour rechercher.",
|
|
776
|
+
title: "Sélectionner un ID",
|
|
777
|
+
unavailable: "Sélecteur indisponible pour {{entity}}."
|
|
778
|
+
},
|
|
779
|
+
relations: {
|
|
780
|
+
labelWithCount_one: "{{label}} ({{count}})",
|
|
781
|
+
labelWithCount_many: "{{label}} ({{count}})",
|
|
782
|
+
labelWithCount_other: "{{label}} ({{count}})",
|
|
783
|
+
menu: { label: "Relations" },
|
|
784
|
+
viewList: "Voir la liste"
|
|
785
|
+
},
|
|
786
|
+
review: { status: {
|
|
787
|
+
approved: "Approuvé",
|
|
788
|
+
changesRequested: "Modifications demandées",
|
|
789
|
+
pending: "En attente",
|
|
790
|
+
unknown: "Inconnu"
|
|
791
|
+
} },
|
|
792
|
+
sidebar: {
|
|
793
|
+
actions: {
|
|
794
|
+
pin: "Épingler",
|
|
795
|
+
reorder: "Réordonner",
|
|
796
|
+
unpin: "Désépingler"
|
|
827
797
|
},
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
798
|
+
items: { dashboard: "Tableau de bord" },
|
|
799
|
+
profile: {
|
|
800
|
+
actions: { signOut: "Se déconnecter" },
|
|
801
|
+
menuAriaLabel: "Ouvrir le menu profil",
|
|
802
|
+
title: "Profil",
|
|
803
|
+
unknownUser: "Utilisateur inconnu"
|
|
804
|
+
},
|
|
805
|
+
search: { placeholder: "Rechercher..." },
|
|
806
|
+
sections: { pinned: "Épinglés" }
|
|
807
|
+
},
|
|
808
|
+
tools: { output: "Résultat" }
|
|
809
|
+
}, F = (e) => typeof e == "object" && !!e && !Array.isArray(e), Je = (e) => F(e) ? e : {};
|
|
810
|
+
function Ye(...e) {
|
|
811
|
+
let t = {};
|
|
812
|
+
return e.forEach((e) => {
|
|
813
|
+
Object.entries(e).forEach(([e, n]) => {
|
|
814
|
+
let r = t[e];
|
|
815
|
+
if (F(r) && F(n)) {
|
|
816
|
+
t[e] = Ye(Je(r), Je(n));
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
t[e] = n;
|
|
820
|
+
});
|
|
821
|
+
}), t;
|
|
822
|
+
}
|
|
823
|
+
//#endregion
|
|
824
|
+
//#region src/i18n/resources.ts
|
|
825
|
+
var Xe = {
|
|
826
|
+
en: { backofficeReact: Ke },
|
|
827
|
+
fr: { backofficeReact: qe }
|
|
828
|
+
}, Ze = (e) => typeof e == "object" && !!e, I = (e) => Ze(e) ? e : {};
|
|
829
|
+
function L(e = {}) {
|
|
830
|
+
let t = {}, n = Xe;
|
|
831
|
+
return new Set([...Object.keys(n), ...Object.keys(e)]).forEach((r) => {
|
|
832
|
+
let i = I(n[r]), a = I(e[r]);
|
|
833
|
+
t[r] = {
|
|
834
|
+
...i,
|
|
835
|
+
...a,
|
|
836
|
+
backofficeReact: Ye(I(i.backofficeReact), I(a.backofficeReact))
|
|
837
|
+
};
|
|
838
|
+
}), t;
|
|
839
|
+
}
|
|
840
|
+
//#endregion
|
|
841
|
+
//#region src/relay/RelayProvider.tsx
|
|
842
|
+
var { RelayEnvironmentProvider: Qe } = O, $e = ({ children: e }) => /* @__PURE__ */ k(Qe, {
|
|
831
843
|
environment: t(),
|
|
832
844
|
children: e
|
|
833
|
-
}), { loadQuery:
|
|
845
|
+
}), { loadQuery: R, usePreloadedQuery: et } = O, z = D("WrapperPage", async () => ({ default: (await import("@plumile/ui")).WrapperPage })), tt = D("BackofficeLayoutPage", async () => import("./BackofficeLayoutPage-j3VUX3Tu.js")), nt = D("BackofficeEntityListPage", async () => import("./BackofficeEntityListPage-C8Ucmc_E.js")), rt = D("BackofficeEntityDetailPage", async () => import("./BackofficeEntityDetailPage-DPFXbJxC.js")), it = D("BackofficeEntityDetailLayoutPage", async () => import("./BackofficeEntityDetailLayoutPage-DXjRqvcZ.js")), at = D("BackofficeEntityDetailUnknownPageRedirect", async () => import("./BackofficeEntityDetailUnknownPageRedirect-DRWTeox-.js")), ot = D("BackofficeDashboardPage", async () => import("./BackofficeDashboardPage-YWvoQODn.js")), st = D("BackofficeLoginPage", async () => import("./BackofficeLoginPage-BkQHm0x6.js")), ct = D("BackofficePasswordResetRequestPage", async () => import("./BackofficePasswordResetRequestPage-BJOrQXcy.js")), lt = D("BackofficePasswordResetCompletePage", async () => import("./BackofficePasswordResetCompletePage-CF_0t3Nq.js")), ut = D("BackofficeVerifyEmailPage", async () => import("./BackofficeVerifyEmailPage-C81LlsNM.js")), dt = D("BackofficeAcceptInvitationPage", async () => import("./BackofficeAcceptInvitationPage-D0dZnrV7.js")), ft = (e) => {
|
|
834
846
|
let t = e.trim();
|
|
835
847
|
return t === "" || t === "/" ? "" : t.replace(/^\/+|\/+$/g, "");
|
|
836
|
-
},
|
|
848
|
+
}, pt = (e) => {
|
|
837
849
|
let t = e.trim();
|
|
838
850
|
return t === "" ? "/" : `/${t}`.replace(/\/+/g, "/");
|
|
839
|
-
},
|
|
851
|
+
}, B = (e, t) => {
|
|
840
852
|
let n = t.replace(/^\/+|\/+$/g, "");
|
|
841
853
|
return e === "" ? n : n === "" ? e : `${e}/${n}`;
|
|
842
|
-
},
|
|
843
|
-
let n =
|
|
854
|
+
}, mt = (e, t) => pt(B(e, t)), ht = (e, t) => {
|
|
855
|
+
let n = pt(e), r = t === "" ? "" : `/${t}`;
|
|
844
856
|
return r !== "" && n.startsWith(r) ? n.slice(r.length).replace(/^\/+/, "") : n.replace(/^\/+/, "");
|
|
845
|
-
},
|
|
857
|
+
}, gt = (e, t) => {
|
|
846
858
|
if (e?.routes == null) return null;
|
|
847
859
|
for (let n = e.routes.length - 1; n >= 0; --n) {
|
|
848
860
|
let r = e.routes[n];
|
|
@@ -852,7 +864,7 @@ var qe = {
|
|
|
852
864
|
}
|
|
853
865
|
}
|
|
854
866
|
return null;
|
|
855
|
-
},
|
|
867
|
+
}, _t = (e) => {
|
|
856
868
|
let t = new URLSearchParams();
|
|
857
869
|
return Object.entries(e).forEach(([e, n]) => {
|
|
858
870
|
if (n != null) {
|
|
@@ -865,38 +877,38 @@ var qe = {
|
|
|
865
877
|
t.set(e, String(n));
|
|
866
878
|
}
|
|
867
879
|
}), t;
|
|
868
|
-
},
|
|
869
|
-
function
|
|
870
|
-
let { basePath: t, entityManifest: n, entityRegistry: r, sidebar: i, auth: a, dashboard: o } = e, s =
|
|
880
|
+
}, V = Oe;
|
|
881
|
+
function vt(e) {
|
|
882
|
+
let { basePath: t, entityManifest: n, entityRegistry: r, sidebar: i, auth: a, dashboard: o } = e, s = ft(t), u = B(s, "login"), d = B(s, "login/reset"), f = B(s, "login/reset/complete"), p = B(s, "verify-email"), m = B(s, "accept-invitation"), h = mt(s, "login"), g = l(c(n, i)), _ = /* @__PURE__ */ new Map();
|
|
871
883
|
g.forEach((e, t) => {
|
|
872
884
|
_.set(t, e.groupId);
|
|
873
885
|
});
|
|
874
886
|
let v = /* @__PURE__ */ new WeakMap(), y = i?.permissionsQuery, ee = async ({ context: e }) => {
|
|
875
887
|
let t = await a.session.load();
|
|
876
888
|
return {
|
|
877
|
-
permissionsQuery: y == null ? null :
|
|
878
|
-
authStatusQuery: t.authStatusQuery == null ? null :
|
|
889
|
+
permissionsQuery: y == null ? null : R(e.relayEnvironment, y, {}),
|
|
890
|
+
authStatusQuery: t.authStatusQuery == null ? null : R(e.relayEnvironment, t.authStatusQuery, {}, { fetchPolicy: "network-only" })
|
|
879
891
|
};
|
|
880
|
-
}, te =
|
|
892
|
+
}, te = V({
|
|
881
893
|
path: "",
|
|
882
|
-
resourcePage:
|
|
894
|
+
resourcePage: ot,
|
|
883
895
|
prepare: async () => (o == null || await o.load(), null),
|
|
884
896
|
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
|
|
885
|
-
}),
|
|
886
|
-
let t = e.routes.list, n =
|
|
897
|
+
}), ne = Object.values(n).filter((e) => e.kind === "list-detail").map((e) => {
|
|
898
|
+
let t = e.routes.list, n = ht(t, s), i = [];
|
|
887
899
|
if (e.hasList) {
|
|
888
|
-
let t =
|
|
900
|
+
let t = V({
|
|
889
901
|
path: "",
|
|
890
|
-
resourcePage:
|
|
902
|
+
resourcePage: nt,
|
|
891
903
|
prepare: async ({ context: t, query: n }) => {
|
|
892
904
|
let { config: i } = await r.loadListEntity(e.id), { list: a, listUrlCodec: o, listDefaults: s } = i;
|
|
893
905
|
if (o == null || s == null) throw Error(`Backoffice entity ${e.id} does not expose a list configuration.`);
|
|
894
|
-
let c =
|
|
906
|
+
let c = _t(n), l = o.parse(c), { pageSize: u } = Ie, d = {
|
|
895
907
|
where: l.where,
|
|
896
908
|
sort: l.sort ?? s.sort,
|
|
897
909
|
count: u,
|
|
898
910
|
cursor: null
|
|
899
|
-
}, f = a.buildVariables == null ? d : a.buildVariables(d), p =
|
|
911
|
+
}, f = a.buildVariables == null ? d : a.buildVariables(d), p = R(t.relayEnvironment, a.query, f);
|
|
900
912
|
return {
|
|
901
913
|
entityId: e.id,
|
|
902
914
|
entityManifest: e,
|
|
@@ -916,11 +928,11 @@ function mt(e) {
|
|
|
916
928
|
});
|
|
917
929
|
v.set(t, e.id), i.push(t);
|
|
918
930
|
}
|
|
919
|
-
let a =
|
|
931
|
+
let a = V({
|
|
920
932
|
path: ":id",
|
|
921
|
-
resourcePage:
|
|
933
|
+
resourcePage: it,
|
|
922
934
|
prepare: async ({ context: t, variables: n }) => {
|
|
923
|
-
let { config: i } = await r.loadDetailLayoutEntity(e.id), a = String(n.id ?? ""), o = i.layoutPage.buildVariables == null ? { variables: { id: a } } : i.layoutPage.buildVariables({ id: a }), s =
|
|
935
|
+
let { config: i } = await r.loadDetailLayoutEntity(e.id), a = String(n.id ?? ""), o = i.layoutPage.buildVariables == null ? { variables: { id: a } } : i.layoutPage.buildVariables({ id: a }), s = R(t.relayEnvironment, i.layoutPage.query, o.variables);
|
|
924
936
|
return {
|
|
925
937
|
entityId: e.id,
|
|
926
938
|
entityManifest: e,
|
|
@@ -940,9 +952,9 @@ function mt(e) {
|
|
|
940
952
|
});
|
|
941
953
|
},
|
|
942
954
|
children: [
|
|
943
|
-
|
|
955
|
+
V({
|
|
944
956
|
path: "",
|
|
945
|
-
resourcePage:
|
|
957
|
+
resourcePage: z,
|
|
946
958
|
prepare: ({ variables: t }) => {
|
|
947
959
|
let n = String(t.id ?? "").trim();
|
|
948
960
|
return { redirectTo: n === "" ? null : e.routes.detailPage(n, e.defaultDetailPageId ?? "overview") };
|
|
@@ -950,14 +962,14 @@ function mt(e) {
|
|
|
950
962
|
render: ({ prepared: e }) => {
|
|
951
963
|
let t = e.redirectTo ?? null;
|
|
952
964
|
if (t == null) return null;
|
|
953
|
-
throw new
|
|
965
|
+
throw new we(t);
|
|
954
966
|
}
|
|
955
967
|
}),
|
|
956
|
-
...(e.detailPages ?? []).map((t) =>
|
|
968
|
+
...(e.detailPages ?? []).map((t) => V({
|
|
957
969
|
path: t.pathSegment,
|
|
958
|
-
resourcePage:
|
|
970
|
+
resourcePage: rt,
|
|
959
971
|
prepare: async ({ context: n, variables: i }) => {
|
|
960
|
-
let a = String(i.id ?? ""), o = await r.loadDetailPageEntity(e.id, t.id), s = o.config.page.buildVariables == null ? { variables: { id: a } } : o.config.page.buildVariables({ id: a }), c =
|
|
972
|
+
let a = String(i.id ?? ""), o = await r.loadDetailPageEntity(e.id, t.id), s = o.config.page.buildVariables == null ? { variables: { id: a } } : o.config.page.buildVariables({ id: a }), c = R(n.relayEnvironment, o.config.page.query, s.variables);
|
|
961
973
|
return {
|
|
962
974
|
entityId: e.id,
|
|
963
975
|
entityManifest: e,
|
|
@@ -980,9 +992,9 @@ function mt(e) {
|
|
|
980
992
|
});
|
|
981
993
|
}
|
|
982
994
|
})),
|
|
983
|
-
|
|
995
|
+
V({
|
|
984
996
|
path: ":pagePath",
|
|
985
|
-
resourcePage:
|
|
997
|
+
resourcePage: at,
|
|
986
998
|
prepare: async ({ variables: t }) => {
|
|
987
999
|
let n = await r.loadDetailLayoutEntity(e.id), i = String(t.id ?? ""), a = String(t.pagePath ?? "");
|
|
988
1000
|
return {
|
|
@@ -1004,14 +1016,14 @@ function mt(e) {
|
|
|
1004
1016
|
})
|
|
1005
1017
|
]
|
|
1006
1018
|
});
|
|
1007
|
-
return v.set(a, e.id), i.push(a),
|
|
1019
|
+
return v.set(a, e.id), i.push(a), V({
|
|
1008
1020
|
path: n,
|
|
1009
1021
|
children: i,
|
|
1010
|
-
resourcePage:
|
|
1022
|
+
resourcePage: z
|
|
1011
1023
|
});
|
|
1012
|
-
}),
|
|
1013
|
-
let n =
|
|
1014
|
-
path:
|
|
1024
|
+
}), re = Object.values(n).filter((e) => e.kind === "tool").map((t) => {
|
|
1025
|
+
let n = V({
|
|
1026
|
+
path: ht(t.routes.list, s),
|
|
1015
1027
|
resourcePage: e.toolsOperationPage ?? null,
|
|
1016
1028
|
prepare: async () => {
|
|
1017
1029
|
let e = await r.loadToolEntity(t.id);
|
|
@@ -1032,17 +1044,17 @@ function mt(e) {
|
|
|
1032
1044
|
}
|
|
1033
1045
|
});
|
|
1034
1046
|
return v.set(n, t.id), n;
|
|
1035
|
-
}),
|
|
1047
|
+
}), ie = V({
|
|
1036
1048
|
path: s,
|
|
1037
|
-
resourcePage:
|
|
1049
|
+
resourcePage: tt,
|
|
1038
1050
|
prepare: ee,
|
|
1039
1051
|
render: ({ children: e, prepared: t, route: n, Component: r }) => {
|
|
1040
1052
|
if (r == null) return null;
|
|
1041
|
-
let o = t, s =
|
|
1053
|
+
let o = t, s = gt(n, v), c = s == null ? null : _.get(s) ?? null, l = null, u = a.session.get()?.authStatusQuery ?? null;
|
|
1042
1054
|
if (u != null && o?.authStatusQuery != null) {
|
|
1043
|
-
l =
|
|
1055
|
+
l = et(u, o.authStatusQuery);
|
|
1044
1056
|
let { isLoggedIn: e } = l;
|
|
1045
|
-
if (!e) throw new
|
|
1057
|
+
if (!e) throw new we(h);
|
|
1046
1058
|
}
|
|
1047
1059
|
return /* @__PURE__ */ k(r, {
|
|
1048
1060
|
permissionsQuery: i?.permissionsQuery,
|
|
@@ -1054,71 +1066,71 @@ function mt(e) {
|
|
|
1054
1066
|
},
|
|
1055
1067
|
children: [
|
|
1056
1068
|
te,
|
|
1057
|
-
...
|
|
1058
|
-
...
|
|
1069
|
+
...ne,
|
|
1070
|
+
...re
|
|
1059
1071
|
]
|
|
1060
|
-
}),
|
|
1061
|
-
|
|
1072
|
+
}), b = [
|
|
1073
|
+
V({
|
|
1062
1074
|
path: u,
|
|
1063
|
-
resourcePage:
|
|
1075
|
+
resourcePage: st,
|
|
1064
1076
|
prepare: async ({ context: e }) => {
|
|
1065
1077
|
let t = await a.login.load();
|
|
1066
|
-
return { query:
|
|
1078
|
+
return { query: R(e.relayEnvironment, t.loginQuery, {}) };
|
|
1067
1079
|
},
|
|
1068
1080
|
render: ({ prepared: e, Component: t }) => t == null ? null : /* @__PURE__ */ k(t, { prepared: e })
|
|
1069
1081
|
}),
|
|
1070
|
-
|
|
1082
|
+
V({
|
|
1071
1083
|
path: d,
|
|
1072
|
-
resourcePage:
|
|
1084
|
+
resourcePage: ct,
|
|
1073
1085
|
prepare: async () => (await a.passwordResetRequest.load(), null),
|
|
1074
1086
|
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
|
|
1075
1087
|
}),
|
|
1076
|
-
|
|
1088
|
+
V({
|
|
1077
1089
|
path: f,
|
|
1078
|
-
resourcePage:
|
|
1090
|
+
resourcePage: lt,
|
|
1079
1091
|
prepare: async () => (await a.passwordResetComplete.load(), null),
|
|
1080
1092
|
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
|
|
1081
1093
|
}),
|
|
1082
|
-
|
|
1094
|
+
V({
|
|
1083
1095
|
path: p,
|
|
1084
|
-
resourcePage:
|
|
1096
|
+
resourcePage: ut,
|
|
1085
1097
|
prepare: async () => (await a.verifyEmail.load(), null),
|
|
1086
1098
|
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
|
|
1087
1099
|
})
|
|
1088
1100
|
];
|
|
1089
|
-
return (a.hasAcceptInvitation === !0 || a.acceptInvitation != null) &&
|
|
1101
|
+
return (a.hasAcceptInvitation === !0 || a.acceptInvitation != null) && b.push(V({
|
|
1090
1102
|
path: m,
|
|
1091
|
-
resourcePage:
|
|
1103
|
+
resourcePage: dt,
|
|
1092
1104
|
prepare: async () => (await a.acceptInvitation?.load(), null),
|
|
1093
1105
|
render: ({ Component: e }) => e == null ? null : /* @__PURE__ */ k(e, {})
|
|
1094
|
-
})),
|
|
1106
|
+
})), b.push(ie), b;
|
|
1095
1107
|
}
|
|
1096
1108
|
//#endregion
|
|
1097
1109
|
//#region src/components/backoffice/routing/backofficeRouteFallback.css.ts
|
|
1098
|
-
var
|
|
1099
|
-
let { t: e, i18n: t } =
|
|
1110
|
+
var yt = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop txvbqbv43 txvbqbva1", bt = "txvbqbva3", xt = () => {
|
|
1111
|
+
let { t: e, i18n: t } = T("backofficeReact", { useSuspense: !1 }), n = "Loading...";
|
|
1100
1112
|
return t.isInitialized && (n = e("common.loading")), /* @__PURE__ */ A("div", {
|
|
1101
|
-
className:
|
|
1113
|
+
className: yt,
|
|
1102
1114
|
role: "status",
|
|
1103
1115
|
"aria-live": "polite",
|
|
1104
1116
|
"aria-busy": "true",
|
|
1105
1117
|
children: [/* @__PURE__ */ k(Me, { size: 28 }), /* @__PURE__ */ k("div", {
|
|
1106
|
-
className:
|
|
1118
|
+
className: bt,
|
|
1107
1119
|
children: n
|
|
1108
1120
|
})]
|
|
1109
1121
|
});
|
|
1110
|
-
},
|
|
1111
|
-
className:
|
|
1122
|
+
}, St = "_11exksg1 txvbqbv45 txvbqbptp txvbqbt7y txvbqbdqg txvbqbl7g txvbqb2k txvbqbu7g txvbqbuwp", Ct = "_11exksg2 txvbqbcgg txvbqbuog", wt = () => /* @__PURE__ */ k("div", {
|
|
1123
|
+
className: St,
|
|
1112
1124
|
"aria-hidden": "true",
|
|
1113
|
-
children: /* @__PURE__ */ k("div", { className:
|
|
1114
|
-
}),
|
|
1125
|
+
children: /* @__PURE__ */ k("div", { className: Ct })
|
|
1126
|
+
}), Tt = "cache-first", H = "detail-page", U = "detail-layout", W = "list", G = "picker", K = "tool", q = (e) => e.kind === "list-detail", Et = (e) => e.kind === "tool", J = (e, t, n) => t === H ? `${e}:${t}:${n ?? ""}` : `${e}:${t}`, Dt = (e) => e instanceof Error ? e : Error(String(e)), Y = (e) => e?.status !== "loaded" || e.module == null ? null : e.module, X = (e, t) => {
|
|
1115
1127
|
let n = e[t];
|
|
1116
1128
|
if (n == null) throw Error(`Unknown backoffice entity: ${t}`);
|
|
1117
1129
|
return n;
|
|
1118
|
-
},
|
|
1130
|
+
}, Ot = (e, t) => {
|
|
1119
1131
|
let n = /* @__PURE__ */ new Map(), r = (t) => e[t] ?? null, i = async (e, t, r) => {
|
|
1120
|
-
if ((t?.mode ??
|
|
1121
|
-
let t =
|
|
1132
|
+
if ((t?.mode ?? Tt) === "cache-first") {
|
|
1133
|
+
let t = Y(n.get(e));
|
|
1122
1134
|
if (t != null) return t;
|
|
1123
1135
|
let r = n.get(e);
|
|
1124
1136
|
if (r?.status === "loading" && r.promise != null) return r.promise;
|
|
@@ -1127,7 +1139,7 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1127
1139
|
status: "loaded",
|
|
1128
1140
|
module: t
|
|
1129
1141
|
}), t)).catch((t) => {
|
|
1130
|
-
let r =
|
|
1142
|
+
let r = Dt(t);
|
|
1131
1143
|
throw n.set(e, {
|
|
1132
1144
|
status: "error",
|
|
1133
1145
|
error: r
|
|
@@ -1140,73 +1152,73 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1140
1152
|
};
|
|
1141
1153
|
return {
|
|
1142
1154
|
getManifest: r,
|
|
1143
|
-
getLoadedListEntity: (e) =>
|
|
1144
|
-
getLoadedPickerEntity: (e) =>
|
|
1145
|
-
getLoadedDetailLayoutEntity: (e) =>
|
|
1146
|
-
getLoadedDetailPageEntity: (e, t) =>
|
|
1147
|
-
getLoadedToolEntity: (e) =>
|
|
1155
|
+
getLoadedListEntity: (e) => Y(n.get(J(e, W))),
|
|
1156
|
+
getLoadedPickerEntity: (e) => Y(n.get(J(e, G))),
|
|
1157
|
+
getLoadedDetailLayoutEntity: (e) => Y(n.get(J(e, U))),
|
|
1158
|
+
getLoadedDetailPageEntity: (e, t) => Y(n.get(J(e, H, t))),
|
|
1159
|
+
getLoadedToolEntity: (e) => Y(n.get(J(e, K))),
|
|
1148
1160
|
loadListEntity: async (n, r) => {
|
|
1149
|
-
let a =
|
|
1150
|
-
if (!
|
|
1161
|
+
let a = X(e, n);
|
|
1162
|
+
if (!q(a)) throw Error(`Backoffice entity ${n} does not expose a list facet.`);
|
|
1151
1163
|
let o = a.facets.list;
|
|
1152
1164
|
if (o == null) throw Error(`Backoffice entity ${n} does not expose a list facet.`);
|
|
1153
|
-
return i(
|
|
1165
|
+
return i(J(n, W), r, async () => {
|
|
1154
1166
|
let e = j(a, await o(), t);
|
|
1155
|
-
if (e.kind !==
|
|
1167
|
+
if (e.kind !== W) throw Error(`Backoffice entity ${n} did not resolve to a list facet.`);
|
|
1156
1168
|
return e;
|
|
1157
1169
|
});
|
|
1158
1170
|
},
|
|
1159
1171
|
loadPickerEntity: async (n, r) => {
|
|
1160
|
-
let a =
|
|
1161
|
-
if (!
|
|
1172
|
+
let a = X(e, n);
|
|
1173
|
+
if (!q(a)) throw Error(`Backoffice entity ${n} does not expose a picker facet.`);
|
|
1162
1174
|
let o = a.facets.picker;
|
|
1163
1175
|
if (o == null) throw Error(`Backoffice entity ${n} does not expose a picker facet.`);
|
|
1164
|
-
return i(
|
|
1176
|
+
return i(J(n, G), r, async () => {
|
|
1165
1177
|
let e = j(a, await o(), t);
|
|
1166
|
-
if (e.kind !==
|
|
1178
|
+
if (e.kind !== G) throw Error(`Backoffice entity ${n} did not resolve to a picker facet.`);
|
|
1167
1179
|
return e;
|
|
1168
1180
|
});
|
|
1169
1181
|
},
|
|
1170
1182
|
loadDetailLayoutEntity: async (n, r) => {
|
|
1171
|
-
let a =
|
|
1172
|
-
if (!
|
|
1173
|
-
return i(
|
|
1183
|
+
let a = X(e, n);
|
|
1184
|
+
if (!q(a)) throw Error(`Backoffice entity ${n} does not expose a detail-layout facet.`);
|
|
1185
|
+
return i(J(n, U), r, async () => {
|
|
1174
1186
|
let e = j(a, await a.facets.detailLayout(), t);
|
|
1175
|
-
if (e.kind !==
|
|
1187
|
+
if (e.kind !== U) throw Error(`Backoffice entity ${n} did not resolve to a detail-layout facet.`);
|
|
1176
1188
|
return e;
|
|
1177
1189
|
});
|
|
1178
1190
|
},
|
|
1179
1191
|
loadDetailPageEntity: async (n, r, a) => {
|
|
1180
|
-
let o =
|
|
1181
|
-
if (!
|
|
1182
|
-
return i(
|
|
1192
|
+
let o = X(e, n);
|
|
1193
|
+
if (!q(o)) throw Error(`Backoffice entity ${n} does not expose a detail-page facet.`);
|
|
1194
|
+
return i(J(n, H, r), a, async () => {
|
|
1183
1195
|
let e = j(o, await o.facets.detailPage(r), t);
|
|
1184
|
-
if (e.kind !==
|
|
1196
|
+
if (e.kind !== H) throw Error(`Backoffice entity ${n} did not resolve to a detail-page facet.`);
|
|
1185
1197
|
return e;
|
|
1186
1198
|
});
|
|
1187
1199
|
},
|
|
1188
1200
|
loadToolEntity: async (n, r) => {
|
|
1189
|
-
let a =
|
|
1190
|
-
if (!
|
|
1191
|
-
return i(
|
|
1201
|
+
let a = X(e, n);
|
|
1202
|
+
if (!Et(a)) throw Error(`Backoffice entity ${n} does not expose a tool facet.`);
|
|
1203
|
+
return i(J(n, K), r, async () => {
|
|
1192
1204
|
let e = j(a, await a.facets.tool(), t);
|
|
1193
|
-
if (e.kind !==
|
|
1205
|
+
if (e.kind !== K) throw Error(`Backoffice entity ${n} did not resolve to a tool facet.`);
|
|
1194
1206
|
return e;
|
|
1195
1207
|
});
|
|
1196
1208
|
}
|
|
1197
1209
|
};
|
|
1198
|
-
},
|
|
1199
|
-
let n =
|
|
1210
|
+
}, Z = (e) => e.trim() === "" || e === "/" ? "/" : e.startsWith("/") ? e.endsWith("/") ? e.slice(0, -1) : e : `/${e}`, Q = (e, t) => {
|
|
1211
|
+
let n = Z(t), r = Z(e);
|
|
1200
1212
|
return r === "/" || n === r || n.startsWith(`${r}/`) ? n : n === "/" ? r : `${r}${n}`;
|
|
1201
|
-
},
|
|
1213
|
+
}, kt = (e, t) => Object.fromEntries(Object.entries(e).map(([e, n]) => [e, {
|
|
1202
1214
|
...n,
|
|
1203
1215
|
routes: {
|
|
1204
|
-
list:
|
|
1205
|
-
detail: (e) =>
|
|
1206
|
-
detailPage: (e, r) =>
|
|
1216
|
+
list: Q(t, n.routes.list),
|
|
1217
|
+
detail: (e) => Q(t, n.routes.detail(e)),
|
|
1218
|
+
detailPage: (e, r) => Q(t, n.routes.detailPage(e, r))
|
|
1207
1219
|
}
|
|
1208
|
-
}])),
|
|
1209
|
-
let n = i(), r =
|
|
1220
|
+
}])), At = ({ routes: e, instrumentations: t }) => {
|
|
1221
|
+
let n = i(), r = C(() => ({ relayEnvironment: n }), [n]), a = C(() => De(e, {
|
|
1210
1222
|
context: r,
|
|
1211
1223
|
instrumentations: t
|
|
1212
1224
|
}), [
|
|
@@ -1214,19 +1226,19 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1214
1226
|
e,
|
|
1215
1227
|
r
|
|
1216
1228
|
]);
|
|
1217
|
-
return
|
|
1229
|
+
return S(() => () => {
|
|
1218
1230
|
a.cleanup();
|
|
1219
1231
|
}, [a]), /* @__PURE__ */ k(Ee.Provider, {
|
|
1220
1232
|
value: a.context,
|
|
1221
1233
|
children: /* @__PURE__ */ k(Te, {
|
|
1222
1234
|
enableTransition: !0,
|
|
1223
|
-
fallback: /* @__PURE__ */ k(
|
|
1224
|
-
pending: /* @__PURE__ */ k(
|
|
1235
|
+
fallback: /* @__PURE__ */ k(xt, {}),
|
|
1236
|
+
pending: /* @__PURE__ */ k(wt, {})
|
|
1225
1237
|
})
|
|
1226
1238
|
});
|
|
1227
|
-
},
|
|
1228
|
-
let t =
|
|
1229
|
-
|
|
1239
|
+
}, jt = (e) => {
|
|
1240
|
+
let t = Z(e.basePath ?? "/"), n = C(() => kt(e.entityManifest, t), [t, e.entityManifest]), i = C(() => Ot(n, { basePath: t }), [t, n]), o = e.graphql;
|
|
1241
|
+
S(() => {
|
|
1230
1242
|
r({
|
|
1231
1243
|
httpUrl: o.httpUrl ?? o.endpoint,
|
|
1232
1244
|
wsUrl: o.wsUrl ?? o.wsEndpoint,
|
|
@@ -1243,24 +1255,14 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1243
1255
|
o.wsEndpoint,
|
|
1244
1256
|
o.wsUrl
|
|
1245
1257
|
]);
|
|
1246
|
-
let s =
|
|
1247
|
-
|
|
1248
|
-
return r.forEach((e) => {
|
|
1249
|
-
let r = Q(n[e]), a = Q(t[e]);
|
|
1250
|
-
i[e] = {
|
|
1251
|
-
...r,
|
|
1252
|
-
...a,
|
|
1253
|
-
backofficeReact: Ke(Q(r.backofficeReact), Q(a.backofficeReact))
|
|
1254
|
-
};
|
|
1255
|
-
}), i;
|
|
1256
|
-
}, [e.i18n?.resources]), c = w(() => e.i18n?.instance ?? ye(), [e.i18n?.instance]);
|
|
1257
|
-
return C(() => {
|
|
1258
|
+
let s = C(() => L(e.i18n?.resources ?? {}), [e.i18n?.resources]), c = C(() => e.i18n?.instance ?? xe(), [e.i18n?.instance]);
|
|
1259
|
+
return S(() => {
|
|
1258
1260
|
let t = e.i18n?.initOptions ?? {}, n = t.defaultNS ?? "translations", r = t.ns ?? [
|
|
1259
1261
|
"backofficeReact",
|
|
1260
1262
|
"translations",
|
|
1261
1263
|
"ui"
|
|
1262
1264
|
];
|
|
1263
|
-
|
|
1265
|
+
Ge({
|
|
1264
1266
|
resources: s,
|
|
1265
1267
|
lng: e.i18n?.lng,
|
|
1266
1268
|
fallbackLng: e.i18n?.fallbackLng,
|
|
@@ -1281,10 +1283,10 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1281
1283
|
e.i18n?.fallbackLng,
|
|
1282
1284
|
e.i18n?.lng,
|
|
1283
1285
|
e.i18n?.useLanguageDetector
|
|
1284
|
-
]), /* @__PURE__ */ k(
|
|
1286
|
+
]), /* @__PURE__ */ k(ve, { children: /* @__PURE__ */ k(Se, {
|
|
1285
1287
|
i18n: c,
|
|
1286
|
-
children: /* @__PURE__ */ k(Ne, { children: /* @__PURE__ */ k(
|
|
1287
|
-
value:
|
|
1288
|
+
children: /* @__PURE__ */ k(Ne, { children: /* @__PURE__ */ k($e, { children: /* @__PURE__ */ k(a, {
|
|
1289
|
+
value: C(() => ({
|
|
1288
1290
|
basePath: t,
|
|
1289
1291
|
entities: n,
|
|
1290
1292
|
entityManifest: n,
|
|
@@ -1304,8 +1306,8 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1304
1306
|
e.graphql,
|
|
1305
1307
|
e.sidebar
|
|
1306
1308
|
]),
|
|
1307
|
-
children: /* @__PURE__ */ k(
|
|
1308
|
-
routes:
|
|
1309
|
+
children: /* @__PURE__ */ k(At, {
|
|
1310
|
+
routes: C(() => vt({
|
|
1309
1311
|
basePath: t,
|
|
1310
1312
|
entityManifest: n,
|
|
1311
1313
|
entityRegistry: i,
|
|
@@ -1326,7 +1328,7 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1326
1328
|
})
|
|
1327
1329
|
}) }) })
|
|
1328
1330
|
}) });
|
|
1329
|
-
},
|
|
1331
|
+
}, Mt = (e) => {
|
|
1330
1332
|
let t = null, n = null;
|
|
1331
1333
|
return {
|
|
1332
1334
|
get: () => t,
|
|
@@ -1334,15 +1336,15 @@ var ht = "txvbqb9ip txvbqbai7 txvbqbcp txvbqbdoy txvbqbk5p txvbqbu7g txvbqbaop t
|
|
|
1334
1336
|
n = null;
|
|
1335
1337
|
}), n)
|
|
1336
1338
|
};
|
|
1337
|
-
},
|
|
1339
|
+
}, Nt = (e, t) => {
|
|
1338
1340
|
let n = e ?? [], r = t ?? [];
|
|
1339
1341
|
return n.length === r.length ? n.every((e, t) => e === r[t]) : !1;
|
|
1340
1342
|
};
|
|
1341
1343
|
function $(e, t, n) {
|
|
1342
1344
|
let { filters: r } = e.list;
|
|
1343
|
-
return r.find((e) => String(e.whereKey ?? e.id) === t &&
|
|
1345
|
+
return r.find((e) => String(e.whereKey ?? e.id) === t && Nt(e.path, n)) ?? null;
|
|
1344
1346
|
}
|
|
1345
|
-
function
|
|
1347
|
+
function Pt(e, t, n) {
|
|
1346
1348
|
let r = $(e, t);
|
|
1347
1349
|
if (r != null) return r;
|
|
1348
1350
|
let { [t]: i } = n ?? {};
|
|
@@ -1352,25 +1354,25 @@ function At(e, t, n) {
|
|
|
1352
1354
|
}
|
|
1353
1355
|
return $(e, `${t}Contains`) ?? null;
|
|
1354
1356
|
}
|
|
1355
|
-
function
|
|
1357
|
+
function Ft(e, t) {
|
|
1356
1358
|
return t == null ? !1 : e.kind === "boolean" ? typeof t == "boolean" : e.kind === "entityId" ? typeof t == "string" && t.trim() !== "" : typeof t == "number" ? String(t).trim() !== "" : typeof t == "string" ? t.trim() !== "" : !1;
|
|
1357
1359
|
}
|
|
1358
1360
|
//#endregion
|
|
1359
1361
|
//#region src/components/backoffice/filters/backofficeFilterAction.css.ts
|
|
1360
|
-
var
|
|
1361
|
-
let { t } =
|
|
1362
|
+
var It = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txvbqb1qy txvbqb1cp txvbqb1qg txvbqbf7 txvbqbv0t txvbqbva1 txvbqbv txvbqb3b txvbqb78 txvbqb6w txvbqb7k", Lt = "txvbqbtx7 txvbqbc67", Rt = (e, t) => e(t), zt = (e) => {
|
|
1363
|
+
let { t } = T(), { t: n } = s(), { filterColumnAliases: r } = o(), { whereKey: i, value: a, path: c, label: l, listConfig: u } = e, d = ne(), f = null;
|
|
1362
1364
|
if (u == null ? d != null && (f = d.config) : f = u, f == null) return null;
|
|
1363
1365
|
let p = $(f, i, c);
|
|
1364
|
-
if (p == null && c == null && (p =
|
|
1365
|
-
let m =
|
|
1366
|
+
if (p == null && c == null && (p = Pt(f, i, r)), p == null || !Ft(p, a)) return null;
|
|
1367
|
+
let m = Rt(p.label, t), h = l ?? n("filters.actions.filterBy", { label: m }), g = /* @__PURE__ */ k(je, {
|
|
1366
1368
|
width: 14,
|
|
1367
1369
|
height: 14,
|
|
1368
|
-
className:
|
|
1370
|
+
className: Lt,
|
|
1369
1371
|
"aria-hidden": "true"
|
|
1370
1372
|
});
|
|
1371
1373
|
if (d != null) return /* @__PURE__ */ k("button", {
|
|
1372
1374
|
type: "button",
|
|
1373
|
-
className:
|
|
1375
|
+
className: It,
|
|
1374
1376
|
title: h,
|
|
1375
1377
|
"aria-label": h,
|
|
1376
1378
|
onClick: () => {
|
|
@@ -1379,35 +1381,35 @@ var Mt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txv
|
|
|
1379
1381
|
children: g
|
|
1380
1382
|
});
|
|
1381
1383
|
let _ = Re(f.listDefaults?.where ?? f.list.defaultState?.where ?? null, i, a, c);
|
|
1382
|
-
return /* @__PURE__ */ k(
|
|
1384
|
+
return /* @__PURE__ */ k(E, {
|
|
1383
1385
|
to: M(f, { where: _ }),
|
|
1384
|
-
className:
|
|
1386
|
+
className: It,
|
|
1385
1387
|
children: g
|
|
1386
1388
|
});
|
|
1387
|
-
},
|
|
1389
|
+
}, Bt = "txvbqb9ip txvbqbai7 txvbqbap7", Vt = "txvbqb9ip txvbqbai7 txvbqbaop", Ht = "txvbqb9iy txvbqbbwy txvbqbap7 txvbqbcg", Ut = "txvbqb9ip txvbqbai7 txvbqbap7", Wt = "txvbqb9ip txvbqbai7 txvbqbap7", Gt = ({ summary: e, aside: t, children: n, className: r }) => {
|
|
1388
1390
|
let i = null;
|
|
1389
1391
|
e != null && (i = /* @__PURE__ */ k("div", {
|
|
1390
|
-
className:
|
|
1392
|
+
className: Vt,
|
|
1391
1393
|
children: e
|
|
1392
1394
|
}));
|
|
1393
1395
|
let a = null;
|
|
1394
1396
|
t != null && (a = /* @__PURE__ */ k("aside", {
|
|
1395
|
-
className:
|
|
1397
|
+
className: Wt,
|
|
1396
1398
|
children: t
|
|
1397
1399
|
}));
|
|
1398
1400
|
let o = null;
|
|
1399
1401
|
return (n != null || a != null) && (o = /* @__PURE__ */ k("div", {
|
|
1400
|
-
className:
|
|
1402
|
+
className: Ut,
|
|
1401
1403
|
children: n
|
|
1402
1404
|
})), /* @__PURE__ */ A("div", {
|
|
1403
|
-
className: Pe(
|
|
1405
|
+
className: Pe(Bt, r),
|
|
1404
1406
|
children: [i, /* @__PURE__ */ A("div", {
|
|
1405
|
-
className:
|
|
1407
|
+
className: Ht,
|
|
1406
1408
|
children: [o, a]
|
|
1407
1409
|
})]
|
|
1408
1410
|
});
|
|
1409
|
-
},
|
|
1410
|
-
let { entities: r, entityRegistry: i } = o(), a =
|
|
1411
|
+
}, Kt = "txvbqbv9z txvbqb3d txvbqbvwr", qt = ({ count: e, entity: t, where: n }) => {
|
|
1412
|
+
let { entities: r, entityRegistry: i } = o(), a = ye(Ee), s = 0;
|
|
1411
1413
|
typeof e == "number" && Number.isFinite(e) && (s = e);
|
|
1412
1414
|
let c = r[t];
|
|
1413
1415
|
if (c == null) return /* @__PURE__ */ k("span", { children: s });
|
|
@@ -1421,9 +1423,9 @@ var Mt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txv
|
|
|
1421
1423
|
hash: ""
|
|
1422
1424
|
});
|
|
1423
1425
|
};
|
|
1424
|
-
return /* @__PURE__ */ k(
|
|
1426
|
+
return /* @__PURE__ */ k(E, {
|
|
1425
1427
|
to: u,
|
|
1426
|
-
className:
|
|
1428
|
+
className: Kt,
|
|
1427
1429
|
onClick: (e) => {
|
|
1428
1430
|
if (l != null || a == null || e.defaultPrevented || e.button !== 0 || e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;
|
|
1429
1431
|
e.preventDefault();
|
|
@@ -1448,47 +1450,47 @@ var Mt = "hwnq700 txvbqb9jg txvbqbcp txvbqbdoy txvbqbtxp txvbqbc6p txvbqblag txv
|
|
|
1448
1450
|
},
|
|
1449
1451
|
children: s
|
|
1450
1452
|
});
|
|
1451
|
-
},
|
|
1453
|
+
}, Jt = "txvbqb9ip", Yt = "txvbqb9ip txvbqbai7 txvbqbaop", Xt = ({ headerNode: e, tabs: t, activeId: n, children: r }) => {
|
|
1452
1454
|
let i = null;
|
|
1453
1455
|
return t != null && t.length > 1 && n != null && (i = /* @__PURE__ */ k(ke, {
|
|
1454
1456
|
items: t,
|
|
1455
1457
|
activeId: n,
|
|
1456
1458
|
onChange: () => {},
|
|
1457
|
-
className:
|
|
1459
|
+
className: Jt
|
|
1458
1460
|
})), /* @__PURE__ */ k(Ae, {
|
|
1459
1461
|
headerNode: e,
|
|
1460
1462
|
tabsNode: i,
|
|
1461
1463
|
children: /* @__PURE__ */ k("div", {
|
|
1462
|
-
className:
|
|
1464
|
+
className: Yt,
|
|
1463
1465
|
children: r
|
|
1464
1466
|
})
|
|
1465
1467
|
});
|
|
1466
|
-
},
|
|
1467
|
-
className: Pe(
|
|
1468
|
+
}, Zt = "txvbqb9jg txvbqbcp txvbqbany txvbqbajy", Qt = ({ children: e, className: t }) => /* @__PURE__ */ k("span", {
|
|
1469
|
+
className: Pe(Zt, t),
|
|
1468
1470
|
children: e
|
|
1469
|
-
}),
|
|
1470
|
-
function
|
|
1471
|
+
}), $t = [];
|
|
1472
|
+
function en() {
|
|
1471
1473
|
return Reflect.get(O, "default") ?? O;
|
|
1472
1474
|
}
|
|
1473
|
-
var
|
|
1474
|
-
function
|
|
1475
|
-
let n =
|
|
1475
|
+
var tn = en();
|
|
1476
|
+
function nn(e, t) {
|
|
1477
|
+
let n = tn.useRelayEnvironment(), [r, i] = w(null), { enabled: a = !0, deps: o = $t, getVariables: s } = t, c = x(() => {
|
|
1476
1478
|
try {
|
|
1477
1479
|
return s == null ? e.variables : s();
|
|
1478
1480
|
} catch {
|
|
1479
1481
|
return null;
|
|
1480
1482
|
}
|
|
1481
|
-
}, [e.variables, s]), l =
|
|
1483
|
+
}, [e.variables, s]), l = C(() => c(), [c]), u = C(() => {
|
|
1482
1484
|
if (l == null) return null;
|
|
1483
1485
|
try {
|
|
1484
1486
|
return JSON.stringify(l);
|
|
1485
1487
|
} catch {
|
|
1486
1488
|
return null;
|
|
1487
1489
|
}
|
|
1488
|
-
}, [l]), d = !!a, f = d && l != null, p =
|
|
1489
|
-
return
|
|
1490
|
+
}, [l]), d = !!a, f = d && l != null, p = be(null);
|
|
1491
|
+
return S(() => {
|
|
1490
1492
|
let t = null, r = c();
|
|
1491
|
-
return d && r != null && (i(null), t =
|
|
1493
|
+
return d && r != null && (i(null), t = tn.requestSubscription(n, {
|
|
1492
1494
|
subscription: e.subscription,
|
|
1493
1495
|
variables: r,
|
|
1494
1496
|
cacheConfig: e.cacheConfig,
|
|
@@ -1519,26 +1521,26 @@ function Qt(e, t) {
|
|
|
1519
1521
|
}
|
|
1520
1522
|
//#endregion
|
|
1521
1523
|
//#region src/hooks/useCopyToClipboard.ts
|
|
1522
|
-
var
|
|
1523
|
-
function
|
|
1524
|
+
var rn = "copy-to-clipboard-fallback";
|
|
1525
|
+
function an(e) {
|
|
1524
1526
|
if (typeof document > "u") return;
|
|
1525
|
-
let t = document.getElementById(
|
|
1526
|
-
t ?? (t = document.createElement("textarea"), t.id =
|
|
1527
|
+
let t = document.getElementById(rn);
|
|
1528
|
+
t ?? (t = document.createElement("textarea"), t.id = rn, t.setAttribute("readonly", ""), t.style.position = "absolute", t.style.left = "-9999px", t.style.top = "0", t.style.opacity = "0", document.body.appendChild(t)), t.value = e, t.select(), document.execCommand("copy");
|
|
1527
1529
|
}
|
|
1528
|
-
function
|
|
1529
|
-
let [t, n] =
|
|
1530
|
-
return
|
|
1530
|
+
function on(e = 2e3) {
|
|
1531
|
+
let [t, n] = w(null), r = be(null);
|
|
1532
|
+
return S(() => () => {
|
|
1531
1533
|
r.current != null && window.clearTimeout(r.current);
|
|
1532
1534
|
}, []), {
|
|
1533
1535
|
copiedKey: t,
|
|
1534
|
-
copy:
|
|
1536
|
+
copy: x(async (t, i) => {
|
|
1535
1537
|
let a = !1, o;
|
|
1536
1538
|
if (typeof navigator < "u" && (o = navigator.clipboard), o != null) try {
|
|
1537
1539
|
await o.writeText(t), a = !0;
|
|
1538
1540
|
} catch {
|
|
1539
1541
|
a = !1;
|
|
1540
1542
|
}
|
|
1541
|
-
return a ||= (
|
|
1543
|
+
return a ||= (an(t), !0), i != null && (n(i), r.current != null && window.clearTimeout(r.current), r.current = window.setTimeout(() => {
|
|
1542
1544
|
n(null), r.current = null;
|
|
1543
1545
|
}, e)), a;
|
|
1544
1546
|
}, [e])
|
|
@@ -1546,26 +1548,26 @@ function tn(e = 2e3) {
|
|
|
1546
1548
|
}
|
|
1547
1549
|
//#endregion
|
|
1548
1550
|
//#region src/hooks/useRefetchNeededReload.ts
|
|
1549
|
-
function
|
|
1550
|
-
let [t, n] =
|
|
1551
|
-
return
|
|
1551
|
+
function sn(e) {
|
|
1552
|
+
let [t, n] = w(null);
|
|
1553
|
+
return S(() => {
|
|
1552
1554
|
n(null);
|
|
1553
1555
|
}, [e]), {
|
|
1554
1556
|
reason: t,
|
|
1555
|
-
onRefetchNeeded:
|
|
1557
|
+
onRefetchNeeded: x((e) => {
|
|
1556
1558
|
n(e ?? "UNKNOWN");
|
|
1557
1559
|
}, []),
|
|
1558
|
-
reload:
|
|
1560
|
+
reload: x(() => {
|
|
1559
1561
|
window.location.reload();
|
|
1560
1562
|
}, []),
|
|
1561
|
-
clear:
|
|
1563
|
+
clear: x(() => {
|
|
1562
1564
|
n(null);
|
|
1563
1565
|
}, [])
|
|
1564
1566
|
};
|
|
1565
1567
|
}
|
|
1566
1568
|
//#endregion
|
|
1567
1569
|
//#region src/i18n/useReviewStatusLabel.ts
|
|
1568
|
-
function
|
|
1570
|
+
function cn() {
|
|
1569
1571
|
let { t: e } = s();
|
|
1570
1572
|
function t(t) {
|
|
1571
1573
|
if (t == null) return e("review.status.unknown");
|
|
@@ -1580,7 +1582,7 @@ function rn() {
|
|
|
1580
1582
|
}
|
|
1581
1583
|
//#endregion
|
|
1582
1584
|
//#region src/modules/base64.ts
|
|
1583
|
-
function
|
|
1585
|
+
function ln(e) {
|
|
1584
1586
|
if (typeof e != "string") throw TypeError("encodeUtf8ToBase64 expects a string input.");
|
|
1585
1587
|
if (typeof globalThis.btoa == "function") {
|
|
1586
1588
|
let t = encodeURIComponent(e).replace(/%([0-9A-F]{2})/g, (e, t) => String.fromCharCode(Number.parseInt(t, 16)));
|
|
@@ -1588,7 +1590,7 @@ function an(e) {
|
|
|
1588
1590
|
}
|
|
1589
1591
|
throw Error("No base64 encoder is available in this environment.");
|
|
1590
1592
|
}
|
|
1591
|
-
function
|
|
1593
|
+
function un(e) {
|
|
1592
1594
|
if (typeof e != "string") throw TypeError("decodeBase64ToUtf8 expects a string input.");
|
|
1593
1595
|
if (typeof globalThis.atob == "function") {
|
|
1594
1596
|
let t = globalThis.atob(e), n = Array.from(t, (e) => `%${e.charCodeAt(0).toString(16).padStart(2, "0")}`).join("");
|
|
@@ -1598,33 +1600,33 @@ function on(e) {
|
|
|
1598
1600
|
}
|
|
1599
1601
|
//#endregion
|
|
1600
1602
|
//#region src/modules/formatFileSize.ts
|
|
1601
|
-
var
|
|
1603
|
+
var dn = [
|
|
1602
1604
|
"B",
|
|
1603
1605
|
"KB",
|
|
1604
1606
|
"MB",
|
|
1605
1607
|
"GB",
|
|
1606
1608
|
"TB"
|
|
1607
|
-
],
|
|
1609
|
+
], fn = 1024, pn = (e, t) => {
|
|
1608
1610
|
if (t === "B") return Math.round(e).toString();
|
|
1609
1611
|
let n = 1;
|
|
1610
1612
|
return e >= 10 && (n = 0), e.toFixed(n);
|
|
1611
1613
|
};
|
|
1612
|
-
function
|
|
1614
|
+
function mn(e) {
|
|
1613
1615
|
let t = e;
|
|
1614
1616
|
Number.isFinite(e) || (t = 0);
|
|
1615
1617
|
let n = t < 0, r = Math.abs(t), i = 0;
|
|
1616
|
-
for (; r >=
|
|
1617
|
-
let a =
|
|
1618
|
+
for (; r >= fn && i < dn.length - 1;) r /= fn, i += 1;
|
|
1619
|
+
let a = dn[i] ?? "B", o = r;
|
|
1618
1620
|
return n && (o = -r), {
|
|
1619
1621
|
value: o,
|
|
1620
1622
|
unit: a,
|
|
1621
|
-
displayValue:
|
|
1623
|
+
displayValue: pn(o, a)
|
|
1622
1624
|
};
|
|
1623
1625
|
}
|
|
1624
1626
|
//#endregion
|
|
1625
1627
|
//#region src/relay/createInlineReader.ts
|
|
1626
|
-
var { readInlineData:
|
|
1628
|
+
var { readInlineData: hn } = O, gn = (e) => (t) => hn(e, t), _n = (e) => e;
|
|
1627
1629
|
//#endregion
|
|
1628
|
-
export { _ as AcceptInvitationScreen,
|
|
1630
|
+
export { _ as AcceptInvitationScreen, oe as BackofficeDetailBadgeRow, se as BackofficeDetailField, le as BackofficeDetailPayload, ce as BackofficeDetailSection, te as BackofficeErrorBoundary, zt as BackofficeFilterAction, Qt as BackofficeInlineFilterRow, Gt as BackofficeOverviewLayout, jt as BackofficeProvider, qt as BackofficeRelatedCountLink, _e as BackofficeRightPageLayout, Xt as BackofficeTabbedDetailShell, ie as EntityFilterValue, re as EntityFilterValueText, b as EntityIdFilterField, ae as EntityIdPickerDialog, h as LoginFlow, v as PasswordResetCompleteScreen, y as PasswordResetRequestScreen, $e as RelayProvider, ee as VerifyEmailScreen, Xe as backofficeReactI18nResources, f as base64UrlToBuffer, p as bufferToBase64Url, ge as buildDataTableColumns, r as configureRelayEnvironment, Mt as createBackofficeLazyValue, Ge as createI18nInstance, gn as createInlineDataReader, m as createUseAuth, un as decodeBase64ToUtf8, ln as encodeUtf8ToBase64, mn as formatFileSize, t as getEnvironment, n as getNetwork, _n as identityView, d as mapWebAuthnRegistrationError, u as parseSignCount, me as requireField, fe as requireLinkedRecordId, e as resetRelayStore, pe as resolveAgentStartOutcome, de as resolveMutationOutcome, he as resolveVisibleDetailPages, g as synchronizeAuthStatusQuery, o as useBackofficeConfig, ue as useBackofficeListUrlState, nn as useConditionalSubscription, on as useCopyToClipboard, sn as useRefetchNeededReload, cn as useReviewStatusLabel, L as withBackofficeReactI18nResources };
|
|
1629
1631
|
|
|
1630
1632
|
//# sourceMappingURL=backoffice-react.js.map
|