@strapi/admin 4.4.0-beta.4 → 4.4.0-rc.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 (33) hide show
  1. package/admin/src/StrapiApp.js +2 -0
  2. package/admin/src/components/AuthenticatedApp/index.js +2 -2
  3. package/admin/src/components/LanguageProvider/index.js +1 -0
  4. package/admin/src/components/ThemeToggleProvider/index.js +21 -10
  5. package/admin/src/content-manager/components/InputJSON/index.js +2 -0
  6. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormApiTokenContainer/index.js +254 -0
  7. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormBody/index.js +77 -0
  8. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/components/FormHead/index.js +85 -0
  9. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +19 -271
  10. package/admin/src/translations/zh-Hans.json +0 -1
  11. package/build/2077.c935ee42.chunk.js +205 -0
  12. package/build/4318.7d167b58.chunk.js +30 -0
  13. package/build/{4715.3f6cac0a.chunk.js → 4715.58cd558f.chunk.js} +32 -31
  14. package/build/4982.05eda880.chunk.js +324 -0
  15. package/build/{7866.c793a31d.chunk.js → 7866.1201afbd.chunk.js} +2 -2
  16. package/build/{8773.eccaa5f3.chunk.js → 8773.c06c24c0.chunk.js} +2 -2
  17. package/build/{Admin-authenticatedApp.6ad28580.chunk.js → Admin-authenticatedApp.99b4868f.chunk.js} +6 -6
  18. package/build/{Admin_settingsPage.fc9c607a.chunk.js → Admin_settingsPage.98e2a62b.chunk.js} +1 -1
  19. package/build/{admin-app.7b7f9463.chunk.js → admin-app.a61d5c2e.chunk.js} +17 -17
  20. package/build/api-tokens-create-page.93dd0689.chunk.js +1 -0
  21. package/build/api-tokens-edit-page.b0adac81.chunk.js +1 -0
  22. package/build/{content-manager.5ac9916a.chunk.js → content-manager.feb0d540.chunk.js} +1 -1
  23. package/build/{content-type-builder.d4610e20.chunk.js → content-type-builder.a684b2e8.chunk.js} +11 -11
  24. package/build/index.html +1 -1
  25. package/build/{main.c04d580d.js → main.e4065f58.js} +1304 -1288
  26. package/build/{runtime~main.3bd4f055.js → runtime~main.4ee06902.js} +1 -1
  27. package/build/{zh-Hans-json.77a42bc5.chunk.js → zh-Hans-json.9c99f8d4.chunk.js} +1 -1
  28. package/package.json +9 -9
  29. package/build/2077.61cebc93.chunk.js +0 -195
  30. package/build/4235.c44d8565.chunk.js +0 -30
  31. package/build/4982.c6f88c5d.chunk.js +0 -314
  32. package/build/api-tokens-create-page.29cc87b6.chunk.js +0 -1
  33. package/build/api-tokens-edit-page.c294a88f.chunk.js +0 -1
@@ -8,33 +8,19 @@ import {
8
8
  useNotification,
9
9
  useTracking,
10
10
  useGuidedTour,
11
- Link,
12
- usePersistentState,
13
11
  useRBAC,
14
12
  } from '@strapi/helper-plugin';
15
- import { HeaderLayout, ContentLayout } from '@strapi/design-system/Layout';
16
13
  import { Main } from '@strapi/design-system/Main';
17
- import { Button } from '@strapi/design-system/Button';
18
- import Check from '@strapi/icons/Check';
19
- import ArrowLeft from '@strapi/icons/ArrowLeft';
20
14
  import { Formik } from 'formik';
21
- import { Stack } from '@strapi/design-system/Stack';
22
- import { Box } from '@strapi/design-system/Box';
23
- import { Typography } from '@strapi/design-system/Typography';
24
- import { Grid, GridItem } from '@strapi/design-system/Grid';
25
- import { TextInput } from '@strapi/design-system/TextInput';
26
- import { Textarea } from '@strapi/design-system/Textarea';
27
- import { Select, Option } from '@strapi/design-system/Select';
28
15
  import { get } from 'lodash';
29
16
  import { useRouteMatch, useHistory } from 'react-router-dom';
30
17
  import { useQuery } from 'react-query';
31
18
  import { formatAPIErrors } from '../../../../../utils';
32
19
  import { axiosInstance } from '../../../../../core/utils';
33
- import { getDateOfExpiration, schema } from './utils';
20
+ import { schema } from './utils';
34
21
  import LoadingView from './components/LoadingView';
35
- import HeaderContentBox from './components/ContentBox';
36
- import Permissions from './components/Permissions';
37
- import Regenerate from './components/Regenerate';
22
+ import FormHead from './components/FormHead';
23
+ import FormBody from './components/FormBody';
38
24
  import adminPermissions from '../../../../../permissions';
39
25
  import { ApiTokenPermissionsContextProvider } from '../../../../../contexts/ApiTokenPermissions';
40
26
  import init from './init';
@@ -61,7 +47,6 @@ const ApiTokenCreateView = () => {
61
47
  const {
62
48
  allowedActions: { canCreate, canUpdate, canRegenerate },
63
49
  } = useRBAC(adminPermissions.settings['api-tokens']);
64
- const [lang] = usePersistentState('strapi-admin-language', 'en');
65
50
  const [state, dispatch] = useReducer(reducer, initialState, (state) => init(state, {}));
66
51
  const {
67
52
  params: { id },
@@ -249,21 +234,6 @@ const ApiTokenCreateView = () => {
249
234
  });
250
235
  };
251
236
 
252
- const handleChangeSelectApiTokenType = ({ target: { value } }) => {
253
- setHasChangedPermissions(false);
254
-
255
- if (value === 'full-access') {
256
- dispatch({
257
- type: 'SELECT_ALL_ACTIONS',
258
- });
259
- }
260
- if (value === 'read-only') {
261
- dispatch({
262
- type: 'ON_CHANGE_READ_ONLY',
263
- });
264
- }
265
- };
266
-
267
237
  const setSelectedAction = ({ target: { value } }) => {
268
238
  dispatch({
269
239
  type: 'SET_SELECTED_ACTION',
@@ -271,13 +241,6 @@ const ApiTokenCreateView = () => {
271
241
  });
272
242
  };
273
243
 
274
- const handleRegenerate = (newKey) => {
275
- setApiToken({
276
- ...apiToken,
277
- accessKey: newKey,
278
- });
279
- };
280
-
281
244
  const providerValue = {
282
245
  ...state,
283
246
  onChange: handleChangeCheckbox,
@@ -315,238 +278,23 @@ const ApiTokenCreateView = () => {
315
278
 
316
279
  return (
317
280
  <Form>
318
- <HeaderLayout
319
- title={
320
- apiToken?.name ||
321
- formatMessage({
322
- id: 'Settings.apiTokens.createPage.title',
323
- defaultMessage: 'Create API Token',
324
- })
325
- }
326
- primaryAction={
327
- canEditInputs ? (
328
- <Stack horizontal spacing={2}>
329
- {canRegenerate && apiToken?.id && (
330
- <Regenerate
331
- onRegenerate={handleRegenerate}
332
- idToRegenerate={apiToken?.id}
333
- />
334
- )}
335
- <Button
336
- disabled={isSubmitting}
337
- loading={isSubmitting}
338
- startIcon={<Check />}
339
- type="submit"
340
- size="S"
341
- >
342
- {formatMessage({
343
- id: 'global.save',
344
- defaultMessage: 'Save',
345
- })}
346
- </Button>
347
- </Stack>
348
- ) : (
349
- canRegenerate &&
350
- apiToken?.id && (
351
- <Regenerate onRegenerate={handleRegenerate} idToRegenerate={apiToken?.id} />
352
- )
353
- )
354
- }
355
- navigationAction={
356
- <Link startIcon={<ArrowLeft />} to="/settings/api-tokens">
357
- {formatMessage({
358
- id: 'global.back',
359
- defaultMessage: 'Back',
360
- })}
361
- </Link>
362
- }
281
+ <FormHead
282
+ apiToken={apiToken}
283
+ setApiToken={setApiToken}
284
+ canEditInputs={canEditInputs}
285
+ canRegenerate={canRegenerate}
286
+ isSubmitting={isSubmitting}
287
+ />
288
+ <FormBody
289
+ apiToken={apiToken}
290
+ errors={errors}
291
+ onChange={handleChange}
292
+ canEditInputs={canEditInputs}
293
+ isCreating={isCreating}
294
+ values={values}
295
+ onDispatch={dispatch}
296
+ setHasChangedPermissions={setHasChangedPermissions}
363
297
  />
364
- <ContentLayout>
365
- <Stack spacing={6}>
366
- {Boolean(apiToken?.name) && <HeaderContentBox apiToken={apiToken.accessKey} />}
367
- <Box
368
- background="neutral0"
369
- hasRadius
370
- shadow="filterShadow"
371
- paddingTop={6}
372
- paddingBottom={6}
373
- paddingLeft={7}
374
- paddingRight={7}
375
- >
376
- <Stack spacing={4}>
377
- <Typography variant="delta" as="h2">
378
- {formatMessage({
379
- id: 'global.details',
380
- defaultMessage: 'Details',
381
- })}
382
- </Typography>
383
- <Grid gap={5}>
384
- <GridItem key="name" col={6} xs={12}>
385
- <TextInput
386
- name="name"
387
- error={
388
- errors.name
389
- ? formatMessage(
390
- errors.name?.id
391
- ? errors.name
392
- : { id: errors.name, defaultMessage: errors.name }
393
- )
394
- : null
395
- }
396
- label={formatMessage({
397
- id: 'Settings.apiTokens.form.name',
398
- defaultMessage: 'Name',
399
- })}
400
- onChange={handleChange}
401
- value={values.name}
402
- disabled={!canEditInputs}
403
- required
404
- />
405
- </GridItem>
406
- <GridItem key="description" col={6} xs={12}>
407
- <Textarea
408
- label={formatMessage({
409
- id: 'Settings.apiTokens.form.description',
410
- defaultMessage: 'Description',
411
- })}
412
- name="description"
413
- error={
414
- errors.description
415
- ? formatMessage(
416
- errors.description?.id
417
- ? errors.description
418
- : {
419
- id: errors.description,
420
- defaultMessage: errors.description,
421
- }
422
- )
423
- : null
424
- }
425
- onChange={handleChange}
426
- disabled={!canEditInputs}
427
- >
428
- {values.description}
429
- </Textarea>
430
- </GridItem>
431
- <GridItem key="lifespan" col={6} xs={12}>
432
- <Select
433
- name="lifespan"
434
- label={formatMessage({
435
- id: 'Settings.apiTokens.form.duration',
436
- defaultMessage: 'Token duration',
437
- })}
438
- value={values.lifespan}
439
- error={
440
- errors.lifespan
441
- ? formatMessage(
442
- errors.lifespan?.id
443
- ? errors.lifespan
444
- : { id: errors.lifespan, defaultMessage: errors.lifespan }
445
- )
446
- : null
447
- }
448
- onChange={(value) => {
449
- handleChange({ target: { name: 'lifespan', value } });
450
- }}
451
- required
452
- disabled={!isCreating}
453
- placeholder="Select"
454
- >
455
- <Option value="604800000">
456
- {formatMessage({
457
- id: 'Settings.apiTokens.duration.7-days',
458
- defaultMessage: '7 days',
459
- })}
460
- </Option>
461
- <Option value="2592000000">
462
- {formatMessage({
463
- id: 'Settings.apiTokens.duration.30-days',
464
- defaultMessage: '30 days',
465
- })}
466
- </Option>
467
- <Option value="7776000000">
468
- {formatMessage({
469
- id: 'Settings.apiTokens.duration.90-days',
470
- defaultMessage: '90 days',
471
- })}
472
- </Option>
473
- <Option value={null}>
474
- {formatMessage({
475
- id: 'Settings.apiTokens.duration.unlimited',
476
- defaultMessage: 'Unlimited',
477
- })}
478
- </Option>
479
- </Select>
480
- <Typography variant="pi" textColor="neutral600">
481
- {!isCreating &&
482
- `${formatMessage({
483
- id: 'Settings.apiTokens.duration.expiration-date',
484
- defaultMessage: 'Expiration date',
485
- })}: ${getDateOfExpiration(
486
- apiToken?.createdAt,
487
- parseInt(values.lifespan, 10),
488
- lang
489
- )}`}
490
- </Typography>
491
- </GridItem>
492
-
493
- <GridItem key="type" col={6} xs={12}>
494
- <Select
495
- name="type"
496
- label={formatMessage({
497
- id: 'Settings.apiTokens.form.type',
498
- defaultMessage: 'Token type',
499
- })}
500
- value={values?.type}
501
- error={
502
- errors.type
503
- ? formatMessage(
504
- errors.type?.id
505
- ? errors.type
506
- : { id: errors.type, defaultMessage: errors.type }
507
- )
508
- : null
509
- }
510
- onChange={(value) => {
511
- handleChangeSelectApiTokenType({ target: { value } });
512
- handleChange({ target: { name: 'type', value } });
513
- }}
514
- placeholder="Select"
515
- required
516
- disabled={!canEditInputs}
517
- >
518
- <Option value="read-only">
519
- {formatMessage({
520
- id: 'Settings.apiTokens.types.read-only',
521
- defaultMessage: 'Read-only',
522
- })}
523
- </Option>
524
- <Option value="full-access">
525
- {formatMessage({
526
- id: 'Settings.apiTokens.types.full-access',
527
- defaultMessage: 'Full access',
528
- })}
529
- </Option>
530
- <Option value="custom">
531
- {formatMessage({
532
- id: 'Settings.apiTokens.types.custom',
533
- defaultMessage: 'Custom',
534
- })}
535
- </Option>
536
- </Select>
537
- </GridItem>
538
- </Grid>
539
- </Stack>
540
- </Box>
541
- <Permissions
542
- disabled={
543
- !canEditInputs ||
544
- values?.type === 'read-only' ||
545
- values?.type === 'full-access'
546
- }
547
- />
548
- </Stack>
549
- </ContentLayout>
550
298
  </Form>
551
299
  );
552
300
  }}
@@ -356,7 +356,6 @@
356
356
  "components.FilterOptions.FILTER_TYPES.$lt": "小于",
357
357
  "components.FilterOptions.FILTER_TYPES.$lte": "小于或等于",
358
358
  "components.FilterOptions.FILTER_TYPES.$ne": "不等于",
359
- "components.FilterOptions.FILTER_TYPES.$neq": "不等于",
360
359
  "components.FilterOptions.FILTER_TYPES.$notContains": "不包含 (区分大小写)",
361
360
  "components.FilterOptions.FILTER_TYPES.$notNull": "不为空",
362
361
  "components.FilterOptions.FILTER_TYPES.$null": "为空",
@@ -0,0 +1,205 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2077],{74201:(y,C,h)=>{"use strict";y.exports=h(45214)},45214:function(y,C,h){(function(x,v){y.exports=v(h(32735),h(19615),h(103))})(this,function(x,v,m){return function(t){var f={};function e(o){if(f[o])return f[o].exports;var i=f[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}return e.m=t,e.c=f,e.d=function(o,i,p){e.o(o,i)||Object.defineProperty(o,i,{enumerable:!0,get:p})},e.r=function(o){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},e.t=function(o,i){if(1&i&&(o=e(o)),8&i||4&i&&typeof o=="object"&&o&&o.__esModule)return o;var p=Object.create(null);if(e.r(p),Object.defineProperty(p,"default",{enumerable:!0,value:o}),2&i&&typeof o!="string")for(var u in o)e.d(p,u,function(d){return o[d]}.bind(null,u));return p},e.n=function(o){var i=o&&o.__esModule?function(){return o.default}:function(){return o};return e.d(i,"a",i),i},e.o=function(o,i){return Object.prototype.hasOwnProperty.call(o,i)},e.p="",e(e.s=65)}([function(t,f,e){t.exports=e(19)()},function(t,f){t.exports=x},function(t,f){t.exports=v},function(t,f){t.exports=function(e,o){return o||(o=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(o)}}))},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f,e){var o=e(24);t.exports=function(i,p){if(i==null)return{};var u,d,c=o(i,p);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(i);for(d=0;d<g.length;d++)u=g[d],p.indexOf(u)>=0||Object.prototype.propertyIsEnumerable.call(i,u)&&(c[u]=i[u])}return c},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f,e){"use strict";e.r(f),e.d(f,"Box",function(){return j});var o,i=e(3),p=e.n(i),u=e(2),d=e.n(u),c=e(7),g=e(1),O=e.n(g),S=e(0),a=e.n(S),l=function(n){return O.a.createElement("div",n)},w={background:void 0,borderColor:void 0,color:void 0,hiddenS:!1,hiddenXS:!1,padding:void 0,paddingTop:void 0,paddingRight:void 0,paddingBottom:void 0,paddingLeft:void 0,hasRadius:!1,shadow:void 0,children:null,shrink:void 0,grow:void 0,basis:void 0,flex:void 0,_hover:function(){}},b={_hover:a.a.func,background:a.a.string,basis:a.a.oneOfType([a.a.string,a.a.string]),borderColor:a.a.string,children:a.a.oneOfType([a.a.node,a.a.string]),color:a.a.string,flex:a.a.oneOfType([a.a.string,a.a.string]),grow:a.a.oneOfType([a.a.string,a.a.string]),hasRadius:a.a.bool,hiddenS:a.a.bool,hiddenXS:a.a.bool,padding:a.a.oneOfType([a.a.number,a.a.arrayOf(a.a.number)]),paddingBottom:a.a.oneOfType([a.a.number,a.a.arrayOf(a.a.number)]),paddingLeft:a.a.oneOfType([a.a.number,a.a.arrayOf(a.a.number)]),paddingRight:a.a.oneOfType([a.a.number,a.a.arrayOf(a.a.number)]),paddingTop:a.a.oneOfType([a.a.number,a.a.arrayOf(a.a.number)]),shadow:a.a.string,shrink:a.a.oneOfType([a.a.string,a.a.string])};l.defaultProps=w,l.propTypes=b;var T={color:!0},j=d.a.div.withConfig({shouldForwardProp:function(n,r){return!T[n]&&r(n)}})(o||(o=p()([`
2
+ // Font
3
+ font-size: `,`;
4
+
5
+ // Colors
6
+ background: `,`;
7
+ color: `,`;
8
+
9
+ // Spaces
10
+ `,`
11
+ `,`
12
+ `,`
13
+ `,`
14
+ `,`
15
+ `,`
16
+ `,`
17
+ `,`
18
+ `,`
19
+
20
+ // Responsive hiding
21
+ `,`
22
+ `,`
23
+
24
+
25
+ // Borders
26
+ border-radius: `,`;
27
+ border-style: `,`;
28
+ border-width: `,`;
29
+ border-color: `,`;
30
+ border: `,`;
31
+
32
+ // Shadows
33
+ box-shadow: `,`;
34
+
35
+ // Handlers
36
+ pointer-events: `,`;
37
+ &:hover {
38
+ `,`
39
+ }
40
+
41
+ // Display
42
+ display: `,`;
43
+
44
+ // Position
45
+ position: `,`;
46
+ left: `,`;
47
+ right: `,`;
48
+ top: `,`;
49
+ bottom: `,`;
50
+ z-index: `,`;
51
+ overflow: `,`;
52
+ cursor: `,`;
53
+
54
+ // Size
55
+ width: `,`;
56
+ max-width: `,`;
57
+ min-width: `,`;
58
+ height: `,`;
59
+ max-height: `,`;
60
+ min-height: `,`;
61
+
62
+ // Animation
63
+ transition: `,`;
64
+ transform: `,`;
65
+ animation: `,`;
66
+
67
+ //Flexbox children props
68
+ flex-shrink: `,`;
69
+ flex-grow: `,`;
70
+ flex-basis: `,`;
71
+ flex: `,`;
72
+
73
+ // Text
74
+ text-align: `,`;
75
+ text-transform: `,`;
76
+ line-height: `,`;
77
+
78
+ // Cursor
79
+ cursor: `,`;
80
+ `])),function(n){var r=n.fontSize;return n.theme.fontSizes[r]||r},function(n){var r=n.theme,s=n.background;return r.colors[s]},function(n){var r=n.theme,s=n.color;return r.colors[s]},function(n){var r=n.theme,s=n.padding;return Object(c.a)("padding",s,r)},function(n){var r=n.theme,s=n.paddingTop;return Object(c.a)("padding-top",s,r)},function(n){var r=n.theme,s=n.paddingRight;return Object(c.a)("padding-right",s,r)},function(n){var r=n.theme,s=n.paddingBottom;return Object(c.a)("padding-bottom",s,r)},function(n){var r=n.theme,s=n.paddingLeft;return Object(c.a)("padding-left",s,r)},function(n){var r=n.theme,s=n.marginLeft;return Object(c.a)("margin-left",s,r)},function(n){var r=n.theme,s=n.marginRight;return Object(c.a)("margin-right",s,r)},function(n){var r=n.theme,s=n.marginTop;return Object(c.a)("margin-top",s,r)},function(n){var r=n.theme,s=n.marginBottom;return Object(c.a)("margin-bottom",s,r)},function(n){var r=n.theme;return n.hiddenS?"".concat(r.mediaQueries.tablet," { display: none; }"):void 0},function(n){var r=n.theme;return n.hiddenXS?"".concat(r.mediaQueries.mobile," { display: none; }"):void 0},function(n){var r=n.theme,s=n.hasRadius,k=n.borderRadius;return s?r.borderRadius:k},function(n){return n.borderStyle},function(n){return n.borderWidth},function(n){var r=n.borderColor;return n.theme.colors[r]},function(n){var r=n.theme,s=n.borderColor,k=n.borderStyle,M=n.borderWidth;if(s&&!k&&!M)return"1px solid ".concat(r.colors[s])},function(n){var r=n.theme,s=n.shadow;return r.shadows[s]},function(n){return n.pointerEvents},function(n){var r=n._hover,s=n.theme;return r?r(s):void 0},function(n){return n.display},function(n){return n.position},function(n){var r=n.left;return n.theme.spaces[r]||r},function(n){var r=n.right;return n.theme.spaces[r]||r},function(n){var r=n.top;return n.theme.spaces[r]||r},function(n){var r=n.bottom;return n.theme.spaces[r]||r},function(n){return n.zIndex},function(n){return n.overflow},function(n){return n.cursor},function(n){var r=n.width;return n.theme.spaces[r]||r},function(n){var r=n.maxWidth;return n.theme.spaces[r]||r},function(n){var r=n.minWidth;return n.theme.spaces[r]||r},function(n){var r=n.height;return n.theme.spaces[r]||r},function(n){var r=n.maxHeight;return n.theme.spaces[r]||r},function(n){var r=n.minHeight;return n.theme.spaces[r]||r},function(n){return n.transition},function(n){return n.transform},function(n){return n.animation},function(n){return n.shrink},function(n){return n.grow},function(n){return n.basis},function(n){return n.flex},function(n){return n.textAlign},function(n){return n.textTransform},function(n){return n.lineHeight},function(n){return n.cursor});j.defaultProps=w,j.propTypes=b},function(t,f){function e(){return t.exports=e=Object.assign||function(o){for(var i=1;i<arguments.length;i++){var p=arguments[i];for(var u in p)Object.prototype.hasOwnProperty.call(p,u)&&(o[u]=p[u])}return o},t.exports.default=t.exports,t.exports.__esModule=!0,e.apply(this,arguments)}t.exports=e,t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f,e){"use strict";var o=e(10),i=e.n(o),p=e(13),u=e.n(p);f.a=function(d,c,g){var O=c;if(Array.isArray(c)||u()(c)!=="object"||(O=[c==null?void 0:c.desktop,c==null?void 0:c.tablet,c==null?void 0:c.mobile]),O!==void 0){if(Array.isArray(O)){var S=O,a=i()(S,3),l=a[0],w=a[1],b=a[2],T="".concat(d,": ").concat(g.spaces[l],";");return w!==void 0&&(T+="".concat(g.mediaQueries.tablet,`{
81
+ `).concat(d,": ").concat(g.spaces[w],`;
82
+ }`)),b!==void 0&&(T+="".concat(g.mediaQueries.mobile,`{
83
+ `).concat(d,": ").concat(g.spaces[b],`;
84
+ }`)),T}var j=g.spaces[O]||O;return"".concat(d,": ").concat(j,";")}}},function(t,f,e){"use strict";e.r(f),e.d(f,"Typography",function(){return j});var o,i=e(3),p=e.n(i),u=e(2),d=e.n(u),c=["alpha","beta","delta","epsilon","omega","pi","sigma"],g=e(1),O=e.n(g),S=e(0),a=e.n(S),l=function(n){return O.a.createElement("div",n)},w={ellipsis:!1,fontWeight:void 0,fontSize:void 0,lineHeight:void 0,textColor:void 0,textTransform:void 0,variant:"omega"},b={ellipsis:a.a.bool,fontSize:a.a.oneOfType([a.a.number,a.a.string]),fontWeight:a.a.string,lineHeight:a.a.oneOfType([a.a.number,a.a.string]),textColor:a.a.string,textTransform:a.a.string,variant:a.a.oneOf(c)};l.defaultProps=w,l.propTypes=b;var T={fontSize:!0,fontWeight:!0},j=d.a.span.withConfig({shouldForwardProp:function(n,r){return!T[n]&&r(n)}})(o||(o=p()([`
85
+ font-weight: `,`;
86
+ font-size: `,`;
87
+ line-height: `,`;
88
+ color: `,`;
89
+ text-transform: `,`;
90
+ `,`
91
+ `,`
92
+ `])),function(n){var r=n.theme,s=n.fontWeight;return r.fontWeights[s]},function(n){var r=n.theme,s=n.fontSize;return r.fontSizes[s]},function(n){var r=n.theme,s=n.lineHeight;return r.lineHeights[s]},function(n){var r=n.theme,s=n.textColor;return r.colors[s||"neutral800"]},function(n){return n.textTransform},function(n){return n.ellipsis&&`
93
+ display: block;
94
+ white-space: nowrap;
95
+ overflow: hidden;
96
+ text-overflow: ellipsis;
97
+ `},function(n){var r=n.variant,s=n.theme;switch(r){case"alpha":return`
98
+ font-weight: `.concat(s.fontWeights.bold,`;
99
+ font-size: `).concat(s.fontSizes[5],`;
100
+ line-height: `).concat(s.lineHeights[2],`;
101
+ `);case"beta":return`
102
+ font-weight: `.concat(s.fontWeights.bold,`;
103
+ font-size: `).concat(s.fontSizes[4],`;
104
+ line-height: `).concat(s.lineHeights[1],`;
105
+ `);case"delta":return`
106
+ font-weight: `.concat(s.fontWeights.semiBold,`;
107
+ font-size: `).concat(s.fontSizes[3],`;
108
+ line-height: `).concat(s.lineHeights[2],`;
109
+ `);case"epsilon":return`
110
+ font-size: `.concat(s.fontSizes[3],`;
111
+ line-height: `).concat(s.lineHeights[6],`;
112
+ `);case"omega":return`
113
+ font-size: `.concat(s.fontSizes[2],`;
114
+ line-height: `).concat(s.lineHeights[4],`;
115
+ `);case"pi":return`
116
+ font-size: `.concat(s.fontSizes[1],`;
117
+ line-height: `).concat(s.lineHeights[3],`;
118
+ `);case"sigma":return`
119
+ font-weight: `.concat(s.fontWeights.bold,`;
120
+ font-size: `).concat(s.fontSizes[0],`;
121
+ line-height: `).concat(s.lineHeights[5],`;
122
+ text-transform: uppercase;
123
+ `);default:return`
124
+ font-size: `.concat(s.fontSizes[2],`;
125
+ `)}});j.defaultProps=w,j.propTypes=b},function(t,f,e){"use strict";e.r(f),e.d(f,"Flex",function(){return n});var o,i=e(3),p=e.n(i),u=e(2),d=e.n(u),c=e(5),g=e(7),O=e(1),S=e.n(O),a=e(0),l=e.n(a),w=function(r){return S.a.createElement("div",r)},b={alignItems:"center",basis:void 0,direction:"row",gap:void 0,inline:!1,justifyContent:void 0,reverse:!1,wrap:void 0},T={alignItems:l.a.string,basis:l.a.oneOfType([l.a.string,l.a.number]),direction:l.a.string,gap:l.a.oneOfType([l.a.shape({desktop:l.a.number,mobile:l.a.number,tablet:l.a.number}),l.a.number,l.a.arrayOf(l.a.number),l.a.string]),inline:l.a.bool,justifyContent:l.a.string,reverse:l.a.bool,shrink:l.a.number,wrap:l.a.string};w.defaultProps=b,w.propTypes=T;var j={direction:!0},n=d()(c.Box).withConfig({shouldForwardProp:function(r,s){return!j[r]&&s(r)}})(o||(o=p()([`
126
+ align-items: `,`;
127
+ display: `,`;
128
+ flex-direction: `,`;
129
+ flex-shrink: `,`;
130
+ flex-wrap: `,`;
131
+ `,`};
132
+ justify-content: `,`;
133
+ `])),function(r){return r.alignItems},function(r){return r.inline?"inline-flex":"flex"},function(r){return r.direction},function(r){return r.shrink},function(r){return r.wrap},function(r){var s=r.gap,k=r.theme;return Object(g.a)("gap",s,k)},function(r){return r.justifyContent});n.defaultProps=b,n.propTypes=T},function(t,f,e){var o=e(25),i=e(26),p=e(22),u=e(27);t.exports=function(d,c){return o(d)||i(d,c)||p(d,c)||u()},t.exports.default=t.exports,t.exports.__esModule=!0},,,function(t,f){function e(o){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(t.exports=e=function(i){return typeof i},t.exports.default=t.exports,t.exports.__esModule=!0):(t.exports=e=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},t.exports.default=t.exports,t.exports.__esModule=!0),e(o)}t.exports=e,t.exports.default=t.exports,t.exports.__esModule=!0},,,function(t,f,e){"use strict";e.d(f,"b",function(){return o}),e.d(f,"c",function(){return i}),e.d(f,"a",function(){return p});var o=function(u){return function(d){var c=d.theme,g=d.size;return c.sizes[u][g]}},i=function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"&";return function(d){var c=d.theme,g=d.hasError;return`
134
+ outline: none;
135
+ box-shadow: 0;
136
+ transition-property: border-color, box-shadow, fill;
137
+ transition-duration: 0.2s;
138
+
139
+ `.concat(u,`:focus-within {
140
+ border: 1px solid `).concat(g?c.colors.danger600:c.colors.primary600,`;
141
+ box-shadow: `).concat(g?c.colors.danger600:c.colors.primary600,` 0px 0px 0px 2px;
142
+ }
143
+ `)}},p=function(u){var d=u.theme;return`
144
+ position: relative;
145
+ outline: none;
146
+
147
+ &:after {
148
+ transition-property: all;
149
+ transition-duration: 0.2s;
150
+ border-radius: 8px;
151
+ content: '';
152
+ position: absolute;
153
+ top: -4px;
154
+ bottom: -4px;
155
+ left: -4px;
156
+ right: -4px;
157
+ border: 2px solid transparent;
158
+ }
159
+
160
+ &:focus-visible {
161
+ outline: none;
162
+ &:after {
163
+ border-radius: 8px;
164
+ content: '';
165
+ position: absolute;
166
+ top: -5px;
167
+ bottom: -5px;
168
+ left: -5px;
169
+ right: -5px;
170
+ border: 2px solid `.concat(d.colors.primary600,`;
171
+ }
172
+ }
173
+ `)}},,,function(t,f,e){"use strict";var o=e(20);function i(){}function p(){}p.resetWarningCache=i,t.exports=function(){function u(g,O,S,a,l,w){if(w!==o){var b=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw b.name="Invariant Violation",b}}function d(){return u}u.isRequired=u;var c={array:u,bool:u,func:u,number:u,object:u,string:u,symbol:u,any:u,arrayOf:d,element:u,elementType:u,instanceOf:d,node:u,objectOf:d,oneOf:d,oneOfType:d,shape:d,exact:d,checkPropTypes:p,resetWarningCache:i};return c.PropTypes=c,c}},function(t,f,e){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(t,f){t.exports=function(e,o){(o==null||o>e.length)&&(o=e.length);for(var i=0,p=new Array(o);i<o;i++)p[i]=e[i];return p},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f,e){var o=e(21);t.exports=function(i,p){if(i){if(typeof i=="string")return o(i,p);var u=Object.prototype.toString.call(i).slice(8,-1);return u==="Object"&&i.constructor&&(u=i.constructor.name),u==="Map"||u==="Set"?Array.from(i):u==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(u)?o(i,p):void 0}},t.exports.default=t.exports,t.exports.__esModule=!0},,function(t,f){t.exports=function(e,o){if(e==null)return{};var i,p,u={},d=Object.keys(e);for(p=0;p<d.length;p++)i=d[p],o.indexOf(i)>=0||(u[i]=e[i]);return u},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f){t.exports=function(e){if(Array.isArray(e))return e},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f){t.exports=function(e,o){var i=e==null?null:typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(i!=null){var p,u,d=[],c=!0,g=!1;try{for(i=i.call(e);!(c=(p=i.next()).done)&&(d.push(p.value),!o||d.length!==o);c=!0);}catch(O){g=!0,u=O}finally{try{c||i.return==null||i.return()}finally{if(g)throw u}}return d}},t.exports.default=t.exports,t.exports.__esModule=!0},function(t,f){t.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
174
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},t.exports.default=t.exports,t.exports.__esModule=!0},,,,,,,,,,,,,,,,,,,,,,,,,,function(t,f){t.exports=m},,,,,,,,,,,,function(t,f,e){"use strict";e.r(f),e.d(f,"TextButton",function(){return P});var o,i,p,u=e(6),d=e.n(u),c=e(4),g=e.n(c),O=e(3),S=e.n(O),a=e(1),l=e.n(a),w=e(0),b=e.n(w),T=e(2),j=e.n(T),n=e(53),r=e.n(n),s=e(5),k=e(8),M=e(9),_=e(16),F=["children","startIcon","endIcon","onClick","disabled","loading"],L=Object(T.keyframes)(o||(o=S()([`
175
+ from {
176
+ transform: rotate(0deg);
177
+ }
178
+ to {
179
+ transform: rotate(359deg);
180
+ }
181
+ `]))),Q=j.a.div(i||(i=S()([`
182
+ animation: `,` 2s infinite linear;
183
+ will-change: transform;
184
+ `])),L),U=j()(M.Flex)(p||(p=S()([`
185
+ background: transparent;
186
+ border: none;
187
+
188
+ &[aria-disabled='true'] {
189
+ pointer-events: none;
190
+ svg path {
191
+ fill: `,`;
192
+ }
193
+ }
194
+
195
+ svg {
196
+ display: flex;
197
+ font-size: `,`rem;
198
+ }
199
+
200
+ svg path {
201
+ fill: `,`;
202
+ }
203
+
204
+ `,`
205
+ `])),function(z){return z.theme.colors.neutral600},.625,function(z){return z.theme.colors.primary600},_.a),P=l.a.forwardRef(function(z,X){var I=z.children,B=z.startIcon,A=z.endIcon,H=z.onClick,W=z.disabled,E=z.loading,G=g()(z,F),V=H&&!W?H:void 0,R=W||E;return l.a.createElement(U,d()({ref:X,"aria-disabled":R,onClick:V,as:"button",type:"button"},G),(B||E)&&l.a.createElement(s.Box,{as:"span",paddingRight:2,"aria-hidden":!0},E?l.a.createElement(Q,null,l.a.createElement(r.a,null)):B),l.a.createElement(k.Typography,{variant:"pi",textColor:R?"neutral600":"primary600"},I),A&&l.a.createElement(s.Box,{as:"span",paddingLeft:2,"aria-hidden":!0},A))});P.displayName="TextButton",P.defaultProps={disabled:!1,startIcon:void 0,endIcon:void 0,loading:!1,onClick:void 0},P.propTypes={children:b.a.node.isRequired,disabled:b.a.bool,endIcon:b.a.element,loading:b.a.bool,onClick:b.a.func,startIcon:b.a.element}}])})},56671:(y,C,h)=>{var x=h(35897),v=h(74741),m=v(x);y.exports=m},52920:(y,C,h)=>{var x=h(56671),v=h(81580);function m(t,f){var e=-1,o=v(t)?Array(t.length):[];return x(t,function(i,p,u){o[++e]=f(i,p,u)}),o}y.exports=m},50690:(y,C,h)=>{var x=h(26460),v=h(80166),m=h(88904),t=h(52920),f=h(36024),e=h(76535),o=h(1397),i=h(15362),p=h(77236);function u(d,c,g){c.length?c=x(c,function(a){return p(a)?function(l){return v(l,a.length===1?a[0]:a)}:a}):c=[i];var O=-1;c=x(c,e(m));var S=t(d,function(a,l,w){var b=x(c,function(T){return T(a)});return{criteria:b,index:++O,value:a}});return f(S,function(a,l){return o(a,l,g)})}y.exports=u},36024:y=>{function C(h,x){var v=h.length;for(h.sort(x);v--;)h[v]=h[v].value;return h}y.exports=C},40709:(y,C,h)=>{var x=h(22945);function v(m,t){if(m!==t){var f=m!==void 0,e=m===null,o=m===m,i=x(m),p=t!==void 0,u=t===null,d=t===t,c=x(t);if(!u&&!c&&!i&&m>t||i&&p&&d&&!u&&!c||e&&p&&d||!f&&d||!o)return 1;if(!e&&!i&&!c&&m<t||c&&f&&o&&!e&&!i||u&&f&&o||!p&&o||!d)return-1}return 0}y.exports=v},1397:(y,C,h)=>{var x=h(40709);function v(m,t,f){for(var e=-1,o=m.criteria,i=t.criteria,p=o.length,u=f.length;++e<p;){var d=x(o[e],i[e]);if(d){if(e>=u)return d;var c=f[e];return d*(c=="desc"?-1:1)}}return m.index-t.index}y.exports=v},74741:(y,C,h)=>{var x=h(81580);function v(m,t){return function(f,e){if(f==null)return f;if(!x(f))return m(f,e);for(var o=f.length,i=t?o:-1,p=Object(f);(t?i--:++i<o)&&e(p[i],i,p)!==!1;);return f}}y.exports=v},98978:(y,C,h)=>{var x=h(40314),v=h(50690),m=h(94569),t=h(63108),f=m(function(e,o){if(e==null)return[];var i=o.length;return i>1&&t(e,o[0],o[1])?o=[]:i>2&&t(o[0],o[1],o[2])&&(o=[o[0]]),v(e,x(o,1),[])});y.exports=f}}]);
@@ -0,0 +1,30 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4318],{4318:(gn,Ne,r)=>{r.d(Ne,{Z:()=>on});var a=r(32735),P=r(5636),g=r(88425),ne=r(16540),Le=r(83281),R=r(92891),ae=r(5141),se=r(84968),Be=r(7602),j=r(17247),oe=r(64213),we=r(54049);const De=(e,t,n="en")=>{if(t&&typeof t=="number"){const o=t/24/60/60/1e3;return(0,oe.format)((0,oe.addDays)(new Date(e),o),"PPP",{locale:we[n]})}return"Unlimited"};var B=r(5173);const je=B.Ry().shape({name:B.Z_(g.translatedErrors.string).required(g.translatedErrors.required),type:B.Z_(g.translatedErrors.string).oneOf(["read-only","full-access","custom"]).required(g.translatedErrors.required),description:B.Z_().nullable(),lifespan:B.Rx().integer().min(1).nullable().defined(g.translatedErrors.required)}),re=e=>{const t={allActionsIds:[],permissions:[]};return t.permissions=Object.keys(e).map(n=>({apiId:n,label:n.split("::")[1],controllers:(0,R.flatten)(Object.keys(e[n].controllers).map(o=>({controller:o,actions:(0,R.flatten)(e[n].controllers[o].map(i=>{const c=`${n}.${o}.${i}`;return n.includes("api::")&&t.allActionsIds.push(c),{action:i,actionId:c}}))})))})),t};var V=r(11856),K=r(44526),Ve=r(88677),ie=r.n(Ve),Ge=r(60216),s=r.n(Ge);const W=({apiTokenName:e})=>{const{formatMessage:t}=(0,P.useIntl)();return(0,g.useFocusWhenNavigate)(),a.createElement(ne.Main,{"aria-busy":"true"},a.createElement(g.SettingsPageTitle,{name:"API Tokens"}),a.createElement(V.HeaderLayout,{primaryAction:a.createElement(K.Button,{disabled:!0,startIcon:a.createElement(ie(),null),type:"button",size:"L"},t({id:"global.save",defaultMessage:"Save"})),title:e||t({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),a.createElement(V.ContentLayout,null,a.createElement(g.LoadingIndicatorPage,null)))};W.defaultProps={apiTokenName:null},W.propTypes={apiTokenName:s().string};const Ue=W;var Fe=r(98599),$e=r.n(Fe),O=r(90662),He=r(23101),le=r.n(He),Ke=r(775),We=(e,t,n)=>new Promise((o,i)=>{var c=m=>{try{u(n.next(m))}catch(y){i(y)}},l=m=>{try{u(n.throw(m))}catch(y){i(y)}},u=m=>m.done?o(m.value):Promise.resolve(m.value).then(c,l);u((n=n.apply(e,t)).next())});const z=({onRegenerate:e,idToRegenerate:t})=>{const{formatMessage:n}=(0,P.useIntl)(),[o,i]=(0,a.useState)(!1),{regenerateData:c,isLoadingConfirmation:l}=(0,Ke.rW)(t,e),u=()=>We(void 0,null,function*(){c(),i(!1)});return a.createElement(a.Fragment,null,a.createElement(K.Button,{startIcon:a.createElement(le(),null),type:"button",size:"S",variant:"tertiary",onClick:()=>i(!0),name:"regenerate"},n({id:"Settings.apiTokens.regenerate",defaultMessage:"Regenerate"})),a.createElement(g.ConfirmDialog,{bodyText:{id:"Settings.apiTokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:a.createElement(le(),null),isConfirmButtonLoading:l,isOpen:o,onToggleDialog:()=>i(!1),onConfirm:u,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"}}))};z.defaultProps={onRegenerate(){}},z.propTypes={onRegenerate:s().func,idToRegenerate:s().string.isRequired};const ce=z;var ze=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,de=Object.getOwnPropertySymbols,Qe=Object.prototype.hasOwnProperty,Je=Object.prototype.propertyIsEnumerable,pe=(e,t,n)=>t in e?ze(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xe=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&pe(e,n,t[n]);if(de)for(var n of de(t))Je.call(t,n)&&pe(e,n,t[n]);return e},qe=(e,t)=>Ye(e,Ze(t));const ue=({apiToken:e,setApiToken:t,canEditInputs:n,canRegenerate:o,isSubmitting:i})=>{const{formatMessage:c}=(0,P.useIntl)(),l=u=>{t(qe(Xe({},e),{accessKey:u}))};return a.createElement(V.HeaderLayout,{title:(e==null?void 0:e.name)||c({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"}),primaryAction:n?a.createElement(O.Stack,{horizontal:!0,spacing:2},o&&(e==null?void 0:e.id)&&a.createElement(ce,{onRegenerate:l,idToRegenerate:e==null?void 0:e.id}),a.createElement(K.Button,{disabled:i,loading:i,startIcon:a.createElement(ie(),null),type:"submit",size:"S"},c({id:"global.save",defaultMessage:"Save"}))):o&&(e==null?void 0:e.id)&&a.createElement(ce,{onRegenerate:l,idToRegenerate:e==null?void 0:e.id}),navigationAction:a.createElement(g.Link,{startIcon:a.createElement($e(),null),to:"/settings/api-tokens"},c({id:"global.back",defaultMessage:"Back"}))})};ue.propTypes={apiToken:s().shape({id:s().string,type:s().string,lifespan:s().number,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}).isRequired,canEditInputs:s().bool.isRequired,canRegenerate:s().bool.isRequired,setApiToken:s().func.isRequired,isSubmitting:s().bool.isRequired};const _e=ue;var et=r(20763),tt=r(68192),nt=r.n(tt),at=r(59087),st=r(18909),ot=r.n(st);const Y=({apiToken:e})=>{const{formatMessage:t}=(0,P.useIntl)(),n=(0,g.useNotification)(),{trackUsage:o}=(0,g.useTracking)(),i=(0,a.useRef)(o);return a.createElement(g.ContentBox,{endAction:e&&a.createElement("span",{style:{alignSelf:"start"}},a.createElement(at.CopyToClipboard,{onCopy:()=>{i.current("didCopyTokenKey"),n({type:"success",message:{id:"Settings.apiTokens.notification.copied"}})},text:e},a.createElement(et.IconButton,{label:t({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:a.createElement(nt(),null),style:{padding:0,height:"1rem"}}))),title:e||t({id:"Settings.apiTokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:t(e?{id:"Settings.apiTokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.apiTokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:a.createElement(ot(),null),iconBackground:"neutral100"})};Y.defaultProps={apiToken:null},Y.propTypes={apiToken:s().string};const rt=Y;var A=r(9808),T=r(78330),C=r(25716),it=r(90353),lt=r(37178),h=r(95602);const Z=({errors:e,onChange:t,canEditInputs:n,isCreating:o,values:i,apiToken:c,onDispatch:l,setHasChangedPermissions:u})=>{var m,y,N,b;const{formatMessage:f}=(0,P.useIntl)(),[D]=(0,g.usePersistentState)("strapi-admin-language","en"),k=({target:{value:d}})=>{u(!1),d==="full-access"&&l({type:"SELECT_ALL_ACTIONS"}),d==="read-only"&&l({type:"ON_CHANGE_READ_ONLY"})};return a.createElement(A.Box,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},a.createElement(O.Stack,{spacing:4},a.createElement(h.Typography,{variant:"delta",as:"h2"},f({id:"global.details",defaultMessage:"Details"})),a.createElement(T.Grid,{gap:5},a.createElement(T.GridItem,{key:"name",col:6,xs:12},a.createElement(lt.TextInput,{name:"name",error:e.name?f((m=e.name)!=null&&m.id?e.name:{id:e.name,defaultMessage:e.name}):null,label:f({id:"Settings.apiTokens.form.name",defaultMessage:"Name"}),onChange:t,value:i.name,disabled:!n,required:!0})),a.createElement(T.GridItem,{key:"description",col:6,xs:12},a.createElement(it.Textarea,{label:f({id:"Settings.apiTokens.form.description",defaultMessage:"Description"}),name:"description",error:e.description?f((y=e.description)!=null&&y.id?e.description:{id:e.description,defaultMessage:e.description}):null,onChange:t,disabled:!n},i.description)),a.createElement(T.GridItem,{key:"lifespan",col:6,xs:12},a.createElement(C.Select,{name:"lifespan",label:f({id:"Settings.apiTokens.form.duration",defaultMessage:"Token duration"}),value:i.lifespan,error:e.lifespan?f((N=e.lifespan)!=null&&N.id?e.lifespan:{id:e.lifespan,defaultMessage:e.lifespan}):null,onChange:d=>{t({target:{name:"lifespan",value:d}})},required:!0,disabled:!o,placeholder:"Select"},a.createElement(C.Option,{value:"604800000"},f({id:"Settings.apiTokens.duration.7-days",defaultMessage:"7 days"})),a.createElement(C.Option,{value:"2592000000"},f({id:"Settings.apiTokens.duration.30-days",defaultMessage:"30 days"})),a.createElement(C.Option,{value:"7776000000"},f({id:"Settings.apiTokens.duration.90-days",defaultMessage:"90 days"})),a.createElement(C.Option,{value:null},f({id:"Settings.apiTokens.duration.unlimited",defaultMessage:"Unlimited"}))),a.createElement(h.Typography,{variant:"pi",textColor:"neutral600"},!o&&`${f({id:"Settings.apiTokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${De(c==null?void 0:c.createdAt,parseInt(i.lifespan,10),D)}`)),a.createElement(T.GridItem,{key:"type",col:6,xs:12},a.createElement(C.Select,{name:"type",label:f({id:"Settings.apiTokens.form.type",defaultMessage:"Token type"}),value:i==null?void 0:i.type,error:e.type?f((b=e.type)!=null&&b.id?e.type:{id:e.type,defaultMessage:e.type}):null,onChange:d=>{k({target:{value:d}}),t({target:{name:"type",value:d}})},placeholder:"Select",required:!0,disabled:!n},a.createElement(C.Option,{value:"read-only"},f({id:"Settings.apiTokens.types.read-only",defaultMessage:"Read-only"})),a.createElement(C.Option,{value:"full-access"},f({id:"Settings.apiTokens.types.full-access",defaultMessage:"Full access"})),a.createElement(C.Option,{value:"custom"},f({id:"Settings.apiTokens.types.custom",defaultMessage:"Custom"})))))))};Z.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().string,type:s().string}).isRequired,isCreating:s().bool.isRequired,apiToken:s().shape({id:s().string,type:s().string,lifespan:s().number,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}).isRequired,onDispatch:s().func.isRequired,setHasChangedPermissions:s().func.isRequired},Z.defaultProps={errors:{}};const ct=Z;var Q=r(12001),me=r(52111),dt=r(19192),pt=r(42258),ut=r.n(pt),G=r(19615),ge=Object.getOwnPropertySymbols,mt=Object.prototype.hasOwnProperty,gt=Object.prototype.propertyIsEnumerable,ft=(e,t)=>{var n={};for(var o in e)mt.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&ge)for(var o of ge(e))t.indexOf(o)<0&&gt.call(e,o)&&(n[o]=e[o]);return n};const fe=(0,a.createContext)({}),ye=e=>{var t=e,{children:n}=t,o=ft(t,["children"]);return a.createElement(fe.Provider,{value:o},n)},J=()=>(0,a.useContext)(fe);ye.propTypes={children:s().node.isRequired};const ve=G.css`
2
+ background: ${e=>e.theme.colors.primary100};
3
+ svg {
4
+ opacity: 1;
5
+ }
6
+ `,yt=(0,G.default)(A.Box)`
7
+ display: flex;
8
+ justify-content: space-between;
9
+ align-items: center;
10
+
11
+ svg {
12
+ opacity: 0;
13
+ path {
14
+ fill: ${e=>e.theme.colors.primary600};
15
+ }
16
+ }
17
+
18
+ /* Show active style both on hover and when the action is selected */
19
+ ${e=>e.isActive&&ve}
20
+ &:hover {
21
+ ${ve}
22
+ }
23
+ `,vt=G.default.div`
24
+ flex: 1;
25
+ align-self: center;
26
+ border-top: 1px solid ${({theme:e})=>e.colors.neutral150};
27
+ `,X=({controllers:e,label:t,orderNumber:n,disabled:o,onExpanded:i,indexExpandendCollapsedContent:c})=>{const{value:{onChangeSelectAll:l,onChange:u,selectedActions:m,setSelectedAction:y,selectedAction:N}}=J(),[b,f]=(0,a.useState)(!1),D=()=>{f(d=>!d),i(n)};(0,a.useEffect)(()=>{c!==null&&c!==n&&b&&f(!1)},[c,n,b]);const k=d=>d===N;return a.createElement(Q.Accordion,{expanded:b,onToggle:D,variant:n%2?"primary":"secondary"},a.createElement(Q.AccordionToggle,{title:(0,R.capitalize)(t)}),a.createElement(Q.AccordionContent,null,e==null?void 0:e.map(d=>{const x=d.actions.every(E=>m.includes(E.actionId)),v=d.actions.some(E=>m.includes(E.actionId));return a.createElement(A.Box,{key:`${t}.${d==null?void 0:d.controller}`},a.createElement(dt.Flex,{justifyContent:"space-between",alignItems:"center",padding:4},a.createElement(A.Box,{paddingRight:4},a.createElement(h.Typography,{variant:"sigma",textColor:"neutral600"},d==null?void 0:d.controller)),a.createElement(vt,null),a.createElement(A.Box,{paddingLeft:4},a.createElement(me.Checkbox,{value:x,indeterminate:!x&&v,onValueChange:()=>{l({target:{value:[...d.actions]}})},disabled:o},"Select all"))),a.createElement(T.Grid,{gap:4,padding:4},(d==null?void 0:d.actions)&&(d==null?void 0:d.actions.map(E=>a.createElement(T.GridItem,{col:6,key:E.actionId},a.createElement(yt,{isActive:k(E.actionId),padding:2,hasRadius:!0},a.createElement(me.Checkbox,{value:m.includes(E.actionId),name:E.actionId,onValueChange:()=>{u({target:{value:E.actionId}})},disabled:o},E.action),a.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>y({target:{value:E.actionId}}),style:{display:"inline-flex",alignItems:"center"}},a.createElement(ut(),null))))))))})))};X.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},X.propTypes={controllers:s().array,orderNumber:s().number,label:s().string.isRequired,disabled:s().bool,onExpanded:s().func,indexExpandendCollapsedContent:s().number};const Et=X;var ht=Object.defineProperty,U=Object.getOwnPropertySymbols,Ee=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable,Te=(e,t,n)=>t in e?ht(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Tt=(e,t)=>{for(var n in t||(t={}))Ee.call(t,n)&&Te(e,n,t[n]);if(U)for(var n of U(t))he.call(t,n)&&Te(e,n,t[n]);return e},Pt=(e,t)=>{var n={};for(var o in e)Ee.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&U)for(var o of U(e))t.indexOf(o)<0&&he.call(e,o)&&(n[o]=e[o]);return n};const q=e=>{var t=e,{section:n}=t,o=Pt(t,["section"]);const[i,c]=(0,a.useState)(null),l=u=>c(u);return a.createElement(A.Box,{padding:4,background:"neutral0"},n&&n.map((u,m)=>a.createElement(Et,Tt({key:u.apiId,label:u.label,controllers:u.controllers,orderNumber:m,indexExpandendCollapsedContent:i,onExpanded:l,name:u.apiId},o))))};q.defaultProps={section:null},q.propTypes={section:s().arrayOf(s().object)};const Ct=q;var St=r(37213),Ot=r.n(St),At=r(15738),bt=r.n(At);const It=e=>{switch(e){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"}}},Rt=(0,G.default)(A.Box)`
28
+ margin: -1px;
29
+ border-radius: ${({theme:e})=>e.spaces[1]} 0 0 ${({theme:e})=>e.spaces[1]};
30
+ `;function _({route:e}){const{formatMessage:t}=(0,P.useIntl)(),{method:n,handler:o,path:i}=e,c=i?bt()(i.split("/")):[],[l="",u=""]=o?o.split("."):[],m=It(e.method);return a.createElement(O.Stack,{spacing:2},a.createElement(h.Typography,{variant:"delta",as:"h3"},t({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",a.createElement("span",null,l),a.createElement(h.Typography,{variant:"delta",textColor:"primary600"},".",u)),a.createElement(O.Stack,{horizontal:!0,hasRadius:!0,background:"neutral0",borderColor:"neutral200",spacing:0},a.createElement(Rt,{background:m.background,borderColor:m.border,padding:2},a.createElement(h.Typography,{fontWeight:"bold",textColor:m.text},n)),a.createElement(A.Box,{paddingLeft:2,paddingRight:2},Ot()(c,y=>a.createElement(h.Typography,{key:y,textColor:y.includes(":")?"neutral600":"neutral900"},"/",y)))))}_.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},_.propTypes={route:s().shape({handler:s().string,method:s().string,path:s().string})};const kt=_,xt=()=>{var e;const{value:{selectedAction:t,routes:n}}=J(),{formatMessage:o}=(0,P.useIntl)(),i=t==null?void 0:t.split(".")[0];return a.createElement(T.GridItem,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},t?a.createElement(O.Stack,{spacing:2},(e=n[i])==null?void 0:e.map(c=>{var l,u;return((u=(l=c.config.auth)==null?void 0:l.scope)==null?void 0:u.includes(t))||c.handler===t?a.createElement(kt,{key:c.handler,route:c}):null})):a.createElement(O.Stack,{spacing:2},a.createElement(h.Typography,{variant:"delta",as:"h3"},o({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),a.createElement(h.Typography,{as:"p",textColor:"neutral600"},o({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"}))))};var Mt=Object.defineProperty,F=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,Se=(e,t,n)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Nt=(e,t)=>{for(var n in t||(t={}))Pe.call(t,n)&&Se(e,n,t[n]);if(F)for(var n of F(t))Ce.call(t,n)&&Se(e,n,t[n]);return e},Lt=(e,t)=>{var n={};for(var o in e)Pe.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&F)for(var o of F(e))t.indexOf(o)<0&&Ce.call(e,o)&&(n[o]=e[o]);return n};const Bt=e=>{var t=Lt(e,[]);const{value:{data:n}}=J(),{formatMessage:o}=(0,P.useIntl)();return a.createElement(T.Grid,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},a.createElement(T.GridItem,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},a.createElement(O.Stack,{spacing:2},a.createElement(h.Typography,{variant:"delta",as:"h2"},o({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),a.createElement(h.Typography,{as:"p",textColor:"neutral600"},o({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),(n==null?void 0:n.permissions)&&a.createElement(Ct,Nt({section:n==null?void 0:n.permissions},t))),a.createElement(xt,null))},wt=(0,a.memo)(Bt),ee=({apiToken:e,errors:t,onChange:n,canEditInputs:o,isCreating:i,values:c,onDispatch:l,setHasChangedPermissions:u})=>a.createElement(V.ContentLayout,null,a.createElement(O.Stack,{spacing:6},Boolean(e==null?void 0:e.name)&&a.createElement(rt,{apiToken:e.accessKey}),a.createElement(ct,{errors:t,onChange:n,canEditInputs:o,isCreating:i,values:c,apiToken:e,onDispatch:l,setHasChangedPermissions:u}),a.createElement(wt,{disabled:!o||(c==null?void 0:c.type)==="read-only"||(c==null?void 0:c.type)==="full-access"})));ee.propTypes={errors:s().shape({name:s().string,description:s().string,lifespan:s().string,type:s().string}),apiToken:s().shape({id:s().string,type:s().string,lifespan:s().number,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}).isRequired,onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,isCreating:s().bool.isRequired,values:s().shape({name:s().string,description:s().string,lifespan:s().string,type:s().string}).isRequired,onDispatch:s().func.isRequired,setHasChangedPermissions:s().func.isRequired},ee.defaultProps={errors:{}};const Dt=ee;var jt=r(83983),Vt=Object.defineProperty,Gt=Object.defineProperties,Ut=Object.getOwnPropertyDescriptors,Oe=Object.getOwnPropertySymbols,Ft=Object.prototype.hasOwnProperty,$t=Object.prototype.propertyIsEnumerable,Ae=(e,t,n)=>t in e?Vt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ht=(e,t)=>{for(var n in t||(t={}))Ft.call(t,n)&&Ae(e,n,t[n]);if(Oe)for(var n of Oe(t))$t.call(t,n)&&Ae(e,n,t[n]);return e},Kt=(e,t)=>Gt(e,Ut(t));const Wt=(e,t=[])=>Kt(Ht({},e),{selectedAction:null,routes:[],selectedActions:[],data:re(t)});var zt=r(49415),Yt=Object.defineProperty,be=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,Ie=(e,t,n)=>t in e?Yt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Jt=(e,t)=>{for(var n in t||(t={}))Zt.call(t,n)&&Ie(e,n,t[n]);if(be)for(var n of be(t))Qt.call(t,n)&&Ie(e,n,t[n]);return e};const Xt={data:{},selectedActions:[]},qt=(e,t)=>(0,zt.default)(e,n=>{switch(t.type){case"ON_CHANGE":{n.selectedActions.includes(t.value)?(0,R.pull)(n.selectedActions,t.value):n.selectedActions.push(t.value);break}case"SELECT_ALL_IN_PERMISSION":{t.value.every(i=>n.selectedActions.includes(i.actionId))?t.value.forEach(i=>{(0,R.pull)(n.selectedActions,i.actionId)}):t.value.forEach(i=>{n.selectedActions.push(i.actionId)});break}case"SELECT_ALL_ACTIONS":{n.selectedActions=[...n.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const o=n.data.allActionsIds.filter(i=>i.includes("find")||i.includes("findOne"));n.selectedActions=[...o];break}case"UPDATE_PERMISSIONS_LAYOUT":{n.data=re(t.value);break}case"UPDATE_ROUTES":{n.routes=Jt({},t.value);break}case"UPDATE_PERMISSIONS":{n.selectedActions=[...t.value];break}case"SET_SELECTED_ACTION":{n.selectedAction=t.value;break}default:return n}});var _t=Object.defineProperty,en=Object.defineProperties,tn=Object.getOwnPropertyDescriptors,Re=Object.getOwnPropertySymbols,nn=Object.prototype.hasOwnProperty,an=Object.prototype.propertyIsEnumerable,ke=(e,t,n)=>t in e?_t(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,w=(e,t)=>{for(var n in t||(t={}))nn.call(t,n)&&ke(e,n,t[n]);if(Re)for(var n of Re(t))an.call(t,n)&&ke(e,n,t[n]);return e},xe=(e,t)=>en(e,tn(t)),$=(e,t,n)=>new Promise((o,i)=>{var c=m=>{try{u(n.next(m))}catch(y){i(y)}},l=m=>{try{u(n.throw(m))}catch(y){i(y)}},u=m=>m.done?o(m.value):Promise.resolve(m.value).then(c,l);u((n=n.apply(e,t)).next())});const sn="Name already taken",on=()=>{var e;(0,g.useFocusWhenNavigate)();const{formatMessage:t}=(0,P.useIntl)(),{lockApp:n,unlockApp:o}=(0,g.useOverlayBlocker)(),i=(0,g.useNotification)(),c=(0,ae.useHistory)(),[l,u]=(0,a.useState)((e=c.location.state)!=null&&e.apiToken.accessKey?w({},c.location.state.apiToken):null),{trackUsage:m}=(0,g.useTracking)(),y=(0,a.useRef)(m),{setCurrentStep:N}=(0,g.useGuidedTour)(),{allowedActions:{canCreate:b,canUpdate:f,canRegenerate:D}}=(0,g.useRBAC)(jt.Z.settings["api-tokens"]),[k,d]=(0,a.useReducer)(qt,Xt,p=>Wt(p,{})),{params:{id:x}}=(0,ae.useRouteMatch)("/settings/api-tokens/:id"),v=x==="create";(0,se.useQuery)("content-api-permissions",()=>$(void 0,null,function*(){const[p,M]=yield Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(L=>$(void 0,null,function*(){const{data:I}=yield j.be.get(L);return I.data})));d({type:"UPDATE_PERMISSIONS_LAYOUT",value:p}),d({type:"UPDATE_ROUTES",value:M}),l&&((l==null?void 0:l.type)==="read-only"&&d({type:"ON_CHANGE_READ_ONLY"}),(l==null?void 0:l.type)==="full-access"&&d({type:"SELECT_ALL_ACTIONS"}),(l==null?void 0:l.type)==="custom"&&d({type:"UPDATE_PERMISSIONS",value:l==null?void 0:l.permissions}))}),{onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,a.useEffect)(()=>{y.current(v?"didAddTokenFromList":"didEditTokenFromList")},[v]);const{status:E}=(0,se.useQuery)(["api-token",x],()=>$(void 0,null,function*(){const{data:{data:p}}=yield j.be.get(`/admin/api-tokens/${x}`);return u(w({},p)),(p==null?void 0:p.type)==="read-only"&&d({type:"ON_CHANGE_READ_ONLY"}),(p==null?void 0:p.type)==="full-access"&&d({type:"SELECT_ALL_ACTIONS"}),(p==null?void 0:p.type)==="custom"&&d({type:"UPDATE_PERMISSIONS",value:p==null?void 0:p.permissions}),p}),{enabled:!v&&!l,onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),rn=(p,M)=>$(void 0,null,function*(){var L,I,H;y.current(v?"willCreateToken":"willEditToken"),n();try{const{data:{data:S}}=v?yield j.be.post("/admin/api-tokens",xe(w({},p),{lifespan:p.lifespan&&parseInt(p.lifespan,10)?parseInt(p.lifespan,10):p.lifespan,permissions:p.type==="custom"?k.selectedActions:null})):yield j.be.put(`/admin/api-tokens/${x}`,{name:p.name,description:p.description,type:p.type,permissions:p.type==="custom"?k.selectedActions:null});v&&(c.replace(`/settings/api-tokens/${S.id}`,{apiToken:S}),N("apiTokens.success")),o(),u(w({},S)),i({type:"success",message:t(v?{id:"notification.success.tokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.tokenedited",defaultMessage:"API Token successfully edited"})}),y.current(v?"didCreateToken":"didEditToken",{type:l.type})}catch(S){const mn=(0,Be.Iz)(S.response.data);M.setErrors(mn),((H=(I=(L=S==null?void 0:S.response)==null?void 0:L.data)==null?void 0:I.error)==null?void 0:H.message)===sn?i({type:"warning",message:(0,R.get)(S,"response.data.message","notification.error.tokennamenotunique")}):i({type:"warning",message:(0,R.get)(S,"response.data.message","notification.error")}),o()}}),[ln,te]=(0,a.useState)(!1),cn=({target:{value:p}})=>{te(!0),d({type:"ON_CHANGE",value:p})},dn=({target:{value:p}})=>{te(!0),d({type:"SELECT_ALL_IN_PERMISSION",value:p})},pn=({target:{value:p}})=>{d({type:"SET_SELECTED_ACTION",value:p})},un=xe(w({},k),{onChange:cn,onChangeSelectAll:dn,setSelectedAction:pn}),Me=f&&!v||b&&v;return!v&&!l&&E!=="success"?a.createElement(Ue,{apiTokenName:l==null?void 0:l.name}):a.createElement(ye,{value:un},a.createElement(ne.Main,null,a.createElement(g.SettingsPageTitle,{name:"API Tokens"}),a.createElement(Le.Formik,{validationSchema:je,validateOnChange:!1,initialValues:{name:(l==null?void 0:l.name)||"",description:(l==null?void 0:l.description)||"",type:l==null?void 0:l.type,lifespan:l!=null&&l.lifespan?l.lifespan.toString():l==null?void 0:l.lifespan},enableReinitialize:!0,onSubmit:(p,M)=>rn(p,M)},({errors:p,handleChange:M,isSubmitting:L,values:I,setFieldValue:H})=>(ln&&(I==null?void 0:I.type)!=="custom"&&H("type","custom"),a.createElement(g.Form,null,a.createElement(_e,{apiToken:l,setApiToken:u,canEditInputs:Me,canRegenerate:D,isSubmitting:L}),a.createElement(Dt,{apiToken:l,errors:p,onChange:M,canEditInputs:Me,isCreating:v,values:I,onDispatch:d,setHasChangedPermissions:te}))))))}}}]);