@strapi/admin 4.8.2 → 4.9.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/admin/src/content-manager/components/DynamicZone/utils/select.js +1 -1
  2. package/admin/src/content-manager/components/FieldComponent/utils/select.js +2 -1
  3. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +1 -1
  4. package/admin/src/content-manager/components/Inputs/utils/select.js +1 -1
  5. package/admin/src/content-manager/hooks/useContentTypeLayout/index.js +1 -2
  6. package/admin/src/content-manager/hooks/useFetchContentTypeLayout/utils/formatLayouts.js +4 -1
  7. package/admin/src/content-manager/pages/CollectionTypeRecursivePath/index.js +1 -2
  8. package/admin/src/content-manager/pages/EditSettingsView/init.js +3 -1
  9. package/admin/src/content-manager/pages/EditSettingsView/utils/createPossibleMainFieldsForModelsAndComponents.js +2 -4
  10. package/admin/src/content-manager/pages/EditView/DeleteLink/utils/select.js +1 -1
  11. package/admin/src/content-manager/pages/EditView/utils/createAttributesLayout.js +2 -1
  12. package/admin/src/content-manager/pages/EditView/utils/getFieldsActionMatchingPermissions.js +2 -1
  13. package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +1 -1
  14. package/admin/src/content-manager/utils/createDefaultForm.js +2 -2
  15. package/admin/src/content-manager/utils/formatLayoutToApi.js +2 -1
  16. package/admin/src/content-manager/utils/getFieldName.js +1 -1
  17. package/admin/src/content-manager/utils/mergeMetasWithSchema.js +1 -1
  18. package/admin/src/content-manager/utils/paths.js +1 -1
  19. package/admin/src/content-manager/utils/removePasswordFieldsFromData.js +1 -1
  20. package/admin/src/hooks/useRegenerate/index.js +12 -7
  21. package/admin/src/hooks/useSettingsForm/index.js +3 -3
  22. package/admin/src/hooks/useSettingsForm/reducer.js +3 -1
  23. package/admin/src/hooks/useSettingsMenu/reducer.js +1 -1
  24. package/admin/src/pages/AuthPage/reducer.js +1 -1
  25. package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
  26. package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
  27. package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +7 -5
  28. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/CollapsableContentType/index.js +1 -1
  29. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/reducer.js +1 -1
  30. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/utils/transformPermissionsData.js +6 -8
  31. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ConditionsModal/utils/createDefaultConditionsForm.js +1 -1
  32. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/Collapse/utils/generateCheckboxesActions.js +2 -1
  33. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/ContentTypeCollapse/CollapsePropertyMatrix/ActionRow/utils/getRowLabelCheckboxeState.js +2 -1
  34. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/GlobalActions/utils/getRowLabelCheckboxesState.js +1 -1
  35. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/reducer.js +6 -1
  36. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultCTFormFromLayout.js +5 -1
  37. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/createDefaultPluginsFormFromLayout.js +1 -2
  38. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/formatContentTypesPermissionToAPI.js +2 -2
  39. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateConditionsToFalse.js +4 -1
  40. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +1 -1
  41. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/PluginsAndSettings/SubCategory/utils/formatActions.js +1 -1
  42. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/utils/createArrayOfValues.js +2 -1
  43. package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +1 -1
  44. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +41 -0
  45. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +53 -9
  46. package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -0
  47. package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
  48. package/admin/src/pages/SettingsPage/pages/Users/ProtectedEditPage/index.js +2 -2
  49. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/utils/formatData.js +1 -7
  50. package/admin/src/permissions/index.js +1 -1
  51. package/admin/src/translations/en.json +1 -0
  52. package/admin/src/utils/getAttributesToDisplay.js +2 -4
  53. package/admin/src/utils/getExistingActions.js +1 -3
  54. package/admin/src/utils/sortLinks.js +1 -1
  55. package/build/{8580.0aa21940.chunk.js → 2263.4c5916f9.chunk.js} +61 -61
  56. package/build/5563.aa832e5f.chunk.js +30 -0
  57. package/build/6985.66cca29c.chunk.js +1 -0
  58. package/build/7259.e6ef3b8e.chunk.js +1 -0
  59. package/build/{7112.2bf13da3.chunk.js → 9505.dbe702ab.chunk.js} +6 -6
  60. package/build/Admin-authenticatedApp.cb754f73.chunk.js +79 -0
  61. package/build/{Admin_profilePage.d2a8f9ab.chunk.js → Admin_profilePage.76afeca0.chunk.js} +1 -1
  62. package/build/{Admin_settingsPage.7450acfc.chunk.js → Admin_settingsPage.0aa4fcdc.chunk.js} +2 -2
  63. package/build/admin-app.50584489.chunk.js +112 -0
  64. package/build/admin-edit-roles-page.cf543488.chunk.js +216 -0
  65. package/build/admin-edit-users.31c20712.chunk.js +10 -0
  66. package/build/admin-roles-list.489c501f.chunk.js +2 -0
  67. package/build/{admin-users.af8c3123.chunk.js → admin-users.3e111a7d.chunk.js} +1 -1
  68. package/build/{api-tokens-create-page.4328b852.chunk.js → api-tokens-create-page.2a6e22bd.chunk.js} +1 -1
  69. package/build/{api-tokens-edit-page.bce5050f.chunk.js → api-tokens-edit-page.fa38cd63.chunk.js} +1 -1
  70. package/build/content-manager.f8b9710b.chunk.js +1139 -0
  71. package/build/content-type-builder.0f5dbcf1.chunk.js +126 -0
  72. package/build/{en-json.01a88a30.chunk.js → en-json.b052667a.chunk.js} +1 -1
  73. package/build/index.html +1 -1
  74. package/build/main.7fa3d343.js +3783 -0
  75. package/build/{runtime~main.05f8f4a1.js → runtime~main.03d11c09.js} +2 -2
  76. package/build/sso-settings-page.272b87c8.chunk.js +1 -0
  77. package/build/transfer-tokens-list-page.3c9b0280.chunk.js +16 -0
  78. package/build/users-advanced-settings-page.1d3c14c7.chunk.js +1 -0
  79. package/build/{users-email-settings-page.a3c80419.chunk.js → users-email-settings-page.e8db68c4.chunk.js} +1 -1
  80. package/build/users-providers-settings-page.14cac425.chunk.js +1 -0
  81. package/build/users-roles-settings-page.2ea4de84.chunk.js +30 -0
  82. package/build/{webhook-edit-page.a2a2b7bb.chunk.js → webhook-edit-page.329141a5.chunk.js} +3 -3
  83. package/ee/server/bootstrap.js +3 -0
  84. package/ee/server/utils/persisted-tables.js +49 -0
  85. package/package.json +11 -11
  86. package/server/controllers/transfer/runner.js +4 -2
  87. package/server/middlewares/data-transfer.js +4 -1
  88. package/server/routes/transfer.js +13 -4
  89. package/server/services/constants.js +4 -0
  90. package/server/services/permission/permissions-manager/sanitize.js +2 -0
  91. package/server/services/transfer/permission.js +1 -1
  92. package/server/services/transfer/token.js +33 -31
  93. package/server/validation/transfer/token.js +10 -2
  94. package/build/2637.679b590b.chunk.js +0 -1
  95. package/build/4649.33220ac3.chunk.js +0 -30
  96. package/build/7259.3675c199.chunk.js +0 -1
  97. package/build/Admin-authenticatedApp.26f0eff6.chunk.js +0 -79
  98. package/build/admin-app.c0729915.chunk.js +0 -112
  99. package/build/admin-edit-roles-page.3b196317.chunk.js +0 -216
  100. package/build/admin-edit-users.af3b0f15.chunk.js +0 -10
  101. package/build/admin-roles-list.0ad504a7.chunk.js +0 -2
  102. package/build/content-manager.b2578b87.chunk.js +0 -1139
  103. package/build/content-type-builder.a93f97ba.chunk.js +0 -126
  104. package/build/main.ed856941.js +0 -3809
  105. package/build/sso-settings-page.5a8588ef.chunk.js +0 -1
  106. package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
  107. package/build/users-advanced-settings-page.c0cae03a.chunk.js +0 -1
  108. package/build/users-providers-settings-page.5f86e45c.chunk.js +0 -1
  109. package/build/users-roles-settings-page.b02986df.chunk.js +0 -30
@@ -24,6 +24,10 @@ module.exports = {
24
24
  DAYS_30: 30 * DAY_IN_MS,
25
25
  DAYS_90: 90 * DAY_IN_MS,
26
26
  },
27
+ TRANSFER_TOKEN_TYPE: {
28
+ PUSH: 'push',
29
+ PULL: 'pull',
30
+ },
27
31
  TRANSFER_TOKEN_LIFESPANS: {
28
32
  UNLIMITED: null,
29
33
  DAYS_7: 7 * DAY_IN_MS,
@@ -34,6 +34,7 @@ const {
34
34
  ID_ATTRIBUTE,
35
35
  CREATED_AT_ATTRIBUTE,
36
36
  UPDATED_AT_ATTRIBUTE,
37
+ PUBLISHED_AT_ATTRIBUTE,
37
38
  CREATED_BY_ATTRIBUTE,
38
39
  UPDATED_BY_ATTRIBUTE,
39
40
  } = constants;
@@ -261,6 +262,7 @@ module.exports = ({ action, ability, model }) => {
261
262
  ...COMPONENT_FIELDS,
262
263
  CREATED_AT_ATTRIBUTE,
263
264
  UPDATED_AT_ATTRIBUTE,
265
+ PUBLISHED_AT_ATTRIBUTE,
264
266
  ]);
265
267
  };
266
268
 
@@ -3,7 +3,7 @@
3
3
  const permissions = require('@strapi/permissions');
4
4
  const { providerFactory } = require('@strapi/utils');
5
5
 
6
- const DEFAULT_TRANSFER_ACTIONS = ['push'];
6
+ const DEFAULT_TRANSFER_ACTIONS = ['push', 'pull'];
7
7
 
8
8
  const providers = {
9
9
  action: providerFactory(),
@@ -149,37 +149,39 @@ const update = async (id, attributes) => {
149
149
  },
150
150
  });
151
151
 
152
- const currentPermissionsResult = await strapi.entityService.load(
153
- TRANSFER_TOKEN_UID,
154
- updatedToken,
155
- 'permissions'
156
- );
157
-
158
- const currentPermissions = map('action', currentPermissionsResult || []);
159
- const newPermissions = uniq(attributes.permissions);
160
-
161
- const actionsToDelete = difference(currentPermissions, newPermissions);
162
- const actionsToAdd = difference(newPermissions, currentPermissions);
163
-
164
- // TODO: improve efficiency here
165
- // method using a loop -- works but very inefficient
166
- await Promise.all(
167
- actionsToDelete.map((action) =>
168
- strapi.query(TRANSFER_TOKEN_PERMISSION_UID).delete({
169
- where: { action, token: id },
170
- })
171
- )
172
- );
173
-
174
- // TODO: improve efficiency here
175
- // using a loop -- works but very inefficient
176
- await Promise.all(
177
- actionsToAdd.map((action) =>
178
- strapi.query(TRANSFER_TOKEN_PERMISSION_UID).create({
179
- data: { action, token: id },
180
- })
181
- )
182
- );
152
+ if (attributes.permissions) {
153
+ const currentPermissionsResult = await strapi.entityService.load(
154
+ TRANSFER_TOKEN_UID,
155
+ updatedToken,
156
+ 'permissions'
157
+ );
158
+
159
+ const currentPermissions = map('action', currentPermissionsResult || []);
160
+ const newPermissions = uniq(attributes.permissions);
161
+
162
+ const actionsToDelete = difference(currentPermissions, newPermissions);
163
+ const actionsToAdd = difference(newPermissions, currentPermissions);
164
+
165
+ // TODO: improve efficiency here
166
+ // method using a loop -- works but very inefficient
167
+ await Promise.all(
168
+ actionsToDelete.map((action) =>
169
+ strapi.query(TRANSFER_TOKEN_PERMISSION_UID).delete({
170
+ where: { action, token: id },
171
+ })
172
+ )
173
+ );
174
+
175
+ // TODO: improve efficiency here
176
+ // using a loop -- works but very inefficient
177
+ await Promise.all(
178
+ actionsToAdd.map((action) =>
179
+ strapi.query(TRANSFER_TOKEN_PERMISSION_UID).create({
180
+ data: { action, token: id },
181
+ })
182
+ )
183
+ );
184
+ }
183
185
 
184
186
  // retrieve permissions
185
187
  const permissionsFromDb = await strapi.entityService.load(
@@ -8,7 +8,11 @@ const transferTokenCreationSchema = yup
8
8
  .shape({
9
9
  name: yup.string().min(1).required(),
10
10
  description: yup.string().optional(),
11
- permissions: yup.array().of(yup.string()).nullable(),
11
+ permissions: yup
12
+ .array()
13
+ .min(1)
14
+ .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))
15
+ .required(),
12
16
  lifespan: yup
13
17
  .number()
14
18
  .min(1)
@@ -23,7 +27,11 @@ const transferTokenUpdateSchema = yup
23
27
  .shape({
24
28
  name: yup.string().min(1).notNull(),
25
29
  description: yup.string().nullable(),
26
- permissions: yup.array().of(yup.string()).nullable(),
30
+ permissions: yup
31
+ .array()
32
+ .min(1)
33
+ .of(yup.string().oneOf(Object.values(constants.TRANSFER_TOKEN_TYPE)))
34
+ .nullable(),
27
35
  })
28
36
  .noUnknown()
29
37
  .strict();
@@ -1 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2637],{88058:function(u,v,n){var t=n(87650);function o(e,i){var a=e==null?0:e.length;return!!a&&t(e,i,0)>-1}u.exports=o},37431:function(u){function v(n,t,o){for(var e=-1,i=n==null?0:n.length;++e<i;)if(o(t,n[e]))return!0;return!1}u.exports=v},23089:function(u,v,n){var t=n(61712),o=t("length");u.exports=o},56671:function(u,v,n){var t=n(35897),o=n(74741),e=o(t);u.exports=e},60528:function(u){function v(n,t,o,e){for(var i=n.length,a=o+(e?1:-1);e?a--:++a<i;)if(t(n[a],a,n))return a;return-1}u.exports=v},87650:function(u,v,n){var t=n(60528),o=n(25556),e=n(54256);function i(a,p,d){return p===p?e(a,p,d):t(a,o,d)}u.exports=i},25556:function(u){function v(n){return n!==n}u.exports=v},91131:function(u,v,n){var t=n(94318),o=n(3387),e="[object RegExp]";function i(a){return o(a)&&t(a)==e}u.exports=i},52920:function(u,v,n){var t=n(56671),o=n(81580);function e(i,a){var p=-1,d=o(i)?Array(i.length):[];return t(i,function(S,E,O){d[++p]=a(S,E,O)}),d}u.exports=e},50690:function(u,v,n){var t=n(26460),o=n(80166),e=n(88904),i=n(52920),a=n(36024),p=n(76535),d=n(1397),S=n(15362),E=n(77236);function O(g,r,s){r.length?r=t(r,function(c){return E(c)?function(x){return o(x,c.length===1?c[0]:c)}:c}):r=[S];var f=-1;r=t(r,p(e));var b=i(g,function(c,x,l){var h=t(r,function(m){return m(c)});return{criteria:h,index:++f,value:c}});return a(b,function(c,x){return d(c,x,s)})}u.exports=O},36024:function(u){function v(n,t){var o=n.length;for(n.sort(t);o--;)n[o]=n[o].value;return n}u.exports=v},84351:function(u,v,n){var t=n(61124),o=n(88058),e=n(37431),i=n(30555),a=n(58491),p=n(66350),d=200;function S(E,O,g){var r=-1,s=o,f=E.length,b=!0,c=[],x=c;if(g)b=!1,s=e;else if(f>=d){var l=O?null:a(E);if(l)return p(l);b=!1,s=i,x=new t}else x=O?[]:c;n:for(;++r<f;){var h=E[r],m=O?O(h):h;if(h=g||h!==0?h:0,b&&m===m){for(var y=x.length;y--;)if(x[y]===m)continue n;O&&x.push(m),c.push(h)}else s(x,m,g)||(x!==c&&x.push(m),c.push(h))}return c}u.exports=S},40709:function(u,v,n){var t=n(22945);function o(e,i){if(e!==i){var a=e!==void 0,p=e===null,d=e===e,S=t(e),E=i!==void 0,O=i===null,g=i===i,r=t(i);if(!O&&!r&&!S&&e>i||S&&E&&g&&!O&&!r||p&&E&&g||!a&&g||!d)return 1;if(!p&&!S&&!r&&e<i||r&&a&&d&&!p&&!S||O&&a&&d||!E&&d||!g)return-1}return 0}u.exports=o},1397:function(u,v,n){var t=n(40709);function o(e,i,a){for(var p=-1,d=e.criteria,S=i.criteria,E=d.length,O=a.length;++p<E;){var g=t(d[p],S[p]);if(g){if(p>=O)return g;var r=a[p];return g*(r=="desc"?-1:1)}}return e.index-i.index}u.exports=o},74741:function(u,v,n){var t=n(81580);function o(e,i){return function(a,p){if(a==null)return a;if(!t(a))return e(a,p);for(var d=a.length,S=i?d:-1,E=Object(a);(i?S--:++S<d)&&p(E[S],S,E)!==!1;);return a}}u.exports=o},58491:function(u,v,n){var t=n(69902),o=n(13581),e=n(66350),i=1/0,a=t&&1/e(new t([,-0]))[1]==i?function(p){return new t(p)}:o;u.exports=a},54256:function(u){function v(n,t,o){for(var e=o-1,i=n.length;++e<i;)if(n[e]===t)return e;return-1}u.exports=v},38788:function(u,v,n){var t=n(23089),o=n(34327),e=n(71286);function i(a){return o(a)?e(a):t(a)}u.exports=i},71286:function(u){var v="\\ud800-\\udfff",n="\\u0300-\\u036f",t="\\ufe20-\\ufe2f",o="\\u20d0-\\u20ff",e=n+t+o,i="\\ufe0e\\ufe0f",a="["+v+"]",p="["+e+"]",d="\\ud83c[\\udffb-\\udfff]",S="(?:"+p+"|"+d+")",E="[^"+v+"]",O="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",r="\\u200d",s=S+"?",f="["+i+"]?",b="(?:"+r+"(?:"+[E,O,g].join("|")+")"+f+s+")*",c=f+s+b,x="(?:"+[E+p+"?",p,O,g,a].join("|")+")",l=RegExp(d+"(?="+d+")|"+x+c,"g");function h(m){for(var y=l.lastIndex=0;l.test(m);)++y;return y}u.exports=h},52654:function(u,v,n){var t=n(91131),o=n(76535),e=n(91782),i=e&&e.isRegExp,a=i?o(i):t;u.exports=a},13581:function(u){function v(){}u.exports=v},98978:function(u,v,n){var t=n(40314),o=n(50690),e=n(94569),i=n(63108),a=e(function(p,d){if(p==null)return[];var S=d.length;return S>1&&i(p,d[0],d[1])?d=[]:S>2&&i(d[0],d[1],d[2])&&(d=[d[0]]),o(p,t(d,1),[])});u.exports=a},59578:function(u,v,n){var t=n(41119);function o(e){return t(e).toLowerCase()}u.exports=o},51382:function(u,v,n){var t=n(90454),o=n(24793),e=n(34327),i=n(85973),a=n(52654),p=n(38788),d=n(51119),S=n(25225),E=n(41119),O=30,g="...",r=/\w*$/;function s(f,b){var c=O,x=g;if(i(b)){var l="separator"in b?b.separator:l;c="length"in b?S(b.length):c,x="omission"in b?t(b.omission):x}f=E(f);var h=f.length;if(e(f)){var m=d(f);h=m.length}if(c>=h)return f;var y=c-p(x);if(y<1)return x;var C=m?o(m,0,y).join(""):f.slice(0,y);if(l===void 0)return C+x;if(m&&(y+=C.length-y),a(l)){if(f.slice(y).search(l)){var A,j=C;for(l.global||(l=RegExp(l.source,E(r.exec(l))+"g")),l.lastIndex=0;A=l.exec(j);)var R=A.index;C=C.slice(0,R===void 0?y:R)}}else if(f.indexOf(t(l),y)!=y){var z=C.lastIndexOf(l);z>-1&&(C=C.slice(0,z))}return C+x}u.exports=s},91815:function(u,v,n){var t=n(84351);function o(e){return e&&e.length?t(e):[]}u.exports=o},98178:function(u,v,n){"use strict";n.d(v,{P1:function(){return E}});var t="NOT_FOUND";function o(g){var r;return{get:function(f){return r&&g(r.key,f)?r.value:t},put:function(f,b){r={key:f,value:b}},getEntries:function(){return r?[r]:[]},clear:function(){r=void 0}}}function e(g,r){var s=[];function f(l){var h=s.findIndex(function(y){return r(l,y.key)});if(h>-1){var m=s[h];return h>0&&(s.splice(h,1),s.unshift(m)),m.value}return t}function b(l,h){f(l)===t&&(s.unshift({key:l,value:h}),s.length>g&&s.pop())}function c(){return s}function x(){s=[]}return{get:f,put:b,getEntries:c,clear:x}}var i=function(r,s){return r===s};function a(g){return function(s,f){if(s===null||f===null||s.length!==f.length)return!1;for(var b=s.length,c=0;c<b;c++)if(!g(s[c],f[c]))return!1;return!0}}function p(g,r){var s=typeof r=="object"?r:{equalityCheck:r},f=s.equalityCheck,b=f===void 0?i:f,c=s.maxSize,x=c===void 0?1:c,l=s.resultEqualityCheck,h=a(b),m=x===1?o(h):e(x,h);function y(){var C=m.get(arguments);if(C===t){if(C=g.apply(null,arguments),l){var A=m.getEntries(),j=A.find(function(R){return l(R.value,C)});j&&(C=j.value)}m.put(arguments,C)}return C}return y.clearCache=function(){return m.clear()},y}function d(g){var r=Array.isArray(g[0])?g[0]:g;if(!r.every(function(f){return typeof f=="function"})){var s=r.map(function(f){return typeof f=="function"?"function "+(f.name||"unnamed")+"()":typeof f}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+s+"]")}return r}function S(g){for(var r=arguments.length,s=new Array(r>1?r-1:0),f=1;f<r;f++)s[f-1]=arguments[f];var b=function(){for(var x=arguments.length,l=new Array(x),h=0;h<x;h++)l[h]=arguments[h];var m=0,y,C={memoizeOptions:void 0},A=l.pop();if(typeof A=="object"&&(C=A,A=l.pop()),typeof A!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof A+"]");var j=C,R=j.memoizeOptions,z=R===void 0?s:R,N=Array.isArray(z)?z:[z],F=d(l),U=g.apply(void 0,[function(){return m++,A.apply(null,arguments)}].concat(N)),L=g(function(){for(var M=[],B=F.length,T=0;T<B;T++)M.push(F[T].apply(null,arguments));return y=U.apply(null,M),y});return Object.assign(L,{resultFunc:A,memoizedResultFunc:U,dependencies:F,lastResult:function(){return y},recomputations:function(){return m},resetRecomputations:function(){return m=0}}),L};return b}var E=S(p),O=function(r,s){if(s===void 0&&(s=E),typeof r!="object")throw new Error("createStructuredSelector expects first argument to be an object "+("where each property is a selector, instead received a "+typeof r));var f=Object.keys(r),b=s(f.map(function(c){return r[c]}),function(){for(var c=arguments.length,x=new Array(c),l=0;l<c;l++)x[l]=arguments[l];return x.reduce(function(h,m,y){return h[f[y]]=m,h},{})});return b}}}]);
@@ -1,30 +0,0 @@
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"})),ellipsis:!0})};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).max(100).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}}]);
@@ -1 +0,0 @@
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"})),ellipsis:!0})};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).max(100).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).max(100).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}))))))}}}]);
@@ -1,79 +0,0 @@
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={i8:"4.8.2"},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,G=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:G.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?G.hx:G.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:G.hx}),u&&e.createElement(se,{number:T+1,type:G.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:G.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,Ge=()=>{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:N}=(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),N(h.trackingEvent),s(null)},j=()=>{p(!0),s(null),N("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},Ne=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)(),N=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(Ne.$,{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:N},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(8580),n.e(994)]).then(n.bind(n,58153))),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)(()=>n.e(5895).then(n.bind(n,61056))),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(Ge,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(84306),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:N,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:N,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}}]);