@strapi/admin 4.6.1 → 4.7.0-beta.0

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 (93) hide show
  1. package/admin/src/assets/images/onboarding-preview.png +0 -0
  2. package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +0 -2
  3. package/admin/src/hooks/useRegenerate/index.js +2 -2
  4. package/admin/src/hooks/useSettingsMenu/utils/defaultGlobalLinks.js +7 -0
  5. package/admin/src/pages/Admin/Onboarding/constants.js +46 -0
  6. package/admin/src/pages/Admin/Onboarding/index.js +161 -89
  7. package/admin/src/pages/Admin/index.js +5 -2
  8. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components → components/Tokens}/FormHead/index.js +36 -19
  9. package/admin/src/pages/SettingsPage/components/Tokens/FormiTokenContainer/LifeSpanInput.js +96 -0
  10. package/admin/src/pages/SettingsPage/components/Tokens/LifeSpanInput/index.js +98 -0
  11. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +73 -0
  12. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/DefaultButton/index.js +1 -1
  13. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/DeleteButton/index.js +1 -1
  14. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/ReadButton/index.js +0 -0
  15. package/admin/src/pages/SettingsPage/{pages/ApiTokens/ListView/DynamicTable → components/Tokens/Table}/UpdateButton/index.js +0 -0
  16. package/admin/src/pages/SettingsPage/components/Tokens/Table/index.js +135 -0
  17. package/admin/src/pages/SettingsPage/{pages/ApiTokens/EditView/components/ContentBox → components/Tokens/TokenBox}/index.js +17 -17
  18. package/admin/src/pages/SettingsPage/components/Tokens/TokenDescription/index.js +51 -0
  19. package/admin/src/pages/SettingsPage/components/Tokens/TokenName/index.js +46 -0
  20. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +69 -0
  21. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +5 -3
  22. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +52 -142
  23. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/Regenerate/index.js +5 -1
  24. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +37 -14
  25. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +5 -13
  26. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +105 -0
  27. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/LoadingView/index.js +50 -0
  28. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +201 -0
  29. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/getDateOfExpiration.js +16 -0
  30. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/index.js +4 -0
  31. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +10 -0
  32. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +182 -0
  33. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/utils/tableHeaders.js +48 -0
  34. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedCreateView/index.js +14 -0
  35. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedEditView/index.js +14 -0
  36. package/admin/src/pages/SettingsPage/pages/TransferTokens/ProtectedListView/index.js +12 -0
  37. package/admin/src/pages/SettingsPage/utils/defaultRoutes.js +33 -0
  38. package/admin/src/permissions/defaultPermissions.js +8 -0
  39. package/admin/src/translations/en.json +18 -1
  40. package/build/19eb2dfcf2603eb55733.png +0 -0
  41. package/build/4649.15cc0afe.chunk.js +30 -0
  42. package/build/7259.aa68d808.chunk.js +1 -0
  43. package/build/7407.883fb1f5.chunk.js +1 -0
  44. package/build/Admin-authenticatedApp.f29f6021.chunk.js +79 -0
  45. package/build/{Admin_settingsPage.d1493824.chunk.js → Admin_settingsPage.178dc6e3.chunk.js} +25 -25
  46. package/build/{admin-app.25934eaa.chunk.js → admin-app.77a50e1f.chunk.js} +19 -19
  47. package/build/{api-tokens-create-page.d248362d.chunk.js → api-tokens-create-page.0db3aec1.chunk.js} +1 -1
  48. package/build/{api-tokens-edit-page.8516fa20.chunk.js → api-tokens-edit-page.671e0e26.chunk.js} +1 -1
  49. package/build/api-tokens-list-page.7387102c.chunk.js +16 -0
  50. package/build/{content-manager.35ff9726.chunk.js → content-manager.42b24d46.chunk.js} +77 -77
  51. package/build/en-json.b0748970.chunk.js +1 -0
  52. package/build/index.html +1 -1
  53. package/build/main.1022ed01.js +4393 -0
  54. package/build/runtime~main.84941a97.js +2 -0
  55. package/build/transfer-tokens-create-page.16e23791.chunk.js +1 -0
  56. package/build/transfer-tokens-edit-page.3886c973.chunk.js +1 -0
  57. package/build/transfer-tokens-list-page.e8010a89.chunk.js +16 -0
  58. package/package.json +12 -12
  59. package/server/bootstrap.js +2 -0
  60. package/server/config/admin-actions.js +48 -0
  61. package/server/content-types/index.js +2 -0
  62. package/server/content-types/transfer-token-permission.js +36 -0
  63. package/server/content-types/transfer-token.js +66 -0
  64. package/server/controllers/api-token.js +4 -5
  65. package/server/controllers/index.js +1 -0
  66. package/server/controllers/transfer/index.js +13 -0
  67. package/server/controllers/transfer/runner.js +24 -0
  68. package/server/controllers/transfer/token.js +131 -0
  69. package/server/register.js +2 -9
  70. package/server/routes/index.js +2 -0
  71. package/server/routes/transfer.js +95 -0
  72. package/server/services/api-token.js +2 -3
  73. package/server/services/constants.js +6 -0
  74. package/server/services/index.js +1 -0
  75. package/server/services/transfer/index.js +6 -0
  76. package/server/services/transfer/permission.js +22 -0
  77. package/server/services/transfer/token.js +409 -0
  78. package/server/strategies/api-token.js +4 -2
  79. package/server/strategies/data-transfer.js +107 -0
  80. package/server/strategies/index.js +1 -0
  81. package/server/utils/index.d.ts +2 -0
  82. package/server/validation/api-tokens.js +1 -6
  83. package/server/validation/transfer/index.js +5 -0
  84. package/server/validation/transfer/token.js +34 -0
  85. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +0 -78
  86. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/index.js +0 -112
  87. package/build/4318.f96a9d4d.chunk.js +0 -30
  88. package/build/8633.00ccd382.chunk.js +0 -1
  89. package/build/Admin-authenticatedApp.ce646f66.chunk.js +0 -75
  90. package/build/api-tokens-list-page.44a79fda.chunk.js +0 -16
  91. package/build/en-json.1f137a90.chunk.js +0 -1
  92. package/build/main.7b151630.js +0 -4377
  93. package/build/runtime~main.a20d633b.js +0 -2
@@ -0,0 +1,30 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4649],{30493:function(W,O,t){"use strict";t.d(O,{Z:function(){return n}});var e=t(32735),m=t(5636),s=t(60216),o=t.n(s),C=t(88425),u=t(29439),p=t(66456),I=t(41415),E=t(28356),D=t(27677),f=t(44647),A=t(8888);const h=({onRegenerate:x,idToRegenerate:B,backUrl:X})=>{const{formatMessage:G}=(0,m.useIntl)(),[F,U]=(0,e.useState)(!1),{regenerateData:_,isLoadingConfirmation:z}=(0,A.rW)(X,B,x),$=async()=>{_(),U(!1)};return e.createElement(e.Fragment,null,e.createElement(I.z,{startIcon:e.createElement(f.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>U(!0),name:"regenerate"},G({id:"Settings.apiTokens.regenerate",defaultMessage:"Regenerate"})),e.createElement(C.ConfirmDialog,{bodyText:{id:"Settings.apiTokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:e.createElement(f.Z,null),isConfirmButtonLoading:z,isOpen:F,onToggleDialog:()=>U(!1),onConfirm:$,leftButtonText:{id:"Settings.apiTokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.apiTokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.apiTokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};h.defaultProps={onRegenerate(){}},h.propTypes={onRegenerate:o().func,idToRegenerate:o().oneOfType([o().number,o().string]).isRequired,backUrl:o().string.isRequired};var T=h;const v=({title:x,token:B,setToken:X,canEditInputs:G,canRegenerate:F,isSubmitting:U,backUrl:_,regenerateUrl:z})=>{const{formatMessage:$}=(0,m.useIntl)(),Y=ne=>{X({...B,accessKey:ne})};return e.createElement(E.T,{title:B?.name||$(x),primaryAction:G?e.createElement(D.K,{horizontal:!0,spacing:2},F&&B?.id&&e.createElement(T,{backUrl:z,onRegenerate:Y,idToRegenerate:B?.id}),e.createElement(I.z,{disabled:U,loading:U,startIcon:e.createElement(p.Z,null),type:"submit",size:"S"},$({id:"global.save",defaultMessage:"Save"}))):F&&B?.id&&e.createElement(T,{onRegenerate:Y,idToRegenerate:B?.id,backUrl:z}),navigationAction:e.createElement(C.Link,{startIcon:e.createElement(u.Z,null),to:_},$({id:"global.back",defaultMessage:"Back"}))})};v.propTypes={token:o().shape({id:o().oneOfType([o().number,o().string]),type:o().string,lifespan:o().oneOfType([o().number,o().string]),name:o().string,accessKey:o().string,permissions:o().array,description:o().string,createdAt:o().string}),canEditInputs:o().bool.isRequired,canRegenerate:o().bool.isRequired,setToken:o().func.isRequired,isSubmitting:o().bool.isRequired,backUrl:o().string.isRequired,title:o().shape({id:o().string,label:o().string}).isRequired,regenerateUrl:o().string.isRequired},v.defaultProps={token:void 0};var n=v},4321:function(W,O,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),o=t(5636),C=t(70218),u=t(84967),p=t(49372),I=t(37944);const E=({token:D,errors:f,values:A,onChange:h,isCreating:T})=>{const{formatMessage:v}=(0,o.useIntl)();return e.createElement(e.Fragment,null,e.createElement(C.P,{name:"lifespan",label:v({id:"Settings.apiTokens.form.duration",defaultMessage:"Token duration"}),value:A.lifespan!==null?A.lifespan:"0",error:f.lifespan?v(f.lifespan?.id?f.lifespan:{id:f.lifespan,defaultMessage:f.lifespan}):null,onChange:n=>{h({target:{name:"lifespan",value:n}})},required:!0,disabled:!T,placeholder:"Select"},e.createElement(u.W,{value:"604800000"},v({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),e.createElement(u.W,{value:"2592000000"},v({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),e.createElement(u.W,{value:"7776000000"},v({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),e.createElement(u.W,{value:"0"},v({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),e.createElement(p.Z,{variant:"pi",textColor:"neutral600"},!T&&`${v({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,I.IX)(D?.createdAt,parseInt(A.lifespan,10))}`))};E.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})},E.defaultProps={errors:{},token:{}},O.Z=E},93682:function(W,O,t){"use strict";var e=t(32735),m=t(5636),s=t(60216),o=t.n(s),C=t(59087),u=t.n(C),p=t(88425),I=t.n(p),E=t(50563),D=t(47765),f=t(11631);const A=({token:h})=>{const{formatMessage:T}=(0,m.useIntl)(),v=(0,p.useNotification)(),{trackUsage:n}=(0,p.useTracking)(),x=(0,e.useRef)(n);return e.createElement(p.ContentBox,{endAction:h&&e.createElement("span",{style:{alignSelf:"start"}},e.createElement(C.CopyToClipboard,{onCopy:()=>{x.current("didCopyTokenKey"),v({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:h},e.createElement(E.h,{label:T({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:e.createElement(D.Z,null),style:{padding:0,height:"1rem"}}))),title:h||T({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:T(h?{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(f.Z,null),iconBackground:"neutral100"})};A.defaultProps={token:null},A.propTypes={token:o().string},O.Z=A},42789:function(W,O,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),o=t(5636),C=t(10508);const u=({errors:p,values:I,onChange:E,canEditInputs:D})=>{const{formatMessage:f}=(0,o.useIntl)();return e.createElement(C.g,{label:f({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:p.description?f(p.description?.id?p.description:{id:p.description,defaultMessage:p.description}):null,onChange:E,disabled:!D},I.description)};u.propTypes={errors:s().shape({description:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({description:s().string}).isRequired},u.defaultProps={errors:{}},O.Z=u},8377:function(W,O,t){"use strict";var e=t(32735),m=t(60216),s=t.n(m),o=t(5636),C=t(10369);const u=({errors:p,values:I,onChange:E,canEditInputs:D})=>{const{formatMessage:f}=(0,o.useIntl)();return e.createElement(C.o,{name:"name",error:p.name?f(p.name?.id?p.name:{id:p.name,defaultMessage:p.name}):null,label:f({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:E,value:I.name,disabled:!D,required:!0})};u.propTypes={errors:s().shape({name:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string}).isRequired},u.defaultProps={errors:{}},O.Z=u},24649:function(W,O,t){"use strict";t.d(O,{Z:function(){return ze}});var e=t(32735),m=t(5636),s=t(88425),o=t(27649),C=t(83281),u=t(5141),p=t(84968),I=t(17e3),E=t(27677),D=t(64421),f=t(37944),A=t(28356),h=t(41415),T=t(66456),v=t(60216),n=t.n(v);const x=({apiTokenName:a})=>{const{formatMessage:i}=(0,m.useIntl)();return(0,s.useFocusWhenNavigate)(),e.createElement(o.o,{"aria-busy":"true"},e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(A.T,{primaryAction:e.createElement(h.z,{disabled:!0,startIcon:e.createElement(T.Z,null),type:"button",size:"L"},i({id:"global.save",defaultMessage:"Save"})),title:a||i({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),e.createElement(I.D,null,e.createElement(s.LoadingIndicatorPage,null)))};x.defaultProps={apiTokenName:null},x.propTypes={apiTokenName:n().string};var B=x,X=t(72041);const G=(0,e.createContext)({}),F=({children:a,...i})=>e.createElement(G.Provider,{value:i},a),U=()=>(0,e.useContext)(G);F.propTypes={children:n().node.isRequired};var z=(a,i=[])=>({...a,selectedAction:null,routes:[],selectedActions:[],data:(0,f.mk)(i)}),$=t(97889),Y=t(92891);const ne={data:{},selectedActions:[]};var Ee=(a,i)=>(0,$.default)(a,r=>{switch(i.type){case"ON_CHANGE":{r.selectedActions.includes(i.value)?(0,Y.pull)(r.selectedActions,i.value):r.selectedActions.push(i.value);break}case"SELECT_ALL_IN_PERMISSION":{i.value.every(c=>r.selectedActions.includes(c.actionId))?i.value.forEach(c=>{(0,Y.pull)(r.selectedActions,c.actionId)}):i.value.forEach(c=>{r.selectedActions.push(c.actionId)});break}case"SELECT_ALL_ACTIONS":{r.selectedActions=[...r.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const y=r.data.allActionsIds.filter(c=>c.includes("find")||c.includes("findOne"));r.selectedActions=[...y];break}case"UPDATE_PERMISSIONS_LAYOUT":{r.data=(0,f.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}}),b=t(49372),se=t(15335),H=t(5803),Z=t(72850),q=t(83292),fe=t(83828),ye=t(61762),Te=t(89966),ge=t(8284),ve=t(87933),he=t(45112);const me=q.css`
2
+ background: ${a=>a.theme.colors.primary100};
3
+ svg {
4
+ opacity: 1;
5
+ }
6
+ `;var Ce=(0,q.default)(Z.x)`
7
+ display: flex;
8
+ justify-content: space-between;
9
+ align-items: center;
10
+
11
+ svg {
12
+ opacity: 0;
13
+ path {
14
+ fill: ${a=>a.theme.colors.primary600};
15
+ }
16
+ }
17
+
18
+ /* Show active style both on hover and when the action is selected */
19
+ ${a=>a.isActive&&me}
20
+ &:hover {
21
+ ${me}
22
+ }
23
+ `;const Ae=q.default.div`
24
+ flex: 1;
25
+ align-self: center;
26
+ border-top: 1px solid ${({theme:a})=>a.colors.neutral150};
27
+ `,ae=({controllers:a,label:i,orderNumber:r,disabled:y,onExpanded:c,indexExpandendCollapsedContent:l})=>{const{value:{onChangeSelectAll:M,onChange:K,selectedActions:P,setSelectedAction:N,selectedAction:Q}}=U(),[L,ee]=(0,e.useState)(!1),{formatMessage:J}=(0,m.useIntl)(),S=()=>{ee(k=>!k),c(r)};(0,e.useEffect)(()=>{l!==null&&l!==r&&L&&ee(!1)},[l,r,L]);const j=k=>k===Q;return e.createElement(fe.U,{expanded:L,onToggle:S,variant:r%2?"primary":"secondary"},e.createElement(ye.B,{title:(0,Y.capitalize)(i)}),e.createElement(Te.v,null,a?.map(k=>{const te=k.actions.every(g=>P.includes(g.actionId)),ce=k.actions.some(g=>P.includes(g.actionId));return e.createElement(Z.x,{key:`${i}.${k?.controller}`},e.createElement(ve.k,{justifyContent:"space-between",alignItems:"center",padding:4},e.createElement(Z.x,{paddingRight:4},e.createElement(b.Z,{variant:"sigma",textColor:"neutral600"},k?.controller)),e.createElement(Ae,null),e.createElement(Z.x,{paddingLeft:4},e.createElement(ge.X,{value:te,indeterminate:!te&&ce,onValueChange:()=>{M({target:{value:[...k.actions]}})},disabled:y},J({id:"app.utils.select-all",defaultMessage:"Select all"})))),e.createElement(se.r,{gap:4,padding:4},k?.actions&&k?.actions.map(g=>e.createElement(H.P,{col:6,key:g.actionId},e.createElement(Ce,{isActive:j(g.actionId),padding:2,hasRadius:!0},e.createElement(ge.X,{value:P.includes(g.actionId),name:g.actionId,onValueChange:()=>{K({target:{value:g.actionId}})},disabled:y},g.action),e.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>N({target:{value:g.actionId}}),style:{display:"inline-flex",alignItems:"center"}},e.createElement(he.Z,null)))))))})))};ae.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},ae.propTypes={controllers:n().array,orderNumber:n().number,label:n().string.isRequired,disabled:n().bool,onExpanded:n().func,indexExpandendCollapsedContent:n().number};var Me=ae;const oe=({section:a,...i})=>{const[r,y]=(0,e.useState)(null),c=l=>y(l);return e.createElement(Z.x,{padding:4,background:"neutral0"},a&&a.map((l,M)=>e.createElement(Me,{key:l.apiId,label:l.label,controllers:l.controllers,orderNumber:M,indexExpandendCollapsedContent:r,onExpanded:c,name:l.apiId,...i})))};oe.defaultProps={section:null},oe.propTypes={section:n().arrayOf(n().object)};var Pe=oe,Re=t(37213),Oe=t.n(Re),Ie=t(15738),Se=t.n(Ie),ke=a=>{switch(a){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 De=(0,q.default)(Z.x)`
28
+ margin: -1px;
29
+ border-radius: ${({theme:a})=>a.spaces[1]} 0 0 ${({theme:a})=>a.spaces[1]};
30
+ `;function ie({route:a}){const{formatMessage:i}=(0,m.useIntl)(),{method:r,handler:y,path:c}=a,l=c?Se()(c.split("/")):[],[M="",K=""]=y?y.split("."):[],P=ke(a.method);return e.createElement(E.K,{spacing:2},e.createElement(b.Z,{variant:"delta",as:"h3"},i({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",e.createElement("span",null,M),e.createElement(b.Z,{variant:"delta",textColor:"primary600"},".",K)),e.createElement(E.K,{horizontal:!0,hasRadius:!0,background:"neutral0",borderColor:"neutral200",spacing:0},e.createElement(De,{background:P.background,borderColor:P.border,padding:2},e.createElement(b.Z,{fontWeight:"bold",textColor:P.text},r)),e.createElement(Z.x,{paddingLeft:2,paddingRight:2},Oe()(l,N=>e.createElement(b.Z,{key:N,textColor:N.includes(":")?"neutral600":"neutral900"},"/",N)))))}ie.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},ie.propTypes={route:n().shape({handler:n().string,method:n().string,path:n().string})};var xe=ie,Le=()=>{const{value:{selectedAction:a,routes:i}}=U(),{formatMessage:r}=(0,m.useIntl)(),y=a?.split(".")[0];return e.createElement(H.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},a?e.createElement(E.K,{spacing:2},i[y]?.map(c=>c.config.auth?.scope?.includes(a)||c.handler===a?e.createElement(xe,{key:c.handler,route:c}):null)):e.createElement(E.K,{spacing:2},e.createElement(b.Z,{variant:"delta",as:"h3"},r({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),e.createElement(b.Z,{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 Be=({...a})=>{const{value:{data:i}}=U(),{formatMessage:r}=(0,m.useIntl)();return e.createElement(se.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},e.createElement(H.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.K,{spacing:2},e.createElement(b.Z,{variant:"delta",as:"h2"},r({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),e.createElement(b.Z,{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(Pe,{section:i?.permissions,...a})),e.createElement(Le,null))};var Ue=(0,e.memo)(Be),be=t(4321),Ke=t(8377),Ne=t(42789),We=t(70218),Ze=t(84967);const re=({errors:a,values:i,onChange:r,canEditInputs:y,options:c,label:l})=>{const{formatMessage:M}=(0,m.useIntl)();return e.createElement(We.P,{name:"type",label:M({id:l.id,defaultMessage:l.defaultMessage}),value:i?.type,error:a.type?M(a.type?.id?a.type:{id:a.type,defaultMessage:a.type}):null,onChange:r,placeholder:"Select",required:!0,disabled:!y},c&&c.map(({value:K,label:P})=>e.createElement(Ze.W,{key:K,value:K},M(P))))};re.propTypes={options:n().arrayOf(n().shape({label:n().shape({id:n().string,defaultMessage:n().string}),value:n().string})),errors:n().shape({type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({type:n().string}).isRequired,label:n().shape({id:n().string,defaultMessage:n().string}).isRequired},re.defaultProps={errors:{},options:[]};var Fe=re;const le=({errors:a,onChange:i,canEditInputs:r,isCreating:y,values:c,apiToken:l,onDispatch:M,setHasChangedPermissions:K})=>{const{formatMessage:P}=(0,m.useIntl)(),N=({target:{value:L}})=>{K(!1),L==="full-access"&&M({type:"SELECT_ALL_ACTIONS"}),L==="read-only"&&M({type:"ON_CHANGE_READ_ONLY"})},Q=[{value:"read-only",label:{id:"Settings.apiTokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.apiTokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.apiTokens.types.custom",defaultMessage:"Custom"}}];return e.createElement(Z.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},e.createElement(E.K,{spacing:4},e.createElement(b.Z,{variant:"delta",as:"h2"},P({id:"global.details",defaultMessage:"Details"})),e.createElement(se.r,{gap:5},e.createElement(H.P,{key:"name",col:6,xs:12},e.createElement(Ke.Z,{errors:a,values:c,canEditInputs:r,onChange:i})),e.createElement(H.P,{key:"description",col:6,xs:12},e.createElement(Ne.Z,{errors:a,values:c,canEditInputs:r,onChange:i})),e.createElement(H.P,{key:"lifespan",col:6,xs:12},e.createElement(be.Z,{isCreating:y,errors:a,values:c,onChange:i,token:l})),e.createElement(H.P,{key:"type",col:6,xs:12},e.createElement(Fe,{values:c,errors:a,label:{id:"Settings.apiTokens.form.type",defaultMessage:"Token type"},onChange:L=>{N({target:{value:L}}),i({target:{name:"type",value:L}})},options:Q,canEditInputs:r})))))};le.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,apiToken: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}),onDispatch:n().func.isRequired,setHasChangedPermissions:n().func.isRequired},le.defaultProps={errors:{},apiToken:{}};var $e=le,He=t(93682),Ve=t(30493);const Ge="Name already taken";var ze=()=>{(0,s.useFocusWhenNavigate)();const{formatMessage:a}=(0,m.useIntl)(),{lockApp:i,unlockApp:r}=(0,s.useOverlayBlocker)(),y=(0,s.useNotification)(),c=(0,u.useHistory)(),[l,M]=(0,e.useState)(c.location.state?.apiToken.accessKey?{...c.location.state.apiToken}:null),{trackUsage:K}=(0,s.useTracking)(),P=(0,e.useRef)(K),{setCurrentStep:N}=(0,s.useGuidedTour)(),{allowedActions:{canCreate:Q,canUpdate:L,canRegenerate:ee}}=(0,s.useRBAC)(X.Z.settings["api-tokens"]),[J,S]=(0,e.useReducer)(Ee,ne,d=>z(d,{})),{params:{id:j}}=(0,u.useRouteMatch)("/settings/api-tokens/:id"),{get:k,post:te,put:ce}=(0,s.useFetchClient)(),g=j==="create";(0,p.useQuery)("content-api-permissions",async()=>{const[d,V]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async w=>{const{data:R}=await k(w);return R.data}));S({type:"UPDATE_PERMISSIONS_LAYOUT",value:d}),S({type:"UPDATE_ROUTES",value:V}),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(){y({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,e.useEffect)(()=>{P.current(g?"didAddTokenFromList":"didEditTokenFromList")},[g]);const{status:Ye}=(0,p.useQuery)(["api-token",j],async()=>{const{data:{data:d}}=await k(`/admin/api-tokens/${j}`);return M({...d}),d?.type==="read-only"&&S({type:"ON_CHANGE_READ_ONLY"}),d?.type==="full-access"&&S({type:"SELECT_ALL_ACTIONS"}),d?.type==="custom"&&S({type:"UPDATE_PERMISSIONS",value:d?.permissions}),d},{enabled:!g&&!l,onError(){y({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),je=async(d,V)=>{P.current(g?"willCreateToken":"willEditToken"),i();const w=d.lifespan&&parseInt(d.lifespan,10)&&d.lifespan!=="0"?parseInt(d.lifespan,10):null;try{const{data:{data:R}}=g?await te("/admin/api-tokens",{...d,lifespan:w,permissions:d.type==="custom"?J.selectedActions:null}):await ce(`/admin/api-tokens/${j}`,{name:d.name,description:d.description,type:d.type,permissions:d.type==="custom"?J.selectedActions:null});g&&(c.replace(`/settings/api-tokens/${R.id}`,{apiToken:R}),N("apiTokens.success")),r(),M({...R}),y({type:"success",message:a(g?{id:"notification.success.tokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.tokenedited",defaultMessage:"API Token successfully edited"})}),P.current(g?"didCreateToken":"didEditToken",{type:l.type})}catch(R){const pe=(0,D.Iz)(R.response.data);V.setErrors(pe),R?.response?.data?.error?.message===Ge?y({type:"warning",message:R.response.data.message||"notification.error.tokennamenotunique"}):y({type:"warning",message:R?.response?.data?.message||"notification.error"}),r()}},[Xe,de]=(0,e.useState)(!1),Qe={...J,onChange:({target:{value:d}})=>{de(!0),S({type:"ON_CHANGE",value:d})},onChangeSelectAll:({target:{value:d}})=>{de(!0),S({type:"SELECT_ALL_IN_PERMISSION",value:d})},setSelectedAction:({target:{value:d}})=>{S({type:"SET_SELECTED_ACTION",value:d})}},ue=L&&!g||Q&&g;return!g&&!l&&Ye!=="success"?e.createElement(B,{apiTokenName:l?.name}):e.createElement(F,{value:Qe},e.createElement(o.o,null,e.createElement(s.SettingsPageTitle,{name:"API Tokens"}),e.createElement(C.Formik,{validationSchema:f.fK,validateOnChange:!1,initialValues:{name:l?.name||"",description:l?.description||"",type:l?.type,lifespan:l?.lifespan?l.lifespan.toString():l?.lifespan},enableReinitialize:!0,onSubmit:(d,V)=>je(d,V)},({errors:d,handleChange:V,isSubmitting:w,values:R,setFieldValue:pe})=>(Xe&&R?.type!=="custom"&&pe("type","custom"),e.createElement(s.Form,null,e.createElement(Ve.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:l,setToken:M,canEditInputs:ue,canRegenerate:ee,isSubmitting:w,regenerateUrl:"/admin/api-tokens/"}),e.createElement(I.D,null,e.createElement(E.K,{spacing:6},Boolean(l?.name)&&e.createElement(He.Z,{token:l?.accessKey}),e.createElement($e,{errors:d,onChange:V,canEditInputs:ue,isCreating:g,values:R,apiToken:l,onDispatch:S,setHasChangedPermissions:de}),e.createElement(Ue,{disabled:!ue||R?.type==="read-only"||R?.type==="full-access"}))))))))}},37944:function(W,O,t){"use strict";t.d(O,{IX:function(){return o},fK:function(){return I},mk:function(){return f}});var e=t(64213),m=t(54049),o=(A,h,T="en")=>{if(h&&typeof h=="number"){const v=h/24/60/60/1e3;return(0,e.format)((0,e.addDays)(new Date(A),v),"PPP",{locale:m[T]})}return"Unlimited"},C=t(5173),u=t(88425),I=C.Ry().shape({name:C.Z_(u.translatedErrors.string).required(u.translatedErrors.required),type:C.Z_(u.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(u.translatedErrors.required),description:C.Z_().nullable(),lifespan:C.Rx().integer().min(0).nullable().defined(u.translatedErrors.required)}),E=t(92891),f=A=>{const h={allActionsIds:[],permissions:[]};return h.permissions=Object.keys(A).map(T=>({apiId:T,label:T.split("::")[1],controllers:(0,E.flatten)(Object.keys(A[T].controllers).map(v=>({controller:v,actions:(0,E.flatten)(A[T].controllers[v].map(n=>{const x=`${T}.${v}.${n}`;return T.includes("api::")&&h.allActionsIds.push(x),{action:n,actionId:x}}))})))})),h}},15738:function(W,O,t){var e=t(4293);function m(s){var o=s==null?0:s.length;return o?e(s,1,o):[]}W.exports=m}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7259],{30493:function(L,y,e){e.d(y,{Z:function(){return v}});var t=e(32735),p=e(5636),n=e(60216),s=e.n(n),u=e(88425),a=e(29439),i=e(66456),E=e(41415),g=e(28356),M=e(27677),o=e(44647),m=e(8888);const c=({onRegenerate:R,idToRegenerate:r,backUrl:A})=>{const{formatMessage:U}=(0,p.useIntl)(),[S,D]=(0,t.useState)(!1),{regenerateData:W,isLoadingConfirmation:O}=(0,m.rW)(A,r,R),B=async()=>{W(),D(!1)};return t.createElement(t.Fragment,null,t.createElement(E.z,{startIcon:t.createElement(o.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>D(!0),name:"regenerate"},U({id:"Settings.apiTokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(u.ConfirmDialog,{bodyText:{id:"Settings.apiTokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(o.Z,null),isConfirmButtonLoading:O,isOpen:S,onToggleDialog:()=>D(!1),onConfirm:B,leftButtonText:{id:"Settings.apiTokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.apiTokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.apiTokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};c.defaultProps={onRegenerate(){}},c.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired};var l=c;const d=({title:R,token:r,setToken:A,canEditInputs:U,canRegenerate:S,isSubmitting:D,backUrl:W,regenerateUrl:O})=>{const{formatMessage:B}=(0,p.useIntl)(),F=V=>{A({...r,accessKey:V})};return t.createElement(g.T,{title:r?.name||B(R),primaryAction:U?t.createElement(M.K,{horizontal:!0,spacing:2},S&&r?.id&&t.createElement(l,{backUrl:O,onRegenerate:F,idToRegenerate:r?.id}),t.createElement(E.z,{disabled:D,loading:D,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},B({id:"global.save",defaultMessage:"Save"}))):S&&r?.id&&t.createElement(l,{onRegenerate:F,idToRegenerate:r?.id,backUrl:O}),navigationAction:t.createElement(u.Link,{startIcon:t.createElement(a.Z,null),to:W},B({id:"global.back",defaultMessage:"Back"}))})};d.propTypes={token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().oneOfType([s().number,s().string]),name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),canEditInputs:s().bool.isRequired,canRegenerate:s().bool.isRequired,setToken:s().func.isRequired,isSubmitting:s().bool.isRequired,backUrl:s().string.isRequired,title:s().shape({id:s().string,label:s().string}).isRequired,regenerateUrl:s().string.isRequired},d.defaultProps={token:void 0};var v=d},4321:function(L,y,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(5636),u=e(70218),a=e(84967),i=e(49372),E=e(37944);const g=({token:M,errors:o,values:m,onChange:c,isCreating:l})=>{const{formatMessage:d}=(0,s.useIntl)();return t.createElement(t.Fragment,null,t.createElement(u.P,{name:"lifespan",label:d({id:"Settings.apiTokens.form.duration",defaultMessage:"Token duration"}),value:m.lifespan!==null?m.lifespan:"0",error:o.lifespan?d(o.lifespan?.id?o.lifespan:{id:o.lifespan,defaultMessage:o.lifespan}):null,onChange:v=>{c({target:{name:"lifespan",value:v}})},required:!0,disabled:!l,placeholder:"Select"},t.createElement(a.W,{value:"604800000"},d({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(a.W,{value:"2592000000"},d({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(a.W,{value:"7776000000"},d({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(a.W,{value:"0"},d({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(i.Z,{variant:"pi",textColor:"neutral600"},!l&&`${d({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,E.IX)(M?.createdAt,parseInt(m.lifespan,10))}`))};g.propTypes={errors:n().shape({lifespan:n().string}),onChange:n().func.isRequired,values:n().shape({lifespan:n().oneOfType([n().number,n().string])}).isRequired,isCreating:n().bool.isRequired,token: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})},g.defaultProps={errors:{},token:{}},y.Z=g},93682:function(L,y,e){var t=e(32735),p=e(5636),n=e(60216),s=e.n(n),u=e(59087),a=e.n(u),i=e(88425),E=e.n(i),g=e(50563),M=e(47765),o=e(11631);const m=({token:c})=>{const{formatMessage:l}=(0,p.useIntl)(),d=(0,i.useNotification)(),{trackUsage:v}=(0,i.useTracking)(),R=(0,t.useRef)(v);return t.createElement(i.ContentBox,{endAction:c&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(u.CopyToClipboard,{onCopy:()=>{R.current("didCopyTokenKey"),d({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:c},t.createElement(g.h,{label:l({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(M.Z,null),style:{padding:0,height:"1rem"}}))),title:c||l({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:l(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:t.createElement(o.Z,null),iconBackground:"neutral100"})};m.defaultProps={token:null},m.propTypes={token:s().string},y.Z=m},42789:function(L,y,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(5636),u=e(10508);const a=({errors:i,values:E,onChange:g,canEditInputs:M})=>{const{formatMessage:o}=(0,s.useIntl)();return t.createElement(u.g,{label:o({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:i.description?o(i.description?.id?i.description:{id:i.description,defaultMessage:i.description}):null,onChange:g,disabled:!M},E.description)};a.propTypes={errors:n().shape({description:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({description:n().string}).isRequired},a.defaultProps={errors:{}},y.Z=a},8377:function(L,y,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(5636),u=e(10369);const a=({errors:i,values:E,onChange:g,canEditInputs:M})=>{const{formatMessage:o}=(0,s.useIntl)();return t.createElement(u.o,{name:"name",error:i.name?o(i.name?.id?i.name:{id:i.name,defaultMessage:i.name}):null,label:o({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:g,value:E.name,disabled:!M,required:!0})};a.propTypes={errors:n().shape({name:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string}).isRequired},a.defaultProps={errors:{}},y.Z=a},37944:function(L,y,e){e.d(y,{IX:function(){return s},fK:function(){return E},mk:function(){return o}});var t=e(64213),p=e(54049),s=(m,c,l="en")=>{if(c&&typeof c=="number"){const d=c/24/60/60/1e3;return(0,t.format)((0,t.addDays)(new Date(m),d),"PPP",{locale:p[l]})}return"Unlimited"},u=e(5173),a=e(88425),E=u.Ry().shape({name:u.Z_(a.translatedErrors.string).required(a.translatedErrors.required),type:u.Z_(a.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(a.translatedErrors.required),description:u.Z_().nullable(),lifespan:u.Rx().integer().min(0).nullable().defined(a.translatedErrors.required)}),g=e(92891),o=m=>{const c={allActionsIds:[],permissions:[]};return c.permissions=Object.keys(m).map(l=>({apiId:l,label:l.split("::")[1],controllers:(0,g.flatten)(Object.keys(m[l].controllers).map(d=>({controller:d,actions:(0,g.flatten)(m[l].controllers[d].map(v=>{const R=`${l}.${d}.${v}`;return l.includes("api::")&&c.allActionsIds.push(R),{action:v,actionId:R}}))})))})),c}},37259:function(L,y,e){e.d(y,{Z:function(){return Y}});var t=e(32735),p=e(5636),n=e(83281),s=e(5141),u=e(84968),a=e(88425),i=e(27649),E=e(27677),g=e(17e3),M=e(64421),o=e(5173),c=o.Ry().shape({name:o.Z_(a.translatedErrors.string).required(a.translatedErrors.required),description:o.Z_().nullable(),lifespan:o.Rx().integer().min(0).nullable().defined(a.translatedErrors.required)}),l=e(28356),d=e(41415),v=e(66456),R=e(60216),r=e.n(R);const A=({transferTokenName:C})=>{const{formatMessage:h}=(0,p.useIntl)();return(0,a.useFocusWhenNavigate)(),t.createElement(i.o,{"aria-busy":"true"},t.createElement(a.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(l.T,{primaryAction:t.createElement(d.z,{disabled:!0,startIcon:t.createElement(v.Z,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(g.D,null,t.createElement(a.LoadingIndicatorPage,null)))};A.defaultProps={transferTokenName:null},A.propTypes={transferTokenName:r().string};var U=A,S=e(72041),D=e(72850),W=e(15335),O=e(5803),B=e(49372),F=e(4321),V=e(8377),b=e(42789);const $=({errors:C,onChange:h,canEditInputs:Z,isCreating:K,values:k,transferToken:T})=>{const{formatMessage:x}=(0,p.useIntl)();return t.createElement(D.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(E.K,{spacing:4},t.createElement(B.Z,{variant:"delta",as:"h2"},x({id:"global.details",defaultMessage:"Details"})),t.createElement(W.r,{gap:5},t.createElement(O.P,{key:"name",col:6,xs:12},t.createElement(V.Z,{errors:C,values:k,canEditInputs:Z,onChange:h})),t.createElement(O.P,{key:"description",col:6,xs:12},t.createElement(b.Z,{errors:C,values:k,canEditInputs:Z,onChange:h})),t.createElement(O.P,{key:"lifespan",col:6,xs:12},t.createElement(F.Z,{isCreating:K,errors:C,values:k,onChange:h,token:T})))))};$.propTypes={errors:r().shape({name:r().string,description:r().string,lifespan:r().string,type:r().string}),onChange:r().func.isRequired,canEditInputs:r().bool.isRequired,values:r().shape({name:r().string,description:r().string,lifespan:r().oneOfType([r().number,r().string]),type:r().string}).isRequired,isCreating:r().bool.isRequired,transferToken:r().shape({id:r().oneOfType([r().number,r().string]),type:r().string,lifespan:r().string,name:r().string,accessKey:r().string,permissions:r().array,description:r().string,createdAt:r().string})},$.defaultProps={errors:{},transferToken:{}};var j=$,X=e(93682),Q=e(30493);const J="Name already taken";var Y=()=>{(0,a.useFocusWhenNavigate)();const{formatMessage:C}=(0,p.useIntl)(),{lockApp:h,unlockApp:Z}=(0,a.useOverlayBlocker)(),K=(0,a.useNotification)(),k=(0,s.useHistory)(),[T,x]=(0,t.useState)(k.location.state?.transferToken.accessKey?{...k.location.state.transferToken}:null),{setCurrentStep:_}=(0,a.useGuidedTour)(),{allowedActions:{canCreate:q,canUpdate:w,canRegenerate:ee}}=(0,a.useRBAC)(S.Z.settings["transfer-tokens"]),{params:{id:z}}=(0,s.useRouteMatch)("/settings/transfer-tokens/:id"),{get:te,post:ne,put:se}=(0,a.useFetchClient)(),I=z==="create",{status:ae}=(0,u.useQuery)(["transfer-token",z],async()=>{const{data:{data:f}}=await te(`/admin/transfer/tokens/${z}`);return x({...f}),f},{enabled:!I&&!T,onError(){K({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),re=async(f,N)=>{h();const H=f.lifespan&&parseInt(f.lifespan,10)&&f.lifespan!=="0"?parseInt(f.lifespan,10):null;try{const{data:{data:P}}=I?await ne("/admin/transfer/tokens",{...f,lifespan:H,permissions:["push"]}):await se(`/admin/transfer/tokens/${z}`,{name:f.name,description:f.description,type:f.type,permissions:["push"]});Z(),I&&(k.replace(`/settings/transfer-tokens/${P.id}`,{transferToken:P}),_("transferTokens.success")),x({...P}),K({type:"success",message:C(I?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})})}catch(P){const ie=(0,M.Iz)(P.response.data);N.setErrors(ie),P?.response?.data?.error?.message===J?K({type:"warning",message:P.response.data.message||"notification.error.tokennamenotunique"}):K({type:"warning",message:P?.response?.data?.message||"notification.error"}),Z()}},G=w&&!I||q&&I;return!I&&!T&&ae!=="success"?t.createElement(U,{transferTokenName:T?.name}):t.createElement(i.o,null,t.createElement(a.SettingsPageTitle,{name:"Transfer Tokens"}),t.createElement(n.Formik,{validationSchema:c,validateOnChange:!1,initialValues:{name:T?.name||"",description:T?.description||"",lifespan:T?.lifespan?T.lifespan.toString():T?.lifespan},enableReinitialize:!0,onSubmit:(f,N)=>re(f,N)},({errors:f,handleChange:N,isSubmitting:H,values:P})=>t.createElement(a.Form,null,t.createElement(Q.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:T,setToken:x,canEditInputs:G,canRegenerate:ee,isSubmitting:H,regenerateUrl:"/admin/transfer/tokens/"}),t.createElement(g.D,null,t.createElement(E.K,{spacing:6},Boolean(T?.name)&&t.createElement(X.Z,{token:T?.accessKey}),t.createElement(j,{errors:f,onChange:N,canEditInputs:G,isCreating:I,values:P,transferToken:T}))))))}}}]);