@strapi/i18n 0.0.0-experimental.d1602f22dc638a4c3c5084965fd6126fff5e9d4f → 0.0.0-experimental.d325780feab1caf1b9e4423588eb1cc73b74c376

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 (126) hide show
  1. package/dist/_chunks/SettingsPage-B-KzAqT3.mjs +554 -0
  2. package/dist/_chunks/SettingsPage-B-KzAqT3.mjs.map +1 -0
  3. package/dist/_chunks/SettingsPage-hyOi94O9.js +573 -0
  4. package/dist/_chunks/SettingsPage-hyOi94O9.js.map +1 -0
  5. package/dist/_chunks/de-BOhNX_-5.js +65 -0
  6. package/dist/_chunks/de-BOhNX_-5.js.map +1 -0
  7. package/dist/_chunks/de-D80IRBP9.mjs +65 -0
  8. package/dist/_chunks/de-D80IRBP9.mjs.map +1 -0
  9. package/dist/_chunks/dk-CJ6Zzz78.mjs +65 -0
  10. package/dist/_chunks/dk-CJ6Zzz78.mjs.map +1 -0
  11. package/dist/_chunks/dk-cjXm0p3m.js +65 -0
  12. package/dist/_chunks/dk-cjXm0p3m.js.map +1 -0
  13. package/dist/_chunks/en-BTyF7WVW.mjs +80 -0
  14. package/dist/_chunks/en-BTyF7WVW.mjs.map +1 -0
  15. package/dist/_chunks/en-UlC0jh2t.js +80 -0
  16. package/dist/_chunks/en-UlC0jh2t.js.map +1 -0
  17. package/dist/_chunks/es-V8WnPN7w.mjs +65 -0
  18. package/dist/_chunks/es-V8WnPN7w.mjs.map +1 -0
  19. package/dist/_chunks/es-hr9b_HLp.js +65 -0
  20. package/dist/_chunks/es-hr9b_HLp.js.map +1 -0
  21. package/dist/_chunks/fr-BFmBbE0H.js +65 -0
  22. package/dist/_chunks/fr-BFmBbE0H.js.map +1 -0
  23. package/dist/_chunks/fr-F94noFiV.mjs +65 -0
  24. package/dist/_chunks/fr-F94noFiV.mjs.map +1 -0
  25. package/dist/_chunks/index-BcYj5jo9.mjs +1589 -0
  26. package/dist/_chunks/index-BcYj5jo9.mjs.map +1 -0
  27. package/dist/_chunks/index-C8NzsAKp.js +1610 -0
  28. package/dist/_chunks/index-C8NzsAKp.js.map +1 -0
  29. package/dist/_chunks/ko-C40pNQ9b.js +64 -0
  30. package/dist/_chunks/ko-C40pNQ9b.js.map +1 -0
  31. package/dist/_chunks/ko-CF-P3Car.mjs +64 -0
  32. package/dist/_chunks/ko-CF-P3Car.mjs.map +1 -0
  33. package/dist/_chunks/pl-Dxr9RUmD.mjs +65 -0
  34. package/dist/_chunks/pl-Dxr9RUmD.mjs.map +1 -0
  35. package/dist/_chunks/pl-JtWBy-JQ.js +65 -0
  36. package/dist/_chunks/pl-JtWBy-JQ.js.map +1 -0
  37. package/dist/_chunks/ru-B-4sVwXN.mjs +67 -0
  38. package/dist/_chunks/ru-B-4sVwXN.mjs.map +1 -0
  39. package/dist/_chunks/ru-COSWt3Nu.js +67 -0
  40. package/dist/_chunks/ru-COSWt3Nu.js.map +1 -0
  41. package/dist/_chunks/tr-BVj1O5ch.js +65 -0
  42. package/dist/_chunks/tr-BVj1O5ch.js.map +1 -0
  43. package/dist/_chunks/tr-Ccu6Yj11.mjs +65 -0
  44. package/dist/_chunks/tr-Ccu6Yj11.mjs.map +1 -0
  45. package/dist/_chunks/zh-BIz395Ms.mjs +65 -0
  46. package/dist/_chunks/zh-BIz395Ms.mjs.map +1 -0
  47. package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs +56 -0
  48. package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs.map +1 -0
  49. package/dist/_chunks/zh-Hans-DIEm_EMC.js +56 -0
  50. package/dist/_chunks/zh-Hans-DIEm_EMC.js.map +1 -0
  51. package/dist/_chunks/zh-wkBPBkhc.js +65 -0
  52. package/dist/_chunks/zh-wkBPBkhc.js.map +1 -0
  53. package/dist/admin/index.js +4 -20
  54. package/dist/admin/index.js.map +1 -1
  55. package/dist/admin/index.mjs +6 -15
  56. package/dist/admin/index.mjs.map +1 -1
  57. package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
  58. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  59. package/dist/server/index.js +3364 -3624
  60. package/dist/server/index.js.map +1 -1
  61. package/dist/server/index.mjs +3379 -3637
  62. package/dist/server/index.mjs.map +1 -1
  63. package/dist/server/src/services/localizations.d.ts +1 -1
  64. package/dist/server/src/services/localizations.d.ts.map +1 -1
  65. package/dist/shared/contracts/content-manager.d.ts +1 -1
  66. package/dist/shared/contracts/shared.d.ts +1 -1
  67. package/package.json +9 -12
  68. package/dist/admin/chunks/SettingsPage-B6ikxVOg.js +0 -820
  69. package/dist/admin/chunks/SettingsPage-B6ikxVOg.js.map +0 -1
  70. package/dist/admin/chunks/SettingsPage-Kg4GAThm.js +0 -797
  71. package/dist/admin/chunks/SettingsPage-Kg4GAThm.js.map +0 -1
  72. package/dist/admin/chunks/de-Cm8mYdaO.js +0 -64
  73. package/dist/admin/chunks/de-Cm8mYdaO.js.map +0 -1
  74. package/dist/admin/chunks/de-nEMWvIiY.js +0 -66
  75. package/dist/admin/chunks/de-nEMWvIiY.js.map +0 -1
  76. package/dist/admin/chunks/dk-BeUFOegB.js +0 -64
  77. package/dist/admin/chunks/dk-BeUFOegB.js.map +0 -1
  78. package/dist/admin/chunks/dk-CYATLPVe.js +0 -66
  79. package/dist/admin/chunks/dk-CYATLPVe.js.map +0 -1
  80. package/dist/admin/chunks/en-CG5cUCbD.js +0 -81
  81. package/dist/admin/chunks/en-CG5cUCbD.js.map +0 -1
  82. package/dist/admin/chunks/en-eWSaCeOb.js +0 -79
  83. package/dist/admin/chunks/en-eWSaCeOb.js.map +0 -1
  84. package/dist/admin/chunks/es-CWsogTGm.js +0 -66
  85. package/dist/admin/chunks/es-CWsogTGm.js.map +0 -1
  86. package/dist/admin/chunks/es-DqF_IdAc.js +0 -64
  87. package/dist/admin/chunks/es-DqF_IdAc.js.map +0 -1
  88. package/dist/admin/chunks/fr-CC7UFcYd.js +0 -66
  89. package/dist/admin/chunks/fr-CC7UFcYd.js.map +0 -1
  90. package/dist/admin/chunks/fr-CyARbZ3c.js +0 -64
  91. package/dist/admin/chunks/fr-CyARbZ3c.js.map +0 -1
  92. package/dist/admin/chunks/index-Dch-2xao.js +0 -2035
  93. package/dist/admin/chunks/index-Dch-2xao.js.map +0 -1
  94. package/dist/admin/chunks/index-DyvbIjH9.js +0 -2006
  95. package/dist/admin/chunks/index-DyvbIjH9.js.map +0 -1
  96. package/dist/admin/chunks/ko-Ax4NSedM.js +0 -63
  97. package/dist/admin/chunks/ko-Ax4NSedM.js.map +0 -1
  98. package/dist/admin/chunks/ko-XwGmfhoq.js +0 -65
  99. package/dist/admin/chunks/ko-XwGmfhoq.js.map +0 -1
  100. package/dist/admin/chunks/pl-B-aqvMqL.js +0 -64
  101. package/dist/admin/chunks/pl-B-aqvMqL.js.map +0 -1
  102. package/dist/admin/chunks/pl-B_vzY_ZB.js +0 -66
  103. package/dist/admin/chunks/pl-B_vzY_ZB.js.map +0 -1
  104. package/dist/admin/chunks/ru-VkPjQ-Sk.js +0 -66
  105. package/dist/admin/chunks/ru-VkPjQ-Sk.js.map +0 -1
  106. package/dist/admin/chunks/ru-WzHcJV1f.js +0 -68
  107. package/dist/admin/chunks/ru-WzHcJV1f.js.map +0 -1
  108. package/dist/admin/chunks/tr-CcWp6u3w.js +0 -66
  109. package/dist/admin/chunks/tr-CcWp6u3w.js.map +0 -1
  110. package/dist/admin/chunks/tr-DcTR88c9.js +0 -64
  111. package/dist/admin/chunks/tr-DcTR88c9.js.map +0 -1
  112. package/dist/admin/chunks/zh-C9So4SGq.js +0 -66
  113. package/dist/admin/chunks/zh-C9So4SGq.js.map +0 -1
  114. package/dist/admin/chunks/zh-Hans-DnU2bhri.js +0 -57
  115. package/dist/admin/chunks/zh-Hans-DnU2bhri.js.map +0 -1
  116. package/dist/admin/chunks/zh-Hans-L3wsRegj.js +0 -55
  117. package/dist/admin/chunks/zh-Hans-L3wsRegj.js.map +0 -1
  118. package/dist/admin/chunks/zh-RZyMiPIs.js +0 -64
  119. package/dist/admin/chunks/zh-RZyMiPIs.js.map +0 -1
  120. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +0 -1
  121. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +0 -1
  122. package/dist/admin/src/components/tests/EditLocale.test.d.ts +0 -1
  123. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +0 -1
  124. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +0 -1
  125. package/dist/admin/tests/server.d.ts +0 -1
  126. package/dist/admin/tests/utils.d.ts +0 -6
@@ -1,820 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
- var strapiAdmin = require('@strapi/admin/strapi-admin');
6
- var designSystem = require('@strapi/design-system');
7
- var symbols = require('@strapi/icons/symbols');
8
- var reactIntl = require('react-intl');
9
- var icons = require('@strapi/icons');
10
- var yup = require('yup');
11
- var index = require('./index-Dch-2xao.js');
12
- require('lodash/get');
13
- require('styled-components');
14
- require('@reduxjs/toolkit/query');
15
- require('@strapi/content-manager/strapi-admin');
16
- require('react-router-dom');
17
- require('qs');
18
- require('lodash/omit');
19
-
20
- function _interopNamespaceDefault(e) {
21
- var n = Object.create(null);
22
- if (e) {
23
- Object.keys(e).forEach(function (k) {
24
- if (k !== 'default') {
25
- var d = Object.getOwnPropertyDescriptor(e, k);
26
- Object.defineProperty(n, k, d.get ? d : {
27
- enumerable: true,
28
- get: function () { return e[k]; }
29
- });
30
- }
31
- });
32
- }
33
- n.default = e;
34
- return Object.freeze(n);
35
- }
36
-
37
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
38
- var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
39
-
40
- const isBaseQueryError = (error)=>{
41
- return error.name !== undefined;
42
- };
43
-
44
- const CreateLocale = ({ disabled, variant = 'default' })=>{
45
- const { formatMessage } = reactIntl.useIntl();
46
- const [visible, setVisible] = React__namespace.useState(false);
47
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Root, {
48
- open: visible,
49
- onOpenChange: setVisible,
50
- children: [
51
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Trigger, {
52
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
53
- variant: variant,
54
- disabled: disabled,
55
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Plus, {}),
56
- onClick: ()=>setVisible(true),
57
- size: "S",
58
- children: formatMessage({
59
- id: index.getTranslation('Settings.list.actions.add'),
60
- defaultMessage: 'Add new locale'
61
- })
62
- })
63
- }),
64
- /*#__PURE__*/ jsxRuntime.jsx(CreateModal, {
65
- onClose: ()=>setVisible(false)
66
- })
67
- ]
68
- });
69
- };
70
- /* -------------------------------------------------------------------------------------------------
71
- * CreateModal
72
- * -----------------------------------------------------------------------------------------------*/ const LOCALE_SCHEMA = yup__namespace.object().shape({
73
- code: yup__namespace.string().nullable().required({
74
- id: 'Settings.locales.modal.create.code.error',
75
- defaultMessage: 'Please select a locale'
76
- }),
77
- name: yup__namespace.string().nullable().max(50, {
78
- id: 'Settings.locales.modal.create.name.error.min',
79
- defaultMessage: 'The locale display name can only be less than 50 characters.'
80
- }).required({
81
- id: 'Settings.locales.modal.create.name.error.required',
82
- defaultMessage: 'Please give the locale a display name'
83
- }),
84
- isDefault: yup__namespace.boolean()
85
- });
86
- const initialFormValues = {
87
- code: '',
88
- name: '',
89
- isDefault: false
90
- };
91
- const CreateModal = ({ onClose })=>{
92
- const titleId = designSystem.useId();
93
- const { toggleNotification } = strapiAdmin.useNotification();
94
- const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
95
- const [createLocale] = index.useCreateLocaleMutation();
96
- const { formatMessage } = reactIntl.useIntl();
97
- const refetchPermissions = strapiAdmin.useAuth('CreateModal', (state)=>state.refetchPermissions);
98
- const handleSubmit = async (values, helpers)=>{
99
- try {
100
- const res = await createLocale(values);
101
- if ('error' in res) {
102
- if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
103
- helpers.setErrors(formatValidationErrors(res.error));
104
- } else {
105
- toggleNotification({
106
- type: 'danger',
107
- message: formatAPIError(res.error)
108
- });
109
- }
110
- return;
111
- }
112
- toggleNotification({
113
- type: 'success',
114
- message: formatMessage({
115
- id: index.getTranslation('Settings.locales.modal.create.success'),
116
- defaultMessage: 'Created locale'
117
- })
118
- });
119
- refetchPermissions();
120
- onClose();
121
- } catch (err) {
122
- toggleNotification({
123
- type: 'danger',
124
- message: formatMessage({
125
- id: 'notification.error',
126
- defaultMessage: 'An error occurred, please try again'
127
- })
128
- });
129
- }
130
- };
131
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Content, {
132
- children: /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Form, {
133
- method: "POST",
134
- initialValues: initialFormValues,
135
- validationSchema: LOCALE_SCHEMA,
136
- onSubmit: handleSubmit,
137
- children: [
138
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
139
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Title, {
140
- children: formatMessage({
141
- id: index.getTranslation('Settings.list.actions.add'),
142
- defaultMessage: 'Add new locale'
143
- })
144
- })
145
- }),
146
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
147
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.Root, {
148
- variant: "simple",
149
- defaultValue: "basic",
150
- children: [
151
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
152
- justifyContent: "space-between",
153
- children: [
154
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
155
- tag: "h2",
156
- variant: "beta",
157
- id: titleId,
158
- children: formatMessage({
159
- id: index.getTranslation('Settings.locales.modal.title'),
160
- defaultMessage: 'Configuration'
161
- })
162
- }),
163
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.List, {
164
- "aria-labelledby": titleId,
165
- children: [
166
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Trigger, {
167
- value: "basic",
168
- children: formatMessage({
169
- id: index.getTranslation('Settings.locales.modal.base'),
170
- defaultMessage: 'Basic settings'
171
- })
172
- }),
173
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Trigger, {
174
- value: "advanced",
175
- children: formatMessage({
176
- id: index.getTranslation('Settings.locales.modal.advanced'),
177
- defaultMessage: 'Advanced settings'
178
- })
179
- })
180
- ]
181
- })
182
- ]
183
- }),
184
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
185
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
186
- paddingTop: 7,
187
- paddingBottom: 7,
188
- children: [
189
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Content, {
190
- value: "basic",
191
- children: /*#__PURE__*/ jsxRuntime.jsx(BaseForm, {})
192
- }),
193
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Content, {
194
- value: "advanced",
195
- children: /*#__PURE__*/ jsxRuntime.jsx(AdvancedForm, {})
196
- })
197
- ]
198
- })
199
- ]
200
- })
201
- }),
202
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Footer, {
203
- children: [
204
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Close, {
205
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
206
- variant: "tertiary",
207
- children: formatMessage({
208
- id: 'app.components.Button.cancel',
209
- defaultMessage: 'Cancel'
210
- })
211
- })
212
- }),
213
- /*#__PURE__*/ jsxRuntime.jsx(SubmitButton, {})
214
- ]
215
- })
216
- ]
217
- })
218
- });
219
- };
220
- /* -------------------------------------------------------------------------------------------------
221
- * SubmitButton
222
- * -----------------------------------------------------------------------------------------------*/ const SubmitButton = ()=>{
223
- const { formatMessage } = reactIntl.useIntl();
224
- const isSubmitting = strapiAdmin.useForm('SubmitButton', (state)=>state.isSubmitting);
225
- const modified = strapiAdmin.useForm('SubmitButton', (state)=>state.modified);
226
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
227
- type: "submit",
228
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
229
- disabled: isSubmitting || !modified,
230
- children: formatMessage({
231
- id: 'global.save',
232
- defaultMessage: 'Save'
233
- })
234
- });
235
- };
236
- const BaseForm = ({ mode = 'create' })=>{
237
- const { formatMessage } = reactIntl.useIntl();
238
- const { toggleNotification } = strapiAdmin.useNotification();
239
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
240
- const { data: defaultLocales, error } = index.useGetDefaultLocalesQuery();
241
- React__namespace.useEffect(()=>{
242
- if (error) {
243
- toggleNotification({
244
- type: 'danger',
245
- message: formatAPIError(error)
246
- });
247
- }
248
- }, [
249
- error,
250
- formatAPIError,
251
- toggleNotification
252
- ]);
253
- if (!Array.isArray(defaultLocales)) {
254
- return null;
255
- }
256
- const options = defaultLocales.map((locale)=>({
257
- label: locale.name,
258
- value: locale.code
259
- }));
260
- const translatedForm = [
261
- {
262
- disabled: mode !== 'create',
263
- label: {
264
- id: index.getTranslation('Settings.locales.modal.create.code.label'),
265
- defaultMessage: 'Locales'
266
- },
267
- name: 'code',
268
- options,
269
- placeholder: {
270
- id: 'components.placeholder.select',
271
- defaultMessage: 'Select'
272
- },
273
- required: true,
274
- size: 6,
275
- type: 'enumeration'
276
- },
277
- {
278
- hint: {
279
- id: index.getTranslation('Settings.locales.modal.create.name.label.description'),
280
- defaultMessage: 'Locale will be displayed under that name in the administration panel'
281
- },
282
- label: {
283
- id: index.getTranslation('Settings.locales.modal.create.name.label'),
284
- defaultMessage: 'Locale display name'
285
- },
286
- name: 'name',
287
- required: true,
288
- size: 6,
289
- type: 'string'
290
- }
291
- ].map((field)=>({
292
- ...field,
293
- hint: field.hint ? formatMessage(field.hint) : undefined,
294
- label: formatMessage(field.label),
295
- placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined
296
- }));
297
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
298
- gap: 4,
299
- children: translatedForm.map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
300
- col: size,
301
- direction: "column",
302
- alignItems: "stretch",
303
- children: /*#__PURE__*/ jsxRuntime.jsx(FormRenderer, {
304
- ...field
305
- })
306
- }, field.name))
307
- });
308
- };
309
- const AdvancedForm = ({ isDefaultLocale })=>{
310
- const { formatMessage } = reactIntl.useIntl();
311
- const form = [
312
- {
313
- disabled: isDefaultLocale,
314
- hint: {
315
- id: index.getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),
316
- defaultMessage: 'One default locale is required, change it by selecting another one'
317
- },
318
- label: {
319
- id: index.getTranslation('Settings.locales.modal.advanced.setAsDefault'),
320
- defaultMessage: 'Set as default locale'
321
- },
322
- name: 'isDefault',
323
- size: 6,
324
- type: 'boolean'
325
- }
326
- ].map((field)=>({
327
- ...field,
328
- hint: field.hint ? formatMessage(field.hint) : undefined,
329
- label: formatMessage(field.label)
330
- }));
331
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
332
- gap: 4,
333
- children: form.map(({ size, ...field })=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Item, {
334
- col: size,
335
- direction: "column",
336
- alignItems: "stretch",
337
- children: /*#__PURE__*/ jsxRuntime.jsx(FormRenderer, {
338
- ...field
339
- })
340
- }, field.name))
341
- });
342
- };
343
- /* -------------------------------------------------------------------------------------------------
344
- * FormRenderer
345
- * -----------------------------------------------------------------------------------------------*/ const FormRenderer = (field)=>{
346
- switch(field.type){
347
- /**
348
- * This will override the default input renderer
349
- * choice for `enumeration`.
350
- */ case 'enumeration':
351
- return /*#__PURE__*/ jsxRuntime.jsx(EnumerationInput, {
352
- ...field
353
- });
354
- default:
355
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.InputRenderer, {
356
- ...field
357
- });
358
- }
359
- };
360
- const EnumerationInput = ({ disabled, hint, label, name, options, placeholder, required })=>{
361
- const { value, error, onChange } = strapiAdmin.useField(name);
362
- const { data: defaultLocales = [] } = index.useGetDefaultLocalesQuery();
363
- const handleChange = (value)=>{
364
- if (Array.isArray(defaultLocales)) {
365
- // We know it exists because the options are created from the list of default locales
366
- const locale = defaultLocales.find((locale)=>locale.code === value);
367
- onChange(name, value);
368
- // This lets us automatically fill the name field with the locale name
369
- onChange('name', locale.name);
370
- } else {
371
- onChange(name, value);
372
- }
373
- };
374
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
375
- error: error,
376
- hint: hint,
377
- name: name,
378
- required: required,
379
- children: [
380
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
381
- children: label
382
- }),
383
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelect, {
384
- disabled: disabled,
385
- // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.
386
- onChange: handleChange,
387
- placeholder: placeholder,
388
- value: value,
389
- children: options.map((option)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
390
- value: option.value,
391
- children: option.label
392
- }, option.value))
393
- }),
394
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {}),
395
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {})
396
- ]
397
- });
398
- };
399
-
400
- const DeleteLocale = ({ id, name })=>{
401
- const { formatMessage } = reactIntl.useIntl();
402
- const { toggleNotification } = strapiAdmin.useNotification();
403
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
404
- const [visible, setVisible] = React__namespace.useState(false);
405
- const [deleteLocale] = index.useDeleteLocaleMutation();
406
- const handleConfirm = async ()=>{
407
- try {
408
- const res = await deleteLocale(id);
409
- if ('error' in res) {
410
- toggleNotification({
411
- type: 'danger',
412
- message: formatAPIError(res.error)
413
- });
414
- return;
415
- }
416
- toggleNotification({
417
- type: 'success',
418
- message: formatMessage({
419
- id: index.getTranslation('Settings.locales.modal.delete.success'),
420
- defaultMessage: 'Deleted locale'
421
- })
422
- });
423
- setVisible(false);
424
- } catch (err) {
425
- toggleNotification({
426
- type: 'danger',
427
- message: formatMessage({
428
- id: 'notification.error',
429
- defaultMessage: 'An error occurred, please try again'
430
- })
431
- });
432
- }
433
- };
434
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Dialog.Root, {
435
- open: visible,
436
- onOpenChange: setVisible,
437
- children: [
438
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Dialog.Trigger, {
439
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
440
- onClick: ()=>setVisible(true),
441
- label: formatMessage({
442
- id: index.getTranslation('Settings.list.actions.delete'),
443
- defaultMessage: 'Delete {name} locale'
444
- }, {
445
- name
446
- }),
447
- variant: "ghost",
448
- children: /*#__PURE__*/ jsxRuntime.jsx(icons.Trash, {})
449
- })
450
- }),
451
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, {
452
- onConfirm: handleConfirm
453
- })
454
- ]
455
- });
456
- };
457
-
458
- const EditLocale = (props)=>{
459
- const { formatMessage } = reactIntl.useIntl();
460
- const [visible, setVisible] = React__namespace.useState(false);
461
- return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
462
- children: [
463
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
464
- onClick: ()=>setVisible(true),
465
- label: formatMessage({
466
- id: index.getTranslation('Settings.list.actions.edit'),
467
- defaultMessage: 'Edit {name} locale'
468
- }, {
469
- name: props.name
470
- }),
471
- variant: "ghost",
472
- children: /*#__PURE__*/ jsxRuntime.jsx(icons.Pencil, {})
473
- }),
474
- /*#__PURE__*/ jsxRuntime.jsx(EditModal, {
475
- ...props,
476
- open: visible,
477
- onOpenChange: setVisible
478
- })
479
- ]
480
- });
481
- };
482
- /**
483
- * @internal
484
- * @description Exported to be used when someone clicks on a table row.
485
- */ const EditModal = ({ id, code, isDefault, name, open, onOpenChange })=>{
486
- const { toggleNotification } = strapiAdmin.useNotification();
487
- const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
488
- const refetchPermissions = strapiAdmin.useAuth('EditModal', (state)=>state.refetchPermissions);
489
- const { formatMessage } = reactIntl.useIntl();
490
- const titleId = designSystem.useId();
491
- const [updateLocale] = index.useUpdateLocaleMutation();
492
- const handleSubmit = async ({ code: _code, ...data }, helpers)=>{
493
- try {
494
- /**
495
- * We don't need to send the code, because the
496
- * code can never be changed.
497
- */ const res = await updateLocale({
498
- id,
499
- ...data
500
- });
501
- if ('error' in res) {
502
- if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
503
- helpers.setErrors(formatValidationErrors(res.error));
504
- } else {
505
- toggleNotification({
506
- type: 'danger',
507
- message: formatAPIError(res.error)
508
- });
509
- }
510
- return;
511
- }
512
- toggleNotification({
513
- type: 'success',
514
- message: formatMessage({
515
- id: index.getTranslation('Settings.locales.modal.edit.success'),
516
- defaultMessage: 'Updated locale'
517
- })
518
- });
519
- refetchPermissions();
520
- onOpenChange(false);
521
- } catch (err) {
522
- toggleNotification({
523
- type: 'danger',
524
- message: formatMessage({
525
- id: 'notification.error',
526
- defaultMessage: 'An error occurred, please try again'
527
- })
528
- });
529
- }
530
- };
531
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
532
- open: open,
533
- onOpenChange: onOpenChange,
534
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Content, {
535
- children: /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Form, {
536
- method: "PUT",
537
- onSubmit: handleSubmit,
538
- initialValues: {
539
- code,
540
- name,
541
- isDefault
542
- },
543
- validationSchema: LOCALE_SCHEMA,
544
- children: [
545
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Header, {
546
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Title, {
547
- children: formatMessage({
548
- id: index.getTranslation('Settings.list.actions.edit'),
549
- defaultMessage: 'Edit a locale'
550
- }, {
551
- name
552
- })
553
- })
554
- }),
555
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Body, {
556
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.Root, {
557
- variant: "simple",
558
- defaultValue: "basic",
559
- children: [
560
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
561
- justifyContent: "space-between",
562
- children: [
563
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
564
- tag: "h2",
565
- variant: "beta",
566
- id: titleId,
567
- children: formatMessage({
568
- id: index.getTranslation('Settings.locales.modal.title'),
569
- defaultMessage: 'Configuration'
570
- })
571
- }),
572
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tabs.List, {
573
- "aria-labelledby": titleId,
574
- children: [
575
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Trigger, {
576
- value: "basic",
577
- children: formatMessage({
578
- id: index.getTranslation('Settings.locales.modal.base'),
579
- defaultMessage: 'Basic settings'
580
- })
581
- }),
582
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Trigger, {
583
- value: "advanced",
584
- children: formatMessage({
585
- id: index.getTranslation('Settings.locales.modal.advanced'),
586
- defaultMessage: 'Advanced settings'
587
- })
588
- })
589
- ]
590
- })
591
- ]
592
- }),
593
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
594
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
595
- paddingTop: 7,
596
- paddingBottom: 7,
597
- children: [
598
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Content, {
599
- value: "basic",
600
- children: /*#__PURE__*/ jsxRuntime.jsx(BaseForm, {
601
- mode: "edit"
602
- })
603
- }),
604
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tabs.Content, {
605
- value: "advanced",
606
- children: /*#__PURE__*/ jsxRuntime.jsx(AdvancedForm, {
607
- isDefaultLocale: isDefault
608
- })
609
- })
610
- ]
611
- })
612
- ]
613
- })
614
- }),
615
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Modal.Footer, {
616
- children: [
617
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Close, {
618
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
619
- variant: "tertiary",
620
- children: formatMessage({
621
- id: 'app.components.Button.cancel',
622
- defaultMessage: 'Cancel'
623
- })
624
- })
625
- }),
626
- /*#__PURE__*/ jsxRuntime.jsx(SubmitButton, {})
627
- ]
628
- })
629
- ]
630
- })
631
- })
632
- });
633
- };
634
-
635
- const LocaleTable = ({ locales = [], canDelete, canUpdate })=>{
636
- const [editLocaleId, setEditLocaleId] = React__namespace.useState();
637
- const { formatMessage } = reactIntl.useIntl();
638
- const handleClick = (localeId)=>()=>{
639
- if (canUpdate) {
640
- setEditLocaleId(localeId);
641
- }
642
- };
643
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Table, {
644
- colCount: 4,
645
- rowCount: locales.length + 1,
646
- children: [
647
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Thead, {
648
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
649
- children: [
650
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
651
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
652
- variant: "sigma",
653
- textColor: "neutral600",
654
- children: formatMessage({
655
- id: index.getTranslation('Settings.locales.row.id'),
656
- defaultMessage: 'ID'
657
- })
658
- })
659
- }),
660
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
661
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
662
- variant: "sigma",
663
- textColor: "neutral600",
664
- children: formatMessage({
665
- id: index.getTranslation('Settings.locales.row.displayName'),
666
- defaultMessage: 'Display name'
667
- })
668
- })
669
- }),
670
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
671
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
672
- variant: "sigma",
673
- textColor: "neutral600",
674
- children: formatMessage({
675
- id: index.getTranslation('Settings.locales.row.default-locale'),
676
- defaultMessage: 'Default locale'
677
- })
678
- })
679
- }),
680
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Th, {
681
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
682
- children: "Actions"
683
- })
684
- })
685
- ]
686
- })
687
- }),
688
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
689
- children: locales.map((locale)=>/*#__PURE__*/ jsxRuntime.jsxs(React__namespace.Fragment, {
690
- children: [
691
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
692
- onClick: handleClick(locale.id),
693
- style: {
694
- cursor: canUpdate ? 'pointer' : 'default'
695
- },
696
- children: [
697
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
698
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
699
- textColor: "neutral800",
700
- children: locale.id
701
- })
702
- }),
703
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
704
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
705
- textColor: "neutral800",
706
- children: locale.name
707
- })
708
- }),
709
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
710
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
711
- textColor: "neutral800",
712
- children: locale.isDefault ? formatMessage({
713
- id: index.getTranslation('Settings.locales.default'),
714
- defaultMessage: 'Default'
715
- }) : null
716
- })
717
- }),
718
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
719
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
720
- gap: 1,
721
- justifyContent: "flex-end",
722
- onClick: (e)=>e.stopPropagation(),
723
- children: [
724
- canUpdate && /*#__PURE__*/ jsxRuntime.jsx(EditLocale, {
725
- ...locale
726
- }),
727
- canDelete && !locale.isDefault && /*#__PURE__*/ jsxRuntime.jsx(DeleteLocale, {
728
- ...locale
729
- })
730
- ]
731
- })
732
- })
733
- ]
734
- }),
735
- /*#__PURE__*/ jsxRuntime.jsx(EditModal, {
736
- ...locale,
737
- onOpenChange: ()=>setEditLocaleId(undefined),
738
- open: editLocaleId === locale.id
739
- })
740
- ]
741
- }, locale.id))
742
- })
743
- ]
744
- });
745
- };
746
-
747
- const SettingsPage = ()=>{
748
- const { formatMessage } = reactIntl.useIntl();
749
- const { toggleNotification } = strapiAdmin.useNotification();
750
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
751
- const { data: locales, isLoading: isLoadingLocales, error } = index.useGetLocalesQuery();
752
- const { isLoading: isLoadingRBAC, allowedActions: { canUpdate, canCreate, canDelete } } = strapiAdmin.useRBAC(index.PERMISSIONS);
753
- React__namespace.useEffect(()=>{
754
- if (error) {
755
- toggleNotification({
756
- type: 'danger',
757
- message: formatAPIError(error)
758
- });
759
- }
760
- }, [
761
- error,
762
- formatAPIError,
763
- toggleNotification
764
- ]);
765
- const isLoading = isLoadingLocales || isLoadingRBAC;
766
- if (isLoading) {
767
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
768
- }
769
- if (error || !Array.isArray(locales)) {
770
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
771
- }
772
- return /*#__PURE__*/ jsxRuntime.jsxs(strapiAdmin.Page.Main, {
773
- tabIndex: -1,
774
- children: [
775
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Header, {
776
- primaryAction: /*#__PURE__*/ jsxRuntime.jsx(CreateLocale, {
777
- disabled: !canCreate
778
- }),
779
- title: formatMessage({
780
- id: index.getTranslation('plugin.name'),
781
- defaultMessage: 'Internationalization'
782
- }),
783
- subtitle: formatMessage({
784
- id: index.getTranslation('Settings.list.description'),
785
- defaultMessage: 'Configure the settings'
786
- })
787
- }),
788
- /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
789
- children: locales.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(LocaleTable, {
790
- locales: locales,
791
- canDelete: canDelete,
792
- canUpdate: canUpdate
793
- }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.EmptyStateLayout, {
794
- icon: /*#__PURE__*/ jsxRuntime.jsx(symbols.EmptyDocuments, {
795
- width: undefined,
796
- height: undefined
797
- }),
798
- content: formatMessage({
799
- id: index.getTranslation('Settings.list.empty.title'),
800
- defaultMessage: 'There are no locales'
801
- }),
802
- action: /*#__PURE__*/ jsxRuntime.jsx(CreateLocale, {
803
- disabled: !canCreate,
804
- variant: "secondary"
805
- })
806
- })
807
- })
808
- ]
809
- });
810
- };
811
- const ProtectedSettingsPage = ()=>{
812
- return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Protect, {
813
- permissions: index.PERMISSIONS.read,
814
- children: /*#__PURE__*/ jsxRuntime.jsx(SettingsPage, {})
815
- });
816
- };
817
-
818
- exports.ProtectedSettingsPage = ProtectedSettingsPage;
819
- exports.SettingsPage = SettingsPage;
820
- //# sourceMappingURL=SettingsPage-B6ikxVOg.js.map