@strapi/admin 4.0.0 → 4.0.4

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 (348) hide show
  1. package/admin/src/components/LeftMenu/index.js +13 -5
  2. package/admin/src/components/Notifications/Notification/index.js +3 -3
  3. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +2 -2
  4. package/admin/src/content-manager/components/ComponentInitializer/index.js +4 -9
  5. package/admin/src/content-manager/components/DragLayer/index.js +1 -1
  6. package/admin/src/content-manager/components/DynamicTable/CellContent/CellValue.js +12 -2
  7. package/admin/src/content-manager/components/DynamicTable/CellContent/utils/getNumberOfDecimals.js +8 -0
  8. package/admin/src/content-manager/components/DynamicTable/index.js +7 -0
  9. package/admin/src/content-manager/components/DynamicZone/components/DzLabel/index.js +24 -7
  10. package/admin/src/content-manager/components/DynamicZone/index.js +31 -15
  11. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/schema.js +4 -1
  12. package/admin/src/content-manager/components/InputUID/index.js +4 -0
  13. package/admin/src/content-manager/components/PreviewWysiwyg/Wrapper.js +4 -0
  14. package/admin/src/content-manager/components/RepeatableComponent/AccordionGroupCustom/index.js +1 -3
  15. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/IconButtonCustoms.js +0 -4
  16. package/admin/src/content-manager/components/RepeatableComponent/DraggedItem/index.js +36 -14
  17. package/admin/src/content-manager/components/RepeatableComponent/index.js +2 -2
  18. package/admin/src/content-manager/components/SelectWrapper/index.js +15 -81
  19. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -3
  20. package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +2 -0
  21. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  22. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +67 -62
  23. package/admin/src/content-manager/components/Wysiwyg/index.js +13 -4
  24. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +2 -2
  25. package/admin/src/content-manager/pages/App/LeftMenu/index.js +5 -7
  26. package/admin/src/content-manager/pages/App/index.js +12 -4
  27. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +1 -1
  28. package/admin/src/content-manager/pages/EditSettingsView/components/FieldButtonContent.js +1 -1
  29. package/admin/src/content-manager/pages/EditSettingsView/components/RelationalFieldButton.js +1 -1
  30. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -1
  31. package/admin/src/content-manager/pages/EditView/Informations/index.js +37 -13
  32. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +19 -8
  33. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +124 -67
  34. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +4 -1
  35. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -1
  36. package/admin/src/content-manager/pages/ListView/index.js +37 -20
  37. package/admin/src/hooks/useSettingsMenu/utils/defaultGlobalLinks.js +1 -1
  38. package/admin/src/pages/App/utils/unique-identifier.js +3 -1
  39. package/admin/src/pages/AuthPage/components/Register/index.js +4 -1
  40. package/admin/src/pages/AuthPage/index.js +8 -2
  41. package/admin/src/pages/AuthPage/utils/forms.js +2 -0
  42. package/admin/src/pages/ProfilePage/index.js +34 -6
  43. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -2
  44. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +20 -7
  45. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  46. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +3 -3
  47. package/admin/src/pages/SettingsPage/pages/Users/EditPage/utils/layout.js +2 -0
  48. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +3 -3
  49. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/layout.js +2 -0
  50. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/stepper.js +1 -1
  51. package/admin/src/pages/SettingsPage/pages/Users/ListPage/index.js +5 -11
  52. package/admin/src/pages/SettingsPage/pages/Users/ListPage/utils/tableHeaders.js +1 -1
  53. package/admin/src/pages/SettingsPage/pages/Users/components/MagicLink/index.js +1 -1
  54. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -1
  55. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +1 -1
  56. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +1 -1
  57. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +3 -1
  58. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +5 -5
  59. package/admin/src/translations/en.json +32 -23
  60. package/admin/src/translations/fr.json +315 -6
  61. package/admin/src/translations/ko.json +670 -263
  62. package/admin/src/translations/nl.json +1 -1
  63. package/admin/src/translations/zh-Hans.json +554 -204
  64. package/admin/src/translations/zh.json +482 -41
  65. package/build/{01a600d9e6e0dea21e33017a97bdf431.png → 01a600d9e6e0dea21e33.png} +0 -0
  66. package/build/{15026a3d58aeb282813457f060f2d6ac.png → 15026a3d58aeb2828134.png} +0 -0
  67. package/build/{1551f4f60c37af51121f106501f69b80.woff2 → 1551f4f60c37af51121f.woff2} +0 -0
  68. package/build/{1e59d2330b4c6deb84b340635ed36249.ttf → 1e59d2330b4c6deb84b3.ttf} +0 -0
  69. package/build/{20fd1704ea223900efa9fd4e869efb08.woff2 → 20fd1704ea223900efa9.woff2} +0 -0
  70. package/build/{2285773e6b4b172f07d9b777c81b0775.woff → 2285773e6b4b172f07d9.woff} +0 -0
  71. package/build/{23f19bb08961f37aaf692ff943823453.eot → 23f19bb08961f37aaf69.eot} +0 -0
  72. package/build/{2a9e9ef5c4c775bb7c7b3625041b1354.png → 2a9e9ef5c4c775bb7c7b.png} +0 -0
  73. package/build/{2f517e09eb2ca6650ff5bec5a95157ab.svg → 2f517e09eb2ca6650ff5.svg} +0 -0
  74. package/build/3742.2281afd7.chunk.js +1 -0
  75. package/build/4045.0b43d55e.chunk.js +1 -0
  76. package/build/4261.061aed35.chunk.js +1 -0
  77. package/build/4672.7ad6782a.chunk.js +1 -0
  78. package/build/{4689f52cc96215721344e51e5831eec1.svg → 4689f52cc96215721344.svg} +0 -0
  79. package/build/{4715.35096dd7.chunk.js → 4715.f134f37a.chunk.js} +1 -1
  80. package/build/{491974d108fe4002b2aaf7ffc48249a0.ttf → 491974d108fe4002b2aa.ttf} +0 -0
  81. package/build/{527940b104eb2ea366c8630f3f038603.ttf → 527940b104eb2ea366c8.ttf} +0 -0
  82. package/build/6060.3af8877e.chunk.js +2 -0
  83. package/build/{3226.0dc582b2.chunk.js.LICENSE.txt → 6060.3af8877e.chunk.js.LICENSE.txt} +1 -1
  84. package/build/{6250.11ba8b50.chunk.js → 6250.7b4872b1.chunk.js} +1 -1
  85. package/build/{5881.deb18c91.chunk.js → 6354.48168bc8.chunk.js} +2 -2
  86. package/build/{5881.deb18c91.chunk.js.LICENSE.txt → 6354.48168bc8.chunk.js.LICENSE.txt} +0 -0
  87. package/build/{77206a6bb316fa0aded5083cc57f92b9.eot → 77206a6bb316fa0aded5.eot} +0 -0
  88. package/build/{7a3337626410ca2f40718481c755640f.woff2 → 7a3337626410ca2f4071.woff2} +0 -0
  89. package/build/{7a8b4f130182d19a2d7c67d80c090397.svg → 7a8b4f130182d19a2d7c.svg} +0 -0
  90. package/build/8530.a978bde6.chunk.js +2 -0
  91. package/build/8530.a978bde6.chunk.js.LICENSE.txt +7 -0
  92. package/build/{8b43027f47b20503057dfbbaa9401fef.eot → 8b43027f47b20503057d.eot} +0 -0
  93. package/build/{9bbb245e67a133f6e486d8d2545e14a5.eot → 9bbb245e67a133f6e486.eot} +0 -0
  94. package/build/Admin-authenticatedApp.8c375af0.chunk.js +1 -0
  95. package/build/{Admin_homePage.31e37124.chunk.js → Admin_homePage.f9cdd615.chunk.js} +1 -1
  96. package/build/Admin_marketplace.4f6c77f2.chunk.js +1 -0
  97. package/build/Admin_pluginsPage.cd9a871c.chunk.js +1 -0
  98. package/build/Admin_profilePage.077e17a5.chunk.js +1 -0
  99. package/build/Admin_settingsPage.9752ef85.chunk.js +1 -0
  100. package/build/admin-edit-roles-page.27b047fc.chunk.js +1 -0
  101. package/build/admin-edit-users.a0dede23.chunk.js +1 -0
  102. package/build/admin-users.a11177c1.chunk.js +1 -0
  103. package/build/{api-tokens-create-page.ac4285ba.chunk.js → api-tokens-create-page.07be3e07.chunk.js} +1 -1
  104. package/build/{api-tokens-edit-page.b8900ddd.chunk.js → api-tokens-edit-page.d6afc60e.chunk.js} +1 -1
  105. package/build/api-tokens-list-page.da9714d8.chunk.js +1 -0
  106. package/build/{ar-json.9805489e.chunk.js → ar-json.d79e4709.chunk.js} +1 -1
  107. package/build/{b997a22a2e0b87ef1fa23258f14f3b27.ico → b997a22a2e0b87ef1fa2.ico} +0 -0
  108. package/build/{bb58e57c48a3e911f15fa834ff00d44a.woff → bb58e57c48a3e911f15f.woff} +0 -0
  109. package/build/{bd81ba6c07827282255d031b2a6f4fe4.png → bd81ba6c07827282255d.png} +0 -0
  110. package/build/{be9ee23c0c6390141475d519c2c5fb8f.ttf → be9ee23c0c6390141475.ttf} +0 -0
  111. package/build/{c1e38fd9e0e74ba58f7a2b77ef29fdd3.svg → c1e38fd9e0e74ba58f7a.svg} +0 -0
  112. package/build/{c3de6118ef47086ad05c83a1c78f006d.png → c3de6118ef47086ad05c.png} +0 -0
  113. package/build/codemirror-css.f9701755.chunk.js +1 -0
  114. package/build/codemirror-theme.1563c1c2.chunk.js +1 -0
  115. package/build/content-manager.51651b3b.chunk.js +1 -0
  116. package/build/{content-type-builder-translation-ar-json.bce4d624.chunk.js → content-type-builder-translation-ar-json.f1fedc12.chunk.js} +1 -1
  117. package/build/{content-type-builder-translation-cs-json.785866b6.chunk.js → content-type-builder-translation-cs-json.2f7e2289.chunk.js} +1 -1
  118. package/build/{content-type-builder-translation-de-json.6faa019a.chunk.js → content-type-builder-translation-de-json.46017754.chunk.js} +1 -1
  119. package/build/content-type-builder-translation-dk-json.5c6344f9.chunk.js +1 -0
  120. package/build/{content-type-builder-translation-en-json.d860718a.chunk.js → content-type-builder-translation-en-json.d70fc3af.chunk.js} +1 -1
  121. package/build/{content-type-builder-translation-es-json.5a4f519b.chunk.js → content-type-builder-translation-es-json.7e2055ad.chunk.js} +1 -1
  122. package/build/{content-type-builder-translation-fr-json.2156f48c.chunk.js → content-type-builder-translation-fr-json.8f66eb66.chunk.js} +1 -1
  123. package/build/content-type-builder-translation-id-json.aab2f426.chunk.js +1 -0
  124. package/build/{content-type-builder-translation-it-json.dc154c62.chunk.js → content-type-builder-translation-it-json.4c91e895.chunk.js} +1 -1
  125. package/build/{content-type-builder-translation-ja-json.9f8695a0.chunk.js → content-type-builder-translation-ja-json.c239ba90.chunk.js} +1 -1
  126. package/build/content-type-builder-translation-ko-json.2a5e0769.chunk.js +1 -0
  127. package/build/{content-type-builder-translation-ms-json.cfc21fb6.chunk.js → content-type-builder-translation-ms-json.124be88c.chunk.js} +1 -1
  128. package/build/{content-type-builder-translation-nl-json.4d742025.chunk.js → content-type-builder-translation-nl-json.98a240b8.chunk.js} +1 -1
  129. package/build/{content-type-builder-translation-pl-json.1b701a76.chunk.js → content-type-builder-translation-pl-json.2abc61bd.chunk.js} +1 -1
  130. package/build/{content-type-builder-translation-pt-BR-json.2c514ada.chunk.js → content-type-builder-translation-pt-BR-json.c0415545.chunk.js} +1 -1
  131. package/build/{content-type-builder-translation-pt-json.a3c4315c.chunk.js → content-type-builder-translation-pt-json.ab3e086d.chunk.js} +1 -1
  132. package/build/{content-type-builder-translation-ru-json.72173619.chunk.js → content-type-builder-translation-ru-json.1a6779fd.chunk.js} +1 -1
  133. package/build/{content-type-builder-translation-sk-json.e654be3b.chunk.js → content-type-builder-translation-sk-json.5c82f020.chunk.js} +1 -1
  134. package/build/{content-type-builder-translation-th-json.403aa6a4.chunk.js → content-type-builder-translation-th-json.24ee19eb.chunk.js} +1 -1
  135. package/build/{content-type-builder-translation-tr-json.72027971.chunk.js → content-type-builder-translation-tr-json.30434835.chunk.js} +1 -1
  136. package/build/{content-type-builder-translation-uk-json.a1b9f71b.chunk.js → content-type-builder-translation-uk-json.771662ef.chunk.js} +1 -1
  137. package/build/{content-type-builder-translation-zh-Hans-json.4c242866.chunk.js → content-type-builder-translation-zh-Hans-json.070020ae.chunk.js} +1 -1
  138. package/build/{content-type-builder-translation-zh-json.3b3eb4e8.chunk.js → content-type-builder-translation-zh-json.9708310d.chunk.js} +1 -1
  139. package/build/content-type-builder.c815d0c6.chunk.js +1 -0
  140. package/build/cropper-css.45c47fe3.chunk.js +1 -0
  141. package/build/{cs-json.ff08076e.chunk.js → cs-json.b8ba75b8.chunk.js} +1 -1
  142. package/build/{d878b0a6a1144760244ff0665888404c.woff2 → d878b0a6a1144760244f.woff2} +0 -0
  143. package/build/de-json.e01bdeae.chunk.js +1 -0
  144. package/build/dk-json.9516eb08.chunk.js +1 -0
  145. package/build/{eeccf4f66002c6f2ba24d3d22f2434c2.woff → eeccf4f66002c6f2ba24.woff} +0 -0
  146. package/build/email-settings-page.03e18bb2.chunk.js +1 -0
  147. package/build/email-translation-ar-json.95d90eb4.chunk.js +1 -0
  148. package/build/email-translation-cs-json.dfd1f3f2.chunk.js +1 -0
  149. package/build/email-translation-de-json.559a7d5f.chunk.js +1 -0
  150. package/build/email-translation-dk-json.e1480892.chunk.js +1 -0
  151. package/build/email-translation-en-json.fa0dc92b.chunk.js +1 -0
  152. package/build/email-translation-es-json.abbba8e3.chunk.js +1 -0
  153. package/build/email-translation-fr-json.49c3c888.chunk.js +1 -0
  154. package/build/email-translation-id-json.e3c2101d.chunk.js +1 -0
  155. package/build/email-translation-it-json.3de61cb6.chunk.js +1 -0
  156. package/build/email-translation-ja-json.66337e44.chunk.js +1 -0
  157. package/build/email-translation-ko-json.52bbd7b4.chunk.js +1 -0
  158. package/build/email-translation-ms-json.e39256df.chunk.js +1 -0
  159. package/build/email-translation-nl-json.12d28adb.chunk.js +1 -0
  160. package/build/email-translation-pl-json.9585a84e.chunk.js +1 -0
  161. package/build/email-translation-pt-BR-json.6c04b3ef.chunk.js +1 -0
  162. package/build/email-translation-pt-json.0239be04.chunk.js +1 -0
  163. package/build/email-translation-ru-json.f3b4fecc.chunk.js +1 -0
  164. package/build/email-translation-sk-json.76dbaaa6.chunk.js +1 -0
  165. package/build/email-translation-th-json.25ad73e7.chunk.js +1 -0
  166. package/build/email-translation-tr-json.ae04a9f2.chunk.js +1 -0
  167. package/build/email-translation-uk-json.03b27b08.chunk.js +1 -0
  168. package/build/email-translation-vi-json.3e1dd5b3.chunk.js +1 -0
  169. package/build/email-translation-zh-Hans-json.0df4ca59.chunk.js +1 -0
  170. package/build/email-translation-zh-json.82978eb0.chunk.js +1 -0
  171. package/build/en-json.9e3c8615.chunk.js +1 -0
  172. package/build/{es-json.060b658c.chunk.js → es-json.fa8ddd1d.chunk.js} +1 -1
  173. package/build/{f691f37e57f04c152e2315ab7dbad881.woff → f691f37e57f04c152e23.woff} +0 -0
  174. package/build/{fde9b1ad0670d29a251605a5e8eef02b.png → fde9b1ad0670d29a2516.png} +0 -0
  175. package/build/fontawesome-css-all.9c41f1d7.chunk.js +1 -0
  176. package/build/fontawesome-css.24c8dbfc.chunk.js +1 -0
  177. package/build/fr-json.bae03a2c.chunk.js +1 -0
  178. package/build/{he-json.fafa8569.chunk.js → he-json.86f9e663.chunk.js} +1 -1
  179. package/build/highlight.js.90b600ee.chunk.js +1 -0
  180. package/build/i18n-settings-page.89d1776c.chunk.js +1 -0
  181. package/build/i18n-translation-en-json.239b740f.chunk.js +1 -0
  182. package/build/i18n-translation-fr-json.b52474fc.chunk.js +1 -0
  183. package/build/i18n-translation-ko-json.e88e11ef.chunk.js +1 -0
  184. package/build/{i18n-translation-zh-Hans-json.670b4940.chunk.js → i18n-translation-zh-Hans-json.4c17fed0.chunk.js} +1 -1
  185. package/build/{id-json.3372dadc.chunk.js → id-json.0b0c9731.chunk.js} +1 -1
  186. package/build/index.html +1 -1
  187. package/build/{it-json.0e5d5fdb.chunk.js → it-json.939916bc.chunk.js} +1 -1
  188. package/build/{ja-json.14eaee93.chunk.js → ja-json.57abaacb.chunk.js} +1 -1
  189. package/build/ko-json.29633034.chunk.js +1 -0
  190. package/build/main.ca080a1e.js +2 -0
  191. package/build/{main.a5bd9650.js.LICENSE.txt → main.ca080a1e.js.LICENSE.txt} +0 -0
  192. package/build/{ms-json.a66beabc.chunk.js → ms-json.5e5d12f9.chunk.js} +1 -1
  193. package/build/nl-json.d757328d.chunk.js +1 -0
  194. package/build/{no-json.25f63ee7.chunk.js → no-json.ff46b126.chunk.js} +1 -1
  195. package/build/{pl-json.3d7884e1.chunk.js → pl-json.6bff1d54.chunk.js} +1 -1
  196. package/build/{pt-BR-json.e21cd994.chunk.js → pt-BR-json.6d1cfdb2.chunk.js} +1 -1
  197. package/build/{pt-json.21a66a61.chunk.js → pt-json.b23d9a79.chunk.js} +1 -1
  198. package/build/{ru-json.ca2b6c3c.chunk.js → ru-json.bff93229.chunk.js} +1 -1
  199. package/build/runtime~main.6f530910.js +1 -0
  200. package/build/{sk-json.7f750e28.chunk.js → sk-json.2eb1ec0d.chunk.js} +1 -1
  201. package/build/sso-settings-page.d4ab164b.chunk.js +1 -0
  202. package/build/{sv-json.3b5cc7f9.chunk.js → sv-json.8ac61ecf.chunk.js} +1 -1
  203. package/build/{th-json.694b4038.chunk.js → th-json.6e4502a3.chunk.js} +1 -1
  204. package/build/{tr-json.a842843a.chunk.js → tr-json.eaca955b.chunk.js} +1 -1
  205. package/build/uk-json.c50ad2a8.chunk.js +1 -0
  206. package/build/{upload-settings.8a380d3d.chunk.js → upload-settings.aa148b01.chunk.js} +1 -1
  207. package/build/{upload-translation-de-json.b4ff3c56.chunk.js → upload-translation-de-json.00f90715.chunk.js} +1 -1
  208. package/build/{upload-translation-dk-json.f37ae5c0.chunk.js → upload-translation-dk-json.e8c0a891.chunk.js} +1 -1
  209. package/build/{upload-translation-en-json.58d8ce44.chunk.js → upload-translation-en-json.31ea0622.chunk.js} +1 -1
  210. package/build/upload-translation-es-json.42b5c758.chunk.js +1 -0
  211. package/build/{upload-translation-fr-json.0f4b3839.chunk.js → upload-translation-fr-json.ccb4ad8b.chunk.js} +1 -1
  212. package/build/{upload-translation-he-json.4b5e48bc.chunk.js → upload-translation-he-json.5dc34ea8.chunk.js} +1 -1
  213. package/build/upload-translation-it-json.c1809a47.chunk.js +1 -0
  214. package/build/{upload-translation-ja-json.9e1193c7.chunk.js → upload-translation-ja-json.568f097e.chunk.js} +1 -1
  215. package/build/upload-translation-ko-json.da369eef.chunk.js +1 -0
  216. package/build/{upload-translation-ms-json.bfb86c2e.chunk.js → upload-translation-ms-json.be669f81.chunk.js} +1 -1
  217. package/build/{upload-translation-pl-json.e0282fa4.chunk.js → upload-translation-pl-json.67685825.chunk.js} +1 -1
  218. package/build/{upload-translation-pt-BR-json.ad6bb9f8.chunk.js → upload-translation-pt-BR-json.f7b1133d.chunk.js} +1 -1
  219. package/build/{upload-translation-ru-json.4303b6a0.chunk.js → upload-translation-ru-json.54c031aa.chunk.js} +1 -1
  220. package/build/{upload-translation-sk-json.90a0bc6c.chunk.js → upload-translation-sk-json.f643dfc2.chunk.js} +1 -1
  221. package/build/{upload-translation-th-json.cf0d62e0.chunk.js → upload-translation-th-json.88ee2090.chunk.js} +1 -1
  222. package/build/{upload-translation-uk-json.ec345d61.chunk.js → upload-translation-uk-json.1a90e73c.chunk.js} +1 -1
  223. package/build/{upload-translation-zh-Hans-json.f320fa39.chunk.js → upload-translation-zh-Hans-json.ac1dc0b9.chunk.js} +1 -1
  224. package/build/{upload-translation-zh-json.9ad30216.chunk.js → upload-translation-zh-json.164ac601.chunk.js} +1 -1
  225. package/build/{upload.1e3e2685.chunk.js → upload.1991e997.chunk.js} +1 -1
  226. package/build/{users-advanced-settings-page.bda19eae.chunk.js → users-advanced-settings-page.23ed7ee9.chunk.js} +1 -1
  227. package/build/users-email-settings-page.64dc429a.chunk.js +1 -0
  228. package/build/{users-permissions-translation-ar-json.6fe0dcf5.chunk.js → users-permissions-translation-ar-json.bdddd0d7.chunk.js} +1 -1
  229. package/build/{users-permissions-translation-cs-json.dd4bb452.chunk.js → users-permissions-translation-cs-json.7881d3ff.chunk.js} +1 -1
  230. package/build/{users-permissions-translation-de-json.1505b462.chunk.js → users-permissions-translation-de-json.8d53c619.chunk.js} +1 -1
  231. package/build/{users-permissions-translation-dk-json.6b47229f.chunk.js → users-permissions-translation-dk-json.a36b323b.chunk.js} +1 -1
  232. package/build/{users-permissions-translation-en-json.3e650c44.chunk.js → users-permissions-translation-en-json.1993655e.chunk.js} +1 -1
  233. package/build/{users-permissions-translation-es-json.768cc00e.chunk.js → users-permissions-translation-es-json.c8ef51bd.chunk.js} +1 -1
  234. package/build/users-permissions-translation-fr-json.a2172545.chunk.js +1 -0
  235. package/build/users-permissions-translation-id-json.8f17982a.chunk.js +1 -0
  236. package/build/{users-permissions-translation-it-json.baa4f859.chunk.js → users-permissions-translation-it-json.87952a24.chunk.js} +1 -1
  237. package/build/{users-permissions-translation-ja-json.3ddd4418.chunk.js → users-permissions-translation-ja-json.5915d9ef.chunk.js} +1 -1
  238. package/build/users-permissions-translation-ko-json.f1ca6cc4.chunk.js +1 -0
  239. package/build/{users-permissions-translation-ms-json.dc405667.chunk.js → users-permissions-translation-ms-json.2268324c.chunk.js} +1 -1
  240. package/build/{users-permissions-translation-nl-json.2d8e847a.chunk.js → users-permissions-translation-nl-json.4e1231dd.chunk.js} +1 -1
  241. package/build/{users-permissions-translation-pl-json.b150dfb0.chunk.js → users-permissions-translation-pl-json.107638b5.chunk.js} +1 -1
  242. package/build/{users-permissions-translation-pt-BR-json.0c494c69.chunk.js → users-permissions-translation-pt-BR-json.8dafc053.chunk.js} +1 -1
  243. package/build/{users-permissions-translation-pt-json.0fccc389.chunk.js → users-permissions-translation-pt-json.3322464f.chunk.js} +1 -1
  244. package/build/users-permissions-translation-ru-json.44dd1f10.chunk.js +1 -0
  245. package/build/{users-permissions-translation-sk-json.2602e768.chunk.js → users-permissions-translation-sk-json.fe7cc044.chunk.js} +1 -1
  246. package/build/users-permissions-translation-sv-json.e7e1684b.chunk.js +1 -0
  247. package/build/{users-permissions-translation-th-json.abe0558b.chunk.js → users-permissions-translation-th-json.bb544ee3.chunk.js} +1 -1
  248. package/build/{users-permissions-translation-tr-json.269ee593.chunk.js → users-permissions-translation-tr-json.30f3ca90.chunk.js} +1 -1
  249. package/build/{users-permissions-translation-uk-json.ffd9a4ee.chunk.js → users-permissions-translation-uk-json.634f2569.chunk.js} +1 -1
  250. package/build/{users-permissions-translation-vi-json.c2cd19d5.chunk.js → users-permissions-translation-vi-json.605d88bc.chunk.js} +1 -1
  251. package/build/{users-permissions-translation-zh-Hans-json.2d909528.chunk.js → users-permissions-translation-zh-Hans-json.85480dab.chunk.js} +1 -1
  252. package/build/{users-permissions-translation-zh-json.7f3027c5.chunk.js → users-permissions-translation-zh-json.99932731.chunk.js} +1 -1
  253. package/build/users-providers-settings-page.329f102a.chunk.js +1 -0
  254. package/build/users-roles-settings-page.e28982b6.chunk.js +1 -0
  255. package/build/{vi-json.c25f42fe.chunk.js → vi-json.e993857a.chunk.js} +1 -1
  256. package/build/webhook-edit-page.678af4e2.chunk.js +1 -0
  257. package/build/{webhook-list-page.aae66737.chunk.js → webhook-list-page.5abda9c2.chunk.js} +1 -1
  258. package/build/zh-Hans-json.fcc53388.chunk.js +1 -0
  259. package/build/zh-json.496bd6c4.chunk.js +1 -0
  260. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  261. package/ee/admin/pages/SettingsPage/pages/Users/components/MagicLink/index.js +1 -1
  262. package/index.html +1 -1
  263. package/index.js +40 -1
  264. package/jest.config.front.js +10 -0
  265. package/package.json +36 -38
  266. package/server/register.js +5 -0
  267. package/server/routes/serve-admin-panel.js +59 -0
  268. package/server/strategies/api-token.js +2 -1
  269. package/webpack.alias.js +0 -6
  270. package/webpack.config.js +12 -10
  271. package/build/3226.0dc582b2.chunk.js +0 -2
  272. package/build/4261.b7b7ac00.chunk.js +0 -1
  273. package/build/4362.e71cf036.chunk.js +0 -1
  274. package/build/8447.32ee17be.chunk.js +0 -2
  275. package/build/8447.32ee17be.chunk.js.LICENSE.txt +0 -22
  276. package/build/849.fc26299c.chunk.js +0 -1
  277. package/build/9238.f112d6c9.chunk.js +0 -1
  278. package/build/Admin-authenticatedApp.0298a225.chunk.js +0 -1
  279. package/build/Admin_marketplace.201373e2.chunk.js +0 -1
  280. package/build/Admin_pluginsPage.22390055.chunk.js +0 -1
  281. package/build/Admin_profilePage.3aa61921.chunk.js +0 -1
  282. package/build/Admin_settingsPage.363ad01d.chunk.js +0 -1
  283. package/build/admin-edit-roles-page.e91bd9e5.chunk.js +0 -1
  284. package/build/admin-edit-users.bcdd2e4d.chunk.js +0 -1
  285. package/build/admin-users.a2d08780.chunk.js +0 -1
  286. package/build/api-tokens-list-page.d451255e.chunk.js +0 -1
  287. package/build/codemirror-css.7b034e03.chunk.js +0 -1
  288. package/build/codemirror-theme.4a209ed5.chunk.js +0 -1
  289. package/build/content-manager.4a449a52.chunk.js +0 -1
  290. package/build/content-type-builder-translation-dk-json.215eca36.chunk.js +0 -1
  291. package/build/content-type-builder-translation-id-json.e66f4e0a.chunk.js +0 -1
  292. package/build/content-type-builder-translation-ko-json.20ad3eac.chunk.js +0 -1
  293. package/build/content-type-builder.eeae4ee8.chunk.js +0 -1
  294. package/build/cropper-css.b71d1229.chunk.js +0 -1
  295. package/build/de-json.93987708.chunk.js +0 -1
  296. package/build/dk-json.97f8f309.chunk.js +0 -1
  297. package/build/email-settings-page.def5ceaf.chunk.js +0 -1
  298. package/build/email-translation-ar-json.536b0217.chunk.js +0 -1
  299. package/build/email-translation-cs-json.8f533c9b.chunk.js +0 -1
  300. package/build/email-translation-de-json.89f5373e.chunk.js +0 -1
  301. package/build/email-translation-dk-json.9c95cf96.chunk.js +0 -1
  302. package/build/email-translation-en-json.5ec38fe9.chunk.js +0 -1
  303. package/build/email-translation-es-json.fec78330.chunk.js +0 -1
  304. package/build/email-translation-fr-json.76afb1c3.chunk.js +0 -1
  305. package/build/email-translation-id-json.1b3e055a.chunk.js +0 -1
  306. package/build/email-translation-it-json.7273fee2.chunk.js +0 -1
  307. package/build/email-translation-ja-json.b75afc52.chunk.js +0 -1
  308. package/build/email-translation-ko-json.eb9a23cd.chunk.js +0 -1
  309. package/build/email-translation-ms-json.af7c5861.chunk.js +0 -1
  310. package/build/email-translation-nl-json.10fec023.chunk.js +0 -1
  311. package/build/email-translation-pl-json.ebda42d5.chunk.js +0 -1
  312. package/build/email-translation-pt-BR-json.338d8b7c.chunk.js +0 -1
  313. package/build/email-translation-pt-json.1cd0fedf.chunk.js +0 -1
  314. package/build/email-translation-ru-json.2c369331.chunk.js +0 -1
  315. package/build/email-translation-sk-json.ba2e026d.chunk.js +0 -1
  316. package/build/email-translation-th-json.16457076.chunk.js +0 -1
  317. package/build/email-translation-tr-json.92e0a5d9.chunk.js +0 -1
  318. package/build/email-translation-uk-json.d00dd5b1.chunk.js +0 -1
  319. package/build/email-translation-vi-json.ed425dde.chunk.js +0 -1
  320. package/build/email-translation-zh-Hans-json.e2c630b6.chunk.js +0 -1
  321. package/build/email-translation-zh-json.2a06ebac.chunk.js +0 -1
  322. package/build/en-json.6282a00f.chunk.js +0 -1
  323. package/build/fontawesome-css-all.162c8569.chunk.js +0 -1
  324. package/build/fontawesome-css.b1736497.chunk.js +0 -1
  325. package/build/fr-json.f7d484a8.chunk.js +0 -1
  326. package/build/highlight.js.3f31aed7.chunk.js +0 -1
  327. package/build/i18n-settings-page.00c74503.chunk.js +0 -1
  328. package/build/i18n-translation-en-json.17af559c.chunk.js +0 -1
  329. package/build/i18n-translation-fr-json.482f6933.chunk.js +0 -1
  330. package/build/ko-json.7203b08b.chunk.js +0 -1
  331. package/build/main.a5bd9650.js +0 -2
  332. package/build/nl-json.9c7f83db.chunk.js +0 -1
  333. package/build/runtime~main.bddfe3c6.js +0 -1
  334. package/build/sso-settings-page.bd7a8fd7.chunk.js +0 -1
  335. package/build/uk-json.3b8f967b.chunk.js +0 -1
  336. package/build/upload-translation-es-json.f9e9ffdf.chunk.js +0 -1
  337. package/build/upload-translation-it-json.fb24c332.chunk.js +0 -1
  338. package/build/users-email-settings-page.b1d1f551.chunk.js +0 -1
  339. package/build/users-permissions-translation-fr-json.12f3c930.chunk.js +0 -1
  340. package/build/users-permissions-translation-id-json.ec3deaf0.chunk.js +0 -1
  341. package/build/users-permissions-translation-ko-json.90c2d129.chunk.js +0 -1
  342. package/build/users-permissions-translation-ru-json.4389c542.chunk.js +0 -1
  343. package/build/users-permissions-translation-sv-json.438e46f7.chunk.js +0 -1
  344. package/build/users-providers-settings-page.733a51ec.chunk.js +0 -1
  345. package/build/users-roles-settings-page.0eb926e7.chunk.js +0 -1
  346. package/build/webhook-edit-page.634e50da.chunk.js +0 -1
  347. package/build/zh-Hans-json.e5041b18.chunk.js +0 -1
  348. package/build/zh-json.414d826f.chunk.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1011],{91999:e=>{e.exports=JSON.parse('{"Analytics":"\u5206\u6790\u5668","Auth.components.Oops.text":"\u4f60\u7684\u5e33\u865f\u5df2\u7d93\u88ab\u505c\u7528","Auth.components.Oops.text.admin":"\u5982\u679c\u662f\u500b\u8aa4\u6703\uff0c\u8acb\u806f\u7e6b\u4f60\u7684\u7ba1\u7406\u54e1\u5354\u52a9\u8655\u7406\u3002","Auth.components.Oops.title":"\u5509\u5440...","Auth.form.button.forgot-password":"\u5bc4\u9001\u90f5\u4ef6","Auth.form.button.go-home":"\u56de\u5230\u9996\u9801","Auth.form.button.login":"\u767b\u5165","Auth.form.button.login.providers.error":"\u7121\u6cd5\u900f\u904e\u6240\u9078\u7684\u9a57\u8b49\u65b9\u5f0f\u9023\u63a5\u4f60\u7684\u5e33\u865f\u3002","Auth.form.button.login.providers.see-more":"\u67e5\u770b\u66f4\u591a","Auth.form.button.login.strapi":"\u900f\u904e Strapi \u767b\u5165","Auth.form.button.password-recovery":"\u627e\u56de\u5bc6\u78bc","Auth.form.button.register":"\u6e96\u5099\u958b\u59cb","Auth.form.button.reset-password":"\u66f4\u6539\u5bc6\u78bc","Auth.form.confirmPassword.label":"\u518d\u78ba\u8a8d\u4e00\u6b21\u5bc6\u78bc","Auth.form.currentPassword.label":"\u76ee\u524d\u5bc6\u78bc","Auth.form.email.label":"\u96fb\u5b50\u90f5\u4ef6","Auth.form.email.placeholder":"kai@doe.com","Auth.form.error.blocked":"\u60a8\u7684\u5e33\u865f\u5df2\u7d93\u88ab\u7cfb\u7d71\u7ba1\u7406\u54e1\u505c\u7528\u3002","Auth.form.error.code.provide":"\u63d0\u4f9b\u7684\u4ee3\u78bc\u4e0d\u6b63\u78ba","Auth.form.error.confirmed":"\u60a8\u7684\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u5c1a\u672a\u7d93\u904e\u8a8d\u8b49\u3002","Auth.form.error.email.invalid":"\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u683c\u5f0f\u4e0d\u6b63\u78ba","Auth.form.error.email.provide":"\u8acb\u8f38\u5165\u4f7f\u7528\u8005\u540d\u7a31\u6216\u96fb\u5b50\u90f5\u4ef6\u5730\u5740","Auth.form.error.email.taken":"\u6b64\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u5df2\u88ab\u4f7f\u7528","Auth.form.error.invalid":"\u4f7f\u7528\u8005\u540d\u7a31\u6216\u5bc6\u78bc\u4e0d\u6b63\u78ba","Auth.form.error.params.provide":"\u5bc6\u78bc\u4e0d\u6b63\u78ba","Auth.form.error.password.format":"\u60a8\u7684\u5bc6\u78bc\u4e0d\u80fd\u5305\u542b\u8d85\u904e\u4e09\u500b `$` \u7b26\u865f","Auth.form.error.password.local":"\u9019\u500b\u4f7f\u7528\u8005\u9084\u6c92\u6709\u8a2d\u5b9a\u672c\u7ad9\u5bc6\u78bc\uff0c\u8acb\u4f7f\u7528\u5efa\u7acb\u5e33\u865f\u6642\u4f7f\u7528\u7684\u9a57\u8b49\u65b9\u5f0f\u767b\u5165\u3002","Auth.form.error.password.matching":"\u5bc6\u78bc\u4e0d\u7b26\u5408","Auth.form.error.password.provide":"\u8acb\u8f38\u5165\u60a8\u7684\u5bc6\u78bc","Auth.form.error.ratelimit":"\u904e\u591a\u8acb\u6c42\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66\u3002","Auth.form.error.user.not-exist":"\u9019\u500b\u96fb\u5b50\u90f5\u4ef6\u5730\u5740\u4e0d\u5b58\u5728","Auth.form.error.username.taken":"\u4f7f\u7528\u8005\u540d\u7a31\u5df2\u88ab\u4f7f\u7528","Auth.form.firstname.label":"\u540d\u5b57","Auth.form.firstname.placeholder":"\u4f8b\u5982 Kai","Auth.form.forgot-password.email.label":"\u8f38\u5165\u60a8\u7684\u96fb\u5b50\u90f5\u4ef6\u5730\u5740","Auth.form.forgot-password.email.label.success":"\u90f5\u4ef6\u6210\u529f\u5bc4\u51fa","Auth.form.lastname.label":"\u59d3\u6c0f","Auth.form.lastname.placeholder":"\u4f8b\u5982 Doe","Auth.form.password.hide-password":"\u96b1\u85cf\u5bc6\u78bc","Auth.form.password.hint":"\u5bc6\u78bc\u81f3\u5c11\u8981\u6709 8 \u500b\u5b57\u5143\uff0c 1 \u500b\u5927\u5beb\u5b57\u6bcd\uff0c 1 \u500b\u5c0f\u5beb\u5b57\u6bcd\u548c 1 \u500b\u6578\u5b57\u3002","Auth.form.password.label":"\u5bc6\u78bc","Auth.form.password.show-password":"\u986f\u793a\u5bc6\u78bc","Auth.form.register.news.label":"\u6709\u65b0\u529f\u80fd\u548c\u6539\u9032\u6642\u901a\u77e5\u6211 (\u6253\u52fe\u8868\u793a\u4f60\u63a5\u53d7 {terms} \u548c {policy})\u3002","Auth.form.register.subtitle":"\u4f60\u586b\u5beb\u7684\u7684\u5e33\u865f\u8cc7\u6599\u53ea\u7528\u5728\u7ba1\u7406\u5f8c\u53f0\u7684\u8eab\u4efd\u9a57\u8b49\uff0c\u6240\u6709\u5132\u5b58\u7684\u8cc7\u6599\u90fd\u653e\u5728\u4f60\u7684\u8cc7\u6599\u5eab\u4e2d\u3002","Auth.form.rememberMe.label":"\u8a18\u5f97\u6211","Auth.form.username.label":"\u4f7f\u7528\u8005\u540d\u7a31","Auth.form.username.placeholder":"Kai Doe","Auth.form.welcome.subtitle":"\u767b\u5165\u4f60\u7684 Strapi \u5e33\u865f","Auth.form.welcome.title":"\u6b61\u8fce!","Auth.link.forgot-password":"\u5fd8\u8a18\u5bc6\u78bc\u4e86\u55ce\uff1f","Auth.link.ready":"\u6e96\u5099\u767b\u5165\u4e86\u55ce\uff1f","Auth.link.signin":"\u767b\u5165","Auth.link.signin.account":"\u5df2\u7d93\u6709\u5e33\u865f\u4e86\u55ce?","Auth.login.sso.divider":"\u6216\u767b\u5165\u900f\u904e","Auth.login.sso.loading":"\u8b80\u53d6\u9a57\u8b49\u65b9\u5f0f...","Auth.login.sso.subtitle":"\u900f\u904e SSO \u767b\u5165\u4f60\u7684\u5e33\u865f","Auth.privacy-policy-agreement.policy":"\u96b1\u79c1\u6b0a\u653f\u7b56","Auth.privacy-policy-agreement.terms":"\u670d\u52d9\u689d\u6b3e","Auth.reset-password.title":"\u91cd\u8a2d\u5bc6\u78bc","admin.pages.MarketPlacePage.helmet":"\u64f4\u5145\u529f\u80fd\u5e02\u96c6","admin.pages.MarketPlacePage.illustration":"\u5e02\u96c6\u63d2\u5716","admin.pages.MarketPlacePage.title":"\u5e02\u96c6","admin.pages.MarketPlacePage.subtitle":"\u5145\u5206\u5229\u7528 Strapi","admin.pages.MarketPlacePage.coming-soon.1":"\u8b93 Strapi \u8b8a\u66f4\u68d2\u7684\u65b9\u6cd5\u3002","admin.pages.MarketPlacePage.coming-soon.2":"\u656c\u8acb\u671f\u5f85\u3002","admin.pages.MarketPlacePage.content.subtitle":"\u65b0\u7684\u5e02\u96c6\u53ef\u4ee5\u5e6b\u4f60\u5f9e Strapi \u5f97\u5230\u66f4\u591a\u597d\u8655\uff0c\u6211\u5011\u6b63\u5728\u52aa\u529b\u63d0\u4f9b\u63a2\u7d22\u53ca\u5b89\u88dd\u7684\u6700\u4f73\u9ad4\u9a57\u3002","admin.pages.MarketPlacePage.submit.plugin.link":"\u7533\u8acb\u4f60\u7684\u64f4\u5145\u529f\u80fd","admin.pages.MarketPlacePage.blog.link":"\u95b1\u8b80\u6211\u5011\u7684\u90e8\u843d\u683c\u6587\u7ae0","Content Manager":"\u8cc7\u6599\u7ba1\u7406","Content Type Builder":"\u5167\u5bb9\u578b\u5225\u5efa\u7acb","Documentation":"\u6587\u4ef6","Email":"\u96fb\u5b50\u90f5\u4ef6","Files Upload":"\u6a94\u6848\u4e0a\u50b3","HomePage.helmet.title":"\u9996\u9801","HomePage.roadmap":"\u770b\u6211\u5011\u7684 roadmap","HomePage.welcome.congrats":"\u606d\u559c!","HomePage.welcome.congrats.content":"\u4f60\u767b\u5165\u6210\u70ba\u7b2c\u4e00\u500b\u7ba1\u7406\u54e1\uff0c\u63a2\u7d22 Strapi \u7684\u5f37\u5927\u529f\u80fd\uff0c","HomePage.welcome.congrats.content.bold":"\u5efa\u8b70\u4f60\u5f9e\u5efa\u7acb\u7b2c\u4e00\u500b\u5167\u5bb9\u578b\u5225\u958b\u59cb\u3002","Media Library":"\u5a92\u9ad4\u5eab","New entry":"\u65b0\u589e\u9805\u76ee","Password":"\u5bc6\u78bc","Provider":"\u63d0\u4f9b\u8005","ResetPasswordToken":"\u5bc6\u78bc\u91cd\u8a2d\u4ee3\u78bc","Role":"\u8eab\u4efd","Roles & Permissions":"\u89d2\u8272\u8207\u6b0a\u9650","Roles.ListPage.notification.delete-all-not-allowed":"\u7121\u6cd5\u522a\u9664\u4e00\u4e9b\u89d2\u8272\uff0c\u56e0\u70ba\u89d2\u8272\u8207\u4f7f\u7528\u8005\u9084\u6709\u95dc\u806f\u3002","Roles.ListPage.notification.delete-not-allowed":"\u8207\u4f7f\u7528\u8005\u6709\u95dc\u806f\u7684\u89d2\u8272\u7121\u6cd5\u522a\u9664","Roles.RoleRow.select-all":"\u9078\u64c7 {name} \u9032\u884c\u6279\u6b21\u64cd\u4f5c","Roles.RoleRow.user-count.plural":"{number} \u4f4d\u4f7f\u7528\u8005","Roles.RoleRow.user-count.singular":"{number} \u4f4d\u4f7f\u7528\u8005","Roles.components.List.empty.withSearch":"\u627e\u4e0d\u5230\u4f60\u641c\u5c0b\u7684\u89d2\u8272 ({search})...","Settings.PageTitle":"\u8a2d\u5b9a - {name}","Settings.apiTokens.addFirstToken":"\u65b0\u589e\u4f60\u7b2c\u4e00\u500b API Token","Settings.apiTokens.addNewToken":"\u65b0\u589e API Token","Settings.apiTokens.copy.editMessage":"\u57fa\u65bc\u5b89\u5168\u8003\u91cf\uff0c\u53ea\u80fd\u986f\u793a\u4e00\u6b21\u4f60\u7684 token\u3002","Settings.apiTokens.copy.editTitle":"\u9019\u500b token \u4e0d\u80fd\u7528\u4e86\u3002","Settings.apiTokens.copy.lastWarning":"\u8acb\u52d9\u5fc5\u8907\u88fd\u9019\u500b token\uff0c\uff0c\u932f\u904e\u5c31\u4e0d\u6703\u518d\u986f\u793a\u4e86!","Settings.apiTokens.create":"\u65b0\u589e","Settings.apiTokens.description":"\u5df2\u7522\u751f\u53ef\u4f7f\u7528 API \u7684 Tokens \u5217\u8868","Settings.apiTokens.emptyStateLayout":"\u4f60\u9084\u6c92\u6709\u4efb\u4f55\u5167\u5bb9...","Settings.apiTokens.notification.copied":"Token \u5df2\u7d93\u8907\u88fd\u5230\u526a\u8cbc\u7c3f\u3002","Settings.apiTokens.title":"API Tokens","Settings.apiTokens.types.full-access":"\u5b8c\u5168\u63a7\u5236","Settings.apiTokens.types.read-only":"\u552f\u8b80","Settings.application.description":"\u67e5\u770b\u4f60\u7684\u5c08\u6848\u8a73\u7d30\u8cc7\u6599","Settings.application.details":"\u8a73\u7d30\u8cc7\u6599","Settings.application.edition-title":"\u76ee\u524d\u65b9\u6848","Settings.application.information":"\u8cc7\u8a0a","Settings.application.link-pricing":"\u67e5\u770b\u5168\u90e8\u50f9\u683c","Settings.application.link-upgrade":"\u5347\u7d1a\u4f60\u7684\u7ba1\u7406\u5f8c\u53f0","Settings.application.node-version":"node \u7248\u672c","Settings.application.strapi-version":"strapi \u7248\u672c","Settings.application.title":"\u61c9\u7528\u7a0b\u5f0f","Settings.error":"\u932f\u8aa4","Settings.global":"\u5168\u57df\u8a2d\u5b9a","Settings.permissions":"\u7ba1\u7406\u54e1\u5f8c\u53f0","Settings.permissions.category":"{category} \u7684\u6b0a\u9650\u8a2d\u5b9a","Settings.permissions.category.plugins":"{category} \u64f4\u5145\u529f\u80fd\u7684\u6b0a\u9650\u8a2d\u5b9a","Settings.permissions.conditions.anytime":"\u96a8\u6642","Settings.permissions.conditions.apply":"\u5957\u7528","Settings.permissions.conditions.can":"\u53ef\u4ee5","Settings.permissions.conditions.define-conditions":"\u8a2d\u5b9a\u689d\u4ef6","Settings.permissions.conditions.links":"\u9023\u7d50","Settings.permissions.conditions.no-actions":"\u5728\u8a2d\u5b9a\u689d\u4ef6\u4e4b\u524d\uff0c\u4f60\u8981\u5148\u9078\u5247\u52d5\u4f5c\uff08\u65b0\u589e\u3001\u8b80\u53d6\u3001\u66f4\u65b0...\uff09","Settings.permissions.conditions.none-selected":"\u96a8\u6642","Settings.permissions.conditions.or":"\u6216","Settings.permissions.conditions.selected.plural":"\u5df2\u9078\u64c7 {number} \u500b\u689d\u4ef6","Settings.permissions.conditions.selected.singular":"\u4ee5\u9078\u64c7 {number} \u500b\u689d\u4ef6","Settings.permissions.conditions.when":"\u7576","Settings.permissions.menu.link.roles.label":"\u89d2\u8272","Settings.permissions.menu.link.users.label":"\u4f7f\u7528\u8005","Settings.permissions.select-all-by-permission":"\u9078\u64c7\u6240\u6709 {label} \u6b0a\u9650","Settings.permissions.select-by-permission":"\u9078\u64c7 {label} \u6b0a\u9650","Settings.permissions.users.create":"\u65b0\u589e\u4f7f\u7528\u8005","Settings.permissions.users.form.email":"\u96fb\u5b50\u90f5\u4ef6","Settings.permissions.users.form.firstname":"\u540d\u5b57","Settings.permissions.users.form.lastname":"\u59d3\u6c0f","Settings.permissions.users.form.sso":"\u900f\u904e SSO \u767b\u5165","Settings.permissions.users.form.sso.description":"\u7576\u555f\u52d5\u9019\u500b\u9078\u9805\u6642 (ON)\uff0c\u4f7f\u7528\u8005\u53ef\u4ee5\u900f\u904e SSO \u767b\u5165","Settings.permissions.users.listview.header.subtitle":"\u627e\u5230 {number, plural, =0 {# users} one {# user } other {# users}}","Settings.permissions.users.listview.header.title":"\u4f7f\u7528\u8005","Settings.permissions.users.tabs.label":"\u5206\u9801\u6b0a\u9650","Settings.profile.form.notify.data.loaded":"\u4f60\u7684\u500b\u4eba\u6a94\u6848\u8cc7\u6599\u5df2\u7d93\u8f09\u5165","Settings.profile.form.section.experience.clear.select":"\u6e05\u9664\u5df2\u9078\u7684\u4ecb\u9762\u8a9e\u8a00","Settings.profile.form.section.experience.interfaceLanguage":"\u4ecb\u9762\u8a9e\u8a00","Settings.profile.form.section.experience.interfaceLanguage.hint":"\u5c07\u6703\u7528\u6240\u9078\u64c7\u7684\u8a9e\u8a00\u986f\u793a\u4f60\u7684\u4ecb\u9762","Settings.profile.form.section.experience.title":"\u9ad4\u9a57","Settings.profile.form.section.helmet.title":"\u4f7f\u7528\u8005\u500b\u4eba\u6a94\u6848","Settings.profile.form.section.password.title":"\u6539\u8b8a\u5bc6\u78bc","Settings.profile.form.section.profile.page.title":"\u500b\u4eba\u6a94\u6848\u9801\u9762","Settings.profile.form.section.profile.title":"\u500b\u4eba\u6a94\u6848","Settings.roles.create.description":"\u5b9a\u7fa9\u8ce6\u4e88\u89d2\u8272\u7684\u6b0a\u9650","Settings.roles.create.title":"\u65b0\u589e\u89d2\u8272","Settings.roles.created":"\u89d2\u8272\u5df2\u65b0\u589e","Settings.roles.edit.title":"\u7de8\u8f2f\u89d2\u8272","Settings.roles.form.button.users-with-role":"{number, plural, =0 {# users} one {# user} other {# users}} \u662f\u9019\u500b\u89d2\u8272","Settings.roles.form.created":"\u5df2\u65b0\u589e","Settings.roles.form.description":"\u89d2\u8272\u7684\u540d\u5b57\u8207\u63cf\u8ff0","Settings.roles.form.input.description":"\u63cf\u8ff0","Settings.roles.form.input.name":"\u540d\u7a31","Settings.roles.form.permission.property-label":"{label} \u6b0a\u9650","Settings.roles.form.permissions.attributesPermissions":"\u6b04\u4f4d\u6b0a\u9650","Settings.roles.form.permissions.create":"\u65b0\u589e","Settings.roles.form.permissions.delete":"\u522a\u9664","Settings.roles.form.permissions.publish":"\u767c\u5e03","Settings.roles.form.permissions.read":"\u8b80\u53d6","Settings.roles.form.permissions.update":"\u66f4\u65b0","Settings.roles.form.title":"\u8a73\u7d30\u8cc7\u6599","Settings.roles.list.button.add":"\u52a0\u5165\u65b0\u7684\u89d2\u8272","Settings.roles.list.description":"\u89d2\u8272\u5217\u8868","Settings.roles.list.header.actions":"\u52d5\u4f5c","Settings.roles.list.header.description":"\u63cf\u8ff0","Settings.roles.list.header.name":"\u540d\u7a31","Settings.roles.list.header.users":"\u4f7f\u7528\u8005","Settings.roles.list.title.plural":"{number} \u500b\u89d2\u8272","Settings.roles.list.title.singular":"{number} \u500b\u89d2\u8272","Settings.roles.title":"\u89d2\u8272","Settings.roles.title.singular":"\u89d2\u8272","Settings.sso.description":"\u8abf\u6574 Single Sign-On \u529f\u80fd\u7684\u8a2d\u5b9a","Settings.sso.form.defaultRole.description":"\u5b83\u5c07\u65b0\u9a57\u8b49\u7684\u4f7f\u7528\u8005\u9644\u52a0\u5230\u6240\u9078\u89d2\u8272","Settings.sso.form.defaultRole.description-not-allowed":"\u60a8\u9700\u8981\u6709\u8b80\u53d6\u7ba1\u7406\u54e1\u89d2\u8272\u7684\u6b0a\u9650","Settings.sso.form.defaultRole.label":"\u9810\u8a2d\u89d2\u8272","Settings.sso.form.registration.description":"SSO \u767b\u5165\u5e33\u865f\u4e0d\u5b58\u5728\u6642\u5c31\u65b0\u589e\u4f7f\u7528\u8005","Settings.sso.form.registration.label":"\u81ea\u52d5\u8a3b\u518a","Settings.sso.form.settings.title":"\u8a2d\u5b9a","Settings.sso.title":"Single Sign-On","Settings.webhooks.create":"\u65b0\u589e webhook","Settings.webhooks.create.header":"\u65b0\u589e\u4e00\u500b Header","Settings.webhooks.created":"Webhook \u5df2\u65b0\u589e","Settings.webhooks.disabled":"\u95dc\u9589","Settings.webhooks.enabled":"\u555f\u52d5","Settings.webhooks.event.publish-tooltip":"\u6b64\u4e8b\u4ef6\u50c5\u9069\u7528\u65bc\u555f\u7528\u4e86\u8349\u7a3f/\u767c\u5e03\u7cfb\u7d71\u7684\u5167\u5bb9","Settings.webhooks.events.create":"\u65b0\u589e","Settings.webhooks.events.delete":"\u522a\u9664","Settings.webhooks.events.update":"\u66f4\u65b0","Settings.webhooks.form.events":"\u4e8b\u4ef6","Settings.webhooks.form.headers":"Headers","Settings.webhooks.form.name":"\u540d\u7a31","Settings.webhooks.form.url":"Url","Settings.webhooks.headers.remove":"\u79fb\u9664 header \u7b2c {number} \u884c","Settings.webhooks.key":"Key","Settings.webhooks.list.all-entries.select":"\u9078\u64c7\u5168\u90e8\u8cc7\u6599","Settings.webhooks.list.button.add":"\u65b0\u589e\u65b0\u7684 webhook","Settings.webhooks.list.description":"\u7372\u5f97 POST \u66f4\u65b0\u901a\u77e5","Settings.webhooks.list.empty.description":"\u65b0\u589e\u4f60\u7b2c\u4e00\u500b webhook","Settings.webhooks.list.empty.link":"\u53c3\u8003\u6211\u5011\u7684\u6587\u4ef6","Settings.webhooks.list.empty.title":"\u9019\u88e1\u9084\u6c92\u6709 webhook","Settings.webhooks.list.select":"\u9078\u64c7","Settings.webhooks.list.th.actions":"\u52d5\u4f5c","Settings.webhooks.list.th.status":"\u72c0\u614b","Settings.webhooks.singular":"webhook","Settings.webhooks.title":"Webhooks","Settings.webhooks.to.delete":"\u5df2\u9078\u64c7 {webhooksToDeleteLength, plural, one {# asset} other {# assets}}","Settings.webhooks.trigger":"\u89f8\u767c","Settings.webhooks.trigger.cancel":"\u53d6\u6d88\u89f8\u767c","Settings.webhooks.trigger.pending":"\u7b49\u5f85\u2026","Settings.webhooks.trigger.save":"\u8acb\u5132\u5b58\u5230\u89f8\u767c","Settings.webhooks.trigger.success":"\u6210\u529f!","Settings.webhooks.trigger.success.label":"\u89f8\u767c\u6210\u529f","Settings.webhooks.trigger.test":"\u6e2c\u8a66\u89f8\u767c","Settings.webhooks.trigger.title":"\u89f8\u767c\u524d\u5148\u5132\u5b58","Settings.webhooks.value":"Value","Username":"\u4f7f\u7528\u8005\u540d\u7a31","Users":"\u4f7f\u7528\u8005","Users & Permissions":"\u4f7f\u7528\u8005\u8207\u6b0a\u9650","Users.components.List.empty":"\u9084\u6c92\u6709\u4f7f\u7528\u8005...","Users.components.List.empty.withFilters":"\u6c92\u6709\u7b26\u5408\u7be9\u9078\u689d\u4ef6\u7684\u4f7f\u7528\u8005...","Users.components.List.empty.withSearch":"\u6c92\u6709\u7b26\u5408\u641c\u5c0b\u689d\u4ef6 ({search}) \u7684\u4f7f\u7528\u8005...","anErrorOccurred":"\u5509\u5440! \u767c\u751f\u4e00\u4e9b\u554f\u984c\uff0c\u8acb\u518d\u8a66\u4e00\u6b21\u3002","app.component.CopyToClipboard.label":"\u8907\u88fd\u5230\u526a\u8cbc\u7c3f","app.component.search.label":"\u641c\u5c0b {target}","app.component.table.delete":"\u522a\u9664 {target}","app.component.table.duplicate":"\u5efa\u7acb\u526f\u672c {target}","app.component.table.edit":"\u7de8\u8f2f {target}","app.component.table.select.all-entries":"\u5168\u9078\u6240\u6709\u9805\u76ee","app.component.table.select.one-entry":"\u9078\u64c7 {target}","app.components.BlockLink.blog":"\u90e8\u843d\u683c","app.components.BlockLink.blog.content":"\u95b1\u8b80\u95dc\u65bc Strapi \u548c\u76f8\u95dc\u7684\u6700\u65b0\u8cc7\u8a0a","app.components.BlockLink.code":"\u7bc4\u4f8b","app.components.BlockLink.code.content":"\u900f\u904e\u6e2c\u8a66\u793e\u7fa4\u958b\u767c\u7684\u771f\u5be6\u5c08\u6848\u800c\u5b78\u7fd2\u3002","app.components.BlockLink.documentation":"\u6587\u4ef6","app.components.BlockLink.documentation.content":"\u63a2\u7d22\u57fa\u790e\u89c0\u5ff5\u3001\u6307\u5357\u548c\u5206\u89e3\u6b65\u9a5f\u8aaa\u660e\u3002","app.components.BlockLink.tutorial":"\u5f15\u5c0e","app.components.BlockLink.tutorial.content":"\u8ddf\u8457\u624b\u628a\u624b\u7684\u6559\u5b78\u5f15\u5c0e\u4f7f\u7528\u548c\u5ba2\u88fd Strapi","app.components.Button.cancel":"\u53d6\u6d88","app.components.Button.confirm":"\u78ba\u8a8d","app.components.Button.reset":"\u91cd\u8a2d","app.components.Button.save":"\u5132\u5b58","app.components.ComingSoonPage.comingSoon":"\u5373\u5c07\u63a8\u51fa","app.components.ConfirmDialog.title":"\u78ba\u8a8d","app.components.DownloadInfo.download":"\u4e0b\u8f09\u4e2d...","app.components.DownloadInfo.text":"\u8acb\u7a0d\u5019\u5e7e\u5206\u9418\uff0c\u8b1d\u8b1d\u3002","app.components.EmptyAttributes.title":"\u9019\u88e1\u9084\u6c92\u6709\u4efb\u4f55\u6b04\u4f4d","app.components.EmptyStateLayout.content-permissions":"\u4f60\u6c92\u6709\u6b0a\u9650\u5b58\u53d6\u9019\u500b\u5167\u5bb9","app.components.HeaderLayout.link.go-back":"\u8fd4\u56de","app.components.HomePage.button.blog":"\u5230\u90e8\u843d\u683c\u4e0a\u95b1\u8b80\u66f4\u591a","app.components.HomePage.community":"\u63a2\u7d22\u958b\u767c\u793e\u7fa4","app.components.HomePage.community.content":"\u5728\u4e0d\u540c\u7684\u793e\u7fa4\u4e2d\u8207\u5176\u4ed6\u6210\u54e1\u3001\u8ca2\u737b\u8005\u4ee5\u53ca\u958b\u767c\u8005\u8a0e\u8ad6\u3002","app.components.HomePage.create":"\u5efa\u7acb\u4f60\u7b2c\u4e00\u500b\u5167\u5bb9\u578b\u5225","app.components.HomePage.roadmap":"\u770b\u6211\u5011\u7684 roadmap","app.components.HomePage.welcome":"\u6b61\u8fce\u52a0\u5165\uff01","app.components.HomePage.welcome.again":"\u6b61\u8fce\u56de\u4f86! ","app.components.HomePage.welcomeBlock.content":"\u606d\u559c! \u4f60\u767b\u5165\u6210\u70ba\u7b2c\u4e00\u500b\u7ba1\u7406\u54e1\uff0c\u63a2\u7d22 Strapi \u7684\u5f37\u5927\u529f\u80fd\uff0c\u5efa\u8b70\u4f60\u5f9e\u5efa\u7acb\u7b2c\u4e00\u500b\u5167\u5bb9\u578b\u5225\u958b\u59cb\u3002","app.components.HomePage.welcomeBlock.content.again":"\u6211\u5011\u5e0c\u671b\u60a8\u5728\u5c08\u6848\u4e0a\u6709\u6240\u9032\u5c55\uff01\u8acb\u96a8\u6642\u95b1\u8b80\u6709\u95dc Strapi \u7684\u6700\u65b0\u6d88\u606f\u3002\u6211\u5011\u5c07\u6839\u64da\u60a8\u7684\u56de\u994b\u76e1\u6700\u5927\u52aa\u529b\u6539\u9032\u7522\u54c1\u3002","app.components.HomePage.welcomeBlock.content.issues":"\u554f\u984c\u3002","app.components.HomePage.welcomeBlock.content.raise":"\u6216\u662f\u56de\u5831","app.components.ImgPreview.hint":"\u5c07\u60a8\u8981\u4e0a\u50b3\u7684\u6a94\u6848\u62d6\u66f3\u5230\u6b64\u5340\u57df\uff0c\u6216\u662f\u700f\u89bd\u6a94\u6848","app.components.ImgPreview.hint.browse":"\u700f\u89bd","app.components.InputFile.newFile":"\u589e\u52a0\u65b0\u6a94\u6848","app.components.InputFileDetails.open":"\u5728\u65b0\u5206\u9801\u4e2d\u958b\u555f","app.components.InputFileDetails.originalName":"\u539f\u59cb\u540d\u7a31\uff1a","app.components.InputFileDetails.remove":"\u79fb\u9664\u6a94\u6848","app.components.InputFileDetails.size":"\u5927\u5c0f\uff1a","app.components.InstallPluginPage.Download.description":"\u4e0b\u8f09\u548c\u5b89\u88dd\u64f4\u5145\u529f\u80fd\u53ef\u80fd\u9700\u8981\u5e7e\u79d2\u9418\u7684\u6642\u9593\u3002","app.components.InstallPluginPage.Download.title":"\u4e0b\u8f09\u4e2d...","app.components.InstallPluginPage.description":"\u8f15\u9b06\u64f4\u5145\u60a8\u7684\u61c9\u7528\u7a0b\u5f0f","app.components.LeftMenu.collapse":"\u6536\u8d77\u5c0e\u822a\u5217","app.components.LeftMenu.expand":"\u6253\u958b\u5c0e\u822a\u5217","app.components.LeftMenu.logout":"\u767b\u51fa","app.components.LeftMenu.profile":"\u500b\u4eba\u6a94\u6848","app.components.LeftMenuFooter.documentation":"\u6587\u4ef6","app.components.LeftMenuFooter.help":"\u8aaa\u660e","app.components.LeftMenuFooter.poweredBy":"Powered by ","app.components.LeftMenuLinkContainer.collectionTypes":"\u96c6\u5408\u578b\u5225","app.components.LeftMenuLinkContainer.configuration":"\u8a2d\u5b9a","app.components.LeftMenuLinkContainer.general":"\u4e00\u822c","app.components.LeftMenuLinkContainer.installNewPlugin":"\u5e02\u96c6","app.components.LeftMenuLinkContainer.listPlugins":"\u64f4\u5145\u529f\u80fd","app.components.LeftMenuLinkContainer.noPluginsInstalled":"\u76ee\u524d\u6c92\u6709\u5b89\u88dd\u4efb\u4f55\u64f4\u5145\u529f\u80fd","app.components.LeftMenuLinkContainer.plugins":"\u64f4\u5145\u529f\u80fd","app.components.LeftMenuLinkContainer.settings":"\u8a2d\u5b9a","app.components.LeftMenuLinkContainer.singleTypes":"\u55ae\u7b46\u578b\u5225","app.components.ListPluginsPage.deletePlugin.description":"\u89e3\u9664\u5b89\u88dd\u64f4\u5145\u529f\u80fd\u53ef\u80fd\u9700\u8981\u5e7e\u79d2\u9418\u7684\u6642\u9593\u3002","app.components.ListPluginsPage.deletePlugin.title":"\u89e3\u9664\u5b89\u88dd","app.components.ListPluginsPage.description":"\u9019\u500b\u5c08\u6848\u5b89\u88dd\u7684\u64f4\u5145\u529f\u80fd\u5217\u8868","app.components.ListPluginsPage.helmet.title":"\u64f4\u5145\u529f\u80fd\u5217\u8868","app.components.ListPluginsPage.title":"\u64f4\u5145\u529f\u80fd","app.components.Logout.logout":"\u767b\u51fa","app.components.Logout.profile":"\u500b\u4eba\u6a94\u6848","app.components.MarketplaceBanner":"\u5728 Strapi Awesome \u4e0a\u767c\u73fe\u793e\u7fa4\u5efa\u69cb\u7684\u64f4\u5145\u5957\u4ef6\uff0c\u4ee5\u53ca\u66f4\u591a\u53ef\u9a45\u52d5\u60a8\u7684\u5c08\u6848\u7684\u7cbe\u5f69\u5167\u5bb9\u3002","app.components.MarketplaceBanner.image.alt":"strapi \u706b\u7bad logo","app.components.MarketplaceBanner.link":"\u73fe\u5728\u770b\u770b","app.components.NotFoundPage.back":"\u56de\u5230\u4e3b\u9801","app.components.NotFoundPage.description":"\u627e\u4e0d\u5230\u6b64\u9801\u9762","app.components.Official":"\u5b98\u65b9","app.components.Onboarding.help.button":"\u5e6b\u52a9\u6309\u9215","app.components.Onboarding.label.completed":"% \u5b8c\u6210","app.components.Onboarding.title":"\u5165\u9580\u5f71\u7247","app.components.PluginCard.Button.label.download":"\u4e0b\u8f09","app.components.PluginCard.Button.label.install":"\u5df2\u5b89\u88dd","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"\u8981\u555f\u7528\u81ea\u52d5\u91cd\u65b0\u6574\u7406\u529f\u80fd\u3002\u8acb\u4f7f\u7528 yarn develop \u555f\u52d5\u60a8\u7684 App\u3002","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"\u6211\u4e86\u89e3!","app.components.PluginCard.PopUpWarning.install.impossible.environment":"\u57fa\u65bc\u5b89\u5168\u8003\u91cf\uff0c\u64f4\u5145\u5957\u4ef6\u53ea\u80fd\u5728\u958b\u767c\u74b0\u5883\u4e2d\u4e0b\u8f09\u3002","app.components.PluginCard.PopUpWarning.install.impossible.title":"\u4e0d\u80fd\u4e0b\u8f09","app.components.PluginCard.compatible":"\u8207\u60a8\u7684\u5c08\u6848\u76f8\u5bb9","app.components.PluginCard.compatibleCommunity":"\u76f8\u5bb9\u793e\u7fa4","app.components.PluginCard.more-details":"\u986f\u793a\u66f4\u591a","app.components.ToggleCheckbox.off-label":"\u95dc","app.components.ToggleCheckbox.on-label":"\u958b","app.components.UpgradePlanModal.button":"\u5b78\u7fd2\u66f4\u591a","app.components.UpgradePlanModal.limit-reached":"\u5df2\u7d93\u5230\u9054\u4e0a\u9650","app.components.UpgradePlanModal.text-ce":"\u793e\u7fa4\u7248","app.components.UpgradePlanModal.text-ee":"\u4f01\u696d\u7248","app.components.UpgradePlanModal.text-power":"\u900f\u904e\u5c07\u5347\u7d1a\u60a8\u7684\u65b9\u6848\u5230\u4f01\u696d\u7248\u4f86\u89e3\u9396 Strapi \u7684\u5168\u90e8\u529f\u80fd","app.components.UpgradePlanModal.text-strapi":"\u900f\u904e\u5c07\u5347\u7d1a\u60a8\u7684\u65b9\u6848\u5230","app.components.Users.MagicLink.connect":"\u5c07\u6b64\u9023\u7d50\u50b3\u9001\u7d66\u4f7f\u7528\u8005\u8b93\u4ed6\u53ef\u4ee5\u958b\u901a\u5e33\u865f\u3002","app.components.Users.MagicLink.connect.sso":"\u5c07\u6b64\u9023\u7d50\u50b3\u9001\u7d66\u4f7f\u7528\u8005\u8b93\u4ed6\u53ef\u4ee5\u900f\u904e SSO \u767b\u5165\u3002","app.components.Users.ModalCreateBody.block-title.details":"\u8a73\u7d30\u8cc7\u6599","app.components.Users.ModalCreateBody.block-title.login":"\u767b\u5165\u8a2d\u5b9a","app.components.Users.ModalCreateBody.block-title.roles":"\u4f7f\u7528\u8005\u7684\u89d2\u8272","app.components.Users.ModalCreateBody.block-title.roles.description":"\u60a8\u7684\u4f7f\u7528\u8005\u53ef\u4ee5\u6709\u4e00\u500b\u6216\u591a\u500b\u89d2\u8272","app.components.Users.SortPicker.button-label":"\u6392\u5e8f\u6309\u7167","app.components.Users.SortPicker.sortby.email_asc":"Email (A \u5230 Z)","app.components.Users.SortPicker.sortby.email_desc":"Email (Z \u5230 A)","app.components.Users.SortPicker.sortby.firstname_asc":"\u540d\u5b57 (A \u5230 Z)","app.components.Users.SortPicker.sortby.firstname_desc":"\u540d\u5b57 (Z \u5230 A)","app.components.Users.SortPicker.sortby.lastname_asc":"\u59d3\u6c0f (A \u5230 Z)","app.components.Users.SortPicker.sortby.lastname_desc":"\u59d3\u6c0f (Z \u5230 A)","app.components.Users.SortPicker.sortby.username_asc":"\u4f7f\u7528\u8005\u540d\u7a31 (A \u5230 Z)","app.components.Users.SortPicker.sortby.username_desc":"\u4f7f\u7528\u8005\u540d\u7a31 (Z \u5230 A)","app.components.go-back":"\u8fd4\u56de","app.components.listPlugins.button":"\u5b89\u88dd\u65b0\u7684\u64f4\u5145\u529f\u80fd","app.components.listPlugins.title.none":"\u76ee\u524d\u6c92\u6709\u5b89\u88dd\u4efb\u4f55\u64f4\u5145\u529f\u80fd","app.components.listPlugins.title.plural":"\u5b89\u88dd\u4e86 {number} \u500b\u64f4\u5145\u529f\u80fd","app.components.listPlugins.title.singular":"\u5b89\u88dd\u4e86 {number} \u500b\u64f4\u5145\u529f\u80fd","app.components.listPluginsPage.deletePlugin.error":"\u89e3\u9664\u5b89\u88dd\u64f4\u5145\u529f\u80fd\u6642\u767c\u751f\u4e86\u932f\u8aa4","app.containers.App.notification.error.init":"\u9001\u51fa API \u6642\u51fa\u932f","app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin":"\u5982\u679c\u4f60\u6c92\u6709\u6536\u5230\u9019\u500b\u9023\u7d50\uff0c\u8acb\u8a62\u554f\u4f60\u7684\u7ba1\u7406\u54e1\u3002","app.containers.AuthPage.ForgotPasswordSuccess.text.email":"\u53ef\u80fd\u9700\u8981\u5e7e\u5206\u9418\u624d\u80fd\u6536\u5230\u60a8\u7684\u6062\u5fa9\u5bc6\u78bc\u9023\u7d50\u3002","app.containers.AuthPage.ForgotPasswordSuccess.title":"\u9001\u51fa Email","app.containers.Users.EditPage.form.active.label":"\u6709\u6548","app.containers.Users.EditPage.header.label":"\u7de8\u8f2f {name}","app.containers.Users.EditPage.header.label-loading":"\u7de8\u8f2f\u4f7f\u7528\u8005","app.containers.Users.EditPage.roles-bloc-title":"\u6b78\u5c6c\u7684\u89d2\u8272","app.containers.Users.ModalForm.footer.button-success":"\u65b0\u589e\u4f7f\u7528\u8005","app.links.configure-view":"\u8a2d\u5b9a\u6aa2\u8996","app.static.links.cheatsheet":"\u5099\u5fd8\u9304","app.utils.SelectOption.defaultMessage":" ","app.utils.add-filter":"\u65b0\u589e\u7be9\u9078\u5668","app.utils.close-label":"\u95dc\u9589","app.utils.defaultMessage":" ","app.utils.delete":"\u522a\u9664","app.utils.duplicate":"\u5efa\u7acb\u526f\u672c","app.utils.edit":"\u7de8\u8f2f","app.utils.errors.file-too-big.message":"\u6a94\u6848\u5bb9\u91cf\u592a\u5927\u4e86","app.utils.filter-value":"\u7be9\u9078\u5668\u7684\u503c","app.utils.filters":"\u7be9\u9078\u689d\u4ef6","app.utils.notify.data-loaded":"{target} \u5df2\u7d93\u8b80\u53d6","app.utils.placeholder.defaultMessage":" ","app.utils.publish":"\u767c\u5e03","app.utils.select-all":"\u5168\u9078","app.utils.select-field":"\u9078\u64c7\u6b04\u4f4d","app.utils.select-filter":"\u9078\u64c7\u7be9\u9078","app.utils.unpublish":"\u53d6\u6d88\u767c\u5e03","clearLabel":"\u6e05\u9664","coming.soon":"\u6b64\u5167\u5bb9\u76ee\u524d\u6b63\u5728\u5efa\u8a2d\u4e2d\uff0c\u5c07\u5728\u5e7e\u9031\u5f8c\u6062\u5fa9\uff01","component.Input.error.validation.integer":"\u9019\u500b\u503c\u5fc5\u9808\u662f\u6578\u503c","components.AutoReloadBlocker.description":"\u4f7f\u7528\u4ee5\u4e0b\u6307\u4ee4\u4e4b\u4e00\u57f7\u884c Strapi\uff1a","components.AutoReloadBlocker.header":"\u9019\u500b\u64f4\u5145\u529f\u80fd\u9700\u8981\u81ea\u52d5\u91cd\u65b0\u6574\u7406\u529f\u80fd\u624d\u80fd\u8f09\u5165","components.ErrorBoundary.title":"\u6709\u932f\u8aa4\u767c\u751f...","components.FilterOptions.FILTER_TYPES.$contains":"\u5305\u542b (\u5340\u5206\u5927\u5c0f\u5beb)","components.FilterOptions.FILTER_TYPES.$endsWith":"\u7d50\u5c3e\u662f","components.FilterOptions.FILTER_TYPES.$eq":"\u662f","components.FilterOptions.FILTER_TYPES.$gt":"\u5927\u65bc","components.FilterOptions.FILTER_TYPES.$gte":"\u5927\u65bc\u6216\u7b49\u65bc","components.FilterOptions.FILTER_TYPES.$lt":"\u5c0f\u65bc","components.FilterOptions.FILTER_TYPES.$lte":"\u5c0f\u65bc\u6216\u7b49\u65bc","components.FilterOptions.FILTER_TYPES.$ne":"\u4e0d\u662f","components.FilterOptions.FILTER_TYPES.$notContains":"\u4e0d\u5305\u542b (\u5340\u5206\u5927\u5c0f\u5beb)","components.FilterOptions.FILTER_TYPES.$notNull":"\u4e0d\u662f null","components.FilterOptions.FILTER_TYPES.$null":"\u662f null","components.FilterOptions.FILTER_TYPES.$startsWith":"\u8d77\u9996\u662f","components.Input.error.attribute.key.taken":"\u9019\u500b\u503c\u5df2\u7d93\u5b58\u5728\u4e86","components.Input.error.attribute.sameKeyAndName":"\u4e0d\u80fd\u7b49\u65bc","components.Input.error.attribute.taken":"\u9019\u500b\u6b04\u4f4d\u540d\u7a31\u5df2\u7d93\u5b58\u5728\u4e86","components.Input.error.contain.lowercase":"\u5bc6\u78bc\u5fc5\u9808\u81f3\u5c11\u5305\u542b\u4e00\u500b\u5c0f\u5beb\u5b57\u6bcd","components.Input.error.contain.number":"\u5bc6\u78bc\u5fc5\u9808\u81f3\u5c11\u5305\u542b\u4e00\u500b\u6578\u5b57","components.Input.error.contain.uppercase":"\u5bc6\u78bc\u5fc5\u9808\u81f3\u5c11\u5305\u542b\u4e00\u500b\u5927\u5beb\u5b57\u6bcd","components.Input.error.contentTypeName.taken":"\u9019\u500b\u540d\u7a31\u5df2\u7d93\u5b58\u5728\u4e86","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"\u5bc6\u78bc\u4e0d\u7b26","components.Input.error.validation.email":"\u8acb\u8f38\u5165\u6709\u6548\u7684\u96fb\u5b50\u90f5\u4ef6\u5730\u5740","components.Input.error.validation.json":"\u975e\u6cd5\u7684JSON\u683c\u5f0f","components.Input.error.validation.max":"\u6578\u503c\u592a\u5927","components.Input.error.validation.maxLength":"\u8d85\u904e\u9577\u5ea6","components.Input.error.validation.min":"\u6578\u503c\u592a\u5c0f","components.Input.error.validation.minLength":"\u9577\u5ea6\u4e0d\u5920","components.Input.error.validation.minSupMax":"\u4e0d\u80fd\u63a5\u53d7\u9019\u500b\u503c","components.Input.error.validation.regex":"\u6b64\u503c\u7121\u6cd5\u901a\u904e\u6b63\u898f\u8868\u9054\u5f0f","components.Input.error.validation.required":"\u5fc5\u586b\u6b04\u4f4d","components.Input.error.validation.unique":"\u9019\u500b\u503c\u5df2\u7d93\u6709\u4e86","components.InputSelect.option.placeholder":"\u9019\u88e1\u9078\u64c7","components.ListRow.empty":"\u6c92\u6709\u8cc7\u6599\u53ef\u4ee5\u986f\u793a","components.NotAllowedInput.text":"\u6c92\u6709\u6b0a\u9650\u986f\u793a\u9019\u500b\u6b04\u4f4d","components.OverlayBlocker.description":"\u60a8\u6b63\u5728\u4f7f\u7528\u7684\u529f\u80fd\u9700\u8981\u91cd\u65b0\u555f\u52d5\uff0c\u8acb\u7b49\u5f85\u91cd\u65b0\u555f\u52d5\u5b8c\u6210\u3002","components.OverlayBlocker.description.serverError":"server \u61c9\u8a72\u5df2\u7d93\u91cd\u65b0\u555f\u52d5\uff0c\u8acb\u5728\u7d42\u7aef\u6a5f\u4e2d\u67e5\u770b log\u3002","components.OverlayBlocker.title":"\u7b49\u5f85\u91cd\u65b0\u555f\u52d5\u4e2d...","components.OverlayBlocker.title.serverError":"\u91cd\u65b0\u555f\u52d5\u82b1\u8cbb\u7684\u6642\u9593\u6bd4\u9810\u671f\u7684\u4e45\u3002","components.PageFooter.select":"\u9805\u76ee/\u9801","components.ProductionBlocker.description":"\u57fa\u65bc\u5b89\u5168\u8003\u91cf\uff0c\u6211\u5011\u9700\u8981\u5728\u5176\u4ed6\u74b0\u5883\u95dc\u9589\u9019\u500b\u64f4\u5145\u529f\u80fd","components.ProductionBlocker.header":"\u9019\u500b\u64f4\u5145\u529f\u80fd\u53ea\u80fd\u5728\u958b\u767c\u74b0\u5883\u4e2d\u4f7f\u7528","components.Search.placeholder":"\u641c\u5c0b...","components.Select.placeholder":"\u9078\u64c7","components.TableHeader.actions-label":"\u52d5\u4f5c","components.TableHeader.sort":"\u4ee5 {label} \u6392\u5e8f","components.Wysiwyg.ToggleMode.markdown-mode":"Markdown \u6a21\u5f0f","components.Wysiwyg.ToggleMode.preview-mode":"\u9810\u89bd\u6a21\u5f0f","components.Wysiwyg.collapse":"\u6298\u758a","components.Wysiwyg.selectOptions.H1":"\u6a19\u984c1","components.Wysiwyg.selectOptions.H2":"\u6a19\u984c2","components.Wysiwyg.selectOptions.H3":"\u6a19\u984c3","components.Wysiwyg.selectOptions.H4":"\u6a19\u984c4","components.Wysiwyg.selectOptions.H5":"\u6a19\u984c5","components.Wysiwyg.selectOptions.H6":"\u6a19\u984c6","components.Wysiwyg.selectOptions.title":"\u65b0\u589e\u6a19\u984c","components.WysiwygBottomControls.charactersIndicators":"\u5b57\u5143","components.WysiwygBottomControls.fullscreen":"\u5c55\u958b","components.WysiwygBottomControls.uploadFiles":"\u62d6\u66f3\u6a94\u6848\u3001\u5f9e\u526a\u8cbc\u7c3f\u8cbc\u4e0a\u6216 {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"\u9078\u64c7\u6a94\u6848","components.pagination.go-to":"\u524d\u5f80 {page} \u9801\u9762","components.pagination.go-to-next":"\u524d\u5f80\u4e0b\u4e00\u9801","components.pagination.go-to-previous":"\u524d\u5f80\u4e0a\u4e00\u9801","components.pagination.remaining-links":"\u53ca {number} \u500b\u5176\u4ed6\u9023\u7d50","components.popUpWarning.button.cancel":"\u4e0d, \u53d6\u6d88","components.popUpWarning.button.confirm":"\u662f, \u78ba\u8a8d","components.popUpWarning.message":"\u60a8\u78ba\u5b9a\u8981\u522a\u9664\u6b64\u9805\u76ee\u55ce\uff1f","components.popUpWarning.title":"\u8acb\u78ba\u8a8d","content-manager.App.schemas.data-loaded":"\u9019\u500b schemas \u5df2\u7d93\u6210\u529f\u8f09\u5165","content-manager.DynamicTable.relation-loaded":"\u95dc\u806f\u5df2\u7d93\u8f09\u5165","content-manager.EditRelations.title":"\u95dc\u806f\u5f0f\u8cc7\u6599","content-manager.HeaderLayout.button.label-add-entry":"\u65b0\u589e\u9805\u76ee","content-manager.api.id":"API ID","content-manager.components.AddFilterCTA.add":"\u7be9\u9078\u5668","content-manager.components.AddFilterCTA.hide":"\u7be9\u9078\u5668","content-manager.components.DragHandle-label":"\u62d6\u66f3","content-manager.components.DraggableAttr.edit":"\u9ede\u64ca\u4ee5\u7de8\u8f2f","content-manager.components.DraggableCard.delete.field":"\u522a\u9664 {item}","content-manager.components.DraggableCard.edit.field":"\u7de8\u8f2f {item}","content-manager.components.DraggableCard.move.field":"\u79fb\u52d5 {item}","content-manager.components.DynamicTable.row-line":"\u9805 \u884c {number}","content-manager.components.DynamicZone.ComponentPicker-label":"\u9078\u4e00\u500b\u7d44\u4ef6","content-manager.components.DynamicZone.add-component":"\u65b0\u589e\u7d44\u4ef6\u5230 {componentName}","content-manager.components.DynamicZone.delete-label":"\u522a\u9664 {name}","content-manager.components.DynamicZone.error-message":"\u9019\u500b\u7d44\u4ef6\u6709\u932f\u8aa4","content-manager.components.DynamicZone.missing-components":"\u9019\u88e1 {number, plural, =0 {\u6709 # \u907a\u5931\u7684\u7d44\u4ef6} one {\u6709 # \u907a\u5931\u7684\u7d44\u4ef6} other {\u6709 # \u907a\u5931\u7684\u7d44\u4ef6}}","content-manager.components.DynamicZone.move-down-label":"\u7d44\u4ef6\u5f80\u4e0b\u79fb\u52d5","content-manager.components.DynamicZone.move-up-label":"\u7d44\u4ef6\u5f80\u4e0a\u79fb\u52d5","content-manager.components.DynamicZone.pick-compo":"\u9078\u4e00\u500b\u7d44\u4ef6","content-manager.components.DynamicZone.required":"\u7d44\u4ef6\u662f\u5fc5\u586b","content-manager.components.EmptyAttributesBlock.button":"\u524d\u5f80\u8a2d\u5b9a\u9801\u9762","content-manager.components.EmptyAttributesBlock.description":"\u60a8\u53ef\u4ee5\u8b8a\u66f4\u8a2d\u5b9a","content-manager.components.FieldItem.linkToComponentLayout":"\u8a2d\u5b9a\u7d44\u4ef6\u7684\u6392\u7248","content-manager.components.FieldSelect.label":"\u52a0\u5165\u4e00\u500b\u6b04\u4f4d","content-manager.components.FilterOptions.button.apply":"\u5957\u7528","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"\u5957\u7528","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"\u6e05\u9664","content-manager.components.FiltersPickWrapper.PluginHeader.description":"\u8a2d\u5b9a\u7be9\u9078\u8cc7\u6599\u7684\u689d\u4ef6","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"\u7be9\u9078\u5668","content-manager.components.FiltersPickWrapper.hide":"\u96b1\u85cf","content-manager.components.LeftMenu.Search.label":"\u641c\u5c0b\u5167\u5bb9\u578b\u5225","content-manager.components.LeftMenu.collection-types":"{number, plural, =0 {\u96c6\u5408\u578b\u5225} one {\u96c6\u5408\u578b\u5225} other {\u96c6\u5408\u578b\u5225}}","content-manager.components.LeftMenu.single-types":"{number, plural, =0 {\u55ae\u7b46\u578b\u5225} one {\u55ae\u7b46\u578b\u5225} other {\u55ae\u7b46\u578b\u5225}}","content-manager.components.LimitSelect.itemsPerPage":"\u6bcf\u500b\u9801\u9762\u6a94\u6848\u6578\u91cf","content-manager.components.NotAllowedInput.text":"\u6c92\u6709\u6b0a\u9650\u986f\u793a\u9019\u500b\u6b04\u4f4d","content-manager.components.RepeatableComponent.error-message":"\u9019\u500b\u7d44\u4ef6\u5305\u542b\u932f\u8aa4","content-manager.components.Search.placeholder":"\u641c\u5c0b...","content-manager.components.Select.draft-info-title":"\u72c0\u614b: \u8349\u7a3f","content-manager.components.Select.publish-info-title":"\u72c0\u614b: \u5df2\u767c\u5e03","content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings":"\u5ba2\u88fd\u5316\u7de8\u8f2f\u756b\u9762","content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings":"\u6e05\u55ae\u6aa2\u8996\u7684\u8a2d\u5b9a","content-manager.components.SettingsViewWrapper.pluginHeader.title":"\u6aa2\u8996\u8a2d\u5b9a - {name}","content-manager.components.TableDelete.delete":"\u522a\u9664","content-manager.components.TableDelete.deleteSelected":"\u5220\u9664\u6240\u9009","content-manager.components.TableDelete.label":"\u5df2\u9078\u64c7 {number, plural, one {# \u9805\u76ee} other {# \u9805\u76ee}}","content-manager.components.TableEmpty.withFilters":"\u4f9d\u7167\u5957\u7528\u7684\u7be9\u9078\u5668\u627e\u4e0d\u5230 {contentType}...","content-manager.components.TableEmpty.withSearch":"\u4f9d\u7167\u641c\u5c0b\u689d\u4ef6\uff1a ({search}) \u627e\u4e0d\u5230 {contentType}...","content-manager.components.TableEmpty.withoutFilter":"\u627e\u4e0d\u5230 {contentType}...","content-manager.components.empty-repeatable":"\u9084\u6c92\u6709\u9805\u76ee\uff0c\u9ede\u64ca\u4e0b\u5217\u7684\u6309\u9215\u589e\u52a0\u4e00\u500b\u3002","content-manager.components.notification.info.maximum-requirement":"\u4f60\u5df2\u7d93\u5230\u9054\u6b04\u4f4d\u6578\u7684\u4e0a\u9650","content-manager.components.notification.info.minimum-requirement":"\u589e\u52a0\u4e00\u500b\u6b04\u4f4d\u4ee5\u6eff\u8db3\u6b04\u4f4d\u6578\u4e0b\u9650","content-manager.components.repeatable.reorder.error":"\u91cd\u65b0\u6392\u5e8f\u7d44\u4ef6\u6b04\u4f4d\u6642\u767c\u751f\u932f\u8aa4\uff0c\u8acb\u518d\u8a66\u4e00\u6b21\u3002","content-manager.components.reset-entry":"\u91cd\u8a2d\u9805\u76ee","content-manager.components.uid.apply":"\u5957\u7528","content-manager.components.uid.available":"\u53ef\u7528","content-manager.components.uid.regenerate":"\u91cd\u65b0\u7522\u751f","content-manager.components.uid.suggested":"\u63a8\u85a6\u7684","content-manager.components.uid.unavailable":"\u4e0d\u53ef\u7528","content-manager.containers.Edit.Link.Layout":"\u8a2d\u5b9a\u6392\u7248","content-manager.containers.Edit.Link.Model":"\u7de8\u8f2f\u96c6\u5408\u578b\u5225","content-manager.containers.Edit.addAnItem":"\u65b0\u589e\u95dc\u806f...","content-manager.containers.Edit.clickToJump":"\u8df3\u5230\u8a72\u7b46\u8cc7\u6599","content-manager.containers.Edit.delete":"\u522a\u9664","content-manager.containers.Edit.delete-entry":"\u522a\u9664\u9019\u500b\u9805\u76ee","content-manager.containers.Edit.editing":"\u7de8\u8f2f\u4e2d...","content-manager.containers.Edit.information":"\u8cc7\u8a0a","content-manager.containers.Edit.information.by":"By","content-manager.containers.Edit.information.draftVersion":"\u8349\u7a3f\u7248\u672c","content-manager.containers.Edit.information.editing":"\u7de8\u8f2f\u4e2d","content-manager.containers.Edit.information.lastUpdate":"\u6700\u5f8c\u66f4\u65b0","content-manager.containers.Edit.information.publishedVersion":"\u5df2\u767c\u5e03\u7248\u672c","content-manager.containers.Edit.pluginHeader.title.new":"\u65b0\u589e\u9805\u76ee","content-manager.containers.Edit.reset":"\u91cd\u8a2d","content-manager.containers.Edit.returnList":"\u56de\u5230\u6e05\u55ae","content-manager.containers.Edit.seeDetails":"\u8a73\u7d30\u8cc7\u6599","content-manager.containers.Edit.submit":"\u5132\u5b58","content-manager.containers.EditSettingsView.modal-form.edit-field":"\u7de8\u8f2f\u6b04\u4f4d","content-manager.containers.EditView.add.new-entry":"\u65b0\u589e\u9805\u76ee","content-manager.containers.EditView.components.missing.plural":"\u6709 {count} \u500b\u907a\u5931\u7684\u7d44\u4ef6","content-manager.containers.EditView.components.missing.singular":"\u6709 {count} \u500b\u907a\u5931\u7684\u7d44\u4ef6","content-manager.containers.EditView.notification.errors":"\u8868\u55ae\u6709\u4e9b\u932f\u8aa4","content-manager.containers.Home.introduction":"\u9019\u500b\u64f4\u5145\u529f\u80fd\u9084\u5728\u958b\u767c\u968e\u6bb5\uff0c\u5982\u679c\u8981\u7de8\u8f2f\u9805\u76ee\uff0c\u8acb\u524d\u5f80\u5de6\u908a\u9078\u55ae\u4e2d\u5c0d\u61c9\u7684\u9023\u7d50","content-manager.containers.Home.pluginHeaderDescription":"\u900f\u904e\u5f37\u5927\u7684\u4ecb\u9762\u4f86\u7ba1\u7406\u60a8\u7684\u9805\u76ee","content-manager.containers.Home.pluginHeaderTitle":"\u5167\u5bb9\u7ba1\u7406\u54e1","content-manager.containers.List.draft":"\u8349\u7a3f","content-manager.containers.List.errorFetchRecords":"\u932f\u8aa4","content-manager.containers.List.published":"\u5df2\u767c\u5e03","content-manager.containers.ListPage.displayedFields":"\u986f\u793a\u6b04\u4f4d","content-manager.containers.ListPage.items":"{number, plural, =0 {\u9805} one {\u9805} other {\u9805}}","content-manager.containers.ListPage.table-headers.published_at":"\u72c0\u614b","content-manager.containers.ListSettingsView.modal-form.edit-label":"\u7de8\u8f2f {fieldName}","content-manager.containers.SettingPage.add.field":"\u63d2\u5165\u5176\u4ed6\u6b04\u4f4d","content-manager.containers.SettingPage.add.relational-field":"\u63d2\u5165\u984d\u5916\u7684\u95dc\u806f\u6b04\u4f4d","content-manager.containers.SettingPage.attributes":"\u5c6c\u6027","content-manager.containers.SettingPage.attributes.description":"\u8abf\u6574\u6b04\u4f4d\u7684\u9806\u5e8f","content-manager.containers.SettingPage.editSettings.description":"\u62d6\u66f3\u6b04\u4f4d\u4ee5\u898f\u5283\u6392\u7248","content-manager.containers.SettingPage.editSettings.entry.title":"\u9805\u76ee\u6a19\u984c","content-manager.containers.SettingPage.editSettings.entry.title.description":"\u8a2d\u5b9a\u9805\u76ee\u7684\u986f\u793a\u6b04\u4f4d","content-manager.containers.SettingPage.editSettings.relation-field.description":"\u8a2d\u5b9a\u5728\u7de8\u8f2f\u6216\u6e05\u55ae\u986f\u793a\u6642\u9019\u500b\u9805\u76ee\u986f\u793a\u7684\u6b04\u4f4d","content-manager.containers.SettingPage.editSettings.title":"\u7de8\u8f2f (\u8a2d\u5b9a)","content-manager.containers.SettingPage.layout":"\u6392\u7248","content-manager.containers.SettingPage.listSettings.description":"\u8abf\u6574\u9019\u500b\u96c6\u5408\u985e\u578b\u7684\u9078\u9805","content-manager.containers.SettingPage.listSettings.title":"\u5217\u8868 (\u8a2d\u5b9a)","content-manager.containers.SettingPage.pluginHeaderDescription":"\u8abf\u6574\u9019\u500b\u96c6\u5408\u985e\u578b\u7684\u7279\u6b8a\u8a2d\u5b9a","content-manager.containers.SettingPage.relations":"\u95dc\u806f\u6b04\u4f4d","content-manager.containers.SettingPage.settings":"\u8a2d\u5b9a","content-manager.containers.SettingPage.view":"\u6aa2\u8996","content-manager.containers.SettingViewModel.pluginHeader.title":"\u5167\u5bb9\u7ba1\u7406 - {name}","content-manager.containers.SettingsPage.Block.contentType.description":"\u8abf\u6574\u6307\u5b9a\u8cc7\u6599\u985e\u578b\u7684\u9078\u9805","content-manager.containers.SettingsPage.Block.contentType.title":"\u96c6\u5408\u985e\u5225","content-manager.containers.SettingsPage.Block.generalSettings.description":"\u70ba\u4f60\u7684\u96c6\u5408\u578b\u5225\u8a2d\u5b9a\u9ed8\u8a8d\u9078\u9805","content-manager.containers.SettingsPage.Block.generalSettings.title":"\u7e3d\u89bd","content-manager.containers.SettingsPage.pluginHeaderDescription":"\u8abf\u6574\u6240\u6709\u96c6\u5408\u578b\u5225\u53ca\u7fa4\u7d44\u7684\u8a2d\u5b9a","content-manager.containers.SettingsView.list.subtitle":"\u8a2d\u5b9a\u4f60\u7684\u8a2d\u5b9a\u4f60\u7684\u96c6\u5408\u578b\u5225\u53ca\u7fa4\u7d44\u7684\u6392\u7248","content-manager.containers.SettingsView.list.title":"\u986f\u793a\u8a2d\u5b9a","content-manager.edit-settings-view.link-to-ctb.components":"\u7de8\u8f2f\u7d44\u4ef6","content-manager.edit-settings-view.link-to-ctb.content-types":"\u7de8\u8f2f\u5167\u5bb9\u578b\u5225","content-manager.emptyAttributes.button":"\u524d\u5f80\u96c6\u5408\u578b\u5225\u5efa\u7acb\u5de5\u5177","content-manager.emptyAttributes.description":"\u65b0\u589e\u4f60\u7684\u7b2c\u4e00\u500b\u96c6\u5408\u578b\u5225","content-manager.emptyAttributes.title":"\u76ee\u524d\u9084\u6c92\u6709\u6b04\u4f4d","content-manager.error.attribute.key.taken":"\u9019\u500b\u503c\u5df2\u5b58\u5728","content-manager.error.attribute.sameKeyAndName":"\u4e0d\u80fd\u7b49\u65bc","content-manager.error.attribute.taken":"\u9019\u500b\u6b04\u4f4d\u540d\u7a31\u5df2\u5b58\u5728","content-manager.error.contentTypeName.taken":"\u9019\u500b\u540d\u7a31\u5df2\u5b58\u5728","content-manager.error.model.fetch":"\u8b80\u53d6\u8cc7\u6599\u7d50\u69cb\u8a2d\u5b9a\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.record.create":"\u589e\u52a0\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.record.delete":"\u522a\u9664\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.record.fetch":"\u8b80\u53d6\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.record.update":"\u66f4\u65b0\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.records.count":"\u8b80\u53d6\u8cc7\u6599\u6578\u91cf\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.records.fetch":"\u8b80\u53d6\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.schema.generation":"\u7522\u751f\u8cc7\u6599\u7d50\u69cb\u6642\u767c\u751f\u932f\u8aa4","content-manager.error.validation.json":"\u4e0d\u7b26\u5408 JSON \u7684\u683c\u5f0f","content-manager.error.validation.max":"\u6578\u503c\u592a\u5927","content-manager.error.validation.maxLength":"\u9577\u5ea6\u904e\u9577","content-manager.error.validation.min":"\u6578\u503c\u592a\u5c0f","content-manager.error.validation.minLength":"\u9577\u5ea6\u4e0d\u5920","content-manager.error.validation.minSupMax":"\u4e0d\u80fd\u63a5\u53d7\u9019\u500b\u503c","content-manager.error.validation.regex":"\u6b64\u503c\u7121\u6cd5\u901a\u904e\u6b63\u898f\u8868\u9054\u5f0f","content-manager.error.validation.required":"\u5fc5\u586b\u6b04\u4f4d","content-manager.form.Input.bulkActions":"\u555f\u7528\u6279\u6b21\u64cd\u4f5c","content-manager.form.Input.defaultSort":"\u9810\u8a2d\u6392\u5e8f\u8a2d\u5b9a","content-manager.form.Input.description":"\u8aaa\u660e","content-manager.form.Input.description.placeholder":"\u63cf\u8ff0\u9019\u500b\u6b04\u4f4d","content-manager.form.Input.editable":"\u53ef\u7de8\u8f2f\u6b04\u4f4d","content-manager.form.Input.filters":"\u555f\u7528\u7be9\u9078\u5668","content-manager.form.Input.label":"\u6a19\u7c64","content-manager.form.Input.label.inputDescription":"\u9019\u500b\u6578\u503c\u6703\u986f\u793a\u5728\u8868\u683c\u7684\u6a19\u984c\u5217\u540d\u7a31","content-manager.form.Input.pageEntries":"\u6bcf\u9801\u9805\u76ee","content-manager.form.Input.pageEntries.inputDescription":"\u6ce8\u610f\uff1a\u60a8\u53ef\u4ee5\u5728\u201c\u96c6\u5408\u578b\u5225\u201d\u8a2d\u5b9a\u756b\u9762\u4e2d\u8986\u84cb\u6b64\u503c\u3002","content-manager.form.Input.placeholder":"\u4f54\u4f4d\u5b57\u4e32","content-manager.form.Input.placeholder.placeholder":"\u5728\u6587\u5b57\u6846\u4e2d\u986f\u793a\u63d0\u793a\u8a0a\u606f","content-manager.form.Input.search":"\u555f\u7528\u641c\u5c0b\u529f\u80fd","content-manager.form.Input.search.field":"\u5141\u8a31\u6b64\u6b04\u4f4d\u88ab\u641c\u5c0b","content-manager.form.Input.sort.field":"\u5141\u8a31\u4ee5\u6b64\u6b04\u4f4d\u6392\u5e8f","content-manager.form.Input.sort.order":"\u9810\u8a2d\u6392\u5e8f\u9806\u5e8f","content-manager.form.Input.wysiwyg":"\u6240\u898b\u5373\u6240\u5f97\u986f\u793a","content-manager.global.displayedFields":"\u5df2\u986f\u793a\u6b04\u4f4d","content-manager.groups":"\u7fa4\u7d44","content-manager.groups.numbered":"\u7fa4\u7d44 ({number})","content-manager.header.name":"\u5167\u5bb9","content-manager.link-to-ctb":"\u7de8\u8f2f\u6a21\u578b","content-manager.models":"\u96c6\u5408\u578b\u5225","content-manager.models.numbered":"\u96c6\u5408\u578b\u5225 ({number})","content-manager.notification.error.displayedFields":"\u60a8\u81f3\u5c11\u9700\u8981\u986f\u793a\u4e00\u500b\u6b04\u4f4d","content-manager.notification.error.relationship.fetch":"\u8b80\u53d6\u95dc\u806f\u8cc7\u6599\u6642\u767c\u751f\u932f\u8aa4","content-manager.notification.info.SettingPage.disableSort":"\u60a8\u81f3\u5c11\u9700\u8981\u5141\u8a31\u4e00\u500b\u7528\u4f86\u6392\u5e8f\u7684\u6b04\u4f4d","content-manager.notification.info.minimumFields":"\u60a8\u81f3\u5c11\u9700\u8981\u4e00\u500b\u7528\u4f86\u986f\u793a\u7684\u6b04\u4f4d","content-manager.notification.upload.error":"\u4e0a\u50b3\u6587\u4ef6\u7684\u6642\u5019\u767c\u751f\u932f\u8aa4","content-manager.pageNotFound":"\u7121\u6cd5\u627e\u5230\u6b64\u9801\u9762","content-manager.pages.ListView.header-subtitle":"\u627e\u5230 {number, plural, =0 {# \u9805\u76ee} one {# \u9805\u76ee} other {# \u9805\u76ee}}","content-manager.pages.NoContentType.button":"\u65b0\u589e\u4f60\u7b2c\u4e00\u500b\u5167\u5bb9\u578b\u5225","content-manager.pages.NoContentType.text":"\u9019\u88e1\u9084\u6c92\u6709\u4efb\u4f55\u5167\u5bb9\uff0c\u5efa\u8b70\u4f60\u5f9e\u5efa\u7acb\u7b2c\u4e00\u500b\u5167\u5bb9\u578b\u5225\u958b\u59cb\u3002","content-manager.permissions.not-allowed.create":"\u4f60\u4e0d\u88ab\u5141\u8a31\u65b0\u589e\u6587\u4ef6","content-manager.permissions.not-allowed.update":"\u4f60\u4e0d\u88ab\u5141\u8a31\u67e5\u770b\u6587\u4ef6","content-manager.plugin.description.long":"\u5feb\u901f\u700f\u89bd\u3001\u7de8\u8f2f\u3001\u522a\u9664\u8cc7\u6599\u5eab\u7684\u8cc7\u6599","content-manager.plugin.description.short":"\u5feb\u901f\u700f\u89bd\u3001\u7de8\u8f2f\u3001\u522a\u9664\u8cc7\u6599\u5eab\u7684\u8cc7\u6599","content-manager.plugin.name":"\u5167\u5bb9\u7ba1\u7406","content-manager.popUpWarning.bodyMessage.contentType.delete":"\u60a8\u78ba\u5b9a\u8981\u522a\u9664\u9019\u7b46\u8cc7\u6599\u55ce\uff1f","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"\u60a8\u78ba\u5b9a\u8981\u522a\u9664\u9019\u4e9b\u8cc7\u6599\u55ce\uff1f","content-manager.popUpWarning.warning.cancelAllSettings":"\u60a8\u78ba\u5b9a\u8981\u653e\u68c4\u8b8a\u66f4\uff1f","content-manager.popUpWarning.warning.publish-question":"\u4f60\u4f9d\u7136\u8981\u767c\u5e03\u5b83\u55ce?","content-manager.popUpWarning.warning.unpublish":"\u53d6\u6d88\u767c\u5e03\u9019\u500b\u5167\u5bb9<br></br>\u5c07\u6703\u81ea\u52d5\u8b8a\u6210\u8349\u7a3f\u3002","content-manager.popUpWarning.warning.unpublish-question":"\u4f60\u78ba\u5b9a\u8981\u53d6\u6d88\u767c\u5e03\u5b83\u55ce","content-manager.popUpWarning.warning.updateAllSettings":"\u9019\u6703\u66f4\u52d5\u60a8\u7684\u8a2d\u5b9a","content-manager.popUpwarning.warning.has-draft-relations.button-confirm":"\u662f, \u767c\u5e03","content-manager.popUpwarning.warning.has-draft-relations.message":"<b>{count, plural, =0 { \u500b\u5167\u5bb9\u95dc\u806f} one { \u500b\u5167\u5bb9\u95dc\u806f} other { \u500b\u5167\u5bb9\u95dc\u806f}}</b> \u9084\u6c92\u6709\u767c\u4f48\u3002<br></br>\u5b83\u53ef\u80fd\u6703\u5728\u60a8\u7684\u9805\u76ee\u4e2d\u7522\u751f\u95dc\u806f\u5931\u6548\u548c\u932f\u8aa4\u3002","content-manager.popover.display-relations.label":"\u986f\u793a\u95dc\u806f","content-manager.success.record.delete":"\u5df2\u522a\u9664","content-manager.success.record.publish":"\u5df2\u767c\u5e03","content-manager.success.record.save":"\u5df2\u5132\u5b58","content-manager.success.record.unpublish":"\u53d6\u6d88\u767c\u4f48","content-manager.utils.data-loaded":"\u9019\u500b{number, plural, =1 {\u9805\u76ee} other {\u9805\u76ee}}\u8f09\u5165\u6210\u529f","form.button.continue":"\u7e7c\u7e8c","form.button.done":"\u5b8c\u6210","form.button.finish":"\u5b8c\u6210","form.button.save":"\u5132\u5b58","global.prompt.unsaved":"\u60a8\u78ba\u5b9a\u8981\u96e2\u958b\u7db2\u9801\u55ce\uff1f\u60a8\u7684\u6240\u6709\u672a\u5b58\u64cb\u7684\u7de8\u8f2f\u90fd\u6703\u6d88\u5931","notification.contentType.relations.conflict":"\u5167\u5bb9\u578b\u5225\u6709\u95dc\u806f\u885d\u7a81","notification.default.title":"\u8a0a\u606f:","notification.error":"\u767c\u751f\u932f\u8aa4","notification.error.layout":"\u7121\u6cd5\u53d6\u5f97\u4f48\u5c40","notification.form.error.fields":"\u8868\u55ae\u5305\u542b\u4e00\u4e9b\u932f\u8aa4","notification.form.success.fields":"\u4fee\u6539\u5df2\u5132\u5b58","notification.link-copied":"\u9023\u7d50\u5df2\u5fa9\u88fd\u5230\u526a\u8cbc\u677f","notification.permission.not-allowed-read":"\u60a8\u4e0d\u88ab\u5141\u8a31\u770b\u9019\u500b\u6587\u4ef6","notification.success.delete":"\u8a72\u9805\u5df2\u88ab\u522a\u9664","notification.success.saved":"\u5df2\u5132\u5b58","notification.success.title":"\u6210\u529f:","notification.version.update.link":"\u770b\u66f4\u591a","notification.version.update.message":"\u6709\u65b0\u7248\u672c\u7684 Strapi \u53ef\u7528!","notification.warning.title":"\u8b66\u544a:","or":"\u6216","request.error.model.unknown":"\u4e0d\u5b58\u5728\u7684\u8cc7\u6599","skipToContent":"\u8df3\u904e\u5230\u5167\u5bb9","submit":"\u9001\u51fa"}')}}]);
@@ -164,7 +164,7 @@ const CreatePage = () => {
164
164
  <Link startIcon={<ArrowLeft />} to="/settings/roles">
165
165
  {formatMessage({
166
166
  id: 'app.components.go-back',
167
- defaultMessage: 'Go back',
167
+ defaultMessage: 'Back',
168
168
  })}
169
169
  </Link>
170
170
  }
@@ -15,7 +15,7 @@ const MagicLink = ({ registrationToken }) => {
15
15
  >
16
16
  {formatMessage({
17
17
  id: 'app.components.Users.MagicLink.connect',
18
- defaultMessage: 'Send this link to the user for them to connect.',
18
+ defaultMessage: 'Copy and share this link to give access to this user',
19
19
  })}
20
20
  </MagicLinkWrapper>
21
21
  );
package/index.html CHANGED
@@ -10,7 +10,7 @@
10
10
  </head>
11
11
  <body>
12
12
  <!-- The app hooks into this div -->
13
- <div style="min-height:100%;background-color:#f6f6f9;" id="app"></div>
13
+ <div style="min-height:100%" id="app"></div>
14
14
  <!-- A lot of magic happens in this file. HtmlWebpackPlugin automatically includes all assets (e.g. bundle.js, main.css) with the correct HTML tags, which is why they are missing in this HTML file. Don't add any assets here! (Check out webpackconfig.js if you want to know more) -->
15
15
  </body>
16
16
  </html>
package/index.js CHANGED
@@ -11,6 +11,15 @@ const getWebpackConfig = require('./webpack.config');
11
11
 
12
12
  const getPkgPath = name => path.dirname(require.resolve(`${name}/package.json`));
13
13
 
14
+ const DEFAULT_PLUGINS = [
15
+ 'content-type-builder',
16
+ 'content-manager',
17
+ 'upload',
18
+ 'email',
19
+ 'i18n',
20
+ 'users-permissions',
21
+ ];
22
+
14
23
  function getCustomWebpackConfig(dir, config) {
15
24
  const adminConfigPath = path.join(dir, 'src', 'admin', 'webpack.config.js');
16
25
 
@@ -34,7 +43,13 @@ function getCustomWebpackConfig(dir, config) {
34
43
  return webpackConfig;
35
44
  }
36
45
 
37
- async function build({ plugins, dir, env, options, optimize }) {
46
+ async function build({ plugins, dir, env, options, optimize, forceBuild }) {
47
+ const buildAdmin = await shouldBuildAdmin({ dir, plugins });
48
+
49
+ if (!buildAdmin && !forceBuild) {
50
+ return;
51
+ }
52
+
38
53
  // Create the cache dir containing the front-end files.
39
54
  await createCacheDir({ dir, plugins });
40
55
 
@@ -304,6 +319,30 @@ async function watchFiles(dir) {
304
319
  });
305
320
  }
306
321
 
322
+ const hasCustomAdminCode = async dir => {
323
+ const customAdminPath = path.join(dir, 'src', 'admin');
324
+ const customAdminConfigFile = path.join(customAdminPath, 'app.js');
325
+ const customAdminWebpackFile = path.join(customAdminPath, 'webpack.config.js');
326
+
327
+ const hasCustomConfigFile = await fs.pathExists(customAdminConfigFile);
328
+ const hasCustomWebpackFile = await fs.pathExists(customAdminWebpackFile);
329
+
330
+ return hasCustomConfigFile || hasCustomWebpackFile;
331
+ };
332
+
333
+ const hasNonDefaultPlugins = plugins => {
334
+ const diff = _.difference(Object.keys(plugins), DEFAULT_PLUGINS);
335
+
336
+ return diff.length > 0;
337
+ };
338
+
339
+ async function shouldBuildAdmin({ dir, plugins }) {
340
+ const appHasCustomAdminCode = await hasCustomAdminCode(dir);
341
+ const appHasNonDefaultPlugins = hasNonDefaultPlugins(plugins);
342
+
343
+ return appHasCustomAdminCode || appHasNonDefaultPlugins;
344
+ }
345
+
307
346
  module.exports = {
308
347
  clean,
309
348
  build,
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ const baseConfig = require('../../../jest.base-config.front');
4
+ const pkg = require('./package');
5
+
6
+ module.exports = {
7
+ ...baseConfig,
8
+ displayName: (pkg.strapi && pkg.strapi.name) || pkg.name,
9
+ roots: [__dirname],
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "4.0.0",
3
+ "version": "4.0.4",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,19 +26,25 @@
26
26
  "create:plugin-file": "node ./scripts/create-dev-plugins-file.js",
27
27
  "develop": "yarn create:plugin-file && yarn develop:webpack",
28
28
  "develop:webpack": "cross-env NODE_ENV=development webpack serve --config webpack.config.dev.js --progress profile",
29
- "prepublishOnly": "rimraf build && node ./scripts/build.js",
30
- "test": "echo \"no tests yet\""
29
+ "prepublishOnly": "yarn build",
30
+ "build": "rimraf build && node ./scripts/build.js",
31
+ "test": "echo \"no tests yet\"",
32
+ "test:unit": "jest --verbose",
33
+ "test:front": "cross-env IS_EE=true jest --config ./jest.config.front.js",
34
+ "test:front:watch": "cross-env IS_EE=true jest --config ./jest.config.front.js --watchAll",
35
+ "test:front:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js",
36
+ "test:front:watch:ce": "cross-env IS_EE=false jest --config ./jest.config.front.js --watchAll"
31
37
  },
32
38
  "dependencies": {
33
- "@babel/core": "7.14.0",
34
- "@babel/plugin-proposal-async-generator-functions": "7.13.15",
35
- "@babel/plugin-proposal-class-properties": "7.13.0",
39
+ "@babel/core": "7.16.7",
40
+ "@babel/plugin-proposal-async-generator-functions": "7.16.7",
41
+ "@babel/plugin-proposal-class-properties": "7.16.7",
36
42
  "@babel/plugin-syntax-dynamic-import": "7.8.3",
37
- "@babel/plugin-transform-modules-commonjs": "7.14.0",
38
- "@babel/plugin-transform-runtime": "7.13.15",
39
- "@babel/preset-env": "7.14.0",
40
- "@babel/preset-react": "7.13.13",
41
- "@babel/runtime": "7.14.0",
43
+ "@babel/plugin-transform-modules-commonjs": "7.16.7",
44
+ "@babel/plugin-transform-runtime": "7.16.7",
45
+ "@babel/preset-env": "7.16.7",
46
+ "@babel/preset-react": "7.16.7",
47
+ "@babel/runtime": "7.16.7",
42
48
  "@casl/ability": "^4.1.5",
43
49
  "@fingerprintjs/fingerprintjs": "3.1.1",
44
50
  "@fortawesome/fontawesome-free": "^5.15.3",
@@ -46,42 +52,40 @@
46
52
  "@fortawesome/free-brands-svg-icons": "^5.15.3",
47
53
  "@fortawesome/free-solid-svg-icons": "^5.15.3",
48
54
  "@fortawesome/react-fontawesome": "^0.1.14",
49
- "@strapi/babel-plugin-switch-ee-ce": "4.0.0",
50
- "@strapi/design-system": "0.0.1-alpha.70",
51
- "@strapi/helper-plugin": "4.0.0",
52
- "@strapi/icons": "0.0.1-alpha.70",
53
- "@strapi/utils": "4.0.0",
55
+ "@strapi/babel-plugin-switch-ee-ce": "4.0.4",
56
+ "@strapi/design-system": "0.0.1-alpha.71",
57
+ "@strapi/helper-plugin": "4.0.4",
58
+ "@strapi/icons": "0.0.1-alpha.71",
59
+ "@strapi/utils": "4.0.4",
54
60
  "axios": "0.24.0",
55
- "babel-loader": "8.2.2",
56
- "babel-plugin-styled-components": "1.12.0",
61
+ "babel-loader": "8.2.3",
62
+ "babel-plugin-styled-components": "2.0.2",
57
63
  "bcryptjs": "2.4.3",
58
64
  "chalk": "^4.1.1",
59
65
  "chokidar": "^3.5.1",
60
- "classnames": "^2.3.1",
61
66
  "codemirror": "^5.61.0",
62
67
  "cross-env": "^7.0.3",
63
- "css-loader": "5.2.4",
68
+ "css-loader": "6.5.1",
64
69
  "date-fns": "2.22.1",
65
70
  "dotenv": "8.5.1",
66
71
  "execa": "^1.0.0",
67
72
  "fast-deep-equal": "3.1.3",
68
- "file-loader": "6.2.0",
69
73
  "font-awesome": "^4.7.0",
70
74
  "formik": "^2.2.6",
71
75
  "fs-extra": "^9.1.0",
72
76
  "highlight.js": "^10.4.1",
73
77
  "history": "^4.9.0",
74
78
  "hoist-non-react-statics": "^3.3.0",
75
- "html-loader": "2.1.2",
76
- "html-webpack-plugin": "5.3.1",
79
+ "html-loader": "3.0.1",
80
+ "html-webpack-plugin": "5.5.0",
77
81
  "immer": "9.0.6",
78
- "immutable": "^3.8.2",
79
82
  "invariant": "^2.2.4",
80
83
  "is-wsl": "2.2.0",
81
84
  "js-cookie": "2.2.1",
82
85
  "jsonwebtoken": "8.5.1",
83
86
  "koa-compose": "4.1.0",
84
87
  "koa-passport": "4.1.4",
88
+ "koa-static": "5.0.0",
85
89
  "lodash": "4.17.21",
86
90
  "markdown-it": "^12.0.6",
87
91
  "markdown-it-abbr": "^1.0.4",
@@ -96,7 +100,7 @@
96
100
  "match-sorter": "^4.0.2",
97
101
  "mini-css-extract-plugin": "2.4.4",
98
102
  "moment": "^2.29.1",
99
- "node-polyfill-webpack-plugin": "1.1.0",
103
+ "node-polyfill-webpack-plugin": "1.1.4",
100
104
  "p-map": "4.0.0",
101
105
  "passport-local": "1.0.0",
102
106
  "prop-types": "^15.7.2",
@@ -110,31 +114,25 @@
110
114
  "react-fast-compare": "^3.2.0",
111
115
  "react-helmet": "^6.1.0",
112
116
  "react-intl": "5.20.2",
113
- "react-loadable": "^5.5.0",
114
117
  "react-query": "3.24.3",
115
118
  "react-redux": "7.2.3",
116
119
  "react-router": "5.2.0",
117
120
  "react-router-dom": "5.2.0",
118
121
  "react-select": "^4.0.2",
119
- "react-tooltip": "4.2.18",
120
- "react-transition-group": "4.4.1",
121
122
  "react-virtualized": "^9.22.3",
122
123
  "redux": "^4.0.1",
123
- "redux-immutable": "^4.0.0",
124
124
  "redux-saga": "^0.16.0",
125
125
  "reselect": "^4.0.0",
126
126
  "rimraf": "3.0.2",
127
127
  "sanitize-html": "2.4.0",
128
- "sanitize.css": "^4.1.0",
129
128
  "semver": "7.3.5",
130
129
  "sift": "13.5.0",
131
- "style-loader": "2.0.0",
130
+ "style-loader": "3.3.1",
132
131
  "styled-components": "^5.2.3",
133
- "terser-webpack-plugin": "4.2.3",
134
- "url-loader": "4.1.1",
135
- "webpack": "5.36.2",
136
- "webpack-cli": "4.6.0",
137
- "webpack-dev-server": "4.4.0",
132
+ "terser-webpack-plugin": "5.3.0",
133
+ "webpack": "5.65.0",
134
+ "webpack-cli": "4.9.1",
135
+ "webpack-dev-server": "4.7.2",
138
136
  "webpackbar": "5.0.0-3",
139
137
  "yup": "^0.32.9"
140
138
  },
@@ -143,8 +141,8 @@
143
141
  "webpack-bundle-analyzer": "4.4.1"
144
142
  },
145
143
  "engines": {
146
- "node": ">=12.x.x <=16.x.x",
144
+ "node": ">=12.22.0 <=16.x.x",
147
145
  "npm": ">=6.0.0"
148
146
  },
149
- "gitHead": "b181702f0202b2c6d645d42b195a831f25cd0b03"
147
+ "gitHead": "d81919ac2272948b3f5d3b25a4cf8cc7b6994460"
150
148
  }
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ const registerAdminPanelRoute = require('./routes/serve-admin-panel');
3
4
  const adminAuthStrategy = require('./strategies/admin');
4
5
  const apiTokenAuthStrategy = require('./strategies/api-token');
5
6
 
@@ -9,4 +10,8 @@ module.exports = ({ strapi }) => {
9
10
  strapi.server.api('admin').use(passportMiddleware);
10
11
  strapi.container.get('auth').register('admin', adminAuthStrategy);
11
12
  strapi.container.get('auth').register('content-api', apiTokenAuthStrategy);
13
+
14
+ if (strapi.config.serveAdminPanel) {
15
+ registerAdminPanelRoute({ strapi });
16
+ }
12
17
  };
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ const path = require('path');
4
+ const fse = require('fs-extra');
5
+ const koaStatic = require('koa-static');
6
+
7
+ const registerAdminPanelRoute = ({ strapi }) => {
8
+ let buildDir = path.resolve(strapi.dirs.root, 'build');
9
+
10
+ if (!fse.pathExistsSync(buildDir)) {
11
+ buildDir = path.resolve(__dirname, '../../build');
12
+ }
13
+
14
+ const serveAdminMiddleware = async (ctx, next) => {
15
+ await next();
16
+
17
+ if (ctx.method !== 'HEAD' && ctx.method !== 'GET') {
18
+ return;
19
+ }
20
+
21
+ if (ctx.body != null || ctx.status !== 404) {
22
+ return;
23
+ }
24
+
25
+ ctx.type = 'html';
26
+ ctx.body = fse.createReadStream(path.join(buildDir + '/index.html'));
27
+ };
28
+
29
+ strapi.server.routes([
30
+ {
31
+ method: 'GET',
32
+ path: `${strapi.config.admin.path}/:path*`,
33
+ handler: [
34
+ serveAdminMiddleware,
35
+ serveStatic(buildDir, { maxage: 60000, defer: false, index: 'index.html' }),
36
+ ],
37
+ config: { auth: false },
38
+ },
39
+ ]);
40
+ };
41
+
42
+ // serveStatic is not supposed to be used to serve a folder that have sub-folders
43
+ const serveStatic = (filesDir, koaStaticOptions = {}) => {
44
+ const serve = koaStatic(filesDir, koaStaticOptions);
45
+
46
+ return async (ctx, next) => {
47
+ const prev = ctx.path;
48
+ const newPath = path.basename(ctx.path);
49
+ ctx.path = newPath;
50
+ await serve(ctx, async () => {
51
+ ctx.path = prev;
52
+ await next();
53
+ ctx.path = newPath;
54
+ });
55
+ ctx.path = prev;
56
+ };
57
+ };
58
+
59
+ module.exports = registerAdminPanelRoute;
@@ -60,7 +60,8 @@ const verify = (auth, config) => {
60
60
  * scopes. If the route has no scope, then you can't get access to it.
61
61
  */
62
62
 
63
- if (config.scope && config.scope.every(isReadScope)) {
63
+ const scopes = Array.isArray(config.scope) ? config.scope : [config.scope];
64
+ if (config.scope && scopes.every(isReadScope)) {
64
65
  return;
65
66
  }
66
67
 
package/webpack.alias.js CHANGED
@@ -7,11 +7,9 @@ const alias = [
7
7
  'whatwg-fetch',
8
8
  '@fortawesome/fontawesome-svg-core',
9
9
  '@fortawesome/free-solid-svg-icons',
10
- 'classnames',
11
10
  'history',
12
11
  'hoist-non-react-statics',
13
12
  'immer',
14
- 'immutable',
15
13
  'invariant',
16
14
  'lodash',
17
15
  'moment',
@@ -26,16 +24,12 @@ const alias = [
26
24
  'react-helmet',
27
25
  'react-is',
28
26
  'react-intl',
29
- 'react-loadable',
30
27
  'react-redux',
31
28
  'react-router',
32
29
  'react-router-dom',
33
- 'react-transition-group',
34
- 'react-tooltip',
35
30
  'react-virtualized',
36
31
  'react-select',
37
32
  'redux',
38
- 'redux-immutable',
39
33
  'reselect',
40
34
  'styled-components',
41
35
  'yup',
package/webpack.config.js CHANGED
@@ -88,9 +88,6 @@ module.exports = ({
88
88
  },
89
89
  },
90
90
  parallel: !isWsl,
91
- // Enable file caching
92
- cache: true,
93
- sourceMap: false,
94
91
  }),
95
92
  ],
96
93
  runtimeChunk: true,
@@ -144,13 +141,15 @@ module.exports = ({
144
141
  },
145
142
  {
146
143
  test: /\.(svg|eot|otf|ttf|woff|woff2)$/,
147
- use: 'file-loader',
144
+ type: 'asset/resource',
148
145
  },
149
146
  {
150
147
  test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.ico$/],
151
- loader: require.resolve('url-loader'),
152
- options: {
153
- limit: 1000,
148
+ type: 'asset',
149
+ parser: {
150
+ dataUrlCondition: {
151
+ maxSize: 1000,
152
+ },
154
153
  },
155
154
  },
156
155
  {
@@ -160,9 +159,11 @@ module.exports = ({
160
159
  },
161
160
  {
162
161
  test: /\.(mp4|webm)$/,
163
- loader: require.resolve('url-loader'),
164
- options: {
165
- limit: 10000,
162
+ type: 'asset',
163
+ parser: {
164
+ dataUrlCondition: {
165
+ maxSize: 10000,
166
+ },
166
167
  },
167
168
  },
168
169
  ],
@@ -172,6 +173,7 @@ module.exports = ({
172
173
  symlinks: false,
173
174
  extensions: ['.js', '.jsx', '.react.js'],
174
175
  mainFields: ['browser', 'jsnext:main', 'main'],
176
+ modules: ['node_modules', path.resolve(__dirname, 'node_modules')],
175
177
  },
176
178
  plugins: [
177
179
  new HtmlWebpackPlugin({