@strapi/admin 4.10.0-beta.0 → 4.10.0-beta.1

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 (193) hide show
  1. package/.eslintignore +4 -0
  2. package/.eslintrc.js +14 -0
  3. package/admin/src/components/LanguageProvider/index.js +1 -1
  4. package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
  5. package/admin/src/components/LocalesProvider/index.js +2 -3
  6. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +3 -6
  7. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +2 -0
  8. package/admin/src/content-manager/components/DynamicTable/index.js +11 -29
  9. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +12 -6
  10. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
  11. package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
  12. package/admin/src/content-manager/components/InputUID/index.js +95 -72
  13. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +4 -8
  14. package/admin/src/content-manager/pages/App/LeftMenu/index.js +56 -35
  15. package/admin/src/content-manager/pages/App/actions.js +19 -7
  16. package/admin/src/content-manager/pages/App/constants.js +3 -3
  17. package/admin/src/content-manager/pages/App/index.js +5 -4
  18. package/admin/src/content-manager/pages/App/reducer.js +7 -6
  19. package/admin/src/content-manager/pages/App/selectors.js +3 -0
  20. package/admin/src/content-manager/pages/App/{useModels.js → useContentManagerInitData.js} +29 -28
  21. package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
  22. package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +17 -15
  23. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +4 -5
  24. package/admin/src/content-manager/pages/EditSettingsView/index.js +4 -0
  25. package/admin/src/content-manager/pages/EditSettingsView/reducer.js +6 -7
  26. package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +1 -30
  27. package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +5 -11
  28. package/admin/src/content-manager/pages/EditView/index.js +2 -7
  29. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -0
  30. package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +6 -0
  31. package/admin/src/content-manager/sharedReducers/crudReducer/constants.js +1 -0
  32. package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +5 -0
  33. package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
  34. package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +7 -8
  35. package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +5 -0
  36. package/admin/src/hooks/useRegenerate/index.js +12 -7
  37. package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
  38. package/admin/src/pages/HomePage/SocialLinks.js +1 -1
  39. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +3 -3
  40. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -9
  41. package/admin/src/pages/MarketplacePage/components/NpmPackagesPagination/index.js +26 -0
  42. package/admin/src/pages/MarketplacePage/components/OfflineLayout/index.js +45 -0
  43. package/admin/src/pages/MarketplacePage/index.js +80 -175
  44. package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +85 -0
  45. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  46. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  47. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +7 -5
  48. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +12 -4
  49. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +21 -2
  50. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +41 -0
  51. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +53 -9
  52. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -0
  53. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  54. package/admin/src/translations/en.json +51 -49
  55. package/admin/src/translations/ru.json +51 -19
  56. package/build/1387.84b454d3.chunk.js +1 -0
  57. package/build/1657.45231968.chunk.js +168 -0
  58. package/build/3081.bcf9a12f.chunk.js +108 -0
  59. package/build/462.8fff7f3b.chunk.js +71 -0
  60. package/build/4628.20631dd1.chunk.js +1 -0
  61. package/build/5542.b8240e3f.chunk.js +70 -0
  62. package/build/5563.905daa13.chunk.js +79 -0
  63. package/build/6404.68405699.chunk.js +100 -0
  64. package/build/7259.b7d00cea.chunk.js +1 -0
  65. package/build/8694.6522968d.chunk.js +247 -0
  66. package/build/Admin-authenticatedApp.52c88751.chunk.js +79 -0
  67. package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
  68. package/build/Admin_homePage.f9309c6d.chunk.js +73 -0
  69. package/build/Admin_marketplace.56bc1008.chunk.js +31 -0
  70. package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
  71. package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
  72. package/build/Admin_settingsPage.257b3477.chunk.js +79 -0
  73. package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
  74. package/build/admin-app.dfaeea5d.chunk.js +110 -0
  75. package/build/admin-edit-roles-page.4f1858e9.chunk.js +280 -0
  76. package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
  77. package/build/admin-roles-list.329c1f63.chunk.js +31 -0
  78. package/build/admin-users.d02de059.chunk.js +34 -0
  79. package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
  80. package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
  81. package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
  82. package/build/audit-logs-settings-page.19d90bda.chunk.js +76 -0
  83. package/build/content-manager.def692c2.chunk.js +1130 -0
  84. package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
  85. package/build/content-type-builder-translation-en-json.510e88ca.chunk.js +1 -0
  86. package/build/content-type-builder.5e1f4afc.chunk.js +126 -0
  87. package/build/email-settings-page.1095e1ab.chunk.js +10 -0
  88. package/build/en-json.08303b37.chunk.js +1 -0
  89. package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
  90. package/build/i18n-settings-page.7d80aae0.chunk.js +60 -0
  91. package/build/index.html +1 -1
  92. package/build/main.120be100.js +2280 -0
  93. package/build/review-workflows-settings.9092ed72.chunk.js +106 -0
  94. package/build/ru-json.e0662702.chunk.js +1 -0
  95. package/build/{runtime~main.5a95bee6.js → runtime~main.112b3101.js} +2 -2
  96. package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
  97. package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
  98. package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
  99. package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
  100. package/build/upload-settings.945fdcfa.chunk.js +13 -0
  101. package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
  102. package/build/upload.a86b1054.chunk.js +33 -0
  103. package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
  104. package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
  105. package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
  106. package/build/users-roles-settings-page.2f85dcec.chunk.js +30 -0
  107. package/build/webhook-edit-page.213f0075.chunk.js +75 -0
  108. package/build/webhook-list-page.5beb2a5c.chunk.js +71 -0
  109. package/{admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStage.js → ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js} +2 -2
  110. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +45 -0
  111. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +3 -0
  112. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +61 -18
  113. package/ee/admin/hooks/useLicenseLimitNotification/index.js +1 -1
  114. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +6 -3
  115. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +15 -5
  116. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +52 -45
  117. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +8 -4
  118. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +2 -2
  119. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +2 -2
  120. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +2 -1
  121. package/ee/server/content-types/workflow/index.js +0 -3
  122. package/ee/server/content-types/workflow-stage/index.js +0 -5
  123. package/ee/server/controllers/workflows/stages/index.js +8 -1
  124. package/ee/server/register.js +3 -1
  125. package/ee/server/services/audit-logs.js +75 -16
  126. package/ee/server/services/review-workflows/entity-service-decorator.js +17 -5
  127. package/ee/server/services/review-workflows/review-workflows.js +27 -91
  128. package/ee/server/services/review-workflows/stages.js +108 -7
  129. package/ee/server/utils/persisted-tables.js +114 -22
  130. package/ee/server/utils/review-workflows.js +9 -0
  131. package/jest.config.front.js +1 -6
  132. package/package.json +24 -22
  133. package/server/controllers/transfer/runner.js +4 -2
  134. package/server/middlewares/data-transfer.js +4 -1
  135. package/server/routes/transfer.js +13 -4
  136. package/server/services/constants.js +4 -0
  137. package/server/services/transfer/permission.js +1 -1
  138. package/server/services/transfer/token.js +33 -31
  139. package/server/validation/transfer/token.js +10 -2
  140. package/webpack.config.js +6 -2
  141. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +0 -1
  142. package/admin/src/content-manager/pages/App/LeftMenu/utils/index.js +0 -1
  143. package/admin/src/content-manager/pages/App/LeftMenu/utils/matchByTitle.js +0 -24
  144. package/build/2263.4c5916f9.chunk.js +0 -98
  145. package/build/4049.64715f20.chunk.js +0 -1
  146. package/build/4649.213b8a3b.chunk.js +0 -30
  147. package/build/6985.66cca29c.chunk.js +0 -1
  148. package/build/7259.aefb51e8.chunk.js +0 -1
  149. package/build/8469.853c822b.chunk.js +0 -1
  150. package/build/9505.dbe702ab.chunk.js +0 -14
  151. package/build/9816.01ee964f.chunk.js +0 -2
  152. package/build/Admin-authenticatedApp.f50ad423.chunk.js +0 -79
  153. package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
  154. package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
  155. package/build/Admin_marketplace.02608d56.chunk.js +0 -22
  156. package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
  157. package/build/Admin_profilePage.76afeca0.chunk.js +0 -15
  158. package/build/Admin_settingsPage.147755cd.chunk.js +0 -9
  159. package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
  160. package/build/admin-app.55dd7921.chunk.js +0 -112
  161. package/build/admin-edit-roles-page.cf543488.chunk.js +0 -216
  162. package/build/admin-edit-users.31c20712.chunk.js +0 -10
  163. package/build/admin-roles-list.489c501f.chunk.js +0 -2
  164. package/build/admin-users.3e111a7d.chunk.js +0 -11
  165. package/build/api-tokens-create-page.4328b852.chunk.js +0 -1
  166. package/build/api-tokens-edit-page.bce5050f.chunk.js +0 -1
  167. package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
  168. package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
  169. package/build/content-manager.4480ae88.chunk.js +0 -1137
  170. package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
  171. package/build/content-type-builder-translation-en-json.7961593e.chunk.js +0 -1
  172. package/build/content-type-builder.af9abf1e.chunk.js +0 -126
  173. package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
  174. package/build/en-json.697b4bcf.chunk.js +0 -1
  175. package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
  176. package/build/main.af8c0f31.js +0 -3790
  177. package/build/review-workflows-settings.7a7dc773.chunk.js +0 -57
  178. package/build/ru-json.6a01cea6.chunk.js +0 -1
  179. package/build/sso-settings-page.272b87c8.chunk.js +0 -1
  180. package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
  181. package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
  182. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  183. package/build/upload-settings.0875e973.chunk.js +0 -1
  184. package/build/upload.c7da1611.chunk.js +0 -13
  185. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +0 -1
  186. package/build/users-email-settings-page.e8db68c4.chunk.js +0 -1
  187. package/build/users-providers-settings-page.14cac425.chunk.js +0 -1
  188. package/build/users-roles-settings-page.2ea4de84.chunk.js +0 -30
  189. package/build/webhook-edit-page.329141a5.chunk.js +0 -23
  190. package/build/webhook-list-page.029957a4.chunk.js +0 -1
  191. package/ee/server/migrations/review-workflows.js +0 -39
  192. package/ee/server/utils/test.js +0 -11
  193. /package/admin/src/{content-manager/components/InputUID/useDebounce.js → hooks/useDebounce/index.js} +0 -0
@@ -1,126 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[8880],{25747:function(W,z,u){"use strict";var n=u(32735),O=u(83292),B=u(60216),E=u.n(B),b=u(39161),l=u.n(b),x=u(57269),P=u.n(x),K=u(13478),t=u.n(K);const te={biginteger:x.Number,boolean:x.Boolean,collectionType:x.CollectionType,component:x.Component,contentType:x.CollectionType,date:x.Date,datetime:x.Date,decimal:x.Number,dynamiczone:x.DynamicZone,email:x.Email,enum:x.Enumeration,enumeration:x.Enumeration,file:x.Media,files:x.Media,float:x.Number,integer:x.Number,json:x.Json,JSON:x.Json,media:x.Media,number:x.Number,password:x.Password,relation:x.Relation,richtext:x.RichText,singleType:x.SingleType,string:x.Text,text:x.Text,time:x.Date,timestamp:x.Date,uid:x.Uid},h=(0,O.default)(b.Box)`
2
- svg {
3
- height: 100%;
4
- width: 100%;
5
- }
6
- `,Ze=({type:ae,customField:me,...J})=>{const oe=(0,K.useCustomFields)();let ee=te[ae];if(me){const{icon:ie}=oe.get(me);ie&&(ee=ie)}return te[ae]?n.createElement(h,{height:(0,K.pxToRem)(24),width:(0,K.pxToRem)(32),shrink:0,...J,"aria-hidden":!0},n.createElement(b.Box,{as:ee})):null};Ze.defaultProps={customField:null},Ze.propTypes={type:E().string.isRequired,customField:E().string},z.Z=Ze},74753:function(W,z,u){"use strict";var n=u(32735);const O=(0,n.createContext)();z.Z=O},51216:function(W,z,u){"use strict";var n=u(32735);const O=(0,n.createContext)();z.Z=O},198:function(W,z,u){"use strict";var n=u(32735),O=u(74753);const B=()=>(0,n.useContext)(O.Z);z.Z=B},32237:function(W,z,u){"use strict";var n=u(32735),O=u(51216);const B=()=>(0,n.useContext)(O.Z);z.Z=B},33184:function(W,z,u){"use strict";u.r(z),u.d(z,{default:function(){return Sr}});var n=u(32735),O=u(5141),B=u(99357),E=u(5636),b=u(13478),l=u(39161),x=u(3633),P=u(25158),K=u(60216),t=u.n(K),te=u(33795),h=u.n(te),Ze=u(81346),ae=u.n(Ze),me=u(3040),J=u.n(me),oe=u(61868),ee=u.n(oe),ie=u(4409),qe=u(13055),Re=u(74753),le=u(32237),d=u(92318),Le=u(37087),Ye=u(23973),Xe=u.n(Ye),kn=u(59578),ze=u.n(kn),Bn=u(89793),et=u.n(Bn),Oe=u(198),wn=u(23940),Fe=u.n(wn);const $n=[{label:"All",children:[{label:"images (JPEG, PNG, GIF, SVG, TIFF, ICO, DVU)",value:"images"},{label:"videos (MPEG, MP4, Quicktime, WMV, AVI, FLV)",value:"videos"},{label:"audios (MP3, WAV, OGG)",value:"audios"},{label:"files (CSV, ZIP, PDF, Excel, JSON, ...)",value:"files"}]}],tt=({intlLabel:e,name:a,onChange:r,value:o})=>{const{formatMessage:s}=(0,E.useIntl)(),i=o===null||o.length===0?s({id:"global.none",defaultMessage:"None"}):[...o].sort().map(m=>Fe()(m)).join(", "),c=e.id?s({id:e.id,defaultMessage:e.defaultMessage}):a;return n.createElement(l.MultiSelectNested,{id:"select1",label:c,customizeContent:()=>i,onChange:m=>{m.length>0?r({target:{name:a,value:m,type:"allowed-types-select"}}):r({target:{name:a,value:null,type:"allowed-types-select"}})},options:$n,value:o||[]})};tt.defaultProps={value:null},tt.propTypes={intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().oneOfType([t().object,t().array])};var Un=tt,Vt=e=>e.kind==="collectionType"&&(e.restrictRelationsTo===null||Array.isArray(e.restrictRelationsTo)&&e.restrictRelationsTo.length>0),Je=u(25747),Pe=u(83292),Ht=(0,Pe.default)(l.Box)`
7
- width: 100%;
8
- height: 100%;
9
- border: 1px solid ${({theme:e})=>e.colors.neutral200};
10
- text-align: left;
11
- &:hover {
12
- background: ${({theme:e})=>e.colors.primary100};
13
- border: 1px solid ${({theme:e})=>e.colors.primary200};
14
- }
15
- `;const nt=({type:e})=>{const{formatMessage:a}=(0,E.useIntl)(),{onClickSelectField:r}=(0,le.Z)(),o=()=>{r({attributeType:e,step:e==="component"?"1":null})};return n.createElement(Ht,{padding:4,as:"button",hasRadius:!0,type:"button",onClick:o},n.createElement(l.Flex,null,n.createElement(Je.Z,{type:e}),n.createElement(l.Box,{paddingLeft:4},n.createElement(l.Flex,null,n.createElement(l.Typography,{fontWeight:"bold"},a({id:(0,d.Z)(`attribute.${e}`),defaultMessage:e}))),n.createElement(l.Flex,null,n.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},a({id:(0,d.Z)(`attribute.${e}.description`),defaultMessage:"A type for modeling data"}))))))};nt.defaultProps={type:"text"},nt.propTypes={type:t().string};var jn=nt,Kt=e=>{const a=e%2===1;return{paddingLeft:a?2:0,paddingRight:a?0:2}};const Yt=({attributes:e})=>n.createElement(l.KeyboardNavigable,{tagName:"button"},n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:8},e.map((a,r)=>n.createElement(l.Grid,{key:r,gap:0},a.map((o,s)=>{const{paddingLeft:i,paddingRight:c}=Kt(s);return n.createElement(l.GridItem,{key:o,col:6,style:{height:"100%"}},n.createElement(l.Box,{paddingLeft:i,paddingRight:c,paddingBottom:1,style:{height:"100%"}},n.createElement(jn,{type:o})))})))));Yt.propTypes={attributes:t().array.isRequired};var Wn=Yt,zn=u(33348),Gn=u.n(zn),pe=u(57269);const Vn=(0,Pe.default)(l.Box)`
16
- background: ${({theme:e})=>`linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${e.colors.neutral150} 100%)`};
17
- opacity: 0.33;
18
- `,Hn=()=>n.createElement(l.Flex,{wrap:"wrap",gap:4},[...Array(4)].map((e,a)=>n.createElement(Vn,{key:`empty-card-${a}`,height:"138px",width:"375px",hasRadius:!0})));var Kn=()=>{const{formatMessage:e}=(0,E.useIntl)();return n.createElement(l.Box,{position:"relative"},n.createElement(Hn,null),n.createElement(l.Box,{position:"absolute",top:6,width:"100%"},n.createElement(l.Flex,{alignItems:"center",justifyContent:"center",direction:"column"},n.createElement(l.Icon,{as:pe.EmptyStateDocument,color:"",width:"160px",height:"88px"}),n.createElement(l.Box,{paddingTop:6,paddingBottom:4},n.createElement(l.Box,{textAlign:"center"},n.createElement(l.Typography,{variant:"delta",as:"p",textColor:"neutral600"},e({id:(0,d.Z)("modalForm.empty.heading"),defaultMessage:"Nothing in here yet."})),n.createElement(l.Box,{paddingTop:4},n.createElement(l.Typography,{variant:"delta",as:"p",textColor:"neutral600"},e({id:(0,d.Z)("modalForm.empty.sub-heading"),defaultMessage:"Find what you are looking for through a wide range of extensions."}))))),n.createElement(l.LinkButton,{to:`/marketplace?${Gn().stringify({categories:["Custom fields"]})}`,variant:"secondary",startIcon:n.createElement(pe.Plus,null)},e({id:(0,d.Z)("modalForm.empty.button"),defaultMessage:"Add custom fields"})))))};const Xt=({customFieldUid:e,customField:a})=>{const{type:r,intlLabel:o,intlDescription:s}=a,{formatMessage:i}=(0,E.useIntl)(),{onClickSelectCustomField:c}=(0,le.Z)(),m=()=>{c({attributeType:r,customFieldUid:e})};return n.createElement(Ht,{padding:4,as:"button",hasRadius:!0,type:"button",onClick:m},n.createElement(l.Flex,null,n.createElement(Je.Z,{type:r,customField:e}),n.createElement(l.Box,{paddingLeft:4},n.createElement(l.Flex,null,n.createElement(l.Typography,{fontWeight:"bold"},i(o))),n.createElement(l.Flex,null,n.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},i(s))))))};Xt.propTypes={customFieldUid:t().string.isRequired,customField:t().shape({type:t().string.isRequired,icon:t().func,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}).isRequired,intlDescription:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}).isRequired}).isRequired};var Yn=Xt,Xn=()=>{const{formatMessage:e}=(0,E.useIntl)(),a=(0,b.useCustomFields)(),r=Object.entries(a.getAll());if(!r.length)return n.createElement(Kn,null);const o=r.sort((s,i)=>s[1].name>i[1].name?1:-1);return n.createElement(l.KeyboardNavigable,{tagName:"button"},n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:3},n.createElement(l.Grid,{gap:0},o.map(([s,i],c)=>{const{paddingLeft:m,paddingRight:p}=Kt(c);return n.createElement(l.GridItem,{key:s,col:6,style:{height:"100%"}},n.createElement(l.Box,{paddingLeft:m,paddingRight:p,paddingBottom:1,style:{height:"100%"}},n.createElement(Yn,{key:s,customFieldUid:s,customField:i})))})),n.createElement(l.Link,{href:"https://docs.strapi.io/developer-docs/latest/development/custom-fields.html",isExternal:!0},e({id:(0,d.Z)("modalForm.tabs.custom.howToLink"),defaultMessage:"How to add custom fields"}))))};const Jt=({attributes:e,forTarget:a,kind:r})=>{const{formatMessage:o}=(0,E.useIntl)(),s=(0,d.Z)("modalForm.tabs.default"),i=(0,d.Z)("modalForm.tabs.custom"),c=a.includes("component")?"component":r,m=(0,d.Z)(`modalForm.sub-header.chooseAttribute.${c}`);return n.createElement(l.ModalBody,{padding:6},n.createElement(l.TabGroup,{label:o({id:(0,d.Z)("modalForm.tabs.label"),defaultMessage:"Default and Custom types tabs"}),id:"attribute-type-tabs",variant:"simple"},n.createElement(l.Flex,{justifyContent:"space-between"},n.createElement(l.Typography,{variant:"beta",as:"h2"},o({id:m,defaultMessage:"Select a field"})),n.createElement(l.Tabs,null,n.createElement(l.Tab,null,o({id:s,defaultMessage:"Default"})),n.createElement(l.Tab,null,o({id:i,defaultMessage:"Custom"})))),n.createElement(l.Box,{paddingBottom:6},n.createElement(l.Divider,null)),n.createElement(l.TabPanels,null,n.createElement(l.TabPanel,null,n.createElement(Wn,{attributes:e})),n.createElement(l.TabPanel,null,n.createElement(Xn,null)))))};Jt.propTypes={attributes:t().array.isRequired,forTarget:t().string.isRequired,kind:t().string.isRequired};var Jn=Jt;const at=({description:e,disabled:a,intlLabel:r,isCreating:o,name:s,onChange:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),[p,f]=(0,n.useState)(!1),y=r.id?m({id:r.id,defaultMessage:r.defaultMessage},{...r.values}):s,g=e?m({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):"",C=()=>f(L=>!L),M=()=>{i({target:{name:s,value:!1}}),C()},N=({target:{checked:L}})=>{if(!L&&!o){C();return}i({target:{name:s,value:L}})};return n.createElement(n.Fragment,null,n.createElement(l.Checkbox,{checked:c,disabled:a,hint:g,name:s,onChange:N},y),n.createElement(b.ConfirmDialog,{isOpen:p,onToggleDialog:C,onConfirm:M,bodyText:{id:(0,d.Z)("popUpWarning.draft-publish.message"),defaultMessage:"If you disable the draft & publish, your drafts will be deleted."},leftButtonText:{id:"components.popUpWarning.button.cancel",defaultMessage:"No, cancel"},rightButtonText:{id:(0,d.Z)("popUpWarning.draft-publish.button.confirm"),defaultMessage:"Yes, disable"}}))};at.defaultProps={description:null,disabled:!1,value:!1},at.propTypes={description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),disabled:t().bool,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,isCreating:t().bool.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().bool};var Qn=at;const rt=({description:e,disabled:a,intlLabel:r,isCreating:o,name:s,onChange:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),[p,f]=(0,n.useState)(!1),y=r.id?m({id:r.id,defaultMessage:r.defaultMessage},{...r.values}):s,g=e?m({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):"",C=()=>f(L=>!L),M=()=>{i({target:{name:s,value:!1}}),C()},N=({target:{checked:L}})=>{if(!L&&!o){C();return}i({target:{name:s,value:L}})};return n.createElement(n.Fragment,null,n.createElement(l.Checkbox,{checked:c,disabled:a,hint:g,name:s,onChange:N},y),n.createElement(b.ConfirmDialog,{isOpen:p,onToggleDialog:C,onConfirm:M,bodyText:{id:(0,d.Z)("popUpWarning.review-workflows.message"),defaultMessage:"If you disable the review workflows feature, all stage-related information will be removed for this content-type. Are you sure you want to disable it?"},leftButtonText:{id:"components.popUpWarning.button.cancel",defaultMessage:"No, cancel"},rightButtonText:{id:(0,d.Z)("popUpWarning.review-workflows.button.confirm"),defaultMessage:"Yes, disable"}}))};rt.defaultProps={description:null,disabled:!1,value:!1},rt.propTypes={description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),disabled:t().bool,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,isCreating:t().bool.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().bool};var _n=rt;const st=({actionType:e,attributeName:a,attributeType:r,categoryName:o,contentTypeKind:s,dynamicZoneTarget:i,forTarget:c,modalType:m,targetUid:p,customFieldUid:f})=>{const{formatMessage:y}=(0,E.useIntl)(),{modifiedData:g}=(0,Oe.Z)();let C,M=[];const N=g?.[c]?.[p]||g?.[c]||null;let L=N?.schema.displayName;if(m==="contentType"&&(C=s),["component","editCategory"].includes(m)&&(C="component"),["component","contentType"].includes(m)){let R=(0,d.Z)(`modalForm.component.header-${e}`);return m==="contentType"&&(R=(0,d.Z)(`modalForm.${s}.header-create`)),e==="edit"&&(R=(0,d.Z)("modalForm.header-edit")),n.createElement(l.ModalHeader,null,n.createElement(l.Flex,null,n.createElement(l.Box,null,n.createElement(Je.Z,{type:C})),n.createElement(l.Box,{paddingLeft:3},n.createElement(l.Typography,{fontWeight:"bold",textColor:"neutral800",as:"h2",id:"title"},y({id:R},{name:L})))))}M=[{label:L,info:{category:N?.category||null,name:N?.schema.displayName}}],m==="chooseAttribute"&&(C=["component","components"].includes(c)?"component":N.schema.kind),m==="addComponentToDynamicZone"&&(C="dynamiczone",M.push({label:i})),(m==="attribute"||m==="customField")&&(C=r,M.push({label:a})),m==="editCategory"&&(M=[{label:y({id:(0,d.Z)("modalForm.header.categories"),defaultMessage:"Categories"})},{label:o}]);const A=M.map(({label:R})=>R).join(",");return n.createElement(l.ModalHeader,null,n.createElement(l.Flex,{gap:3},n.createElement(Je.Z,{type:C,customField:f}),n.createElement(l.Breadcrumbs,{label:A},M.map((R,S)=>{const V=Fe()(R.label);if(!V)return null;const H=`${R.label}.${S}`;if(R.info?.category){const ue=`${V} (${Fe()(R.info.category)} - ${Fe()(R.info.name)})`;return n.createElement(l.Crumb,{key:H},ue)}return n.createElement(l.Crumb,{key:H},V)}))))};st.defaultProps={actionType:null,attributeName:null,attributeType:null,categoryName:null,dynamicZoneTarget:null,forTarget:null,contentTypeKind:null,targetUid:null,customFieldUid:null},st.propTypes={actionType:t().string,attributeName:t().string,attributeType:t().string,categoryName:t().string,contentTypeKind:t().string,dynamicZoneTarget:t().string,forTarget:t().oneOf(["contentType","component","components"]),modalType:t().string.isRequired,targetUid:t().string,customFieldUid:t().string};var ea=st;const ot=({categoryName:e,deleteCategory:a,deleteComponent:r,deleteContentType:o,isAttributeModal:s,isCustomFieldModal:i,isComponentAttribute:c,isComponentToDzModal:m,isContentTypeModal:p,isCreatingComponent:f,isCreatingComponentAttribute:y,isCreatingComponentInDz:g,isCreatingComponentWhileAddingAField:C,isCreatingContentType:M,isCreatingDz:N,isComponentModal:L,isDzAttribute:U,isEditingAttribute:A,isEditingCategory:R,isInFirstComponentStep:S,onSubmitAddComponentAttribute:V,onSubmitAddComponentToDz:H,onSubmitCreateContentType:ue,onSubmitCreateComponent:D,onSubmitCreateDz:_,onSubmitEditAttribute:ye,onSubmitEditCategory:Ve,onSubmitEditComponent:ge,onSubmitEditContentType:we,onSubmitEditCustomFieldAttribute:Y,onSubmitEditDz:$e,onClickFinish:se})=>{const{formatMessage:G}=(0,E.useIntl)();return m?g?n.createElement(l.Button,{variant:"secondary",type:"submit",onClick:Z=>{Z.preventDefault(),H(Z,!0)},startIcon:n.createElement(pe.Plus,null)},G({id:(0,d.Z)("form.button.add-first-field-to-created-component"),defaultMessage:"Add first field to the component"})):n.createElement(l.Button,{variant:"default",type:"submit",onClick:Z=>{Z.preventDefault(),H(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"})):s&&U&&!N?n.createElement(l.Button,{variant:"default",type:"submit",onClick:Z=>{Z.preventDefault(),se(),$e(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"})):s&&U&&N?n.createElement(n.Fragment,null,n.createElement(l.Button,{variant:"secondary",type:"submit",onClick:Z=>{Z.preventDefault(),_(Z,!0)},startIcon:n.createElement(pe.Plus,null)},G({id:(0,d.Z)("form.button.add-components-to-dynamiczone"),defaultMessage:"Add components to the zone"}))):s&&c?S?n.createElement(l.Button,{variant:"secondary",type:"submit",onClick:Z=>{Z.preventDefault(),V(Z,!0)}},G(y?{id:(0,d.Z)("form.button.configure-component"),defaultMessage:"Configure the component"}:{id:(0,d.Z)("form.button.select-component"),defaultMessage:"Configure the component"})):n.createElement(n.Fragment,null,n.createElement(l.Button,{variant:"secondary",type:"submit",onClick:Z=>{Z.preventDefault(),V(Z,!0)},startIcon:n.createElement(pe.Plus,null)},G(C?{id:(0,d.Z)("form.button.add-first-field-to-created-component"),defaultMessage:"Add first field to the component"}:{id:(0,d.Z)("form.button.add-field"),defaultMessage:"Add another field"})),n.createElement(l.Button,{variant:"default",type:"button",onClick:Z=>{Z.preventDefault(),se(),V(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"}))):s&&!c&&!U?n.createElement(n.Fragment,null,n.createElement(l.Button,{type:A?"button":"submit",variant:"secondary",onClick:Z=>{Z.preventDefault(),ye(Z,!0)},startIcon:n.createElement(pe.Plus,null)},G({id:(0,d.Z)("form.button.add-field"),defaultMessage:"Add another field"})),n.createElement(l.Button,{type:A?"submit":"button",variant:"default",onClick:Z=>{Z.preventDefault(),se(),ye(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"}))):p?n.createElement(n.Fragment,null,!M&&n.createElement(n.Fragment,null,n.createElement(l.Button,{type:"button",variant:"danger",onClick:Z=>{Z.preventDefault(),o()}},G({id:"global.delete",defaultMessage:"Delete"})),n.createElement(l.Button,{type:"submit",variant:"default",onClick:Z=>{Z.preventDefault(),we(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"}))),M&&n.createElement(l.Button,{type:"submit",variant:"secondary",onClick:Z=>{Z.preventDefault(),ue(Z,!0)}},G({id:"global.continue",defaultMessage:"Continue"}))):L?n.createElement(n.Fragment,null,!f&&n.createElement(n.Fragment,null,n.createElement(l.Button,{type:"button",variant:"danger",onClick:Z=>{Z.preventDefault(),r()}},G({id:"global.delete",defaultMessage:"Delete"})),n.createElement(l.Button,{type:"submit",variant:"default",onClick:Z=>{Z.preventDefault(),ge(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"}))),f&&n.createElement(l.Button,{type:"submit",variant:"secondary",onClick:Z=>{Z.preventDefault(),D(Z,!0)}},G({id:"global.continue",defaultMessage:"Continue"}))):R?n.createElement(n.Fragment,null,n.createElement(l.Button,{type:"button",variant:"danger",onClick:Z=>{Z.preventDefault(),a(e)}},G({id:"global.delete",defaultMessage:"Delete"})),n.createElement(l.Button,{type:"submit",variant:"default",onClick:Z=>{Z.preventDefault(),Ve(Z)}},G({id:"global.finish",defaultMessage:"finish"}))):i?n.createElement(n.Fragment,null,n.createElement(l.Button,{type:A?"button":"submit",variant:"secondary",onClick:Z=>{Z.preventDefault(),Y(Z,!0)},startIcon:n.createElement(pe.Plus,null)},G({id:(0,d.Z)("form.button.add-field"),defaultMessage:"Add another field"})),n.createElement(l.Button,{type:A?"submit":"button",variant:"default",onClick:Z=>{Z.preventDefault(),se(),Y(Z,!1)}},G({id:"global.finish",defaultMessage:"Finish"}))):null};ot.defaultProps={categoryName:null,onClickFinish(){}},ot.propTypes={categoryName:t().string,deleteCategory:t().func.isRequired,deleteComponent:t().func.isRequired,deleteContentType:t().func.isRequired,isAttributeModal:t().bool.isRequired,isCustomFieldModal:t().bool.isRequired,isComponentAttribute:t().bool.isRequired,isComponentModal:t().bool.isRequired,isComponentToDzModal:t().bool.isRequired,isContentTypeModal:t().bool.isRequired,isCreatingComponent:t().bool.isRequired,isCreatingComponentAttribute:t().bool.isRequired,isCreatingComponentInDz:t().bool.isRequired,isCreatingComponentWhileAddingAField:t().bool.isRequired,isCreatingContentType:t().bool.isRequired,isCreatingDz:t().bool.isRequired,isDzAttribute:t().bool.isRequired,isEditingAttribute:t().bool.isRequired,isEditingCategory:t().bool.isRequired,isInFirstComponentStep:t().bool.isRequired,onSubmitAddComponentAttribute:t().func.isRequired,onSubmitAddComponentToDz:t().func.isRequired,onSubmitCreateContentType:t().func.isRequired,onSubmitCreateComponent:t().func.isRequired,onSubmitCreateDz:t().func.isRequired,onSubmitEditAttribute:t().func.isRequired,onSubmitEditCategory:t().func.isRequired,onSubmitEditComponent:t().func.isRequired,onSubmitEditContentType:t().func.isRequired,onSubmitEditCustomFieldAttribute:t().func.isRequired,onSubmitEditDz:t().func.isRequired,onClickFinish:t().func};var ta=ot,na=({modalType:e,forTarget:a,kind:r,actionType:o,step:s})=>{switch(e){case"chooseAttribute":return(0,d.Z)(`modalForm.sub-header.chooseAttribute.${a.includes("component")?"component":r||"collectionType"}`);case"attribute":return(0,d.Z)(`modalForm.sub-header.attribute.${o}${s!=="null"&&s!==null&&o!=="edit"?".step":""}`);case"customField":return(0,d.Z)(`modalForm.sub-header.attribute.${o}`);case"addComponentToDynamicZone":return(0,d.Z)("modalForm.sub-header.addComponentToDynamicZone");default:return(0,d.Z)("configurations")}};const it=({actionType:e,modalType:a,forTarget:r,kind:o,step:s,attributeType:i,attributeName:c,customField:m})=>{const{formatMessage:p}=(0,E.useIntl)(),f=a==="customField"?m.intlLabel:{id:(0,d.Z)(`attribute.${i}`)};return n.createElement(l.Flex,{direction:"column",alignItems:"flex-start",paddingBottom:2,gap:1},n.createElement(l.Typography,{as:"h2",variant:"beta"},p({id:na({actionType:e,forTarget:r,kind:o,step:s,modalType:a}),defaultMessage:"Add new field"},{type:Fe()(p(f)),name:Fe()(c),step:s})),n.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},p({id:(0,d.Z)(`attribute.${i}.description`),defaultMessage:"A type for modeling data"})))};it.defaultProps={actionType:null,modalType:null,forTarget:null,kind:null,step:null,attributeType:null,attributeName:null,customField:null},it.propTypes={actionType:t().string,modalType:t().string,forTarget:t().string,kind:t().string,step:t().string,attributeType:t().string,attributeName:t().string,customField:t().object};var aa=it;const lt=({intlLabel:e,name:a,options:r,onChange:o,value:s})=>{const{formatMessage:i}=(0,E.useIntl)(),c=e.id?i({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):a,m=p=>{let f="";p==="true"&&(f=!0),p==="false"&&(f=!1),o({target:{name:a,value:f,type:"select-default-boolean"}})};return n.createElement(l.Select,{label:c,id:a,name:a,onChange:m,value:(s===null?"":s).toString()},r.map(({metadatas:{intlLabel:p,disabled:f,hidden:y},key:g,value:C})=>n.createElement(l.Option,{key:g,value:C,disabled:f,hidden:y},p.defaultMessage)))};lt.defaultProps={value:null},lt.propTypes={intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,name:t().string.isRequired,onChange:t().func.isRequired,options:t().arrayOf(t().shape({metadatas:t().shape({intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}).isRequired,disabled:t().bool,hidden:t().bool}).isRequired,key:t().oneOfType([t().string,t().number]).isRequired,value:t().oneOfType([t().string,t().number]).isRequired}).isRequired).isRequired,value:t().any};var ra=lt;const sa=(0,Pe.default)(l.Flex)`
19
- position: relative;
20
- align-items: stretch;
21
-
22
- label {
23
- border-radius: 4px;
24
- max-width: 50%;
25
- cursor: pointer;
26
- user-select: none;
27
- flex: 1;
28
- ${(0,l.inputFocusStyle)()}
29
- }
30
-
31
- input {
32
- position: absolute;
33
- opacity: 0;
34
- }
35
-
36
- .option {
37
- height: 100%;
38
- border-radius: 4px;
39
- border: 1px solid ${({theme:e})=>e.colors.neutral200};
40
- will-change: transform, opacity;
41
- background: ${({theme:e})=>e.colors.neutral0};
42
-
43
- .checkmark {
44
- position: relative;
45
- display: block;
46
- will-change: transform;
47
- background: ${({theme:e})=>e.colors.neutral0};
48
- width: ${({theme:e})=>e.spaces[5]};
49
- height: ${({theme:e})=>e.spaces[5]};
50
- border: solid 1px ${({theme:e})=>e.colors.neutral300};
51
- border-radius: 50%;
52
-
53
- &:before,
54
- &:after {
55
- content: '';
56
- display: block;
57
- border-radius: 50%;
58
- width: ${({theme:e})=>e.spaces[3]};
59
- height: ${({theme:e})=>e.spaces[3]};
60
- position: absolute;
61
- top: 3px;
62
- left: 3px;
63
- }
64
-
65
- &:after {
66
- transform: scale(0);
67
- transition: inherit;
68
- will-change: transform;
69
- }
70
- }
71
- }
72
-
73
- .container input:checked ~ div {
74
- background: ${({theme:e})=>e.colors.primary100};
75
- ${l.Typography} {
76
- color: ${({theme:e})=>e.colors.primary600};
77
- }
78
- border: 1px solid ${({theme:e})=>e.colors.primary200};
79
- .checkmark {
80
- border: solid 1px ${({theme:e})=>e.colors.primary600};
81
- &::after {
82
- background: ${({theme:e})=>e.colors.primary600};
83
- transform: scale(1);
84
- }
85
- }
86
- }
87
- `,ut=({intlLabel:e,name:a,onChange:r,radios:o,value:s})=>{const{formatMessage:i}=(0,E.useIntl)();return n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:2},n.createElement(l.Typography,{variant:"pi",fontWeight:"bold",textColor:"neutral800",htmlFor:a,as:"label"},i(e)),n.createElement(sa,{gap:4,alignItems:"stretch"},o.map(c=>n.createElement("label",{htmlFor:c.value.toString(),key:c.value,className:"container"},n.createElement("input",{id:c.value.toString(),name:a,className:"option-input",checked:c.value===s,value:c.value,key:c.value,onChange:r,type:"radio"}),n.createElement(l.Box,{className:"option",padding:4},n.createElement(l.Flex,null,n.createElement(l.Box,{paddingRight:4},n.createElement("span",{className:"checkmark"})),n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:2},n.createElement(l.Typography,{fontWeight:"bold"},i(c.title)),n.createElement(l.Typography,{variant:"pi",textColor:"neutral600"},i(c.description)))))))))};ut.defaultProps={radios:[]},ut.propTypes={intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,name:t().string.isRequired,onChange:t().func.isRequired,radios:t().arrayOf(t().shape({title:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}),description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}),value:t().any.isRequired})),value:t().oneOfType([t().string,t().bool]).isRequired};var dt=ut;const Qt=({onChange:e,name:a,...r})=>{const o=s=>{const i=s.target.value!=="false";e({target:{name:a,value:i,type:"boolean-radio-group"}})};return n.createElement(dt,{...r,name:a,onChange:o})};Qt.propTypes={name:t().string.isRequired,onChange:t().func.isRequired};var oa=Qt;const ct=({error:e,intlLabel:a,modifiedData:r,name:o,onChange:s,value:i})=>{const{formatMessage:c}=(0,E.useIntl)(),[m,p]=(0,n.useState)(!!i||i===0),f=a.id?c({id:a.id,defaultMessage:a.defaultMessage},{...a.values}):o,y=r.type==="biginteger"?"text":"number",g=!r.type,C=e?c({id:e,defaultMessage:e}):"";return n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:2},n.createElement(l.Checkbox,{id:o,name:o,onValueChange:M=>{s({target:{name:o,value:M?y==="text"?"0":0:null}}),p(U=>!U)},value:m},f),m&&n.createElement(l.Box,{paddingLeft:6,style:{maxWidth:"200px"}},y==="text"?n.createElement(l.TextInput,{"aria-label":f,disabled:g,error:C,id:o,name:o,onChange:s,value:i===null?"":i}):n.createElement(l.NumberInput,{"aria-label":f,disabled:g,error:C,id:o,name:o,onValueChange:M=>{s({target:{name:o,value:M,type:y}})},value:i||0})))};ct.defaultProps={error:null,value:null},ct.propTypes={error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,modifiedData:t().object.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().oneOfType([t().string,t().object,t().bool,t().number])};var ia=ct;const _t=({onChange:e,...a})=>{const r=(0,b.useNotification)(),o=s=>{r({type:"info",message:{id:(0,d.Z)("contentType.kind.change.warning"),defaultMessage:"You just changed the kind of a content type: API will be reset (routes, controllers, and services will be overwritten)."}}),e(s)};return n.createElement(dt,{...a,onChange:o})};_t.propTypes={onChange:t().func.isRequired};var la=_t,mt=u(49561),Q=u(91559);const pt=({oneThatIsCreatingARelationWithAnother:e,target:a})=>{const{contentTypes:r,sortedContentTypesList:o}=(0,Oe.Z)(),s=(0,ie.useDispatch)(),i=o.filter(Vt),c=h()(r,[a,"plugin"],null),m=h()(r,[a,"schema","displayName"],"error");return n.createElement(l.SimpleMenu,{id:"label",label:`${m}
88
- ${c?`(from: ${c})`:""}`},i.map(({uid:p,title:f,restrictRelationsTo:y,plugin:g})=>{const C=()=>{const M=g?`${g}_${f}`:f;s({type:Q.aG,target:{value:p,oneThatIsCreatingARelationWithAnother:e,selectedContentTypeFriendlyName:M,targetContentTypeAllowedRelations:y}})};return n.createElement(l.MenuItem,{key:p,onClick:C},f,"\xA0",g&&n.createElement(n.Fragment,null,"(from: ",g,")"))}))};pt.defaultProps={target:null},pt.propTypes={oneThatIsCreatingARelationWithAnother:t().string.isRequired,target:t().string};var ua=pt;const gt=({disabled:e,error:a,header:r,isMain:o,name:s,onChange:i,oneThatIsCreatingARelationWithAnother:c,target:m,value:p})=>n.createElement(l.Box,{background:"neutral100",hasRadius:!0,borderColor:"neutral200"},n.createElement(l.Flex,{paddingTop:o?4:1,paddingBottom:o?3:1,justifyContent:"center"},o?n.createElement(l.Typography,{variant:"pi",fontWeight:"bold",textColor:"neutral800"},r):n.createElement(ua,{target:m,oneThatIsCreatingARelationWithAnother:c})),n.createElement(l.Divider,{background:"neutral200"}),n.createElement(l.Box,{padding:4},n.createElement(b.GenericInput,{disabled:e,error:a?.id||null,intlLabel:{id:(0,d.Z)("form.attribute.item.defineRelation.fieldName"),defaultMessage:"Field name"},name:s,onChange:i,type:"text",value:p})));gt.defaultProps={disabled:!1,error:null,header:null,isMain:!1,onChange(){},oneThatIsCreatingARelationWithAnother:null,target:null,value:""},gt.propTypes={disabled:t().bool,error:t().object,header:t().string,isMain:t().bool,name:t().string.isRequired,onChange:t().func,oneThatIsCreatingARelationWithAnother:t().string,target:t().string,value:t().string};var en=gt,da=u(51382),tn=u.n(da),ca=u(24443),ft=u.n(ca);const ma=(0,Pe.default)(l.Box)`
89
- position: relative;
90
- width: 100%;
91
- &::before {
92
- content: '';
93
- position: absolute;
94
- top: calc(50% - 0px);
95
- height: 2px;
96
- width: 100%;
97
- background-color: ${({theme:e})=>e.colors.primary600};
98
- z-index: 0;
99
- }
100
- `,pa=(0,Pe.default)(l.Box)`
101
- background: ${({theme:e,isSelected:a})=>e.colors[a?"primary100":"neutral0"]};
102
- border: 1px solid
103
- ${({theme:e,isSelected:a})=>e.colors[a?"primary700":"neutral200"]};
104
- border-radius: ${({theme:e})=>e.borderRadius};
105
- z-index: 1;
106
- svg {
107
- width: 1.5rem;
108
- height: 100%;
109
- path {
110
- fill: ${({theme:e,isSelected:a})=>e.colors[a?"primary700":"neutral500"]};
111
- }
112
- }
113
- &:disabled {
114
- cursor: not-allowed;
115
- }
116
- `,ga=(0,Pe.default)(l.Flex)`
117
- position: absolute;
118
- bottom: 0;
119
- left: 0;
120
- right: 0;
121
- `,fa={oneWay:pe.OneWay,oneToOne:pe.OneToOne,oneToMany:pe.OneToMany,manyToOne:pe.ManyToOne,manyToMany:pe.ManyToMany,manyWay:pe.ManyWays},yt=({naturePickerType:e,oneThatIsCreatingARelationWithAnother:a,relationType:r,target:o})=>{const s=(0,ie.useDispatch)(),{formatMessage:i}=(0,E.useIntl)(),{contentTypes:c,modifiedData:m}=(0,Oe.Z)(),p=["oneWay","oneToOne","oneToMany","manyToOne","manyToMany","manyWay"],f=["oneWay","manyWay"],g=(e==="contentType"?h()(m,[e,"schema","kind"],""):e)==="collectionType"?p:f,C=r==="manyToOne",M=h()(c,[o,"schema","displayName"],"unknown"),N=C?M:a,L=C?a:M,U=ft()(N,r==="manyToMany"?2:1),A=h()(c,[o,"schema","restrictRelationsTo"],null),R=ft()(L,["manyToMany","oneToMany","manyToOne","manyWay"].includes(r)?2:1);return r?n.createElement(l.Flex,{style:{flex:1}},n.createElement(ma,null,n.createElement(l.Flex,{paddingLeft:9,paddingRight:9,paddingTop:1,justifyContent:"center"},n.createElement(l.KeyboardNavigable,{tagName:"button"},n.createElement(l.Flex,{gap:3},g.map(S=>{const V=fa[S],H=A===null||A.includes(S);return n.createElement(pa,{as:"button",isSelected:r===S,disabled:!H,key:S,onClick:()=>{H&&s({type:Q.QQ,target:{oneThatIsCreatingARelationWithAnother:a,targetContentType:o,value:S}})},padding:2,type:"button"},n.createElement(V,{key:S}))}))))),n.createElement(ga,{justifyContent:"center"},n.createElement(l.Typography,null,tn()(U,{length:24}),"\xA0"),n.createElement(l.Typography,{textColor:"primary600"},i({id:(0,d.Z)(`relation.${r}`)}),"\xA0"),n.createElement(l.Typography,null,tn()(R,{length:24})))):null};yt.defaultProps={relationType:null,target:null},yt.propTypes={naturePickerType:t().string.isRequired,oneThatIsCreatingARelationWithAnother:t().string.isRequired,relationType:t().string,target:t().string};var ya=yt;const nn=({formErrors:e,mainBoxHeader:a,modifiedData:r,naturePickerType:o,onChange:s})=>{const i=(0,mt.Z)(r.relation,r.targetAttribute);return n.createElement(l.Flex,{style:{position:"relative"}},n.createElement(en,{isMain:!0,header:a,error:e?.name||null,name:"name",onChange:s,value:r?.name||""}),n.createElement(ya,{naturePickerType:o,oneThatIsCreatingARelationWithAnother:a,relationType:i,target:r.target}),n.createElement(en,{disabled:["oneWay","manyWay"].includes(i),error:e?.targetAttribute||null,name:"targetAttribute",onChange:s,oneThatIsCreatingARelationWithAnother:a,target:r.target,value:r?.targetAttribute||""}))};nn.propTypes={formErrors:t().object.isRequired,mainBoxHeader:t().string.isRequired,modifiedData:t().object.isRequired,naturePickerType:t().string.isRequired,onChange:t().func.isRequired};var ba=nn,an=u(45251);const bt=({description:e,error:a,intlLabel:r,modifiedData:o,name:s,onChange:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),p=(0,n.useRef)(i),f=o?.displayName||"";(0,n.useEffect)(()=>{if(f){const M=(0,an.Z)(f);try{const N=ft()(M,2);p.current({target:{name:s,value:N}})}catch{p.current({target:{name:s,value:M}})}}else p.current({target:{name:s,value:""}})},[f,s]);const y=a?m({id:a,defaultMessage:a}):"",g=e?m({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):"",C=m(r);return n.createElement(l.TextInput,{error:y,label:C,id:s,hint:g,name:s,onChange:i,value:c||""})};bt.defaultProps={description:null,error:null,value:null},bt.propTypes={description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,modifiedData:t().object.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().string};var ha=bt;const ht=({error:e,intlLabel:a,name:r,onChange:o,value:s})=>{const{formatMessage:i}=(0,E.useIntl)(),{allComponentsCategories:c}=(0,Oe.Z)(),[m,p]=(0,n.useState)(c),f=e?i({id:e,defaultMessage:e}):"",y=i(a),g=M=>{o({target:{name:r,value:M,type:"select-category"}})},C=M=>{p(N=>[...N,M]),g(M)};return n.createElement(l.CreatableCombobox,{error:f,id:r,label:y,name:r,onChange:g,onCreateOption:C,value:s},m.map(M=>n.createElement(l.ComboboxOption,{key:M,value:M},M)))};ht.defaultProps={error:null,value:null},ht.propTypes={error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().string};var va=ht;const vt=({error:e,intlLabel:a,isAddingAComponentToAnotherComponent:r,isCreating:o,isCreatingComponentWhileAddingAField:s,componentToCreate:i,name:c,onChange:m,targetUid:p,forTarget:f,value:y})=>{const{formatMessage:g}=(0,E.useIntl)(),C=e?g({id:e,defaultMessage:e}):"",M=g(a),{componentsGroupedByCategory:N,componentsThatHaveOtherComponentInTheirAttributes:L}=(0,Oe.Z)(),U=["component","components"].includes(f);let A=Object.entries(N).reduce((R,S)=>{const[V,H]=S,ue=H.map(D=>({uid:D.uid,label:D.schema.displayName,categoryName:V}));return[...R,...ue]},[]);return r&&(A=A.filter(R=>!L.includes(R.uid))),U&&(A=A.filter(R=>R.uid!==p)),s&&(A=[{uid:y,label:i.displayName,categoryName:i.category}]),n.createElement(l.Select,{disabled:s||!o,error:C,label:M,id:c,name:c,onChange:R=>{m({target:{name:c,value:R,type:"select-category"}})},value:y||""},A.map(R=>n.createElement(l.Option,{key:R.uid,value:R.uid},`${R.categoryName} - ${R.label}`)))};vt.defaultProps={componentToCreate:null,error:null},vt.propTypes={componentToCreate:t().object,forTarget:t().string.isRequired,error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,isAddingAComponentToAnotherComponent:t().bool.isRequired,isCreating:t().bool.isRequired,isCreatingComponentWhileAddingAField:t().bool.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,targetUid:t().string.isRequired,value:t().string.isRequired};var Ta=vt,Tt=(e,a)=>e.find(({name:r})=>r===a);const rn=({dynamicZoneTarget:e,intlLabel:a,name:r,onChange:o,value:s})=>{const{formatMessage:i}=(0,E.useIntl)(),{componentsGroupedByCategory:c,modifiedData:m}=(0,Oe.Z)(),f=(Tt(m.contentType.schema.attributes,e)||{}).components||[],y=Object.keys(c).reduce((M,N)=>{const L=c[N].filter(({uid:U})=>!f.includes(U));return L.length>0&&(M[N]=L),M},{}),g=Object.entries(y).reduce((M,N)=>{const[L,U]=N,A={label:L,children:U.map(({uid:R,schema:{displayName:S}})=>({label:S,value:R}))};return M.push(A),M},[]),C=i({id:(0,d.Z)("components.SelectComponents.displayed-value"),defaultMessage:"{number, plural, =0 {# components} one {# component} other {# components}} selected"},{number:s.length});return n.createElement(l.MultiSelectNested,{id:"select1",label:i(a),customizeContent:()=>C,name:r,onChange:M=>{o({target:{name:r,value:M,type:"select-components"}})},options:g,value:s||[]})};rn.propTypes={intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,dynamicZoneTarget:t().string.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().array.isRequired};var Ca=rn;const Ct=({intlLabel:e,error:a,modifiedData:r,name:o,onChange:s,options:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),p=m(e),f=a?m({id:a,defaultMessage:a}):"",y=g=>{s({target:{name:o,value:g,type:"select"}}),c&&r.default!==void 0&&r.default!==null&&s({target:{name:"default",value:null}})};return n.createElement(l.Select,{error:f,label:p,id:o,name:o,onChange:y,value:c||""},i.map(({metadatas:{intlLabel:g,disabled:C,hidden:M},key:N,value:L})=>n.createElement(l.Option,{key:N,value:L,disabled:C,hidden:M},m({id:g.id,defaultMessage:g.defaultMessage},g.values))))};Ct.defaultProps={error:void 0,value:""},Ct.propTypes={error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,modifiedData:t().object.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,options:t().arrayOf(t().shape({metadatas:t().shape({intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}).isRequired,disabled:t().bool,hidden:t().bool}).isRequired,key:t().oneOfType([t().string,t().number]).isRequired,value:t().oneOfType([t().string,t().number]).isRequired}).isRequired).isRequired,value:t().string};var Ma=Ct;const Mt=({intlLabel:e,error:a,modifiedData:r,name:o,onChange:s,options:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),p=m(e),f=a?m({id:a,defaultMessage:a}):"",y=g=>{s({target:{name:o,value:g,type:"select"}}),c&&(g==="biginteger"&&c!=="biginteger"&&(r.default!==void 0&&r.default!==null&&s({target:{name:"default",value:null}}),r.max!==void 0&&r.max!==null&&s({target:{name:"max",value:null}}),r.min!==void 0&&r.min!==null&&s({target:{name:"min",value:null}})),["decimal","float","integer"].includes(g)&&c==="biginteger"&&(r.default!==void 0&&r.default!==null&&s({target:{name:"default",value:null}}),r.max!==void 0&&r.max!==null&&s({target:{name:"max",value:null}}),r.min!==void 0&&r.min!==null&&s({target:{name:"min",value:null}})))};return n.createElement(l.Select,{error:f,label:p,id:o,name:o,onChange:y,value:c||""},i.map(({metadatas:{intlLabel:g,disabled:C,hidden:M},key:N,value:L})=>n.createElement(l.Option,{key:N,value:L,disabled:C,hidden:M},m(g))))};Mt.defaultProps={error:void 0,value:""},Mt.propTypes={error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,modifiedData:t().object.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,options:t().arrayOf(t().shape({metadatas:t().shape({intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired}).isRequired,disabled:t().bool,hidden:t().bool}).isRequired,key:t().oneOfType([t().string,t().number]).isRequired,value:t().oneOfType([t().string,t().number]).isRequired}).isRequired).isRequired,value:t().string};var Ea=Mt;const Et=({description:e,error:a,intlLabel:r,modifiedData:o,name:s,onChange:i,value:c})=>{const{formatMessage:m}=(0,E.useIntl)(),p=(0,n.useRef)(i),f=o?.displayName||"";(0,n.useEffect)(()=>{f?p.current({target:{name:s,value:(0,an.Z)(f)}}):p.current({target:{name:s,value:""}})},[f,s]);const y=a?m({id:a,defaultMessage:a}):"",g=e?m({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):"",C=m(r);return n.createElement(l.TextInput,{error:y,label:C,id:s,hint:g,name:s,onChange:i,value:c||""})};Et.defaultProps={description:null,error:null,value:null},Et.propTypes={description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,modifiedData:t().object.isRequired,name:t().string.isRequired,onChange:t().func.isRequired,value:t().string};var Ra=Et;const sn=({form:e,formErrors:a,genericInputProps:r,modifiedData:o,onChange:s})=>{const{formatMessage:i}=(0,E.useIntl)();return e.map((c,m)=>c.items.length===0?null:n.createElement(l.Box,{key:m},c.sectionTitle&&n.createElement(l.Box,{paddingBottom:4},n.createElement(l.Typography,{variant:"delta",as:"h3"},i(c.sectionTitle))),n.createElement(l.Grid,{gap:4},c.items.map((p,f)=>{const y=`${m}.${f}`,g=h()(o,p.name,""),C=Object.keys(a).find(N=>N===p.name),M=C?a[C].id:h()(a,[...p.name.split(".").filter(N=>N!=="componentToCreate"),"id"],null);return p.type==="pushRight"?n.createElement(l.GridItem,{col:p.size||6,key:p.name||y},n.createElement("div",null)):n.createElement(l.GridItem,{col:p.size||6,key:p.name||y},n.createElement(b.GenericInput,{...p,...r,error:M,onChange:s,value:g}))}))))};sn.propTypes={form:t().arrayOf(t().object).isRequired,formErrors:t().object.isRequired,genericInputProps:t().object.isRequired,modifiedData:t().object.isRequired,onChange:t().func.isRequired};var on=sn;const Rt=({description:e,disabled:a,error:r,intlLabel:o,labelAction:s,name:i,onChange:c,placeholder:m,value:p})=>{const{formatMessage:f}=(0,E.useIntl)(),y=r?f({id:r,defaultMessage:r}):"",g=e?f({id:e.id,defaultMessage:e.defaultMessage},{...e.values}):"",C=f(o),M=m?f({id:m.id,defaultMessage:m.defaultMessage},{...m.values}):"",N=Array.isArray(p)?p.join(`
122
- `):"",L=U=>{const A=U.target.value.split(`
123
- `);c({target:{name:i,value:A}})};return n.createElement(l.Textarea,{disabled:a,error:y,label:C,labelAction:s,id:i,hint:g,name:i,onChange:L,placeholder:M,value:N},N)};Rt.defaultProps={description:null,disabled:!1,error:"",labelAction:void 0,placeholder:null,value:""},Rt.propTypes={description:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),disabled:t().bool,error:t().string,intlLabel:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}).isRequired,labelAction:t().element,name:t().string.isRequired,onChange:t().func.isRequired,placeholder:t().shape({id:t().string.isRequired,defaultMessage:t().string.isRequired,values:t().object}),value:t().oneOfType([t().array,t().string])};var xa=Rt,Aa=(e,a)=>{const r=h()(e,["contentType","schema","kind"],"");return r==="singleType"||r===a.kind?!0:h()(e,["contentType","schema","attributes"],[]).filter(({relation:i,type:c,targetAttribute:m})=>{const p=(0,mt.Z)(i,m);return c==="relation"&&!["oneWay","manyWay"].includes(p)}).length===0},Za=(e="",a,r)=>{const o=["text","email","richtext","password","number","enumeration","date","media","boolean","json","relation"],s=e==="contentType",i=r.includes(a),c=!s&&!i;return s?[[...o,"uid"],["component","dynamiczone"]]:c?[o,["component"]]:[o]},ln=e=>e.reduce((a,r)=>{const o=r.items.reduce((s,i)=>(i.name&&s.push(i.name),s),[]);return[...a,...o]},[]),T=u(5173),ke=u(2158),Fa={base:{sections:[{sectionTitle:null,items:[{autoFocus:!0,name:"name",type:"text",intlLabel:{id:"global.name",defaultMessage:"Name"},description:{id:(0,d.Z)("modalForm.editCategory.base.name.description"),defaultMessage:"No space is allowed for the name of the category"}}]}]}},un=/^[A-Za-z][-_0-9A-Za-z]*$/,Sa=e=>{const a={name:T.Z_().matches(un,b.translatedErrors.regex).test({name:"nameNotAllowed",message:b.translatedErrors.unique,test(r){return r?!e.includes(r?.toLowerCase()):!1}}).required(b.translatedErrors.required)};return T.Ry(a)},Na=(e,a,r)=>{const o={displayName:T.Z_().test({name:"nameAlreadyUsed",message:b.translatedErrors.unique,test(s){if(!s)return!1;const i=(0,ke.N)(s,r);return!e.includes(i)}}).test({name:"nameNotAllowed",message:(0,d.Z)("error.contentTypeName.reserved-name"),test(s){return s?!a.includes(s?.trim()?.toLowerCase()):!1}}).required(b.translatedErrors.required),category:T.Z_().matches(un,b.translatedErrors.regex).required(b.translatedErrors.required),icon:T.Z_()};return T.Ry(o)},xt={intlLabel:{id:"global.type",defaultMessage:"Type"},name:"createComponent",type:"boolean-radio-group",size:12,radios:[{title:{id:(0,d.Z)("form.attribute.component.option.create"),defaultMessage:"Create a new component"},description:{id:(0,d.Z)("form.attribute.component.option.create.description"),defaultMessage:"A component is shared across types and components, it will be available and accessible everywhere."},value:!0},{title:{id:(0,d.Z)("form.attribute.component.option.reuse-existing"),defaultMessage:"Use an existing component"},description:{id:(0,d.Z)("form.attribute.component.option.reuse-existing.description"),defaultMessage:"Reuse a component already created to keep your data consistent across content-types."},value:!1}]},Be={base(e=""){return[{sectionTitle:null,items:[{name:`${e}displayName`,type:"text",intlLabel:{id:(0,d.Z)("contentType.displayName.label"),defaultMessage:"Display Name"}},{name:`${e}category`,type:"select-category",intlLabel:{id:(0,d.Z)("modalForm.components.create-component.category.label"),defaultMessage:"Select a category or enter a name to create a new one"}}]}]},advanced(){return[]}},F={default:{name:"default",type:"text",intlLabel:{id:(0,d.Z)("form.attribute.settings.default"),defaultMessage:"Default value"}},max:{name:"max",type:"checkbox-with-number-field",intlLabel:{id:(0,d.Z)("form.attribute.item.maximum"),defaultMessage:"Maximum value"}},maxLength:{name:"maxLength",type:"checkbox-with-number-field",intlLabel:{id:(0,d.Z)("form.attribute.item.maximumLength"),defaultMessage:"Maximum length"}},min:{name:"min",type:"checkbox-with-number-field",intlLabel:{id:(0,d.Z)("form.attribute.item.minimum"),defaultMessage:"Minimum value"}},minLength:{name:"minLength",type:"checkbox-with-number-field",intlLabel:{id:(0,d.Z)("form.attribute.item.minimumLength"),defaultMessage:"Minimum length"}},private:{name:"private",type:"checkbox",intlLabel:{id:(0,d.Z)("form.attribute.item.privateField"),defaultMessage:"Private field"},description:{id:(0,d.Z)("form.attribute.item.privateField.description"),defaultMessage:"This field will not show up in the API response"}},regex:{intlLabel:{id:(0,d.Z)("form.attribute.item.text.regex"),defaultMessage:"RegExp pattern"},name:"regex",type:"text",description:{id:(0,d.Z)("form.attribute.item.text.regex.description"),defaultMessage:"The text of the regular expression"}},required:{name:"required",type:"checkbox",intlLabel:{id:(0,d.Z)("form.attribute.item.requiredField"),defaultMessage:"Required field"},description:{id:(0,d.Z)("form.attribute.item.requiredField.description"),defaultMessage:"You won't be able to create an entry if this field is empty"}},unique:{name:"unique",type:"checkbox",intlLabel:{id:(0,d.Z)("form.attribute.item.uniqueField"),defaultMessage:"Unique field"},description:{id:(0,d.Z)("form.attribute.item.uniqueField.description"),defaultMessage:"You won't be able to create an entry if there is an existing entry with identical content"}}},qa={boolean(){return{sections:[{sectionTitle:null,items:[{autoFocus:!0,type:"select-default-boolean",intlLabel:{id:(0,d.Z)("form.attribute.settings.default"),defaultMessage:"Default value"},name:"default",options:[{value:"true",key:"true",metadatas:{intlLabel:{id:"true",defaultMessage:"true"}}},{value:"",key:"null",metadatas:{intlLabel:{id:"null",defaultMessage:"null"}}},{value:"false",key:"false",metadatas:{intlLabel:{id:"false",defaultMessage:"false"}}}]}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private]}]}},component({repeatable:e},a){return a==="1"?{sections:Be.advanced("componentToCreate")}:e?{sections:[{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private,F.max,F.min]}]}:{sections:[{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private]}]}},date({type:e}){return{sections:[{sectionTitle:null,items:[{...F.default,type:e||"date",value:null,withDefaultValue:!1,disabled:!e,autoFocus:!1}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.unique,F.private]}]}},dynamiczone(){return{sections:[{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.max,F.min]}]}},email(){return{sections:[{sectionTitle:null,items:[{...F.default,type:"email"}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.unique,F.maxLength,F.minLength,F.private]}]}},enumeration(e){return{sections:[{sectionTitle:null,items:[{name:"default",type:"select",intlLabel:{id:(0,d.Z)("form.attribute.settings.default"),defaultMessage:"Default value"},validations:{},options:[{key:"__null_reset_value__",value:"",metadatas:{intlLabel:{id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"}}},...(e.enum||[]).filter((a,r)=>e.enum.indexOf(a)===r&&a).map(a=>({key:a,value:a,metadatas:{intlLabel:{id:`${a}.no-override`,defaultMessage:a}}}))]},{intlLabel:{id:(0,d.Z)("form.attribute.item.enumeration.graphql"),defaultMessage:"Name override for GraphQL"},name:"enumName",type:"text",validations:{},description:{id:(0,d.Z)("form.attribute.item.enumeration.graphql.description"),defaultMessage:"Allows you to override the default generated name for GraphQL"}}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private]}]}},json(){return{sections:[{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private]}]}},media(){return{sections:[{sectionTitle:null,items:[{intlLabel:{id:(0,d.Z)("form.attribute.media.allowed-types"),defaultMessage:"Select allowed types of media"},name:"allowedTypes",type:"allowed-types-select",size:7,value:"",validations:{}}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.private]}]}},number(e){const a=e.type==="decimal"||e.type==="float"?"any":1;return{sections:[{sectionTitle:null,items:[{autoFocus:!0,name:"default",type:e.type==="biginteger"?"text":"number",step:a,intlLabel:{id:(0,d.Z)("form.attribute.settings.default"),defaultMessage:"Default value"},validations:{}}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.unique,F.max,F.min,F.private]}]}},password(){return{sections:[{sectionTitle:null,items:[F.default]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.maxLength,F.minLength,F.private]}]}},relation(){return{sections:[{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.private]}]}},richtext(){return{sections:[{sectionTitle:null,items:[F.default]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.maxLength,F.minLength,F.private]}]}},text(){return{sections:[{sectionTitle:null,items:[F.default,F.regex]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.unique,F.maxLength,F.minLength,F.private]}]}},uid(e){return{sections:[{sectionTitle:null,items:[{...F.default,disabled:Boolean(e.targetField),type:"text"}]},{sectionTitle:{id:"global.settings",defaultMessage:"Settings"},items:[F.required,F.maxLength,F.minLength,F.private]}]}}};const xe={name:"name",type:"text",intlLabel:{id:"global.name",defaultMessage:"Name"},description:{id:(0,d.Z)("modalForm.attribute.form.base.name.description"),defaultMessage:"No space is allowed for the name of the attribute"}};var La={component(e,a){if(a==="1"){const r=e.createComponent===!0?Be.base("componentToCreate."):[];return{sections:[{sectionTitle:null,items:[xt]},...r]}}return{sections:[{sectionTitle:null,items:[xe,{name:"component",type:"select-component",intlLabel:{id:(0,d.Z)("modalForm.attributes.select-component"),defaultMessage:"Select a component"},isMultiple:!1}]},{sectionTitle:null,items:[{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"repeatable",type:"boolean-radio-group",size:12,radios:[{title:{id:(0,d.Z)("form.attribute.component.option.repeatable"),defaultMessage:"Repeatable component"},description:{id:(0,d.Z)("form.attribute.component.option.repeatable.description"),defaultMessage:"Best for multiple instances (array) of ingredients, meta tags, etc.."},value:!0},{title:{id:(0,d.Z)("form.attribute.component.option.single"),defaultMessage:"Single component"},description:{id:(0,d.Z)("form.attribute.component.option.single.description"),defaultMessage:"Best for grouping fields like full address, main information, etc..."},value:!1}]}]}]}},date(){return{sections:[{sectionTitle:null,items:[xe,{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"type",type:"select-date",options:[{key:"__null_reset_value__",value:"",metadatas:{intlLabel:{id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"},hidden:!0}},{key:"date",value:"date",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.date.type.date"),defaultMessage:"date (ex: 01/01/{currentYear})",values:{currentYear:new Date().getFullYear()}}}},{key:"datetime",value:"datetime",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.date.type.datetime"),defaultMessage:"datetime (ex: 01/01/{currentYear} 00:00 AM)",values:{currentYear:new Date().getFullYear()}}}},{key:"time",value:"time",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.date.type.time"),defaultMessage:"time (ex: 00:00 AM)"}}}]}]}]}},enumeration(){return{sections:[{sectionTitle:null,items:[xe]},{sectionTitle:null,items:[{name:"enum",type:"textarea-enum",size:6,intlLabel:{id:(0,d.Z)("form.attribute.item.enumeration.rules"),defaultMessage:"Values (one line per value)"},placeholder:{id:(0,d.Z)("form.attribute.item.enumeration.placeholder"),defaultMessage:`Ex:
124
- morning
125
- noon
126
- evening`},validations:{required:!0}}]}]}},media(){return{sections:[{sectionTitle:null,items:[xe]},{sectionTitle:null,items:[{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"multiple",size:12,type:"boolean-radio-group",radios:[{title:{id:(0,d.Z)("form.attribute.media.option.multiple"),defaultMessage:"Multiple media"},description:{id:(0,d.Z)("form.attribute.media.option.multiple.description"),defaultMessage:"Best for sliders, carousels or multiple files download"},value:!0},{title:{id:(0,d.Z)("form.attribute.media.option.single"),defaultMessage:"Single media"},description:{id:(0,d.Z)("form.attribute.media.option.single.description"),defaultMessage:"Best for avatar, profile picture or cover"},value:!1}]}]}]}},number(){return{sections:[{sectionTitle:null,items:[xe,{intlLabel:{id:(0,d.Z)("form.attribute.item.number.type"),defaultMessage:"Number format"},name:"type",type:"select-number",options:[{key:"__null_reset_value__",value:"",metadatas:{intlLabel:{id:"components.InputSelect.option.placeholder",defaultMessage:"Choose here"},hidden:!0}},{key:"integer",value:"integer",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.number.type.integer"),defaultMessage:"integer (ex: 10)"}}},{key:"biginteger",value:"biginteger",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.number.type.biginteger"),defaultMessage:"biginteger (ex: 123456789)"}}},{key:"decimal",value:"decimal",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.number.type.decimal"),defaultMessage:"decimal (ex: 2.22)"}}},{key:"float",value:"float",metadatas:{intlLabel:{id:(0,d.Z)("form.attribute.item.number.type.float"),defaultMessage:"decimal (ex: 3.3333333)"}}}]}]}]}},relation(){return{sections:[{sectionTitle:null,items:[{intlLabel:{id:"FIXME",defaultMessage:"FIXME"},name:"relation",size:12,type:"relation"}]}]}},string(){return{sections:[{sectionTitle:null,items:[xe]},{sectionTitle:null,items:[{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"type",size:12,type:"radio-group",radios:[{title:{id:(0,d.Z)("form.attribute.text.option.short-text"),defaultMessage:"Sort text"},description:{id:(0,d.Z)("form.attribute.text.option.short-text.description"),defaultMessage:"Best for titles, names, links (URL). It also enables exact search on the field."},value:"string"},{title:{id:(0,d.Z)("form.attribute.text.option.long-text"),defaultMessage:"Long text"},description:{id:(0,d.Z)("form.attribute.text.option.long-text.description"),defaultMessage:"Best for descriptions, biography. Exact search is disabled."},value:"text"}]}]}]}},text(){return{sections:[{sectionTitle:null,items:[xe]},{sectionTitle:null,items:[{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"type",size:12,type:"radio-group",radios:[{title:{id:(0,d.Z)("form.attribute.text.option.short-text"),defaultMessage:"Sort text"},description:{id:(0,d.Z)("form.attribute.text.option.short-text.description"),defaultMessage:"Best for titles, names, links (URL). It also enables exact search on the field."},value:"string"},{title:{id:(0,d.Z)("form.attribute.text.option.long-text"),defaultMessage:"Long text"},description:{id:(0,d.Z)("form.attribute.text.option.long-text.description"),defaultMessage:"Best for descriptions, biography. Exact search is disabled."},value:"text"}]}]}]}},uid(e,a,r){const o=r.filter(({type:s})=>["string","text"].includes(s)).map(({name:s})=>({key:s,value:s,metadatas:{intlLabel:{id:`${s}.no-override`,defaultMessage:s}}}));return{sections:[{sectionTitle:null,items:[{...xe,placeholder:{id:(0,d.Z)("modalForm.attribute.form.base.name.placeholder"),defaultMessage:"e.g. Slug, SEO URL, Canonical URL"}},{intlLabel:{id:(0,d.Z)("modalForm.attribute.target-field"),defaultMessage:"Attached field"},name:"targetField",type:"select",options:[{key:"__null_reset_value__",value:"",metadatas:{intlLabel:{id:"global.none",defaultMessage:"None"}}},...o]}]}]}}},dn={advanced:qa,base:La},Oa={sections:[{sectionTitle:null,items:[xe]}]},Ia=u(91815),Da=u.n(Ia),Pa=u(40791),ka=u.n(Pa),At=e=>ka()(e,{decamelize:!1,lowercase:!1,separator:"_"}),Ba=u(78746),Zt=u.n(Ba);const cn=/^[A-Za-z][_0-9A-Za-z]*$/,mn=e=>({name:"attributeNameAlreadyUsed",message:b.translatedErrors.unique,test(a){return a?!e.includes(a):!1}}),fs=(e,a,r)=>{const o=e?.schema?.attributes??{};return Object.keys(o).filter(s=>a?s!==r:!0)},Ft=e=>({name:"forbiddenAttributeName",message:(0,d.Z)("error.attributeName.reserved-name"),test(a){return a?!e.includes(a):!1}}),v={default:()=>T.Z_().nullable(),max:()=>T.Rx().integer().nullable(),min:()=>T.Rx().integer().when("max",(e,a)=>e?a.max(e,(0,d.Z)("error.validation.minSupMax")):a).nullable(),maxLength:()=>T.Rx().integer().positive((0,d.Z)("error.validation.positive")).nullable(),minLength:()=>T.Rx().integer().min(0).when("maxLength",(e,a)=>e?a.max(e,(0,d.Z)("error.validation.minSupMax")):a).nullable(),name(e,a){return T.Z_().test(mn(e)).test(Ft(a)).matches(cn,b.translatedErrors.regex).required(b.translatedErrors.required)},required:()=>T.O7(),type:()=>T.Z_().required(b.translatedErrors.required),unique:()=>T.O7().nullable()},St=(e,a)=>({name:v.name(e,a),type:v.type(),default:v.default(),unique:v.unique(),required:v.required(),maxLength:v.maxLength(),minLength:v.minLength(),regex:T.Z_().test({name:"isValidRegExpPattern",message:(0,d.Z)("error.validation.regex"),test(o){return new RegExp(o)!==null}}).nullable()}),Nt={name:"isMinSuperiorThanMax",message:(0,d.Z)("error.validation.minSupMax"),test(e){if(!e)return!0;const{max:a}=this.parent;return!a||Number.isNaN(Zt()(e))?!0:Zt()(a)>=Zt()(e)}};var qt={date(e,a){const r={name:v.name(e,a),type:v.type()};return T.Ry(r)},datetime(e,a){const r={name:v.name(e,a),type:v.type()};return T.Ry(r)},time(e,a){const r={name:v.name(e,a),type:v.type()};return T.Ry(r)},default(e,a){const r={name:v.name(e,a),type:v.type()};return T.Ry(r)},biginteger(e,a){const r={name:v.name(e,a),type:v.type(),default:T.Z_().nullable().matches(/^-?\d*$/),unique:v.unique(),required:v.required(),max:T.Z_().nullable().matches(/^-?\d*$/,b.translatedErrors.regex),min:T.Z_().nullable().test(Nt).matches(/^-?\d*$/,b.translatedErrors.regex)};return T.Ry(r)},boolean(e,a){const r={name:v.name(e,a),default:T.O7().nullable(),required:v.required(),unique:v.unique()};return T.Ry(r)},component(e,a){const r={name:v.name(e,a),type:v.type(),required:v.required(),max:v.max(),min:v.min(),component:T.Z_().required(b.translatedErrors.required)};return T.Ry(r)},decimal(e,a){const r={name:v.name(e,a),type:v.type(),default:T.Rx(),required:v.required(),max:T.Rx(),min:T.Rx().test(Nt)};return T.Ry(r)},dynamiczone(e,a){const r={name:v.name(e,a),type:v.type(),required:v.required(),max:v.max(),min:v.min()};return T.Ry(r)},email(e,a){const r={name:v.name(e,a),type:v.type(),default:T.Z_().email().nullable(),unique:v.unique(),required:v.required(),maxLength:v.maxLength(),minLength:v.minLength()};return T.Ry(r)},enumeration(e,a){const r=/^[_A-Za-z][_0-9A-Za-z]*$/,o={name:T.Z_().test(mn(e)).test(Ft(a)).matches(r,b.translatedErrors.regex).required(b.translatedErrors.required),type:v.type(),default:v.default(),unique:v.unique(),required:v.required(),enum:T.IX().of(T.Z_()).min(1,b.translatedErrors.min).test({name:"areEnumValuesUnique",message:(0,d.Z)("error.validation.enum-duplicate"),test(s){return!Da()(s.map(At).filter((c,m,p)=>p.indexOf(c)!==m)).length}}).test({name:"doesNotHaveEmptyValues",message:(0,d.Z)("error.validation.enum-empty-string"),test:s=>!s.map(At).some(i=>i==="")}).test({name:"doesMatchRegex",message:(0,d.Z)("error.validation.enum-regex"),test:s=>s.map(At).every(i=>r.test(i))}),enumName:T.Z_().nullable()};return T.Ry(o)},float(e,a){const r={name:v.name(e,a),type:v.type(),required:v.required(),default:T.Rx(),max:T.Rx(),min:T.Rx().test(Nt)};return T.Ry(r)},integer(e,a){const r={name:v.name(e,a),type:v.type(),default:T.Rx().integer(),unique:v.unique(),required:v.required(),max:v.max(),min:v.min()};return T.Ry(r)},json(e,a){const r={name:v.name(e,a),type:v.type(),required:v.required(),unique:v.unique()};return T.Ry(r)},media(e,a){const r={name:v.name(e,a),type:v.type(),multiple:T.O7(),required:v.required(),allowedTypes:T.IX().of(T.Z_().oneOf(["images","videos","files","audios"])).min(1).nullable()};return T.Ry(r)},password(e,a){const r={name:v.name(e,a),type:v.type(),default:v.default(),unique:v.unique(),required:v.required(),maxLength:v.maxLength(),minLength:v.minLength()};return T.Ry(r)},relation(e,a,r,{initialData:o,modifiedData:s}){const i={name:v.name(e,a),target:T.Z_().required(b.translatedErrors.required),relation:T.Z_().required(),type:T.Z_().required(),targetAttribute:T.Vo(()=>{const c=(0,mt.Z)(s.relation,s.targetAttribute);if(c==="oneWay"||c==="manyWay")return T.Z_().nullable();let m=T.Z_().test(Ft(a)),f=[...r.map(({name:y})=>y),s.name].filter(y=>y!==o.targetAttribute);return m.matches(cn,b.translatedErrors.regex).test({name:"forbiddenTargetAttributeName",message:(0,d.Z)("error.validation.relation.targetAttribute-taken"),test(y){return y?!f.includes(y):!1}}).required(b.translatedErrors.required)})};return T.Ry(i)},richtext(e,a){const r={name:v.name(e,a),type:v.type(),default:v.default(),unique:v.unique(),required:v.required(),maxLength:v.maxLength(),minLength:v.minLength()};return T.Ry(r)},string(e,a){const r=St(e,a);return T.Ry(r)},text(e,a){const r=St(e,a);return T.Ry(r)},uid(e,a){const r=St(e,a);return T.Ry(r)}};const pn={name:"displayName",type:"text",intlLabel:{id:(0,d.Z)("contentType.displayName.label"),defaultMessage:"Display name"}};var Lt={advanced:{default(){const e=[{intlLabel:{id:(0,d.Z)("contentType.draftAndPublish.label"),defaultMessage:"Draft & publish"},description:{id:(0,d.Z)("contentType.draftAndPublish.description"),defaultMessage:"Allows writing a draft version of an entry, before it is published"},name:"draftAndPublish",type:"toggle-draft-publish",validations:{}}];return window.strapi.features.isEnabled(window.strapi.features.REVIEW_WORKFLOWS)&&e.push({intlLabel:{id:(0,d.Z)("contentType.reviewWorkflows.label"),defaultMessage:"Review Workflows"},description:{id:(0,d.Z)("contentType.reviewWorkflows.description"),defaultMessage:"Allows having content in different review stages"},name:"reviewWorkflows",type:"toggle-review-workflows",validations:{}}),{sections:[{items:e}]}}},base:{create(){return{sections:[{sectionTitle:null,items:[pn,{description:{id:(0,d.Z)("contentType.apiId-singular.description"),defaultMessage:"Used to generate the API routes and databases tables/collections"},intlLabel:{id:(0,d.Z)("contentType.apiId-singular.label"),defaultMessage:"API ID (Singular)"},name:"singularName",type:"text-singular"},{type:"pushRight",size:6,intlLabel:{id:"",defaultMessage:""},name:"pushRight"},{description:{id:(0,d.Z)("contentType.apiId-plural.description"),defaultMessage:"Pluralized API ID"},intlLabel:{id:(0,d.Z)("contentType.apiId-plural.label"),defaultMessage:"API ID (Plural)"},name:"pluralName",type:"text-plural"}]}]}},edit(){return{sections:[{sectionTitle:null,items:[pn,{disabled:!0,description:{id:(0,d.Z)("contentType.apiId-singular.description"),defaultMessage:"Used to generate the API routes and databases tables/collections"},intlLabel:{id:(0,d.Z)("contentType.apiId-singular.label"),defaultMessage:"API ID (Singular)"},name:"singularName",type:"text"},{type:"pushRight",size:6,intlLabel:{id:"",defaultMessage:""},name:"pushRight"},{disabled:!0,description:{id:(0,d.Z)("contentType.apiId-plural.description"),defaultMessage:"Pluralized API ID"},intlLabel:{id:(0,d.Z)("contentType.apiId-plural.label"),defaultMessage:"API ID (Plural)"},name:"pluralName",type:"text"},{intlLabel:{id:"global.type",defaultMessage:"Type"},name:"kind",type:"content-type-radio-group",size:12,radios:[{title:{id:(0,d.Z)("form.button.collection-type.name"),defaultMessage:"Collection Type"},description:{id:(0,d.Z)("form.button.collection-type.description"),defaultMessage:"Best for multiple instances like articles, products, comments, etc."},value:"collectionType"},{title:{id:(0,d.Z)("form.button.single-type.name"),defaultMessage:"Single Type"},description:{id:(0,d.Z)("form.button.single-type.description"),defaultMessage:"Best for single instance like about us, homepage, etc."},value:"singleType"}]}]}]}}}},wa=({usedContentTypeNames:e=[],reservedModels:a=[],singularNames:r=[],pluralNames:o=[]})=>{const s={displayName:T.Z_().test({name:"nameAlreadyUsed",message:b.translatedErrors.unique,test(i){if(!i)return!1;const c=(0,ke.E)(i);return!e.includes(c)}}).test({name:"nameNotAllowed",message:(0,d.Z)("error.contentTypeName.reserved-name"),test(i){return i?!a.includes(i?.trim()?.toLowerCase()):!1}}).required(b.translatedErrors.required),pluralName:T.Z_().test({name:"pluralNameAlreadyUsed",message:b.translatedErrors.unique,test(i){return i?!o.includes(i):!1}}).test({name:"pluralAndSingularAreUnique",message:(0,d.Z)("error.contentType.pluralName-used"),test(i,c){return i?c.parent.singularName!==i:!1}}).test({name:"pluralNameNotAllowed",message:(0,d.Z)("error.contentTypeName.reserved-name"),test(i){return i?!a.includes(i?.trim()?.toLowerCase()):!1}}).required(b.translatedErrors.required),singularName:T.Z_().test({name:"singularNameAlreadyUsed",message:b.translatedErrors.unique,test(i){return i?!r.includes(i):!1}}).test({name:"pluralAndSingularAreUnique",message:(0,d.Z)("error.contentType.singularName-used"),test(i,c){return i?c.parent.pluralName!==i:!1}}).test({name:"singularNameNotAllowed",message:(0,d.Z)("error.contentTypeName.reserved-name"),test(i){return i?!a.includes(i?.trim()?.toLowerCase()):!1}}).required(b.translatedErrors.required),draftAndPublish:T.O7(),kind:T.Z_().oneOf(["singleType","collectionType"]),reviewWorkflows:T.O7()};return T.Ry(s)},Ot={advanced:{default(){return{sections:Be.advanced("componentToCreate.")}}},base:{createComponent(){return{sections:[{sectionTitle:null,items:[xt]},...Be.base("componentToCreate.")]}},default(){return{sections:[{sectionTitle:null,items:[xt]},{sectionTitle:null,items:[{type:"pushRight",size:6,intlLabel:{id:"",defaultMessage:""},name:"pushRight"},{name:"components",type:"select-components",intlLabel:{id:(0,d.Z)("modalForm.attributes.select-components"),defaultMessage:"Select the components"},isMultiple:!0}]}]}}}},gn=(e,a)=>{e.forEach(r=>{if(!("sectionTitle"in r)){a[0].items.push(r);return}a.push(r)})},fn=(e,a)=>e.filter(({name:r})=>r!==a.initialData.name).map(({name:r})=>r),Ie={customField:{schema({schemaAttributes:e,attributeType:a,customFieldValidator:r,reservedNames:o,schemaData:s,ctbFormsAPI:i}){const c=fn(e,s),m=qt[a](c,o.attributes);return i.makeCustomFieldValidator(m,r,c,o.attributes,s)},form:{base({customField:e}){const a=[{sectionTitle:null,items:[xe]}];return e.options?.base&&gn(e.options.base,a),{sections:a}},advanced({customField:e,data:a,step:r,extensions:o,...s}){const i=[{sectionTitle:null,items:[]}],c=o.getAdvancedForm(["attribute",e.type],{data:a,type:e.type,step:r,...s});if(e.options?.advanced&&gn(e.options.advanced,i),c){const m={sectionTitle:{id:(0,d.Z)("modalForm.custom-fields.advanced.settings.extended"),defaultMessage:"Extended settings"},items:c};i.push(m)}return{sections:i}}}},attribute:{schema(e,a,r,o,s,i){const c=h()(e,["schema","attributes"],[]),m=fn(c,s);try{let p=qt[a](m,r.attributes,o,s);return i.makeValidator(["attribute",a],p,m,r.attributes,o,s)}catch(p){return console.error("Error yup build schema",p),qt.default(m,r.attributes)}},form:{advanced({data:e,type:a,step:r,extensions:o,...s}){try{const i=dn.advanced[a](e,r).sections,c=o.getAdvancedForm(["attribute",a],{data:e,type:a,step:r,...s});return{sections:i.reduce((p,f)=>(f.sectionTitle===null?p.push(f):p.push({...f,items:[...f.items,...c]}),p),[])}}catch(i){return console.error(i),{sections:[]}}},base({data:e,type:a,step:r,attributes:o}){try{return dn.base[a](e,r,o)}catch{return Oa}}}},contentType:{schema(e,a,r,o,s,i){const c=Object.values(i).map(C=>C.schema.singularName),m=Object.values(i).map(C=>h()(C,["schema","pluralName"],"")),p=a?e.filter(C=>C!==r):e,f=a?c.filter(C=>h()(i,[r,"schema","singularName"],"")!==C):c,y=a?m.filter(C=>h()(i,[r,"schema","pluralName"],"")!==C):m,g=wa({usedContentTypeNames:p,reservedModels:o.models,singularNames:f,pluralNames:y});return s.makeValidator(["contentType"],g,p,o.models,f,y)},form:{base({actionType:e}){return e==="create"?Lt.base.create():Lt.base.edit()},advanced({extensions:e}){const a=Lt.advanced.default().sections.map(o=>o.items).flat(),r=e.getAdvancedForm(["contentType"]);return{sections:[{items:[...a,...r]}]}}}},component:{schema(e,a,r,o=!1,s=null){const i=o?e.filter(c=>c!==s):e;return Na(i,r.models,a)},form:{advanced(){return{sections:Be.advanced()}},base(){return{sections:Be.base()}}}},addComponentToDynamicZone:{form:{advanced(){return Ot.advanced.default()},base({data:e}){return h()(e,"createComponent",!1)?Ot.base.createComponent():Ot.base.default()}}},editCategory:{schema(e,a){const r=e.filter(o=>o!==a.name).map(o=>ze()(o));return Sa(r)},form:{advanced:()=>({sections:[]}),base(){return Fa.base}}}},yn=u(98178),$a=u(25061);const Ua=()=>e=>e[`${P.Z}_formModal`]||$a.E;var ja=()=>(0,yn.P1)(Ua(),e=>e),Wa=()=>{const{onCloseModal:e,onNavigateToChooseAttributeModal:a,onNavigateToAddCompoToDZModal:r,onNavigateToCreateComponentStep2:o,actionType:s,attributeName:i,attributeType:c,customFieldUid:m,categoryName:p,dynamicZoneTarget:f,forTarget:y,modalType:g,isOpen:C,kind:M,step:N,targetUid:L}=(0,le.Z)(),U=(0,b.useCustomFields)().get(m),A=(0,n.useRef)(),R=(0,n.useMemo)(ja,[]),S=(0,ie.useDispatch)(),V=(0,b.useNotification)(),H=(0,ie.useSelector)($=>R($),ie.shallowEqual),{push:ue}=(0,O.useHistory)(),{trackUsage:D}=(0,b.useTracking)(),{formatMessage:_}=(0,E.useIntl)(),{getPlugin:ye}=(0,b.useStrapiApp)(),ge=ye(P.Z).apis.forms,we=ge.components.inputs,{addAttribute:Y,addCustomFieldAttribute:$e,addCreatedComponentToDynamicZone:se,allComponentsCategories:G,changeDynamicZoneComponents:Z,contentTypes:Ue,components:He,createSchema:je,deleteCategory:Pt,deleteData:_e,editCategory:kt,editCustomFieldAttribute:Bt,submitData:wt,modifiedData:de,nestedComponents:$t,setModifiedData:Ut,sortedContentTypesList:jt,updateSchema:Wt,reservedNames:Se}=(0,Oe.Z)(),{componentToCreate:Ke,formErrors:Ne,initialData:fe,isCreatingComponentWhileAddingAField:De,modifiedData:k}=H,q=y==="contentType"||y==="component"?[y]:[y,L];(0,n.useEffect)(()=>{if(C){const $=jt.filter(Vt);g==="editCategory"&&Ut(),s==="edit"&&g==="attribute"&&y==="contentType"&&D("willEditFieldOfContentType");const ve=[...q,"schema","attributes"],Me=Tt(h()(de,ve,[]),f)||null;if(g==="editCategory"&&s==="edit"&&S({type:Q._H,modalType:g,actionType:s,data:{name:p}}),g==="contentType"&&s==="create"&&S({type:Q._H,modalType:g,actionType:s,data:{draftAndPublish:!0,reviewWorkflows:!1},pluginOptions:{}}),g==="contentType"&&s==="edit"){const{displayName:j,draftAndPublish:ne,kind:Ee,pluginOptions:ce,pluralName:zr,reviewWorkflows:Gr,singularName:Vr}=h()(de,[...q,"schema"],{displayName:null,pluginOptions:{},singularName:null,pluralName:null});S({type:Q._H,actionType:s,modalType:g,data:{displayName:j,draftAndPublish:ne,kind:Ee,pluginOptions:ce,pluralName:zr,reviewWorkflows:Gr??!1,singularName:Vr}})}if(g==="component"&&s==="edit"){const j=h()(de,q,{});S({type:Q._H,actionType:s,modalType:g,data:{displayName:j.schema.displayName,category:j.category}})}if(g==="addComponentToDynamicZone"&&s==="edit"){const j={...Me,components:[],name:f,createComponent:!1,componentToCreate:{type:"component"}};S({type:Q.VZ,attributeToEdit:j})}if(c){const ne={...Tt(h()(de,ve,[]),i),name:i};c==="component"&&s==="edit"&&(ne.repeatable||J()(ne,"repeatable",!1)),S(g==="customField"?{type:Q.OY,customField:U,isEditing:s==="edit",modifiedDataToSetForEditing:ne,forTarget:y}:{type:Q.S0,attributeType:c,nameToSetForRelation:h()($,["0","title"],"error"),targetUid:h()($,["0","uid"],"error"),isEditing:s==="edit",modifiedDataToSetForEditing:ne,step:N,forTarget:y})}}else S({type:Q.c2})},[s,i,c,p,f,y,C,g]);const I=g==="contentType",w=g==="component",X=g==="attribute",be=g==="customField",he=c==="component"&&X,Te=s==="create",Ae=h()(k,"createComponent",!1)||De,We=N==="1",Sn=g==="editCategory",Nn=g==="chooseAttribute",zt=(0,ke.E)(k.displayName||""),Gt=h()(de,[...q,"schema","attributes"],null),Nr=async()=>{let $;const ve=Ae&&N==="1"?h()(k,"componentToCreate",{}):k;if(I)$=Ie.contentType.schema(Object.keys(Ue),s==="edit",h()(de,[...q,"uid"],null),Se,ge,Ue);else if(w)$=Ie.component.schema(Object.keys(He),k.category||"",Se,s==="edit",h()(de,[...q,"uid"],null),ge);else if(be)$=Ie.customField.schema({schemaAttributes:h()(de,[...q,"schema","attributes"],[]),attributeType:U.type,reservedNames:Se,schemaData:{modifiedData:k,initialData:fe},ctbFormsAPI:ge,customFieldValidator:U.options?.validator});else if(he&&Ae&&We)$=Ie.component.schema(Object.keys(He),h()(k,"componentToCreate.category",""),Se,ge);else if(X&&!We){const Me=c==="relation"?"relation":k.type;let j=[];if(Me==="relation"){const ne=h()(k,["target"],null);j=h()(Ue,[ne,"schema","attributes"],[]).filter(({name:ce})=>s!=="edit"?!0:ce!==fe.targetAttribute)}$=Ie.attribute.schema(h()(de,q,{}),Me,Se,j,{modifiedData:k,initialData:fe},ge)}else if(Sn)$=Ie.editCategory.schema(G,fe,ge);else if(We&&Ae)$=Ie.component.schema(Object.keys(He),h()(k,"componentToCreate.category",""),Se,ge);else return;await $.validate(ve,{abortEarly:!1})},qn=(0,n.useCallback)(({target:{name:$,value:ve,type:Me,...j}})=>{const ne=["enumName","max","min","maxLength","minLength","regex","default"];let Ee;ne.includes($)&&ve===""?Ee=null:Ee=ve;const ce=Object.assign({},Ne);$==="max"&&delete ce.min,$==="maxLength"&&delete ce.minLength,delete ce[$],S({type:Q.Ey,errors:ce}),S({type:Q.P0,keys:$.split("."),value:Ee,...j})},[S,Ne]),Ce=async($,ve=Te)=>{$.preventDefault();try{await Nr(),Or(ve);const Me=y==="components"?L:zt;if(I)if(Te)je({...k,kind:M},g,zt),ue({pathname:`/plugins/${P.Z}/content-types/${zt}`}),a({forTarget:y,targetUid:Me});else{Aa(de,k)?(e(),wt(k)):V({type:"warning",message:{id:"notification.contentType.relations.conflict"}});return}else if(g==="component")if(Te){const j=(0,ke.N)(k.displayName,k.category),{category:ne,...Ee}=k;je(Ee,"component",j,ne),ue({pathname:`/plugins/${P.Z}/component-categories/${ne}/${j}`}),a({forTarget:y,targetUid:j})}else{Wt(k,g,L),e();return}else if(Sn){if(ze()(fe.name)===ze()(k.name)){e();return}kt(fe.name,k);return}else if(be){const j={attributeToSet:{...k,customField:m},forTarget:y,targetUid:L,initialAttribute:fe};s==="edit"?Bt(j):$e(j),ve?a({forTarget:y,targetUid:Me}):e();return}else if(X&&!Ae){if(c==="dynamiczone"){Y(k,y,L,s==="edit",fe),Te?(S({type:Q.I}),A.current._handlers.setSelectedTabIndex(0),r({dynamicZoneTarget:k.name})):e();return}if(!he){Y(k,y,L,s==="edit",fe),ve?a({forTarget:y,targetUid:Me}):e();return}if(We){o(),S({type:Q.yC,forTarget:y});return}Y(k,y,L,s==="edit",fe,!0),ve?a({forTarget:y,targetUid:L}):e()}else if(X&&Ae){if(We){D("willCreateComponentFromAttributesModal"),S({type:Q.oF,forTarget:y}),o();return}const{category:j,type:ne,...Ee}=Ke,ce=(0,ke.N)(Ke.displayName,j);je(Ee,ne,ce,j,Ae),Y(k,y,L,!1),S({type:Q.c2}),ve?a({forTarget:"components",targetUid:ce}):e();return}else{if(We)if(Ae){const{category:j,type:ne,...Ee}=k.componentToCreate,ce=(0,ke.N)(k.componentToCreate.displayName,j);je(Ee,ne,ce,j,Ae),se(f,[ce]),a({forTarget:"components",targetUid:ce})}else Z(f,k.components),e();else console.error("This case is not handled");return}S({type:Q.c2})}catch(Me){const j=(0,b.getYupInnerErrors)(Me);console.log({err:Me,errors:j}),S({type:Q.Ey,errors:j})}},qr=()=>{window.confirm(_({id:"window.confirm.close-modal.file",defaultMessage:"Are you sure? Your changes will be lost."}))&&(e(),S({type:Q.c2}))},Ln=()=>{et()(k,fe)?(e(),S({type:Q.c2})):qr()},Lr=$=>{if($==="advanced"){if(I){D("didSelectContentTypeSettings");return}y==="contentType"&&D("didSelectContentTypeFieldSettings")}},Or=$=>{g==="attribute"&&y==="contentType"&&c!=="dynamiczone"&&$&&D("willAddMoreFieldToContentType")},Ir=()=>!!(g==="editCategory"||g==="component"||Xe()(k,"createComponent")),Dr=Za(y,L,$t);if(!C||!g)return null;const On=h()(Ie,[g,"form"],{advanced:()=>({sections:[]}),base:()=>({sections:[]})}),Pr=y==="components"||y==="component",In={customInputs:{"allowed-types-select":Un,"boolean-radio-group":oa,"checkbox-with-number-field":ia,"content-type-radio-group":la,"radio-group":dt,relation:ba,"select-category":va,"select-component":Ta,"select-components":Ca,"select-default-boolean":ra,"select-number":Ea,"select-date":Ma,"toggle-draft-publish":Qn,"toggle-review-workflows":_n,"text-plural":ha,"text-singular":Ra,"textarea-enum":xa,...we},componentToCreate:Ke,dynamicZoneTarget:f,formErrors:Ne,isAddingAComponentToAnotherComponent:Pr,isCreatingComponentWhileAddingAField:De,mainBoxHeader:h()(de,[...q,"schema","displayName"],""),modifiedData:k,naturePickerType:y,isCreating:Te,targetUid:L,forTarget:y},Dn=On.advanced({data:k,type:c,step:N,actionType:s,attributes:Gt,extensions:ge,forTarget:y,contentTypeSchema:de.contentType||{},customField:U}).sections,Pn=On.base({data:k,type:c,step:N,actionType:s,attributes:Gt,extensions:ge,forTarget:y,contentTypeSchema:de.contentType||{},customField:U}).sections,kr=ln(Pn),Br=ln(Dn),wr=Object.keys(Ne).some($=>kr.includes($)),$r=Object.keys(Ne).some($=>Br.includes($)),Ur=h()(Ue,[L,"schema","kind"]),jr=()=>s==="edit"&&Gt.every(({name:$})=>$!==k?.name),Wr=()=>{jr()&&D("didEditFieldNameOnContentType")};return n.createElement(l.ModalLayout,{onClose:Ln,labelledBy:"title"},n.createElement(ea,{actionType:s,attributeName:i,categoryName:p,contentTypeKind:M,dynamicZoneTarget:f,modalType:g,forTarget:y,targetUid:L,attributeType:c,customFieldUid:m}),Nn&&n.createElement(Jn,{attributes:Dr,forTarget:y,kind:Ur||"collectionType"}),!Nn&&n.createElement("form",{onSubmit:Ce},n.createElement(l.ModalBody,null,n.createElement(l.TabGroup,{label:"todo",id:"tabs",variant:"simple",ref:A,onTabChange:$=>{$===1&&Lr("advanced")}},n.createElement(l.Flex,{justifyContent:"space-between"},n.createElement(aa,{actionType:s,forTarget:y,kind:M,step:N,modalType:g,attributeType:c,attributeName:i,customField:U}),n.createElement(l.Tabs,null,n.createElement(l.Tab,{hasError:wr},_({id:(0,d.Z)("popUpForm.navContainer.base"),defaultMessage:"Basic settings"})),n.createElement(l.Tab,{hasError:$r,disabled:Ir()},_({id:(0,d.Z)("popUpForm.navContainer.advanced"),defaultMessage:"Advanced settings"})))),n.createElement(l.Divider,null),n.createElement(l.Box,{paddingTop:6},n.createElement(l.TabPanels,null,n.createElement(l.TabPanel,null,n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:6},n.createElement(on,{form:Pn,formErrors:Ne,genericInputProps:In,modifiedData:k,onChange:qn}))),n.createElement(l.TabPanel,null,n.createElement(l.Flex,{direction:"column",alignItems:"stretch",gap:6},n.createElement(on,{form:Dn,formErrors:Ne,genericInputProps:In,modifiedData:k,onChange:qn}))))))),n.createElement(l.ModalFooter,{endActions:n.createElement(ta,{deleteCategory:Pt,deleteContentType:_e,deleteComponent:_e,categoryName:fe.name,isAttributeModal:g==="attribute",isCustomFieldModal:g==="customField",isComponentToDzModal:g==="addComponentToDynamicZone",isComponentAttribute:c==="component",isComponentModal:g==="component",isContentTypeModal:g==="contentType",isCreatingComponent:s==="create",isCreatingDz:s==="create",isCreatingComponentAttribute:k.createComponent||!1,isCreatingComponentInDz:k.createComponent||!1,isCreatingComponentWhileAddingAField:De,isCreatingContentType:s==="create",isEditingAttribute:s==="edit",isDzAttribute:c==="dynamiczone",isEditingCategory:g==="editCategory",isInFirstComponentStep:N==="1",onSubmitAddComponentAttribute:Ce,onSubmitAddComponentToDz:Ce,onSubmitCreateComponent:Ce,onSubmitCreateContentType:Ce,onSubmitCreateDz:Ce,onSubmitEditAttribute:Ce,onSubmitEditCategory:Ce,onSubmitEditComponent:Ce,onSubmitEditContentType:Ce,onSubmitEditCustomFieldAttribute:Ce,onSubmitEditDz:Ce,onClickFinish:Wr}),startActions:n.createElement(l.Button,{variant:"tertiary",onClick:Ln},_({id:"app.components.Button.cancel",defaultMessage:"Cancel"}))})))},bn=e=>e.reduce((a,r)=>(a[r.uid]=r,a),{}),za=(e,a,r,o)=>{const s=a.reduce((m,p)=>{const f=h()(r,p,{});return m[p]=f,m},{});return{[o?"contentType":"component"]:e,components:s}},Ga=(e,a)=>{const r=Object.keys(e).map(o=>h()(e,[o,...a],""));return(0,Le.Z)(r)},Va=u(13339);const Ha=e=>{const a=Object.keys(e).reduce((r,o)=>{const s=e?.[o]?.schema?.attributes??[],i=Ka(s);return[...r,...i]},[]);return(0,Le.Z)(a)},Ka=e=>e.reduce((a,r)=>{const{type:o,component:s}=r;return o==="component"&&a.push(s),a},[]);var hn=Ha;const Ya=e=>{const a=Object.keys(e).reduce((r,o)=>{const s=h()(e,[o],{}),i=s.uid;return Xa(s)&&r.push(i),r},[]);return(0,Le.Z)(a)},Xa=e=>h()(e,["schema","attributes"],[]).some(r=>{const{type:o}=r;return o==="component"});var Ja=u(9086),vn=u.n(Ja),Qa=u(98978),It=u.n(Qa),_a=u(39935),er=u.n(_a);const tr=(e,a)=>{const r=Object.keys(e).filter(o=>{const s=h()(e,o,{}),i=h()(a,o,{}),c=h()(s,["isTemporary"],!1),m=!et()(s,i);return c||m});return(0,Le.Z)(r)},nr=(e,a)=>{const r=Cn(h()(e,"schema.attributes",[]),a),o=h()(e,"isTemporary",!1)?{tmpUID:e.uid}:{uid:e.uid};return Object.assign({},o,{category:e.category},vn()(e.schema,"attributes"),{attributes:r})},Tn=(e,a=!1)=>{const r=h()(e,"uid",null),o=Cn(h()(e,"schema.attributes",[]),r),s=a?{category:h()(e,"category","")}:{},i=Object.assign(s,vn()(e.schema,"attributes"),{attributes:o});return delete i.uid,delete i.isTemporary,delete i.visible,delete i.restrictRelationsTo,i},Cn=(e,a)=>e.reduce((r,{name:o,...s})=>{const i=s,c=i.target===a,m=i.type==="relation",p=h()(i,"targetAttribute",null);if(!c)if(m){const f=Object.assign({},i,{targetAttribute:Mn(p)});r[o]=Qe(f)}else r[o]=Qe(i);if(c){const f=i.target,y=Object.assign({},i,{target:f,targetAttribute:Mn(p)});r[o]=Qe(y)}if(i.customField){const f={...i,type:"customField"};r[o]=Qe(f)}return r},{}),Mn=e=>e==="-"?null:e,Qe=e=>Object.keys(e).reduce((a,r)=>(e[r]!==null&&r!=="plugin"&&(a[r]=e[r]),a),{}),ar=(e,a,r,o=!1)=>tr(e,a).map(c=>{const m=h()(e,c,{});return nr(m,r,o)}),rr=e=>It()(Object.keys(e).map(a=>({visible:e[a].schema.visible,name:a,title:e[a].schema.displayName,plugin:e[a].plugin||null,uid:a,to:`/plugins/${P.Z}/content-types/${a}`,kind:e[a].schema.kind,restrictRelationsTo:e[a].schema.restrictRelationsTo})).filter(a=>a!==null),a=>er()(a.title)),En="did-not-kill-server",sr="server is down";function Ge(e,a){return new Promise(r=>{fetch(`${strapi.backendURL}/_health`,{method:"HEAD",mode:"no-cors",headers:{"Content-Type":"application/json","Keep-Alive":!1}}).then(o=>{if(o.status>=400)throw new Error(sr);if(!a)throw new Error(En);r(e)}).catch(o=>{setTimeout(()=>Ge(e,o.message!==En).then(r),100)})})}var or=e=>Object.values(e.attributes).filter(({type:r})=>r==="dynamiczone").every(({components:r})=>Array.isArray(r)&&r.length>0),re=u(31947),ir=u(54370);const lr=()=>e=>e[`${P.Z}_dataManagerProvider`]||ir.E;var ur=()=>(0,yn.P1)(lr(),e=>e);const dr=e=>Object.keys(e).reduce((a,r)=>{const o=e[r].schema;return a[r]={...e[r],schema:{...o,attributes:cr(o.attributes)}},a},{}),cr=e=>Object.keys(e).reduce((a,r)=>(a.push({...e[r],name:r}),a),[]);var Rn=dr;const Dt=({children:e,components:a,contentTypes:r,isLoading:o,isLoadingForDataToBeSet:s,initialData:i,modifiedData:c,reservedNames:m})=>{const p=(0,ie.useDispatch)(),f=(0,b.useNotification)(),{lockAppWithAutoreload:y,unlockAppWithAutoreload:g}=(0,b.useAutoReloadOverlayBlocker)(),{setCurrentStep:C}=(0,b.useGuidedTour)(),{getPlugin:M}=(0,b.useStrapiApp)(),{apis:N}=M(P.Z),{autoReload:L}=(0,b.useAppInfos)(),{formatMessage:U}=(0,E.useIntl)(),{trackUsage:A}=(0,b.useTracking)(),{refetchPermissions:R}=(0,b.useRBACProvider)(),{pathname:S}=(0,O.useLocation)(),{onCloseModal:V}=(0,le.Z)(),H=(0,O.useRouteMatch)(`/plugins/${P.Z}/content-types/:uid`),ue=(0,O.useRouteMatch)(`/plugins/${P.Z}/component-categories/:categoryUid/:componentUid`),D=(0,b.useFetchClient)(),{put:_,post:ye,del:Ve}=D,ge=(0,n.useRef)();ge.current=U;const we=L,Y=H!==null,$e=Y?"contentType":"component",se=Y?h()(H,"params.uid",null):h()(ue,"params.componentUid",null),G=(0,n.useRef)(),Z=Y?"content-types":"components";G.current=async()=>{try{const[{data:{data:q}},{data:{data:I}},{data:w}]=await Promise.all(["components","content-types","reserved-names"].map(Ae=>D.get(`/${P.Z}/${Ae}`))),X=bn(q),be=Rn(X),he=bn(I),Te=Rn(he);p({type:re.Id,components:be,contentTypes:Te,reservedNames:w})}catch(q){console.error({err:q}),f({type:"warning",message:{id:"notification.error"}})}},(0,n.useEffect)(()=>(G.current(),()=>{p({type:re.Zl})}),[]),(0,n.useEffect)(()=>{!o&&se&&Se()},[o,S,se]),(0,n.useEffect)(()=>{L||f({type:"info",message:{id:(0,d.Z)("notification.info.autoreaload-disable")}})},[L,f]);const Ue=(q,I,w,X=!1,be,he=!1)=>{const Te=X?re.JO:re.gz;p({type:Te,attributeToSet:q,forTarget:I,targetUid:w,initialAttribute:be,shouldAddComponentToData:he})},He=({attributeToSet:q,forTarget:I,targetUid:w,initialAttribute:X})=>{p({type:re.Ir,attributeToSet:q,forTarget:I,targetUid:w,initialAttribute:X})},je=({attributeToSet:q,forTarget:I,targetUid:w,initialAttribute:X})=>{p({type:re.Ly,attributeToSet:q,forTarget:I,targetUid:w,initialAttribute:X})},Pt=(q,I)=>{p({type:re.Uu,dynamicZoneTarget:q,componentsToAdd:I})},_e=(q,I,w,X,be=!1)=>{const he=I==="contentType"?re.Sh:re.VR;p({type:he,data:q,componentCategory:X,schemaType:I,uid:w,shouldAddComponentToData:be})},kt=(q,I)=>{p({type:re.o_,dynamicZoneTarget:q,newComponents:I})},Bt=(q,I,w="")=>{const X=q==="components"?re.lw:re.ai;q==="contentType"&&A("willDeleteFieldOfContentType"),p({type:X,mainDataKey:q,attributeToRemoveName:I,componentUid:w})},wt=async q=>{try{const I=`/${P.Z}/component-categories/${q}`,w=window.confirm(U({id:(0,d.Z)("popUpWarning.bodyMessage.category.delete")}));V(),w&&(y(),await Ve(I),await Ge(!0),await g(),await De())}catch(I){console.error({err:I}),f({type:"warning",message:{id:"notification.error"}})}finally{g()}},de=async()=>{try{const q=`/${P.Z}/${Z}/${se}`,I=h()(c,[$e,"isTemporary"],!1),w=window.confirm(U({id:(0,d.Z)(`popUpWarning.bodyMessage.${Y?"contentType":"component"}.delete`)}));if(V(),w){if(I){p({type:re.Ap});return}y(),await Ve(q),await Ge(!0),await g(),await De()}}catch(q){console.error({err:q}),f({type:"warning",message:{id:"notification.error"}})}finally{g()}},$t=async(q,I)=>{try{const w=`/${P.Z}/component-categories/${q}`;V(),y(),await _(w,I),await Ge(!0),await g(),await De()}catch(w){console.error({err:w}),f({type:"warning",message:{id:"notification.error"}})}finally{g()}},Ut=()=>{const q=Object.assign({},a,c.components);if(!Y){const w=h()(c,"component",{});J()(q,h()(w,["uid"],""),w)}const I=Ya(q);return(0,Le.Z)(I)},jt=()=>{const q=hn(a),I=hn(c.components||{});return(0,Le.Z)([...I,...q])},Wt=(q,I)=>{p({type:re.NG,dzName:q,componentToRemoveIndex:I})},Se=()=>{const q=Y?r:a,I=h()(q,se,{schema:{attributes:[]}}),w=(0,Va.Z)(I.schema.attributes,a),X=za(I,w,a,Y),be=h()(I,"isTemporary",!1)&&ee()(h()(I,"schema.attributes",[]))===0;p({type:re.xx,schemaToSet:X,hasJustCreatedSchema:be})},Ke=(0,n.useMemo)(()=>{const q=Y?r:a;return se==="create-content-type"?!1:!Object.keys(q).includes(se)&&!o},[a,r,se,Y,o]),Ne=(0,n.useMemo)(()=>{const q=Object.keys(r).filter(I=>h()(r,[I,"schema","visible"],!0)).sort();return h()(q,"0","create-content-type")},[r]);if(Ke)return n.createElement(O.Redirect,{to:`/plugins/${P.Z}/content-types/${Ne}`});const fe=async q=>{try{const I=h()(c,[$e,"isTemporary"],!1),w={components:ar(c.components,a,se,I)};if(Y){const he=N.forms.mutateContentTypeSchema({...Tn(c.contentType),...q},i.contentType);if(!or(he)){f({type:"warning",message:{id:(0,d.Z)("notification.error.dynamiczone-min.validation"),defaultMessage:"At least one component is required in a dynamic zone to be able to save a content type"}});return}w.contentType=he,A("willSaveContentType")}else w.component=Tn(c.component,!0),A("willSaveComponent");y();const X=`/${P.Z}/${Z}`,be=I?X:`${X}/${se}`;if(I?await ye(be,w):await _(be,w),await Ge(!0),await g(),I&&(i.contentType?.schema.kind==="collectionType"||i.contentType?.schema.kind==="singleType")&&C("contentTypeBuilder.success"),Y){A("didSaveContentType");const he=h()(w,["contentType","schema","name"],""),Te=h()(i,["contentType","schema","name"],"");!I&&he!==Te&&A("didEditNameOfContentType")}else A("didSaveComponent");await De()}catch(I){Y||A("didNotSaveComponent"),console.error({err:I.response}),f({type:"warning",message:{id:"notification.error"}})}finally{g()}},De=async()=>{await R()},k=(q,I,w)=>{p({type:re.bi,data:q,schemaType:I,uid:w})};return n.createElement(Re.Z.Provider,{value:{addAttribute:Ue,addCustomFieldAttribute:He,addCreatedComponentToDynamicZone:Pt,allComponentsCategories:Ga(a,["category"]),changeDynamicZoneComponents:kt,components:a,componentsGroupedByCategory:ae()(a,"category"),componentsThatHaveOtherComponentInTheirAttributes:Ut(),contentTypes:r,createSchema:_e,deleteCategory:wt,deleteData:de,editCategory:$t,editCustomFieldAttribute:je,isInDevelopmentMode:we,initialData:i,isInContentTypeView:Y,modifiedData:c,nestedComponents:jt(),removeAttribute:Bt,removeComponentFromDynamicZone:Wt,reservedNames:m,setModifiedData:Se,sortedContentTypesList:rr(r),submitData:fe,updateSchema:k}},s?n.createElement(b.LoadingIndicatorPage,null):n.createElement(n.Fragment,null,e,we&&n.createElement(Wa,null)))};Dt.defaultProps={components:{}},Dt.propTypes={children:t().node.isRequired,components:t().object,contentTypes:t().object.isRequired,isLoading:t().bool.isRequired,isLoadingForDataToBeSet:t().bool.isRequired,initialData:t().object.isRequired,modifiedData:t().object.isRequired,reservedNames:t().object.isRequired};const mr=ur(),pr=(0,ie.connect)(mr,null);var gr=(0,qe.compose)(pr)((0,n.memo)(Dt)),fr=u(51216);const xn={actionType:null,attributeName:null,attributeType:null,categoryName:null,dynamicZoneTarget:null,forTarget:null,modalType:null,isOpen:!1,kind:null,step:null,targetUid:null,customFieldUid:null},An=({children:e})=>{const[a,r]=(0,n.useState)(xn),{trackUsage:o}=(0,b.useTracking)(),s=({attributeType:A,customFieldUid:R})=>{r(S=>({...S,actionType:"create",modalType:"customField",attributeType:A,customFieldUid:R}))},i=({attributeType:A,step:R})=>{a.forTarget==="contentType"&&o("didSelectContentTypeFieldType",{type:A}),r(S=>({...S,actionType:"create",modalType:"attribute",step:R,attributeType:A}))},c=({dynamicZoneTarget:A,targetUid:R})=>{r(S=>({...S,dynamicZoneTarget:A,targetUid:R,modalType:"addComponentToDynamicZone",forTarget:"contentType",step:"1",actionType:"edit",isOpen:!0}))},m=({forTarget:A,targetUid:R})=>{r(S=>({...S,actionType:"create",forTarget:A,targetUid:R,modalType:"chooseAttribute",isOpen:!0}))},p=A=>{r(R=>({...R,...A,isOpen:!0}))},f=A=>{r(R=>({...R,categoryName:A,actionType:"edit",modalType:"editCategory",isOpen:!0}))},y=({forTarget:A,targetUid:R,attributeName:S,attributeType:V,customFieldUid:H})=>{r(ue=>({...ue,modalType:"customField",customFieldUid:H,actionType:"edit",forTarget:A,targetUid:R,attributeName:S,attributeType:V,isOpen:!0}))},g=({forTarget:A,targetUid:R,attributeName:S,attributeType:V,step:H})=>{r(ue=>({...ue,modalType:"attribute",actionType:"edit",forTarget:A,targetUid:R,attributeName:S,attributeType:V,step:H,isOpen:!0}))},C=({modalType:A,forTarget:R,targetUid:S,kind:V})=>{r(H=>({...H,modalType:A,actionType:"edit",forTarget:R,targetUid:S,kind:V,isOpen:!0}))},M=()=>{r(xn)},N=({forTarget:A,targetUid:R})=>{r(S=>({...S,forTarget:A,targetUid:R,modalType:"chooseAttribute"}))},L=()=>{r(A=>({...A,attributeType:"component",modalType:"attribute",step:"2"}))},U=({dynamicZoneTarget:A})=>{r(R=>({...R,dynamicZoneTarget:A,modalType:"addComponentToDynamicZone",actionType:"create",step:"1",attributeType:null,attributeName:null}))};return n.createElement(fr.Z.Provider,{value:{...a,onClickSelectField:i,onClickSelectCustomField:s,onCloseModal:M,onNavigateToChooseAttributeModal:N,onNavigateToAddCompoToDZModal:U,onOpenModalAddComponentsToDZ:c,onNavigateToCreateComponentStep2:L,onOpenModalAddField:m,onOpenModalCreateSchema:p,onOpenModalEditCategory:f,onOpenModalEditField:g,onOpenModalEditCustomField:y,onOpenModalEditSchema:C,setFormModalNavigationState:r}},e)};An.propTypes={children:t().node.isRequired};var yr=An;const br=(0,n.lazy)(()=>u.e(5905).then(u.bind(u,84015)));var hr=()=>{const{url:e}=(0,O.useRouteMatch)(),{categoryUid:a}=(0,O.useParams)();return n.createElement(n.Suspense,{fallback:n.createElement(b.LoadingIndicatorPage,null)},n.createElement(O.Switch,null,n.createElement(O.Route,{path:`${e}/:componentUid`},n.createElement(br,{categoryId:a}))))},vr=u(61590),Tr=u(43110),Cr=u(77013),Mr=u(79318),Er=u(28832),Zn=u(66618),Rr=u(86834),xr=u.n(Rr),Ar=u(58469),Zr=()=>{const{components:e,componentsGroupedByCategory:a,contentTypes:r,isInDevelopmentMode:o,sortedContentTypesList:s,modifiedData:i,initialData:c}=(0,Oe.Z)(),m=(0,b.useNotification)(),{trackUsage:p}=(0,b.useTracking)(),[f,y]=(0,n.useState)(""),{onOpenModalCreateSchema:g,onOpenModalEditCategory:C}=(0,le.Z)(),M=It()(Object.keys(a).map(D=>({name:D,title:D,isEditable:o,onClickEdit(_,ye){_.stopPropagation(),N?C(ye.name):R()},links:It()(a[D].map(_=>({name:_.uid,to:`/plugins/${P.Z}/component-categories/${D}/${_.uid}`,title:_.schema.displayName})),_=>_.title)})),D=>D.title),N=!Object.keys(r).some(D=>r[D].isTemporary===!0)&&!Object.keys(e).some(D=>e[D].isTemporary===!0)&&et()(i,c),L=()=>{N?(p("willCreateContentType"),g({modalType:"contentType",kind:"collectionType",actionType:"create",forTarget:"contentType"})):R()},U=()=>{N?(p("willCreateSingleType"),g({modalType:"contentType",kind:"singleType",actionType:"create",forTarget:"contentType"})):R()},A=()=>{N?(p("willCreateComponent"),g({modalType:"component",kind:null,actionType:"create",forTarget:"component"})):R()},R=()=>{m({type:"info",message:{id:`${(0,d.Z)("notification.info.creating.notSaved")}`,defaultMessage:"Please save your work before creating a new collection type or component"}})},S=s.filter(D=>D.visible),V=[{name:"models",title:{id:`${(0,d.Z)("menu.section.models.name")}`,defaultMessage:"Collection Types"},customLink:o&&{id:`${(0,d.Z)("button.model.create")}`,defaultMessage:"Create new collection type",onClick:L},links:S.filter(D=>D.kind==="collectionType")},{name:"singleTypes",title:{id:`${(0,d.Z)("menu.section.single-types.name")}`,defaultMessage:"Single Types"},customLink:o&&{id:`${(0,d.Z)("button.single-types.create")}`,defaultMessage:"Create new single type",onClick:U},links:S.filter(D=>D.kind==="singleType")},{name:"components",title:{id:`${(0,d.Z)("menu.section.components.name")}`,defaultMessage:"Components"},customLink:o&&{id:`${(0,d.Z)("button.component.create")}`,defaultMessage:"Create a new component",onClick:A},links:M}],H=D=>f?(0,Ar.ZP)(D,ze()(f),{keys:[_=>ze()(_.title)]}):D;return{menu:(()=>V.map(D=>D.links.some(ye=>!xr()(ye.links))?{...D,links:D.links.map(ye=>({...ye,links:H(ye.links)}))}:{...D,links:H(D.links)}))(),searchValue:f,onSearchChange:y}},Fr=()=>{const{menu:e,searchValue:a,onSearchChange:r}=Zr(),{formatMessage:o}=(0,E.useIntl)();return n.createElement(vr.m,{ariaLabel:o({id:`${(0,d.Z)("plugin.name")}`,defaultMessage:"Content-Types Builder"})},n.createElement(Tr.p,{searchable:!0,value:a,onClear:()=>r(""),onChange:s=>r(s.target.value),label:o({id:`${(0,d.Z)("plugin.name")}`,defaultMessage:"Content-Types Builder"}),searchLabel:o({id:"global.search",defaultMessage:"Search"})}),n.createElement(Cr.Z,null,e.map(s=>n.createElement(n.Fragment,{key:s.name},n.createElement(Mr.D,{label:o({id:s.title.id,defaultMessage:s.title.defaultMessage}),collapsable:!0,badgeLabel:s.links.length.toString()},s.links.map(i=>i.links?n.createElement(Er.z,{key:i.name,label:Fe()(i.title)},i.links.map(c=>n.createElement(Zn.E,{as:O.NavLink,to:c.to,active:c.active,key:c.name,isSubSectionChild:!0},Fe()(o({id:c.name,defaultMessage:c.title}))))):n.createElement(Zn.E,{as:O.NavLink,to:i.to,active:i.active,key:i.name},Fe()(o({id:i.name,defaultMessage:i.title}))))),s.customLink&&n.createElement(l.Box,{paddingLeft:7},n.createElement(l.TextButton,{onClick:s.customLink.onClick,startIcon:n.createElement(l.Icon,{as:pe.Plus,width:(0,b.pxToRem)(8),height:(0,b.pxToRem)(8)}),marginTop:2},o({id:s.customLink.id,defaultMessage:s.customLink.defaultMessage})))))))};const Fn=(0,n.lazy)(()=>u.e(5905).then(u.bind(u,84015)));var Sr=()=>{const{formatMessage:e}=(0,E.useIntl)(),a=e({id:`${P.Z}.plugin.name`,defaultMessage:"Content Types Builder"}),{startSection:r}=(0,b.useGuidedTour)(),o=(0,n.useRef)(r);return(0,n.useEffect)(()=>{o.current&&o.current("contentTypeBuilder")},[]),n.createElement(b.CheckPagePermissions,{permissions:x.Z.main},n.createElement(B.Helmet,{title:a}),n.createElement(yr,null,n.createElement(gr,null,n.createElement(l.Layout,{sideNav:n.createElement(Fr,null)},n.createElement(n.Suspense,{fallback:n.createElement(b.LoadingIndicatorPage,null)},n.createElement(O.Switch,null,n.createElement(O.Route,{path:`/plugins/${P.Z}/content-types/create-content-type`,component:Fn}),n.createElement(O.Route,{path:`/plugins/${P.Z}/content-types/:uid`,component:Fn}),n.createElement(O.Route,{path:`/plugins/${P.Z}/component-categories/:categoryUid`,component:hr})))))))}},92318:function(W,z,u){"use strict";var n=u(25158);const O=B=>`${n.Z}.${B}`;z.Z=O},56671:function(W,z,u){var n=u(35897),O=u(74741),B=O(n);W.exports=B},91131:function(W,z,u){var n=u(94318),O=u(3387),B="[object RegExp]";function E(b){return O(b)&&n(b)==B}W.exports=E},52920:function(W,z,u){var n=u(56671),O=u(81580);function B(E,b){var l=-1,x=O(E)?Array(E.length):[];return n(E,function(P,K,t){x[++l]=b(P,K,t)}),x}W.exports=B},50690:function(W,z,u){var n=u(26460),O=u(80166),B=u(88904),E=u(52920),b=u(36024),l=u(76535),x=u(1397),P=u(15362),K=u(77236);function t(te,h,Ze){h.length?h=n(h,function(J){return K(J)?function(oe){return O(oe,J.length===1?J[0]:J)}:J}):h=[P];var ae=-1;h=n(h,l(B));var me=E(te,function(J,oe,ee){var ie=n(h,function(qe){return qe(J)});return{criteria:ie,index:++ae,value:J}});return b(me,function(J,oe){return x(J,oe,Ze)})}W.exports=t},36024:function(W){function z(u,n){var O=u.length;for(u.sort(n);O--;)u[O]=u[O].value;return u}W.exports=z},40709:function(W,z,u){var n=u(22945);function O(B,E){if(B!==E){var b=B!==void 0,l=B===null,x=B===B,P=n(B),K=E!==void 0,t=E===null,te=E===E,h=n(E);if(!t&&!h&&!P&&B>E||P&&K&&te&&!t&&!h||l&&K&&te||!b&&te||!x)return 1;if(!l&&!P&&!h&&B<E||h&&b&&x&&!l&&!P||t&&b&&x||!K&&x||!te)return-1}return 0}W.exports=O},1397:function(W,z,u){var n=u(40709);function O(B,E,b){for(var l=-1,x=B.criteria,P=E.criteria,K=x.length,t=b.length;++l<K;){var te=n(x[l],P[l]);if(te){if(l>=t)return te;var h=b[l];return te*(h=="desc"?-1:1)}}return B.index-E.index}W.exports=O},74741:function(W,z,u){var n=u(81580);function O(B,E){return function(b,l){if(b==null)return b;if(!n(b))return B(b,l);for(var x=b.length,P=E?x:-1,K=Object(b);(E?P--:++P<x)&&l(K[P],P,K)!==!1;);return b}}W.exports=O},52654:function(W,z,u){var n=u(91131),O=u(76535),B=u(91782),E=B&&B.isRegExp,b=E?O(E):n;W.exports=b},98978:function(W,z,u){var n=u(40314),O=u(50690),B=u(94569),E=u(63108),b=B(function(l,x){if(l==null)return[];var P=x.length;return P>1&&E(l,x[0],x[1])?x=[]:P>2&&E(x[0],x[1],x[2])&&(x=[x[0]]),O(l,n(x,1),[])});W.exports=b},51382:function(W,z,u){var n=u(90454),O=u(24793),B=u(34327),E=u(85973),b=u(52654),l=u(38788),x=u(51119),P=u(25225),K=u(41119),t=30,te="...",h=/\w*$/;function Ze(ae,me){var J=t,oe=te;if(E(me)){var ee="separator"in me?me.separator:ee;J="length"in me?P(me.length):J,oe="omission"in me?n(me.omission):oe}ae=K(ae);var ie=ae.length;if(B(ae)){var qe=x(ae);ie=qe.length}if(J>=ie)return ae;var Re=J-l(oe);if(Re<1)return oe;var le=qe?O(qe,0,Re).join(""):ae.slice(0,Re);if(ee===void 0)return le+oe;if(qe&&(Re+=le.length-Re),b(ee)){if(ae.slice(Re).search(ee)){var d,Le=le;for(ee.global||(ee=RegExp(ee.source,K(h.exec(ee))+"g")),ee.lastIndex=0;d=ee.exec(Le);)var Ye=d.index;le=le.slice(0,Ye===void 0?Re:Ye)}}else if(ae.indexOf(n(ee),Re)!=Re){var Xe=le.lastIndexOf(ee);Xe>-1&&(le=le.slice(0,Xe))}return le+oe}W.exports=Ze}}]);
@@ -1,3 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1495],{97744:function(Y,c,i){i.r(c),i.d(c,{default:function(){return P}});var e=i(32735),g=i(5636),n=i(13478),t=i(39161),I=i(57269),Z=i(60216),d=i.n(Z),C=i(83292),s=i(85684);const F=C.default.a`
2
- color: ${({theme:l})=>l.colors.primary600};
3
- `,p=({config:l})=>{const{formatMessage:a}=(0,g.useIntl)();return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:(0,s.Z)("Settings.email.plugin.title.config"),defaultMessage:"Configuration"})),e.createElement(t.Typography,null,a({id:(0,s.Z)("Settings.email.plugin.text.configuration"),defaultMessage:"The plugin is configured through the {file} file, checkout this {link} for the documentation."},{file:"./config/plugins.js",link:e.createElement(F,{href:"https://docs.strapi.io/developer-docs/latest/plugins/email.html",target:"_blank",rel:"noopener noreferrer"},a({id:(0,s.Z)("link"),defaultMessage:"Link"}))}))),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{col:6,s:12},e.createElement(t.TextInput,{name:"shipper-email",label:a({id:(0,s.Z)("Settings.email.plugin.label.defaultFrom"),defaultMessage:"Default sender email"}),placeholder:a({id:(0,s.Z)("Settings.email.plugin.placeholder.defaultFrom"),defaultMessage:"ex: Strapi No-Reply '<'no-reply@strapi.io'>'"}),disabled:!0,onChange:()=>{},value:l.settings.defaultFrom})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(t.TextInput,{name:"response-email",label:a({id:(0,s.Z)("Settings.email.plugin.label.defaultReplyTo"),defaultMessage:"Default response email"}),placeholder:a({id:(0,s.Z)("Settings.email.plugin.placeholder.defaultReplyTo"),defaultMessage:"ex: Strapi '<'example@strapi.io'>'"}),disabled:!0,onChange:()=>{},value:l.settings.defaultReplyTo})),e.createElement(t.GridItem,{col:6,s:12},e.createElement(t.Select,{name:"email-provider",label:a({id:(0,s.Z)("Settings.email.plugin.label.provider"),defaultMessage:"Email provider"}),disabled:!0,onChange:()=>{},value:l.provider},e.createElement(t.Option,{value:l.provider},l.provider)))))};p.propTypes={config:d().shape({provider:d().string,settings:d().shape({defaultFrom:d().string,defaultReplyTo:d().string})}).isRequired};var x=p,f=i(5173),h=f.Ry().shape({email:f.Z_().email(n.translatedErrors.email).required(n.translatedErrors.required)}),R=i(59990);const A=async()=>{const{get:l}=(0,n.getFetchClient)(),{data:a}=await l("/email/settings");return a.config},L=async l=>{const{post:a}=(0,n.getFetchClient)();await a("/email/test",l)};var E=()=>{const{formatMessage:l}=(0,g.useIntl)();return e.createElement(e.Fragment,null,e.createElement(n.SettingsPageTitle,{name:l({id:(0,s.Z)("Settings.email.plugin.title"),defaultMessage:"Configuration"})}),e.createElement(t.HeaderLayout,{id:"title",title:l({id:(0,s.Z)("Settings.email.plugin.title"),defaultMessage:"Configuration"}),subtitle:l({id:(0,s.Z)("Settings.email.plugin.subTitle"),defaultMessage:"Test the settings for the Email plugin"})}))};const B=()=>e.createElement(n.CheckPagePermissions,{permissions:R.Z.settings},e.createElement(G,null)),G=()=>{const l=(0,n.useNotification)(),{formatMessage:a}=(0,g.useIntl)(),{lockApp:k,unlockApp:N}=(0,n.useOverlayBlocker)(),{notifyStatus:y}=(0,t.useNotifyAT)();(0,n.useFocusWhenNavigate)();const[u,D]=(0,e.useState)({}),[H,v]=(0,e.useState)(!1),[S,T]=(0,e.useState)(!1),[r,M]=(0,e.useState)(""),[O,b]=(0,e.useState)(!1),[V,$]=(0,e.useState)({provider:"",settings:{defaultFrom:"",defaultReplyTo:"",testAddress:""}});(0,e.useEffect)(()=>{v(!0),A().then(o=>{y(a({id:(0,s.Z)("Settings.email.plugin.notification.data.loaded"),defaultMessage:"Email settings data has been loaded"})),$(o);const m=o?.settings?.testAddress;m&&M(m)}).catch(()=>l({type:"warning",message:a({id:(0,s.Z)("Settings.email.plugin.notification.config.error"),defaultMessage:"Failed to retrieve the email config"})})).finally(()=>v(!1))},[a,l,y]),(0,e.useEffect)(()=>{u.email&&document.querySelector("#test-address-input").focus()},[u]),(0,e.useEffect)(()=>{h.validate({email:r},{abortEarly:!1}).then(()=>b(!0)).catch(()=>b(!1))},[r]);const j=o=>{M(()=>o.target.value)},W=async o=>{o.preventDefault();try{await h.validate({email:r},{abortEarly:!1}),T(!0),k(),L({to:r}).then(()=>{l({type:"success",message:a({id:(0,s.Z)("Settings.email.plugin.notification.test.success"),defaultMessage:"Email test succeeded, check the {to} mailbox"},{to:r})})}).catch(()=>{l({type:"warning",message:a({id:(0,s.Z)("Settings.email.plugin.notification.test.error"),defaultMessage:"Failed to send a test mail to {to}"},{to:r})})}).finally(()=>{T(!1),N()})}catch(m){D((0,n.getYupInnerErrors)(m))}};return H?e.createElement(t.Main,{labelledBy:"title","aria-busy":"true"},e.createElement(E,null),e.createElement(t.ContentLayout,null,e.createElement(n.LoadingIndicatorPage,null))):e.createElement(t.Main,{labelledBy:"title","aria-busy":S},e.createElement(E,null),e.createElement(t.ContentLayout,null,e.createElement("form",{onSubmit:W},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:7},e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(x,{config:V})),e.createElement(t.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:4},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:(0,s.Z)("Settings.email.plugin.title.test"),defaultMessage:"Test email delivery"})),e.createElement(t.Grid,{gap:5,alignItems:"end"},e.createElement(t.GridItem,{col:6,s:12},e.createElement(t.TextInput,{id:"test-address-input",name:"test-address",onChange:j,label:a({id:(0,s.Z)("Settings.email.plugin.label.testAddress"),defaultMessage:"Recipient email"}),value:r,error:u.email?.id&&a({id:(0,s.Z)(`${u.email?.id}`),defaultMessage:"This is an invalid email"}),placeholder:a({id:(0,s.Z)("Settings.email.plugin.placeholder.testAddress"),defaultMessage:"ex: developer@example.com"})})),e.createElement(t.GridItem,{col:7,s:12},e.createElement(t.Button,{loading:S,disabled:!O,type:"submit",startIcon:e.createElement(I.Envelop,null)},a({id:(0,s.Z)("Settings.email.plugin.button.test-email"),defaultMessage:"Send test email"}))))))))))};var P=B}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[320],{10329:function(e){e.exports=JSON.parse(`{"Analytics":"Analytics","Auth.components.Oops.text":"Your account has been suspended.","Auth.components.Oops.text.admin":"If this is a mistake, please contact your administrator.","Auth.components.Oops.title":"Oops...","Auth.form.active.label":"Active","Auth.form.button.forgot-password":"Send Email","Auth.form.button.go-home":"GO BACK HOME","Auth.form.button.login":"Login","Auth.form.button.login.providers.error":"We cannot connect you through the selected provider.","Auth.form.button.login.strapi":"Log in via Strapi","Auth.form.button.password-recovery":"Password Recovery","Auth.form.button.register":"Let's start","Auth.form.confirmPassword.label":"Confirm Password","Auth.form.currentPassword.label":"Current Password","Auth.form.email.label":"Email","Auth.form.email.placeholder":"e.g. kai@doe.com","Auth.form.error.blocked":"Your account has been blocked by the administrator.","Auth.form.error.code.provide":"Incorrect code provided.","Auth.form.error.confirmed":"Your account email is not confirmed.","Auth.form.error.email.invalid":"This email is invalid.","Auth.form.error.email.provide":"Please provide your username or your email.","Auth.form.error.email.taken":"Email is already taken.","Auth.form.error.invalid":"Identifier or password invalid.","Auth.form.error.params.provide":"Incorrect params provided.","Auth.form.error.password.format":"Your password cannot contain the symbol \`$\` more than three times.","Auth.form.error.password.local":"This user never set a local password, please login via the provider used during account creation.","Auth.form.error.password.matching":"Passwords do not match.","Auth.form.error.password.provide":"Please provide your password.","Auth.form.error.ratelimit":"Too many attempts, please try again in a minute.","Auth.form.error.user.not-exist":"This email does not exist.","Auth.form.error.username.taken":"Username is already taken.","Auth.form.firstname.label":"First name","Auth.form.firstname.placeholder":"e.g. Kai","Auth.form.forgot-password.email.label":"Enter your email","Auth.form.forgot-password.email.label.success":"Email successfully sent to","Auth.form.lastname.label":"Last name","Auth.form.lastname.placeholder":"e.g. Doe","Auth.form.password.hide-password":"Hide password","Auth.form.password.hint":"Must be at least 8 characters, 1 uppercase, 1 lowercase & 1 number","Auth.form.password.show-password":"Show password","Auth.form.register.news.label":"Keep me updated about new features & upcoming improvements (by doing this you accept the {terms} and the {policy}).","Auth.form.register.subtitle":"Credentials are only used to authenticate in Strapi. All saved data will be stored in your database.","Auth.form.rememberMe.label":"Remember me","Auth.form.username.label":"Username","Auth.form.username.placeholder":"e.g. Kai_Doe","Auth.form.welcome.subtitle":"Log in to your Strapi account","Auth.form.welcome.title":"Welcome to Strapi!","Auth.link.forgot-password":"Forgot your password?","Auth.link.ready":"Ready to sign in?","Auth.link.signin":"Sign in","Auth.link.signin.account":"Already have an account?","Auth.login.sso.divider":"Or login with","Auth.login.sso.loading":"Loading providers...","Auth.login.sso.subtitle":"Login to your account via SSO","Auth.privacy-policy-agreement.policy":"privacy policy","Auth.privacy-policy-agreement.terms":"terms","Auth.reset-password.title":"Reset password","Content Manager":"Content Manager","Content Type Builder":"Content-Types Builder","Documentation":"Documentation","Email":"Email","Files Upload":"Files Upload","HomePage.helmet.title":"Homepage","HomePage.roadmap":"See our roadmap","HomePage.welcome.congrats":"Congrats!","HomePage.welcome.congrats.content":"You are logged in as the first administrator. To discover the powerful features provided by Strapi,","HomePage.welcome.congrats.content.bold":"we recommend you to create your first Collection-Type.","Media Library":"Media Library","New entry":"New entry","Password":"Password","Provider":"Provider","ResetPasswordToken":"Reset Password Token","Role":"Role","Roles & Permissions":"Roles & Permissions","Roles.ListPage.notification.delete-all-not-allowed":"Some roles could not be deleted since they are associated with users","Roles.ListPage.notification.delete-not-allowed":"A role cannot be deleted if associated with users","Roles.RoleRow.select-all":"Select {name} for bulk actions","Roles.RoleRow.user-count":"{number, plural, =0 {# user} one {# user} other {# users}}","Roles.components.List.empty.withSearch":"There is no role corresponding to the search ({search})...","Settings.PageTitle":"Settings \u2014 {name}","Settings.apiTokens.ListView.headers.createdAt":"Created at","Settings.apiTokens.ListView.headers.description":"Description","Settings.apiTokens.ListView.headers.lastUsedAt":"Last used","Settings.apiTokens.ListView.headers.name":"Name","Settings.apiTokens.ListView.headers.type":"Token type","Settings.apiTokens.regenerate":"Regenerate","Settings.apiTokens.createPage.title":"Create API Token","Settings.transferTokens.createPage.title":"Create Transfer Token","Settings.tokens.RegenerateDialog.title":"Regenerate token","Settings.apiTokens.addFirstToken":"Add your first API Token","Settings.apiTokens.addNewToken":"Add new API Token","Settings.tokens.copy.editMessage":"For security reasons, you can only see your token once.","Settings.tokens.copy.editTitle":"This token isn\u2019t accessible anymore.","Settings.tokens.copy.lastWarning":"Make sure to copy this token, you won\u2019t be able to see it again!","Settings.apiTokens.create":"Create new API Token","Settings.apiTokens.createPage.permissions.description":"Only actions bound by a route are listed below.","Settings.apiTokens.createPage.permissions.title":"Permissions","Settings.apiTokens.description":"List of generated tokens to consume the API","Settings.apiTokens.createPage.BoundRoute.title":"Bound route to","Settings.apiTokens.createPage.permissions.header.title":"Advanced settings","Settings.apiTokens.createPage.permissions.header.hint":"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route","Settings.tokens.duration.30-days":"30 days","Settings.tokens.duration.7-days":"7 days","Settings.tokens.duration.90-days":"90 days","Settings.tokens.duration.expiration-date":"Expiration date","Settings.tokens.duration.unlimited":"Unlimited","Settings.apiTokens.emptyStateLayout":"You don\u2019t have any content yet...","Settings.tokens.form.duration":"Token duration","Settings.tokens.form.type":"Token type","Settings.tokens.form.name":"Name","Settings.tokens.form.description":"Description","Settings.tokens.notification.copied":"Token copied to clipboard.","Settings.tokens.popUpWarning.message":"Are you sure you want to regenerate this token?","Settings.tokens.Button.cancel":"Cancel","Settings.tokens.Button.regenerate":"Regenerate","Settings.tokens.types.full-access":"Full access","Settings.tokens.types.read-only":"Read-only","Settings.tokens.types.custom":"Custom","Settings.tokens.regenerate":"Regenerate","Settings.transferTokens.title":"Transfer Tokens","Settings.transferTokens.description":"List of generated transfer tokens","Settings.transferTokens.create":"Create new Transfer Token","Settings.transferTokens.addFirstToken":"Add your first Transfer Token","Settings.transferTokens.addNewToken":"Add new Transfer Token","Settings.transferTokens.emptyStateLayout":"You don\u2019t have any content yet...","Settings.tokens.ListView.headers.name":"Name","Settings.tokens.ListView.headers.description":"Description","Settings.transferTokens.ListView.headers.type":"Token type","Settings.tokens.ListView.headers.createdAt":"Created at","Settings.tokens.ListView.headers.lastUsedAt":"Last used","Settings.application.ee.admin-seats.count":"<text>{enforcementUserCount}</text>/{permittedSeats}","Settings.application.ee.admin-seats.at-limit-tooltip":"At limit: add seats to invite more users","Settings.application.ee.admin-seats.add-seats":"{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}","Settings.application.customization":"Customization","Settings.application.customization.auth-logo.carousel-hint":"Replace the logo in the authentication pages","Settings.application.customization.carousel-hint":"Change the admin panel logo (Max dimension: {dimension}x{dimension}, Max file size: {size}KB)","Settings.application.customization.carousel-slide.label":"Logo slide","Settings.application.customization.carousel.auth-logo.title":"Auth logo","Settings.application.customization.carousel.change-action":"Change logo","Settings.application.customization.carousel.menu-logo.title":"Menu logo","Settings.application.customization.carousel.reset-action":"Reset logo","Settings.application.customization.carousel.title":"Logo","Settings.application.customization.menu-logo.carousel-hint":"Replace the logo in the main navigation","Settings.application.customization.modal.cancel":"Cancel","Settings.application.customization.modal.pending":"Pending logo","Settings.application.customization.modal.pending.card-badge":"image","Settings.application.customization.modal.pending.choose-another":"Choose another logo","Settings.application.customization.modal.pending.subtitle":"Manage the chosen logo before uploading it","Settings.application.customization.modal.pending.title":"Logo ready to upload","Settings.application.customization.modal.pending.upload":"Upload logo","Settings.application.customization.modal.tab.label":"How do you want to upload your assets?","Settings.application.customization.modal.upload":"Upload logo","Settings.application.customization.modal.upload.cta.browse":"Browse files","Settings.application.customization.modal.upload.drag-drop":"Drag and Drop here or","Settings.application.customization.modal.upload.error-format":"Wrong format uploaded (accepted formats only: jpeg, jpg, png, svg).","Settings.application.customization.modal.upload.error-network":"Network error","Settings.application.customization.modal.upload.error-size":"The file uploaded is too large (max dimension: {dimension}x{dimension}, max file size: {size}KB)","Settings.application.customization.modal.upload.file-validation":"Max dimension: {dimension}x{dimension}, Max size: {size}KB","Settings.application.customization.modal.upload.from-computer":"From computer","Settings.application.customization.modal.upload.from-url":"From URL","Settings.application.customization.modal.upload.from-url.input-label":"URL","Settings.application.customization.modal.upload.next":"Next","Settings.application.customization.size-details":"Max dimension: {dimension}\xD7{dimension}, Max file size: {size}KB","Settings.application.description":"Administration panel\u2019s global information","Settings.application.edition-title":"current plan","Settings.application.ee-or-ce":"{communityEdition, select, true {Community Edition} other {Enterprise Edition}}","Settings.application.get-help":"Get help","Settings.application.link-pricing":"See all pricing plans","Settings.application.link-upgrade":"Upgrade your admin panel","Settings.application.node-version":"node version","Settings.application.strapi-version":"Strapi version","Settings.application.strapiVersion":"Strapi version","Settings.application.title":"Overview","Settings.error":"Error","Settings.global":"Global Settings","Settings.permissions":"Administration panel","Settings.permissions.auditLogs.action":"Action","Settings.permissions.auditLogs.admin.auth.success":"Admin login","Settings.permissions.auditLogs.admin.logout":"Admin logout","Settings.permissions.auditLogs.component.create":"Create component","Settings.permissions.auditLogs.component.delete":"Delete component","Settings.permissions.auditLogs.component.update":"Update component","Settings.permissions.auditLogs.content-type.create":"Create content type","Settings.permissions.auditLogs.content-type.delete":"Delete content type","Settings.permissions.auditLogs.content-type.update":"Update content type","Settings.permissions.auditLogs.date":"Date","Settings.permissions.auditLogs.details":"Log Details","Settings.permissions.auditLogs.entry.create":"Create entry{model, select, undefined {} other { ({model})}}","Settings.permissions.auditLogs.entry.delete":"Delete entry{model, select, undefined {} other { ({model})}}","Settings.permissions.auditLogs.entry.publish":"Publish entry {model, select, undefined {} other {({model})}}","Settings.permissions.auditLogs.entry.unpublish":"Unpublish entry{model, select, undefined {} other { ({model})}}","Settings.permissions.auditLogs.entry.update":"Update entry{model, select, undefined {} other { ({model})}}","Settings.permissions.auditLogs.filters.combobox.aria-label":"Search and select an option to filter","Settings.permissions.auditLogs.listview.header.subtitle":"Logs of all the activities that happened in your environment","Settings.permissions.auditLogs.media.create":"Create media","Settings.permissions.auditLogs.media.delete":"Delete media","Settings.permissions.auditLogs.media.update":"Update media","Settings.permissions.auditLogs.payload":"Payload","Settings.permissions.auditLogs.permission.create":"Create permission","Settings.permissions.auditLogs.permission.delete":"Delete permission","Settings.permissions.auditLogs.permission.update":"Update permission","Settings.permissions.auditLogs.role.create":"Create role","Settings.permissions.auditLogs.role.delete":"Delete role","Settings.permissions.auditLogs.role.update":"Update role","Settings.permissions.auditLogs.user":"User","Settings.permissions.auditLogs.user.create":"Create user","Settings.permissions.auditLogs.user.delete":"Delete user","Settings.permissions.auditLogs.user.fullname":"{firstname} {lastname}","Settings.permissions.auditLogs.user.update":"Update user","Settings.permissions.auditLogs.userId":"User ID","Settings.permissions.category":"Permissions settings for the {category}","Settings.permissions.category.plugins":"Permissions settings for the {category} plugin","Settings.permissions.conditions.anytime":"Anytime","Settings.permissions.conditions.apply":"Apply","Settings.permissions.conditions.can":"Can","Settings.permissions.conditions.conditions":"Conditions","Settings.permissions.conditions.define-conditions":"Define conditions","Settings.permissions.conditions.links":"Links","Settings.permissions.conditions.no-actions":"You first need to select actions (create, read, update, ...) before defining conditions on them.","Settings.permissions.conditions.none-selected":"Anytime","Settings.permissions.conditions.or":"OR","Settings.permissions.conditions.when":"When","Settings.permissions.select-all-by-permission":"Select all {label} permissions","Settings.permissions.select-by-permission":"Select {label} permission","Settings.permissions.users.active":"Active","Settings.permissions.users.create":"Invite new user","Settings.permissions.users.email":"Email","Settings.permissions.users.firstname":"Firstname","Settings.permissions.users.form.sso":"Connect with SSO","Settings.permissions.users.form.sso.description":"When enabled (ON), users can login via SSO","Settings.permissions.users.inactive":"Inactive","Settings.permissions.users.lastname":"Lastname","Settings.permissions.users.listview.header.subtitle":"All the users who have access to the Strapi admin panel","Settings.permissions.users.roles":"Roles","Settings.permissions.users.strapi-author":"Author","Settings.permissions.users.strapi-editor":"Editor","Settings.permissions.users.strapi-super-admin":"Super Admin","Settings.permissions.users.tabs.label":"Tabs Permissions","Settings.permissions.users.user-status":"User status","Settings.permissions.users.username":"Username","Settings.profile.form.notify.data.loaded":"Your profile data has been loaded","Settings.profile.form.section.experience.clear.select":"Clear the interface language selected","Settings.profile.form.section.experience.here":"here","Settings.profile.form.section.experience.interfaceLanguage":"Interface language","Settings.profile.form.section.experience.interfaceLanguage.hint":"This will only display your own interface in the chosen language.","Settings.profile.form.section.experience.interfaceLanguageHelp":"Preference changes will apply only to you. More information is available {here}.","Settings.profile.form.section.experience.mode.hint":"Displays your interface in the chosen mode.","Settings.profile.form.section.experience.mode.label":"Interface mode","Settings.profile.form.section.experience.mode.option-label":"{name} mode","Settings.profile.form.section.experience.title":"Experience","Settings.profile.form.section.helmet.title":"User profile","Settings.profile.form.section.profile.page.title":"Profile page","Settings.review-workflows.page.title":"Review Workflows","Settings.review-workflows.page.subtitle":"{count, plural, one {# stage} other {# stages}}","Settings.review-workflows.page.isLoading":"Workflow is loading","Settings.review-workflows.page.delete.confirm.body":"All entries assigned to deleted stages will be moved to the first stage. Are you sure you want to save this?","Settings.review-workflows.stage.name.label":"Stage name","Settings.roles.create.description":"Define the rights given to the role","Settings.roles.create.title":"Create a role","Settings.roles.created":"Role created","Settings.roles.edit.title":"Edit a role","Settings.roles.form.button.users-with-role":"{number, plural, =0 {# users} one {# user} other {# users}} with this role","Settings.roles.form.created":"Created","Settings.roles.form.description":"Name and description of the role","Settings.roles.form.permission.property-label":"{label} permissions","Settings.roles.form.permissions.attributesPermissions":"Fields permissions","Settings.roles.form.permissions.create":"Create","Settings.roles.form.permissions.delete":"Delete","Settings.roles.form.permissions.publish":"Publish","Settings.roles.form.permissions.read":"Read","Settings.roles.form.permissions.update":"Update","Settings.roles.list.button.add":"Add new role","Settings.roles.list.description":"List of roles","Settings.roles.title.singular":"role","Settings.sso.description":"Configure the settings for the Single Sign-On feature.","Settings.sso.form.defaultRole.description":"It will attach the new authenticated user to the selected role","Settings.sso.form.defaultRole.description-not-allowed":"You need to have the permission to read the admin roles","Settings.sso.form.defaultRole.label":"Default role","Settings.sso.form.registration.description":"Create new user on SSO login if no account exists","Settings.sso.form.registration.label":"Auto-registration","Settings.sso.title":"Single Sign-On","Settings.webhooks.create":"Create a webhook","Settings.webhooks.create.header":"Create new header","Settings.webhooks.created":"Webhook created","Settings.webhooks.event.publish-tooltip":"This event only exists for contents with Draft/Publish system enabled","Settings.webhooks.events.create":"Create","Settings.webhooks.events.update":"Update","Settings.webhooks.form.events":"Events","Settings.webhooks.form.headers":"Headers","Settings.webhooks.form.url":"URL","Settings.webhooks.headers.remove":"Remove header row {number}","Settings.webhooks.key":"Key","Settings.webhooks.list.button.add":"Create new webhook","Settings.webhooks.list.description":"Get POST changes notifications","Settings.webhooks.list.empty.description":"No webhooks found","Settings.webhooks.list.empty.link":"See our documentation","Settings.webhooks.list.empty.title":"There are no webhooks yet","Settings.webhooks.list.th.actions":"actions","Settings.webhooks.list.th.status":"status","Settings.webhooks.singular":"webhook","Settings.webhooks.title":"Webhooks","Settings.webhooks.to.delete":"{webhooksToDeleteLength, plural, one {# asset} other {# assets}} selected","Settings.webhooks.trigger":"Trigger","Settings.webhooks.trigger.cancel":"Cancel trigger","Settings.webhooks.trigger.pending":"Pending\u2026","Settings.webhooks.trigger.save":"Please save to trigger","Settings.webhooks.trigger.success":"Success!","Settings.webhooks.trigger.success.label":"Trigger succeeded","Settings.webhooks.trigger.test":"Test-trigger","Settings.webhooks.trigger.title":"Save before Trigger","Settings.webhooks.value":"Value","Usecase.back-end":"Back-end developer","Usecase.button.skip":"Skip this question","Usecase.content-creator":"Content Creator","Usecase.front-end":"Front-end developer","Usecase.full-stack":"Full-stack developer","Usecase.input.work-type":"What type of work do you do?","Usecase.notification.success.project-created":"Project has been successfully created","Usecase.other":"Other","Usecase.title":"Tell us a bit more about yourself","Username":"Username","Users & Permissions":"Users & Permissions","Users":"Users","Users.components.List.empty":"There is no users...","Users.components.List.empty.withFilters":"There is no users with the applied filters...","Users.components.List.empty.withSearch":"There is no users corresponding to the search ({search})...","admin.pages.MarketPlacePage.filters.categories":"Categories","admin.pages.MarketPlacePage.filters.categoriesSelected":"{count, plural, =0 {No categories} one {# category} other {# categories}} selected","admin.pages.MarketPlacePage.filters.collections":"Collections","admin.pages.MarketPlacePage.filters.collectionsSelected":"{count, plural, =0 {No Collections} one {# Collection} other {# Collections}} selected","admin.pages.MarketPlacePage.helmet":"Marketplace \u2014 Plugins","admin.pages.MarketPlacePage.missingPlugin.description":"Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!","admin.pages.MarketPlacePage.missingPlugin.title":"Missing a plugin?","admin.pages.MarketPlacePage.offline.subtitle":"You need to be connected to the Internet to access Strapi Market.","admin.pages.MarketPlacePage.offline.title":"You are offline","admin.pages.MarketPlacePage.plugin.copy":"Copy install command","admin.pages.MarketPlacePage.plugin.copy.success":"Install command ready to be pasted in your terminal","admin.pages.MarketPlacePage.plugin.downloads":"This plugin has {downloadsCount} weekly downloads","admin.pages.MarketPlacePage.plugin.githubStars":"This plugin was starred {starsCount} on GitHub","admin.pages.MarketPlacePage.plugin.info":"Learn more","admin.pages.MarketPlacePage.plugin.info.label":"Learn more about {pluginName}","admin.pages.MarketPlacePage.plugin.info.text":"More","admin.pages.MarketPlacePage.plugin.installed":"Installed","admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi":"Made by Strapi","admin.pages.MarketPlacePage.plugin.tooltip.verified":"Plugin verified by Strapi","admin.pages.MarketPlacePage.plugin.version":"Update your Strapi version: \\"{strapiAppVersion}\\" to: \\"{versionRange}\\"","admin.pages.MarketPlacePage.plugin.version.null":"Unable to verify compatibility with your Strapi version: \\"{strapiAppVersion}\\"","admin.pages.MarketPlacePage.plugins":"Plugins","admin.pages.MarketPlacePage.provider.downloads":"This provider has {downloadsCount} weekly downloads","admin.pages.MarketPlacePage.provider.githubStars":"This provider was starred {starsCount} on GitHub","admin.pages.MarketPlacePage.providers":"Providers","admin.pages.MarketPlacePage.search.clear":"Clear the search","admin.pages.MarketPlacePage.search.empty":"No result for \\"{target}\\"","admin.pages.MarketPlacePage.search.placeholder":"Search","admin.pages.MarketPlacePage.sort.alphabetical":"Alphabetical order","admin.pages.MarketPlacePage.sort.alphabetical.selected":"Sort by alphabetical order","admin.pages.MarketPlacePage.sort.githubStars":"Number of GitHub stars","admin.pages.MarketPlacePage.sort.githubStars.selected":"Sort by GitHub stars","admin.pages.MarketPlacePage.sort.newest":"Newest","admin.pages.MarketPlacePage.sort.newest.selected":"Sort by newest","admin.pages.MarketPlacePage.sort.npmDownloads":"Number of downloads","admin.pages.MarketPlacePage.sort.npmDownloads.selected":"Sort by npm downloads","admin.pages.MarketPlacePage.submit.plugin.link":"Submit plugin","admin.pages.MarketPlacePage.submit.provider.link":"Submit provider","admin.pages.MarketPlacePage.subtitle":"Get more out of Strapi","admin.pages.MarketPlacePage.tab-group.label":"Plugins and Providers for Strapi","anErrorOccurred":"Woops! Something went wrong. Please, try again.","app.component.CopyToClipboard.label":"Copy to clipboard","app.component.search.label":"Search for {target}","app.component.table.duplicate":"Duplicate {target}","app.component.table.edit":"Edit {target}","app.component.table.read":"Read {target}","app.component.table.select.one-entry":"Select {target}","app.component.table.view":"{target} details","app.components.BlockLink.blog":"Blog","app.components.BlockLink.blog.content":"Read the latest news about Strapi and the ecosystem.","app.components.BlockLink.code":"Code examples","app.components.BlockLink.code.content":"Learn by testing real projects developed the community.","app.components.BlockLink.documentation.content":"Discover the essential concepts, guides and instructions.","app.components.BlockLink.tutorial":"Tutorials","app.components.BlockLink.tutorial.content":"Follow step-by-step instructions to use and customize Strapi.","app.components.BlockLink.cloud":"Strapi Cloud","app.components.BlockLink.cloud.content":"A fully composable, and collaborative platform to boost your team velocity.","app.components.Button.cancel":"Cancel","app.components.Button.confirm":"Confirm","app.components.Button.reset":"Reset","app.components.ComingSoonPage.comingSoon":"Coming soon","app.components.ConfirmDialog.title":"Confirmation","app.components.DownloadInfo.download":"Download in progress...","app.components.DownloadInfo.text":"This could take a minute. Thanks for your patience.","app.components.EmptyAttributes.title":"There are no fields yet","app.components.EmptyStateLayout.content-document":"No content found","app.components.EmptyStateLayout.content-permissions":"You don't have the permissions to access that content","app.components.GuidedTour.CM.create.content":"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip \u2014 Don't forget to hit publish on the content you create.</p>","app.components.GuidedTour.CM.create.title":"\u26A1\uFE0F Create content","app.components.GuidedTour.CM.success.content":"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>","app.components.GuidedTour.CM.success.cta.title":"Test the API","app.components.GuidedTour.CM.success.title":"Step 2: Completed \u2705","app.components.GuidedTour.CTB.create.content":"<p>Collection Types help you manage several entries, Single Types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection Type whereas a Homepage would be a Single Type.</p>","app.components.GuidedTour.CTB.create.cta.title":"Build a Collection Type","app.components.GuidedTour.CTB.create.title":"\u{1F9E0} Create a first Collection Type","app.components.GuidedTour.CTB.success.content":"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>","app.components.GuidedTour.CTB.success.title":"Step 1: Completed \u2705","app.components.GuidedTour.apiTokens.create.content":"<p>Generate an authentication token here and retrieve the content you just created.</p>","app.components.GuidedTour.apiTokens.create.cta.title":"Generate an API Token","app.components.GuidedTour.apiTokens.create.title":"\u{1F680} See content in action","app.components.GuidedTour.apiTokens.success.content":"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>","app.components.GuidedTour.apiTokens.success.cta.title":"Go back to homepage","app.components.GuidedTour.apiTokens.success.title":"Step 3: Completed \u2705","app.components.GuidedTour.create-content":"Create content","app.components.GuidedTour.home.CM.title":"\u26A1\uFE0F What would you like to share with the world?","app.components.GuidedTour.home.CTB.cta.title":"Go to the Content type Builder","app.components.GuidedTour.home.CTB.title":"\u{1F9E0} Build the content structure","app.components.GuidedTour.home.apiTokens.cta.title":"Test the API","app.components.GuidedTour.skip":"Skip the tour","app.components.GuidedTour.title":"3 steps to get started","app.components.HomePage.button.blog":"See more on the blog","app.components.HomePage.community":"Join the community","app.components.HomePage.community.content":"Discuss with team members, contributors and developers on different channels.","app.components.HomePage.create":"Create your first Content type","app.components.HomePage.roadmap":"See our roadmap","app.components.HomePage.welcome":"Welcome on board \u{1F44B}","app.components.HomePage.welcome.again":"Welcome \u{1F44B}","app.components.HomePage.welcomeBlock.content":"Congrats! You are logged as the first administrator. To discover the powerful features provided by Strapi, we recommend you to create your first Content type!","app.components.HomePage.welcomeBlock.content.again":"We hope you are making progress on your project! Feel free to read the latest news about Strapi. We are giving our best to improve the product based on your feedback.","app.components.HomePage.welcomeBlock.content.issues":"issues.","app.components.HomePage.welcomeBlock.content.raise":" or raise ","app.components.ImgPreview.hint":"Drag & drop your file into this area or {browse} for a file to upload","app.components.ImgPreview.hint.browse":"browse","app.components.InputFile.newFile":"Add new file","app.components.InputFileDetails.open":"Open in a new tab","app.components.InputFileDetails.originalName":"Original name:","app.components.InputFileDetails.remove":"Remove this file","app.components.InputFileDetails.size":"Size:","app.components.InstallPluginPage.Download.description":"It might take a few seconds to download and install the plugin.","app.components.InstallPluginPage.Download.title":"Downloading...","app.components.InstallPluginPage.description":"Extend your app effortlessly.","app.components.LeftMenu.collapse":"Collapse the navbar","app.components.LeftMenu.expand":"Expand the navbar","app.components.LeftMenu.general":"General","app.components.LeftMenu.logo.alt":"Application logo","app.components.LeftMenu.logout":"Logout","app.components.LeftMenu.navbrand.title":"Strapi Dashboard","app.components.LeftMenu.navbrand.workplace":"Workplace","app.components.LeftMenu.plugins":"Plugins","app.components.LeftMenuFooter.help":"Help","app.components.LeftMenuFooter.poweredBy":"Powered by ","app.components.LeftMenuLinkContainer.collectionTypes":"Collection Types","app.components.LeftMenuLinkContainer.configuration":"Configurations","app.components.LeftMenuLinkContainer.general":"General","app.components.LeftMenuLinkContainer.noPluginsInstalled":"No plugins installed yet","app.components.LeftMenuLinkContainer.plugins":"Plugins","app.components.LeftMenuLinkContainer.singleTypes":"Single Types","app.components.ListPluginsPage.deletePlugin.description":"It might take a few seconds to uninstall the plugin.","app.components.ListPluginsPage.deletePlugin.title":"Uninstalling","app.components.ListPluginsPage.description":"List of the installed plugins in the project.","app.components.ListPluginsPage.helmet.title":"List plugins","app.components.Logout.logout":"Logout","app.components.Logout.profile":"Profile","app.components.MarketplaceBanner":"Discover plugins built by the community, and many more awesome things to kickstart your project, on Strapi Marketplace.","app.components.MarketplaceBanner.image.alt":"A Strapi rocket logo","app.components.MarketplaceBanner.link":"Check it out now","app.components.NotFoundPage.back":"Back to homepage","app.components.NotFoundPage.description":"Not Found","app.components.Official":"Official","app.components.Onboarding.help.button":"Help button","app.components.Onboarding.label.completed":"% completed","app.components.Onboarding.link.build-content":"Build a content architecture","app.components.Onboarding.link.manage-content":"Add & manage content","app.components.Onboarding.link.manage-media":"Manage media","app.components.Onboarding.link.more-videos":"Watch more videos","app.components.Onboarding.title":"Get Started Videos","app.components.PluginCard.Button.label.download":"Download","app.components.PluginCard.Button.label.install":"Already installed","app.components.PluginCard.PopUpWarning.install.impossible.autoReload.needed":"The autoReload feature needs to be enabled. Please start your app with \`yarn develop\`.","app.components.PluginCard.PopUpWarning.install.impossible.confirm":"I understand!","app.components.PluginCard.PopUpWarning.install.impossible.environment":"For security reasons, a plugin can only be downloaded in a development environment.","app.components.PluginCard.PopUpWarning.install.impossible.title":"Downloading is impossible","app.components.PluginCard.compatible":"Compatible with your app","app.components.PluginCard.compatibleCommunity":"Compatible with the community","app.components.PluginCard.more-details":"More details","app.components.ToggleCheckbox.off-label":"False","app.components.ToggleCheckbox.on-label":"True","app.components.Users.MagicLink.connect":"Copy and share this link to give access to this user","app.components.Users.MagicLink.connect.sso":"Send this link to the user, the first login can be made via a SSO provider","app.components.Users.ModalCreateBody.block-title.details":"User details","app.components.Users.ModalCreateBody.block-title.roles":"User's roles","app.components.Users.ModalCreateBody.block-title.roles.description":"A user can have one or several roles","app.components.Users.SortPicker.button-label":"Sort by","app.components.Users.SortPicker.sortby.email_asc":"Email (A to Z)","app.components.Users.SortPicker.sortby.email_desc":"Email (Z to A)","app.components.Users.SortPicker.sortby.firstname_asc":"First name (A to Z)","app.components.Users.SortPicker.sortby.firstname_desc":"First name (Z to A)","app.components.Users.SortPicker.sortby.lastname_asc":"Last name (A to Z)","app.components.Users.SortPicker.sortby.lastname_desc":"Last name (Z to A)","app.components.Users.SortPicker.sortby.username_asc":"Username (A to Z)","app.components.Users.SortPicker.sortby.username_desc":"Username (Z to A)","app.components.listPlugins.button":"Add New Plugin","app.components.listPlugins.title.none":"No plugins installed","app.components.listPluginsPage.deletePlugin.error":"An error occurred while uninstalling the plugin","app.containers.App.notification.error.init":"An error occurred while requesting the API","app.containers.AuthPage.ForgotPasswordSuccess.text.contact-admin":"If you do not receive this link, please contact your administrator.","app.containers.AuthPage.ForgotPasswordSuccess.text.email":"It can take a few minutes to receive your password recovery link.","app.containers.AuthPage.ForgotPasswordSuccess.title":"Email sent","app.containers.Users.EditPage.form.active.label":"Active","app.containers.Users.EditPage.header.label":"Edit {name}","app.containers.Users.EditPage.header.label-loading":"Edit user","app.containers.Users.EditPage.roles-bloc-title":"Attributed roles","app.containers.Users.ModalForm.footer.button-success":"Invite user","app.links.configure-view":"Configure the view","app.page.not.found":"Oops! We can't seem to find the page you're looking for...","app.static.links.cheatsheet":"CheatSheet","app.utils.SelectOption.defaultMessage":" ","app.utils.add-filter":"Add filter","app.utils.close-label":"Close","app.utils.defaultMessage":" ","app.utils.delete":"Delete","app.utils.duplicate":"Duplicate","app.utils.edit":"Edit","app.utils.errors.file-too-big.message":"The file is too big","app.utils.filter-value":"Filter value","app.utils.filters":"Filters","app.utils.notify.data-loaded":"The {target} has loaded","app.utils.placeholder.defaultMessage":" ","app.utils.publish":"Publish","app.utils.select-all":"Select all","app.utils.select-field":"Select field","app.utils.select-filter":"Select filter","app.utils.unpublish":"Unpublish","clearLabel":"Clear","coming.soon":"This content is currently under construction and will be back in a few weeks!","component.Input.error.validation.integer":"The value must be an integer","components.AutoReloadBlocker.description":"Run Strapi with one of the following commands:","components.AutoReloadBlocker.header":"Reload feature is required for this plugin.","components.ErrorBoundary.title":"Something went wrong...","components.FilterOptions.FILTER_TYPES.$contains":"contains (case sensitive)","components.FilterOptions.FILTER_TYPES.$endsWith":"ends with","components.FilterOptions.FILTER_TYPES.$eq":"is","components.FilterOptions.FILTER_TYPES.$gt":"is greater than","components.FilterOptions.FILTER_TYPES.$gte":"is greater than or equal to","components.FilterOptions.FILTER_TYPES.$lt":"is lower than","components.FilterOptions.FILTER_TYPES.$lte":"is lower than or equal to","components.FilterOptions.FILTER_TYPES.$ne":"is not","components.FilterOptions.FILTER_TYPES.$notContains":"does not contain (case sensitive)","components.FilterOptions.FILTER_TYPES.$notNull":"is not null","components.FilterOptions.FILTER_TYPES.$null":"is null","components.FilterOptions.FILTER_TYPES.$startsWith":"starts with","components.Input.error.attribute.key.taken":"This value already exists","components.Input.error.attribute.sameKeyAndName":"Can't be equal","components.Input.error.attribute.taken":"This field name already exists","components.Input.error.contain.lowercase":"Password must contain at least one lowercase character","components.Input.error.contain.number":"Password must contain at least one number","components.Input.error.contain.uppercase":"Password must contain at least one uppercase character","components.Input.error.contentTypeName.taken":"This name already exists","components.Input.error.custom-error":"{errorMessage} ","components.Input.error.password.noMatch":"Passwords do not match","components.Input.error.validation.email":"This is an invalid email","components.Input.error.validation.json":"This doesn't match the JSON format","components.Input.error.validation.lowercase":"The value must be a lowercase string","components.Input.error.validation.max":"The value is too high.","components.Input.error.validation.maxLength":"The value is too long.","components.Input.error.validation.min":"The value is too low.","components.Input.error.validation.minLength":"The value is too short.","components.Input.error.validation.minSupMax":"Can't be superior","components.Input.error.validation.regex":"The value does not match the regex.","components.Input.error.validation.required":"This value is required.","components.Input.error.validation.unique":"This value is already used.","components.InputSelect.option.placeholder":"Choose here","components.ListRow.empty":"There is no data to be shown.","components.NotAllowedInput.text":"No permissions to see this field","components.OverlayBlocker.description":"You're using a feature that needs the server to restart. Please wait until the server is up.","components.OverlayBlocker.description.serverError":"The server should have restarted, please check your logs in the terminal.","components.OverlayBlocker.title":"Waiting for restart...","components.OverlayBlocker.title.serverError":"The restart is taking longer than expected","components.PageFooter.select":"Entries per page","components.ProductionBlocker.description":"For safety purposes we have to disable this plugin in other environments.","components.ProductionBlocker.header":"This plugin is only available in development.","components.Search.placeholder":"Search...","components.TableHeader.sort":"Sort on {label}","components.Wysiwyg.ToggleMode.markdown-mode":"Markdown mode","components.Wysiwyg.ToggleMode.preview-mode":"Preview mode","components.Wysiwyg.collapse":"Collapse","components.Wysiwyg.selectOptions.H1":"Title H1","components.Wysiwyg.selectOptions.H2":"Title H2","components.Wysiwyg.selectOptions.H3":"Title H3","components.Wysiwyg.selectOptions.H4":"Title H4","components.Wysiwyg.selectOptions.H5":"Title H5","components.Wysiwyg.selectOptions.H6":"Title H6","components.Wysiwyg.selectOptions.title":"Add a title","components.WysiwygBottomControls.charactersIndicators":"characters","components.WysiwygBottomControls.fullscreen":"Expand","components.WysiwygBottomControls.uploadFiles":"Drag & drop files, paste from the clipboard or {browse}.","components.WysiwygBottomControls.uploadFiles.browse":"select them","components.pagination.go-to":"Go to page {page}","components.pagination.go-to-next":"Go to next page","components.pagination.go-to-previous":"Go to previous page","components.pagination.remaining-links":"And {number} other links","components.popUpWarning.button.cancel":"No, cancel","components.popUpWarning.button.confirm":"Yes, confirm","components.popUpWarning.message":"Are you sure you want to delete this?","components.popUpWarning.title":"Please confirm","content-manager.App.schemas.data-loaded":"The schemas have been successfully loaded","content-manager.DynamicTable.relation-loaded":"Relations have been loaded","content-manager.DynamicTable.relation-loading":"Relations are loading","content-manager.DynamicTable.relation-more":"This relation contains more entities than displayed","content-manager.EditRelations.title":"Relational data","content-manager.HeaderLayout.button.label-add-entry":"Create new entry","content-manager.api.id":"API ID","content-manager.apiError.This attribute must be unique":"{field} must be unique","content-manager.components.AddFilterCTA.add":"Filters","content-manager.components.AddFilterCTA.hide":"Filters","content-manager.components.DragHandle-label":"Drag","content-manager.components.DraggableAttr.edit":"Click to edit","content-manager.components.DraggableCard.delete.field":"Delete {item}","content-manager.components.DraggableCard.edit.field":"Edit {item}","content-manager.components.DraggableCard.move.field":"Move {item}","content-manager.components.DynamicTable.row-line":"item line {number}","content-manager.components.DynamicZone.ComponentPicker-label":"Pick one component","content-manager.components.DynamicZone.add-component":"Add a component to {componentName}","content-manager.components.DynamicZone.delete-label":"Delete {name}","content-manager.components.DynamicZone.error-message":"The component contains error(s)","content-manager.components.DynamicZone.missing-components":"There {number, plural, =0 {are # missing components} one {is # missing component} other {are # missing components}}","content-manager.components.DynamicZone.move-down-label":"Move component down","content-manager.components.DynamicZone.move-up-label":"Move component up","content-manager.components.DynamicZone.pick-compo":"Pick one component","content-manager.components.DynamicZone.required":"Component is required","content-manager.components.EmptyAttributesBlock.button":"Go to settings page","content-manager.components.EmptyAttributesBlock.description":"You can change your settings","content-manager.components.FieldItem.linkToComponentLayout":"Set the component's layout","content-manager.components.FieldSelect.label":"Add a field","content-manager.components.FilterOptions.button.apply":"Apply","content-manager.components.FiltersPickWrapper.PluginHeader.actions.apply":"Apply","content-manager.components.FiltersPickWrapper.PluginHeader.actions.clearAll":"Clear all","content-manager.components.FiltersPickWrapper.PluginHeader.description":"Set the conditions to apply to filter the entries","content-manager.components.FiltersPickWrapper.PluginHeader.title.filter":"Filters","content-manager.components.FiltersPickWrapper.hide":"Hide","content-manager.components.LeftMenu.Search.label":"Search for a content type","content-manager.components.LeftMenu.collection-types":"Collection Types","content-manager.components.LeftMenu.single-types":"Single Types","content-manager.components.LimitSelect.itemsPerPage":"Items per page","content-manager.components.NotAllowedInput.text":"No permissions to see this field","content-manager.components.RelationInput.icon-button-aria-label":"Drag","content-manager.components.RepeatableComponent.error-message":"The component(s) contain error(s)","content-manager.components.Search.placeholder":"Search for an entry...","content-manager.components.Select.draft-info-title":"State: Draft","content-manager.components.Select.publish-info-title":"State: Published","content-manager.components.SettingsViewWrapper.pluginHeader.description.edit-settings":"Customize how the edit view will look like.","content-manager.components.SettingsViewWrapper.pluginHeader.description.list-settings":"Define the settings of the list view.","content-manager.components.SettingsViewWrapper.pluginHeader.title":"Configure the view \u2014 {name}","content-manager.components.TableDelete.delete":"Delete all","content-manager.components.TableDelete.deleteSelected":"Delete selected","content-manager.components.TableDelete.label":"{number, plural, one {# entry} other {# entries}} selected","content-manager.components.TableEmpty.withFilters":"There are no {contentType} with the applied filters...","content-manager.components.TableEmpty.withSearch":"There are no {contentType} corresponding to the search ({search})...","content-manager.components.TableEmpty.withoutFilter":"There are no {contentType}...","content-manager.components.empty-repeatable":"No entry yet. Click on the button below to add one.","content-manager.components.notification.info.maximum-requirement":"You have already reached the maximum number of fields","content-manager.components.notification.info.minimum-requirement":"A field has been added to match the minimum requirement","content-manager.components.repeatable.reorder.error":"An error occurred while reordering your component's field, please try again","content-manager.components.reset-entry":"Reset entry","content-manager.components.uid.apply":"apply","content-manager.components.uid.available":"Available","content-manager.components.uid.regenerate":"Regenerate","content-manager.components.uid.suggested":"suggested","content-manager.components.uid.unavailable":"Unavailable","content-manager.containers.Edit.Link.Layout":"Configure the layout","content-manager.containers.Edit.Link.Model":"Edit the Collection-Type","content-manager.containers.Edit.addAnItem":"Add an item...","content-manager.containers.Edit.clickToJump":"Click to jump to the entry","content-manager.containers.Edit.delete":"Delete","content-manager.containers.Edit.delete-entry":"Delete this entry","content-manager.containers.Edit.editing":"Editing...","content-manager.containers.Edit.information":"Information","content-manager.containers.Edit.information.by":"By","content-manager.containers.Edit.information.created":"Created","content-manager.containers.Edit.information.draftVersion":"draft version","content-manager.containers.Edit.information.editing":"Editing","content-manager.containers.Edit.information.lastUpdate":"Last update","content-manager.containers.Edit.information.publishedVersion":"published version","content-manager.containers.Edit.pluginHeader.title.new":"Create an entry","content-manager.containers.Edit.reset":"Reset","content-manager.containers.Edit.returnList":"Return to list","content-manager.containers.Edit.seeDetails":"Details","content-manager.containers.Edit.submit":"Save","content-manager.containers.EditSettingsView.modal-form.edit-field":"Edit the field","content-manager.containers.EditView.add.new-entry":"Add an entry","content-manager.containers.EditView.notification.errors":"The form contains some errors","content-manager.containers.Home.introduction":"To edit your entries go to the specific link in the left menu. This plugin doesn't have a proper way to edit settings and it's still under active development.","content-manager.containers.Home.pluginHeaderDescription":"Manage your entries through a powerful and beautiful interface.","content-manager.containers.Home.pluginHeaderTitle":"Content Manager","content-manager.containers.List.draft":"Draft","content-manager.containers.List.errorFetchRecords":"Error","content-manager.containers.List.published":"Published","content-manager.containers.ListPage.displayedFields":"Displayed Fields","content-manager.containers.ListPage.items":"{number, plural, =0 {items} one {item} other {items}}","content-manager.containers.ListPage.table-headers.publishedAt":"State","content-manager.containers.ListSettingsView.modal-form.edit-label":"Edit {fieldName}","content-manager.containers.SettingPage.add.field":"Insert another field","content-manager.containers.SettingPage.add.relational-field":"Insert another related field","content-manager.containers.SettingPage.attributes":"Attributes fields","content-manager.containers.SettingPage.attributes.description":"Define the order of the attributes","content-manager.containers.SettingPage.editSettings.description":"Drag & drop the fields to build the layout","content-manager.containers.SettingPage.editSettings.entry.title":"Entry title","content-manager.containers.SettingPage.editSettings.entry.title.description":"Set the displayed field of your entry","content-manager.containers.SettingPage.editSettings.relation-field.description":"Set the displayed field in both the edit and list views","content-manager.containers.SettingPage.editSettings.title":"Edit view (settings)","content-manager.containers.SettingPage.layout":"Layout","content-manager.containers.SettingPage.listSettings.description":"Configure the options for this Collection Type","content-manager.containers.SettingPage.listSettings.title":"List view (settings)","content-manager.containers.SettingPage.pluginHeaderDescription":"Configure the specific settings for this Collection Type","content-manager.containers.SettingPage.relations":"Related fields","content-manager.containers.SettingPage.settings":"Settings","content-manager.containers.SettingPage.view":"View","content-manager.containers.SettingViewModel.pluginHeader.title":"Content Manager \u2014 {name}","content-manager.containers.SettingsPage.Block.contentType.description":"Configure the specific settings","content-manager.containers.SettingsPage.Block.contentType.title":"Collection Types","content-manager.containers.SettingsPage.Block.generalSettings.description":"Configure the default options for your Collection Types","content-manager.containers.SettingsPage.Block.generalSettings.title":"General","content-manager.containers.SettingsPage.pluginHeaderDescription":"Configure the settings for all your Collection Types and Groups","content-manager.containers.SettingsView.list.subtitle":"Configure the layout and display of your Collection Types and Groups","content-manager.containers.SettingsView.list.title":"Display configurations","content-manager.dnd.cancel-item":"{item}, dropped. Re-order cancelled.","content-manager.dnd.drop-item":"{item}, dropped. Final position in list: {position}.","content-manager.dnd.grab-item":"{item}, grabbed. Current position in list: {position}. Press up and down arrow to change position, Spacebar to drop, Escape to cancel.","content-manager.dnd.instructions":"Press spacebar to grab and re-order","content-manager.dnd.reorder":"{item}, moved. New position in list: {position}.","content-manager.edit-settings-view.link-to-ctb.components":"Edit the component","content-manager.edit-settings-view.link-to-ctb.content-types":"Edit the content type","content-manager.emptyAttributes.button":"Go to Collection Type builder","content-manager.emptyAttributes.description":"Add your first field to your Collection Type","content-manager.emptyAttributes.title":"There are no fields yet","content-manager.error.attribute.key.taken":"This value already exists","content-manager.error.attribute.sameKeyAndName":"Can't be equals","content-manager.error.attribute.taken":"This field name already exists","content-manager.error.contentTypeName.taken":"This name already exists","content-manager.error.model.fetch":"An error occurred during models config fetch.","content-manager.error.record.create":"An error occurred during record creation.","content-manager.error.record.delete":"An error occurred during record deletion.","content-manager.error.record.fetch":"An error occurred during record fetch.","content-manager.error.record.update":"An error occurred during record update.","content-manager.error.records.count":"An error occurred during count records fetch.","content-manager.error.records.fetch":"An error occurred during records fetch.","content-manager.error.schema.generation":"An error occurred during schema generation.","content-manager.error.validation.json":"This is not a JSON","content-manager.error.validation.max":"The value is too high.","content-manager.error.validation.maxLength":"The value is too long.","content-manager.error.validation.min":"The value is too low.","content-manager.error.validation.minLength":"The value is too short.","content-manager.error.validation.minSupMax":"Can't be superior","content-manager.error.validation.regex":"The value does not match the regex.","content-manager.error.validation.required":"This value input is required.","content-manager.form.Input.bulkActions":"Enable bulk actions","content-manager.form.Input.defaultSort":"Default sort attribute","content-manager.form.Input.description":"Description","content-manager.form.Input.description.placeholder":"Display name in the profile","content-manager.form.Input.editable":"Editable field","content-manager.form.Input.filters":"Enable filters","content-manager.form.Input.hint.character.unit":"{maxValue, plural, one { character} other { characters}}","content-manager.form.Input.hint.minMaxDivider":" / ","content-manager.form.Input.hint.text":"{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}","content-manager.form.Input.label":"Label","content-manager.form.Input.label.inputDescription":"This value overrides the label displayed in the table's head","content-manager.form.Input.pageEntries":"Entries per page","content-manager.form.Input.pageEntries.inputDescription":"Note: You can override this value in the Collection Type settings page.","content-manager.form.Input.placeholder":"Placeholder","content-manager.form.Input.placeholder.placeholder":"My awesome value","content-manager.form.Input.search":"Enable search","content-manager.form.Input.search.field":"Enable search on this field","content-manager.form.Input.sort.field":"Enable sort on this field","content-manager.form.Input.sort.order":"Default sort order","content-manager.form.Input.wysiwyg":"Display as WYSIWYG","content-manager.global.displayedFields":"Displayed Fields","content-manager.groups":"Groups","content-manager.groups.numbered":"Groups ({number})","content-manager.header.name":"Content","content-manager.link-to-ctb":"Edit the model","content-manager.models":"Collection Types","content-manager.models.numbered":"Collection Types ({number})","content-manager.notification.error.displayedFields":"You need at least one displayed field","content-manager.notification.error.relationship.fetch":"An error occurred during relationship fetch.","content-manager.notification.info.SettingPage.disableSort":"You need to have one attribute with the sorting allowed","content-manager.notification.info.minimumFields":"You need to have at least one field displayed","content-manager.notification.upload.error":"An error has occurred while uploading your files","content-manager.pageNotFound":"Page not found","content-manager.pages.ListView.header-subtitle":"{number, plural, =0 {# entries} one {# entry} other {# entries}} found","content-manager.pages.NoContentType.button":"Create your first Content-Type","content-manager.pages.NoContentType.text":"You don't have any content yet, we recommend you to create your first Content-Type.","content-manager.permissions.not-allowed.create":"You are not allowed to create a document","content-manager.permissions.not-allowed.update":"You are not allowed to see this document","content-manager.plugin.description.long":"Quick way to see, edit and delete the data in your database.","content-manager.plugin.description.short":"Quick way to see, edit and delete the data in your database.","content-manager.popUpWarning.bodyMessage.contentType.delete":"Are you sure to delete Content-Type?","content-manager.popUpWarning.bodyMessage.contentType.delete.all":"Are you sure to delete all Content-Types?","content-manager.popUpWarning.warning.has-draft-relations.title":"Confirmation","content-manager.popUpWarning.warning.publish-question":"Do you still want to publish?","content-manager.popUpWarning.warning.unpublish":"If you don't publish this content, it will automatically turn into a Draft.","content-manager.popUpWarning.warning.unpublish-question":"Are you sure you don't want to publish it?","content-manager.popUpWarning.warning.updateAllSettings":"This will modify all your settings","content-manager.popUpwarning.warning.has-draft-relations.button-confirm":"Yes, publish","content-manager.popUpwarning.warning.has-draft-relations.message":"<b>{count, plural, one { relation is } other { relations are } }</b> not published yet and might lead to unexpected behavior.","content-manager.popover.display-relations.label":"Display relations","content-manager.relation.add":"Add relation","content-manager.relation.disconnect":"Remove","content-manager.relation.isLoading":"Relations are loading","content-manager.relation.loadMore":"Load More","content-manager.relation.notAvailable":"No relations available","content-manager.relation.publicationState.draft":"Draft","content-manager.relation.publicationState.published":"Published","content-manager.reviewWorkflows.stage.label":"Review stage","content-manager.select.currently.selected":"{count} currently selected","content-manager.success.record.delete":"Deleted","content-manager.success.record.publish":"Published","content-manager.success.record.save":"Saved","content-manager.success.record.unpublish":"Unpublished","content-manager.utils.data-loaded":"The {number, plural, =1 {entry has} other {entries have}} successfully been loaded","dark":"Dark","form.button.continue":"Continue","form.button.done":"Done","global.actions":"Actions","global.auditLogs":"Audit Logs","global.back":"Back","global.cancel":"Cancel","global.change-password":"Change password","global.content-manager":"Content Manager","global.continue":"Continue","global.delete":"Delete","global.delete-target":"Delete {target}","global.description":"Description","global.details":"Details","global.disabled":"Disabled","global.documentation":"Documentation","global.enabled":"Enabled","global.finish":"Finish","global.marketplace":"Marketplace","global.name":"Name","global.none":"None","global.password":"Password","global.plugins":"Plugins","global.plugins.content-manager":"Content Manager","global.plugins.content-manager.description":"Quick way to see, edit and delete the data in your database.","global.plugins.content-type-builder":"Content Type Builder","global.plugins.content-type-builder.description":"Modelize the data structure of your API. Create new fields and relations in just a minute. The files are automatically created and updated in your project.","global.plugins.documentation":"Documentation","global.plugins.documentation.description":"Create an OpenAPI Document and visualize your API with SWAGGER UI.","global.plugins.email":"Email","global.plugins.email.description":"Configure your application to send emails.","global.plugins.graphql":"GraphQL","global.plugins.graphql.description":"Adds GraphQL endpoint with default API methods.","global.plugins.i18n":"Internationalization","global.plugins.i18n.description":"This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API.","global.plugins.sentry":"Sentry","global.plugins.sentry.description":"Send Strapi error events to Sentry.","global.plugins.upload":"Media Library","global.plugins.upload.description":"Media file management.","global.plugins.users-permissions":"Roles & Permissions","global.plugins.users-permissions.description":"Protect your API with a full authentication process based on JWT. This plugin comes also with an ACL strategy that allows you to manage the permissions between the groups of users.","global.profile":"Profile","global.prompt.unsaved":"Are you sure you want to leave this page? All your modifications will be lost","global.reset-password":"Reset password","global.roles":"Roles","global.save":"Save","global.search":"Search","global.see-more":"See more","global.select":"Select","global.select-all-entries":"Select all entries","global.settings":"Settings","global.type":"Type","global.users":"Users","light":"Light","notification.contentType.relations.conflict":"Content type has conflicting relations","notification.default.title":"Information:","notification.error":"An error occurred","notification.error.layout":"Couldn't retrieve the layout","notification.form.error.fields":"The form contains some errors","notification.form.success.fields":"Changes saved","notification.link-copied":"Link copied into the clipboard","notification.permission.not-allowed-read":"You are not allowed to see this document","notification.success.delete":"The item has been deleted","notification.success.saved":"Saved","notification.success.title":"Success:","notification.success.apitokencreated":"API Token successfully created","notification.success.apitokenedited":"API Token successfully edited","notification.success.transfertokencreated":"Transfer Token successfully created","notification.success.transfertokenedited":"Transfer Token successfully edited","notification.error.tokennamenotunique":"Name already assigned to another token","notification.version.update.message":"A new version of Strapi is available!","notification.warning.title":"Warning:","notification.warning.404":"404 - Not found","notification.ee.warning.over-.message":"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} AT_LIMIT {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.","notification.ee.warning.at-seat-limit.title":"{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})","or":"OR","request.error.model.unknown":"This model doesn't exist","selectButtonTitle":"Select","skipToContent":"Skip to content","submit":"Submit"}`)}}]);