@strapi/i18n 0.0.0-experimental.dd3311938ac827f1fa8560c8840a9a394f5896c0 → 0.0.0-experimental.ddb35414098c2a2816cae28a6abd5be1c4d8a58a

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 (156) hide show
  1. package/LICENSE +18 -3
  2. package/dist/admin/chunks/SettingsPage-B6ikxVOg.js +820 -0
  3. package/dist/admin/chunks/SettingsPage-B6ikxVOg.js.map +1 -0
  4. package/dist/admin/chunks/SettingsPage-Kg4GAThm.js +797 -0
  5. package/dist/admin/chunks/SettingsPage-Kg4GAThm.js.map +1 -0
  6. package/dist/admin/chunks/de-Cm8mYdaO.js +64 -0
  7. package/dist/admin/chunks/de-Cm8mYdaO.js.map +1 -0
  8. package/dist/admin/chunks/de-nEMWvIiY.js +66 -0
  9. package/dist/admin/chunks/de-nEMWvIiY.js.map +1 -0
  10. package/dist/admin/chunks/dk-BeUFOegB.js +64 -0
  11. package/dist/admin/chunks/dk-BeUFOegB.js.map +1 -0
  12. package/dist/admin/chunks/dk-CYATLPVe.js +66 -0
  13. package/dist/admin/chunks/dk-CYATLPVe.js.map +1 -0
  14. package/dist/admin/chunks/en-CG5cUCbD.js +81 -0
  15. package/dist/admin/chunks/en-CG5cUCbD.js.map +1 -0
  16. package/dist/admin/chunks/en-eWSaCeOb.js +79 -0
  17. package/dist/admin/chunks/en-eWSaCeOb.js.map +1 -0
  18. package/dist/admin/chunks/es-CWsogTGm.js +66 -0
  19. package/dist/admin/chunks/es-CWsogTGm.js.map +1 -0
  20. package/dist/admin/chunks/es-DqF_IdAc.js +64 -0
  21. package/dist/admin/chunks/es-DqF_IdAc.js.map +1 -0
  22. package/dist/admin/chunks/fr-CC7UFcYd.js +66 -0
  23. package/dist/admin/chunks/fr-CC7UFcYd.js.map +1 -0
  24. package/dist/admin/chunks/fr-CyARbZ3c.js +64 -0
  25. package/dist/admin/chunks/fr-CyARbZ3c.js.map +1 -0
  26. package/dist/admin/chunks/index-Dch-2xao.js +2035 -0
  27. package/dist/admin/chunks/index-Dch-2xao.js.map +1 -0
  28. package/dist/admin/chunks/index-DyvbIjH9.js +2006 -0
  29. package/dist/admin/chunks/index-DyvbIjH9.js.map +1 -0
  30. package/dist/admin/chunks/ko-Ax4NSedM.js +63 -0
  31. package/dist/admin/chunks/ko-Ax4NSedM.js.map +1 -0
  32. package/dist/admin/chunks/ko-XwGmfhoq.js +65 -0
  33. package/dist/admin/chunks/ko-XwGmfhoq.js.map +1 -0
  34. package/dist/admin/chunks/pl-B-aqvMqL.js +64 -0
  35. package/dist/admin/chunks/pl-B-aqvMqL.js.map +1 -0
  36. package/dist/admin/chunks/pl-B_vzY_ZB.js +66 -0
  37. package/dist/admin/chunks/pl-B_vzY_ZB.js.map +1 -0
  38. package/dist/admin/chunks/ru-VkPjQ-Sk.js +66 -0
  39. package/dist/admin/chunks/ru-VkPjQ-Sk.js.map +1 -0
  40. package/dist/admin/chunks/ru-WzHcJV1f.js +68 -0
  41. package/dist/admin/chunks/ru-WzHcJV1f.js.map +1 -0
  42. package/dist/admin/chunks/tr-CcWp6u3w.js +66 -0
  43. package/dist/admin/chunks/tr-CcWp6u3w.js.map +1 -0
  44. package/dist/admin/chunks/tr-DcTR88c9.js +64 -0
  45. package/dist/admin/chunks/tr-DcTR88c9.js.map +1 -0
  46. package/dist/admin/chunks/zh-C9So4SGq.js +66 -0
  47. package/dist/admin/chunks/zh-C9So4SGq.js.map +1 -0
  48. package/dist/admin/chunks/zh-Hans-DnU2bhri.js +57 -0
  49. package/dist/admin/chunks/zh-Hans-DnU2bhri.js.map +1 -0
  50. package/dist/admin/chunks/zh-Hans-L3wsRegj.js +55 -0
  51. package/dist/admin/chunks/zh-Hans-L3wsRegj.js.map +1 -0
  52. package/dist/admin/chunks/zh-RZyMiPIs.js +64 -0
  53. package/dist/admin/chunks/zh-RZyMiPIs.js.map +1 -0
  54. package/dist/admin/index.js +20 -4
  55. package/dist/admin/index.js.map +1 -1
  56. package/dist/admin/index.mjs +15 -6
  57. package/dist/admin/index.mjs.map +1 -1
  58. package/dist/admin/src/components/BulkLocaleActionModal.d.ts +2 -1
  59. package/dist/admin/src/components/CMHeaderActions.d.ts +30 -4
  60. package/dist/admin/src/components/CreateLocale.d.ts +6 -6
  61. package/dist/admin/src/components/EditLocale.d.ts +5 -4
  62. package/dist/admin/src/components/LocaleListCell.d.ts +4 -4
  63. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
  64. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
  65. package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
  66. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
  67. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +10 -6
  68. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
  69. package/dist/admin/src/utils/clean.d.ts +4 -0
  70. package/dist/admin/src/utils/schemas.d.ts +1 -0
  71. package/dist/admin/tests/server.d.ts +1 -0
  72. package/dist/admin/tests/utils.d.ts +6 -0
  73. package/dist/server/index.js +3658 -3458
  74. package/dist/server/index.js.map +1 -1
  75. package/dist/server/index.mjs +3640 -3441
  76. package/dist/server/index.mjs.map +1 -1
  77. package/dist/server/src/bootstrap.d.ts +1 -4
  78. package/dist/server/src/bootstrap.d.ts.map +1 -1
  79. package/dist/server/src/index.d.ts +21 -13
  80. package/dist/server/src/index.d.ts.map +1 -1
  81. package/dist/server/src/register.d.ts.map +1 -1
  82. package/dist/server/src/services/index.d.ts +20 -10
  83. package/dist/server/src/services/index.d.ts.map +1 -1
  84. package/dist/server/src/services/localizations.d.ts +1 -1
  85. package/dist/server/src/services/localizations.d.ts.map +1 -1
  86. package/dist/server/src/services/permissions/actions.d.ts +14 -2
  87. package/dist/server/src/services/permissions/actions.d.ts.map +1 -1
  88. package/dist/server/src/services/permissions.d.ts +14 -2
  89. package/dist/server/src/services/permissions.d.ts.map +1 -1
  90. package/dist/server/src/services/sanitize/index.d.ts +11 -0
  91. package/dist/server/src/services/sanitize/index.d.ts.map +1 -0
  92. package/dist/server/src/utils/index.d.ts +2 -2
  93. package/dist/server/src/utils/index.d.ts.map +1 -1
  94. package/dist/shared/contracts/content-manager.d.ts +1 -1
  95. package/dist/shared/contracts/shared.d.ts +1 -1
  96. package/package.json +18 -16
  97. package/dist/_chunks/SettingsPage-BWlXRGN7.mjs +0 -567
  98. package/dist/_chunks/SettingsPage-BWlXRGN7.mjs.map +0 -1
  99. package/dist/_chunks/SettingsPage-DjWupAff.js +0 -587
  100. package/dist/_chunks/SettingsPage-DjWupAff.js.map +0 -1
  101. package/dist/_chunks/de-9eCAqqrB.mjs +0 -66
  102. package/dist/_chunks/de-9eCAqqrB.mjs.map +0 -1
  103. package/dist/_chunks/de-DtWiGdHl.js +0 -66
  104. package/dist/_chunks/de-DtWiGdHl.js.map +0 -1
  105. package/dist/_chunks/dk-2qBjxt-P.mjs +0 -66
  106. package/dist/_chunks/dk-2qBjxt-P.mjs.map +0 -1
  107. package/dist/_chunks/dk-D8C-casx.js +0 -66
  108. package/dist/_chunks/dk-D8C-casx.js.map +0 -1
  109. package/dist/_chunks/en-18tWw4P6.mjs +0 -72
  110. package/dist/_chunks/en-18tWw4P6.mjs.map +0 -1
  111. package/dist/_chunks/en-Kv6y9zPQ.js +0 -72
  112. package/dist/_chunks/en-Kv6y9zPQ.js.map +0 -1
  113. package/dist/_chunks/es-DS-XFGSw.js +0 -66
  114. package/dist/_chunks/es-DS-XFGSw.js.map +0 -1
  115. package/dist/_chunks/es-DlmMVaBG.mjs +0 -66
  116. package/dist/_chunks/es-DlmMVaBG.mjs.map +0 -1
  117. package/dist/_chunks/fr-3S6ke71d.mjs +0 -66
  118. package/dist/_chunks/fr-3S6ke71d.mjs.map +0 -1
  119. package/dist/_chunks/fr-BTjekDpq.js +0 -66
  120. package/dist/_chunks/fr-BTjekDpq.js.map +0 -1
  121. package/dist/_chunks/index-D--YX2ZY.js +0 -1410
  122. package/dist/_chunks/index-D--YX2ZY.js.map +0 -1
  123. package/dist/_chunks/index-DVTdCB4M.mjs +0 -1388
  124. package/dist/_chunks/index-DVTdCB4M.mjs.map +0 -1
  125. package/dist/_chunks/ko-DmcGUBQ3.js +0 -65
  126. package/dist/_chunks/ko-DmcGUBQ3.js.map +0 -1
  127. package/dist/_chunks/ko-qTjQ8IMw.mjs +0 -65
  128. package/dist/_chunks/ko-qTjQ8IMw.mjs.map +0 -1
  129. package/dist/_chunks/pl-B67TSHqT.mjs +0 -66
  130. package/dist/_chunks/pl-B67TSHqT.mjs.map +0 -1
  131. package/dist/_chunks/pl-Cn5RYonZ.js +0 -66
  132. package/dist/_chunks/pl-Cn5RYonZ.js.map +0 -1
  133. package/dist/_chunks/ru-BMBgVL3s.js +0 -68
  134. package/dist/_chunks/ru-BMBgVL3s.js.map +0 -1
  135. package/dist/_chunks/ru-hagMa57T.mjs +0 -68
  136. package/dist/_chunks/ru-hagMa57T.mjs.map +0 -1
  137. package/dist/_chunks/tr-CarUU76c.js +0 -66
  138. package/dist/_chunks/tr-CarUU76c.js.map +0 -1
  139. package/dist/_chunks/tr-Dw_jmkG-.mjs +0 -66
  140. package/dist/_chunks/tr-Dw_jmkG-.mjs.map +0 -1
  141. package/dist/_chunks/zh-57YM4amO.mjs +0 -66
  142. package/dist/_chunks/zh-57YM4amO.mjs.map +0 -1
  143. package/dist/_chunks/zh-CukOviB0.js +0 -66
  144. package/dist/_chunks/zh-CukOviB0.js.map +0 -1
  145. package/dist/_chunks/zh-Hans-DSHIXAa3.js +0 -57
  146. package/dist/_chunks/zh-Hans-DSHIXAa3.js.map +0 -1
  147. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs +0 -57
  148. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs.map +0 -1
  149. package/dist/admin/src/components/Initializer.d.ts +0 -5
  150. package/dist/server/src/migrations/content-type/disable/index.d.ts +0 -3
  151. package/dist/server/src/migrations/content-type/disable/index.d.ts.map +0 -1
  152. package/dist/server/src/migrations/content-type/enable/index.d.ts +0 -3
  153. package/dist/server/src/migrations/content-type/enable/index.d.ts.map +0 -1
  154. package/dist/server/src/services/entity-service-decorator.d.ts +0 -29
  155. package/dist/server/src/services/entity-service-decorator.d.ts.map +0 -1
  156. package/strapi-server.js +0 -3
@@ -1,587 +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 strapiAdmin = require("@strapi/admin/strapi-admin");
6
- const designSystem = require("@strapi/design-system");
7
- const symbols = require("@strapi/icons/symbols");
8
- const reactIntl = require("react-intl");
9
- const icons = require("@strapi/icons");
10
- const yup = require("yup");
11
- const index = require("./index-D--YX2ZY.js");
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule)
14
- return e;
15
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
16
- if (e) {
17
- for (const k in e) {
18
- if (k !== "default") {
19
- const d = Object.getOwnPropertyDescriptor(e, k);
20
- Object.defineProperty(n, k, d.get ? d : {
21
- enumerable: true,
22
- get: () => e[k]
23
- });
24
- }
25
- }
26
- }
27
- n.default = e;
28
- return Object.freeze(n);
29
- }
30
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
31
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
32
- const isBaseQueryError = (error) => {
33
- return error.name !== void 0;
34
- };
35
- const CreateLocale = ({ disabled, variant = "default" }) => {
36
- const { formatMessage } = reactIntl.useIntl();
37
- const [visible, setVisible] = React__namespace.useState(false);
38
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
39
- /* @__PURE__ */ jsxRuntime.jsx(
40
- designSystem.Button,
41
- {
42
- variant,
43
- disabled,
44
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
45
- onClick: () => setVisible(true),
46
- size: "S",
47
- children: formatMessage({
48
- id: index.getTranslation("Settings.list.actions.add"),
49
- defaultMessage: "Add new locale"
50
- })
51
- }
52
- ),
53
- visible ? /* @__PURE__ */ jsxRuntime.jsx(CreateModal, { onClose: () => setVisible(false) }) : null
54
- ] });
55
- };
56
- const LOCALE_SCHEMA = yup__namespace.object().shape({
57
- code: yup__namespace.string().required({
58
- id: "Settings.locales.modal.create.code.error",
59
- defaultMessage: "Please select a locale"
60
- }),
61
- name: yup__namespace.string().max(50, {
62
- id: "Settings.locales.modal.create.name.error.min",
63
- defaultMessage: "The locale display name can only be less than 50 characters."
64
- }).required({
65
- id: "Settings.locales.modal.create.name.error.required",
66
- defaultMessage: "Please give the locale a display name"
67
- }),
68
- isDefault: yup__namespace.boolean()
69
- });
70
- const initialFormValues = {
71
- code: "",
72
- name: "",
73
- isDefault: false
74
- };
75
- const CreateModal = ({ onClose }) => {
76
- const { toggleNotification } = strapiAdmin.useNotification();
77
- const {
78
- _unstableFormatAPIError: formatAPIError,
79
- _unstableFormatValidationErrors: formatValidationErrors
80
- } = strapiAdmin.useAPIErrorHandler();
81
- const [createLocale] = index.useCreateLocaleMutation();
82
- const { formatMessage } = reactIntl.useIntl();
83
- const refetchPermissions = strapiAdmin.useAuth("CreateModal", (state) => state.refetchPermissions);
84
- const handleSubmit = async (values, helpers) => {
85
- try {
86
- const res = await createLocale(values);
87
- if ("error" in res) {
88
- if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
89
- helpers.setErrors(formatValidationErrors(res.error));
90
- } else {
91
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
92
- }
93
- return;
94
- }
95
- toggleNotification({
96
- type: "success",
97
- message: formatMessage({
98
- id: index.getTranslation("Settings.locales.modal.create.success"),
99
- defaultMessage: "Created locale"
100
- })
101
- });
102
- refetchPermissions();
103
- onClose();
104
- } catch (err) {
105
- toggleNotification({
106
- type: "danger",
107
- message: formatMessage({
108
- id: "notification.error",
109
- defaultMessage: "An error occurred, please try again"
110
- })
111
- });
112
- }
113
- };
114
- const titleId = React__namespace.useId();
115
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalLayout, { onClose, labelledBy: titleId, children: /* @__PURE__ */ jsxRuntime.jsxs(
116
- strapiAdmin.Form,
117
- {
118
- method: "POST",
119
- initialValues: initialFormValues,
120
- validationSchema: LOCALE_SCHEMA,
121
- onSubmit: handleSubmit,
122
- children: [
123
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", tag: "h2", id: titleId, children: formatMessage({
124
- id: index.getTranslation("Settings.list.actions.add"),
125
- defaultMessage: "Add new locale"
126
- }) }) }),
127
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(
128
- designSystem.TabGroup,
129
- {
130
- label: formatMessage({
131
- id: index.getTranslation("Settings.locales.modal.title"),
132
- defaultMessage: "Configurations"
133
- }),
134
- variant: "simple",
135
- children: [
136
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
137
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", children: formatMessage({
138
- id: index.getTranslation("Settings.locales.modal.title"),
139
- defaultMessage: "Configuration"
140
- }) }),
141
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs, { children: [
142
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
143
- id: index.getTranslation("Settings.locales.modal.base"),
144
- defaultMessage: "Basic settings"
145
- }) }),
146
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
147
- id: index.getTranslation("Settings.locales.modal.advanced"),
148
- defaultMessage: "Advanced settings"
149
- }) })
150
- ] })
151
- ] }),
152
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
153
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.TabPanels, { children: [
154
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, {}) }),
155
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, {}) })
156
- ] }) })
157
- ]
158
- }
159
- ) }),
160
- /* @__PURE__ */ jsxRuntime.jsx(
161
- designSystem.ModalFooter,
162
- {
163
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onClose, children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }),
164
- endActions: /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
165
- }
166
- )
167
- ]
168
- }
169
- ) });
170
- };
171
- const SubmitButton = () => {
172
- const { formatMessage } = reactIntl.useIntl();
173
- const isSubmitting = strapiAdmin.useForm("SubmitButton", (state) => state.isSubmitting);
174
- const modified = strapiAdmin.useForm("SubmitButton", (state) => state.modified);
175
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}), disabled: isSubmitting || !modified, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) });
176
- };
177
- const BaseForm = ({ mode = "create" }) => {
178
- const { formatMessage } = reactIntl.useIntl();
179
- const { toggleNotification } = strapiAdmin.useNotification();
180
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
181
- const { data: defaultLocales, error } = index.useGetDefaultLocalesQuery();
182
- React__namespace.useEffect(() => {
183
- if (error) {
184
- toggleNotification({
185
- type: "danger",
186
- message: formatAPIError(error)
187
- });
188
- }
189
- }, [error, formatAPIError, toggleNotification]);
190
- if (!Array.isArray(defaultLocales)) {
191
- return null;
192
- }
193
- const options = defaultLocales.map((locale) => ({
194
- label: locale.name,
195
- value: locale.code
196
- }));
197
- const translatedForm = [
198
- {
199
- disabled: mode !== "create",
200
- label: {
201
- id: index.getTranslation("Settings.locales.modal.create.code.label"),
202
- defaultMessage: "Locales"
203
- },
204
- name: "code",
205
- options,
206
- placeholder: {
207
- id: "components.placeholder.select",
208
- defaultMessage: "Select"
209
- },
210
- required: true,
211
- size: 6,
212
- type: "enumeration"
213
- },
214
- {
215
- hint: {
216
- id: index.getTranslation("Settings.locales.modal.create.name.label.description"),
217
- defaultMessage: "Locale will be displayed under that name in the administration panel"
218
- },
219
- label: {
220
- id: index.getTranslation("Settings.locales.modal.create.name.label"),
221
- defaultMessage: "Locale display name"
222
- },
223
- name: "name",
224
- required: true,
225
- size: 6,
226
- type: "string"
227
- }
228
- ].map((field) => ({
229
- ...field,
230
- hint: field.hint ? formatMessage(field.hint) : void 0,
231
- label: formatMessage(field.label),
232
- placeholder: field.placeholder ? formatMessage(field.placeholder) : void 0
233
- }));
234
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: translatedForm.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
235
- };
236
- const AdvancedForm = ({ isDefaultLocale }) => {
237
- const { formatMessage } = reactIntl.useIntl();
238
- const form = [
239
- {
240
- disabled: isDefaultLocale,
241
- hint: {
242
- id: index.getTranslation("Settings.locales.modal.advanced.setAsDefault.hint"),
243
- defaultMessage: "One default locale is required, change it by selecting another one"
244
- },
245
- label: {
246
- id: index.getTranslation("Settings.locales.modal.advanced.setAsDefault"),
247
- defaultMessage: "Set as default locale"
248
- },
249
- name: "isDefault",
250
- size: 6,
251
- type: "boolean"
252
- }
253
- ].map((field) => ({
254
- ...field,
255
- hint: field.hint ? formatMessage(field.hint) : void 0,
256
- label: formatMessage(field.label)
257
- }));
258
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: form.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
259
- };
260
- const FormRenderer = (field) => {
261
- switch (field.type) {
262
- case "enumeration":
263
- return /* @__PURE__ */ jsxRuntime.jsx(EnumerationInput, { ...field });
264
- default:
265
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.InputRenderer, { ...field });
266
- }
267
- };
268
- const EnumerationInput = ({
269
- disabled,
270
- hint,
271
- label,
272
- name,
273
- options,
274
- placeholder,
275
- required
276
- }) => {
277
- const { value, error, onChange } = strapiAdmin.useField(name);
278
- const { data: defaultLocales = [] } = index.useGetDefaultLocalesQuery();
279
- const handleChange = (value2) => {
280
- if (Array.isArray(defaultLocales)) {
281
- const locale = defaultLocales.find((locale2) => locale2.code === value2);
282
- onChange(name, value2);
283
- onChange("name", locale.name);
284
- } else {
285
- onChange(name, value2);
286
- }
287
- };
288
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, hint, name, required, children: [
289
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: label }),
290
- /* @__PURE__ */ jsxRuntime.jsx(
291
- designSystem.SingleSelect,
292
- {
293
- disabled,
294
- onChange: handleChange,
295
- placeholder,
296
- value,
297
- children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: option.value, children: option.label }, option.value))
298
- }
299
- ),
300
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {}),
301
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
302
- ] });
303
- };
304
- const DeleteLocale = ({ id, name }) => {
305
- const { formatMessage } = reactIntl.useIntl();
306
- const { toggleNotification } = strapiAdmin.useNotification();
307
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
308
- const [visible, setVisible] = React__namespace.useState(false);
309
- const [deleteLocale] = index.useDeleteLocaleMutation();
310
- const handleConfirm = async () => {
311
- try {
312
- const res = await deleteLocale(id);
313
- if ("error" in res) {
314
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
315
- return;
316
- }
317
- toggleNotification({
318
- type: "success",
319
- message: formatMessage({
320
- id: index.getTranslation("Settings.locales.modal.delete.success"),
321
- defaultMessage: "Deleted locale"
322
- })
323
- });
324
- } catch (err) {
325
- toggleNotification({
326
- type: "danger",
327
- message: formatMessage({
328
- id: "notification.error",
329
- defaultMessage: "An error occurred, please try again"
330
- })
331
- });
332
- }
333
- };
334
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
335
- /* @__PURE__ */ jsxRuntime.jsx(
336
- designSystem.IconButton,
337
- {
338
- onClick: () => setVisible(true),
339
- label: formatMessage(
340
- {
341
- id: index.getTranslation("Settings.list.actions.delete"),
342
- defaultMessage: "Delete {name} locale"
343
- },
344
- {
345
- name
346
- }
347
- ),
348
- borderWidth: 0,
349
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {})
350
- }
351
- ),
352
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirm, onClose: () => setVisible(false), isOpen: visible })
353
- ] });
354
- };
355
- const EditLocale = (props) => {
356
- const { formatMessage } = reactIntl.useIntl();
357
- const [visible, setVisible] = React__namespace.useState(false);
358
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
359
- /* @__PURE__ */ jsxRuntime.jsx(
360
- designSystem.IconButton,
361
- {
362
- onClick: () => setVisible(true),
363
- label: formatMessage(
364
- {
365
- id: index.getTranslation("Settings.list.actions.edit"),
366
- defaultMessage: "Edit {name} locale"
367
- },
368
- {
369
- name: props.name
370
- }
371
- ),
372
- borderWidth: 0,
373
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {})
374
- }
375
- ),
376
- visible ? /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...props, onClose: () => setVisible(false) }) : null
377
- ] });
378
- };
379
- const EditModal = ({ id, code, isDefault, name, onClose }) => {
380
- const { toggleNotification } = strapiAdmin.useNotification();
381
- const {
382
- _unstableFormatAPIError: formatAPIError,
383
- _unstableFormatValidationErrors: formatValidationErrors
384
- } = strapiAdmin.useAPIErrorHandler();
385
- const refetchPermissions = strapiAdmin.useAuth("EditModal", (state) => state.refetchPermissions);
386
- const { formatMessage } = reactIntl.useIntl();
387
- const titleId = React__namespace.useId();
388
- const [updateLocale] = index.useUpdateLocaleMutation();
389
- const handleSubmit = async ({ code: _code, ...data }, helpers) => {
390
- try {
391
- const res = await updateLocale({
392
- id,
393
- ...data
394
- });
395
- if ("error" in res) {
396
- if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
397
- helpers.setErrors(formatValidationErrors(res.error));
398
- } else {
399
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
400
- }
401
- return;
402
- }
403
- toggleNotification({
404
- type: "success",
405
- message: formatMessage({
406
- id: index.getTranslation("Settings.locales.modal.edit.success"),
407
- defaultMessage: "Updated locale"
408
- })
409
- });
410
- refetchPermissions();
411
- onClose();
412
- } catch (err) {
413
- toggleNotification({
414
- type: "danger",
415
- message: formatMessage({
416
- id: "notification.error",
417
- defaultMessage: "An error occurred, please try again"
418
- })
419
- });
420
- }
421
- };
422
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalLayout, { onClose, labelledBy: titleId, children: /* @__PURE__ */ jsxRuntime.jsxs(
423
- strapiAdmin.Form,
424
- {
425
- method: "PUT",
426
- onSubmit: handleSubmit,
427
- initialValues: {
428
- code,
429
- name,
430
- isDefault
431
- },
432
- validationSchema: LOCALE_SCHEMA,
433
- children: [
434
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", tag: "h2", id: titleId, children: formatMessage({
435
- id: index.getTranslation("Settings.list.actions.edit"),
436
- defaultMessage: "Edit a locale"
437
- }) }) }),
438
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(
439
- designSystem.TabGroup,
440
- {
441
- label: formatMessage({
442
- id: index.getTranslation("Settings.locales.modal.title"),
443
- defaultMessage: "Configurations"
444
- }),
445
- variant: "simple",
446
- children: [
447
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
448
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", children: formatMessage({
449
- id: index.getTranslation("Settings.locales.modal.title"),
450
- defaultMessage: "Configuration"
451
- }) }),
452
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs, { children: [
453
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
454
- id: index.getTranslation("Settings.locales.modal.base"),
455
- defaultMessage: "Basic settings"
456
- }) }),
457
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tab, { children: formatMessage({
458
- id: index.getTranslation("Settings.locales.modal.advanced"),
459
- defaultMessage: "Advanced settings"
460
- }) })
461
- ] })
462
- ] }),
463
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
464
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.TabPanels, { children: [
465
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, { mode: "edit" }) }),
466
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.TabPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, { isDefaultLocale: isDefault }) })
467
- ] }) })
468
- ]
469
- }
470
- ) }),
471
- /* @__PURE__ */ jsxRuntime.jsx(
472
- designSystem.ModalFooter,
473
- {
474
- startActions: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: onClose, children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }),
475
- endActions: /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
476
- }
477
- )
478
- ]
479
- }
480
- ) });
481
- };
482
- const LocaleTable = ({ locales = [], canDelete, canUpdate }) => {
483
- const [editLocaleId, setEditLocaleId] = React__namespace.useState();
484
- const { formatMessage } = reactIntl.useIntl();
485
- const handleClick = (localeId) => () => {
486
- if (canUpdate) {
487
- setEditLocaleId(localeId);
488
- }
489
- };
490
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Table, { colCount: 4, rowCount: locales.length + 1, children: [
491
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
492
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
493
- id: index.getTranslation("Settings.locales.row.id"),
494
- defaultMessage: "ID"
495
- }) }) }),
496
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
497
- id: index.getTranslation("Settings.locales.row.displayName"),
498
- defaultMessage: "Display name"
499
- }) }) }),
500
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
501
- id: index.getTranslation("Settings.locales.row.default-locale"),
502
- defaultMessage: "Default locale"
503
- }) }) }),
504
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: "Actions" }) })
505
- ] }) }),
506
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: locales.map((locale) => /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
507
- /* @__PURE__ */ jsxRuntime.jsxs(
508
- designSystem.Tr,
509
- {
510
- onClick: handleClick(locale.id),
511
- style: { cursor: canUpdate ? "pointer" : "default" },
512
- children: [
513
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.id }) }),
514
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.name }) }),
515
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.isDefault ? formatMessage({
516
- id: index.getTranslation("Settings.locales.default"),
517
- defaultMessage: "Default"
518
- }) : null }) }),
519
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, justifyContent: "flex-end", onClick: (e) => e.stopPropagation(), children: [
520
- canUpdate && /* @__PURE__ */ jsxRuntime.jsx(EditLocale, { ...locale }),
521
- canDelete && !locale.isDefault && /* @__PURE__ */ jsxRuntime.jsx(DeleteLocale, { ...locale })
522
- ] }) })
523
- ]
524
- }
525
- ),
526
- editLocaleId === locale.id ? /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...locale, onClose: () => setEditLocaleId(void 0) }) : null
527
- ] }, locale.id)) })
528
- ] });
529
- };
530
- const SettingsPage = () => {
531
- const { formatMessage } = reactIntl.useIntl();
532
- const { toggleNotification } = strapiAdmin.useNotification();
533
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
534
- const { data: locales, isLoading: isLoadingLocales, error } = index.useGetLocalesQuery();
535
- const {
536
- isLoading: isLoadingRBAC,
537
- allowedActions: { canUpdate, canCreate, canDelete }
538
- } = strapiAdmin.useRBAC(index.PERMISSIONS);
539
- React__namespace.useEffect(() => {
540
- if (error) {
541
- toggleNotification({
542
- type: "danger",
543
- message: formatAPIError(error)
544
- });
545
- }
546
- }, [error, formatAPIError, toggleNotification]);
547
- const isLoading = isLoadingLocales || isLoadingRBAC;
548
- if (isLoading) {
549
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
550
- }
551
- if (error || !Array.isArray(locales)) {
552
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
553
- }
554
- return /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Page.Main, { tabIndex: -1, children: [
555
- /* @__PURE__ */ jsxRuntime.jsx(
556
- strapiAdmin.Layouts.Header,
557
- {
558
- primaryAction: /* @__PURE__ */ jsxRuntime.jsx(CreateLocale, { disabled: !canCreate }),
559
- title: formatMessage({
560
- id: index.getTranslation("plugin.name"),
561
- defaultMessage: "Internationalization"
562
- }),
563
- subtitle: formatMessage({
564
- id: index.getTranslation("Settings.list.description"),
565
- defaultMessage: "Configure the settings"
566
- })
567
- }
568
- ),
569
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Layouts.Content, { children: locales.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(LocaleTable, { locales, canDelete, canUpdate }) : /* @__PURE__ */ jsxRuntime.jsx(
570
- designSystem.EmptyStateLayout,
571
- {
572
- icon: /* @__PURE__ */ jsxRuntime.jsx(symbols.EmptyDocuments, { width: void 0, height: void 0 }),
573
- content: formatMessage({
574
- id: index.getTranslation("Settings.list.empty.title"),
575
- defaultMessage: "There are no locales"
576
- }),
577
- action: /* @__PURE__ */ jsxRuntime.jsx(CreateLocale, { disabled: !canCreate, variant: "secondary" })
578
- }
579
- ) })
580
- ] });
581
- };
582
- const ProtectedSettingsPage = () => {
583
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions: index.PERMISSIONS.read, children: /* @__PURE__ */ jsxRuntime.jsx(SettingsPage, {}) });
584
- };
585
- exports.ProtectedSettingsPage = ProtectedSettingsPage;
586
- exports.SettingsPage = SettingsPage;
587
- //# sourceMappingURL=SettingsPage-DjWupAff.js.map