@webiny/cognito 6.6.0-alpha.0 → 6.6.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/Cognito.d.ts +51 -0
  2. package/Cognito.js +78 -4
  3. package/Cognito.js.map +1 -1
  4. package/admin/Cognito.js +8 -2
  5. package/admin/Cognito.js.map +1 -1
  6. package/admin/DefaultCognitoSignInConfig.d.ts +23 -0
  7. package/admin/DefaultCognitoSignInConfig.js +51 -0
  8. package/admin/DefaultCognitoSignInConfig.js.map +1 -0
  9. package/admin/SignInExtension.d.ts +2 -0
  10. package/admin/SignInExtension.js +9 -0
  11. package/admin/SignInExtension.js.map +1 -0
  12. package/admin/index.d.ts +2 -0
  13. package/admin/index.js +2 -0
  14. package/admin/presentation/Cognito/CognitoLoginScreen.d.ts +2 -2
  15. package/admin/presentation/Cognito/CognitoLoginScreen.js +9 -0
  16. package/admin/presentation/Cognito/CognitoLoginScreen.js.map +1 -1
  17. package/admin/presentation/Cognito/CognitoPresenter.d.ts +25 -1
  18. package/admin/presentation/Cognito/CognitoPresenter.js +122 -10
  19. package/admin/presentation/Cognito/CognitoPresenter.js.map +1 -1
  20. package/admin/presentation/Cognito/CognitoSignInConfig.d.ts +31 -0
  21. package/admin/presentation/Cognito/CognitoSignInConfig.js +5 -0
  22. package/admin/presentation/Cognito/CognitoSignInConfig.js.map +1 -0
  23. package/admin/presentation/Cognito/abstractions.d.ts +20 -1
  24. package/admin/presentation/Cognito/abstractions.js.map +1 -1
  25. package/admin/presentation/Cognito/components/ConfirmTotpCode.d.ts +26 -0
  26. package/admin/presentation/Cognito/components/ConfirmTotpCode.js +45 -0
  27. package/admin/presentation/Cognito/components/ConfirmTotpCode.js.map +1 -0
  28. package/admin/presentation/Cognito/components/Divider.d.ts +19 -1
  29. package/admin/presentation/Cognito/components/Divider.js +3 -2
  30. package/admin/presentation/Cognito/components/Divider.js.map +1 -1
  31. package/admin/presentation/Cognito/components/FederatedLogin.d.ts +22 -5
  32. package/admin/presentation/Cognito/components/FederatedLogin.js +19 -6
  33. package/admin/presentation/Cognito/components/FederatedLogin.js.map +1 -1
  34. package/admin/presentation/Cognito/components/FooterSignIn.d.ts +20 -3
  35. package/admin/presentation/Cognito/components/FooterSignIn.js +3 -2
  36. package/admin/presentation/Cognito/components/FooterSignIn.js.map +1 -1
  37. package/admin/presentation/Cognito/components/PasswordResetCodeSent.d.ts +19 -1
  38. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js +3 -2
  39. package/admin/presentation/Cognito/components/PasswordResetCodeSent.js.map +1 -1
  40. package/admin/presentation/Cognito/components/RequestPasswordResetCode.d.ts +19 -1
  41. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js +3 -2
  42. package/admin/presentation/Cognito/components/RequestPasswordResetCode.js.map +1 -1
  43. package/admin/presentation/Cognito/components/RequireNewPassword.d.ts +19 -1
  44. package/admin/presentation/Cognito/components/RequireNewPassword.js +3 -2
  45. package/admin/presentation/Cognito/components/RequireNewPassword.js.map +1 -1
  46. package/admin/presentation/Cognito/components/SetNewPassword.d.ts +19 -1
  47. package/admin/presentation/Cognito/components/SetNewPassword.js +3 -2
  48. package/admin/presentation/Cognito/components/SetNewPassword.js.map +1 -1
  49. package/admin/presentation/Cognito/components/SetupTotp.d.ts +25 -0
  50. package/admin/presentation/Cognito/components/SetupTotp.js +60 -0
  51. package/admin/presentation/Cognito/components/SetupTotp.js.map +1 -0
  52. package/admin/presentation/Cognito/components/SignIn.d.ts +19 -3
  53. package/admin/presentation/Cognito/components/SignIn.js +14 -7
  54. package/admin/presentation/Cognito/components/SignIn.js.map +1 -1
  55. package/admin/presentation/Cognito/components/index.d.ts +292 -0
  56. package/admin/presentation/Cognito/components/index.js +29 -0
  57. package/admin/presentation/Cognito/components/index.js.map +1 -0
  58. package/admin/presentation/Cognito/signInFeature.d.ts +1 -0
  59. package/admin/presentation/Cognito/signInFeature.js +11 -0
  60. package/admin/presentation/Cognito/signInFeature.js.map +1 -0
  61. package/admin/ui/views/Account/Account.js.map +1 -1
  62. package/admin/ui/views/Users/UsersForm.js +21 -15
  63. package/admin/ui/views/Users/UsersForm.js.map +1 -1
  64. package/admin/ui/views/Users/UsersView.js +3 -3
  65. package/admin/ui/views/Users/UsersView.js.map +1 -1
  66. package/admin/ui/views/Users/hooks/useUserForm.js.map +1 -1
  67. package/api/features/CognitoIdp/CognitoIdentityProvider.js +15 -11
  68. package/api/features/CognitoIdp/CognitoIdentityProvider.js.map +1 -1
  69. package/api/features/CognitoIdp/abstractions.d.ts +1 -1
  70. package/api/features/CognitoIdp/abstractions.js.map +1 -1
  71. package/api/index.d.ts +1 -0
  72. package/api/index.js +1 -0
  73. package/index.d.ts +0 -1
  74. package/index.js +0 -1
  75. package/infra/CognitoFederationPulumi.d.ts +8 -0
  76. package/infra/CognitoFederationPulumi.js +17 -0
  77. package/infra/CognitoFederationPulumi.js.map +1 -0
  78. package/package.json +23 -21
@@ -0,0 +1,292 @@
1
+ export declare const Components: {
2
+ SignIn: ((props: import("./SignIn.js").SignInProps) => import("react").JSX.Element) & {
3
+ original: (props: import("./SignIn.js").SignInProps) => import("react").JSX.Element;
4
+ originalName: string;
5
+ displayName: string;
6
+ } & {
7
+ original: ((props: import("./SignIn.js").SignInProps) => import("react").JSX.Element) & {
8
+ original: (props: import("./SignIn.js").SignInProps) => import("react").JSX.Element;
9
+ originalName: string;
10
+ displayName: string;
11
+ };
12
+ originalName: string;
13
+ displayName: string;
14
+ } & {
15
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./SignIn.js").SignInProps) => import("react").JSX.Element) & {
16
+ original: (props: import("./SignIn.js").SignInProps) => import("react").JSX.Element;
17
+ originalName: string;
18
+ displayName: string;
19
+ }>) => (props: unknown) => React.JSX.Element;
20
+ };
21
+ ConfirmTotpCode: ((props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element) & {
22
+ original: (props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element;
23
+ originalName: string;
24
+ displayName: string;
25
+ } & {
26
+ original: ((props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element) & {
27
+ original: (props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element;
28
+ originalName: string;
29
+ displayName: string;
30
+ };
31
+ originalName: string;
32
+ displayName: string;
33
+ } & {
34
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element) & {
35
+ original: (props: import("./ConfirmTotpCode.js").ConfirmTotpCodeProps) => import("react").JSX.Element;
36
+ originalName: string;
37
+ displayName: string;
38
+ }>) => (props: unknown) => React.JSX.Element;
39
+ };
40
+ SetupTotp: ((props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element) & {
41
+ original: (props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element;
42
+ originalName: string;
43
+ displayName: string;
44
+ } & {
45
+ original: ((props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element) & {
46
+ original: (props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element;
47
+ originalName: string;
48
+ displayName: string;
49
+ };
50
+ originalName: string;
51
+ displayName: string;
52
+ } & {
53
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element) & {
54
+ original: (props: import("./SetupTotp.js").SetupTotpProps) => import("react").JSX.Element;
55
+ originalName: string;
56
+ displayName: string;
57
+ }>) => (props: unknown) => React.JSX.Element;
58
+ };
59
+ RequireNewPassword: ((props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element) & {
60
+ original: (props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element;
61
+ originalName: string;
62
+ displayName: string;
63
+ } & {
64
+ original: ((props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element) & {
65
+ original: (props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element;
66
+ originalName: string;
67
+ displayName: string;
68
+ };
69
+ originalName: string;
70
+ displayName: string;
71
+ } & {
72
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element) & {
73
+ original: (props: import("./RequireNewPassword.js").RequireNewPasswordProps) => import("react").JSX.Element;
74
+ originalName: string;
75
+ displayName: string;
76
+ }>) => (props: unknown) => React.JSX.Element;
77
+ };
78
+ RequestPasswordResetCode: ((props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element) & {
79
+ original: (props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element;
80
+ originalName: string;
81
+ displayName: string;
82
+ } & {
83
+ original: ((props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element) & {
84
+ original: (props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element;
85
+ originalName: string;
86
+ displayName: string;
87
+ };
88
+ originalName: string;
89
+ displayName: string;
90
+ } & {
91
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element) & {
92
+ original: (props: import("./RequestPasswordResetCode.js").ForgotPasswordProps) => import("react").JSX.Element;
93
+ originalName: string;
94
+ displayName: string;
95
+ }>) => (props: unknown) => React.JSX.Element;
96
+ };
97
+ PasswordResetCodeSent: ((props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element) & {
98
+ original: (props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element;
99
+ originalName: string;
100
+ displayName: string;
101
+ } & {
102
+ original: ((props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element) & {
103
+ original: (props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element;
104
+ originalName: string;
105
+ displayName: string;
106
+ };
107
+ originalName: string;
108
+ displayName: string;
109
+ } & {
110
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element) & {
111
+ original: (props: import("./PasswordResetCodeSent.js").PasswordResetCodeSentProps) => import("react").JSX.Element;
112
+ originalName: string;
113
+ displayName: string;
114
+ }>) => (props: unknown) => React.JSX.Element;
115
+ };
116
+ SetNewPassword: ((props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element) & {
117
+ original: (props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element;
118
+ originalName: string;
119
+ displayName: string;
120
+ } & {
121
+ original: ((props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element) & {
122
+ original: (props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element;
123
+ originalName: string;
124
+ displayName: string;
125
+ };
126
+ originalName: string;
127
+ displayName: string;
128
+ } & {
129
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<((props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element) & {
130
+ original: (props: import("./SetNewPassword.js").SetNewPasswordProps) => import("react").JSX.Element;
131
+ originalName: string;
132
+ displayName: string;
133
+ }>) => (props: unknown) => React.JSX.Element;
134
+ };
135
+ FederatedLogin: (({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element) & {
136
+ original: ({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element;
137
+ originalName: string;
138
+ displayName: string;
139
+ } & {
140
+ original: (({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element) & {
141
+ original: ({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element;
142
+ originalName: string;
143
+ displayName: string;
144
+ };
145
+ originalName: string;
146
+ displayName: string;
147
+ } & {
148
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element) & {
149
+ original: ({ providers }: import("./FederatedLogin.js").FederatedLoginProps) => import("react").JSX.Element;
150
+ originalName: string;
151
+ displayName: string;
152
+ }>) => (props: unknown) => React.JSX.Element;
153
+ };
154
+ FederatedProviders: {
155
+ Container: (({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element) & {
156
+ original: ({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element;
157
+ originalName: string;
158
+ displayName: string;
159
+ } & {
160
+ original: (({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element) & {
161
+ original: ({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element;
162
+ originalName: string;
163
+ displayName: string;
164
+ };
165
+ originalName: string;
166
+ displayName: string;
167
+ } & {
168
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element) & {
169
+ original: ({ children }: import("./FederatedProviders.js").ContainerProps) => import("react").JSX.Element;
170
+ originalName: string;
171
+ displayName: string;
172
+ }>) => (props: unknown) => React.JSX.Element;
173
+ };
174
+ };
175
+ Divider: (() => import("react").JSX.Element) & {
176
+ original: () => import("react").JSX.Element;
177
+ originalName: string;
178
+ displayName: string;
179
+ } & {
180
+ original: (() => import("react").JSX.Element) & {
181
+ original: () => import("react").JSX.Element;
182
+ originalName: string;
183
+ displayName: string;
184
+ };
185
+ originalName: string;
186
+ displayName: string;
187
+ } & {
188
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(() => import("react").JSX.Element) & {
189
+ original: () => import("react").JSX.Element;
190
+ originalName: string;
191
+ displayName: string;
192
+ }>) => (props: unknown) => React.JSX.Element;
193
+ };
194
+ FooterSignIn: (({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element) & {
195
+ original: ({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element;
196
+ originalName: string;
197
+ displayName: string;
198
+ } & {
199
+ original: (({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element) & {
200
+ original: ({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element;
201
+ originalName: string;
202
+ displayName: string;
203
+ };
204
+ originalName: string;
205
+ displayName: string;
206
+ } & {
207
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element) & {
208
+ original: ({ onSignIn }: import("./FooterSignIn.js").FooterSignInProps) => import("react").JSX.Element;
209
+ originalName: string;
210
+ displayName: string;
211
+ }>) => (props: unknown) => React.JSX.Element;
212
+ };
213
+ View: {
214
+ Container: (({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element) & {
215
+ original: ({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element;
216
+ originalName: string;
217
+ displayName: string;
218
+ } & {
219
+ original: (({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element) & {
220
+ original: ({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element;
221
+ originalName: string;
222
+ displayName: string;
223
+ };
224
+ originalName: string;
225
+ displayName: string;
226
+ } & {
227
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element) & {
228
+ original: ({ children }: import("./View.js").ContainerProps) => import("react").JSX.Element;
229
+ originalName: string;
230
+ displayName: string;
231
+ }>) => (props: unknown) => React.JSX.Element;
232
+ };
233
+ Content: (({ children }: import("./View.js").ContentProps) => import("react").JSX.Element) & {
234
+ original: ({ children }: import("./View.js").ContentProps) => import("react").JSX.Element;
235
+ originalName: string;
236
+ displayName: string;
237
+ } & {
238
+ original: (({ children }: import("./View.js").ContentProps) => import("react").JSX.Element) & {
239
+ original: ({ children }: import("./View.js").ContentProps) => import("react").JSX.Element;
240
+ originalName: string;
241
+ displayName: string;
242
+ };
243
+ originalName: string;
244
+ displayName: string;
245
+ } & {
246
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ children }: import("./View.js").ContentProps) => import("react").JSX.Element) & {
247
+ original: ({ children }: import("./View.js").ContentProps) => import("react").JSX.Element;
248
+ originalName: string;
249
+ displayName: string;
250
+ }>) => (props: unknown) => React.JSX.Element;
251
+ };
252
+ Title: (({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element) & {
253
+ original: ({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element;
254
+ originalName: string;
255
+ displayName: string;
256
+ } & {
257
+ original: (({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element) & {
258
+ original: ({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element;
259
+ originalName: string;
260
+ displayName: string;
261
+ };
262
+ originalName: string;
263
+ displayName: string;
264
+ } & {
265
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element) & {
266
+ original: ({ title, description }: import("./View.js").TitleProps) => import("react").JSX.Element;
267
+ originalName: string;
268
+ displayName: string;
269
+ }>) => (props: unknown) => React.JSX.Element;
270
+ };
271
+ Footer: (({ children }: import("./View.js").FooterProps) => import("react").JSX.Element) & {
272
+ original: ({ children }: import("./View.js").FooterProps) => import("react").JSX.Element;
273
+ originalName: string;
274
+ displayName: string;
275
+ } & {
276
+ original: (({ children }: import("./View.js").FooterProps) => import("react").JSX.Element) & {
277
+ original: ({ children }: import("./View.js").FooterProps) => import("react").JSX.Element;
278
+ originalName: string;
279
+ displayName: string;
280
+ };
281
+ originalName: string;
282
+ displayName: string;
283
+ } & {
284
+ createDecorator: (decorator: import("@webiny/app/index.js").ComponentDecorator<(({ children }: import("./View.js").FooterProps) => import("react").JSX.Element) & {
285
+ original: ({ children }: import("./View.js").FooterProps) => import("react").JSX.Element;
286
+ originalName: string;
287
+ displayName: string;
288
+ }>) => (props: unknown) => React.JSX.Element;
289
+ };
290
+ Error: typeof import("./View.js").Error;
291
+ };
292
+ };
@@ -0,0 +1,29 @@
1
+ import { SignIn } from "./SignIn.js";
2
+ import { ConfirmTotpCode } from "./ConfirmTotpCode.js";
3
+ import { SetupTotp } from "./SetupTotp.js";
4
+ import { RequireNewPassword } from "./RequireNewPassword.js";
5
+ import { RequestPasswordResetCode } from "./RequestPasswordResetCode.js";
6
+ import { PasswordResetCodeSent } from "./PasswordResetCodeSent.js";
7
+ import { SetNewPassword } from "./SetNewPassword.js";
8
+ import { FederatedLogin } from "./FederatedLogin.js";
9
+ import { FederatedProviders } from "./FederatedProviders.js";
10
+ import { Divider } from "./Divider.js";
11
+ import { FooterSignIn } from "./FooterSignIn.js";
12
+ import { View } from "./View.js";
13
+ const Components = {
14
+ SignIn: SignIn,
15
+ ConfirmTotpCode: ConfirmTotpCode,
16
+ SetupTotp: SetupTotp,
17
+ RequireNewPassword: RequireNewPassword,
18
+ RequestPasswordResetCode: RequestPasswordResetCode,
19
+ PasswordResetCodeSent: PasswordResetCodeSent,
20
+ SetNewPassword: SetNewPassword,
21
+ FederatedLogin: FederatedLogin,
22
+ FederatedProviders: FederatedProviders,
23
+ Divider: Divider,
24
+ FooterSignIn: FooterSignIn,
25
+ View: View
26
+ };
27
+ export { Components };
28
+
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/Cognito/components/index.js","sources":["../../../../../src/admin/presentation/Cognito/components/index.ts"],"sourcesContent":["import { SignIn } from \"./SignIn.js\";\nimport { ConfirmTotpCode } from \"./ConfirmTotpCode.js\";\nimport { SetupTotp } from \"./SetupTotp.js\";\nimport { RequireNewPassword } from \"./RequireNewPassword.js\";\nimport { RequestPasswordResetCode } from \"./RequestPasswordResetCode.js\";\nimport { PasswordResetCodeSent } from \"./PasswordResetCodeSent.js\";\nimport { SetNewPassword } from \"./SetNewPassword.js\";\nimport { FederatedLogin } from \"./FederatedLogin.js\";\nimport { FederatedProviders } from \"./FederatedProviders.js\";\nimport { Divider } from \"./Divider.js\";\nimport { FooterSignIn } from \"./FooterSignIn.js\";\nimport { View } from \"./View.js\";\n\nexport const Components = {\n SignIn,\n ConfirmTotpCode,\n SetupTotp,\n RequireNewPassword,\n RequestPasswordResetCode,\n PasswordResetCodeSent,\n SetNewPassword,\n FederatedLogin,\n FederatedProviders,\n Divider,\n FooterSignIn,\n View\n};\n"],"names":["Components","SignIn","ConfirmTotpCode","SetupTotp","RequireNewPassword","RequestPasswordResetCode","PasswordResetCodeSent","SetNewPassword","FederatedLogin","FederatedProviders","Divider","FooterSignIn","View"],"mappings":";;;;;;;;;;;;AAaO,MAAMA,aAAa;IACtBC,QAAMA;IACNC,iBAAeA;IACfC,WAASA;IACTC,oBAAkBA;IAClBC,0BAAwBA;IACxBC,uBAAqBA;IACrBC,gBAAcA;IACdC,gBAAcA;IACdC,oBAAkBA;IAClBC,SAAOA;IACPC,cAAYA;IACZC,MAAIA;AACR"}
@@ -0,0 +1 @@
1
+ export declare const CognitoSignInFeature: import("@webiny/feature/admin").FeatureDefinition<any, []>;
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/admin";
2
+ import { DefaultCognitoSignInConfig } from "../../DefaultCognitoSignInConfig.js";
3
+ const CognitoSignInFeature = createFeature({
4
+ name: "CognitoSignIn",
5
+ register (container) {
6
+ container.register(DefaultCognitoSignInConfig).inSingletonScope();
7
+ }
8
+ });
9
+ export { CognitoSignInFeature };
10
+
11
+ //# sourceMappingURL=signInFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/Cognito/signInFeature.js","sources":["../../../../src/admin/presentation/Cognito/signInFeature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/admin\";\nimport { DefaultCognitoSignInConfig } from \"~/admin/DefaultCognitoSignInConfig.js\";\n\nexport const CognitoSignInFeature = createFeature({\n name: \"CognitoSignIn\",\n register(container) {\n container.register(DefaultCognitoSignInConfig).inSingletonScope();\n }\n});\n"],"names":["CognitoSignInFeature","createFeature","container","DefaultCognitoSignInConfig"],"mappings":";;AAGO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,4BAA4B,gBAAgB;IACnE;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin/ui/views/Account/Account.js","sources":["../../../../../src/admin/ui/views/Account/Account.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport omit from \"lodash/omit.js\";\nimport { useFeature } from \"@webiny/app\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { GetCurrentUserFeature } from \"~/admin/features/account/getCurrentUser/index.js\";\nimport { UpdateCurrentUserFeature } from \"~/admin/features/account/updateCurrentUser/index.js\";\n\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n useIdentity\n} from \"@webiny/app-admin\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Alert, Button, Grid, Input, OverlayLoader, useToast } from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\ninterface UserAccountFormData {\n id?: boolean;\n firstName: string;\n lastName: string;\n email: string;\n password?: string;\n external?: boolean;\n avatar: {\n src?: string;\n };\n}\n\nexport const UserAccountForm = () => {\n const [isSaving, setSaving] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [user, setUser] = useState<Record<string, any>>({});\n const toast = useToast();\n const { identity } = useIdentity();\n const passwordValidator = usePasswordValidator();\n const { useCase: getCurrentUser } = useFeature(GetCurrentUserFeature);\n const { useCase: updateCurrentUser } = useFeature(UpdateCurrentUserFeature);\n\n useEffect(() => {\n getCurrentUser.execute().then(data => {\n setUser(data);\n setIsLoading(false);\n });\n }, []);\n\n const isFormLoading = isSaving || isLoading;\n const loaderMessage = isSaving ? \"Saving account...\" : \"Loading account...\";\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const isExternal = user?.external === true;\n\n const onSubmit = async (formData: UserAccountFormData) => {\n setSaving(true);\n\n try {\n await updateCurrentUser.execute(omit(formData, [\"id\", \"external\"]));\n\n identity.update({\n displayName: `${formData.firstName} ${formData.lastName}`,\n profile: {\n ...(identity.profile || {}),\n firstName: formData.firstName,\n lastName: formData.lastName,\n avatar: formData.avatar\n }\n });\n\n toast.showSuccessToast({ title: \"Account updated successfully!\" });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n toast.showWarningToast({\n title: \"Error updating user account\",\n description: message,\n duration: Infinity\n });\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <CenteredView maxWidth={600}>\n <Form<UserAccountFormData> data={user} onSubmit={onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm>\n {isFormLoading && <OverlayLoader text={loaderMessage} />}\n <SimpleFormHeader title={\"Account\"} />\n <SimpleFormContent>\n {isExternal && (\n <Grid>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Grid>\n <Grid.Column span={12} data-testid={\"avatar\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isExternal} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isExternal}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n {\" \"}\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isExternal}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isExternal}\n data-testid=\"account.email\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"off\"\n disabled={data.external}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n disabled={isExternal}\n data-testid=\"account.updatebutton\"\n onClick={form.submit}\n >{t`Update account`}</Button>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n};\n"],"names":["t","i18n","UserAccountForm","isSaving","setSaving","useState","isLoading","setIsLoading","user","setUser","toast","useToast","identity","useIdentity","passwordValidator","usePasswordValidator","getCurrentUser","useFeature","GetCurrentUserFeature","updateCurrentUser","UpdateCurrentUserFeature","useEffect","data","isFormLoading","loaderMessage","emailIsDisabled","appConfig","process","isExternal","onSubmit","formData","omit","error","message","Error","Infinity","CenteredView","Form","form","Bind","SimpleForm","OverlayLoader","SimpleFormHeader","SimpleFormContent","Grid","Alert","AvatarImage","validation","Input","SimpleFormFooter","Button"],"mappings":"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"}
1
+ {"version":3,"file":"admin/ui/views/Account/Account.js","sources":["../../../../../src/admin/ui/views/Account/Account.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport omit from \"lodash/omit.js\";\nimport { useFeature } from \"@webiny/app\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { GetCurrentUserFeature } from \"~/admin/features/account/getCurrentUser/index.js\";\nimport { UpdateCurrentUserFeature } from \"~/admin/features/account/updateCurrentUser/index.js\";\n\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n useIdentity\n} from \"@webiny/app-admin\";\nimport { CenteredView } from \"@webiny/app-admin\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Alert, Button, Grid, Input, OverlayLoader, useToast } from \"@webiny/admin-ui\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\ninterface UserAccountFormData {\n id?: boolean;\n firstName: string;\n lastName: string;\n email: string;\n password?: string;\n external?: boolean;\n avatar: {\n src?: string;\n };\n}\n\nexport const UserAccountForm = () => {\n const [isSaving, setSaving] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [user, setUser] = useState<Record<string, any>>({});\n const toast = useToast();\n const { identity } = useIdentity();\n const passwordValidator = usePasswordValidator();\n const { useCase: getCurrentUser } = useFeature(GetCurrentUserFeature);\n const { useCase: updateCurrentUser } = useFeature(UpdateCurrentUserFeature);\n\n useEffect(() => {\n getCurrentUser.execute().then(data => {\n setUser(data);\n setIsLoading(false);\n });\n }, []);\n\n const isFormLoading = isSaving || isLoading;\n const loaderMessage = isSaving ? \"Saving account...\" : \"Loading account...\";\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const isExternal = user?.external === true;\n\n const onSubmit = async (formData: UserAccountFormData) => {\n setSaving(true);\n\n try {\n await updateCurrentUser.execute(omit(formData, [\"id\", \"external\"]));\n\n identity.update({\n displayName: `${formData.firstName} ${formData.lastName}`,\n profile: {\n ...(identity.profile || {}),\n firstName: formData.firstName,\n lastName: formData.lastName,\n avatar: formData.avatar\n }\n });\n\n toast.showSuccessToast({ title: \"Account updated successfully!\" });\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Unknown error\";\n toast.showWarningToast({\n title: \"Error updating user account\",\n description: message,\n duration: Infinity\n });\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <CenteredView maxWidth={600}>\n <Form<UserAccountFormData> data={user} onSubmit={onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm>\n {isFormLoading && <OverlayLoader text={loaderMessage} />}\n <SimpleFormHeader title={\"Account\"} />\n <SimpleFormContent>\n {isExternal && (\n <Grid>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Grid>\n <Grid.Column span={12} data-testid={\"avatar\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isExternal} />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isExternal}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n {\" \"}\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isExternal}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isExternal}\n data-testid=\"account.email\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"off\"\n disabled={data.external}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n disabled={isExternal}\n data-testid=\"account.updatebutton\"\n onClick={form.submit}\n >{t`Update account`}</Button>\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n </CenteredView>\n );\n};\n"],"names":["t","i18n","UserAccountForm","isSaving","setSaving","useState","isLoading","setIsLoading","user","setUser","toast","useToast","identity","useIdentity","passwordValidator","usePasswordValidator","getCurrentUser","useFeature","GetCurrentUserFeature","updateCurrentUser","UpdateCurrentUserFeature","useEffect","data","isFormLoading","loaderMessage","emailIsDisabled","appConfig","process","isExternal","onSubmit","formData","omit","error","message","Error","Infinity","CenteredView","Form","form","Bind","SimpleForm","OverlayLoader","SimpleFormHeader","SimpleFormContent","Grid","Alert","AvatarImage","validation","Input","SimpleFormFooter","Button"],"mappings":";;;;;;;;;;;;;AAsBA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAcX,MAAMC,kBAAkB;IAC3B,MAAM,CAACC,UAAUC,UAAU,GAAGC,SAAS;IACvC,MAAM,CAACC,WAAWC,aAAa,GAAGF,SAAS;IAC3C,MAAM,CAACG,MAAMC,QAAQ,GAAGJ,SAA8B,CAAC;IACvD,MAAMK,QAAQC;IACd,MAAM,EAAEC,QAAQ,EAAE,GAAGC;IACrB,MAAMC,oBAAoBC;IAC1B,MAAM,EAAE,SAASC,cAAc,EAAE,GAAGC,WAAWC;IAC/C,MAAM,EAAE,SAASC,iBAAiB,EAAE,GAAGF,WAAWG;IAElDC,UAAU;QACNL,eAAe,OAAO,GAAG,IAAI,CAACM,CAAAA;YAC1Bb,QAAQa;YACRf,aAAa;QACjB;IACJ,GAAG,EAAE;IAEL,MAAMgB,gBAAgBpB,YAAYG;IAClC,MAAMkB,gBAAgBrB,WAAW,sBAAsB;IAEvD,MAAMsB,kBAAkBC,OAAAA,MAAgB,CACpC,+BACAC,AAAsD,YAAtDA,QAAQ,GAAG,CAAC,qCAAqC;IAGrD,MAAMC,aAAapB,MAAM,aAAa;IAEtC,MAAMqB,WAAW,OAAOC;QACpB1B,UAAU;QAEV,IAAI;YACA,MAAMe,kBAAkB,OAAO,CAACY,KAAKD,UAAU;gBAAC;gBAAM;aAAW;YAEjElB,SAAS,MAAM,CAAC;gBACZ,aAAa,GAAGkB,SAAS,SAAS,CAAC,CAAC,EAAEA,SAAS,QAAQ,EAAE;gBACzD,SAAS;oBACL,GAAIlB,SAAS,OAAO,IAAI,CAAC,CAAC;oBAC1B,WAAWkB,SAAS,SAAS;oBAC7B,UAAUA,SAAS,QAAQ;oBAC3B,QAAQA,SAAS,MAAM;gBAC3B;YACJ;YAEApB,MAAM,gBAAgB,CAAC;gBAAE,OAAO;YAAgC;QACpE,EAAE,OAAOsB,OAAO;YACZ,MAAMC,UAAUD,iBAAiBE,QAAQF,MAAM,OAAO,GAAG;YACzDtB,MAAM,gBAAgB,CAAC;gBACnB,OAAO;gBACP,aAAauB;gBACb,UAAUE,KAAQ;YACtB;QACJ,SAAU;YACN/B,UAAU;QACd;IACJ;IAEA,OAAO,WAAP,GACI,oBAACgC,cAAYA;QAAC,UAAU;qBACpB,oBAACC,MAAIA;QAAsB,MAAM7B;QAAM,UAAUqB;OAC5C,CAAC,EAAEP,IAAI,EAAEgB,IAAI,EAAEC,IAAI,EAAE,iBAClB,oBAACC,YAAUA,MACNjB,iBAAiB,WAAjBA,GAAiB,oBAACkB,eAAaA;YAAC,MAAMjB;0BACvC,oBAACkB,kBAAgBA;YAAC,OAAO;0BACzB,oBAACC,mBAAiBA,MACbf,cAAc,WAAdA,GACG,oBAACgB,MAAIA,MAAAA,WAAAA,GACD,oBAACA,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACC,OAAKA;YAAC,MAAM;YAAQ,OAAO;WAAiB,wEAMzD,oBAACD,MAAIA,MAAAA,WAAAA,GACD,oBAACA,KAAK,MAAM;YAAC,MAAM;YAAI,eAAa;yBAChC,oBAACL,MAAAA;YAAK,MAAK;yBACP,oBAACO,aAAWA;YAAC;YAAM,UAAUlB;4BAGrC,oBAACgB,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACL,MAAAA;YACG,MAAK;YACL,YAAYQ,WAAW,MAAM,CAAC;yBAE9B,oBAACC,OAAKA;YACF,OAAOhD,CAAC,CAAC,UAAU,CAAC;YACpB,UAAU4B;YACV,eAAY;4BAIxB,oBAACgB,KAAK,MAAM;YAAC,MAAM;WACd,mBACD,oBAACL,MAAAA;YACG,MAAK;YACL,YAAYQ,WAAW,MAAM,CAAC;yBAE9B,oBAACC,OAAKA;YACF,OAAOhD,CAAC,CAAC,SAAS,CAAC;YACnB,UAAU4B;YACV,eAAY;4BAIxB,oBAACgB,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACL,MAAAA;YACG,MAAK;YACL,YAAYQ,WAAW,MAAM,CAAC;yBAE9B,oBAACC,OAAKA;YACF,OAAO1B,KAAK,KAAK;YACjB,OAAOtB,CAAC,CAAC,KAAK,CAAC;YACf,UAAUyB,mBAAmBG;YAC7B,eAAY;YACZ,aACI;4BAKhB,oBAACgB,KAAK,MAAM;YAAC,MAAM;yBACf,oBAACL,MAAAA;YAAK,MAAK;YAAW,YAAYzB;yBAC9B,oBAACkC,OAAKA;YACF,cAAa;YACb,UAAU1B,KAAK,QAAQ;YACvB,aACIA,KAAK,EAAE,IAAI;YAEf,MAAK;YACL,OAAO;YACP,eAAY;8BAMhC,oBAAC2B,kBAAgBA;YAAC,eAAa;yBAC3B,oBAACC,QAAMA;YACH,UAAUtB;YACV,eAAY;YACZ,SAASU,KAAK,MAAM;WACtBtC,CAAC,CAAC,cAAc,CAAC;AAO/C"}
@@ -1,7 +1,7 @@
1
1
  import react, { useMemo } from "react";
2
2
  import { i18n } from "@webiny/app/i18n/index.js";
3
3
  import { Form } from "@webiny/form";
4
- import { validation } from "@webiny/validation";
4
+ import { validation as validation_validation } from "@webiny/validation";
5
5
  import { EmptyView, RolesMultiAutocomplete, SimpleForm, SimpleFormContent, SimpleFormFooter, SimpleFormHeader, TeamsMultiAutocomplete, useAuthentication, useRouter } from "@webiny/app-admin";
6
6
  import { ReactComponent } from "@webiny/icons/add.svg";
7
7
  import { ReactComponent as gpp_maybe_svg_ReactComponent } from "@webiny/icons/gpp_maybe.svg";
@@ -24,7 +24,7 @@ const UserForm = ({ teams })=>{
24
24
  const isNewUser = userForm.isNewUser;
25
25
  const emailIsDisabled = config.getKey("ADMIN_USER_CAN_CHANGE_EMAIL", "false" === process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL);
26
26
  const groupValidators = useMemo(()=>teams ? [] : [
27
- validation.create("required")
27
+ validation_validation.create("required")
28
28
  ], [
29
29
  teams
30
30
  ]);
@@ -82,7 +82,7 @@ const UserForm = ({ teams })=>{
82
82
  span: 12
83
83
  }, /*#__PURE__*/ react.createElement(Bind, {
84
84
  name: "firstName",
85
- validators: validation.create("required")
85
+ validators: validation_validation.create("required")
86
86
  }, /*#__PURE__*/ react.createElement(Input, {
87
87
  label: t`First Name`,
88
88
  disabled: isDisabled,
@@ -91,7 +91,7 @@ const UserForm = ({ teams })=>{
91
91
  span: 12
92
92
  }, /*#__PURE__*/ react.createElement(Bind, {
93
93
  name: "lastName",
94
- validators: validation.create("required")
94
+ validators: validation_validation.create("required")
95
95
  }, /*#__PURE__*/ react.createElement(Input, {
96
96
  label: t`Last Name`,
97
97
  disabled: isDisabled,
@@ -100,7 +100,7 @@ const UserForm = ({ teams })=>{
100
100
  span: 12
101
101
  }, /*#__PURE__*/ react.createElement(Bind, {
102
102
  name: "email",
103
- validators: validation.create("required,email")
103
+ validators: validation_validation.create("required,email")
104
104
  }, /*#__PURE__*/ react.createElement(Input, {
105
105
  value: data.email,
106
106
  label: t`Email`,
@@ -129,11 +129,14 @@ const UserForm = ({ teams })=>{
129
129
  }, /*#__PURE__*/ react.createElement(Bind, {
130
130
  name: "roles",
131
131
  validators: groupValidators
132
- }, /*#__PURE__*/ react.createElement(RolesMultiAutocomplete, {
133
- label: "Roles",
134
- "data-testid": "roles-autocomplete",
135
- disabled: isDisabled
136
- }))))), teams ? /*#__PURE__*/ react.createElement(Accordion.Item, {
132
+ }, ({ value, onChange, validation })=>/*#__PURE__*/ react.createElement(RolesMultiAutocomplete, {
133
+ values: value,
134
+ onChange: onChange,
135
+ validation: validation,
136
+ label: "Roles",
137
+ "data-testid": "roles-autocomplete",
138
+ disabled: isDisabled
139
+ }))))), teams ? /*#__PURE__*/ react.createElement(Accordion.Item, {
137
140
  title: "Teams",
138
141
  description: "Assign to teams",
139
142
  icon: /*#__PURE__*/ react.createElement(admin_panel_settings_svg_ReactComponent, null)
@@ -141,11 +144,14 @@ const UserForm = ({ teams })=>{
141
144
  span: 12
142
145
  }, /*#__PURE__*/ react.createElement(Bind, {
143
146
  name: "teams"
144
- }, /*#__PURE__*/ react.createElement(TeamsMultiAutocomplete, {
145
- label: "Teams",
146
- "data-testid": "teams-autocomplete",
147
- disabled: isDisabled
148
- }))))) : null)), /*#__PURE__*/ react.createElement(SimpleFormFooter, {
147
+ }, ({ value, onChange, validation })=>/*#__PURE__*/ react.createElement(TeamsMultiAutocomplete, {
148
+ values: value,
149
+ onChange: onChange,
150
+ validation: validation,
151
+ label: "Teams",
152
+ "data-testid": "teams-autocomplete",
153
+ disabled: isDisabled
154
+ }))))) : null)), /*#__PURE__*/ react.createElement(SimpleFormFooter, {
149
155
  "data-testid": "form-footer"
150
156
  }, /*#__PURE__*/ react.createElement(Button, {
151
157
  variant: "secondary",
@@ -1 +1 @@
1
- {"version":3,"file":"admin/ui/views/Users/UsersForm.js","sources":["../../../../../src/admin/ui/views/Users/UsersForm.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n EmptyView,\n RolesMultiAutocomplete,\n TeamsMultiAutocomplete,\n useAuthentication,\n useRouter\n} from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as SecurityIcon } from \"@webiny/icons/gpp_maybe.svg\";\nimport { ReactComponent as SecurityTeamsIcon } from \"@webiny/icons/admin_panel_settings.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { Accordion, Alert, OverlayLoader, Button, Input, Grid, Link } from \"@webiny/admin-ui\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { useUserForm } from \"~/admin/ui/views/Users/hooks/useUserForm.js\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Routes } from \"~/admin/routes.js\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\nexport interface UserFormProps {\n teams: boolean;\n}\n\nexport const UserForm = ({ teams }: UserFormProps) => {\n const { identity } = useAuthentication();\n const userForm = useUserForm();\n const passwordValidator = usePasswordValidator();\n const { getLink } = useRouter();\n\n const isExternal = userForm.user?.external === true;\n const formTitle = userForm.isNewUser ? \"New User\" : userForm.fullName;\n const isNewUser = userForm.isNewUser;\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const groupValidators = useMemo(() => {\n return teams ? [] : [validation.create(\"required\")];\n }, [teams]);\n\n const accountLink = getLink(Routes.Users.Account);\n\n // Render \"No content\" selected view.\n if (userForm.showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display user details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New User`}\n data-testid=\"new-record-button\"\n onClick={userForm.createUser}\n />\n }\n />\n );\n }\n\n const isSelf = userForm.user?.id === identity.id;\n const isDisabled = isExternal || isSelf;\n\n return (\n <Form data={userForm.user} onSubmit={userForm.onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm size={\"lg\"}>\n {userForm.loading && <OverlayLoader />}\n <div className={\"mb-xl\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isDisabled} />\n </Bind>\n </div>\n <SimpleFormHeader title={formTitle} />\n <SimpleFormContent>\n {isExternal && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n {isSelf && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"Own Profile\"}>\n You cannot edit your own profile using this form. Please use\n the <Link to={accountLink}>account settings</Link> instead.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Accordion variant={\"underline\"}>\n <Accordion.Item\n title={\"Bio\"}\n description={\"Account information\"}\n icon={<SettingsIcon />}\n defaultOpen={true}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isDisabled}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isDisabled}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isDisabled}\n data-testid=\"account.email\"\n autoComplete=\"new-password\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"new-password\"\n disabled={isDisabled}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n <Accordion.Item\n title={\"Roles\"}\n description={\"Assign to security roles\"}\n icon={<SecurityIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"roles\"} validators={groupValidators}>\n <RolesMultiAutocomplete\n label={\"Roles\"}\n data-testid=\"roles-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n {teams ? (\n <Accordion.Item\n title={\"Teams\"}\n description={\"Assign to teams\"}\n icon={<SecurityTeamsIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"teams\"}>\n <TeamsMultiAutocomplete\n label={\"Teams\"}\n data-testid=\"teams-autocomplete\"\n disabled={isDisabled}\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n ) : null}\n </Accordion>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={userForm.cancelEditing}\n />\n <Button\n variant={\"primary\"}\n text={isNewUser ? t`Create user` : t`Update user`}\n disabled={isDisabled}\n onClick={form.submit}\n />\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n"],"names":["t","i18n","UserForm","teams","identity","useAuthentication","userForm","useUserForm","passwordValidator","usePasswordValidator","getLink","useRouter","isExternal","formTitle","isNewUser","emailIsDisabled","appConfig","process","groupValidators","useMemo","validation","accountLink","Routes","EmptyView","SettingsIcon","Button","AddIcon","isSelf","isDisabled","Form","data","form","Bind","SimpleForm","OverlayLoader","AvatarImage","SimpleFormHeader","SimpleFormContent","Grid","Alert","Link","Accordion","Input","SecurityIcon","RolesMultiAutocomplete","SecurityTeamsIcon","TeamsMultiAutocomplete","SimpleFormFooter"],"mappings":"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"}
1
+ {"version":3,"file":"admin/ui/views/Users/UsersForm.js","sources":["../../../../../src/admin/ui/views/Users/UsersForm.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { Form } from \"@webiny/form\";\nimport { validation } from \"@webiny/validation\";\nimport {\n SimpleForm,\n SimpleFormHeader,\n SimpleFormFooter,\n SimpleFormContent,\n EmptyView,\n RolesMultiAutocomplete,\n TeamsMultiAutocomplete,\n useAuthentication,\n useRouter\n} from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport { ReactComponent as SecurityIcon } from \"@webiny/icons/gpp_maybe.svg\";\nimport { ReactComponent as SecurityTeamsIcon } from \"@webiny/icons/admin_panel_settings.svg\";\nimport { ReactComponent as SettingsIcon } from \"@webiny/icons/settings.svg\";\nimport { Accordion, Alert, OverlayLoader, Button, Input, Grid, Link } from \"@webiny/admin-ui\";\nimport { config as appConfig } from \"@webiny/app/config.js\";\nimport { AvatarImage } from \"../../components/AvatarImage/index.js\";\nimport { useUserForm } from \"~/admin/ui/views/Users/hooks/useUserForm.js\";\nimport { usePasswordValidator } from \"~/admin/presentation/shared/usePasswordValidator.js\";\nimport { Routes } from \"~/admin/routes.js\";\n\nconst t = i18n.ns(\"app-security-admin-users/account-form\");\n\nexport interface UserFormProps {\n teams: boolean;\n}\n\nexport const UserForm = ({ teams }: UserFormProps) => {\n const { identity } = useAuthentication();\n const userForm = useUserForm();\n const passwordValidator = usePasswordValidator();\n const { getLink } = useRouter();\n\n const isExternal = userForm.user?.external === true;\n const formTitle = userForm.isNewUser ? \"New User\" : userForm.fullName;\n const isNewUser = userForm.isNewUser;\n\n const emailIsDisabled = appConfig.getKey(\n \"ADMIN_USER_CAN_CHANGE_EMAIL\",\n process.env.REACT_APP_ADMIN_USER_CAN_CHANGE_EMAIL === \"false\"\n );\n\n const groupValidators = useMemo(() => {\n return teams ? [] : [validation.create(\"required\")];\n }, [teams]);\n\n const accountLink = getLink(Routes.Users.Account);\n\n // Render \"No content\" selected view.\n if (userForm.showEmptyView) {\n return (\n <EmptyView\n icon={<SettingsIcon />}\n title={t`Click on the left side list to display user details or create a...`}\n action={\n <Button\n icon={<AddIcon />}\n text={t`New User`}\n data-testid=\"new-record-button\"\n onClick={userForm.createUser}\n />\n }\n />\n );\n }\n\n const isSelf = userForm.user?.id === identity.id;\n const isDisabled = isExternal || isSelf;\n\n return (\n <Form data={userForm.user} onSubmit={userForm.onSubmit}>\n {({ data, form, Bind }) => (\n <SimpleForm size={\"lg\"}>\n {userForm.loading && <OverlayLoader />}\n <div className={\"mb-xl\"}>\n <Bind name=\"avatar\">\n <AvatarImage round disabled={isDisabled} />\n </Bind>\n </div>\n <SimpleFormHeader title={formTitle} />\n <SimpleFormContent>\n {isExternal && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"External User\"}>\n This user is an external user and cannot be edited.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n {isSelf && (\n <Grid className={\"mb-lg\"}>\n <Grid.Column span={12}>\n <Alert type={\"info\"} title={\"Own Profile\"}>\n You cannot edit your own profile using this form. Please use\n the <Link to={accountLink}>account settings</Link> instead.\n </Alert>\n </Grid.Column>\n </Grid>\n )}\n <Accordion variant={\"underline\"}>\n <Accordion.Item\n title={\"Bio\"}\n description={\"Account information\"}\n icon={<SettingsIcon />}\n defaultOpen={true}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind\n name=\"firstName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`First Name`}\n disabled={isDisabled}\n data-testid=\"account.firstname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"lastName\"\n validators={validation.create(\"required\")}\n >\n <Input\n label={t`Last Name`}\n disabled={isDisabled}\n data-testid=\"account.lastname\"\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind\n name=\"email\"\n validators={validation.create(\"required,email\")}\n >\n <Input\n value={data.email}\n label={t`Email`}\n disabled={emailIsDisabled || isDisabled}\n data-testid=\"account.email\"\n autoComplete=\"new-password\"\n description={\n \"Email is your unique identifier used to login!\"\n }\n />\n </Bind>\n </Grid.Column>\n <Grid.Column span={12}>\n <Bind name=\"password\" validators={passwordValidator}>\n <Input\n autoComplete=\"new-password\"\n disabled={isDisabled}\n description={\n data.id && \"Type a new password to reset it.\"\n }\n type=\"password\"\n label={\"Password\"}\n data-testid=\"account.password\"\n />\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n <Accordion.Item\n title={\"Roles\"}\n description={\"Assign to security roles\"}\n icon={<SecurityIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"roles\"} validators={groupValidators}>\n {({ value, onChange, validation }) => (\n <RolesMultiAutocomplete\n values={value}\n onChange={onChange}\n validation={validation}\n label={\"Roles\"}\n data-testid=\"roles-autocomplete\"\n disabled={isDisabled}\n />\n )}\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n {teams ? (\n <Accordion.Item\n title={\"Teams\"}\n description={\"Assign to teams\"}\n icon={<SecurityTeamsIcon />}\n >\n <Grid>\n <Grid.Column span={12}>\n <Bind name={\"teams\"}>\n {({ value, onChange, validation }) => (\n <TeamsMultiAutocomplete\n values={value}\n onChange={onChange}\n validation={validation}\n label={\"Teams\"}\n data-testid=\"teams-autocomplete\"\n disabled={isDisabled}\n />\n )}\n </Bind>\n </Grid.Column>\n </Grid>\n </Accordion.Item>\n ) : null}\n </Accordion>\n </SimpleFormContent>\n <SimpleFormFooter data-testid={\"form-footer\"}>\n <Button\n variant={\"secondary\"}\n text={t`Cancel`}\n onClick={userForm.cancelEditing}\n />\n <Button\n variant={\"primary\"}\n text={isNewUser ? t`Create user` : t`Update user`}\n disabled={isDisabled}\n onClick={form.submit}\n />\n </SimpleFormFooter>\n </SimpleForm>\n )}\n </Form>\n );\n};\n"],"names":["t","i18n","UserForm","teams","identity","useAuthentication","userForm","useUserForm","passwordValidator","usePasswordValidator","getLink","useRouter","isExternal","formTitle","isNewUser","emailIsDisabled","appConfig","process","groupValidators","useMemo","validation","accountLink","Routes","EmptyView","SettingsIcon","Button","AddIcon","isSelf","isDisabled","Form","data","form","Bind","SimpleForm","OverlayLoader","AvatarImage","SimpleFormHeader","SimpleFormContent","Grid","Alert","Link","Accordion","Input","SecurityIcon","value","onChange","RolesMultiAutocomplete","SecurityTeamsIcon","TeamsMultiAutocomplete","SimpleFormFooter"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import react from "react";
2
- import { LeftPanel, RightPanel, SplitView, useWcp } from "@webiny/app-admin";
2
+ import { LeftPanel, RightPanel, SplitView, useFeatureFlags } from "@webiny/app-admin";
3
3
  import UsersDataList from "./UsersDataList.js";
4
4
  import { UserForm } from "./UsersForm.js";
5
5
  const UsersView = ()=>{
6
- const wcp = useWcp();
7
- const teams = wcp.canUseTeams();
6
+ const featureFlags = useFeatureFlags();
7
+ const teams = featureFlags.isEnabled("advancedAccessControlLayer.teams");
8
8
  return /*#__PURE__*/ react.createElement(SplitView, null, /*#__PURE__*/ react.createElement(LeftPanel, null, /*#__PURE__*/ react.createElement(UsersDataList, null)), /*#__PURE__*/ react.createElement(RightPanel, null, /*#__PURE__*/ react.createElement(UserForm, {
9
9
  teams: teams
10
10
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"admin/ui/views/Users/UsersView.js","sources":["../../../../../src/admin/ui/views/Users/UsersView.tsx"],"sourcesContent":["import React from \"react\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin\";\nimport UsersDataList from \"~/admin/ui/views/Users/UsersDataList.js\";\nimport { useWcp } from \"@webiny/app-admin\";\nimport { UserForm } from \"./UsersForm.js\";\n\nexport const UsersView = () => {\n const wcp = useWcp();\n\n const teams = wcp.canUseTeams();\n\n return (\n <SplitView>\n <LeftPanel>\n <UsersDataList />\n </LeftPanel>\n <RightPanel>\n <UserForm teams={teams} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"names":["UsersView","wcp","useWcp","teams","SplitView","LeftPanel","UsersDataList","RightPanel","UserForm"],"mappings":";;;;AAMO,MAAMA,YAAY;IACrB,MAAMC,MAAMC;IAEZ,MAAMC,QAAQF,IAAI,WAAW;IAE7B,OAAO,WAAP,GACI,oBAACG,WAASA,MAAAA,WAAAA,GACN,oBAACC,WAASA,MAAAA,WAAAA,GACN,oBAACC,eAAaA,QAAAA,WAAAA,GAElB,oBAACC,YAAUA,MAAAA,WAAAA,GACP,oBAACC,UAAQA;QAAC,OAAOL;;AAIjC"}
1
+ {"version":3,"file":"admin/ui/views/Users/UsersView.js","sources":["../../../../../src/admin/ui/views/Users/UsersView.tsx"],"sourcesContent":["import React from \"react\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin\";\nimport UsersDataList from \"~/admin/ui/views/Users/UsersDataList.js\";\nimport { useFeatureFlags } from \"@webiny/app-admin\";\nimport { UserForm } from \"./UsersForm.js\";\n\nexport const UsersView = () => {\n const featureFlags = useFeatureFlags();\n\n const teams = featureFlags.isEnabled(\"advancedAccessControlLayer.teams\");\n\n return (\n <SplitView>\n <LeftPanel>\n <UsersDataList />\n </LeftPanel>\n <RightPanel>\n <UserForm teams={teams} />\n </RightPanel>\n </SplitView>\n );\n};\n"],"names":["UsersView","featureFlags","useFeatureFlags","teams","SplitView","LeftPanel","UsersDataList","RightPanel","UserForm"],"mappings":";;;;AAMO,MAAMA,YAAY;IACrB,MAAMC,eAAeC;IAErB,MAAMC,QAAQF,aAAa,SAAS,CAAC;IAErC,OAAO,WAAP,GACI,oBAACG,WAASA,MAAAA,WAAAA,GACN,oBAACC,WAASA,MAAAA,WAAAA,GACN,oBAACC,eAAaA,QAAAA,WAAAA,GAElB,oBAACC,YAAUA,MAAAA,WAAAA,GACP,oBAACC,UAAQA;QAAC,OAAOL;;AAIjC"}