@strapi/plugin-users-permissions 4.15.2 → 4.15.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/package.json +7 -7
  2. package/dist/_chunks/ar-20af7bfe.js +0 -44
  3. package/dist/_chunks/ar-20af7bfe.js.map +0 -1
  4. package/dist/_chunks/ar-56e57465.mjs +0 -44
  5. package/dist/_chunks/ar-56e57465.mjs.map +0 -1
  6. package/dist/_chunks/cs-0521a3c8.mjs +0 -50
  7. package/dist/_chunks/cs-0521a3c8.mjs.map +0 -1
  8. package/dist/_chunks/cs-6d7de06a.js +0 -50
  9. package/dist/_chunks/cs-6d7de06a.js.map +0 -1
  10. package/dist/_chunks/de-4af0884b.js +0 -62
  11. package/dist/_chunks/de-4af0884b.js.map +0 -1
  12. package/dist/_chunks/de-84fed33d.mjs +0 -62
  13. package/dist/_chunks/de-84fed33d.mjs.map +0 -1
  14. package/dist/_chunks/dk-21e25c4b.js +0 -86
  15. package/dist/_chunks/dk-21e25c4b.js.map +0 -1
  16. package/dist/_chunks/dk-d8302360.mjs +0 -86
  17. package/dist/_chunks/dk-d8302360.mjs.map +0 -1
  18. package/dist/_chunks/en-746a275e.js +0 -86
  19. package/dist/_chunks/en-746a275e.js.map +0 -1
  20. package/dist/_chunks/en-a610d7d0.mjs +0 -86
  21. package/dist/_chunks/en-a610d7d0.mjs.map +0 -1
  22. package/dist/_chunks/es-9d9ad31c.mjs +0 -86
  23. package/dist/_chunks/es-9d9ad31c.mjs.map +0 -1
  24. package/dist/_chunks/es-b6ae0f5e.js +0 -86
  25. package/dist/_chunks/es-b6ae0f5e.js.map +0 -1
  26. package/dist/_chunks/fr-0722d6cd.mjs +0 -50
  27. package/dist/_chunks/fr-0722d6cd.mjs.map +0 -1
  28. package/dist/_chunks/fr-dd77fc67.js +0 -50
  29. package/dist/_chunks/fr-dd77fc67.js.map +0 -1
  30. package/dist/_chunks/id-03eb1a4c.mjs +0 -62
  31. package/dist/_chunks/id-03eb1a4c.mjs.map +0 -1
  32. package/dist/_chunks/id-c19698f1.js +0 -62
  33. package/dist/_chunks/id-c19698f1.js.map +0 -1
  34. package/dist/_chunks/index-25a30587.mjs +0 -253
  35. package/dist/_chunks/index-25a30587.mjs.map +0 -1
  36. package/dist/_chunks/index-3b689442.js +0 -252
  37. package/dist/_chunks/index-3b689442.js.map +0 -1
  38. package/dist/_chunks/index-44d267a6.mjs +0 -385
  39. package/dist/_chunks/index-44d267a6.mjs.map +0 -1
  40. package/dist/_chunks/index-4f41c158.js +0 -319
  41. package/dist/_chunks/index-4f41c158.js.map +0 -1
  42. package/dist/_chunks/index-6d4afe40.mjs +0 -615
  43. package/dist/_chunks/index-6d4afe40.mjs.map +0 -1
  44. package/dist/_chunks/index-8d1dab8c.js +0 -638
  45. package/dist/_chunks/index-8d1dab8c.js.map +0 -1
  46. package/dist/_chunks/index-9aae7d58.js +0 -1191
  47. package/dist/_chunks/index-9aae7d58.js.map +0 -1
  48. package/dist/_chunks/index-d2ccdeea.mjs +0 -300
  49. package/dist/_chunks/index-d2ccdeea.mjs.map +0 -1
  50. package/dist/_chunks/index-d52af4b4.js +0 -407
  51. package/dist/_chunks/index-d52af4b4.js.map +0 -1
  52. package/dist/_chunks/index-f50d43b2.mjs +0 -1159
  53. package/dist/_chunks/index-f50d43b2.mjs.map +0 -1
  54. package/dist/_chunks/it-06b8d8a3.js +0 -62
  55. package/dist/_chunks/it-06b8d8a3.js.map +0 -1
  56. package/dist/_chunks/it-95fb8dcc.mjs +0 -62
  57. package/dist/_chunks/it-95fb8dcc.mjs.map +0 -1
  58. package/dist/_chunks/ja-557e03ee.mjs +0 -48
  59. package/dist/_chunks/ja-557e03ee.mjs.map +0 -1
  60. package/dist/_chunks/ja-e92e9903.js +0 -48
  61. package/dist/_chunks/ja-e92e9903.js.map +0 -1
  62. package/dist/_chunks/ko-5148326d.js +0 -86
  63. package/dist/_chunks/ko-5148326d.js.map +0 -1
  64. package/dist/_chunks/ko-d3b19f18.mjs +0 -86
  65. package/dist/_chunks/ko-d3b19f18.mjs.map +0 -1
  66. package/dist/_chunks/ms-1e62b726.js +0 -49
  67. package/dist/_chunks/ms-1e62b726.js.map +0 -1
  68. package/dist/_chunks/ms-b8a16476.mjs +0 -49
  69. package/dist/_chunks/ms-b8a16476.mjs.map +0 -1
  70. package/dist/_chunks/nl-66ef33aa.js +0 -48
  71. package/dist/_chunks/nl-66ef33aa.js.map +0 -1
  72. package/dist/_chunks/nl-fb114313.mjs +0 -48
  73. package/dist/_chunks/nl-fb114313.mjs.map +0 -1
  74. package/dist/_chunks/pl-5d70d4e8.mjs +0 -86
  75. package/dist/_chunks/pl-5d70d4e8.mjs.map +0 -1
  76. package/dist/_chunks/pl-7aa4933a.js +0 -86
  77. package/dist/_chunks/pl-7aa4933a.js.map +0 -1
  78. package/dist/_chunks/pt-95c2c76f.mjs +0 -48
  79. package/dist/_chunks/pt-95c2c76f.mjs.map +0 -1
  80. package/dist/_chunks/pt-BR-075f271a.mjs +0 -44
  81. package/dist/_chunks/pt-BR-075f271a.mjs.map +0 -1
  82. package/dist/_chunks/pt-BR-820fcd20.js +0 -44
  83. package/dist/_chunks/pt-BR-820fcd20.js.map +0 -1
  84. package/dist/_chunks/pt-a470d4e6.js +0 -48
  85. package/dist/_chunks/pt-a470d4e6.js.map +0 -1
  86. package/dist/_chunks/ru-625a0fe5.mjs +0 -86
  87. package/dist/_chunks/ru-625a0fe5.mjs.map +0 -1
  88. package/dist/_chunks/ru-cd0d1ac9.js +0 -86
  89. package/dist/_chunks/ru-cd0d1ac9.js.map +0 -1
  90. package/dist/_chunks/sk-495ecbe4.mjs +0 -50
  91. package/dist/_chunks/sk-495ecbe4.mjs.map +0 -1
  92. package/dist/_chunks/sk-8334fbf7.js +0 -50
  93. package/dist/_chunks/sk-8334fbf7.js.map +0 -1
  94. package/dist/_chunks/sv-137a2f79.js +0 -86
  95. package/dist/_chunks/sv-137a2f79.js.map +0 -1
  96. package/dist/_chunks/sv-60a1fabf.mjs +0 -86
  97. package/dist/_chunks/sv-60a1fabf.mjs.map +0 -1
  98. package/dist/_chunks/th-7fe328ef.js +0 -60
  99. package/dist/_chunks/th-7fe328ef.js.map +0 -1
  100. package/dist/_chunks/th-f633d0ed.mjs +0 -60
  101. package/dist/_chunks/th-f633d0ed.mjs.map +0 -1
  102. package/dist/_chunks/tr-16211986.mjs +0 -85
  103. package/dist/_chunks/tr-16211986.mjs.map +0 -1
  104. package/dist/_chunks/tr-eae92999.js +0 -85
  105. package/dist/_chunks/tr-eae92999.js.map +0 -1
  106. package/dist/_chunks/uk-0c33935a.js +0 -49
  107. package/dist/_chunks/uk-0c33935a.js.map +0 -1
  108. package/dist/_chunks/uk-f1fae414.mjs +0 -49
  109. package/dist/_chunks/uk-f1fae414.mjs.map +0 -1
  110. package/dist/_chunks/vi-b5d581a1.js +0 -50
  111. package/dist/_chunks/vi-b5d581a1.js.map +0 -1
  112. package/dist/_chunks/vi-e8fd97e4.mjs +0 -50
  113. package/dist/_chunks/vi-e8fd97e4.mjs.map +0 -1
  114. package/dist/_chunks/zh-284557f3.mjs +0 -86
  115. package/dist/_chunks/zh-284557f3.mjs.map +0 -1
  116. package/dist/_chunks/zh-9babf307.js +0 -86
  117. package/dist/_chunks/zh-9babf307.js.map +0 -1
  118. package/dist/_chunks/zh-Hans-68e4b43a.mjs +0 -86
  119. package/dist/_chunks/zh-Hans-68e4b43a.mjs.map +0 -1
  120. package/dist/_chunks/zh-Hans-baae8c78.js +0 -86
  121. package/dist/_chunks/zh-Hans-baae8c78.js.map +0 -1
  122. package/dist/admin/index.js +0 -5
  123. package/dist/admin/index.js.map +0 -1
  124. package/dist/admin/index.mjs +0 -6
  125. package/dist/admin/index.mjs.map +0 -1
@@ -1,638 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const designSystem = require("@strapi/design-system");
6
- const helperPlugin = require("@strapi/helper-plugin");
7
- const icons = require("@strapi/icons");
8
- const upperFirst = require("lodash/upperFirst");
9
- const reactIntl = require("react-intl");
10
- const reactQuery = require("react-query");
11
- const v2 = require("@strapi/design-system/v2");
12
- const formik = require("formik");
13
- const PropTypes = require("prop-types");
14
- const index = require("./index-3b689442.js");
15
- require("lodash/isEmpty");
16
- const yup = require("yup");
17
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
18
- function _interopNamespace(e) {
19
- if (e && e.__esModule)
20
- return e;
21
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
22
- if (e) {
23
- for (const k in e) {
24
- if (k !== "default") {
25
- const d = Object.getOwnPropertyDescriptor(e, k);
26
- Object.defineProperty(n, k, d.get ? d : {
27
- enumerable: true,
28
- get: () => e[k]
29
- });
30
- }
31
- }
32
- }
33
- n.default = e;
34
- return Object.freeze(n);
35
- }
36
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
37
- const upperFirst__default = /* @__PURE__ */ _interopDefault(upperFirst);
38
- const PropTypes__default = /* @__PURE__ */ _interopDefault(PropTypes);
39
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
40
- const Input = ({
41
- description,
42
- disabled,
43
- intlLabel,
44
- error,
45
- name,
46
- onChange,
47
- placeholder,
48
- providerToEditName,
49
- type,
50
- value
51
- }) => {
52
- const { formatMessage } = reactIntl.useIntl();
53
- const inputValue = name === "noName" ? `${window.strapi.backendURL}/api/connect/${providerToEditName}/callback` : value;
54
- const label = formatMessage(
55
- { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },
56
- { provider: providerToEditName, ...intlLabel.values }
57
- );
58
- const hint = description ? formatMessage(
59
- { id: description.id, defaultMessage: description.defaultMessage },
60
- { provider: providerToEditName, ...description.values }
61
- ) : "";
62
- if (type === "bool") {
63
- return /* @__PURE__ */ jsxRuntime.jsx(
64
- designSystem.ToggleInput,
65
- {
66
- "aria-label": name,
67
- checked: value,
68
- disabled,
69
- hint,
70
- label,
71
- name,
72
- offLabel: formatMessage({
73
- id: "app.components.ToggleCheckbox.off-label",
74
- defaultMessage: "Off"
75
- }),
76
- onLabel: formatMessage({
77
- id: "app.components.ToggleCheckbox.on-label",
78
- defaultMessage: "On"
79
- }),
80
- onChange: (e) => {
81
- onChange({ target: { name, value: e.target.checked } });
82
- }
83
- }
84
- );
85
- }
86
- const formattedPlaceholder = placeholder ? formatMessage(
87
- { id: placeholder.id, defaultMessage: placeholder.defaultMessage },
88
- { ...placeholder.values }
89
- ) : "";
90
- const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : "";
91
- return /* @__PURE__ */ jsxRuntime.jsx(
92
- designSystem.TextInput,
93
- {
94
- "aria-label": name,
95
- disabled,
96
- error: errorMessage,
97
- label,
98
- name,
99
- onChange,
100
- placeholder: formattedPlaceholder,
101
- type,
102
- value: inputValue
103
- }
104
- );
105
- };
106
- Input.defaultProps = {
107
- description: null,
108
- disabled: false,
109
- error: "",
110
- placeholder: null,
111
- value: ""
112
- };
113
- Input.propTypes = {
114
- description: PropTypes__default.default.shape({
115
- id: PropTypes__default.default.string.isRequired,
116
- defaultMessage: PropTypes__default.default.string.isRequired,
117
- values: PropTypes__default.default.object
118
- }),
119
- disabled: PropTypes__default.default.bool,
120
- error: PropTypes__default.default.string,
121
- intlLabel: PropTypes__default.default.shape({
122
- id: PropTypes__default.default.string.isRequired,
123
- defaultMessage: PropTypes__default.default.string.isRequired,
124
- values: PropTypes__default.default.object
125
- }).isRequired,
126
- name: PropTypes__default.default.string.isRequired,
127
- onChange: PropTypes__default.default.func.isRequired,
128
- placeholder: PropTypes__default.default.shape({
129
- id: PropTypes__default.default.string.isRequired,
130
- defaultMessage: PropTypes__default.default.string.isRequired,
131
- values: PropTypes__default.default.object
132
- }),
133
- providerToEditName: PropTypes__default.default.string.isRequired,
134
- type: PropTypes__default.default.string.isRequired,
135
- value: PropTypes__default.default.oneOfType([PropTypes__default.default.bool, PropTypes__default.default.string])
136
- };
137
- const FormModal = ({
138
- headerBreadcrumbs,
139
- initialData,
140
- isSubmiting,
141
- layout,
142
- isOpen,
143
- onSubmit,
144
- onToggle,
145
- providerToEditName
146
- }) => {
147
- const { formatMessage } = reactIntl.useIntl();
148
- if (!isOpen) {
149
- return null;
150
- }
151
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { onClose: onToggle, labelledBy: "title", children: [
152
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(v2.Breadcrumbs, { label: headerBreadcrumbs.join(", "), children: headerBreadcrumbs.map((crumb, index2, arr) => /* @__PURE__ */ jsxRuntime.jsx(v2.Crumb, { isCurrent: index2 === arr.length - 1, children: crumb }, crumb)) }) }),
153
- /* @__PURE__ */ jsxRuntime.jsx(
154
- formik.Formik,
155
- {
156
- onSubmit: (values) => onSubmit(values),
157
- initialValues: initialData,
158
- validationSchema: layout.schema,
159
- validateOnChange: false,
160
- children: ({ errors, handleChange, values }) => {
161
- return /* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Form, { children: [
162
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 5, children: layout.form.map((row) => {
163
- return row.map((input) => {
164
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: input.size, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(
165
- Input,
166
- {
167
- ...input,
168
- error: errors[input.name],
169
- onChange: handleChange,
170
- value: values[input.name],
171
- providerToEditName
172
- }
173
- ) }, input.name);
174
- });
175
- }) }) }) }),
176
- /* @__PURE__ */ jsxRuntime.jsx(
177
- designSystem.ModalFooter,
178
- {
179
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onToggle, type: "button", children: formatMessage({
180
- id: "app.components.Button.cancel",
181
- defaultMessage: "Cancel"
182
- }) }),
183
- endActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", loading: isSubmiting, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) })
184
- }
185
- )
186
- ] });
187
- }
188
- }
189
- )
190
- ] });
191
- };
192
- FormModal.defaultProps = {
193
- initialData: null,
194
- providerToEditName: null
195
- };
196
- FormModal.propTypes = {
197
- headerBreadcrumbs: PropTypes__default.default.arrayOf(PropTypes__default.default.string).isRequired,
198
- initialData: PropTypes__default.default.object,
199
- layout: PropTypes__default.default.shape({
200
- form: PropTypes__default.default.arrayOf(PropTypes__default.default.array),
201
- schema: PropTypes__default.default.object
202
- }).isRequired,
203
- isOpen: PropTypes__default.default.bool.isRequired,
204
- isSubmiting: PropTypes__default.default.bool.isRequired,
205
- onSubmit: PropTypes__default.default.func.isRequired,
206
- onToggle: PropTypes__default.default.func.isRequired,
207
- providerToEditName: PropTypes__default.default.string
208
- };
209
- const callbackLabel = {
210
- id: index.getTrad("PopUpForm.Providers.redirectURL.front-end.label"),
211
- defaultMessage: "The redirect URL to your front-end app"
212
- };
213
- const callbackPlaceholder = {
214
- id: "http://www.client-app.com",
215
- defaultMessage: "http://www.client-app.com"
216
- };
217
- const enabledDescription = {
218
- id: index.getTrad("PopUpForm.Providers.enabled.description"),
219
- defaultMessage: "If disabled, users won't be able to use this provider."
220
- };
221
- const enabledLabel = {
222
- id: index.getTrad("PopUpForm.Providers.enabled.label"),
223
- defaultMessage: "Enable"
224
- };
225
- const keyLabel = { id: index.getTrad("PopUpForm.Providers.key.label"), defaultMessage: "Client ID" };
226
- const hintLabel = {
227
- id: index.getTrad("PopUpForm.Providers.redirectURL.label"),
228
- defaultMessage: "The redirect URL to add in your {provider} application configurations"
229
- };
230
- const textPlaceholder = {
231
- id: index.getTrad("PopUpForm.Providers.key.placeholder"),
232
- defaultMessage: "TEXT"
233
- };
234
- const secretLabel = {
235
- id: index.getTrad("PopUpForm.Providers.secret.label"),
236
- defaultMessage: "Client Secret"
237
- };
238
- const forms = {
239
- email: {
240
- form: [
241
- [
242
- {
243
- intlLabel: enabledLabel,
244
- name: "enabled",
245
- type: "bool",
246
- description: enabledDescription,
247
- size: 6
248
- // TODO check if still needed
249
- // validations: {
250
- // required: true,
251
- // },
252
- }
253
- ]
254
- ],
255
- schema: yup__namespace.object().shape({
256
- enabled: yup__namespace.bool().required(helperPlugin.translatedErrors.required)
257
- })
258
- },
259
- providers: {
260
- form: [
261
- [
262
- {
263
- intlLabel: enabledLabel,
264
- name: "enabled",
265
- type: "bool",
266
- description: enabledDescription,
267
- size: 6,
268
- validations: {
269
- required: true
270
- }
271
- }
272
- ],
273
- [
274
- {
275
- intlLabel: keyLabel,
276
- name: "key",
277
- type: "text",
278
- placeholder: textPlaceholder,
279
- size: 12,
280
- validations: {
281
- required: true
282
- }
283
- }
284
- ],
285
- [
286
- {
287
- intlLabel: secretLabel,
288
- name: "secret",
289
- type: "text",
290
- placeholder: textPlaceholder,
291
- size: 12,
292
- validations: {
293
- required: true
294
- }
295
- }
296
- ],
297
- [
298
- {
299
- intlLabel: callbackLabel,
300
- placeholder: callbackPlaceholder,
301
- name: "callback",
302
- type: "text",
303
- size: 12,
304
- validations: {
305
- required: true
306
- }
307
- }
308
- ],
309
- [
310
- {
311
- intlLabel: hintLabel,
312
- name: "noName",
313
- type: "text",
314
- validations: {},
315
- size: 12,
316
- disabled: true
317
- }
318
- ]
319
- ],
320
- schema: yup__namespace.object().shape({
321
- enabled: yup__namespace.bool().required(helperPlugin.translatedErrors.required),
322
- key: yup__namespace.string().when("enabled", {
323
- is: true,
324
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
325
- otherwise: yup__namespace.string()
326
- }),
327
- secret: yup__namespace.string().when("enabled", {
328
- is: true,
329
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
330
- otherwise: yup__namespace.string()
331
- }),
332
- callback: yup__namespace.string().when("enabled", {
333
- is: true,
334
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
335
- otherwise: yup__namespace.string()
336
- })
337
- })
338
- },
339
- providersWithSubdomain: {
340
- form: [
341
- [
342
- {
343
- intlLabel: enabledLabel,
344
- name: "enabled",
345
- type: "bool",
346
- description: enabledDescription,
347
- size: 6,
348
- validations: {
349
- required: true
350
- }
351
- }
352
- ],
353
- [
354
- {
355
- intlLabel: keyLabel,
356
- name: "key",
357
- type: "text",
358
- placeholder: textPlaceholder,
359
- size: 12,
360
- validations: {
361
- required: true
362
- }
363
- }
364
- ],
365
- [
366
- {
367
- intlLabel: secretLabel,
368
- name: "secret",
369
- type: "text",
370
- placeholder: textPlaceholder,
371
- size: 12,
372
- validations: {
373
- required: true
374
- }
375
- }
376
- ],
377
- [
378
- {
379
- intlLabel: {
380
- id: index.getTrad({ id: "PopUpForm.Providers.jwksurl.label" }),
381
- defaultMessage: "JWKS URL"
382
- },
383
- name: "jwksurl",
384
- type: "text",
385
- placeholder: textPlaceholder,
386
- size: 12,
387
- validations: {
388
- required: false
389
- }
390
- }
391
- ],
392
- [
393
- {
394
- intlLabel: {
395
- id: index.getTrad("PopUpForm.Providers.subdomain.label"),
396
- defaultMessage: "Host URI (Subdomain)"
397
- },
398
- name: "subdomain",
399
- type: "text",
400
- placeholder: {
401
- id: index.getTrad("PopUpForm.Providers.subdomain.placeholder"),
402
- defaultMessage: "my.subdomain.com"
403
- },
404
- size: 12,
405
- validations: {
406
- required: true
407
- }
408
- }
409
- ],
410
- [
411
- {
412
- intlLabel: callbackLabel,
413
- placeholder: callbackPlaceholder,
414
- name: "callback",
415
- type: "text",
416
- size: 12,
417
- validations: {
418
- required: true
419
- }
420
- }
421
- ],
422
- [
423
- {
424
- intlLabel: hintLabel,
425
- name: "noName",
426
- type: "text",
427
- validations: {},
428
- size: 12,
429
- disabled: true
430
- }
431
- ]
432
- ],
433
- schema: yup__namespace.object().shape({
434
- enabled: yup__namespace.bool().required(helperPlugin.translatedErrors.required),
435
- key: yup__namespace.string().when("enabled", {
436
- is: true,
437
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
438
- otherwise: yup__namespace.string()
439
- }),
440
- secret: yup__namespace.string().when("enabled", {
441
- is: true,
442
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
443
- otherwise: yup__namespace.string()
444
- }),
445
- subdomain: yup__namespace.string().when("enabled", {
446
- is: true,
447
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
448
- otherwise: yup__namespace.string()
449
- }),
450
- callback: yup__namespace.string().when("enabled", {
451
- is: true,
452
- then: yup__namespace.string().required(helperPlugin.translatedErrors.required),
453
- otherwise: yup__namespace.string()
454
- })
455
- })
456
- }
457
- };
458
- const ProvidersPage = () => {
459
- const { formatMessage, locale } = reactIntl.useIntl();
460
- const queryClient = reactQuery.useQueryClient();
461
- const { trackUsage } = helperPlugin.useTracking();
462
- const [isOpen, setIsOpen] = React__namespace.useState(false);
463
- const [providerToEditName, setProviderToEditName] = React__namespace.useState(null);
464
- const toggleNotification = helperPlugin.useNotification();
465
- const { lockApp, unlockApp } = helperPlugin.useOverlayBlocker();
466
- const { get, put } = helperPlugin.useFetchClient();
467
- const { formatAPIError } = helperPlugin.useAPIErrorHandler();
468
- const formatter = helperPlugin.useCollator(locale, {
469
- sensitivity: "base"
470
- });
471
- helperPlugin.useFocusWhenNavigate();
472
- const {
473
- isLoading: isLoadingPermissions,
474
- allowedActions: { canUpdate }
475
- } = helperPlugin.useRBAC({ update: index.PERMISSIONS.updateProviders });
476
- const { isLoading: isLoadingData, data } = reactQuery.useQuery(
477
- ["users-permissions", "get-providers"],
478
- async () => {
479
- const { data: data2 } = await get("/users-permissions/providers");
480
- return data2;
481
- },
482
- {
483
- initialData: {}
484
- }
485
- );
486
- const submitMutation = reactQuery.useMutation((body) => put("/users-permissions/providers", body), {
487
- async onSuccess() {
488
- await queryClient.invalidateQueries(["users-permissions", "providers"]);
489
- toggleNotification({
490
- type: "success",
491
- message: { id: index.getTrad("notification.success.submit") }
492
- });
493
- trackUsage("didEditAuthenticationProvider");
494
- handleToggleModal();
495
- unlockApp();
496
- },
497
- onError(error) {
498
- toggleNotification({
499
- type: "warning",
500
- message: formatAPIError(error)
501
- });
502
- unlockApp();
503
- },
504
- refetchActive: false
505
- });
506
- const providers = Object.entries(data).reduce((acc, [name, provider]) => {
507
- const { icon, enabled, subdomain } = provider;
508
- acc.push({
509
- name,
510
- icon: icon === "envelope" ? ["fas", "envelope"] : ["fab", icon],
511
- enabled,
512
- subdomain
513
- });
514
- return acc;
515
- }, []).sort((a, b) => formatter.compare(a.name, b.name));
516
- const isLoading = isLoadingData || isLoadingPermissions;
517
- const isProviderWithSubdomain = React__namespace.useMemo(() => {
518
- if (!providerToEditName) {
519
- return false;
520
- }
521
- const providerToEdit = providers.find((obj) => obj.name === providerToEditName);
522
- return !!providerToEdit?.subdomain;
523
- }, [providers, providerToEditName]);
524
- const layoutToRender = React__namespace.useMemo(() => {
525
- if (providerToEditName === "email") {
526
- return forms.email;
527
- }
528
- if (isProviderWithSubdomain) {
529
- return forms.providersWithSubdomain;
530
- }
531
- return forms.providers;
532
- }, [providerToEditName, isProviderWithSubdomain]);
533
- const handleToggleModal = () => {
534
- setIsOpen((prev) => !prev);
535
- };
536
- const handleClickEdit = (provider) => {
537
- if (canUpdate) {
538
- setProviderToEditName(provider.name);
539
- handleToggleModal();
540
- }
541
- };
542
- const handleSubmit = async (values) => {
543
- lockApp();
544
- trackUsage("willEditAuthenticationProvider");
545
- submitMutation.mutate({ providers: { ...data, [providerToEditName]: values } });
546
- };
547
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Layout, { children: [
548
- /* @__PURE__ */ jsxRuntime.jsx(
549
- helperPlugin.SettingsPageTitle,
550
- {
551
- name: formatMessage({
552
- id: index.getTrad("HeaderNav.link.providers"),
553
- defaultMessage: "Providers"
554
- })
555
- }
556
- ),
557
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Main, { children: [
558
- /* @__PURE__ */ jsxRuntime.jsx(
559
- designSystem.HeaderLayout,
560
- {
561
- title: formatMessage({
562
- id: index.getTrad("HeaderNav.link.providers"),
563
- defaultMessage: "Providers"
564
- })
565
- }
566
- ),
567
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.LoadingIndicatorPage, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Table, { colCount: 3, rowCount: providers.length + 1, children: [
568
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
569
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: "global.name", defaultMessage: "Name" }) }) }),
570
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({ id: index.getTrad("Providers.status"), defaultMessage: "Status" }) }) }),
571
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: formatMessage({
572
- id: "global.settings",
573
- defaultMessage: "Settings"
574
- }) }) }) })
575
- ] }) }),
576
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: providers.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
577
- designSystem.Tr,
578
- {
579
- ...helperPlugin.onRowClick({
580
- fn: () => handleClickEdit(provider),
581
- condition: canUpdate
582
- }),
583
- children: [
584
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "45%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "semiBold", textColor: "neutral800", children: provider.name }) }),
585
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "65%", children: /* @__PURE__ */ jsxRuntime.jsx(
586
- designSystem.Typography,
587
- {
588
- textColor: provider.enabled ? "success600" : "danger600",
589
- "data-testid": `enable-${provider.name}`,
590
- children: provider.enabled ? formatMessage({
591
- id: "global.enabled",
592
- defaultMessage: "Enabled"
593
- }) : formatMessage({
594
- id: "global.disabled",
595
- defaultMessage: "Disabled"
596
- })
597
- }
598
- ) }),
599
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { ...helperPlugin.stopPropagation, children: canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
600
- designSystem.IconButton,
601
- {
602
- onClick: () => handleClickEdit(provider),
603
- noBorder: true,
604
- icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {}),
605
- label: "Edit"
606
- }
607
- ) })
608
- ]
609
- },
610
- provider.name
611
- )) })
612
- ] }) })
613
- ] }),
614
- /* @__PURE__ */ jsxRuntime.jsx(
615
- FormModal,
616
- {
617
- initialData: data[providerToEditName],
618
- isOpen,
619
- isSubmiting: submitMutation.isLoading,
620
- layout: layoutToRender,
621
- headerBreadcrumbs: [
622
- formatMessage({
623
- id: index.getTrad("PopUpForm.header.edit.providers"),
624
- defaultMessage: "Edit Provider"
625
- }),
626
- upperFirst__default.default(providerToEditName)
627
- ],
628
- onToggle: handleToggleModal,
629
- onSubmit: handleSubmit,
630
- providerToEditName
631
- }
632
- )
633
- ] });
634
- };
635
- const ProtectedProvidersPage = () => /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.CheckPagePermissions, { permissions: index.PERMISSIONS.readProviders, children: /* @__PURE__ */ jsxRuntime.jsx(ProvidersPage, {}) });
636
- exports.ProvidersPage = ProvidersPage;
637
- exports.default = ProtectedProvidersPage;
638
- //# sourceMappingURL=index-8d1dab8c.js.map