@strapi/i18n 0.0.0-experimental.bffd3c1819cd08304e7d270e88b4973e9fcbc183 → 0.0.0-experimental.c23f51fc41b3ef5de081f427d07e87af93cdcb2c

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 (366) hide show
  1. package/dist/admin/components/BulkLocaleActionModal.js +262 -0
  2. package/dist/admin/components/BulkLocaleActionModal.js.map +1 -0
  3. package/dist/admin/components/BulkLocaleActionModal.mjs +260 -0
  4. package/dist/admin/components/BulkLocaleActionModal.mjs.map +1 -0
  5. package/dist/admin/components/CMHeaderActions.js +721 -0
  6. package/dist/admin/components/CMHeaderActions.js.map +1 -0
  7. package/dist/admin/components/CMHeaderActions.mjs +696 -0
  8. package/dist/admin/components/CMHeaderActions.mjs.map +1 -0
  9. package/dist/admin/components/CMListViewModalsAdditionalInformation.js +69 -0
  10. package/dist/admin/components/CMListViewModalsAdditionalInformation.js.map +1 -0
  11. package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs +65 -0
  12. package/dist/admin/components/CMListViewModalsAdditionalInformation.mjs.map +1 -0
  13. package/dist/admin/components/CheckboxConfirmation.js +155 -0
  14. package/dist/admin/components/CheckboxConfirmation.js.map +1 -0
  15. package/dist/admin/components/CheckboxConfirmation.mjs +134 -0
  16. package/dist/admin/components/CheckboxConfirmation.mjs.map +1 -0
  17. package/dist/admin/components/CreateLocale.js +395 -0
  18. package/dist/admin/components/CreateLocale.js.map +1 -0
  19. package/dist/admin/components/CreateLocale.mjs +369 -0
  20. package/dist/admin/components/CreateLocale.mjs.map +1 -0
  21. package/dist/admin/components/DeleteLocale.js +90 -0
  22. package/dist/admin/components/DeleteLocale.js.map +1 -0
  23. package/dist/admin/components/DeleteLocale.mjs +69 -0
  24. package/dist/admin/components/DeleteLocale.mjs.map +1 -0
  25. package/dist/admin/components/EditLocale.js +212 -0
  26. package/dist/admin/components/EditLocale.js.map +1 -0
  27. package/dist/admin/components/EditLocale.mjs +190 -0
  28. package/dist/admin/components/EditLocale.mjs.map +1 -0
  29. package/dist/admin/components/LocaleListCell.js +82 -0
  30. package/dist/admin/components/LocaleListCell.js.map +1 -0
  31. package/dist/admin/components/LocaleListCell.mjs +80 -0
  32. package/dist/admin/components/LocaleListCell.mjs.map +1 -0
  33. package/dist/admin/components/LocalePicker.js +98 -0
  34. package/dist/admin/components/LocalePicker.js.map +1 -0
  35. package/dist/admin/components/LocalePicker.mjs +77 -0
  36. package/dist/admin/components/LocalePicker.mjs.map +1 -0
  37. package/dist/admin/components/LocaleTable.js +143 -0
  38. package/dist/admin/components/LocaleTable.js.map +1 -0
  39. package/dist/admin/components/LocaleTable.mjs +122 -0
  40. package/dist/admin/components/LocaleTable.mjs.map +1 -0
  41. package/dist/admin/constants.js +37 -0
  42. package/dist/admin/constants.js.map +1 -0
  43. package/dist/admin/constants.mjs +35 -0
  44. package/dist/admin/constants.mjs.map +1 -0
  45. package/dist/admin/contentManagerHooks/editView.js +106 -0
  46. package/dist/admin/contentManagerHooks/editView.js.map +1 -0
  47. package/dist/admin/contentManagerHooks/editView.mjs +85 -0
  48. package/dist/admin/contentManagerHooks/editView.mjs.map +1 -0
  49. package/dist/admin/contentManagerHooks/listView.js +43 -0
  50. package/dist/admin/contentManagerHooks/listView.js.map +1 -0
  51. package/dist/admin/contentManagerHooks/listView.mjs +41 -0
  52. package/dist/admin/contentManagerHooks/listView.mjs.map +1 -0
  53. package/dist/admin/contentReleasesHooks/releaseDetailsView.js +20 -0
  54. package/dist/admin/contentReleasesHooks/releaseDetailsView.js.map +1 -0
  55. package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs +18 -0
  56. package/dist/admin/contentReleasesHooks/releaseDetailsView.mjs.map +1 -0
  57. package/dist/admin/hooks/useI18n.js +78 -0
  58. package/dist/admin/hooks/useI18n.js.map +1 -0
  59. package/dist/admin/hooks/useI18n.mjs +57 -0
  60. package/dist/admin/hooks/useI18n.mjs.map +1 -0
  61. package/dist/admin/index.js +226 -5
  62. package/dist/admin/index.js.map +1 -1
  63. package/dist/admin/index.mjs +202 -5
  64. package/dist/admin/index.mjs.map +1 -1
  65. package/dist/admin/middlewares/extendCTBAttributeInitialData.js +61 -0
  66. package/dist/admin/middlewares/extendCTBAttributeInitialData.js.map +1 -0
  67. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs +59 -0
  68. package/dist/admin/middlewares/extendCTBAttributeInitialData.mjs.map +1 -0
  69. package/dist/admin/middlewares/extendCTBInitialData.js +40 -0
  70. package/dist/admin/middlewares/extendCTBInitialData.js.map +1 -0
  71. package/dist/admin/middlewares/extendCTBInitialData.mjs +38 -0
  72. package/dist/admin/middlewares/extendCTBInitialData.mjs.map +1 -0
  73. package/dist/admin/middlewares/rbac-middleware.js +49 -0
  74. package/dist/admin/middlewares/rbac-middleware.js.map +1 -0
  75. package/dist/admin/middlewares/rbac-middleware.mjs +28 -0
  76. package/dist/admin/middlewares/rbac-middleware.mjs.map +1 -0
  77. package/dist/admin/pages/SettingsPage.js +107 -0
  78. package/dist/admin/pages/SettingsPage.js.map +1 -0
  79. package/dist/admin/pages/SettingsPage.mjs +85 -0
  80. package/dist/admin/pages/SettingsPage.mjs.map +1 -0
  81. package/dist/admin/pluginId.js +6 -0
  82. package/dist/admin/pluginId.js.map +1 -0
  83. package/dist/admin/pluginId.mjs +4 -0
  84. package/dist/admin/pluginId.mjs.map +1 -0
  85. package/dist/admin/services/api.js +12 -0
  86. package/dist/admin/services/api.js.map +1 -0
  87. package/dist/admin/services/api.mjs +10 -0
  88. package/dist/admin/services/api.mjs.map +1 -0
  89. package/dist/admin/services/locales.js +70 -0
  90. package/dist/admin/services/locales.js.map +1 -0
  91. package/dist/admin/services/locales.mjs +64 -0
  92. package/dist/admin/services/locales.mjs.map +1 -0
  93. package/dist/admin/services/relations.js +23 -0
  94. package/dist/admin/services/relations.js.map +1 -0
  95. package/dist/admin/services/relations.mjs +21 -0
  96. package/dist/admin/services/relations.mjs.map +1 -0
  97. package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
  98. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
  99. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
  100. package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
  101. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
  102. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  103. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
  104. package/dist/admin/tests/server.d.ts +1 -0
  105. package/dist/admin/tests/utils.d.ts +6 -0
  106. package/dist/admin/translations/de.json.js +66 -0
  107. package/dist/admin/translations/de.json.js.map +1 -0
  108. package/dist/admin/translations/de.json.mjs +64 -0
  109. package/dist/admin/translations/de.json.mjs.map +1 -0
  110. package/dist/admin/translations/dk.json.js +66 -0
  111. package/dist/admin/translations/dk.json.js.map +1 -0
  112. package/dist/admin/translations/dk.json.mjs +64 -0
  113. package/dist/admin/translations/dk.json.mjs.map +1 -0
  114. package/dist/admin/translations/en.json.js +81 -0
  115. package/dist/admin/translations/en.json.js.map +1 -0
  116. package/dist/admin/translations/en.json.mjs +79 -0
  117. package/dist/admin/translations/en.json.mjs.map +1 -0
  118. package/dist/admin/translations/es.json.js +66 -0
  119. package/dist/admin/translations/es.json.js.map +1 -0
  120. package/dist/admin/translations/es.json.mjs +64 -0
  121. package/dist/admin/translations/es.json.mjs.map +1 -0
  122. package/dist/admin/translations/fr.json.js +66 -0
  123. package/dist/admin/translations/fr.json.js.map +1 -0
  124. package/dist/admin/translations/fr.json.mjs +64 -0
  125. package/dist/admin/translations/fr.json.mjs.map +1 -0
  126. package/dist/admin/translations/ko.json.js +65 -0
  127. package/dist/admin/translations/ko.json.js.map +1 -0
  128. package/dist/admin/translations/ko.json.mjs +63 -0
  129. package/dist/admin/translations/ko.json.mjs.map +1 -0
  130. package/dist/admin/translations/pl.json.js +66 -0
  131. package/dist/admin/translations/pl.json.js.map +1 -0
  132. package/dist/admin/translations/pl.json.mjs +64 -0
  133. package/dist/admin/translations/pl.json.mjs.map +1 -0
  134. package/dist/admin/translations/ru.json.js +68 -0
  135. package/dist/admin/translations/ru.json.js.map +1 -0
  136. package/dist/admin/translations/ru.json.mjs +66 -0
  137. package/dist/admin/translations/ru.json.mjs.map +1 -0
  138. package/dist/admin/translations/tr.json.js +66 -0
  139. package/dist/admin/translations/tr.json.js.map +1 -0
  140. package/dist/admin/translations/tr.json.mjs +64 -0
  141. package/dist/admin/translations/tr.json.mjs.map +1 -0
  142. package/dist/admin/translations/uk.json.js +82 -0
  143. package/dist/admin/translations/uk.json.js.map +1 -0
  144. package/dist/admin/translations/uk.json.mjs +80 -0
  145. package/dist/admin/translations/uk.json.mjs.map +1 -0
  146. package/dist/admin/translations/zh-Hans.json.js +57 -0
  147. package/dist/admin/translations/zh-Hans.json.js.map +1 -0
  148. package/dist/admin/translations/zh-Hans.json.mjs +55 -0
  149. package/dist/admin/translations/zh-Hans.json.mjs.map +1 -0
  150. package/dist/admin/translations/zh.json.js +66 -0
  151. package/dist/admin/translations/zh.json.js.map +1 -0
  152. package/dist/admin/translations/zh.json.mjs +64 -0
  153. package/dist/admin/translations/zh.json.mjs.map +1 -0
  154. package/dist/admin/utils/baseQuery.js +8 -0
  155. package/dist/admin/utils/baseQuery.js.map +1 -0
  156. package/dist/admin/utils/baseQuery.mjs +6 -0
  157. package/dist/admin/utils/baseQuery.mjs.map +1 -0
  158. package/dist/admin/utils/clean.js +70 -0
  159. package/dist/admin/utils/clean.js.map +1 -0
  160. package/dist/admin/utils/clean.mjs +68 -0
  161. package/dist/admin/utils/clean.mjs.map +1 -0
  162. package/dist/admin/utils/fields.js +29 -0
  163. package/dist/admin/utils/fields.js.map +1 -0
  164. package/dist/admin/utils/fields.mjs +26 -0
  165. package/dist/admin/utils/fields.mjs.map +1 -0
  166. package/dist/admin/utils/getTranslation.js +8 -0
  167. package/dist/admin/utils/getTranslation.js.map +1 -0
  168. package/dist/admin/utils/getTranslation.mjs +6 -0
  169. package/dist/admin/utils/getTranslation.mjs.map +1 -0
  170. package/dist/admin/utils/prefixPluginTranslations.js +11 -0
  171. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
  172. package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
  173. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
  174. package/dist/admin/utils/schemas.js +68 -0
  175. package/dist/admin/utils/schemas.js.map +1 -0
  176. package/dist/admin/utils/schemas.mjs +66 -0
  177. package/dist/admin/utils/schemas.mjs.map +1 -0
  178. package/dist/admin/utils/strings.js +6 -0
  179. package/dist/admin/utils/strings.js.map +1 -0
  180. package/dist/admin/utils/strings.mjs +4 -0
  181. package/dist/admin/utils/strings.mjs.map +1 -0
  182. package/dist/server/bootstrap.js +79 -0
  183. package/dist/server/bootstrap.js.map +1 -0
  184. package/dist/server/bootstrap.mjs +77 -0
  185. package/dist/server/bootstrap.mjs.map +1 -0
  186. package/dist/server/constants/index.js +29 -0
  187. package/dist/server/constants/index.js.map +1 -0
  188. package/dist/server/constants/index.mjs +25 -0
  189. package/dist/server/constants/index.mjs.map +1 -0
  190. package/dist/server/constants/iso-locales.json.js +2423 -0
  191. package/dist/server/constants/iso-locales.json.js.map +1 -0
  192. package/dist/server/constants/iso-locales.json.mjs +2421 -0
  193. package/dist/server/constants/iso-locales.json.mjs.map +1 -0
  194. package/dist/server/content-types/index.js +10 -0
  195. package/dist/server/content-types/index.js.map +1 -0
  196. package/dist/server/content-types/index.mjs +8 -0
  197. package/dist/server/content-types/index.mjs.map +1 -0
  198. package/dist/server/content-types/locale/index.js +10 -0
  199. package/dist/server/content-types/locale/index.js.map +1 -0
  200. package/dist/server/content-types/locale/index.mjs +8 -0
  201. package/dist/server/content-types/locale/index.mjs.map +1 -0
  202. package/dist/server/content-types/locale/schema.json.js +46 -0
  203. package/dist/server/content-types/locale/schema.json.js.map +1 -0
  204. package/dist/server/content-types/locale/schema.json.mjs +38 -0
  205. package/dist/server/content-types/locale/schema.json.mjs.map +1 -0
  206. package/dist/server/controllers/content-types.js +76 -0
  207. package/dist/server/controllers/content-types.js.map +1 -0
  208. package/dist/server/controllers/content-types.mjs +74 -0
  209. package/dist/server/controllers/content-types.mjs.map +1 -0
  210. package/dist/server/controllers/index.js +14 -0
  211. package/dist/server/controllers/index.js.map +1 -0
  212. package/dist/server/controllers/index.mjs +12 -0
  213. package/dist/server/controllers/index.mjs.map +1 -0
  214. package/dist/server/controllers/iso-locales.js +13 -0
  215. package/dist/server/controllers/iso-locales.js.map +1 -0
  216. package/dist/server/controllers/iso-locales.mjs +11 -0
  217. package/dist/server/controllers/iso-locales.mjs.map +1 -0
  218. package/dist/server/controllers/locales.js +108 -0
  219. package/dist/server/controllers/locales.js.map +1 -0
  220. package/dist/server/controllers/locales.mjs +87 -0
  221. package/dist/server/controllers/locales.mjs.map +1 -0
  222. package/dist/server/controllers/validate-locale-creation.js +47 -0
  223. package/dist/server/controllers/validate-locale-creation.js.map +1 -0
  224. package/dist/server/controllers/validate-locale-creation.mjs +45 -0
  225. package/dist/server/controllers/validate-locale-creation.mjs.map +1 -0
  226. package/dist/server/domain/locale.js +11 -0
  227. package/dist/server/domain/locale.js.map +1 -0
  228. package/dist/server/domain/locale.mjs +9 -0
  229. package/dist/server/domain/locale.mjs.map +1 -0
  230. package/dist/server/graphql.js +115 -0
  231. package/dist/server/graphql.js.map +1 -0
  232. package/dist/server/graphql.mjs +113 -0
  233. package/dist/server/graphql.mjs.map +1 -0
  234. package/dist/server/index.js +18 -3460
  235. package/dist/server/index.js.map +1 -1
  236. package/dist/server/index.mjs +17 -3443
  237. package/dist/server/index.mjs.map +1 -1
  238. package/dist/server/register.js +79 -0
  239. package/dist/server/register.js.map +1 -0
  240. package/dist/server/register.mjs +77 -0
  241. package/dist/server/register.mjs.map +1 -0
  242. package/dist/server/routes/admin.js +102 -0
  243. package/dist/server/routes/admin.js.map +1 -0
  244. package/dist/server/routes/admin.mjs +100 -0
  245. package/dist/server/routes/admin.mjs.map +1 -0
  246. package/dist/server/routes/content-api.js +15 -0
  247. package/dist/server/routes/content-api.js.map +1 -0
  248. package/dist/server/routes/content-api.mjs +13 -0
  249. package/dist/server/routes/content-api.mjs.map +1 -0
  250. package/dist/server/routes/index.js +12 -0
  251. package/dist/server/routes/index.js.map +1 -0
  252. package/dist/server/routes/index.mjs +10 -0
  253. package/dist/server/routes/index.mjs.map +1 -0
  254. package/dist/server/services/content-types.js +157 -0
  255. package/dist/server/services/content-types.js.map +1 -0
  256. package/dist/server/services/content-types.mjs +155 -0
  257. package/dist/server/services/content-types.mjs.map +1 -0
  258. package/dist/server/services/index.js +22 -0
  259. package/dist/server/services/index.js.map +1 -0
  260. package/dist/server/services/index.mjs +20 -0
  261. package/dist/server/services/index.mjs.map +1 -0
  262. package/dist/server/services/iso-locales.js +12 -0
  263. package/dist/server/services/iso-locales.js.map +1 -0
  264. package/dist/server/services/iso-locales.mjs +10 -0
  265. package/dist/server/services/iso-locales.mjs.map +1 -0
  266. package/dist/server/services/locales.js +114 -0
  267. package/dist/server/services/locales.js.map +1 -0
  268. package/dist/server/services/locales.mjs +112 -0
  269. package/dist/server/services/locales.mjs.map +1 -0
  270. package/dist/server/services/localizations.js +68 -0
  271. package/dist/server/services/localizations.js.map +1 -0
  272. package/dist/server/services/localizations.mjs +66 -0
  273. package/dist/server/services/localizations.mjs.map +1 -0
  274. package/dist/server/services/metrics.js +30 -0
  275. package/dist/server/services/metrics.js.map +1 -0
  276. package/dist/server/services/metrics.mjs +28 -0
  277. package/dist/server/services/metrics.mjs.map +1 -0
  278. package/dist/server/services/permissions/actions.js +136 -0
  279. package/dist/server/services/permissions/actions.js.map +1 -0
  280. package/dist/server/services/permissions/actions.mjs +134 -0
  281. package/dist/server/services/permissions/actions.mjs.map +1 -0
  282. package/dist/server/services/permissions/engine.js +52 -0
  283. package/dist/server/services/permissions/engine.js.map +1 -0
  284. package/dist/server/services/permissions/engine.mjs +50 -0
  285. package/dist/server/services/permissions/engine.mjs.map +1 -0
  286. package/dist/server/services/permissions/sections-builder.js +45 -0
  287. package/dist/server/services/permissions/sections-builder.js.map +1 -0
  288. package/dist/server/services/permissions/sections-builder.mjs +43 -0
  289. package/dist/server/services/permissions/sections-builder.mjs.map +1 -0
  290. package/dist/server/services/permissions.js +14 -0
  291. package/dist/server/services/permissions.js.map +1 -0
  292. package/dist/server/services/permissions.mjs +12 -0
  293. package/dist/server/services/permissions.mjs.map +1 -0
  294. package/dist/server/services/sanitize/index.js +34 -0
  295. package/dist/server/services/sanitize/index.js.map +1 -0
  296. package/dist/server/services/sanitize/index.mjs +32 -0
  297. package/dist/server/services/sanitize/index.mjs.map +1 -0
  298. package/dist/server/src/services/localizations.d.ts +1 -1
  299. package/dist/server/src/services/localizations.d.ts.map +1 -1
  300. package/dist/server/utils/index.js +16 -0
  301. package/dist/server/utils/index.js.map +1 -0
  302. package/dist/server/utils/index.mjs +13 -0
  303. package/dist/server/utils/index.mjs.map +1 -0
  304. package/dist/server/validation/content-types.js +18 -0
  305. package/dist/server/validation/content-types.js.map +1 -0
  306. package/dist/server/validation/content-types.mjs +16 -0
  307. package/dist/server/validation/content-types.mjs.map +1 -0
  308. package/dist/server/validation/locales.js +23 -0
  309. package/dist/server/validation/locales.js.map +1 -0
  310. package/dist/server/validation/locales.mjs +20 -0
  311. package/dist/server/validation/locales.mjs.map +1 -0
  312. package/dist/shared/contracts/content-manager.d.ts +1 -1
  313. package/dist/shared/contracts/shared.d.ts +1 -1
  314. package/package.json +14 -11
  315. package/dist/_chunks/SettingsPage-B-KzAqT3.mjs +0 -554
  316. package/dist/_chunks/SettingsPage-B-KzAqT3.mjs.map +0 -1
  317. package/dist/_chunks/SettingsPage-hyOi94O9.js +0 -573
  318. package/dist/_chunks/SettingsPage-hyOi94O9.js.map +0 -1
  319. package/dist/_chunks/de-BOhNX_-5.js +0 -65
  320. package/dist/_chunks/de-BOhNX_-5.js.map +0 -1
  321. package/dist/_chunks/de-D80IRBP9.mjs +0 -65
  322. package/dist/_chunks/de-D80IRBP9.mjs.map +0 -1
  323. package/dist/_chunks/dk-CJ6Zzz78.mjs +0 -65
  324. package/dist/_chunks/dk-CJ6Zzz78.mjs.map +0 -1
  325. package/dist/_chunks/dk-cjXm0p3m.js +0 -65
  326. package/dist/_chunks/dk-cjXm0p3m.js.map +0 -1
  327. package/dist/_chunks/en-BTyF7WVW.mjs +0 -80
  328. package/dist/_chunks/en-BTyF7WVW.mjs.map +0 -1
  329. package/dist/_chunks/en-UlC0jh2t.js +0 -80
  330. package/dist/_chunks/en-UlC0jh2t.js.map +0 -1
  331. package/dist/_chunks/es-V8WnPN7w.mjs +0 -65
  332. package/dist/_chunks/es-V8WnPN7w.mjs.map +0 -1
  333. package/dist/_chunks/es-hr9b_HLp.js +0 -65
  334. package/dist/_chunks/es-hr9b_HLp.js.map +0 -1
  335. package/dist/_chunks/fr-BFmBbE0H.js +0 -65
  336. package/dist/_chunks/fr-BFmBbE0H.js.map +0 -1
  337. package/dist/_chunks/fr-F94noFiV.mjs +0 -65
  338. package/dist/_chunks/fr-F94noFiV.mjs.map +0 -1
  339. package/dist/_chunks/index-BcYj5jo9.mjs +0 -1589
  340. package/dist/_chunks/index-BcYj5jo9.mjs.map +0 -1
  341. package/dist/_chunks/index-C8NzsAKp.js +0 -1610
  342. package/dist/_chunks/index-C8NzsAKp.js.map +0 -1
  343. package/dist/_chunks/ko-C40pNQ9b.js +0 -64
  344. package/dist/_chunks/ko-C40pNQ9b.js.map +0 -1
  345. package/dist/_chunks/ko-CF-P3Car.mjs +0 -64
  346. package/dist/_chunks/ko-CF-P3Car.mjs.map +0 -1
  347. package/dist/_chunks/pl-Dxr9RUmD.mjs +0 -65
  348. package/dist/_chunks/pl-Dxr9RUmD.mjs.map +0 -1
  349. package/dist/_chunks/pl-JtWBy-JQ.js +0 -65
  350. package/dist/_chunks/pl-JtWBy-JQ.js.map +0 -1
  351. package/dist/_chunks/ru-B-4sVwXN.mjs +0 -67
  352. package/dist/_chunks/ru-B-4sVwXN.mjs.map +0 -1
  353. package/dist/_chunks/ru-COSWt3Nu.js +0 -67
  354. package/dist/_chunks/ru-COSWt3Nu.js.map +0 -1
  355. package/dist/_chunks/tr-BVj1O5ch.js +0 -65
  356. package/dist/_chunks/tr-BVj1O5ch.js.map +0 -1
  357. package/dist/_chunks/tr-Ccu6Yj11.mjs +0 -65
  358. package/dist/_chunks/tr-Ccu6Yj11.mjs.map +0 -1
  359. package/dist/_chunks/zh-BIz395Ms.mjs +0 -65
  360. package/dist/_chunks/zh-BIz395Ms.mjs.map +0 -1
  361. package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs +0 -56
  362. package/dist/_chunks/zh-Hans-Bfo6_TCM.mjs.map +0 -1
  363. package/dist/_chunks/zh-Hans-DIEm_EMC.js +0 -56
  364. package/dist/_chunks/zh-Hans-DIEm_EMC.js.map +0 -1
  365. package/dist/_chunks/zh-wkBPBkhc.js +0 -65
  366. package/dist/_chunks/zh-wkBPBkhc.js.map +0 -1
@@ -0,0 +1,696 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { skipToken } from '@reduxjs/toolkit/query';
4
+ import { useQueryParams, useForm, useNotification, useAPIErrorHandler, Table } from '@strapi/admin/strapi-admin';
5
+ import { unstable_useDocument, unstable_useDocumentActions, buildValidParams } from '@strapi/content-manager/strapi-admin';
6
+ import { Dialog, Flex, Typography, Field, SingleSelect, SingleSelectOption, Button, Status, Modal } from '@strapi/design-system';
7
+ import { Trash, Plus, Earth, WarningCircle, ListPlus, Cross } from '@strapi/icons';
8
+ import { useIntl } from 'react-intl';
9
+ import { useNavigate } from 'react-router-dom';
10
+ import { styled } from 'styled-components';
11
+ import { useI18n } from '../hooks/useI18n.mjs';
12
+ import { useGetLocalesQuery } from '../services/locales.mjs';
13
+ import { useGetManyDraftRelationCountQuery } from '../services/relations.mjs';
14
+ import { cleanData } from '../utils/clean.mjs';
15
+ import { getTranslation } from '../utils/getTranslation.mjs';
16
+ import { capitalize } from '../utils/strings.mjs';
17
+ import { BulkLocaleActionModal } from './BulkLocaleActionModal.mjs';
18
+
19
+ const statusVariants = {
20
+ draft: 'secondary',
21
+ published: 'success',
22
+ modified: 'alternative'
23
+ };
24
+ const LocaleOption = ({ isDraftAndPublishEnabled, locale, status, entryExists })=>{
25
+ const { formatMessage } = useIntl();
26
+ if (!entryExists) {
27
+ return formatMessage({
28
+ id: getTranslation('CMEditViewLocalePicker.locale.create'),
29
+ defaultMessage: 'Create <bold>{locale}</bold> locale'
30
+ }, {
31
+ bold: (locale)=>/*#__PURE__*/ jsx("b", {
32
+ children: locale
33
+ }),
34
+ locale: locale.name
35
+ });
36
+ }
37
+ return /*#__PURE__*/ jsxs(Flex, {
38
+ width: "100%",
39
+ gap: 1,
40
+ justifyContent: "space-between",
41
+ children: [
42
+ /*#__PURE__*/ jsx(Typography, {
43
+ children: locale.name
44
+ }),
45
+ isDraftAndPublishEnabled ? /*#__PURE__*/ jsx(Status, {
46
+ display: "flex",
47
+ paddingLeft: "6px",
48
+ paddingRight: "6px",
49
+ paddingTop: "2px",
50
+ paddingBottom: "2px",
51
+ size: "S",
52
+ variant: statusVariants[status],
53
+ children: /*#__PURE__*/ jsx(Typography, {
54
+ tag: "span",
55
+ variant: "pi",
56
+ fontWeight: "bold",
57
+ children: capitalize(status)
58
+ })
59
+ }) : null
60
+ ]
61
+ });
62
+ };
63
+ const LocalePickerAction = ({ document, meta, model, collectionType, documentId })=>{
64
+ const { formatMessage } = useIntl();
65
+ const [{ query }, setQuery] = useQueryParams();
66
+ const { hasI18n, canCreate, canRead } = useI18n();
67
+ const { data: locales = [] } = useGetLocalesQuery();
68
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
69
+ const { schema } = unstable_useDocument({
70
+ model,
71
+ collectionType,
72
+ documentId,
73
+ params: {
74
+ locale: currentDesiredLocale
75
+ }
76
+ });
77
+ const handleSelect = React.useCallback((value)=>{
78
+ setQuery({
79
+ plugins: {
80
+ ...query.plugins,
81
+ i18n: {
82
+ locale: value
83
+ }
84
+ }
85
+ });
86
+ }, [
87
+ query.plugins,
88
+ setQuery
89
+ ]);
90
+ React.useEffect(()=>{
91
+ if (!Array.isArray(locales) || !hasI18n) {
92
+ return;
93
+ }
94
+ /**
95
+ * Handle the case where the current locale query param doesn't exist
96
+ * in the list of available locales, so we redirect to the default locale.
97
+ */ const doesLocaleExist = locales.find((loc)=>loc.code === currentDesiredLocale);
98
+ const defaultLocale = locales.find((locale)=>locale.isDefault);
99
+ if (!doesLocaleExist && defaultLocale?.code) {
100
+ handleSelect(defaultLocale.code);
101
+ }
102
+ }, [
103
+ handleSelect,
104
+ hasI18n,
105
+ locales,
106
+ currentDesiredLocale
107
+ ]);
108
+ const currentLocale = Array.isArray(locales) ? locales.find((locale)=>locale.code === currentDesiredLocale) : undefined;
109
+ const allCurrentLocales = [
110
+ {
111
+ status: getDocumentStatus(document, meta),
112
+ locale: currentLocale?.code
113
+ },
114
+ ...document?.localizations ?? []
115
+ ];
116
+ if (!hasI18n || !Array.isArray(locales) || locales.length === 0) {
117
+ return null;
118
+ }
119
+ const displayedLocales = locales.filter((locale)=>{
120
+ /**
121
+ * If you can read we allow you to see the locale exists
122
+ * otherwise the locale is hidden.
123
+ */ return canRead.includes(locale.code);
124
+ });
125
+ return {
126
+ label: formatMessage({
127
+ id: getTranslation('Settings.locales.modal.locales.label'),
128
+ defaultMessage: 'Locales'
129
+ }),
130
+ options: displayedLocales.map((locale)=>{
131
+ const entryWithLocaleExists = allCurrentLocales.some((doc)=>doc.locale === locale.code);
132
+ const currentLocaleDoc = allCurrentLocales.find((doc)=>'locale' in doc ? doc.locale === locale.code : false);
133
+ const permissionsToCheck = currentLocaleDoc ? canRead : canCreate;
134
+ return {
135
+ disabled: !permissionsToCheck.includes(locale.code),
136
+ value: locale.code,
137
+ label: /*#__PURE__*/ jsx(LocaleOption, {
138
+ isDraftAndPublishEnabled: !!schema?.options?.draftAndPublish,
139
+ locale: locale,
140
+ status: currentLocaleDoc?.status,
141
+ entryExists: entryWithLocaleExists
142
+ }),
143
+ startIcon: !entryWithLocaleExists ? /*#__PURE__*/ jsx(Plus, {}) : null
144
+ };
145
+ }),
146
+ customizeContent: ()=>currentLocale?.name,
147
+ onSelect: handleSelect,
148
+ value: currentLocale
149
+ };
150
+ };
151
+ const getDocumentStatus = (document, meta)=>{
152
+ const docStatus = document?.status;
153
+ const statuses = meta?.availableStatus ?? [];
154
+ /**
155
+ * Creating an entry
156
+ */ if (!docStatus) {
157
+ return 'draft';
158
+ }
159
+ /**
160
+ * We're viewing a draft, but the document could have a published version
161
+ */ if (docStatus === 'draft' && statuses.find((doc)=>doc.publishedAt !== null)) {
162
+ return 'published';
163
+ }
164
+ return docStatus;
165
+ };
166
+ /* -------------------------------------------------------------------------------------------------
167
+ * FillFromAnotherLocaleAction
168
+ * -----------------------------------------------------------------------------------------------*/ const FillFromAnotherLocaleAction = ({ documentId, meta, model, collectionType })=>{
169
+ const { formatMessage } = useIntl();
170
+ const [{ query }] = useQueryParams();
171
+ const { hasI18n } = useI18n();
172
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
173
+ const [localeSelected, setLocaleSelected] = React.useState(null);
174
+ const setValues = useForm('FillFromAnotherLocale', (state)=>state.setValues);
175
+ const { getDocument } = unstable_useDocumentActions();
176
+ const { schema, components } = unstable_useDocument({
177
+ model,
178
+ documentId,
179
+ collectionType,
180
+ params: {
181
+ locale: currentDesiredLocale
182
+ }
183
+ });
184
+ const { data: locales = [] } = useGetLocalesQuery();
185
+ const availableLocales = Array.isArray(locales) ? locales.filter((locale)=>meta?.availableLocales.some((l)=>l.locale === locale.code)) : [];
186
+ const fillFromLocale = (onClose)=>async ()=>{
187
+ const response = await getDocument({
188
+ collectionType,
189
+ model,
190
+ documentId,
191
+ params: {
192
+ locale: localeSelected
193
+ }
194
+ });
195
+ if (!response || !schema) {
196
+ return;
197
+ }
198
+ const { data } = response;
199
+ const cleanedData = cleanData(data, schema, components);
200
+ setValues(cleanedData);
201
+ onClose();
202
+ };
203
+ if (!hasI18n) {
204
+ return null;
205
+ }
206
+ return {
207
+ type: 'icon',
208
+ icon: /*#__PURE__*/ jsx(Earth, {}),
209
+ disabled: availableLocales.length === 0,
210
+ label: formatMessage({
211
+ id: getTranslation('CMEditViewCopyLocale.copy-text'),
212
+ defaultMessage: 'Fill in from another locale'
213
+ }),
214
+ dialog: {
215
+ type: 'dialog',
216
+ title: formatMessage({
217
+ id: getTranslation('CMEditViewCopyLocale.dialog.title'),
218
+ defaultMessage: 'Confirmation'
219
+ }),
220
+ content: ({ onClose })=>/*#__PURE__*/ jsxs(Fragment, {
221
+ children: [
222
+ /*#__PURE__*/ jsx(Dialog.Body, {
223
+ children: /*#__PURE__*/ jsxs(Flex, {
224
+ direction: "column",
225
+ gap: 3,
226
+ children: [
227
+ /*#__PURE__*/ jsx(WarningCircle, {
228
+ width: "24px",
229
+ height: "24px",
230
+ fill: "danger600"
231
+ }),
232
+ /*#__PURE__*/ jsx(Typography, {
233
+ textAlign: "center",
234
+ children: formatMessage({
235
+ id: getTranslation('CMEditViewCopyLocale.dialog.body'),
236
+ defaultMessage: 'Your current content will be erased and filled by the content of the selected locale:'
237
+ })
238
+ }),
239
+ /*#__PURE__*/ jsxs(Field.Root, {
240
+ width: "100%",
241
+ children: [
242
+ /*#__PURE__*/ jsx(Field.Label, {
243
+ children: formatMessage({
244
+ id: getTranslation('CMEditViewCopyLocale.dialog.field.label'),
245
+ defaultMessage: 'Locale'
246
+ })
247
+ }),
248
+ /*#__PURE__*/ jsx(SingleSelect, {
249
+ value: localeSelected,
250
+ placeholder: formatMessage({
251
+ id: getTranslation('CMEditViewCopyLocale.dialog.field.placeholder'),
252
+ defaultMessage: 'Select one locale...'
253
+ }),
254
+ // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.
255
+ onChange: (value)=>setLocaleSelected(value),
256
+ children: availableLocales.map((locale)=>/*#__PURE__*/ jsx(SingleSelectOption, {
257
+ value: locale.code,
258
+ children: locale.name
259
+ }, locale.code))
260
+ })
261
+ ]
262
+ })
263
+ ]
264
+ })
265
+ }),
266
+ /*#__PURE__*/ jsx(Dialog.Footer, {
267
+ children: /*#__PURE__*/ jsxs(Flex, {
268
+ gap: 2,
269
+ width: "100%",
270
+ children: [
271
+ /*#__PURE__*/ jsx(Button, {
272
+ flex: "auto",
273
+ variant: "tertiary",
274
+ onClick: onClose,
275
+ children: formatMessage({
276
+ id: getTranslation('CMEditViewCopyLocale.cancel-text'),
277
+ defaultMessage: 'No, cancel'
278
+ })
279
+ }),
280
+ /*#__PURE__*/ jsx(Button, {
281
+ flex: "auto",
282
+ variant: "success",
283
+ onClick: fillFromLocale(onClose),
284
+ children: formatMessage({
285
+ id: getTranslation('CMEditViewCopyLocale.submit-text'),
286
+ defaultMessage: 'Yes, fill in'
287
+ })
288
+ })
289
+ ]
290
+ })
291
+ })
292
+ ]
293
+ })
294
+ }
295
+ };
296
+ };
297
+ /* -------------------------------------------------------------------------------------------------
298
+ * DeleteLocaleAction
299
+ * -----------------------------------------------------------------------------------------------*/ const DeleteLocaleAction = ({ document, documentId, model, collectionType })=>{
300
+ const { formatMessage } = useIntl();
301
+ const navigate = useNavigate();
302
+ const { toggleNotification } = useNotification();
303
+ const { delete: deleteAction, isLoading } = unstable_useDocumentActions();
304
+ const { hasI18n, canDelete } = useI18n();
305
+ // Get the current locale object, using the URL instead of document so it works while creating
306
+ const [{ query }] = useQueryParams();
307
+ const { data: locales = [] } = useGetLocalesQuery();
308
+ const currentDesiredLocale = query.plugins?.i18n?.locale;
309
+ const locale = !('error' in locales) && locales.find((loc)=>loc.code === currentDesiredLocale);
310
+ if (!hasI18n) {
311
+ return null;
312
+ }
313
+ return {
314
+ disabled: document?.locale && !canDelete.includes(document.locale) || !document || !document.id,
315
+ position: [
316
+ 'header',
317
+ 'table-row'
318
+ ],
319
+ label: formatMessage({
320
+ id: getTranslation('actions.delete.label'),
321
+ defaultMessage: 'Delete entry ({locale})'
322
+ }, {
323
+ locale: locale && locale.name
324
+ }),
325
+ icon: /*#__PURE__*/ jsx(StyledTrash, {}),
326
+ variant: 'danger',
327
+ dialog: {
328
+ type: 'dialog',
329
+ title: formatMessage({
330
+ id: getTranslation('actions.delete.dialog.title'),
331
+ defaultMessage: 'Confirmation'
332
+ }),
333
+ content: /*#__PURE__*/ jsxs(Flex, {
334
+ direction: "column",
335
+ gap: 2,
336
+ children: [
337
+ /*#__PURE__*/ jsx(WarningCircle, {
338
+ width: "24px",
339
+ height: "24px",
340
+ fill: "danger600"
341
+ }),
342
+ /*#__PURE__*/ jsx(Typography, {
343
+ tag: "p",
344
+ variant: "omega",
345
+ textAlign: "center",
346
+ children: formatMessage({
347
+ id: getTranslation('actions.delete.dialog.body'),
348
+ defaultMessage: 'Are you sure?'
349
+ })
350
+ })
351
+ ]
352
+ }),
353
+ loading: isLoading,
354
+ onConfirm: async ()=>{
355
+ const unableToDelete = // We are unable to delete a collection type without a document ID
356
+ // & unable to delete generally if there is no document locale
357
+ collectionType !== 'single-types' && !documentId || !document?.locale;
358
+ if (unableToDelete) {
359
+ console.error("You're trying to delete a document without an id or locale, this is likely a bug with Strapi. Please open an issue.");
360
+ toggleNotification({
361
+ message: formatMessage({
362
+ id: getTranslation('actions.delete.error'),
363
+ defaultMessage: 'An error occurred while trying to delete the document locale.'
364
+ }),
365
+ type: 'danger'
366
+ });
367
+ return;
368
+ }
369
+ const res = await deleteAction({
370
+ documentId,
371
+ model,
372
+ collectionType,
373
+ params: {
374
+ locale: document.locale
375
+ }
376
+ });
377
+ if (!('error' in res)) {
378
+ navigate({
379
+ pathname: `../${collectionType}/${model}`
380
+ }, {
381
+ replace: true
382
+ });
383
+ }
384
+ }
385
+ }
386
+ };
387
+ };
388
+ /* -------------------------------------------------------------------------------------------------
389
+ * BulkLocaleAction
390
+ *
391
+ * This component is used to handle bulk publish and unpublish actions on locales.
392
+ * -----------------------------------------------------------------------------------------------*/ const BulkLocaleAction = ({ document, documentId, model, collectionType, action })=>{
393
+ const locale = document?.locale ?? null;
394
+ const [{ query }] = useQueryParams();
395
+ const params = React.useMemo(()=>buildValidParams(query), [
396
+ query
397
+ ]);
398
+ const isOnPublishedTab = query.status === 'published';
399
+ const { formatMessage } = useIntl();
400
+ const { hasI18n, canPublish } = useI18n();
401
+ const { toggleNotification } = useNotification();
402
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
403
+ const [selectedRows, setSelectedRows] = React.useState([]);
404
+ const [isDraftRelationConfirmationOpen, setIsDraftRelationConfirmationOpen] = React.useState(false);
405
+ const { publishMany: publishManyAction, unpublishMany: unpublishManyAction } = unstable_useDocumentActions();
406
+ const { schema, validate } = unstable_useDocument({
407
+ model,
408
+ collectionType,
409
+ documentId,
410
+ params: {
411
+ locale
412
+ }
413
+ }, {
414
+ // No need to fetch the document, the data is already available in the `document` prop
415
+ skip: true
416
+ });
417
+ const { data: localesMetadata = [] } = useGetLocalesQuery(hasI18n ? undefined : skipToken);
418
+ const headers = [
419
+ {
420
+ label: formatMessage({
421
+ id: 'global.name',
422
+ defaultMessage: 'Name'
423
+ }),
424
+ name: 'name'
425
+ },
426
+ {
427
+ label: formatMessage({
428
+ id: getTranslation('CMEditViewBulkLocale.status'),
429
+ defaultMessage: 'Status'
430
+ }),
431
+ name: 'status'
432
+ },
433
+ {
434
+ label: formatMessage({
435
+ id: getTranslation('CMEditViewBulkLocale.publication-status'),
436
+ defaultMessage: 'Publication Status'
437
+ }),
438
+ name: 'publication-status'
439
+ }
440
+ ];
441
+ // Extract the rows for the bulk locale publish modal and any validation
442
+ // errors per locale
443
+ const [rows, validationErrors] = React.useMemo(()=>{
444
+ if (!document) {
445
+ return [
446
+ [],
447
+ {}
448
+ ];
449
+ }
450
+ const localizations = document.localizations ?? [];
451
+ // Build the rows for the bulk locale publish modal by combining the current
452
+ // document with all the available locales from the document meta
453
+ const locales = localizations.map((doc)=>{
454
+ const { locale, status } = doc;
455
+ return {
456
+ locale,
457
+ status
458
+ };
459
+ });
460
+ // Add the current document locale
461
+ locales.unshift({
462
+ locale: document.locale,
463
+ status: document.status
464
+ });
465
+ // Build the validation errors for each locale.
466
+ const allDocuments = [
467
+ document,
468
+ ...localizations
469
+ ];
470
+ const errors = allDocuments.reduce((errs, document)=>{
471
+ if (!document) {
472
+ return errs;
473
+ }
474
+ // Validate each locale entry via the useDocument validate function and store any errors in a dictionary
475
+ const validation = validate(document);
476
+ if (validation !== null) {
477
+ errs[document.locale] = validation;
478
+ }
479
+ return errs;
480
+ }, {});
481
+ return [
482
+ locales,
483
+ errors
484
+ ];
485
+ }, [
486
+ document,
487
+ validate
488
+ ]);
489
+ const isBulkPublish = action === 'bulk-publish';
490
+ const localesForAction = selectedRows.reduce((acc, selectedRow)=>{
491
+ const isValidLocale = // Validation errors are irrelevant if we are trying to unpublish
492
+ !isBulkPublish || !Object.keys(validationErrors).includes(selectedRow.locale);
493
+ const shouldAddLocale = isBulkPublish ? selectedRow.status !== 'published' && isValidLocale : selectedRow.status !== 'draft' && isValidLocale;
494
+ if (shouldAddLocale) {
495
+ acc.push(selectedRow.locale);
496
+ }
497
+ return acc;
498
+ }, []);
499
+ // TODO skipping this for now as there is a bug with the draft relation count that will be worked on separately
500
+ // see https://www.notion.so/strapi/Count-draft-relations-56901b492efb45ab90d42fe975b32bd8?pvs=4
501
+ const enableDraftRelationsCount = false;
502
+ const { data: draftRelationsCount = 0, isLoading: isDraftRelationsLoading, error: isDraftRelationsError } = useGetManyDraftRelationCountQuery({
503
+ model,
504
+ documentIds: [
505
+ documentId
506
+ ],
507
+ locale: localesForAction
508
+ }, {
509
+ skip: !enableDraftRelationsCount
510
+ });
511
+ React.useEffect(()=>{
512
+ if (isDraftRelationsError) {
513
+ toggleNotification({
514
+ type: 'danger',
515
+ message: formatAPIError(isDraftRelationsError)
516
+ });
517
+ }
518
+ }, [
519
+ isDraftRelationsError,
520
+ toggleNotification,
521
+ formatAPIError
522
+ ]);
523
+ if (!schema?.options?.draftAndPublish) {
524
+ return null;
525
+ }
526
+ if (!hasI18n) {
527
+ return null;
528
+ }
529
+ if (!documentId) {
530
+ return null;
531
+ }
532
+ // This document action can be enabled given that draft and publish and i18n are
533
+ // enabled and we can publish the current locale.
534
+ const publish = async ()=>{
535
+ await publishManyAction({
536
+ model,
537
+ documentIds: [
538
+ documentId
539
+ ],
540
+ params: {
541
+ ...params,
542
+ locale: localesForAction
543
+ }
544
+ });
545
+ setSelectedRows([]);
546
+ };
547
+ const unpublish = async ()=>{
548
+ await unpublishManyAction({
549
+ model,
550
+ documentIds: [
551
+ documentId
552
+ ],
553
+ params: {
554
+ ...params,
555
+ locale: localesForAction
556
+ }
557
+ });
558
+ setSelectedRows([]);
559
+ };
560
+ const handleAction = async ()=>{
561
+ if (draftRelationsCount > 0) {
562
+ setIsDraftRelationConfirmationOpen(true);
563
+ } else if (isBulkPublish) {
564
+ await publish();
565
+ } else {
566
+ await unpublish();
567
+ }
568
+ };
569
+ if (isDraftRelationConfirmationOpen) {
570
+ return {
571
+ label: formatMessage({
572
+ id: 'app.components.ConfirmDialog.title',
573
+ defaultMessage: 'Confirmation'
574
+ }),
575
+ variant: 'danger',
576
+ dialog: {
577
+ onCancel: ()=>{
578
+ setIsDraftRelationConfirmationOpen(false);
579
+ },
580
+ onConfirm: async ()=>{
581
+ await publish();
582
+ setIsDraftRelationConfirmationOpen(false);
583
+ },
584
+ type: 'dialog',
585
+ title: formatMessage({
586
+ id: getTranslation('actions.publish.dialog.title'),
587
+ defaultMessage: 'Confirmation'
588
+ }),
589
+ content: /*#__PURE__*/ jsxs(Flex, {
590
+ direction: "column",
591
+ alignItems: "center",
592
+ gap: 2,
593
+ children: [
594
+ /*#__PURE__*/ jsx(WarningCircle, {
595
+ width: "2.4rem",
596
+ height: "2.4rem",
597
+ fill: "danger600"
598
+ }),
599
+ /*#__PURE__*/ jsx(Typography, {
600
+ textAlign: "center",
601
+ children: formatMessage({
602
+ id: getTranslation('CMEditViewBulkLocale.draft-relation-warning'),
603
+ defaultMessage: 'Some locales are related to draft entries. Publishing them could leave broken links in your app.'
604
+ })
605
+ }),
606
+ /*#__PURE__*/ jsx(Typography, {
607
+ textAlign: "center",
608
+ children: formatMessage({
609
+ id: getTranslation('CMEditViewBulkLocale.continue-confirmation'),
610
+ defaultMessage: 'Are you sure you want to continue?'
611
+ })
612
+ })
613
+ ]
614
+ })
615
+ }
616
+ };
617
+ }
618
+ const hasPermission = selectedRows.map(({ locale })=>locale).every((locale)=>canPublish.includes(locale));
619
+ return {
620
+ label: formatMessage({
621
+ id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? 'publish' : 'unpublish'}-title`),
622
+ defaultMessage: `${isBulkPublish ? 'Publish' : 'Unpublish'} Multiple Locales`
623
+ }),
624
+ variant: isBulkPublish ? 'secondary' : 'danger',
625
+ icon: isBulkPublish ? /*#__PURE__*/ jsx(ListPlus, {}) : /*#__PURE__*/ jsx(Cross, {}),
626
+ disabled: isOnPublishedTab || canPublish.length === 0,
627
+ position: [
628
+ 'panel'
629
+ ],
630
+ dialog: {
631
+ type: 'modal',
632
+ title: formatMessage({
633
+ id: getTranslation(`CMEditViewBulkLocale.${isBulkPublish ? 'publish' : 'unpublish'}-title`),
634
+ defaultMessage: `${isBulkPublish ? 'Publish' : 'Unpublish'} Multiple Locales`
635
+ }),
636
+ content: ()=>{
637
+ return /*#__PURE__*/ jsx(Table.Root, {
638
+ headers: headers,
639
+ rows: rows.map((row)=>({
640
+ ...row,
641
+ id: row.locale
642
+ })),
643
+ selectedRows: selectedRows,
644
+ onSelectedRowsChange: (tableSelectedRows)=>setSelectedRows(tableSelectedRows),
645
+ children: /*#__PURE__*/ jsx(BulkLocaleActionModal, {
646
+ validationErrors: validationErrors,
647
+ headers: headers,
648
+ rows: rows,
649
+ localesMetadata: localesMetadata,
650
+ action: action ?? 'bulk-publish'
651
+ })
652
+ });
653
+ },
654
+ footer: ()=>/*#__PURE__*/ jsx(Modal.Footer, {
655
+ justifyContent: "flex-end",
656
+ children: /*#__PURE__*/ jsx(Button, {
657
+ loading: isDraftRelationsLoading,
658
+ disabled: !hasPermission || localesForAction.length === 0,
659
+ variant: "default",
660
+ onClick: handleAction,
661
+ children: formatMessage({
662
+ id: isBulkPublish ? 'app.utils.publish' : 'app.utils.unpublish',
663
+ defaultMessage: isBulkPublish ? 'Publish' : 'Unpublish'
664
+ })
665
+ })
666
+ })
667
+ }
668
+ };
669
+ };
670
+ /* -------------------------------------------------------------------------------------------------
671
+ * BulkLocalePublishAction
672
+ * -----------------------------------------------------------------------------------------------*/ const BulkLocalePublishAction = (props)=>{
673
+ return BulkLocaleAction({
674
+ action: 'bulk-publish',
675
+ ...props
676
+ });
677
+ };
678
+ /* -------------------------------------------------------------------------------------------------
679
+ * BulkLocaleUnpublishAction
680
+ * -----------------------------------------------------------------------------------------------*/ const BulkLocaleUnpublishAction = (props)=>{
681
+ return BulkLocaleAction({
682
+ action: 'bulk-unpublish',
683
+ ...props
684
+ });
685
+ };
686
+ /**
687
+ * Because the icon system is completely broken, we have to do
688
+ * this to remove the fill from the cog.
689
+ */ const StyledTrash = styled(Trash)`
690
+ path {
691
+ fill: currentColor;
692
+ }
693
+ `;
694
+
695
+ export { BulkLocalePublishAction, BulkLocaleUnpublishAction, DeleteLocaleAction, FillFromAnotherLocaleAction, LocalePickerAction };
696
+ //# sourceMappingURL=CMHeaderActions.mjs.map