@strapi/admin 4.7.1 → 4.7.2-exp.175f7ac70ee76d6c825e4429e15fc85ee78d23bb

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 (131) hide show
  1. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +4 -4
  2. package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +2 -2
  3. package/admin/src/components/GuidedTour/Homepage/index.js +3 -3
  4. package/admin/src/components/GuidedTour/Modal/components/Content.js +35 -23
  5. package/admin/src/components/GuidedTour/Modal/components/Modal.js +6 -4
  6. package/admin/src/components/LeftMenu/index.js +3 -3
  7. package/admin/src/components/Notifications/index.js +6 -4
  8. package/admin/src/components/UpgradePlanModal/index.js +6 -7
  9. package/admin/src/content-manager/components/ComponentInitializer/index.js +3 -3
  10. package/admin/src/content-manager/components/DragLayer/RelationDragPreview.js +3 -3
  11. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDelete/index.js +3 -11
  12. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +3 -11
  13. package/admin/src/content-manager/components/DynamicZone/components/ComponentCard.js +4 -4
  14. package/admin/src/content-manager/components/DynamicZone/components/DynamicComponent.js +3 -4
  15. package/admin/src/content-manager/components/DynamicZone/index.js +3 -3
  16. package/admin/src/content-manager/components/FieldComponent/index.js +3 -3
  17. package/admin/src/content-manager/components/NonRepeatableComponent/index.js +3 -3
  18. package/admin/src/content-manager/components/RelationInput/components/Relation.js +9 -3
  19. package/admin/src/content-manager/components/RelationInput/components/RelationItem.js +4 -4
  20. package/admin/src/content-manager/components/RepeatableComponent/components/Component.js +12 -6
  21. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -2
  22. package/admin/src/content-manager/components/Wysiwyg/index.js +5 -5
  23. package/admin/src/content-manager/components/Wysiwyg/utils/continueList.js +3 -3
  24. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +5 -5
  25. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +3 -3
  26. package/admin/src/content-manager/pages/EditSettingsView/index.js +3 -3
  27. package/admin/src/content-manager/pages/EditView/Header/index.js +6 -7
  28. package/admin/src/content-manager/pages/EditView/Information/index.js +9 -9
  29. package/admin/src/content-manager/pages/EditView/index.js +9 -9
  30. package/admin/src/content-manager/pages/ListSettingsView/components/CardPreview.js +3 -3
  31. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +3 -3
  32. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +5 -5
  33. package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +3 -11
  34. package/admin/src/pages/Admin/Onboarding/index.js +11 -5
  35. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +3 -3
  36. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +3 -12
  37. package/admin/src/pages/AuthPage/components/Register/index.js +2 -3
  38. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -3
  39. package/admin/src/pages/HomePage/ContentBlocks.js +3 -3
  40. package/admin/src/pages/HomePage/HomeHeader.js +3 -7
  41. package/admin/src/pages/HomePage/SocialLinks.js +5 -5
  42. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/PackageStats.js +3 -3
  43. package/admin/src/pages/MarketplacePage/components/NpmPackageCard/index.js +3 -3
  44. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +3 -3
  45. package/admin/src/pages/ProfilePage/index.js +11 -11
  46. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +3 -3
  47. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/ActionBoundRoutes/index.js +5 -5
  48. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/BoundRoute/index.js +5 -5
  49. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +3 -3
  50. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Permissions/index.js +3 -3
  51. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +3 -3
  52. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +2 -3
  53. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +7 -6
  54. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/index.js +4 -6
  55. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +2 -3
  56. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +5 -5
  57. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +3 -3
  58. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +3 -3
  59. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +7 -7
  60. package/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/index.js +5 -5
  61. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +3 -3
  62. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/HeadersInput/index.js +2 -3
  63. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/TriggerContainer/index.js +9 -9
  64. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +7 -7
  65. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +158 -165
  66. package/admin/src/pages/UseCasePage/index.js +2 -3
  67. package/admin/src/translations/zh-Hans.json +31 -1
  68. package/build/{8252.ad0478da.chunk.js → 3094.1cac9087.chunk.js} +1 -1
  69. package/build/{4049.16583eee.chunk.js → 4049.64715f20.chunk.js} +1 -1
  70. package/build/4649.daa290f6.chunk.js +30 -0
  71. package/build/7259.63e91b59.chunk.js +1 -0
  72. package/build/Admin-authenticatedApp.25bdcdc0.chunk.js +79 -0
  73. package/build/Admin_homePage.1411fb7c.chunk.js +68 -0
  74. package/build/{Admin_marketplace.a8ea585f.chunk.js → Admin_marketplace.0f6c8ee2.chunk.js} +4 -4
  75. package/build/Admin_profilePage.d2a8f9ab.chunk.js +15 -0
  76. package/build/{Admin_settingsPage.f6d02df6.chunk.js → Admin_settingsPage.6814a96e.chunk.js} +17 -18
  77. package/build/admin-app.d9d96db4.chunk.js +112 -0
  78. package/build/admin-edit-roles-page.bf130aaf.chunk.js +1 -0
  79. package/build/{admin-edit-users.f06c4a53.chunk.js → admin-edit-users.48031e30.chunk.js} +2 -2
  80. package/build/{admin-users.085fd03f.chunk.js → admin-users.77b4188a.chunk.js} +3 -3
  81. package/build/{content-manager.6ed87531.chunk.js → content-manager.d792c194.chunk.js} +40 -40
  82. package/build/{content-type-builder-list-view.c2f917b6.chunk.js → content-type-builder-list-view.cf38fe2f.chunk.js} +9 -9
  83. package/build/content-type-builder-translation-zh-Hans-json.415577fb.chunk.js +1 -0
  84. package/build/content-type-builder.cdd117c3.chunk.js +126 -0
  85. package/build/email-settings-page.4bdbef9a.chunk.js +3 -0
  86. package/build/{i18n-settings-page.c7bc29fc.chunk.js → i18n-settings-page.2bb5be96.chunk.js} +1 -1
  87. package/build/index.html +1 -1
  88. package/build/main.64fe0c37.js +3928 -0
  89. package/build/{runtime~main.f7bcdaa0.js → runtime~main.122b5a09.js} +1 -1
  90. package/build/sso-settings-page.5a8588ef.chunk.js +1 -0
  91. package/build/upload-settings.0200561d.chunk.js +1 -0
  92. package/build/upload-translation-zh-Hans-json.db163b6b.chunk.js +1 -0
  93. package/build/upload.c7da1611.chunk.js +13 -0
  94. package/build/{users-advanced-settings-page.677e1973.chunk.js → users-advanced-settings-page.c0cae03a.chunk.js} +1 -1
  95. package/build/users-providers-settings-page.5f86e45c.chunk.js +1 -0
  96. package/build/users-roles-settings-page.b02986df.chunk.js +30 -0
  97. package/build/webhook-edit-page.a2a2b7bb.chunk.js +23 -0
  98. package/build/webhook-list-page.029957a4.chunk.js +1 -0
  99. package/build/zh-Hans-json.993d085f.chunk.js +1 -0
  100. package/ee/admin/pages/AuthPage/components/Login/index.js +3 -3
  101. package/ee/admin/pages/AuthPage/components/Providers/index.js +3 -3
  102. package/ee/admin/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js +3 -3
  103. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +6 -7
  104. package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +11 -3
  105. package/ee/admin/pages/SettingsPage/pages/Users/ListPage/CreateAction/index.js +3 -3
  106. package/package.json +13 -12
  107. package/server/content-types/User.js +4 -0
  108. package/server/content-types/api-token.js +1 -0
  109. package/server/controllers/user.js +7 -1
  110. package/server/services/permission/permissions-manager/index.js +9 -5
  111. package/server/services/permission/permissions-manager/sanitize.js +101 -4
  112. package/build/4649.ffa2f59a.chunk.js +0 -30
  113. package/build/7259.cd2f7bad.chunk.js +0 -1
  114. package/build/Admin-authenticatedApp.09978a81.chunk.js +0 -79
  115. package/build/Admin_homePage.cec3f510.chunk.js +0 -70
  116. package/build/Admin_profilePage.b27e40f6.chunk.js +0 -15
  117. package/build/admin-app.fdab907e.chunk.js +0 -112
  118. package/build/admin-edit-roles-page.fd041d89.chunk.js +0 -1
  119. package/build/content-type-builder-translation-zh-Hans-json.52a30266.chunk.js +0 -1
  120. package/build/content-type-builder.b7fb1e65.chunk.js +0 -126
  121. package/build/email-settings-page.884cfb8b.chunk.js +0 -3
  122. package/build/main.3d8a17d5.js +0 -3930
  123. package/build/sso-settings-page.82d84043.chunk.js +0 -1
  124. package/build/upload-settings.c18b010f.chunk.js +0 -1
  125. package/build/upload-translation-zh-Hans-json.3da5cf56.chunk.js +0 -1
  126. package/build/upload.0876ab69.chunk.js +0 -13
  127. package/build/users-providers-settings-page.87a9c77d.chunk.js +0 -1
  128. package/build/users-roles-settings-page.79c19845.chunk.js +0 -30
  129. package/build/webhook-edit-page.cfbdd3fd.chunk.js +0 -23
  130. package/build/webhook-list-page.3daa4fe2.chunk.js +0 -1
  131. package/build/zh-Hans-json.6e26e359.chunk.js +0 -1
@@ -0,0 +1,30 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4649],{30493:function(b,M,n){"use strict";n.d(M,{Z:function(){return s}});var e=n(32735),g=n(5636),a=n(60216),t=n.n(a),p=n(13478),A=n(57269),E=n(39161),f=n(8888);const C=({onRegenerate:y,idToRegenerate:c,backUrl:P})=>{const{formatMessage:O}=(0,g.useIntl)(),[x,_]=(0,e.useState)(!1),{regenerateData:W,isLoadingConfirmation:F}=(0,f.rW)(P,c,y),N=async()=>{W(),_(!1)};return e.createElement(e.Fragment,null,e.createElement(E.Button,{startIcon:e.createElement(A.Refresh,null),type:"button",size:"S",variant:"tertiary",onClick:()=>_(!0),name:"regenerate"},O({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),e.createElement(p.ConfirmDialog,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:e.createElement(A.Refresh,null),isConfirmButtonLoading:F,isOpen:x,onToggleDialog:()=>_(!1),onConfirm:N,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};C.defaultProps={onRegenerate(){}},C.propTypes={onRegenerate:t().func,idToRegenerate:t().oneOfType([t().number,t().string]).isRequired,backUrl:t().string.isRequired};var h=C;const v=({title:y,token:c,setToken:P,canEditInputs:O,canRegenerate:x,isSubmitting:_,backUrl:W,regenerateUrl:F})=>{const{formatMessage:N}=(0,g.useIntl)(),G=X=>{P({...c,accessKey:X})};return e.createElement(E.HeaderLayout,{title:c?.name||N(y),primaryAction:O?e.createElement(E.Flex,{gap:2},x&&c?.id&&e.createElement(h,{backUrl:F,onRegenerate:G,idToRegenerate:c?.id}),e.createElement(E.Button,{disabled:_,loading:_,startIcon:e.createElement(A.Check,null),type:"submit",size:"S"},N({id:"global.save",defaultMessage:"Save"}))):x&&c?.id&&e.createElement(h,{onRegenerate:G,idToRegenerate:c?.id,backUrl:F}),navigationAction:e.createElement(p.Link,{startIcon:e.createElement(A.ArrowLeft,null),to:W},N({id:"global.back",defaultMessage:"Back"}))})};v.propTypes={token:t().shape({id:t().oneOfType([t().number,t().string]),type:t().string,lifespan:t().oneOfType([t().number,t().string]),name:t().string,accessKey:t().string,permissions:t().array,description:t().string,createdAt:t().string}),canEditInputs:t().bool.isRequired,canRegenerate:t().bool.isRequired,setToken:t().func.isRequired,isSubmitting:t().bool.isRequired,backUrl:t().string.isRequired,title:t().shape({id:t().string,label:t().string}).isRequired,regenerateUrl:t().string.isRequired},v.defaultProps={token:void 0};var s=v},4321:function(b,M,n){"use strict";var e=n(32735),g=n(60216),a=n.n(g),t=n(5636),p=n(39161),A=n.n(p),E=n(37944);const f=({token:C,errors:h,values:v,onChange:s,isCreating:y})=>{const{formatMessage:c}=(0,t.useIntl)();return e.createElement(e.Fragment,null,e.createElement(p.Select,{name:"lifespan",label:c({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:v.lifespan!==null?v.lifespan:"0",error:h.lifespan?c(h.lifespan?.id?h.lifespan:{id:h.lifespan,defaultMessage:h.lifespan}):null,onChange:P=>{s({target:{name:"lifespan",value:P}})},required:!0,disabled:!y,placeholder:"Select"},e.createElement(p.Option,{value:"604800000"},c({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),e.createElement(p.Option,{value:"2592000000"},c({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),e.createElement(p.Option,{value:"7776000000"},c({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),e.createElement(p.Option,{value:"0"},c({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),e.createElement(p.Typography,{variant:"pi",textColor:"neutral600"},!y&&`${c({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,E.IX)(C?.createdAt,parseInt(v.lifespan,10))}`))};f.propTypes={errors:a().shape({lifespan:a().string}),onChange:a().func.isRequired,values:a().shape({lifespan:a().oneOfType([a().number,a().string])}).isRequired,isCreating:a().bool.isRequired,token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().string,name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string})},f.defaultProps={errors:{},token:{}},M.Z=f},93682:function(b,M,n){"use strict";var e=n(32735),g=n(5636),a=n(13478),t=n.n(a),p=n(39161),A=n.n(p),E=n(57269),f=n.n(E),C=n(60216),h=n.n(C),v=n(59087),s=n.n(v);const y=({token:c,tokenType:P})=>{const{formatMessage:O}=(0,g.useIntl)(),x=(0,a.useNotification)(),{trackUsage:_}=(0,a.useTracking)(),W=(0,e.useRef)(_);return e.createElement(a.ContentBox,{endAction:c&&e.createElement("span",{style:{alignSelf:"start"}},e.createElement(v.CopyToClipboard,{onCopy:()=>{W.current("didCopyTokenKey",{tokenType:P}),x({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:c},e.createElement(p.IconButton,{label:O({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:e.createElement(E.Duplicate,null),style:{padding:0,height:"1rem"}}))),title:c||O({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:O(c?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:e.createElement(E.Key,null),iconBackground:"neutral100"})};y.defaultProps={token:null},y.propTypes={token:h().string,tokenType:h().string.isRequired},M.Z=y},42789:function(b,M,n){"use strict";var e=n(32735),g=n(60216),a=n.n(g),t=n(5636),p=n(39161),A=n.n(p);const E=({errors:f,values:C,onChange:h,canEditInputs:v})=>{const{formatMessage:s}=(0,t.useIntl)();return e.createElement(p.Textarea,{label:s({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:f.description?s(f.description?.id?f.description:{id:f.description,defaultMessage:f.description}):null,onChange:h,disabled:!v},C.description)};E.propTypes={errors:a().shape({description:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({description:a().string}).isRequired},E.defaultProps={errors:{}},M.Z=E},8377:function(b,M,n){"use strict";var e=n(32735),g=n(60216),a=n.n(g),t=n(5636),p=n(39161),A=n.n(p);const E=({errors:f,values:C,onChange:h,canEditInputs:v})=>{const{formatMessage:s}=(0,t.useIntl)();return e.createElement(p.TextInput,{name:"name",error:f.name?s(f.name?.id?f.name:{id:f.name,defaultMessage:f.name}):null,label:s({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:h,value:C.name,disabled:!v,required:!0})};E.propTypes={errors:a().shape({name:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({name:a().string}).isRequired},E.defaultProps={errors:{}},M.Z=E},68774:function(b,M,n){"use strict";n.d(M,{Z:function(){return e},f:function(){return g}});const e="api-token",g="transfer-token"},24649:function(b,M,n){"use strict";n.d(M,{Z:function(){return De}});var e=n(32735),g=n(5636),a=n(13478),t=n(39161),p=n(83281),A=n(5141),E=n(84968),f=n(64421),C=n(37944),h=n(57269),v=n(60216),s=n.n(v);const y=({apiTokenName:o})=>{const{formatMessage:i}=(0,g.useIntl)();return(0,a.useFocusWhenNavigate)(),e.createElement(t.Main,{"aria-busy":"true"},e.createElement(a.SettingsPageTitle,{name:"API Tokens"}),e.createElement(t.HeaderLayout,{primaryAction:e.createElement(t.Button,{disabled:!0,startIcon:e.createElement(h.Check,null),type:"button",size:"L"},i({id:"global.save",defaultMessage:"Save"})),title:o||i({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),e.createElement(t.ContentLayout,null,e.createElement(a.LoadingIndicatorPage,null)))};y.defaultProps={apiTokenName:null},y.propTypes={apiTokenName:s().string};var c=y,P=n(72041);const O=(0,e.createContext)({}),x=({children:o,...i})=>e.createElement(O.Provider,{value:i},o),_=()=>(0,e.useContext)(O);x.propTypes={children:s().node.isRequired};var F=(o,i=[])=>({...o,selectedAction:null,routes:[],selectedActions:[],data:(0,C.mk)(i)}),N=n(97889),G=n(92891);const X={data:{},selectedActions:[]};var re=(o,i)=>(0,N.default)(o,r=>{switch(i.type){case"ON_CHANGE":{r.selectedActions.includes(i.value)?(0,G.pull)(r.selectedActions,i.value):r.selectedActions.push(i.value);break}case"SELECT_ALL_IN_PERMISSION":{i.value.every(d=>r.selectedActions.includes(d.actionId))?i.value.forEach(d=>{(0,G.pull)(r.selectedActions,d.actionId)}):i.value.forEach(d=>{r.selectedActions.push(d.actionId)});break}case"SELECT_ALL_ACTIONS":{r.selectedActions=[...r.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const T=r.data.allActionsIds.filter(d=>d.includes("find")||d.includes("findOne"));r.selectedActions=[...T];break}case"UPDATE_PERMISSIONS_LAYOUT":{r.data=(0,C.mk)(i.value);break}case"UPDATE_ROUTES":{r.routes={...i.value};break}case"UPDATE_PERMISSIONS":{r.selectedActions=[...i.value];break}case"SET_SELECTED_ACTION":{r.selectedAction=i.value;break}default:return r}}),Y=n(83292);const ie=Y.css`
2
+ background: ${o=>o.theme.colors.primary100};
3
+ svg {
4
+ opacity: 1;
5
+ }
6
+ `;var le=(0,Y.default)(t.Box)`
7
+ display: flex;
8
+ justify-content: space-between;
9
+ align-items: center;
10
+
11
+ svg {
12
+ opacity: 0;
13
+ path {
14
+ fill: ${o=>o.theme.colors.primary600};
15
+ }
16
+ }
17
+
18
+ /* Show active style both on hover and when the action is selected */
19
+ ${o=>o.isActive&&ie}
20
+ &:hover {
21
+ ${ie}
22
+ }
23
+ `;const ce=Y.default.div`
24
+ flex: 1;
25
+ align-self: center;
26
+ border-top: 1px solid ${({theme:o})=>o.colors.neutral150};
27
+ `,J=({controllers:o,label:i,orderNumber:r,disabled:T,onExpanded:d,indexExpandendCollapsedContent:l})=>{const{value:{onChangeSelectAll:R,onChange:B,selectedActions:I,setSelectedAction:U,selectedAction:$}}=_(),[L,j]=(0,e.useState)(!1),{formatMessage:H}=(0,g.useIntl)(),S=()=>{j(D=>!D),d(r)};(0,e.useEffect)(()=>{l!==null&&l!==r&&L&&j(!1)},[l,r,L]);const Z=D=>D===$;return e.createElement(t.Accordion,{expanded:L,onToggle:S,variant:r%2?"primary":"secondary"},e.createElement(t.AccordionToggle,{title:(0,G.capitalize)(i)}),e.createElement(t.AccordionContent,null,o?.map(D=>{const Q=D.actions.every(m=>I.includes(m.actionId)),ne=D.actions.some(m=>I.includes(m.actionId));return e.createElement(t.Box,{key:`${i}.${D?.controller}`},e.createElement(t.Flex,{justifyContent:"space-between",alignItems:"center",padding:4},e.createElement(t.Box,{paddingRight:4},e.createElement(t.Typography,{variant:"sigma",textColor:"neutral600"},D?.controller)),e.createElement(ce,null),e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Checkbox,{value:Q,indeterminate:!Q&&ne,onValueChange:()=>{R({target:{value:[...D.actions]}})},disabled:T},H({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(t.Grid,{gap:4,padding:4},D?.actions&&D?.actions.map(m=>e.createElement(t.GridItem,{col:6,key:m.actionId},e.createElement(le,{isActive:Z(m.actionId),padding:2,hasRadius:!0},e.createElement(t.Checkbox,{value:I.includes(m.actionId),name:m.actionId,onValueChange:()=>{B({target:{value:m.actionId}})},disabled:T},m.action),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>U({target:{value:m.actionId}}),style:{display:"inline-flex",alignItems:"center"}},e.createElement(h.Cog,null)))))))})))};J.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},J.propTypes={controllers:s().array,orderNumber:s().number,label:s().string.isRequired,disabled:s().bool,onExpanded:s().func,indexExpandendCollapsedContent:s().number};var de=J;const w=({section:o,...i})=>{const[r,T]=(0,e.useState)(null),d=l=>T(l);return e.createElement(t.Box,{padding:4,background:"neutral0"},o&&o.map((l,R)=>e.createElement(de,{key:l.apiId,label:l.label,controllers:l.controllers,orderNumber:R,indexExpandendCollapsedContent:r,onExpanded:d,name:l.apiId,...i})))};w.defaultProps={section:null},w.propTypes={section:s().arrayOf(s().object)};var ue=w,pe=n(37213),ge=n.n(pe),me=n(15738),Ee=n.n(me),fe=o=>{switch(o){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const ye=(0,Y.default)(t.Box)`
28
+ margin: -1px;
29
+ border-radius: ${({theme:o})=>o.spaces[1]} 0 0 ${({theme:o})=>o.spaces[1]};
30
+ `;function q({route:o}){const{formatMessage:i}=(0,g.useIntl)(),{method:r,handler:T,path:d}=o,l=d?Ee()(d.split("/")):[],[R="",B=""]=T?T.split("."):[],I=fe(o.method);return e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},i({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,R),e.createElement(t.Typography,{variant:"delta",textColor:"primary600"},".",B)),e.createElement(t.Flex,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},e.createElement(ye,{background:I.background,borderColor:I.border,padding:2},e.createElement(t.Typography,{fontWeight:"bold",textColor:I.text},r)),e.createElement(t.Box,{paddingLeft:2,paddingRight:2},ge()(l,U=>e.createElement(t.Typography,{key:U,textColor:U.includes(":")?"neutral600":"neutral900"},"/",U)))))}q.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},q.propTypes={route:s().shape({handler:s().string,method:s().string,path:s().string})};var Te=q,he=()=>{const{value:{selectedAction:o,routes:i}}=_(),{formatMessage:r}=(0,g.useIntl)(),T=o?.split(".")[0];return e.createElement(t.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},o?e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},i[T]?.map(d=>d.config.auth?.scope?.includes(o)||d.handler===o?e.createElement(Te,{key:d.handler,route:d}):null)):e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h3"},r({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},r({id:"Settings.apiTokens.createPage.permissions.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))};const Ce=({...o})=>{const{value:{data:i}}=_(),{formatMessage:r}=(0,g.useIntl)();return e.createElement(t.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(t.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:2},e.createElement(t.Typography,{variant:"delta",as:"h2"},r({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),e.createElement(t.Typography,{as:"p",textColor:"neutral600"},r({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),i?.permissions&&e.createElement(ue,{section:i?.permissions,...o})),e.createElement(he,null))};var ve=(0,e.memo)(Ce),Ae=n(4321),Me=n(8377),Re=n(42789);const ee=({errors:o,values:i,onChange:r,canEditInputs:T,options:d,label:l})=>{const{formatMessage:R}=(0,g.useIntl)();return e.createElement(t.Select,{name:"type",label:R({id:l.id,defaultMessage:l.defaultMessage}),value:i?.type,error:o.type?R(o.type?.id?o.type:{id:o.type,defaultMessage:o.type}):null,onChange:r,placeholder:"Select",required:!0,disabled:!T},d&&d.map(({value:B,label:I})=>e.createElement(t.Option,{key:B,value:B},R(I))))};ee.propTypes={options:s().arrayOf(s().shape({label:s().shape({id:s().string,defaultMessage:s().string}),value:s().string})),errors:s().shape({type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({type:s().string}).isRequired,label:s().shape({id:s().string,defaultMessage:s().string}).isRequired},ee.defaultProps={errors:{},options:[]};var Pe=ee;const te=({errors:o,onChange:i,canEditInputs:r,isCreating:T,values:d,apiToken:l,onDispatch:R,setHasChangedPermissions:B})=>{const{formatMessage:I}=(0,g.useIntl)(),U=({target:{value:L}})=>{B(!1),L==="full-access"&&R({type:"SELECT_ALL_ACTIONS"}),L==="read-only"&&R({type:"ON_CHANGE_READ_ONLY"})},$=[{value:"read-only",label:{id:"Settings.tokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.tokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.tokens.types.custom",defaultMessage:"Custom"}}];return 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"},I({id:"global.details",defaultMessage:"Details"})),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{key:"name",col:6,xs:12},e.createElement(Me.Z,{errors:o,values:d,canEditInputs:r,onChange:i})),e.createElement(t.GridItem,{key:"description",col:6,xs:12},e.createElement(Re.Z,{errors:o,values:d,canEditInputs:r,onChange:i})),e.createElement(t.GridItem,{key:"lifespan",col:6,xs:12},e.createElement(Ae.Z,{isCreating:T,errors:o,values:d,onChange:i,token:l})),e.createElement(t.GridItem,{key:"type",col:6,xs:12},e.createElement(Pe,{values:d,errors:o,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:L=>{U({target:{value:L}}),i({target:{name:"type",value:L}})},options:$,canEditInputs:r})))))};te.propTypes={errors:s().shape({name:s().string,description:s().string,lifespan:s().string,type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string,description:s().string,lifespan:s().oneOfType([s().number,s().string]),type:s().string}).isRequired,isCreating:s().bool.isRequired,apiToken:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),onDispatch:s().func.isRequired,setHasChangedPermissions:s().func.isRequired},te.defaultProps={errors:{},apiToken:{}};var Ie=te,ke=n(93682),Oe=n(30493),z=n(68774);const Se="Name already taken";var De=()=>{(0,a.useFocusWhenNavigate)();const{formatMessage:o}=(0,g.useIntl)(),{lockApp:i,unlockApp:r}=(0,a.useOverlayBlocker)(),T=(0,a.useNotification)(),d=(0,A.useHistory)(),[l,R]=(0,e.useState)(d.location.state?.apiToken.accessKey?{...d.location.state.apiToken}:null),{trackUsage:B}=(0,a.useTracking)(),I=(0,e.useRef)(B),{setCurrentStep:U}=(0,a.useGuidedTour)(),{allowedActions:{canCreate:$,canUpdate:L,canRegenerate:j}}=(0,a.useRBAC)(P.Z.settings["api-tokens"]),[H,S]=(0,e.useReducer)(re,X,u=>F(u,{})),{params:{id:Z}}=(0,A.useRouteMatch)("/settings/api-tokens/:id"),{get:D,post:Q,put:ne}=(0,a.useFetchClient)(),m=Z==="create";(0,E.useQuery)("content-api-permissions",async()=>{const[u,K]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async V=>{const{data:k}=await D(V);return k.data}));S({type:"UPDATE_PERMISSIONS_LAYOUT",value:u}),S({type:"UPDATE_ROUTES",value:K}),l&&(l?.type==="read-only"&&S({type:"ON_CHANGE_READ_ONLY"}),l?.type==="full-access"&&S({type:"SELECT_ALL_ACTIONS"}),l?.type==="custom"&&S({type:"UPDATE_PERMISSIONS",value:l?.permissions}))},{onError(){T({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,e.useEffect)(()=>{I.current(m?"didAddTokenFromList":"didEditTokenFromList",{tokenType:z.Z})},[m]);const{status:xe}=(0,E.useQuery)(["api-token",Z],async()=>{const{data:{data:u}}=await D(`/admin/api-tokens/${Z}`);return R({...u}),u?.type==="read-only"&&S({type:"ON_CHANGE_READ_ONLY"}),u?.type==="full-access"&&S({type:"SELECT_ALL_ACTIONS"}),u?.type==="custom"&&S({type:"UPDATE_PERMISSIONS",value:u?.permissions}),u},{enabled:!m&&!l,onError(){T({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),_e=async(u,K)=>{I.current(m?"willCreateToken":"willEditToken",{tokenType:z.Z}),i();const V=u.lifespan&&parseInt(u.lifespan,10)&&u.lifespan!=="0"?parseInt(u.lifespan,10):null;try{const{data:{data:k}}=m?await Q("/admin/api-tokens",{...u,lifespan:V,permissions:u.type==="custom"?H.selectedActions:null}):await ne(`/admin/api-tokens/${Z}`,{name:u.name,description:u.description,type:u.type,permissions:u.type==="custom"?H.selectedActions:null});m&&(d.replace(`/settings/api-tokens/${k.id}`,{apiToken:k}),U("apiTokens.success")),r(),R({...k}),T({type:"success",message:o(m?{id:"notification.success.apitokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.apitokenedited",defaultMessage:"API Token successfully edited"})}),I.current(m?"didCreateToken":"didEditToken",{type:l.type,tokenType:z.Z})}catch(k){const oe=(0,f.Iz)(k.response.data);K.setErrors(oe),k?.response?.data?.error?.message===Se?T({type:"warning",message:k.response.data.message||"notification.error.tokennamenotunique"}):T({type:"warning",message:k?.response?.data?.message||"notification.error"}),r()}},[Le,se]=(0,e.useState)(!1),Be={...H,onChange:({target:{value:u}})=>{se(!0),S({type:"ON_CHANGE",value:u})},onChangeSelectAll:({target:{value:u}})=>{se(!0),S({type:"SELECT_ALL_IN_PERMISSION",value:u})},setSelectedAction:({target:{value:u}})=>{S({type:"SET_SELECTED_ACTION",value:u})}},ae=L&&!m||$&&m;return!m&&!l&&xe!=="success"?e.createElement(c,{apiTokenName:l?.name}):e.createElement(x,{value:Be},e.createElement(t.Main,null,e.createElement(a.SettingsPageTitle,{name:"API Tokens"}),e.createElement(p.Formik,{validationSchema:C.fK,validateOnChange:!1,initialValues:{name:l?.name||"",description:l?.description||"",type:l?.type,lifespan:l?.lifespan?l.lifespan.toString():l?.lifespan},enableReinitialize:!0,onSubmit:(u,K)=>_e(u,K)},({errors:u,handleChange:K,isSubmitting:V,values:k,setFieldValue:oe})=>(Le&&k?.type!=="custom"&&oe("type","custom"),e.createElement(a.Form,null,e.createElement(Oe.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:l,setToken:R,canEditInputs:ae,canRegenerate:j,isSubmitting:V,regenerateUrl:"/admin/api-tokens/"}),e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},Boolean(l?.name)&&e.createElement(ke.Z,{token:l?.accessKey,tokenType:z.Z}),e.createElement(Ie,{errors:u,onChange:K,canEditInputs:ae,isCreating:m,values:k,apiToken:l,onDispatch:S,setHasChangedPermissions:se}),e.createElement(ve,{disabled:!ae||k?.type==="read-only"||k?.type==="full-access"}))))))))}},37944:function(b,M,n){"use strict";n.d(M,{IX:function(){return t},fK:function(){return f},mk:function(){return v}});var e=n(64213),g=n(54049),t=(s,y,c="en")=>{if(y&&typeof y=="number"){const P=y/24/60/60/1e3;return(0,e.format)((0,e.addDays)(new Date(s),P),"PPP",{locale:g[c]})}return"Unlimited"},p=n(5173),A=n(13478),f=p.Ry().shape({name:p.Z_(A.translatedErrors.string).required(A.translatedErrors.required),type:p.Z_(A.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(A.translatedErrors.required),description:p.Z_().nullable(),lifespan:p.Rx().integer().min(0).nullable().defined(A.translatedErrors.required)}),C=n(92891),v=s=>{const y={allActionsIds:[],permissions:[]};return y.permissions=Object.keys(s).map(c=>({apiId:c,label:c.split("::")[1],controllers:(0,C.flatten)(Object.keys(s[c].controllers).map(P=>({controller:P,actions:(0,C.flatten)(s[c].controllers[P].map(O=>{const x=`${c}.${P}.${O}`;return c.includes("api::")&&y.allActionsIds.push(x),{action:O,actionId:x}}))})))})),y}},15738:function(b,M,n){var e=n(4293);function g(a){var t=a==null?0:a.length;return t?e(a,1,t):[]}b.exports=g}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7259],{30493:function(k,E,e){e.d(E,{Z:function(){return g}});var t=e(32735),u=e(5636),s=e(60216),a=e.n(s),o=e(13478),i=e(57269),r=e(39161),l=e(8888);const c=({onRegenerate:d,idToRegenerate:n,backUrl:m})=>{const{formatMessage:M}=(0,u.useIntl)(),[R,O]=(0,t.useState)(!1),{regenerateData:_,isLoadingConfirmation:A}=(0,l.rW)(m,n,d),D=async()=>{_(),O(!1)};return t.createElement(t.Fragment,null,t.createElement(r.Button,{startIcon:t.createElement(i.Refresh,null),type:"button",size:"S",variant:"tertiary",onClick:()=>O(!0),name:"regenerate"},M({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(o.ConfirmDialog,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(i.Refresh,null),isConfirmButtonLoading:A,isOpen:R,onToggleDialog:()=>O(!1),onConfirm:D,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};c.defaultProps={onRegenerate(){}},c.propTypes={onRegenerate:a().func,idToRegenerate:a().oneOfType([a().number,a().string]).isRequired,backUrl:a().string.isRequired};var f=c;const p=({title:d,token:n,setToken:m,canEditInputs:M,canRegenerate:R,isSubmitting:O,backUrl:_,regenerateUrl:A})=>{const{formatMessage:D}=(0,u.useIntl)(),S=F=>{m({...n,accessKey:F})};return t.createElement(r.HeaderLayout,{title:n?.name||D(d),primaryAction:M?t.createElement(r.Flex,{gap:2},R&&n?.id&&t.createElement(f,{backUrl:A,onRegenerate:S,idToRegenerate:n?.id}),t.createElement(r.Button,{disabled:O,loading:O,startIcon:t.createElement(i.Check,null),type:"submit",size:"S"},D({id:"global.save",defaultMessage:"Save"}))):R&&n?.id&&t.createElement(f,{onRegenerate:S,idToRegenerate:n?.id,backUrl:A}),navigationAction:t.createElement(o.Link,{startIcon:t.createElement(i.ArrowLeft,null),to:_},D({id:"global.back",defaultMessage:"Back"}))})};p.propTypes={token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().oneOfType([a().number,a().string]),name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string}),canEditInputs:a().bool.isRequired,canRegenerate:a().bool.isRequired,setToken:a().func.isRequired,isSubmitting:a().bool.isRequired,backUrl:a().string.isRequired,title:a().shape({id:a().string,label:a().string}).isRequired,regenerateUrl:a().string.isRequired},p.defaultProps={token:void 0};var g=p},4321:function(k,E,e){var t=e(32735),u=e(60216),s=e.n(u),a=e(5636),o=e(39161),i=e.n(o),r=e(37944);const l=({token:c,errors:f,values:p,onChange:g,isCreating:d})=>{const{formatMessage:n}=(0,a.useIntl)();return t.createElement(t.Fragment,null,t.createElement(o.Select,{name:"lifespan",label:n({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:p.lifespan!==null?p.lifespan:"0",error:f.lifespan?n(f.lifespan?.id?f.lifespan:{id:f.lifespan,defaultMessage:f.lifespan}):null,onChange:m=>{g({target:{name:"lifespan",value:m}})},required:!0,disabled:!d,placeholder:"Select"},t.createElement(o.Option,{value:"604800000"},n({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(o.Option,{value:"2592000000"},n({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(o.Option,{value:"7776000000"},n({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(o.Option,{value:"0"},n({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Typography,{variant:"pi",textColor:"neutral600"},!d&&`${n({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,r.IX)(c?.createdAt,parseInt(p.lifespan,10))}`))};l.propTypes={errors:s().shape({lifespan:s().string}),onChange:s().func.isRequired,values:s().shape({lifespan:s().oneOfType([s().number,s().string])}).isRequired,isCreating:s().bool.isRequired,token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string})},l.defaultProps={errors:{},token:{}},E.Z=l},93682:function(k,E,e){var t=e(32735),u=e(5636),s=e(13478),a=e.n(s),o=e(39161),i=e.n(o),r=e(57269),l=e.n(r),c=e(60216),f=e.n(c),p=e(59087),g=e.n(p);const d=({token:n,tokenType:m})=>{const{formatMessage:M}=(0,u.useIntl)(),R=(0,s.useNotification)(),{trackUsage:O}=(0,s.useTracking)(),_=(0,t.useRef)(O);return t.createElement(s.ContentBox,{endAction:n&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(p.CopyToClipboard,{onCopy:()=>{_.current("didCopyTokenKey",{tokenType:m}),R({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:n},t.createElement(o.IconButton,{label:M({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(r.Duplicate,null),style:{padding:0,height:"1rem"}}))),title:n||M({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:M(n?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(r.Key,null),iconBackground:"neutral100"})};d.defaultProps={token:null},d.propTypes={token:f().string,tokenType:f().string.isRequired},E.Z=d},42789:function(k,E,e){var t=e(32735),u=e(60216),s=e.n(u),a=e(5636),o=e(39161),i=e.n(o);const r=({errors:l,values:c,onChange:f,canEditInputs:p})=>{const{formatMessage:g}=(0,a.useIntl)();return t.createElement(o.Textarea,{label:g({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:l.description?g(l.description?.id?l.description:{id:l.description,defaultMessage:l.description}):null,onChange:f,disabled:!p},c.description)};r.propTypes={errors:s().shape({description:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({description:s().string}).isRequired},r.defaultProps={errors:{}},E.Z=r},8377:function(k,E,e){var t=e(32735),u=e(60216),s=e.n(u),a=e(5636),o=e(39161),i=e.n(o);const r=({errors:l,values:c,onChange:f,canEditInputs:p})=>{const{formatMessage:g}=(0,a.useIntl)();return t.createElement(o.TextInput,{name:"name",error:l.name?g(l.name?.id?l.name:{id:l.name,defaultMessage:l.name}):null,label:g({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:f,value:c.name,disabled:!p,required:!0})};r.propTypes={errors:s().shape({name:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string}).isRequired},r.defaultProps={errors:{}},E.Z=r},68774:function(k,E,e){e.d(E,{Z:function(){return t},f:function(){return u}});const t="api-token",u="transfer-token"},37944:function(k,E,e){e.d(E,{IX:function(){return a},fK:function(){return l},mk:function(){return p}});var t=e(64213),u=e(54049),a=(g,d,n="en")=>{if(d&&typeof d=="number"){const m=d/24/60/60/1e3;return(0,t.format)((0,t.addDays)(new Date(g),m),"PPP",{locale:u[n]})}return"Unlimited"},o=e(5173),i=e(13478),l=o.Ry().shape({name:o.Z_(i.translatedErrors.string).required(i.translatedErrors.required),type:o.Z_(i.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(i.translatedErrors.required),description:o.Z_().nullable(),lifespan:o.Rx().integer().min(0).nullable().defined(i.translatedErrors.required)}),c=e(92891),p=g=>{const d={allActionsIds:[],permissions:[]};return d.permissions=Object.keys(g).map(n=>({apiId:n,label:n.split("::")[1],controllers:(0,c.flatten)(Object.keys(g[n].controllers).map(m=>({controller:m,actions:(0,c.flatten)(g[n].controllers[m].map(M=>{const R=`${n}.${m}.${M}`;return n.includes("api::")&&d.allActionsIds.push(R),{action:M,actionId:R}}))})))})),d}},37259:function(k,E,e){e.d(E,{Z:function(){return G}});var t=e(32735),u=e(5636),s=e(83281),a=e(5141),o=e(84968),i=e(13478),r=e(39161),l=e(64421),c=e(5173),p=c.Ry().shape({name:c.Z_(i.translatedErrors.string).required(i.translatedErrors.required),description:c.Z_().nullable(),lifespan:c.Rx().integer().min(0).nullable().defined(i.translatedErrors.required)}),g=e(57269),d=e(60216),n=e.n(d);const m=({transferTokenName:C})=>{const{formatMessage:h}=(0,u.useIntl)();return(0,i.useFocusWhenNavigate)(),t.createElement(r.Main,{"aria-busy":"true"},t.createElement(i.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(r.HeaderLayout,{primaryAction:t.createElement(r.Button,{disabled:!0,startIcon:t.createElement(g.Check,null),type:"button",size:"L"},h({id:"global.save",defaultMessage:"Save"})),title:C||h({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(r.ContentLayout,null,t.createElement(i.LoadingIndicatorPage,null)))};m.defaultProps={transferTokenName:null},m.propTypes={transferTokenName:n().string};var M=m,R=e(72041),O=e(4321),_=e(8377),A=e(42789);const D=({errors:C,onChange:h,canEditInputs:L,isCreating:B,values:I,transferToken:T})=>{const{formatMessage:U}=(0,u.useIntl)();return t.createElement(r.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(r.Flex,{direction:"column",alignItems:"stretch",gap:4},t.createElement(r.Typography,{variant:"delta",as:"h2"},U({id:"global.details",defaultMessage:"Details"})),t.createElement(r.Grid,{gap:5},t.createElement(r.GridItem,{key:"name",col:6,xs:12},t.createElement(_.Z,{errors:C,values:I,canEditInputs:L,onChange:h})),t.createElement(r.GridItem,{key:"description",col:6,xs:12},t.createElement(A.Z,{errors:C,values:I,canEditInputs:L,onChange:h})),t.createElement(r.GridItem,{key:"lifespan",col:6,xs:12},t.createElement(O.Z,{isCreating:B,errors:C,values:I,onChange:h,token:T})))))};D.propTypes={errors:n().shape({name:n().string,description:n().string,lifespan:n().string,type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string,description:n().string,lifespan:n().oneOfType([n().number,n().string]),type:n().string}).isRequired,isCreating:n().bool.isRequired,transferToken:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},D.defaultProps={errors:{},transferToken:{}};var S=D,F=e(93682),V=e(30493),W=e(68774);const $="Name already taken";var G=()=>{(0,i.useFocusWhenNavigate)();const{formatMessage:C}=(0,u.useIntl)(),{lockApp:h,unlockApp:L}=(0,i.useOverlayBlocker)(),B=(0,i.useNotification)(),I=(0,a.useHistory)(),[T,U]=(0,t.useState)(I.location.state?.transferToken.accessKey?{...I.location.state.transferToken}:null),{trackUsage:H}=(0,i.useTracking)(),N=(0,t.useRef)(H),{setCurrentStep:z}=(0,i.useGuidedTour)(),{allowedActions:{canCreate:j,canUpdate:X,canRegenerate:Y}}=(0,i.useRBAC)(R.Z.settings["transfer-tokens"]),{params:{id:x}}=(0,a.useRouteMatch)("/settings/transfer-tokens/:id"),{get:Q,post:J,put:q}=(0,i.useFetchClient)(),v=x==="create";(0,t.useEffect)(()=>{N.current(v?"didAddTokenFromList":"didEditTokenFromList",{tokenType:W.f})},[v]);const{status:w}=(0,o.useQuery)(["transfer-token",x],async()=>{const{data:{data:y}}=await Q(`/admin/transfer/tokens/${x}`);return U({...y}),y},{enabled:!v&&!T,onError(){B({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),ee=async(y,K)=>{N.current(v?"willCreateToken":"willEditToken",{tokenType:W.f}),h();const Z=y.lifespan&&parseInt(y.lifespan,10)&&y.lifespan!=="0"?parseInt(y.lifespan,10):null;try{const{data:{data:P}}=v?await J("/admin/transfer/tokens",{...y,lifespan:Z,permissions:["push"]}):await q(`/admin/transfer/tokens/${x}`,{name:y.name,description:y.description,type:y.type,permissions:["push"]});L(),v&&(I.replace(`/settings/transfer-tokens/${P.id}`,{transferToken:P}),z("transferTokens.success")),U({...P}),B({type:"success",message:C(v?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),N.current(v?"didCreateToken":"didEditToken",{type:T?.type,tokenType:W.f})}catch(P){const te=(0,l.Iz)(P.response.data);K.setErrors(te),P?.response?.data?.error?.message===$?B({type:"warning",message:P.response.data.message||"notification.error.tokennamenotunique"}):B({type:"warning",message:P?.response?.data?.message||"notification.error"}),L()}},b=X&&!v||j&&v;return!v&&!T&&w!=="success"?t.createElement(M,{transferTokenName:T?.name}):t.createElement(r.Main,null,t.createElement(i.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(s.Formik,{validationSchema:p,validateOnChange:!1,initialValues:{name:T?.name||"",description:T?.description||"",lifespan:T?.lifespan?T.lifespan.toString():T?.lifespan},enableReinitialize:!0,onSubmit:(y,K)=>ee(y,K)},({errors:y,handleChange:K,isSubmitting:Z,values:P})=>t.createElement(i.Form,null,t.createElement(V.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:T,setToken:U,canEditInputs:b,canRegenerate:Y,isSubmitting:Z,regenerateUrl:"/admin/transfer/tokens/"}),t.createElement(r.ContentLayout,null,t.createElement(r.Flex,{direction:"column",alignItems:"stretch",gap:6},Boolean(T?.name)&&t.createElement(F.Z,{token:T?.accessKey,tokenType:W.f}),t.createElement(S,{errors:y,onChange:K,canEditInputs:b,isCreating:v,values:P,transferToken:T}))))))}}}]);
@@ -0,0 +1,79 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(K,M,n){n.r(M),n.d(M,{default:function(){return It}});var e=n(32735),r=n(13478),S=n(84968),E=n(33795),z=n.n(E),y=JSON.parse('{"i8":"4.7.2-exp.175f7ac70ee76d6c825e4429e15fc85ee78d23bb"}'),k=n(8888),d=n(5141),x=n(4409),R=n(74506),b=n(51968),$=n(88311),U=n.n($),Ce=n(58107),v=n(83292),Me=n(60216),i=n.n(Me),F=n(5636),o=n(39161),C=n(57269);const Re=(0,v.default)(o.Flex)`
2
+ position: fixed;
3
+ z-index: 4;
4
+ inset: 0;
5
+ /* this is theme.colors.neutral800 with opacity */
6
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
7
+ `,te=({onClose:t,onSkip:a,children:s,hideSkip:l})=>{const{formatMessage:g}=(0,F.useIntl)();return e.createElement(o.Portal,null,e.createElement(Re,{onClick:t,padding:8,justifyContent:"center"},e.createElement(o.FocusTrap,{onEscape:t},e.createElement(o.Flex,{direction:"column",alignItems:"stretch",background:"neutral0",width:(0,r.pxToRem)(660),shadow:"popupShadow",hasRadius:!0,padding:4,gap:8,role:"dialog","aria-modal":!0,onClick:p=>p.stopPropagation()},e.createElement(o.Flex,{justifyContent:"flex-end"},e.createElement(o.IconButton,{onClick:t,"aria-label":g({id:"app.utils.close-label",defaultMessage:"Close"}),icon:e.createElement(C.Cross,null)})),e.createElement(o.Box,{paddingLeft:7,paddingRight:7,paddingBottom:l?8:0},s),!l&&e.createElement(o.Flex,{justifyContent:"flex-end"},e.createElement(o.Button,{variant:"tertiary",onClick:a},g({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"})))))))};te.propTypes={children:i().node.isRequired,onClose:i().func.isRequired,onSkip:i().func.isRequired,hideSkip:i().bool.isRequired};var xe=te,ne=n(97889);const ae={stepContent:null,sectionIndex:null,stepIndex:null,hasSectionAfter:!1,hasStepAfter:!1};var Ie=(t=ae,a)=>(0,ne.default)(t,s=>{switch(a.type){case"UPDATE_MODAL":{s.stepContent=a.content,s.sectionIndex=a.newSectionIndex,s.stepIndex=a.newStepIndex,s.hasSectionAfter=a.newHasSectionAfter,s.hasStepAfter=a.newHasStepAfter;break}default:return s}});const Pe=v.default.li`
8
+ list-style: disc;
9
+ &::marker {
10
+ color: ${({theme:t})=>t.colors.neutral800};
11
+ }
12
+ `,oe=({id:t,defaultMessage:a})=>{const{formatMessage:s}=(0,F.useIntl)();return e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:4,paddingBottom:6},s({id:t,defaultMessage:a},{documentationLink:Se,b:Ae,p:Le,light:be,ul:Oe,li:De}))},Se=t=>e.createElement(o.Typography,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},t),Ae=t=>e.createElement(o.Typography,{fontWeight:"semiBold"},t),Le=t=>e.createElement(o.Typography,null,t),be=t=>e.createElement(o.Typography,{textColor:"neutral600"},t),Oe=t=>e.createElement(o.Box,{paddingLeft:6},e.createElement("ul",null,t)),De=t=>e.createElement(Pe,null,t);oe.propTypes={id:i().string.isRequired,defaultMessage:i().string.isRequired};var Be=oe,H=n(78024),ke=n(14317);const w=({number:t,last:a,type:s})=>e.createElement(o.Box,{paddingTop:3,paddingBottom:a?0:3},e.createElement(ke.Z,{number:t,type:s}));w.defaultProps={number:void 0,last:!1,type:""},w.propTypes={number:i().number,last:i().bool,type:i().string};var se=w,N=n(23678);const Z=({title:t,content:a,cta:s,onCtaClick:l,sectionIndex:g,stepIndex:p,hasSectionAfter:f})=>{const{formatMessage:m}=(0,F.useIntl)(),h=g>0,u=p>0,T=g+1;return e.createElement(e.Fragment,null,e.createElement(o.Flex,{alignItems:"stretch"},e.createElement(o.Flex,{marginRight:8,justifyContent:"center",minWidth:(0,r.pxToRem)(30)},h&&e.createElement(H.Z,{type:N.hx,minHeight:(0,r.pxToRem)(24)})),e.createElement(o.Typography,{variant:"sigma",textColor:"primary600"},m({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(o.Flex,null,e.createElement(o.Flex,{marginRight:8,minWidth:(0,r.pxToRem)(30)},e.createElement(se,{number:g+1,type:u?N.hx:N.lW})),e.createElement(o.Typography,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},m(t))),e.createElement(o.Flex,{alignItems:"stretch"},e.createElement(o.Flex,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,r.pxToRem)(30)},f&&e.createElement(e.Fragment,null,e.createElement(H.Z,{type:N.hx}),u&&e.createElement(se,{number:T+1,type:N.lW,last:!0}))),e.createElement(o.Box,null,e.createElement(Be,{...a}),s&&(s.target?e.createElement(r.LinkButton,{endIcon:e.createElement(C.ArrowRight,null),onClick:l,to:s.target},m(s.title)):e.createElement(o.Button,{endIcon:e.createElement(C.ArrowRight,null),onClick:l},m(s.title))))),u&&f&&e.createElement(o.Box,{paddingTop:3},e.createElement(o.Flex,{marginRight:8,justifyContent:"center",width:(0,r.pxToRem)(30)},e.createElement(H.Z,{type:N.hx,minHeight:(0,r.pxToRem)(24)}))))};Z.defaultProps={currentStep:null,cta:void 0},Z.propTypes={sectionIndex:i().number.isRequired,stepIndex:i().number.isRequired,hasSectionAfter:i().bool.isRequired,content:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired,cta:i().shape({target:i().string,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired})}),currentStep:i().string,onCtaClick:i().func.isRequired,title:i().shape({id:i().string.isRequired,defaultMessage:i().string.isRequired}).isRequired};var Fe=Z,Ne=()=>{const{currentStep:t,guidedTourState:a,setCurrentStep:s,setStepState:l,isGuidedTourVisible:g,setSkipped:p}=(0,r.useGuidedTour)(),[f,m]=(0,e.useState)(t),[{stepContent:h,sectionIndex:u,stepIndex:T,hasSectionAfter:O,hasStepAfter:A},W]=(0,e.useReducer)(Ie,ae),{trackUsage:G}=(0,r.useTracking)();(0,e.useEffect)(()=>{if(!t){m(!1);return}const[D]=U()(a,t);m(!D&&g)},[t,a,g]),(0,e.useEffect)(()=>{if(t){const[D]=U()(Ce.Z,t),L=Object.keys(a),[P,c]=t.split("."),B=L.indexOf(P),V=Object.keys(a[P]).indexOf(c),q=B<L.length-1,_=V<Object.keys(a[P]).length-1;W({type:"UPDATE_MODAL",content:D,newSectionIndex:B,newStepIndex:V,newHasSectionAfter:q,newHasStepAfter:_})}},[t,a]);const I=()=>{l(t,!0),G(h.trackingEvent),s(null)},j=()=>{p(!0),s(null),G("didSkipGuidedtour")};return f&&h?e.createElement(xe,{hideSkip:!A&&!O,onSkip:j,onClose:I},e.createElement(Fe,{...h,onCtaClick:I,currentStep:t,sectionIndex:u,stepIndex:T,hasSectionAfter:O})):null},Ge=n(15300),Ue=n(61450),We=n(1897),Q=n(78464),re=n(42889),je=n(25390),Ke=n(3703),$e=n(17264);const Ve=(0,v.default)(o.Box)`
13
+ width: ${150/16}rem;
14
+ position: absolute;
15
+ bottom: ${({theme:t})=>t.spaces[9]};
16
+ left: ${({theme:t})=>t.spaces[5]};
17
+ `,ie=(0,v.default)(d.NavLink)`
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ text-decoration: none;
22
+ padding: ${({theme:t})=>`${t.spaces[2]} ${t.spaces[4]}`};
23
+ border-radius: ${({theme:t})=>t.spaces[1]};
24
+
25
+ &:hover {
26
+ background: ${({theme:t,logout:a})=>a?t.colors.danger100:t.colors.primary100};
27
+ text-decoration: none;
28
+ }
29
+
30
+ svg {
31
+ path {
32
+ fill: ${({theme:t})=>t.colors.danger600};
33
+ }
34
+ }
35
+ `,le=({generalSectionLinks:t,pluginsSectionLinks:a})=>{const s=(0,e.useRef)(),[l,g]=(0,e.useState)(!1),{logos:{menu:p}}=(0,k.um)(),[f,m]=(0,r.usePersistentState)("navbar-condensed",!1),{userDisplayName:h}=(0,r.useAppInfos)(),{formatMessage:u}=(0,F.useIntl)(),{trackUsage:T}=(0,r.useTracking)(),{pathname:O}=(0,d.useLocation)(),A=(0,d.useHistory)(),{post:W}=(0,r.getFetchClient)(),G=h.split(" ").map(c=>c.substring(0,1)).join("").substring(0,2),I=()=>g(c=>!c),j=async()=>{await W("/admin/logout"),r.auth.clearAppStorage(),I(),A.push("/auth/login")},D=c=>{!c.currentTarget.contains(c.relatedTarget)&&c.relatedTarget?.parentElement?.id!=="main-nav-user-button"&&g(!1)},L=(c=null)=>{T("willNavigate",{from:O,to:c})},P=u({id:"app.components.LeftMenu.navbrand.title",defaultMessage:"Strapi Dashboard"});return e.createElement(Ge.$,{condensed:f},e.createElement(Ue.D,{as:d.NavLink,workplace:u({id:"app.components.LeftMenu.navbrand.workplace",defaultMessage:"Workplace"}),title:P,icon:e.createElement("img",{src:p.custom||p.default,alt:u({id:"app.components.LeftMenu.logo.alt",defaultMessage:"Application logo"})})}),e.createElement(o.Divider,null),e.createElement(We._,null,e.createElement(Q.O,{as:d.NavLink,to:"/content-manager",icon:e.createElement(C.Write,null),onClick:()=>L("/content-manager")},u({id:"global.content-manager",defaultMessage:"Content manager"})),a.length>0?e.createElement(re.y,{label:u({id:"app.components.LeftMenu.plugins",defaultMessage:"Plugins"})},a.map(c=>{const B=c.icon;return e.createElement(Q.O,{as:d.NavLink,to:c.to,key:c.to,icon:e.createElement(B,null),onClick:()=>L(c.to)},u(c.intlLabel))})):null,t.length>0?e.createElement(re.y,{label:u({id:"app.components.LeftMenu.general",defaultMessage:"General"})},t.map(c=>{const B=c.icon;return e.createElement(Q.O,{as:d.NavLink,badgeContent:c.notificationsCount>0&&c.notificationsCount.toString()||void 0,to:c.to,key:c.to,icon:e.createElement(B,null),onClick:()=>L(c.to)},u(c.intlLabel))})):null),e.createElement(je.q,null,e.createElement(Ke.r,{id:"main-nav-user-button",ref:s,onClick:I,initials:G},h),l&&e.createElement(Ve,{onBlur:D,padding:1,shadow:"tableShadow",background:"neutral0",hasRadius:!0},e.createElement(o.FocusTrap,{onEscape:I},e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:0},e.createElement(ie,{tabIndex:0,onClick:I,to:"/me"},e.createElement(o.Typography,null,u({id:"global.profile",defaultMessage:"Profile"}))),e.createElement(ie,{tabIndex:0,onClick:j,logout:"logout",to:"/auth/login"},e.createElement(o.Typography,{textColor:"danger600"},u({id:"app.components.LeftMenu.logout",defaultMessage:"Logout"})),e.createElement(C.Exit,null))))),e.createElement($e.w,{onClick:()=>m(c=>!c)},u(f?{id:"app.components.LeftMenu.expand",defaultMessage:"Expand the navbar"}:{id:"app.components.LeftMenu.collapse",defaultMessage:"Collapse the navbar"}))))};le.propTypes={generalSectionLinks:i().array.isRequired,pluginsSectionLinks:i().array.isRequired};var ze=le;const He=(0,v.default)(o.Box)`
36
+ flex: 1;
37
+ `,ce=({children:t,sideNav:a})=>{const{formatMessage:s}=(0,F.useIntl)();return e.createElement(o.Box,{background:"neutral100"},e.createElement(o.SkipToContent,null,s({id:"skipToContent",defaultMessage:"Skip to content"})),e.createElement(o.Flex,{alignItems:"flex-start"},a,e.createElement(He,null,t)))};ce.propTypes={children:i().node.isRequired,sideNav:i().node.isRequired};var we=ce,Y=n(64421),Ze=n(26648),Qe=n.p+"19eb2dfcf2603eb55733.png";const Ye=[{label:{id:"app.components.Onboarding.link.build-content",defaultMessage:"Build a content architecture"},href:"https://www.youtube.com/watch?v=G9GjN0RxhkE",duration:"5:48"},{label:{id:"app.components.Onboarding.link.manage-content",defaultMessage:"Add & manage content"},href:"https://www.youtube.com/watch?v=DEZw4KbybAI",duration:"3:18"},{label:{id:"app.components.Onboarding.link.manage-media",defaultMessage:"Manage media"},href:"https://www.youtube.com/watch?v=-61MuiMQb38",duration:"3:41"}],de={href:"https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq",label:{id:"app.components.Onboarding.link.more-videos",defaultMessage:"Watch more videos"}},Je=[{label:{id:"global.documentation",defaultMessage:"documentation"},href:"https://docs.strapi.io",icon:C.Book},{label:{id:"app.static.links.cheatsheet",defaultMessage:"cheatsheet"},href:"https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf",icon:C.PaperPlane}],Xe=(0,v.default)(o.Button)`
38
+ border-radius: 50%;
39
+ padding: ${({theme:t})=>t.spaces[3]};
40
+ /* Resetting 2rem height defined by Button component */
41
+ height: 100%;
42
+ `,qe=(0,v.default)(o.Flex)`
43
+ transform: translate(-50%, -50%);
44
+ `,_e=(0,v.default)(o.Flex)`
45
+ text-decoration: none;
46
+
47
+ :focus-visible {
48
+ outline-offset: ${({theme:t})=>`-${t.spaces[1]}`};
49
+ }
50
+
51
+ :hover {
52
+ background: ${({theme:t})=>t.colors.primary100};
53
+
54
+ /* Hover style for the number displayed */
55
+ ${o.Typography}:first-child {
56
+ color: ${({theme:t})=>t.colors.primary500};
57
+ }
58
+
59
+ /* Hover style for the label */
60
+ ${o.Typography}:nth-child(1) {
61
+ color: ${({theme:t})=>t.colors.primary600};
62
+ }
63
+ }
64
+ `,et=v.default.img`
65
+ width: ${({theme:t})=>t.spaces[10]};
66
+ height: ${({theme:t})=>t.spaces[8]};
67
+ /* Same overlay used in ModalLayout */
68
+ background: ${({theme:t})=>`${t.colors.neutral800}1F`};
69
+ border-radius: ${({theme:t})=>t.borderRadius};
70
+ `,ue=(0,v.default)(o.Typography)`
71
+ /* line height of label and watch more to 1 so they can be better aligned visually */
72
+ line-height: 1;
73
+ `,pe=(0,v.default)(ue)`
74
+ text-decoration: none;
75
+
76
+ :hover {
77
+ text-decoration: underline;
78
+ }
79
+ `;var tt=()=>{const t=(0,e.useRef)(),[a,s]=(0,e.useState)(!1),{formatMessage:l}=(0,F.useIntl)(),{communityEdition:g}=(0,r.useAppInfos)(),p=()=>{s(m=>!m)},f=[...Je,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:C.Message,href:g?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(o.Box,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(Xe,{"aria-label":l(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:p,ref:t},e.createElement(o.Icon,{as:a?C.Cross:C.Question,color:"buttonNeutral0"})),a&&e.createElement(o.Portal,null,e.createElement(o.PopoverPrimitives.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(o.FocusTrap,{onEscape:p},e.createElement(o.Flex,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(ue,{fontWeight:"bold"},l({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(pe,{as:"a",href:de.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},l(de.label))),e.createElement(o.Divider,null),Ye.map(({href:m,duration:h,label:u},T)=>e.createElement(_e,{as:"a",href:m,target:"_blank",rel:"noreferrer noopener",key:m,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(o.Box,{paddingRight:5},e.createElement(o.Typography,{textColor:"neutral200",variant:"alpha"},T+1)),e.createElement(o.Box,{position:"relative"},e.createElement(et,{src:Qe,alt:""}),e.createElement(qe,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(o.Icon,{as:C.Play,color:"buttonNeutral0",width:3,height:3}))),e.createElement(o.Flex,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(o.Typography,{fontWeight:"bold"},l(u)),e.createElement(o.VisuallyHidden,null,":"),e.createElement(o.Typography,{textColor:"neutral600",variant:"pi"},h)))),e.createElement(o.Flex,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},f.map(({label:m,href:h,icon:u})=>e.createElement(o.Flex,{gap:3,key:h},e.createElement(o.Icon,{as:u,color:"primary600"}),e.createElement(pe,{as:"a",href:h,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},l(m)))))))))};const nt=(0,e.lazy)(()=>Promise.all([n.e(8469),n.e(3094),n.e(994)]).then(n.bind(n,39573))),at=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,12016))),ot=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),st=(0,e.lazy)(()=>Promise.all([n.e(8469),n.e(5516)]).then(n.bind(n,92698))),me=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),rt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),it=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),ge=(0,e.lazy)(()=>Promise.all([n.e(8469),n.e(5895)]).then(n.bind(n,71540))),lt=()=>{const{trackUsage:t}=(0,r.useTracking)(),a=(0,x.useDispatch)(),s=(0,x.useSelector)(l=>l.admin_app.status);(0,e.useEffect)(()=>{s==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:Ze.e}))},[s])};var ct=()=>{lt();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:s}=(0,k.H9)(),{menu:l}=(0,r.useStrapiApp)(),{showTutorials:g}=(0,k.um)(),p=(0,e.useMemo)(()=>l.filter(f=>f.Component).map(({to:f,Component:m,exact:h})=>(0,Y.ot)(m,f,h)),[l]);return t?e.createElement(r.LoadingIndicatorPage,null):e.createElement(R.DndProvider,{backend:b.PD},e.createElement(we,{sideNav:e.createElement(ze,{generalSectionLinks:a,pluginsSectionLinks:s})},e.createElement(e.Suspense,{fallback:e.createElement(r.LoadingIndicatorPage,null)},e.createElement(d.Switch,null,e.createElement(d.Route,{path:"/",component:at,exact:!0}),e.createElement(d.Route,{path:"/me",component:it,exact:!0}),e.createElement(d.Route,{path:"/content-manager",component:nt}),p,e.createElement(d.Route,{path:"/settings/:settingId",component:ge}),e.createElement(d.Route,{path:"/settings",component:ge,exact:!0}),e.createElement(d.Route,{path:"/marketplace"},e.createElement(st,null)),e.createElement(d.Route,{path:"/list-plugins",exact:!0},e.createElement(ot,null)),e.createElement(d.Route,{path:"/404",component:me}),e.createElement(d.Route,{path:"/500",component:rt}),e.createElement(d.Route,{path:"",component:me}))),e.createElement(Ne,null),g&&e.createElement(tt,null)))},dt=t=>({plugins:Object.keys(t).reduce((a,s)=>(a[s]={...t[s]},a),{})}),ut=n(3040),pt=n.n(ut);const he={plugins:null};var mt=(t=he,a)=>(0,ne.default)(t,s=>{switch(a.type){case"SET_PLUGIN_READY":{pt()(s,["plugins",a.pluginId,"isReady"],!0);break}default:return s}}),gt=()=>{const{plugins:t}=(0,r.useStrapiApp)(),[{plugins:a},s]=(0,e.useReducer)(mt,he,()=>dt(t)),l=(0,e.useRef)(p=>{s({type:"SET_PLUGIN_READY",pluginId:p})});if(Object.keys(a).some(p=>a[p].isReady===!1)){const p=Object.keys(a).reduce((f,m)=>{const h=a[m].initializer;if(h){const u=a[m].pluginId;f.push(e.createElement(h,{key:u,setPlugin:l.current}))}return f},[]);return e.createElement(e.Fragment,null,p,e.createElement(r.LoadingIndicatorPage,null))}return e.createElement(ct,null)},fe=n(17367);const ht=()=>({type:fe.l}),ft=t=>({type:fe.m,permissions:t}),Ee=({children:t,permissions:a,refetchPermissions:s})=>{const{allPermissions:l}=(0,x.useSelector)(p=>p.rbacProvider),g=(0,x.useDispatch)();return(0,e.useEffect)(()=>(g(ft(a)),()=>{g(ht())}),[a,g]),l?e.createElement(r.RBACProviderContext.Provider,{value:{allPermissions:l,refetchPermissions:s}},t):e.createElement(r.LoadingIndicatorPage,null)};Ee.propTypes={children:i().element.isRequired,permissions:i().array.isRequired,refetchPermissions:i().func.isRequired};var Et=Ee,yt=n(55721),Tt=n(54770),J=n.n(Tt),ye=(t,a)=>!J().valid(t)||!J().valid(a)?!1:J().lt(t,a);const Te=y.i8,vt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:X}=(0,r.getFetchClient)(),Ct=async t=>{try{const{data:{tag_name:a}}=await yt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return ye(Te,a)&&vt&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${a}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),a}catch{return Te}},Mt=async()=>{try{const{data:t,headers:a}=await X("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Rt=async()=>{try{const{data:t,headers:a}=await X("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},xt=async()=>{try{const{data:{data:{roles:t}}}=await X("/admin/users/me");return t}catch(t){throw new Error(t)}},ve=y.i8;var It=()=>{const{setGuidedTourVisibility:t}=(0,r.useGuidedTour)(),a=(0,r.useNotification)(),s=(0,e.useRef)(t),l=r.auth.getUserInfo(),g=z()(l,"username")||(0,Y.Pp)(l.firstname,l.lastname),[p,f]=(0,e.useState)(g),[m,h]=(0,e.useState)(null),{showReleaseNotification:u}=(0,k.um)(),[{data:T,status:O},{data:A,isLoading:W},{data:G,status:I,refetch:j,isFetched:D,isFetching:L},{data:P}]=(0,S.useQueries)([{queryKey:"app-infos",queryFn:Mt},{queryKey:"strapi-release",queryFn:()=>Ct(a),enabled:u,initialData:ve},{queryKey:"admin-users-permission",queryFn:Rt,initialData:[]},{queryKey:"user-roles",queryFn:xt}]),c=(0,e.useMemo)(()=>ye(ve,A),[A]);(0,e.useEffect)(()=>{P&&P.find(({code:ee})=>ee==="strapi-super-admin")&&T?.autoReload&&s.current(!0)},[P,T]),(0,e.useEffect)(()=>{(async()=>{const ee=await(0,Y.Qy)(l);h(ee)})()},[l]);const V=W||(L&&D||O==="loading"||I==="loading"),q=(0,e.useMemo)(()=>({...T,userId:m,latestStrapiReleaseTag:A,setUserDisplayName:f,shouldUpdateStrapi:c,userDisplayName:p}),[T,A,c,p,m]);return V?e.createElement(r.LoadingIndicatorPage,null):O==="error"?e.createElement("div",null,"error..."):e.createElement(r.AppInfosContext.Provider,{value:q},e.createElement(Et,{permissions:G,refetchPermissions:j},e.createElement(gt,null)))}},78024:function(K,M,n){var e=n(32735),r=n(60216),S=n.n(r),E=n(13478),z=n.n(E),y=n(39161),k=n.n(y),d=n(23678);const x=({type:R,...b})=>e.createElement(y.Box,{width:(0,E.pxToRem)(2),height:"100%",background:R===d.VM?"neutral300":"primary500",hasRadius:!0,...b});x.defaultProps={type:d.VM},x.propTypes={type:S().oneOf([d.lW,d.hx,d.VM])},M.Z=x},14317:function(K,M,n){var e=n(32735),r=n(60216),S=n.n(r),E=n(13478),z=n.n(E),y=n(39161),k=n.n(y),d=n(57269),x=n.n(d),R=n(23678);const b=({type:$,number:U})=>$===R.hx?e.createElement(y.Flex,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Icon,{as:d.Check,"aria-hidden":!0,width:(0,E.pxToRem)(16),color:"neutral0"})):$===R.lW?e.createElement(y.Flex,{background:"primary600",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Typography,{fontWeight:"semiBold",textColor:"neutral0"},U)):e.createElement(y.Flex,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,E.pxToRem)(30),height:(0,E.pxToRem)(30),justifyContent:"center"},e.createElement(y.Typography,{fontWeight:"semiBold",textColor:"neutral600"},U));b.defaultProps={number:void 0,type:R.VM},b.propTypes={number:S().number,type:S().oneOf([R.lW,R.hx,R.VM])},M.Z=b},23678:function(K,M,n){n.d(M,{VM:function(){return S},hx:function(){return r},lW:function(){return e}});const e="isActive",r="isDone",S="isNotDone"},58107:function(K,M){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<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>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<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 - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<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>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};M.Z=n}}]);
@@ -0,0 +1,68 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3981],{83119:function(M,E){const o=()=>null;E.Z=o},12016:function(M,E,o){o.r(E),o.d(E,{default:function(){return ce}});var e=o(32735),f=o(5636),c=o(83292),L=o(99357),H=o(5141),l=o(13478),n=o(39161),P=o.p+"7e9af4fb7e723fcebf1f.svg",w=o(8888),I=t=>Object.entries(t).every(([,r])=>Object.entries(r).every(([,a])=>a)),d=o(57269),R=o(60216),i=o.n(R),G=o(14317),F=o(78024),p=o(23678);const b=({type:t,title:r,number:a,content:s,hasLine:m})=>{const{formatMessage:h}=(0,f.useIntl)();return e.createElement(n.Box,null,e.createElement(n.Flex,null,e.createElement(n.Box,{minWidth:(0,l.pxToRem)(30),marginRight:5},e.createElement(G.Z,{type:t,number:a})),e.createElement(n.Typography,{variant:"delta",as:"h3"},h(r))),e.createElement(n.Flex,{alignItems:"flex-start"},e.createElement(n.Flex,{justifyContent:"center",minWidth:(0,l.pxToRem)(30),marginBottom:3,marginTop:3,marginRight:5},m&&e.createElement(F.Z,{type:t,minHeight:t===p.lW?(0,l.pxToRem)(85):(0,l.pxToRem)(65)})),e.createElement(n.Box,{marginTop:2},t===p.lW&&s)))};b.defaultProps={content:void 0,number:void 0,type:p.VM,hasLine:!0},b.propTypes={content:i().node,number:i().number,title:i().shape({id:i().string,defaultMessage:i().string}).isRequired,type:i().oneOf([p.lW,p.hx,p.VM]),hasLine:i().bool};var j=b;const W=(t,r)=>t===-1||r<t?p.hx:r>t?p.VM:p.lW,C=({sections:t,currentSectionKey:r})=>{const a=t.findIndex(s=>s.key===r);return e.createElement(n.Box,null,t.map((s,m)=>e.createElement(j,{key:s.key,title:s.title,content:s.content,number:m+1,type:W(a,m),hasLine:m!==t.length-1})))};C.defaultProps={currentSectionKey:void 0},C.propTypes={sections:i().arrayOf(i().shape({key:i().string.isRequired,title:i().shape({id:i().string,defaultMessage:i().string}).isRequired,content:i().node})).isRequired,currentSectionKey:i().string};var D=C,O=o(58107),A=()=>{const{guidedTourState:t,setSkipped:r}=(0,l.useGuidedTour)(),{formatMessage:a}=(0,f.useIntl)(),{trackUsage:s}=(0,l.useTracking)(),m=Object.entries(O.Z).map(([u,g])=>({key:u,title:g.home.title,content:e.createElement(l.LinkButton,{onClick:()=>s(g.home.trackingEvent),to:g.home.cta.target,endIcon:e.createElement(d.ArrowRight,null)},a(g.home.cta.title))})),T=m.map(u=>({isDone:Object.entries(t[u.key]).every(([,g])=>g),...u})).find(u=>!u.isDone)?.key,x=()=>{r(!0),s("didSkipGuidedtour")};return e.createElement(n.Box,{hasRadius:!0,shadow:"tableShadow",paddingTop:7,paddingRight:4,paddingLeft:7,paddingBottom:4,background:"neutral0"},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:6},e.createElement(n.Typography,{variant:"beta",as:"h2"},a({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"})),e.createElement(D,{sections:m,currentSectionKey:T})),e.createElement(n.Flex,{justifyContent:"flex-end"},e.createElement(n.Button,{variant:"tertiary",onClick:x},a({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"}))))},Z=o(95489),S=o(41502);const z=(0,c.default)(d.Discord)`
2
+ path {
3
+ fill: #7289da !important;
4
+ }
5
+ `,$=(0,c.default)(d.Reddit)`
6
+ > path:first-child {
7
+ fill: #ff4500;
8
+ }
9
+ `,v=(0,c.default)(d.Strapi)`
10
+ > path:first-child {
11
+ fill: #4945ff;
12
+ }
13
+ > path:nth-child(2) {
14
+ fill: #fff;
15
+ }
16
+ > path:nth-child(4) {
17
+ fill: #9593ff;
18
+ }
19
+ `,N=(0,c.default)(d.Twitter)`
20
+ path {
21
+ fill: #1da1f2 !important;
22
+ }
23
+ `,V=(0,c.default)(d.Discourse)`
24
+ > path:first-child {
25
+ fill: #231f20;
26
+ }
27
+ > path:nth-child(2) {
28
+ fill: #fff9ae;
29
+ }
30
+ > path:nth-child(3) {
31
+ fill: #00aeef;
32
+ }
33
+ > path:nth-child(4) {
34
+ fill: #00a94f;
35
+ }
36
+ > path:nth-child(5) {
37
+ fill: #f15d22;
38
+ }
39
+ > path:nth-child(6) {
40
+ fill: #e31b23;
41
+ }
42
+ `,K=[{name:{id:"app.components.HomePage.community.links.github",defaultMessage:"Github"},link:"https://github.com/strapi/strapi/",icon:e.createElement(d.Github,{fill:"#7289DA"}),alt:"github"},{name:{id:"app.components.HomePage.community.links.discord",defaultMessage:"Discord"},link:"https://discord.strapi.io/",icon:e.createElement(z,null),alt:"discord"},{name:{id:"app.components.HomePage.community.links.reddit",defaultMessage:"Reddit"},link:"https://www.reddit.com/r/Strapi/",icon:e.createElement($,null),alt:"reddit"},{name:{id:"app.components.HomePage.community.links.twitter",defaultMessage:"Twitter"},link:"https://twitter.com/strapijs",icon:e.createElement(N,null),alt:"twitter"},{name:{id:"app.components.HomePage.community.links.forum",defaultMessage:"Forum"},link:"https://forum.strapi.io",icon:e.createElement(V,null),alt:"forum"},{name:{id:"app.components.HomePage.community.links.blog",defaultMessage:"Blog"},link:"https://strapi.io/blog?utm_source=referral&utm_medium=admin&utm_campaign=career%20page",icon:e.createElement(v,null),alt:"blog"},{name:{id:"app.components.HomePage.community.links.career",defaultMessage:"We are hiring!"},link:"https://strapi.io/careers?utm_source=referral&utm_medium=admin&utm_campaign=blog",icon:e.createElement(v,null),alt:"career"}],U=(0,c.default)(Z.Q)`
43
+ display: flex;
44
+ align-items: center;
45
+ border: none;
46
+
47
+ svg {
48
+ width: ${({theme:t})=>t.spaces[6]};
49
+ height: ${({theme:t})=>t.spaces[6]};
50
+ }
51
+
52
+ span {
53
+ word-break: keep-all;
54
+ }
55
+ `,J=(0,c.default)(n.Grid)`
56
+ row-gap: ${({theme:t})=>t.spaces[2]};
57
+ column-gap: ${({theme:t})=>t.spaces[4]};
58
+ `;var Q=()=>{const{formatMessage:t}=(0,f.useIntl)(),{communityEdition:r}=(0,l.useAppInfos)(),a=[...K,{icon:e.createElement(v,null),link:r?"https://discord.strapi.io":"https://support.strapi.io/support/home",name:{id:"Settings.application.get-help",defaultMessage:"Get help"}}];return e.createElement(n.Box,{as:"aside","aria-labelledby":"join-the-community",background:"neutral0",hasRadius:!0,paddingRight:5,paddingLeft:5,paddingTop:6,paddingBottom:6,shadow:"tableShadow"},e.createElement(n.Box,{paddingBottom:7},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:5},e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:3},e.createElement(n.Typography,{variant:"delta",as:"h2",id:"join-the-community"},t({id:"app.components.HomePage.community",defaultMessage:"Join the community"})),e.createElement(n.Typography,{textColor:"neutral600"},t({id:"app.components.HomePage.community.content",defaultMessage:"Discuss with team members, contributors and developers on different channels"}))),e.createElement(S.r,{href:"https://feedback.strapi.io/",isExternal:!0,endIcon:e.createElement(d.ExternalLink,null)},t({id:"app.components.HomePage.roadmap",defaultMessage:"See our road map"})))),e.createElement(J,null,a.map(({icon:s,link:m,name:h})=>e.createElement(n.GridItem,{col:6,s:12,key:h},e.createElement(U,{size:"L",startIcon:s,variant:"tertiary",href:m,isExternal:!0},t(h))))))};const Y=(0,c.default)(n.Typography)`
59
+ word-break: break-word;
60
+ `,B=({hasCreatedContentType:t,onCreateCT:r})=>{const{formatMessage:a}=(0,f.useIntl)();return e.createElement("div",null,e.createElement(n.Box,{paddingLeft:6,paddingBottom:10},e.createElement(n.Flex,{direction:"column",alignItems:"flex-start",gap:5},e.createElement(n.Typography,{as:"h1",variant:"alpha"},a(t?{id:"app.components.HomePage.welcome.again",defaultMessage:"Welcome \u{1F44B}"}:{id:"app.components.HomePage.welcome",defaultMessage:"Welcome on board!"})),e.createElement(Y,{textColor:"neutral600",variant:"epsilon"},a(t?{id:"app.components.HomePage.welcomeBlock.content.again",defaultMessage:"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."}:{id:"app.components.HomePage.welcomeBlock.content",defaultMessage:"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!"})),t?e.createElement(S.r,{isExternal:!0,href:"https://strapi.io/blog"},a({id:"app.components.HomePage.button.blog",defaultMessage:"See more on the blog"})):e.createElement(n.Button,{size:"L",onClick:r,endIcon:e.createElement(d.ArrowRight,null)},a({id:"app.components.HomePage.create",defaultMessage:"Create your first Content type"})))))};B.defaultProps={hasCreatedContentType:void 0,onCreateCT:void 0},B.propTypes={hasCreatedContentType:i().bool,onCreateCT:i().func};var X=B,q=o.p+"27d16aefee06412db90a.png",_=o.p+"bb3108f7fd1e6179bde1.svg",ee=o.p+"bb4d0d527bdfb161bc5a.svg";const te=c.default.a`
61
+ text-decoration: none;
62
+ `,ne=(0,c.default)(n.Box)`
63
+ background-image: url(${({backgroundImage:t})=>t});
64
+ `,oe=(0,c.default)(n.Flex)`
65
+ background: rgba(255, 255, 255, 0.3);
66
+ `;var ae=()=>{const{formatMessage:t}=(0,f.useIntl)(),{trackUsage:r}=(0,l.useTracking)();return e.createElement(te,{href:"https://cloud.strapi.io",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>{r("didClickOnTryStrapiCloudSection")}},e.createElement(n.Flex,{shadow:"tableShadow",hasRadius:!0,padding:6,background:"neutral0",position:"relative",gap:6},e.createElement(ne,{backgroundImage:q,hasRadius:!0,padding:3},e.createElement(oe,{width:(0,l.pxToRem)(32),height:(0,l.pxToRem)(32),justifyContent:"center",hasRadius:!0,alignItems:"center"},e.createElement("img",{src:_,alt:t({id:"app.components.BlockLink.cloud",defaultMessage:"Strapi Cloud"})}))),e.createElement(n.Flex,{gap:1,direction:"column",alignItems:"start"},e.createElement(n.Flex,null,e.createElement(n.Typography,{fontWeight:"semiBold",variant:"pi"},t({id:"app.components.BlockLink.cloud",defaultMessage:"Strapi Cloud"}))),e.createElement(n.Typography,{textColor:"neutral600"},t({id:"app.components.BlockLink.cloud.content",defaultMessage:"A fully composable, and collaborative platform to boost your team velocity."})),e.createElement(n.Box,{src:ee,position:"absolute",top:0,right:0,as:"img"}))))};const k=c.default.a`
67
+ text-decoration: none;
68
+ `;var re=()=>{const{formatMessage:t}=(0,f.useIntl)(),{trackUsage:r}=(0,l.useTracking)(),a=s=>{r(s)};return e.createElement(n.Flex,{direction:"column",alignItems:"stretch",gap:5},e.createElement(ae,null),e.createElement(k,{href:"https://strapi.io/resource-center",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonReadTheDocumentationSection")},e.createElement(l.ContentBox,{title:t({id:"global.documentation",defaultMessage:"Documentation"}),subtitle:t({id:"app.components.BlockLink.documentation.content",defaultMessage:"Discover the essential concepts, guides and instructions."}),icon:e.createElement(d.InformationSquare,null),iconBackground:"primary100"})),e.createElement(k,{href:"https://strapi.io/starters",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonCodeExampleSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.code",defaultMessage:"Code example"}),subtitle:t({id:"app.components.BlockLink.code.content",defaultMessage:"Learn by using ready-made starters for your projects."}),icon:e.createElement(d.CodeSquare,null),iconBackground:"warning100"})),e.createElement(k,{href:"https://strapi.io/blog/categories/tutorials",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonTutorialSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.tutorial",defaultMessage:"Tutorials"}),subtitle:t({id:"app.components.BlockLink.tutorial.content",defaultMessage:"Follow step-by-step instructions to use and customize Strapi."}),icon:e.createElement(d.PlaySquare,null),iconBackground:"secondary100"})),e.createElement(k,{href:"https://strapi.io/blog",target:"_blank",rel:"noopener noreferrer nofollow",onClick:()=>a("didClickonBlogSection")},e.createElement(l.ContentBox,{title:t({id:"app.components.BlockLink.blog",defaultMessage:"Blog"}),subtitle:t({id:"app.components.BlockLink.blog.content",defaultMessage:"Read the latest news about Strapi and the ecosystem."}),icon:e.createElement(d.FeatherSquare,null),iconBackground:"alternative100"})))};const le=(()=>window&&window.strapi&&window.strapi.isEE?o(21306).Z:o(83119).Z)(),ie=(0,c.default)(n.Box).withConfig({displayName:"HomePage__LogoContainer",componentId:"sc-1md9zz4-0"})(["position:absolute;top:0;right:0;img{width:","rem;}"],150/16),se=()=>{const{collectionTypes:t,singleTypes:r,isLoading:a}=(0,w.bP)(),{guidedTourState:s,isGuidedTourVisible:m,isSkipped:h}=(0,l.useGuidedTour)();le();const T=!I(s)&&m&&!h,{push:x}=(0,H.useHistory)(),u=y=>{y.preventDefault(),x("/plugins/content-type-builder/content-types/create-content-type")},g=(0,e.useMemo)(()=>{const y=de=>de.filter(me=>me.isDisplayed);return y(t).length>1||y(r).length>0},[t,r]);return a?e.createElement(l.LoadingIndicatorPage,null):e.createElement(n.Layout,null,e.createElement(f.FormattedMessage,{id:"HomePage.helmet.title",defaultMessage:"Homepage"},y=>e.createElement(L.Helmet,{title:y[0]})),e.createElement(n.Main,null,e.createElement(ie,null,e.createElement("img",{alt:"","aria-hidden":!0,src:P})),e.createElement(n.Box,{padding:10},e.createElement(n.Grid,null,e.createElement(n.GridItem,{col:8,s:12},e.createElement(X,{onCreateCT:u,hasCreatedContentType:g}))),e.createElement(n.Grid,{gap:6},e.createElement(n.GridItem,{col:8,s:12},T?e.createElement(A,null):e.createElement(re,null)),e.createElement(n.GridItem,{col:4,s:12},e.createElement(Q,null))))))};var ce=(0,e.memo)(se)}}]);
@@ -1,22 +1,22 @@
1
1
  "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5516],{92698:function(Qe,O,p){p.r(O),p.d(O,{MarketPlacePage:function(){return _},default:function(){return Ae}});var e=p(32735),E=p(5636),oe=p(99357),C=p(58469),u=p(13478),t=p(39161),ce=p(60216),a=p.n(ce),f=p(57269),T=p(83292);const de=(0,T.default)(t.Box)`
2
2
  background: ${({theme:n})=>`linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${n.colors.neutral150} 100%)`};
3
3
  opacity: 0.33;
4
- `,ue=()=>e.createElement(t.GridLayout,null,Array(12).fill(null).map((n,s)=>e.createElement(de,{key:`empty-plugin-card-${s}`,height:"234px",hasRadius:!0}))),$=({content:n})=>e.createElement(t.Box,{position:"relative"},e.createElement(ue,null),e.createElement(t.Box,{position:"absolute",top:11,width:"100%"},e.createElement(t.Flex,{alignItems:"center",justifyContent:"center",direction:"column"},e.createElement(t.Icon,{as:f.EmptyStateDocument,color:"",width:"160px",height:"88px"}),e.createElement(t.Box,{paddingTop:6},e.createElement(t.Typography,{variant:"delta",as:"p",textColor:"neutral600"},n)))));$.propTypes={content:a().string.isRequired};var V=$,j=p(95489);const x=({isOnline:n,npmPackageType:s})=>{const{formatMessage:r}=(0,E.useIntl)(),{trackUsage:i}=(0,u.useTracking)(),o=s==="provider"?"didSubmitProvider":"didSubmitPlugin";return e.createElement(t.HeaderLayout,{title:r({id:"global.marketplace",defaultMessage:"Marketplace"}),subtitle:r({id:"admin.pages.MarketPlacePage.subtitle",defaultMessage:"Get more out of Strapi"}),primaryAction:n&&e.createElement(j.Q,{startIcon:e.createElement(f.Upload,null),variant:"tertiary",href:`https://market.strapi.io/submit-${s}`,onClick:()=>i(o),isExternal:!0},r({id:`admin.pages.MarketPlacePage.submit.${s}.link`,defaultMessage:`Submit ${s}`}))})};var z=x;x.defaultProps={npmPackageType:"plugin"},x.propTypes={isOnline:a().bool.isRequired,npmPackageType:a().string};var G=p(84968),H=p(55721);const pe="https://market-api.strapi.io",ge=async(n={})=>{const{data:s}=await H.Z.get(`${pe}/providers`,{params:n});return s};var me=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-providers",s],()=>ge(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};const fe="https://market-api.strapi.io",he=async(n={})=>{const{data:s}=await H.Z.get(`${fe}/plugins`,{params:n});return{...s,data:s.data.filter(i=>i.attributes.strapiCompatibility==="v4")}};var Pe=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-plugins",s],()=>he(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},Ee=p(72041),ke=p.p+"9d5d788027e86620c234.svg",ye=()=>{const n=typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0,[s,r]=(0,e.useState)(n),i=()=>r(!0),o=()=>r(!1);return(0,e.useEffect)(()=>(window.addEventListener("online",i),window.addEventListener("offline",o),()=>{window.removeEventListener("online",i),window.removeEventListener("offline",o)}),[]),s},ve=()=>{const{formatMessage:n}=(0,E.useIntl)(),{trackUsage:s}=(0,u.useTracking)();return e.createElement("a",{href:"https://strapi.canny.io/plugin-requests",target:"_blank",rel:"noopener noreferrer nofollow",style:{textDecoration:"none"},onClick:()=>s("didMissMarketplacePlugin")},e.createElement(u.ContentBox,{title:n({id:"admin.pages.MarketPlacePage.missingPlugin.title",defaultMessage:"Documentation"}),subtitle:n({id:"admin.pages.MarketPlacePage.missingPlugin.description",defaultMessage:"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!"}),icon:e.createElement(f.GlassesSquare,null),iconBackground:"alternative100",endAction:e.createElement(t.Icon,{as:f.ExternalLink,color:"neutral600",width:3,height:3,marginLeft:2})}))},Me=p(24443),be=p.n(Me),Re=p(47750),Te=p(54770),U=p.n(Te);const S=({description:n,installMessage:s,disabled:r,handleCopy:i,pluginName:o})=>e.createElement(t.Tooltip,{"data-testid":`tooltip-${o}`,description:n},e.createElement(t.Box,null,e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",disabled:r,onClick:i},s))),B=({strapiPeerDepVersion:n,strapiAppVersion:s,handleCopy:r,pluginName:i})=>{const{formatMessage:o}=(0,E.useIntl)(),d=U().validRange(n),c=U().satisfies(s,d),l=o({id:"admin.pages.MarketPlacePage.plugin.copy",defaultMessage:"Copy install command"});if(s){if(!d)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version.null",defaultMessage:'Unable to verify compatibility with your Strapi version: "{strapiAppVersion}"'},{strapiAppVersion:s}),handleCopy:r});if(!c)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version",defaultMessage:'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'},{strapiAppVersion:s,versionRange:d}),disabled:!0})}return e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",onClick:r},l)};S.defaultProps={disabled:!1,handleCopy:null},S.propTypes={description:a().string.isRequired,installMessage:a().string.isRequired,disabled:a().bool,handleCopy:a().func,pluginName:a().string.isRequired},B.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},B.propTypes={strapiAppVersion:a().string,strapiPeerDepVersion:a().string,handleCopy:a().func.isRequired,pluginName:a().string.isRequired};var Se=B;const I=({isInstalled:n,isInDevelopmentMode:s,commandToCopy:r,strapiAppVersion:i,strapiPeerDepVersion:o,pluginName:d})=>{const c=(0,u.useNotification)(),{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=()=>{navigator.clipboard.writeText(r),g("willInstallPlugin"),c({type:"success",message:{id:"admin.pages.MarketPlacePage.plugin.copy.success"}})};return n?e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Icon,{as:f.Check,marginRight:2,width:12,height:12,color:"success600"}),e.createElement(t.Typography,{variant:"omega",textColor:"success600",fontWeight:"bold"},l({id:"admin.pages.MarketPlacePage.plugin.installed",defaultMessage:"Installed"}))):s?e.createElement(Se,{strapiAppVersion:i,strapiPeerDepVersion:o,handleCopy:m,pluginName:d}):null};I.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},I.propTypes={isInstalled:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,commandToCopy:a().string.isRequired,strapiAppVersion:a().string,strapiPeerDepVersion:a().string,pluginName:a().string.isRequired};var Ce=I;const xe=(0,T.default)(t.Divider)`
4
+ `,ue=()=>e.createElement(t.GridLayout,null,Array(12).fill(null).map((n,s)=>e.createElement(de,{key:`empty-plugin-card-${s}`,height:"234px",hasRadius:!0}))),$=({content:n})=>e.createElement(t.Box,{position:"relative"},e.createElement(ue,null),e.createElement(t.Box,{position:"absolute",top:11,width:"100%"},e.createElement(t.Flex,{alignItems:"center",justifyContent:"center",direction:"column"},e.createElement(t.Icon,{as:f.EmptyStateDocument,color:"",width:"160px",height:"88px"}),e.createElement(t.Box,{paddingTop:6},e.createElement(t.Typography,{variant:"delta",as:"p",textColor:"neutral600"},n)))));$.propTypes={content:a().string.isRequired};var V=$,j=p(95489);const x=({isOnline:n,npmPackageType:s})=>{const{formatMessage:r}=(0,E.useIntl)(),{trackUsage:i}=(0,u.useTracking)(),o=s==="provider"?"didSubmitProvider":"didSubmitPlugin";return e.createElement(t.HeaderLayout,{title:r({id:"global.marketplace",defaultMessage:"Marketplace"}),subtitle:r({id:"admin.pages.MarketPlacePage.subtitle",defaultMessage:"Get more out of Strapi"}),primaryAction:n&&e.createElement(j.Q,{startIcon:e.createElement(f.Upload,null),variant:"tertiary",href:`https://market.strapi.io/submit-${s}`,onClick:()=>i(o),isExternal:!0},r({id:`admin.pages.MarketPlacePage.submit.${s}.link`,defaultMessage:`Submit ${s}`}))})};var z=x;x.defaultProps={npmPackageType:"plugin"},x.propTypes={isOnline:a().bool.isRequired,npmPackageType:a().string};var G=p(84968),H=p(55721);const pe="https://market-api.strapi.io",ge=async(n={})=>{const{data:s}=await H.Z.get(`${pe}/providers`,{params:n});return s};var me=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-providers",s],()=>ge(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};const fe="https://market-api.strapi.io",he=async(n={})=>{const{data:s}=await H.Z.get(`${fe}/plugins`,{params:n});return{...s,data:s.data.filter(i=>i.attributes.strapiCompatibility==="v4")}};var Pe=(n,s)=>{const r=(0,u.useNotification)();return(0,G.useQuery)(["list-marketplace-plugins",s],()=>he(s),{onSuccess(){n&&n()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},Ee=p(72041),ke=p.p+"9d5d788027e86620c234.svg",ye=()=>{const n=typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0,[s,r]=(0,e.useState)(n),i=()=>r(!0),o=()=>r(!1);return(0,e.useEffect)(()=>(window.addEventListener("online",i),window.addEventListener("offline",o),()=>{window.removeEventListener("online",i),window.removeEventListener("offline",o)}),[]),s},ve=()=>{const{formatMessage:n}=(0,E.useIntl)(),{trackUsage:s}=(0,u.useTracking)();return e.createElement("a",{href:"https://strapi.canny.io/plugin-requests",target:"_blank",rel:"noopener noreferrer nofollow",style:{textDecoration:"none"},onClick:()=>s("didMissMarketplacePlugin")},e.createElement(u.ContentBox,{title:n({id:"admin.pages.MarketPlacePage.missingPlugin.title",defaultMessage:"Documentation"}),subtitle:n({id:"admin.pages.MarketPlacePage.missingPlugin.description",defaultMessage:"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!"}),icon:e.createElement(f.GlassesSquare,null),iconBackground:"alternative100",endAction:e.createElement(t.Icon,{as:f.ExternalLink,color:"neutral600",width:3,height:3,marginLeft:2})}))},Me=p(24443),be=p.n(Me),Re=p(47750),Te=p(54770),U=p.n(Te);const S=({description:n,installMessage:s,disabled:r,handleCopy:i,pluginName:o})=>e.createElement(t.Tooltip,{"data-testid":`tooltip-${o}`,description:n},e.createElement(t.Box,null,e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",disabled:r,onClick:i},s))),I=({strapiPeerDepVersion:n,strapiAppVersion:s,handleCopy:r,pluginName:i})=>{const{formatMessage:o}=(0,E.useIntl)(),d=U().validRange(n),c=U().satisfies(s,d),l=o({id:"admin.pages.MarketPlacePage.plugin.copy",defaultMessage:"Copy install command"});if(s){if(!d)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version.null",defaultMessage:'Unable to verify compatibility with your Strapi version: "{strapiAppVersion}"'},{strapiAppVersion:s}),handleCopy:r});if(!c)return e.createElement(S,{installMessage:l,pluginName:i,description:o({id:"admin.pages.MarketPlacePage.plugin.version",defaultMessage:'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'},{strapiAppVersion:s,versionRange:d}),disabled:!0})}return e.createElement(t.Button,{size:"S",startIcon:e.createElement(f.Duplicate,null),variant:"secondary",onClick:r},l)};S.defaultProps={disabled:!1,handleCopy:null},S.propTypes={description:a().string.isRequired,installMessage:a().string.isRequired,disabled:a().bool,handleCopy:a().func,pluginName:a().string.isRequired},I.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},I.propTypes={strapiAppVersion:a().string,strapiPeerDepVersion:a().string,handleCopy:a().func.isRequired,pluginName:a().string.isRequired};var Se=I;const B=({isInstalled:n,isInDevelopmentMode:s,commandToCopy:r,strapiAppVersion:i,strapiPeerDepVersion:o,pluginName:d})=>{const c=(0,u.useNotification)(),{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=()=>{navigator.clipboard.writeText(r),g("willInstallPlugin"),c({type:"success",message:{id:"admin.pages.MarketPlacePage.plugin.copy.success"}})};return n?e.createElement(t.Box,{paddingLeft:4},e.createElement(t.Icon,{as:f.Check,marginRight:2,width:12,height:12,color:"success600"}),e.createElement(t.Typography,{variant:"omega",textColor:"success600",fontWeight:"bold"},l({id:"admin.pages.MarketPlacePage.plugin.installed",defaultMessage:"Installed"}))):s?e.createElement(Se,{strapiAppVersion:i,strapiPeerDepVersion:o,handleCopy:m,pluginName:d}):null};B.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},B.propTypes={isInstalled:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,commandToCopy:a().string.isRequired,strapiAppVersion:a().string,strapiPeerDepVersion:a().string,pluginName:a().string.isRequired};var Ce=B;const xe=(0,T.default)(t.Divider)`
5
5
  width: ${(0,u.pxToRem)(12)};
6
6
  transform: rotate(90deg);
7
- `,w=({githubStars:n,npmDownloads:s,npmPackageType:r})=>{const{formatMessage:i}=(0,E.useIntl)();return e.createElement(t.Stack,{horizontal:!0,spacing:1},!!n&&e.createElement(e.Fragment,null,e.createElement(t.Icon,{as:f.Github,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement(t.Icon,{as:f.Star,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),color:"warning500","aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.githubStars`,defaultMessage:"This {package} was starred {starsCount} on GitHub"},{starsCount:n,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},n)),e.createElement(xe,{unsetMargin:!1,background:"neutral200"})),e.createElement(t.Icon,{as:f.Download,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.downloads`,defaultMessage:"This {package} has {downloadsCount} weekly downloads"},{downloadsCount:s,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},s)))};w.defaultProps={githubStars:0,npmDownloads:0},w.propTypes={githubStars:a().number,npmDownloads:a().number,npmPackageType:a().string.isRequired};var Be=w;const Ie=(0,T.default)(t.Typography)`
7
+ `,w=({githubStars:n,npmDownloads:s,npmPackageType:r})=>{const{formatMessage:i}=(0,E.useIntl)();return e.createElement(t.Flex,{gap:1},!!n&&e.createElement(e.Fragment,null,e.createElement(t.Icon,{as:f.Github,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement(t.Icon,{as:f.Star,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),color:"warning500","aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.githubStars`,defaultMessage:"This {package} was starred {starsCount} on GitHub"},{starsCount:n,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},n)),e.createElement(xe,{unsetMargin:!1,background:"neutral200"})),e.createElement(t.Icon,{as:f.Download,height:(0,u.pxToRem)(12),width:(0,u.pxToRem)(12),"aria-hidden":!0}),e.createElement("p",{"aria-label":i({id:`admin.pages.MarketPlacePage.${r}.downloads`,defaultMessage:"This {package} has {downloadsCount} weekly downloads"},{downloadsCount:s,package:r})},e.createElement(t.Typography,{variant:"pi",textColor:"neutral800",lineHeight:16},s)))};w.defaultProps={githubStars:0,npmDownloads:0},w.propTypes={githubStars:a().number,npmDownloads:a().number,npmPackageType:a().string.isRequired};var Ie=w;const Be=(0,T.default)(t.Typography)`
8
8
  /* stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix */
9
9
  display: -webkit-box;
10
10
  -webkit-box-orient: vertical;
11
11
  -webkit-line-clamp: 2;
12
12
  /* stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix */
13
13
  overflow: hidden;
14
- `,N=({npmPackage:n,isInstalled:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const{attributes:c}=n,{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=r?`yarn add ${c.npmPackageName}`:`npm install ${c.npmPackageName}`,y=l({id:"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi",defaultMessage:"Made by Strapi"}),M=`https://market.strapi.io/${be().plural(o)}/${c.slug}`;return e.createElement(t.Flex,{direction:"column",justifyContent:"space-between",paddingTop:4,paddingRight:4,paddingBottom:4,paddingLeft:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",height:"100%",alignItems:"normal","data-testid":"npm-package-card"},e.createElement(t.Box,null,e.createElement(t.Flex,{direction:"row",justifyContent:"space-between",alignItems:"flex-start"},e.createElement(t.Box,{as:"img",src:c.logo.url,alt:`${c.name} logo`,hasRadius:!0,width:11,height:11}),e.createElement(Be,{githubStars:c.githubStars,npmDownloads:c.npmDownloads,npmPackageType:o})),e.createElement(t.Box,{paddingTop:4},e.createElement(t.Typography,{as:"h3",variant:"delta"},e.createElement(t.Flex,{alignItems:"center"},c.name,c.validated&&!c.madeByStrapi&&e.createElement(t.Tooltip,{description:l({id:"admin.pages.MarketPlacePage.plugin.tooltip.verified",defaultMessage:"Plugin verified by Strapi"})},e.createElement(t.Flex,null,e.createElement(t.Icon,{as:f.CheckCircle,marginLeft:2,color:"success600"}))),c.madeByStrapi&&e.createElement(t.Tooltip,{description:y},e.createElement(t.Flex,null,e.createElement(t.Box,{as:"img",src:Re,alt:y,marginLeft:1,width:6,height:"auto"})))))),e.createElement(t.Box,{paddingTop:2},e.createElement(Ie,{as:"p",variant:"omega",textColor:"neutral600"},c.description))),e.createElement(t.Stack,{horizontal:!0,spacing:2,style:{alignSelf:"flex-end"},paddingTop:6},e.createElement(j.Q,{size:"S",href:M,isExternal:!0,endIcon:e.createElement(f.ExternalLink,null),"aria-label":l({id:"admin.pages.MarketPlacePage.plugin.info.label",defaultMessage:"Learn more about {pluginName}"},{pluginName:c.name}),variant:"tertiary",onClick:()=>g("didPluginLearnMore")},l({id:"admin.pages.MarketPlacePage.plugin.info.text",defaultMessage:"More"})),e.createElement(Ce,{isInstalled:s,isInDevelopmentMode:i,commandToCopy:m,strapiAppVersion:d,strapiPeerDepVersion:c.strapiVersion,pluginName:c.name})))};N.defaultProps={isInDevelopmentMode:!1,strapiAppVersion:null},N.propTypes={npmPackage:a().shape({id:a().string.isRequired,attributes:a().shape({name:a().string.isRequired,description:a().string.isRequired,slug:a().string.isRequired,npmPackageName:a().string.isRequired,npmPackageUrl:a().string.isRequired,repositoryUrl:a().string.isRequired,logo:a().object.isRequired,developerName:a().string.isRequired,validated:a().bool.isRequired,madeByStrapi:a().bool.isRequired,strapiCompatibility:a().oneOf(["v3","v4"]),strapiVersion:a().string,githubStars:a().number,npmDownloads:a().number}).isRequired}).isRequired,isInstalled:a().bool.isRequired,useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var we=N;const q=({npmPackages:n,installedPackageNames:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const c=(0,e.useCallback)(l=>s.includes(l),[s]);return e.createElement(t.Grid,{gap:4},n.map(l=>e.createElement(t.GridItem,{col:4,s:6,xs:12,style:{height:"100%"},key:l.id},e.createElement(we,{npmPackage:l,isInstalled:c(l.attributes.npmPackageName),useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d}))))};q.defaultProps={installedPackageNames:[],strapiAppVersion:null},q.propTypes={npmPackages:a().array.isRequired,installedPackageNames:a().arrayOf(a().string),useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var Q=q;const Ne=(0,T.default)(t.Box)`
14
+ `,N=({npmPackage:n,isInstalled:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const{attributes:c}=n,{formatMessage:l}=(0,E.useIntl)(),{trackUsage:g}=(0,u.useTracking)(),m=r?`yarn add ${c.npmPackageName}`:`npm install ${c.npmPackageName}`,y=l({id:"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi",defaultMessage:"Made by Strapi"}),M=`https://market.strapi.io/${be().plural(o)}/${c.slug}`;return e.createElement(t.Flex,{direction:"column",justifyContent:"space-between",paddingTop:4,paddingRight:4,paddingBottom:4,paddingLeft:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",height:"100%",alignItems:"normal","data-testid":"npm-package-card"},e.createElement(t.Box,null,e.createElement(t.Flex,{direction:"row",justifyContent:"space-between",alignItems:"flex-start"},e.createElement(t.Box,{as:"img",src:c.logo.url,alt:`${c.name} logo`,hasRadius:!0,width:11,height:11}),e.createElement(Ie,{githubStars:c.githubStars,npmDownloads:c.npmDownloads,npmPackageType:o})),e.createElement(t.Box,{paddingTop:4},e.createElement(t.Typography,{as:"h3",variant:"delta"},e.createElement(t.Flex,{alignItems:"center"},c.name,c.validated&&!c.madeByStrapi&&e.createElement(t.Tooltip,{description:l({id:"admin.pages.MarketPlacePage.plugin.tooltip.verified",defaultMessage:"Plugin verified by Strapi"})},e.createElement(t.Flex,null,e.createElement(t.Icon,{as:f.CheckCircle,marginLeft:2,color:"success600"}))),c.madeByStrapi&&e.createElement(t.Tooltip,{description:y},e.createElement(t.Flex,null,e.createElement(t.Box,{as:"img",src:Re,alt:y,marginLeft:1,width:6,height:"auto"})))))),e.createElement(t.Box,{paddingTop:2},e.createElement(Be,{as:"p",variant:"omega",textColor:"neutral600"},c.description))),e.createElement(t.Flex,{gap:2,style:{alignSelf:"flex-end"},paddingTop:6},e.createElement(j.Q,{size:"S",href:M,isExternal:!0,endIcon:e.createElement(f.ExternalLink,null),"aria-label":l({id:"admin.pages.MarketPlacePage.plugin.info.label",defaultMessage:"Learn more about {pluginName}"},{pluginName:c.name}),variant:"tertiary",onClick:()=>g("didPluginLearnMore")},l({id:"admin.pages.MarketPlacePage.plugin.info.text",defaultMessage:"More"})),e.createElement(Ce,{isInstalled:s,isInDevelopmentMode:i,commandToCopy:m,strapiAppVersion:d,strapiPeerDepVersion:c.strapiVersion,pluginName:c.name})))};N.defaultProps={isInDevelopmentMode:!1,strapiAppVersion:null},N.propTypes={npmPackage:a().shape({id:a().string.isRequired,attributes:a().shape({name:a().string.isRequired,description:a().string.isRequired,slug:a().string.isRequired,npmPackageName:a().string.isRequired,npmPackageUrl:a().string.isRequired,repositoryUrl:a().string.isRequired,logo:a().object.isRequired,developerName:a().string.isRequired,validated:a().bool.isRequired,madeByStrapi:a().bool.isRequired,strapiCompatibility:a().oneOf(["v3","v4"]),strapiVersion:a().string,githubStars:a().number,npmDownloads:a().number}).isRequired}).isRequired,isInstalled:a().bool.isRequired,useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var we=N;const q=({npmPackages:n,installedPackageNames:s,useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d})=>{const c=(0,e.useCallback)(l=>s.includes(l),[s]);return e.createElement(t.Grid,{gap:4},n.map(l=>e.createElement(t.GridItem,{col:4,s:6,xs:12,style:{height:"100%"},key:l.id},e.createElement(we,{npmPackage:l,isInstalled:c(l.attributes.npmPackageName),useYarn:r,isInDevelopmentMode:i,npmPackageType:o,strapiAppVersion:d}))))};q.defaultProps={installedPackageNames:[],strapiAppVersion:null},q.propTypes={npmPackages:a().array.isRequired,installedPackageNames:a().arrayOf(a().string),useYarn:a().bool.isRequired,isInDevelopmentMode:a().bool.isRequired,npmPackageType:a().string.isRequired,strapiAppVersion:a().string};var Q=q;const Ne=(0,T.default)(t.Box)`
15
15
  font-weight: ${({theme:n})=>n.fontWeights.semiBold};
16
16
 
17
17
  span {
18
18
  font-size: ${({theme:n})=>n.fontSizes[1]};
19
19
  }
20
- `,W=({sortQuery:n,handleSelectChange:s})=>{const{formatMessage:r}=(0,E.useIntl)(),i={"name:asc":{selected:{id:"admin.pages.MarketPlacePage.sort.alphabetical.selected",defaultMessage:"Sort by alphabetical order"},option:{id:"admin.pages.MarketPlacePage.sort.alphabetical",defaultMessage:"Alphabetical order"}},"submissionDate:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.newest.selected",defaultMessage:"Sort by newest"},option:{id:"admin.pages.MarketPlacePage.sort.newest",defaultMessage:"Newest"}},"githubStars:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.githubStars.selected",defaultMessage:"Sort by GitHub stars"},option:{id:"admin.pages.MarketPlacePage.sort.githubStars",defaultMessage:"Number of GitHub stars"}},"npmDownloads:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.npmDownloads.selected",defaultMessage:"Sort by npm downloads"},option:{id:"admin.pages.MarketPlacePage.sort.npmDownloads",defaultMessage:"Number of downloads"}}};return e.createElement(Ne,null,e.createElement(t.Select,{size:"S",id:"sort-by-select",value:n,customizeContent:()=>r(i[n].selected),onChange:o=>{s({sort:o})}},Object.entries(i).map(([o,d])=>e.createElement(t.Option,{key:o,value:o},r(d.option)))))};W.propTypes={sortQuery:a().string.isRequired,handleSelectChange:a().func.isRequired};var qe=W;const Z=({message:n,value:s,onChange:r,possibleFilters:i,onClear:o,customizeContent:d})=>{const c=(l,g)=>`${l} (${g})`;return e.createElement(t.Select,{"data-testid":`${n}-button`,"aria-label":n,placeholder:n,size:"M",onChange:r,onClear:o,value:s,customizeContent:d,multi:!0},Object.entries(i).map(([l,g])=>e.createElement(t.Option,{"data-testid":`${l}-${g}`,key:l,value:l},c(l,g))))};Z.propTypes={message:a().string.isRequired,value:a().array.isRequired,onChange:a().func.isRequired,possibleFilters:a().object.isRequired,onClear:a().func.isRequired,customizeContent:a().func.isRequired};var Y=Z;const K=({source:n,onToggle:s,query:r,npmPackageType:i,possibleCategories:o,possibleCollections:d,handleSelectChange:c,handleSelectClear:l})=>{const{formatMessage:g}=(0,E.useIntl)();return e.createElement(t.Popover,{source:n,padding:3,spacing:4,onBlur:()=>{}},e.createElement(t.FocusTrap,{onEscape:s},e.createElement(t.Stack,{spacing:1},e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.collections",defaultMessage:"Collections"}),value:r?.collections||[],onChange:m=>{c({collections:m})},onClear:()=>l("collections"),possibleFilters:d,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.collectionsSelected",defaultMessage:"{count, plural, =0 {No collections} one {# collection} other {# collections}} selected"},{count:m.length})})),i==="plugin"&&e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.categories",defaultMessage:"Categories"}),value:r?.categories||[],onChange:m=>{c({categories:m})},onClear:()=>l("categories"),possibleFilters:o,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.categoriesSelected",defaultMessage:"{count, plural, =0 {No categories} one {# category} other {# categories}} selected"},{count:m.length}),name:"categories"})))))};K.propTypes={onToggle:a().func.isRequired,source:a().shape({current:a().instanceOf(Element)}).isRequired,query:a().object.isRequired,npmPackageType:a().oneOf(["plugin","provider"]).isRequired,possibleCollections:a().object.isRequired,possibleCategories:a().object.isRequired,handleSelectChange:a().func.isRequired,handleSelectClear:a().func.isRequired};var Fe=K;const F=({name:n,handleRemove:s})=>e.createElement(t.Box,{padding:1},e.createElement(t.Tag,{icon:e.createElement(f.Cross,null),onClick:s},n)),Le=(0,T.default)(t.Button)`
20
+ `,W=({sortQuery:n,handleSelectChange:s})=>{const{formatMessage:r}=(0,E.useIntl)(),i={"name:asc":{selected:{id:"admin.pages.MarketPlacePage.sort.alphabetical.selected",defaultMessage:"Sort by alphabetical order"},option:{id:"admin.pages.MarketPlacePage.sort.alphabetical",defaultMessage:"Alphabetical order"}},"submissionDate:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.newest.selected",defaultMessage:"Sort by newest"},option:{id:"admin.pages.MarketPlacePage.sort.newest",defaultMessage:"Newest"}},"githubStars:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.githubStars.selected",defaultMessage:"Sort by GitHub stars"},option:{id:"admin.pages.MarketPlacePage.sort.githubStars",defaultMessage:"Number of GitHub stars"}},"npmDownloads:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.npmDownloads.selected",defaultMessage:"Sort by npm downloads"},option:{id:"admin.pages.MarketPlacePage.sort.npmDownloads",defaultMessage:"Number of downloads"}}};return e.createElement(Ne,null,e.createElement(t.Select,{size:"S",id:"sort-by-select",value:n,customizeContent:()=>r(i[n].selected),onChange:o=>{s({sort:o})}},Object.entries(i).map(([o,d])=>e.createElement(t.Option,{key:o,value:o},r(d.option)))))};W.propTypes={sortQuery:a().string.isRequired,handleSelectChange:a().func.isRequired};var qe=W;const Z=({message:n,value:s,onChange:r,possibleFilters:i,onClear:o,customizeContent:d})=>{const c=(l,g)=>`${l} (${g})`;return e.createElement(t.Select,{"data-testid":`${n}-button`,"aria-label":n,placeholder:n,size:"M",onChange:r,onClear:o,value:s,customizeContent:d,multi:!0},Object.entries(i).map(([l,g])=>e.createElement(t.Option,{"data-testid":`${l}-${g}`,key:l,value:l},c(l,g))))};Z.propTypes={message:a().string.isRequired,value:a().array.isRequired,onChange:a().func.isRequired,possibleFilters:a().object.isRequired,onClear:a().func.isRequired,customizeContent:a().func.isRequired};var Y=Z;const K=({source:n,onToggle:s,query:r,npmPackageType:i,possibleCategories:o,possibleCollections:d,handleSelectChange:c,handleSelectClear:l})=>{const{formatMessage:g}=(0,E.useIntl)();return e.createElement(t.Popover,{source:n,padding:3,spacing:4,onBlur:()=>{}},e.createElement(t.FocusTrap,{onEscape:s},e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.collections",defaultMessage:"Collections"}),value:r?.collections||[],onChange:m=>{c({collections:m})},onClear:()=>l("collections"),possibleFilters:d,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.collectionsSelected",defaultMessage:"{count, plural, =0 {No collections} one {# collection} other {# collections}} selected"},{count:m.length})})),i==="plugin"&&e.createElement(t.Box,null,e.createElement(Y,{message:g({id:"admin.pages.MarketPlacePage.filters.categories",defaultMessage:"Categories"}),value:r?.categories||[],onChange:m=>{c({categories:m})},onClear:()=>l("categories"),possibleFilters:o,customizeContent:m=>g({id:"admin.pages.MarketPlacePage.filters.categoriesSelected",defaultMessage:"{count, plural, =0 {No categories} one {# category} other {# categories}} selected"},{count:m.length}),name:"categories"})))))};K.propTypes={onToggle:a().func.isRequired,source:a().shape({current:a().instanceOf(Element)}).isRequired,query:a().object.isRequired,npmPackageType:a().oneOf(["plugin","provider"]).isRequired,possibleCollections:a().object.isRequired,possibleCategories:a().object.isRequired,handleSelectChange:a().func.isRequired,handleSelectClear:a().func.isRequired};var Fe=K;const F=({name:n,handleRemove:s})=>e.createElement(t.Box,{padding:1},e.createElement(t.Tag,{icon:e.createElement(f.Cross,null),onClick:s},n)),Le=(0,T.default)(t.Button)`
21
21
  height: ${({theme:n})=>n.sizes.input.S};
22
22
  `,J=({possibleCollections:n,possibleCategories:s,npmPackageType:r,query:i,handleSelectClear:o,handleSelectChange:d})=>{const[c,l]=(0,e.useState)(!1),g=(0,e.useRef)(),{formatMessage:m}=(0,E.useIntl)(),y=()=>l(h=>!h),M=(h,R)=>{const P={[R]:i[R].filter(b=>b!==h)};d(P)};return e.createElement(e.Fragment,null,e.createElement(t.Box,{paddingTop:1,paddingBottom:1},e.createElement(Le,{variant:"tertiary",ref:g,"data-testid":"filters-button",startIcon:e.createElement(f.Filter,null),onClick:y,size:"S"},m({id:"app.utils.filters",defaultMessage:"Filters"})),c&&e.createElement(Fe,{onToggle:y,source:g,query:i,handleSelectClear:o,handleSelectChange:d,possibleCollections:n,possibleCategories:s,npmPackageType:r})),i.collections?.map(h=>e.createElement(F,{name:h,key:h,handleRemove:()=>M(h,"collections")})),r==="plugin"&&i.categories?.map(h=>e.createElement(F,{name:h,key:h,handleRemove:()=>M(h,"categories")})))};F.propTypes={name:a().string.isRequired,handleRemove:a().func.isRequired},J.propTypes={npmPackageType:a().oneOf(["plugin","provider"]).isRequired,possibleCollections:a().object.isRequired,possibleCategories:a().object.isRequired,query:a().object.isRequired,handleSelectChange:a().func.isRequired,handleSelectClear:a().func.isRequired};var De=J;const X=(n,s)=>(0,C.ZP)(n,s,{keys:[{threshold:C.ZP.rankings.WORD_STARTS_WITH,key:"attributes.name"},{threshold:C.ZP.rankings.WORD_STARTS_WITH,key:"attributes.description"}],baseSort:(r,i)=>r.index<i.index?-1:1}),_=()=>{const{formatMessage:n}=(0,E.useIntl)(),{trackUsage:s}=(0,u.useTracking)(),{notifyStatus:r}=(0,t.useNotifyAT)(),i=(0,e.useRef)(s),o=(0,u.useNotification)(),[d,c]=(0,e.useState)(""),[{query:l},g]=(0,u.useQueryParams)(),{autoReload:m,dependencies:y,useYarn:M,strapiVersion:h}=(0,u.useAppInfos)(),R=ye(),P=l?.npmPackageType||"plugin",[b,ee]=(0,e.useState)({plugin:P==="plugin"?{...l}:{},provider:P==="provider"?{...l}:{}});(0,u.useFocusWhenNavigate)();const Oe=n({id:"global.marketplace",defaultMessage:"Marketplace"}),te=()=>{r(n({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:Oe}))},{status:ae,data:ne}=me(te,b.provider),{status:se,data:L}=Pe(te,b.plugin),$e=[se,ae].includes("loading"),Ve=[se,ae].includes("error");if((0,e.useEffect)(()=>{i.current("didGoToMarketplace")},[]),(0,e.useEffect)(()=>{m||o({type:"info",message:{id:"admin.pages.MarketPlacePage.production",defaultMessage:"Manage plugins from the development environment"},blockTransition:!0})},[o,m]),!R)return e.createElement(t.Layout,null,e.createElement(t.Main,null,e.createElement(z,{isOnline:R}),e.createElement(t.Flex,{width:"100%",direction:"column",alignItems:"center",justifyContent:"center",style:{paddingTop:"120px"}},e.createElement(t.Box,{paddingBottom:2},e.createElement(t.Typography,{textColor:"neutral700",variant:"alpha"},n({id:"admin.pages.MarketPlacePage.offline.title",defaultMessage:"You are offline"}))),e.createElement(t.Box,{paddingBottom:6},e.createElement(t.Typography,{textColor:"neutral700",variant:"epsilon"},n({id:"admin.pages.MarketPlacePage.offline.subtitle",defaultMessage:"You need to be connected to the Internet to access Strapi Market."}))),e.createElement("img",{src:ke,alt:"offline",style:{width:"88px",height:"88px"}}))));if(Ve)return e.createElement(t.Layout,null,e.createElement(t.ContentLayout,null,e.createElement(t.Box,{paddingTop:8},e.createElement(u.AnErrorOccurred,null))));if($e)return e.createElement(t.Layout,null,e.createElement(t.Main,{"aria-busy":!0},e.createElement(u.LoadingIndicatorPage,null)));const D=X(L.data,d),A=X(ne.data,d),re=n({id:"admin.pages.MarketPlacePage.search.empty",defaultMessage:'No result for "{target}"'},{target:d}),je=v=>{const k=v===0?"plugin":"provider",Ue=b[k]&&Object.keys(b[k]).length;g(Ue?{...b[k],npmPackageType:k}:{npmPackageType:k,collections:[],categories:[],sort:"name:asc"})},ie=v=>{g(v),ee(k=>({...k,[P]:{...k[P],...v}}))},ze=v=>{g({[v]:[]},"remove"),ee(k=>({...k,[P]:{}}))},le=Object.keys(y),Ge=P==="plugin"?L.meta.collections:ne.meta.collections,He=L.meta.categories;return e.createElement(t.Layout,null,e.createElement(t.Main,null,e.createElement(oe.Helmet,{title:n({id:"admin.pages.MarketPlacePage.helmet",defaultMessage:"Marketplace - Plugins"})}),e.createElement(z,{isOnline:R,npmPackageType:P}),e.createElement(t.ContentLayout,null,e.createElement(t.Box,{width:"25%",paddingBottom:4},e.createElement(t.Searchbar,{name:"searchbar",onClear:()=>c(""),value:d,onChange:v=>c(v.target.value),clearLabel:n({id:"admin.pages.MarketPlacePage.search.clear",defaultMessage:"Clear the search"}),placeholder:n({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})},n({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"}))),e.createElement(t.TabGroup,{label:n({id:"admin.pages.MarketPlacePage.tab-group.label",defaultMessage:"Plugins and Providers for Strapi"}),id:"tabs",variant:"simple",initialSelectedTabIndex:["plugin","provider"].indexOf(P),onTabChange:je},e.createElement(t.Box,{paddingBottom:4},e.createElement(t.Tabs,null,e.createElement(t.Tab,null,n({id:"admin.pages.MarketPlacePage.plugins",defaultMessage:"Plugins"})," ","(",D.length,")"),e.createElement(t.Tab,null,n({id:"admin.pages.MarketPlacePage.providers",defaultMessage:"Providers"})," ","(",A.length,")"))),e.createElement(t.Flex,{paddingBottom:4,gap:2},e.createElement(qe,{sortQuery:l?.sort||"name:asc",handleSelectChange:ie}),e.createElement(De,{npmPackageType:P,possibleCollections:Ge,possibleCategories:He,query:l||{},handleSelectChange:ie,handleSelectClear:ze})),e.createElement(t.TabPanels,null,e.createElement(t.TabPanel,null,d.length>0&&!D.length?e.createElement(V,{content:re}):e.createElement(Q,{npmPackages:D,installedPackageNames:le,useYarn:M,isInDevelopmentMode:m,npmPackageType:"plugin",strapiAppVersion:h})),e.createElement(t.TabPanel,null,d.length>0&&!A.length?e.createElement(V,{content:re}):e.createElement(Q,{npmPackages:A,installedPackageNames:le,useYarn:M,isInDevelopmentMode:m,npmPackageType:"provider"})))),e.createElement(t.Box,{paddingTop:7},e.createElement(ve,null)))))};var Ae=()=>e.createElement(u.CheckPagePermissions,{permissions:Ee.Z.marketplace.main},e.createElement(_,null))}}]);
@@ -0,0 +1,15 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9497],{9972:function(H,w,n){n.r(w),n.d(w,{default:function(){return X}});var e=n(32735),l=n(83292),o=n(13478),T=n(5636),v=n(83281),C=n(23940),M=n.n(C),E=n(84968),S=n(88423),f=n.n(S),m=n(99357),t=n(39161),u=n(57269),Z=n(20139),U=n(8888),k=n(9086),N=n.n(k);const O=async()=>{const{get:d}=(0,o.getFetchClient)(),{data:g}=await d("/admin/users/me");return g.data},D=async d=>{const g=N()(d,["confirmPassword","currentTheme"]),{put:h}=(0,o.getFetchClient)(),{data:L}=await h("/admin/users/me",g);return{...L.data,currentTheme:d.currentTheme}};var z=n(5173),Q=n(1057),j=z.Ry().shape(Q.Rw),G=n(64421);const W=l.default.a`
2
+ color: ${({theme:d})=>d.colors.primary600};
3
+ `,P=(0,l.default)(t.TextInput)`
4
+ ::-ms-reveal {
5
+ display: none;
6
+ }
7
+ `,I=(0,l.default)(t.FieldAction)`
8
+ svg {
9
+ height: 1rem;
10
+ width: 1rem;
11
+ path {
12
+ fill: ${({theme:d})=>d.colors.neutral600};
13
+ }
14
+ }
15
+ `;var X=()=>{const[d,g]=(0,e.useState)(!1),[h,L]=(0,e.useState)(!1),[A,Y]=(0,e.useState)(!1),{changeLocale:$,localeNames:F}=(0,Z.Z)(),{setUserDisplayName:V}=(0,o.useAppInfos)(),J=(0,E.useQueryClient)(),{formatMessage:a}=(0,T.useIntl)(),{trackUsage:K}=(0,o.useTracking)(),b=(0,o.useNotification)(),{lockApp:q,unlockApp:_}=(0,o.useOverlayBlocker)(),{notifyStatus:ee}=(0,t.useNotifyAT)(),{currentTheme:te,themes:R,onChangeTheme:ae}=(0,U.M1)();(0,o.useFocusWhenNavigate)();const{status:re,data:y}=(0,E.useQuery)("user",()=>O(),{onSuccess(){ee(a({id:"Settings.profile.form.notify.data.loaded",defaultMessage:"Your profile data has been loaded"}))},onError(){b({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),ne=re!=="success",B=(0,E.useMutation)(r=>D(r),{async onSuccess(r){await J.invalidateQueries("user"),o.auth.setUserInfo(f()(r,["email","firstname","lastname","username","preferedLanguage"]));const i=r.username||(0,G.Pp)(r.firstname,r.lastname);V(i),$(r.preferedLanguage),ae(r.currentTheme),K("didChangeMode",{newMode:r.currentTheme}),b({type:"success",message:{id:"notification.success.saved",defaultMessage:"Saved"}})},onSettled(){_()},refetchActive:!0}),{isLoading:se}=B,oe=async(r,{setErrors:i})=>{q();const c=r.username||null;B.mutate({...r,username:c},{onError(x){const s=x?.response?.data;return s?.data?i(s.data):b({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},le=["currentTheme","email","firstname","lastname","username","preferedLanguage"],ie=f()({...y,currentTheme:te},le);if(ne)return e.createElement(t.Main,{"aria-busy":"true"},e.createElement(m.Helmet,{title:a({id:"Settings.profile.form.section.helmet.title",defaultMessage:"User profile"})}),e.createElement(t.HeaderLayout,{title:a({id:"Settings.profile.form.section.profile.page.title",defaultMessage:"Profile page"})}),e.createElement(t.ContentLayout,null,e.createElement(o.LoadingIndicatorPage,null)));const de=Object.keys(R).filter(r=>R[r]);return e.createElement(t.Main,{"aria-busy":se},e.createElement(m.Helmet,{title:a({id:"Settings.profile.form.section.helmet.title",defaultMessage:"User profile"})}),e.createElement(v.Formik,{onSubmit:oe,initialValues:ie,validateOnChange:!1,validationSchema:j,enableReinitialize:!0},({errors:r,values:i,handleChange:c,isSubmitting:x})=>e.createElement(o.Form,null,e.createElement(t.HeaderLayout,{title:y.username||(0,G.Pp)(y.firstname,y.lastname),primaryAction:e.createElement(t.Button,{startIcon:e.createElement(u.Check,null),loading:x,type:"submit"},a({id:"global.save",defaultMessage:"Save"}))}),e.createElement(t.Box,{paddingBottom:10},e.createElement(t.ContentLayout,null,e.createElement(t.Flex,{direction:"column",alignItems:"stretch",gap:6},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:"global.profile",defaultMessage:"Profile"})),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.firstname.label",defaultMessage:"First name"},error:r.firstname,onChange:c,value:i.firstname||"",type:"text",name:"firstname",required:!0})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.lastname.label",defaultMessage:"Last name"},error:r.lastname,onChange:c,value:i.lastname||"",type:"text",name:"lastname"})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.email.label",defaultMessage:"Email"},error:r.email,onChange:c,value:i.email||"",type:"email",name:"email",required:!0})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(o.GenericInput,{intlLabel:{id:"Auth.form.username.label",defaultMessage:"Username"},error:r.username,onChange:c,value:i.username||"",type:"text",name:"username"}))))),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:"global.change-password",defaultMessage:"Change password"})),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.currentPassword?a({id:r.currentPassword,defaultMessage:r.currentPassword}):"",onChange:c,value:i.currentPassword||"",label:a({id:"Auth.form.currentPassword.label",defaultMessage:"Current Password"}),name:"currentPassword",type:A?"text":"password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),Y(p=>!p)},label:a(A?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},A?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))}))),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.password?a({id:r.password,defaultMessage:r.password}):"",onChange:c,value:i.password||"",label:a({id:"global.password",defaultMessage:"Password"}),name:"password",type:d?"text":"password",autoComplete:"new-password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),g(p=>!p)},label:a(d?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},d?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))})),e.createElement(t.GridItem,{s:12,col:6},e.createElement(P,{error:r.confirmPassword?a({id:r.confirmPassword,defaultMessage:r.confirmPassword}):"",onChange:c,value:i.confirmPassword||"",label:a({id:"Auth.form.confirmPassword.label",defaultMessage:"Password confirmation"}),name:"confirmPassword",type:h?"text":"password",autoComplete:"new-password",endAction:e.createElement(I,{onClick:s=>{s.stopPropagation(),L(p=>!p)},label:a(h?{id:"Auth.form.password.show-password",defaultMessage:"Show password"}:{id:"Auth.form.password.hide-password",defaultMessage:"Hide password"})},h?e.createElement(u.Eye,null):e.createElement(u.EyeStriked,null))}))))),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.Flex,{direction:"column",alignItems:"stretch",gap:1},e.createElement(t.Typography,{variant:"delta",as:"h2"},a({id:"Settings.profile.form.section.experience.title",defaultMessage:"Experience"})),e.createElement(t.Typography,null,a({id:"Settings.profile.form.section.experience.interfaceLanguageHelp",defaultMessage:"Preference changes will apply only to you. More information is available {here}."},{here:e.createElement(W,{target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/development/admin-customization.html#locales"},a({id:"Settings.profile.form.section.experience.here",defaultMessage:"here"}))}))),e.createElement(t.Grid,{gap:5},e.createElement(t.GridItem,{s:12,col:6},e.createElement(t.Select,{label:a({id:"Settings.profile.form.section.experience.interfaceLanguage",defaultMessage:"Interface language"}),placeholder:a({id:"global.select",defaultMessage:"Select"}),hint:a({id:"Settings.profile.form.section.experience.interfaceLanguage.hint",defaultMessage:"This will only display your own interface in the chosen language."}),onClear:()=>{c({target:{name:"preferedLanguage",value:null}})},clearLabel:a({id:"Settings.profile.form.section.experience.clear.select",defaultMessage:"Clear the interface language selected"}),value:i.preferedLanguage,onChange:s=>{c({target:{name:"preferedLanguage",value:s}})}},Object.keys(F).map(s=>{const p=F[s];return e.createElement(t.Option,{value:s,key:s},p)}))),e.createElement(t.GridItem,{s:12,col:6},e.createElement(t.Select,{label:a({id:"Settings.profile.form.section.experience.mode.label",defaultMessage:"Interface mode"}),placeholder:a({id:"components.Select.placeholder",defaultMessage:"Select"}),hint:a({id:"Settings.profile.form.section.experience.mode.hint",defaultMessage:"Displays your interface in the chosen mode."}),value:i.currentTheme,onChange:s=>{c({target:{name:"currentTheme",value:s}})}},de.map(s=>e.createElement(t.Option,{value:s,key:s},a({id:"Settings.profile.form.section.experience.mode.option-label",defaultMessage:"{name} mode"},{name:a({id:s,defaultMessage:M()(s)})}))))))))))))))}},1057:function(H,w,n){n.d(w,{YM:function(){return S},Rw:function(){return v}});var e=n(5173),l=n(13478);const o={firstname:e.Z_().trim().required(l.translatedErrors.required),lastname:e.Z_(),email:e.Z_().email(l.translatedErrors.email).lowercase().required(l.translatedErrors.required),username:e.Z_().nullable(),password:e.Z_().min(8,l.translatedErrors.minLength).matches(/[a-z]/,"components.Input.error.contain.lowercase").matches(/[A-Z]/,"components.Input.error.contain.uppercase").matches(/\d/,"components.Input.error.contain.number"),confirmPassword:e.Z_().min(8,l.translatedErrors.minLength).oneOf([e.iH("password"),null],"components.Input.error.password.noMatch").when("password",(f,m)=>f?m.required(l.translatedErrors.required):m)};var v={...o,currentPassword:e.Z_().when(["password","confirmPassword"],(f,m,t)=>f||m?t.required(l.translatedErrors.required):t),preferedLanguage:e.Z_().nullable()},M={roles:e.IX().min(1,l.translatedErrors.required).required(l.translatedErrors.required)},S=e.Ry().shape({...o,isActive:e.Xg(),...M})}}]);