@strapi/admin 4.10.2 → 4.11.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/admin/src/content-manager/components/DynamicTable/BulkActionsBar/index.js +307 -0
  2. package/admin/src/content-manager/components/DynamicTable/index.js +20 -4
  3. package/admin/src/content-manager/components/EditViewDataManagerProvider/index.js +3 -2
  4. package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/index.js +0 -1
  5. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +156 -155
  6. package/admin/src/content-manager/pages/ListSettingsView/{utils/excludedSortOptions.js → constants.js} +1 -1
  7. package/admin/src/content-manager/pages/ListSettingsView/index.js +33 -36
  8. package/admin/src/content-manager/pages/ListView/index.js +118 -2
  9. package/admin/src/content-manager/utils/index.js +2 -0
  10. package/admin/src/content-manager/{components/EditViewDataManagerProvider/utils → utils}/schema.js +1 -1
  11. package/admin/src/injectionZones.js +6 -1
  12. package/admin/src/pages/Admin/index.js +3 -0
  13. package/admin/src/pages/AuthPage/components/Register/index.js +1 -1
  14. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FilterSelect.js +1 -1
  15. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/FiltersPopover.js +52 -41
  16. package/admin/src/pages/MarketplacePage/components/SortSelect/index.js +16 -0
  17. package/admin/src/pages/SettingsPage/pages/Users/components/SelectRoles/index.js +2 -2
  18. package/admin/src/translations/en.json +6 -1
  19. package/admin/src/translations/ru.json +7 -0
  20. package/build/3562.57745ccd.chunk.js +50 -0
  21. package/build/6970.5159b068.chunk.js +1 -0
  22. package/build/{Admin-authenticatedApp.a8373103.chunk.js → Admin-authenticatedApp.27a2329f.chunk.js} +2 -2
  23. package/build/{Admin_marketplace.a60cde15.chunk.js → Admin_marketplace.5f7b89e5.chunk.js} +32 -8
  24. package/build/{Admin_settingsPage.5e045f42.chunk.js → Admin_settingsPage.9d0419bc.chunk.js} +1 -1
  25. package/build/Upload_ConfigureTheView.d429a7fc.chunk.js +1 -0
  26. package/build/{admin-app.9bfe4ec7.chunk.js → admin-app.8e1f56bc.chunk.js} +2 -2
  27. package/build/{admin-edit-users.ba27c532.chunk.js → admin-edit-users.2aae89f5.chunk.js} +4 -4
  28. package/build/{admin-users.ad5dd832.chunk.js → admin-users.04a823ca.chunk.js} +5 -5
  29. package/build/content-manager.cf467ecc.chunk.js +1123 -0
  30. package/build/{content-type-builder-translation-en-json.446b611d.chunk.js → content-type-builder-translation-en-json.5e5f8607.chunk.js} +1 -1
  31. package/build/en-json.7edb00f6.chunk.js +1 -0
  32. package/build/i18n-translation-en-json.1ec7becf.chunk.js +1 -0
  33. package/build/i18n-translation-ru-json.401bc498.chunk.js +1 -0
  34. package/build/index.html +1 -1
  35. package/build/{main.41970e4c.js → main.14dca275.js} +183 -188
  36. package/build/review-workflows-settings.6a662ebd.chunk.js +61 -0
  37. package/build/ru-json.678cd48b.chunk.js +1 -0
  38. package/build/{runtime~main.c20330f1.js → runtime~main.1074f2bb.js} +1 -1
  39. package/build/users-permissions-translation-ru-json.8e883c67.chunk.js +1 -0
  40. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js +12 -1
  41. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +6 -1
  42. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +4 -1
  43. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +10 -7
  44. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/OptionColor/OptionColor.js +11 -1
  45. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/SingleValueColor/SingleValueColor.js +14 -1
  46. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/colors.js +7 -1
  47. package/ee/server/routes/audit-logs.js +43 -0
  48. package/ee/server/routes/index.js +5 -226
  49. package/ee/server/routes/license-limit.js +29 -0
  50. package/ee/server/routes/review-workflows.js +112 -0
  51. package/ee/server/routes/sso.js +60 -0
  52. package/ee/server/routes/utils.js +15 -0
  53. package/package.json +16 -16
  54. package/server/routes/index.js +16 -11
  55. package/webpack.alias.js +0 -1
  56. package/admin/src/content-manager/components/DynamicTable/ConfirmDialogDeleteAll/index.js +0 -73
  57. package/admin/src/content-manager/pages/ListSettingsView/utils/api.js +0 -10
  58. package/build/6858.56d4d528.chunk.js +0 -50
  59. package/build/9703.e590889d.chunk.js +0 -1
  60. package/build/Upload_ConfigureTheView.4fc648b5.chunk.js +0 -1
  61. package/build/content-manager.d28eb183.chunk.js +0 -1111
  62. package/build/en-json.c7fc79af.chunk.js +0 -1
  63. package/build/i18n-translation-en-json.60af6722.chunk.js +0 -1
  64. package/build/review-workflows-settings.7c0b4e73.chunk.js +0 -61
  65. package/build/ru-json.e0662702.chunk.js +0 -1
  66. package/build/users-permissions-translation-ru-json.20e177db.chunk.js +0 -1
@@ -44,6 +44,9 @@ const SettingsPage = lazy(() =>
44
44
  );
45
45
 
46
46
  // Simple hook easier for testing
47
+ /**
48
+ * TODO: remove this, it's bad.
49
+ */
47
50
  const useTrackUsage = () => {
48
51
  const { trackUsage } = useTracking();
49
52
  const dispatch = useDispatch();
@@ -149,7 +149,7 @@ const Register = ({ authType, fieldsToDisable, noSignin, onSubmit, schema }) =>
149
149
  return (
150
150
  <Form noValidate>
151
151
  <Main>
152
- <Flex direction="column" alignItems="stretch" gap={3}>
152
+ <Flex direction="column" alignItems="center" gap={3}>
153
153
  <Logo />
154
154
 
155
155
  <Typography as="h1" variant="alpha" textAlign="center">
@@ -10,7 +10,7 @@ const FilterSelect = ({ message, value, onChange, possibleFilters, onClear, cust
10
10
  return (
11
11
  <Select
12
12
  data-testid={`${message}-button`}
13
- aria-label={message}
13
+ label={message}
14
14
  placeholder={message}
15
15
  size="M"
16
16
  onChange={onChange}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { Box, Popover, Flex, FocusTrap } from '@strapi/design-system';
3
+ import styled from 'styled-components';
4
+ import { Popover, Flex, FocusTrap } from '@strapi/design-system';
4
5
  import { useIntl } from 'react-intl';
5
6
  import FilterSelect from './FilterSelect';
6
7
 
@@ -19,61 +20,57 @@ const FiltersPopover = ({
19
20
  return (
20
21
  <Popover source={source} padding={3} spacing={4} onBlur={() => {}}>
21
22
  <FocusTrap onEscape={onToggle}>
22
- <Flex direction="column" alignItems="stretch" gap={1}>
23
- <Box>
23
+ <FiltersFlex direction="column" alignItems="stretch" gap={1}>
24
+ <FilterSelect
25
+ message={formatMessage({
26
+ id: 'admin.pages.MarketPlacePage.filters.collections',
27
+ defaultMessage: 'Collections',
28
+ })}
29
+ value={query?.collections || []}
30
+ onChange={(newCollections) => {
31
+ const update = { collections: newCollections };
32
+ handleSelectChange(update);
33
+ }}
34
+ onClear={() => handleSelectClear('collections')}
35
+ possibleFilters={possibleCollections}
36
+ customizeContent={(values) =>
37
+ formatMessage(
38
+ {
39
+ id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
40
+ defaultMessage:
41
+ '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',
42
+ },
43
+ { count: values.length }
44
+ )
45
+ }
46
+ />
47
+ {npmPackageType === 'plugin' && (
24
48
  <FilterSelect
25
49
  message={formatMessage({
26
- id: 'admin.pages.MarketPlacePage.filters.collections',
27
- defaultMessage: 'Collections',
50
+ id: 'admin.pages.MarketPlacePage.filters.categories',
51
+ defaultMessage: 'Categories',
28
52
  })}
29
- value={query?.collections || []}
30
- onChange={(newCollections) => {
31
- const update = { collections: newCollections };
53
+ value={query?.categories || []}
54
+ onChange={(newCategories) => {
55
+ const update = { categories: newCategories };
32
56
  handleSelectChange(update);
33
57
  }}
34
- onClear={() => handleSelectClear('collections')}
35
- possibleFilters={possibleCollections}
58
+ onClear={() => handleSelectClear('categories')}
59
+ possibleFilters={possibleCategories}
36
60
  customizeContent={(values) =>
37
61
  formatMessage(
38
62
  {
39
- id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
63
+ id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
40
64
  defaultMessage:
41
- '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',
65
+ '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',
42
66
  },
43
67
  { count: values.length }
44
68
  )
45
69
  }
70
+ name="categories"
46
71
  />
47
- </Box>
48
- {npmPackageType === 'plugin' && (
49
- <Box>
50
- <FilterSelect
51
- message={formatMessage({
52
- id: 'admin.pages.MarketPlacePage.filters.categories',
53
- defaultMessage: 'Categories',
54
- })}
55
- value={query?.categories || []}
56
- onChange={(newCategories) => {
57
- const update = { categories: newCategories };
58
- handleSelectChange(update);
59
- }}
60
- onClear={() => handleSelectClear('categories')}
61
- possibleFilters={possibleCategories}
62
- customizeContent={(values) =>
63
- formatMessage(
64
- {
65
- id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
66
- defaultMessage:
67
- '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',
68
- },
69
- { count: values.length }
70
- )
71
- }
72
- name="categories"
73
- />
74
- </Box>
75
72
  )}
76
- </Flex>
73
+ </FiltersFlex>
77
74
  </FocusTrap>
78
75
  </Popover>
79
76
  );
@@ -91,3 +88,17 @@ FiltersPopover.propTypes = {
91
88
  };
92
89
 
93
90
  export default FiltersPopover;
91
+
92
+ const FiltersFlex = styled(Flex)`
93
+ /* Hide the label, every input needs a label. */
94
+ label {
95
+ border: 0;
96
+ clip: rect(0 0 0 0);
97
+ height: 1px;
98
+ margin: -1px;
99
+ overflow: hidden;
100
+ padding: 0;
101
+ position: absolute;
102
+ width: 1px;
103
+ }
104
+ `;
@@ -10,6 +10,18 @@ const SelectWrapper = styled(Box)`
10
10
  span {
11
11
  font-size: ${({ theme }) => theme.fontSizes[1]};
12
12
  }
13
+
14
+ /* Hide the label, every input needs a label. */
15
+ label {
16
+ border: 0;
17
+ clip: rect(0 0 0 0);
18
+ height: 1px;
19
+ margin: -1px;
20
+ overflow: hidden;
21
+ padding: 0;
22
+ position: absolute;
23
+ width: 1px;
24
+ }
13
25
  `;
14
26
 
15
27
  const SortSelect = ({ sortQuery, handleSelectChange }) => {
@@ -68,6 +80,10 @@ const SortSelect = ({ sortQuery, handleSelectChange }) => {
68
80
  onChange={(sortName) => {
69
81
  handleSelectChange({ sort: sortName });
70
82
  }}
83
+ label={formatMessage({
84
+ id: 'admin.pages.MarketPlacePage.sort.label',
85
+ defaultMessage: 'Sort by',
86
+ })}
71
87
  >
72
88
  {Object.entries(sortTypes).map(([sortName, messages]) => {
73
89
  return (
@@ -67,13 +67,13 @@ const SelectRoles = ({ disabled, error, onChange, value }) => {
67
67
  placeholder={placeholder}
68
68
  multi
69
69
  startIcon={startIcon}
70
- value={value}
70
+ value={value.map((v) => v.toString())}
71
71
  withTags
72
72
  required
73
73
  >
74
74
  {(data || []).map((role) => {
75
75
  return (
76
- <Option key={role.id} value={role.id}>
76
+ <Option key={role.id} value={role.id.toString()}>
77
77
  {formatMessage({
78
78
  id: `global.${role.code}`,
79
79
  defaultMessage: role.name,
@@ -326,6 +326,7 @@
326
326
  "Users.components.List.empty": "There is no users...",
327
327
  "Users.components.List.empty.withFilters": "There is no users with the applied filters...",
328
328
  "Users.components.List.empty.withSearch": "There is no users corresponding to the search ({search})...",
329
+ "admin.pages.MarketPlacePage.sort.label": "Sort by",
329
330
  "admin.pages.MarketPlacePage.filters.categories": "Categories",
330
331
  "admin.pages.MarketPlacePage.filters.categoriesSelected": "{count, plural, =0 {No categories} one {# category} other {# categories}} selected",
331
332
  "admin.pages.MarketPlacePage.filters.collections": "Collections",
@@ -792,7 +793,9 @@
792
793
  "content-manager.plugin.description.long": "Quick way to see, edit and delete the data in your database.",
793
794
  "content-manager.plugin.description.short": "Quick way to see, edit and delete the data in your database.",
794
795
  "content-manager.popUpWarning.bodyMessage.contentType.delete": "Are you sure to delete Content-Type?",
795
- "content-manager.popUpWarning.bodyMessage.contentType.delete.all": "Are you sure to delete all Content-Types?",
796
+ "content-manager.popUpWarning.bodyMessage.contentType.delete.all": "Are you sure you want to delete these entries?",
797
+ "content-manager.popUpWarning.bodyMessage.contentType.publish.all": "Are you sure you want to publish these entries?",
798
+ "content-manager.popUpWarning.bodyMessage.contentType.unpublish.all": "Are you sure you want to unpublish these entries?",
796
799
  "content-manager.popUpWarning.warning.has-draft-relations.title": "Confirmation",
797
800
  "content-manager.popUpWarning.warning.publish-question": "Do you still want to publish?",
798
801
  "content-manager.popUpWarning.warning.unpublish": "If you don't publish this content, it will automatically turn into a Draft.",
@@ -815,6 +818,8 @@
815
818
  "content-manager.success.record.save": "Saved",
816
819
  "content-manager.success.record.unpublish": "Unpublished",
817
820
  "content-manager.utils.data-loaded": "The {number, plural, =1 {entry has} other {entries have}} successfully been loaded",
821
+ "content-manager.listView.validation.errors.title": "Action required",
822
+ "content-manager.listView.validation.errors.message": "Please make sure all fields are valid before publishing (required field, min/max character limit, etc.)",
818
823
  "dark": "Dark",
819
824
  "form.button.continue": "Continue",
820
825
  "form.button.done": "Done",
@@ -219,6 +219,11 @@
219
219
  "Settings.profile.form.section.experience.title": "Опыт",
220
220
  "Settings.profile.form.section.helmet.title": "Профиль пользователя",
221
221
  "Settings.profile.form.section.profile.page.title": "Страница профиля",
222
+ "Settings.review-workflows.page.title": "Просмотр рабочих процессов",
223
+ "Settings.review-workflows.page.subtitle": "{count, plural, =0 {# этапов} one {# этап} other {# этапа}}",
224
+ "Settings.review-workflows.page.isLoading": "Рабочие процессы загружаются",
225
+ "Settings.review-workflows.page.delete.confirm.body": "Все записи, назначенные удаленным этапам, будут перемещены на предыдущий этап. Вы уверены, что хотите сохранить?",
226
+ "Settings.review-workflows.stage.name.label": "Имя этапа",
222
227
  "Settings.roles.create.description": "Определите права, предоставленные ролью",
223
228
  "Settings.roles.create.title": "Создать роль",
224
229
  "Settings.roles.created": "Роль создана",
@@ -321,6 +326,7 @@
321
326
  "Users.components.List.empty": "Нет пользователей...",
322
327
  "Users.components.List.empty.withFilters": "Нет пользователей с применёнными фильтрами...",
323
328
  "Users.components.List.empty.withSearch": "Нет пользователей, соответствующих запросу ({search})...",
329
+ "admin.pages.MarketPlacePage.sort.label": "Сортировка",
324
330
  "admin.pages.MarketPlacePage.filters.categories": "Категории",
325
331
  "admin.pages.MarketPlacePage.filters.categoriesSelected": "Выбрано {count, plural, =0 {# категорий} one {# категория} other {# категории}}",
326
332
  "admin.pages.MarketPlacePage.filters.collections": "Коллекции",
@@ -803,6 +809,7 @@
803
809
  "content-manager.relation.notAvailable": "Нет отношений",
804
810
  "content-manager.relation.publicationState.draft": "Черновик",
805
811
  "content-manager.relation.publicationState.published": "Опубликовано",
812
+ "content-manager.reviewWorkflows.stage.label": "Просмотреть этап",
806
813
  "content-manager.select.currently.selected": "{count} выбрано",
807
814
  "content-manager.success.record.delete": "Удалено",
808
815
  "content-manager.success.record.publish": "Опубликовано",
@@ -0,0 +1,50 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3562],{51355:function(E,m,r){var n=r(94318),u=r(3387),s="[object Boolean]";function x(v){return v===!0||v===!1||u(v)&&n(v)==s}E.exports=x},95919:function(E,m,r){var n=r(80022);function u(s){return n(s)&&s!=+s}E.exports=u},80022:function(E,m,r){var n=r(94318),u=r(3387),s="[object Number]";function x(v){return typeof v=="number"||u(v)&&n(v)==s}E.exports=x},59578:function(E,m,r){var n=r(41119);function u(s){return n(s).toLowerCase()}E.exports=u},98178:function(E,m,r){"use strict";r.d(m,{P1:function(){return C}});var n="NOT_FOUND";function u(l){var a;return{get:function(t){return a&&l(a.key,t)?a.value:n},put:function(t,o){a={key:t,value:o}},getEntries:function(){return a?[a]:[]},clear:function(){a=void 0}}}function s(l,a){var e=[];function t(p){var f=e.findIndex(function(g){return a(p,g.key)});if(f>-1){var h=e[f];return f>0&&(e.splice(f,1),e.unshift(h)),h.value}return n}function o(p,f){t(p)===n&&(e.unshift({key:p,value:f}),e.length>l&&e.pop())}function i(){return e}function c(){e=[]}return{get:t,put:o,getEntries:i,clear:c}}var x=function(a,e){return a===e};function v(l){return function(e,t){if(e===null||t===null||e.length!==t.length)return!1;for(var o=e.length,i=0;i<o;i++)if(!l(e[i],t[i]))return!1;return!0}}function P(l,a){var e=typeof a=="object"?a:{equalityCheck:a},t=e.equalityCheck,o=t===void 0?x:t,i=e.maxSize,c=i===void 0?1:i,p=e.resultEqualityCheck,f=v(o),h=c===1?u(f):s(c,f);function g(){var d=h.get(arguments);if(d===n){if(d=l.apply(null,arguments),p){var _=h.getEntries(),y=_.find(function(O){return p(O.value,d)});y&&(d=y.value)}h.put(arguments,d)}return d}return g.clearCache=function(){return h.clear()},g}function b(l){var a=Array.isArray(l[0])?l[0]:l;if(!a.every(function(t){return typeof t=="function"})){var e=a.map(function(t){return typeof t=="function"?"function "+(t.name||"unnamed")+"()":typeof t}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+e+"]")}return a}function j(l){for(var a=arguments.length,e=new Array(a>1?a-1:0),t=1;t<a;t++)e[t-1]=arguments[t];var o=function(){for(var c=arguments.length,p=new Array(c),f=0;f<c;f++)p[f]=arguments[f];var h=0,g,d={memoizeOptions:void 0},_=p.pop();if(typeof _=="object"&&(d=_,_=p.pop()),typeof _!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof _+"]");var y=d,O=y.memoizeOptions,M=O===void 0?e:O,Z=Array.isArray(M)?M:[M],D=b(p),R=l.apply(void 0,[function(){return h++,_.apply(null,arguments)}].concat(Z)),A=l(function(){for(var B=[],S=D.length,T=0;T<S;T++)B.push(D[T].apply(null,arguments));return g=R.apply(null,B),g});return Object.assign(A,{resultFunc:_,memoizedResultFunc:R,dependencies:D,lastResult:function(){return g},recomputations:function(){return h},resetRecomputations:function(){return h=0}}),A};return o}var C=j(P),w=function(a,e){if(e===void 0&&(e=C),typeof a!="object")throw new Error("createStructuredSelector expects first argument to be an object "+("where each property is a selector, instead received a "+typeof a));var t=Object.keys(a),o=e(t.map(function(i){return a[i]}),function(){for(var i=arguments.length,c=new Array(i),p=0;p<i;p++)c[p]=arguments[p];return c.reduce(function(f,h,g){return f[t[g]]=h,f},{})});return o}},83828:function(E,m,r){"use strict";r.d(m,{U:function(){return a},y:function(){return w}});var n=r(74512),u=r(32735),s=r(8471),x=r(91045),v=r(72850),P=r(87933),b=r(74971),j=r(49372);const C=({theme:e,expanded:t,variant:o,disabled:i,error:c})=>c?`1px solid ${e.colors.danger600} !important`:i?`1px solid ${e.colors.neutral150}`:t?`1px solid ${e.colors.primary600}`:o==="primary"?`1px solid ${e.colors.neutral0}`:`1px solid ${e.colors.neutral100}`,w=(0,s.ZP)(j.Z)``,l=(0,s.ZP)(v.x)`
2
+ border: ${C};
3
+
4
+ &:hover:not([aria-disabled='true']) {
5
+ border: 1px solid ${({theme:e})=>e.colors.primary600};
6
+
7
+ ${w} {
8
+ color: ${({theme:e,expanded:t})=>t?void 0:e.colors.primary700};
9
+ }
10
+
11
+ ${j.Z} {
12
+ color: ${({theme:e,expanded:t})=>t?void 0:e.colors.primary600};
13
+ }
14
+
15
+ & > ${P.k} {
16
+ background: ${({theme:e})=>e.colors.primary100};
17
+ }
18
+
19
+ [data-strapi-dropdown='true'] {
20
+ background: ${({theme:e})=>e.colors.primary200};
21
+ }
22
+ }
23
+ `,a=({children:e,disabled:t=!1,error:o,expanded:i=!1,hasErrorMessage:c=!0,id:p,onToggle:f,toggle:h,size:g="M",variant:d="primary",shadow:_})=>{const y=(0,b.M)(p),O=u.useMemo(()=>({expanded:i,onToggle:f,toggle:h,id:y,size:g,variant:d,disabled:t}),[t,i,y,f,g,h,d]);return(0,n.jsxs)(x.S.Provider,{value:O,children:[(0,n.jsx)(l,{"data-strapi-expanded":i,disabled:t,"aria-disabled":t,expanded:i,hasRadius:!0,variant:d,error:o,shadow:_,children:e}),o&&c&&(0,n.jsx)(v.x,{paddingTop:1,children:(0,n.jsx)(j.Z,{variant:"pi",textColor:"danger600",children:o})})]})}},89966:function(E,m,r){"use strict";r.d(m,{v:function(){return x}});var n=r(74512),u=r(91045),s=r(72850);const x=({children:v,...P})=>{const{expanded:b,id:j}=(0,u.A)();if(!b)return null;const C=`accordion-content-${j}`,w=`accordion-label-${j}`,l=`accordion-desc-${j}`;return(0,n.jsx)(s.x,{role:"region",id:C,"aria-labelledby":w,"aria-describedby":l,...P,children:v})}},91045:function(E,m,r){"use strict";r.d(m,{A:function(){return s},S:function(){return u}});var n=r(32735);const u=(0,n.createContext)({disabled:!1,expanded:!1,id:"",size:"M",variant:"primary"}),s=()=>(0,n.useContext)(u)},61762:function(E,m,r){"use strict";r.d(m,{B:function(){return e}});var n=r(74512),u=r(16899),s=r(8471),x=r(83828),v=r(91045);const P=({expanded:t,disabled:o,variant:i})=>{let c="neutral100";return t?c="primary100":o?c="neutral150":i==="primary"&&(c="neutral0"),c};var b=r(87933),j=r(99140),C=r(7563),w=r(49372);const l=(0,s.ZP)(C.A)`
24
+ text-align: left;
25
+
26
+ // necessary to make the ellipsis prop work on the title
27
+ > span {
28
+ max-width: 100%;
29
+ }
30
+
31
+ svg {
32
+ width: ${14/16}rem;
33
+ height: ${14/16}rem;
34
+
35
+ path {
36
+ fill: ${({theme:t,expanded:o})=>o?t.colors.primary600:t.colors.neutral500};
37
+ }
38
+ }
39
+ `,a=(0,s.ZP)(b.k)`
40
+ min-height: ${({theme:t,size:o})=>t.sizes.accordions[o]};
41
+ border-radius: ${({theme:t,expanded:o})=>o?`${t.borderRadius} ${t.borderRadius} 0 0`:t.borderRadius};
42
+
43
+ &:hover {
44
+ svg {
45
+ path {
46
+ fill: ${({theme:t})=>t.colors.primary600};
47
+ }
48
+ }
49
+ }
50
+ `,e=({title:t,description:o,as:i="span",togglePosition:c="right",action:p,...f})=>{const{onToggle:h,toggle:g,expanded:d,id:_,size:y,variant:O,disabled:M}=(0,v.A)(),Z=`accordion-content-${_}`,D=`accordion-label-${_}`,R=`accordion-desc-${_}`,A=y==="M"?6:4,$=y==="M"?A:A-2,B=P({expanded:d,disabled:M,variant:O}),S={as:i,fontWeight:y==="S"?"bold":void 0,id:D,textColor:d?"primary600":"neutral700",ellipsis:!0,variant:y==="M"?"delta":void 0},T=d?"primary600":"neutral600",W=d?"primary200":"neutral200",L=y==="M"?`${32/16}rem`:`${24/16}rem`,I=()=>{M||(g&&!h?(console.warn('Deprecation warning: Usage of "toggle" prop in Accordion component is deprecated. This is discouraged and will be removed in the next major release. Please use "onToggle" instead'),g()):h&&h())},U=(0,n.jsx)(b.k,{justifyContent:"center",borderRadius:"50%",height:L,width:L,transform:d?"rotate(180deg)":void 0,"data-strapi-dropdown":!0,"aria-hidden":!0,as:"span",background:W,cursor:M?"not-allowed":"pointer",onClick:I,shrink:0,children:(0,n.jsx)(j.J,{as:u.Z,width:y==="M"?`${11/16}rem`:`${8/16}rem`,color:d?"primary600":"neutral600"})});return(0,n.jsx)(a,{paddingBottom:$,paddingLeft:A,paddingRight:A,paddingTop:$,background:B,expanded:d,size:y,justifyContent:"space-between",cursor:M?"not-allowed":"",children:(0,n.jsxs)(b.k,{gap:3,flex:1,maxWidth:"100%",children:[c==="left"&&U,(0,n.jsx)(l,{onClick:I,"aria-disabled":M,"aria-expanded":d,"aria-controls":Z,"aria-labelledby":D,"data-strapi-accordion-toggle":!0,expanded:d,type:"button",flex:1,minWidth:0,...f,children:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x.y,{...S,children:t}),o&&(0,n.jsx)(w.Z,{as:"p",id:R,textColor:T,children:o})]})}),c==="right"&&(0,n.jsxs)(b.k,{gap:3,children:[U,p]}),c==="left"&&p]})})}},47081:function(E,m,r){"use strict";r.d(m,{Z:function(){return s}});var n=r(74512);const u=x=>(0,n.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...x,children:[(0,n.jsx)("path",{d:"M16.563 5.587a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M18.487 3.083c-.012.788-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574A1.943 1.943 0 0 1 14.9 2.11c.4-.684 1.2-1.066 1.981-.927a1.954 1.954 0 0 1 1.606 1.9c.011.748 1.17.748 1.158 0A3.138 3.138 0 0 0 17.565.17c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM16.563 14.372a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M18.487 11.867c-.012.789-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.968 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.675 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.005ZM16.563 23.392a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M18.487 20.89c-.012.787-.487 1.512-1.229 1.796a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.967 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM7.378 5.622a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M9.302 3.119c-.011.788-.486 1.512-1.228 1.796a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38.205c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.005ZM7.378 14.406a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M9.302 11.902c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38 8.988c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.674 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.006ZM7.378 23.427a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,n.jsx)("path",{d:"M9.302 20.924c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927.933.156 1.594.967 1.605 1.9.012.748 1.17.748 1.16 0A3.139 3.139 0 0 0 8.38 18.01c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.569.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.747-1.147-.747-1.159 0Z",fill:"#212134"})]}),s=u},86308:function(E,m,r){"use strict";r.d(m,{Z:function(){return s}});var n=r(74512);const u=x=>(0,n.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...x,children:[(0,n.jsx)("circle",{cx:12,cy:12,r:12,fill:"#212134"}),(0,n.jsx)("path",{d:"M17 12.569c0 .124-.1.224-.225.224h-3.981v3.982c0 .124-.101.225-.226.225h-1.136a.225.225 0 0 1-.226-.225v-3.981H7.226A.225.225 0 0 1 7 12.567v-1.136c0-.125.1-.226.225-.226h3.982V7.226c0-.124.1-.225.224-.225h1.138c.124 0 .224.1.224.225v3.982h3.982c.124 0 .225.1.225.224v1.138Z",fill:"#F6F6F9"})]}),s=u}}]);
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[6970],{55433:function(F,h,e){e.d(h,{r:function(){return C}});var c=e(32735),y=e(60216),T=e.n(y),M=e(74506),L=e(72850);function A(g,v,f){if(!g||!v)return{display:"none"};const{x:E,y:S}=f;return{transform:`translate(${E}px, ${S}px)`}}function C({renderItem:g}){const{itemType:v,isDragging:f,item:E,initialOffset:S,currentOffset:b,mouseOffset:W}=(0,M.useDragLayer)(k=>({item:k.getItem(),itemType:k.getItemType(),initialOffset:k.getInitialSourceClientOffset(),currentOffset:k.getSourceClientOffset(),isDragging:k.isDragging(),mouseOffset:k.getClientOffset()}));return f?c.createElement(L.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},c.createElement(L.x,{style:A(S,b,W)},g({type:v,item:E}))):null}C.propTypes={renderItem:T().func.isRequired}},73386:function(F,h,e){var c=e(32735);const y=(0,c.createContext)();var T=null},56327:function(F,h,e){e.d(h,{PL:function(){return L},Y9:function(){return o.Y},zE:function(){return z},Ky:function(){return le},fi:function(){return G},zH:function(){return u},r5:function(){return fe}});var c=e(32735),y=e(15062),T=e(70031),L=()=>{const r=(0,y.v9)(T.Z),t=(0,c.useCallback)(n=>r?.components?.[n]??{},[r]);return{...r,getComponentLayout:t}},A=e(84306),C=e(24989),g=e(99381),v=e.n(g),f=e(33795),E=e.n(f),S=e(3040),b=e.n(S),W=e(51375);const k=(r,t)=>t.find(n=>n.uid===r),H=(r,t)=>{const n=B(r,t),i=Q(n.contentType,t),l=J(n.contentType,n.components);return b()(n,["contentType","layouts","edit"],i),b()(n,["contentType","layouts","list"],l),Object.keys(n.components).forEach(a=>{const p=Q(n.components[a],t);b()(n,["components",a,"layouts","edit"],p)}),n},B=(r,t)=>{const n=(0,W.w8)(v()(r),t,"contentType"),{components:i,contentType:l}=n,a=p=>Object.keys(p.metadatas).reduce((O,I)=>{const P=E()(p,["attributes",I],{});let N=p.metadatas[I];if(P.type==="relation"){const me=k(P.targetModel,t),U=N.edit.mainField,Y={name:U,schema:E()(me,["attributes",U])};N={list:{...N.list,mainField:Y},edit:{...N.edit,mainField:Y}}}return O[I]=N,O},{});return b()(n,["contentType","metadatas"],a(l)),Object.keys(i).forEach(p=>{const O=i[p],I=a(O);b()(n,["components",p,"metadatas"],I)}),n},Q=(r,t)=>r.layouts.edit.reduce((n,i)=>{const l=i.map(a=>{const p=E()(r,["attributes",a.name],{}),O={...a,fieldSchema:p,metadatas:E()(r,["metadatas",a.name,"edit"],{})};if(p.type==="relation"){const P=k(p.targetModel,t).pluginOptions||{};b()(O,"targetModelPluginOptions",P),b()(O,"queryInfos",{shouldDisplayRelationLink:ne(r,a.name,t)})}return O});return n.push(l),n},[]),J=(r,t)=>r.layouts.list.reduce((i,l)=>{const a=E()(r,["attributes",l],{}),p=E()(r,["metadatas",l,"list"],{}),O=a.type;if(O==="relation")return i.push({key:`__${l}_key__`,name:l,fieldSchema:a,metadatas:p}),i;if(O==="component"){const I=t[a.component],P=I.settings.mainField,N=I.attributes[P];return i.push({key:`__${l}_key__`,name:l,fieldSchema:a,metadatas:{...p,mainField:{...N,name:P}}}),i}return i.push({key:`__${l}_key__`,name:l,fieldSchema:a,metadatas:p}),i},[]),ne=(r,t,n)=>{const i=E()(r,["attributes",t,"targetModel"],"");return _(n).includes(i)},_=r=>r.filter(t=>t.isDisplayed).map(({uid:t})=>t);var $=H,V=e(97889);const x={error:null,isLoading:!0,layout:{},layouts:{}};var w=(r,t)=>(0,V.ZP)(r,n=>{switch(t.type){case"GET_DATA":{n.isLoading=!0,n.error=null,n.layout={};break}case"GET_DATA_SUCCEEDED":{const i=t.data.contentType.uid;n.layout=t.data,n.layouts[i]=t.data,n.isLoading=!1;break}case"GET_DATA_ERROR":{n.isLoading=!1,n.error=t.error;break}case"SET_LAYOUT_FROM_STATE":{n.error=null,n.layout=r.layouts[t.uid];break}case"UPDATE_LAYOUT":{const i=r.layout;n.layout={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}},n.layouts[i.contentType.uid]={...i,contentType:{uid:i.contentType.uid,...t.newLayout.contentType}};break}default:return n}}),K=e(42882),z=r=>{const[{error:t,isLoading:n,layout:i,layouts:l},a]=(0,c.useReducer)(w,x),p=(0,c.useMemo)(K.Vo,[]),{schemas:O}=(0,y.v9)(U=>p(U),y.wU),I=(0,c.useRef)(!0),{get:P}=(0,C.kY)(),N=(0,c.useCallback)(async(U,Y)=>{if(l[U]){a({type:"SET_LAYOUT_FROM_STATE",uid:U});return}a({type:"GET_DATA"});try{const te=(0,W.IF)(`content-types/${U}/configuration`),{data:{data:Te}}=await P(te,{cancelToken:Y.token});a({type:"GET_DATA_SUCCEEDED",data:$(Te,O)})}catch(te){if(A.Z.isCancel(te))return;I.current&&console.error(te),I.current&&a({type:"GET_DATA_ERROR",error:te})}},[l,O,P]);(0,c.useEffect)(()=>()=>{I.current=!1},[]),(0,c.useEffect)(()=>{const Y=A.Z.CancelToken.source();return N(r,Y),()=>{Y.cancel("Operation canceled by the user.")}},[r,N]);const me=(0,c.useCallback)(U=>{a({type:"UPDATE_LAYOUT",newLayout:$(U,O)})},[O]);return{error:t,isLoading:n,layout:i,updateLayout:me}},X=r=>r["content-manager_app"].collectionTypeLinks,Z=e(33348),se=e(85973),ye=e.n(se);const oe=(r,t)=>Object.keys(r).reduce((n,i)=>{const l=r[i],a=E()(t,[i],l);return ye()(l)?{...n,[i]:oe(l,a)}:(n[i]=a,n)},{});var ge=(r,t,n)=>{const i=r.find(({to:N})=>N.includes(t));if(!i)return"/";const{to:l,search:a}=i,p=(0,Z.parse)(a),O=(0,Z.parse)(n.substring(1)),I=oe(p,O);return`${l}?${(0,Z.stringify)(I,{encode:!1})}`},le=r=>{const[{rawQuery:t}]=(0,C.Kx)(),n=(0,y.v9)(X);return ge(n,r,t)},ce=e(53038),G=()=>{const{search:r}=(0,ce.TH)(),t=r?(0,Z.parse)(r.substring(1)):{};return t.plugins?(0,Z.stringify)({plugins:t.plugins},{encode:!1}):""},ie=e(89334);const j=(r,t,n)=>({type:ie.m,permissions:r,__meta__:{plugins:t,containerName:n}}),R=()=>({type:ie.Q}),ee=r=>r["content-manager_rbacManager"].permissions,de=r=>r.rbacProvider.collectionTypesRelatedPermissions;var fe=(r,t,n="listView")=>{const i=(0,y.v9)(de),l=(0,y.v9)(ee),a=(0,y.I0)(),p=i[t];return(0,c.useEffect)(()=>p?(a(j(p,r?r.plugins:null,n)),()=>{a(R())}):()=>{},[p,a,r,n]),l},he=e(73386);const s=()=>useContext(WysiwygContext);var d=null;const u=r=>{const t=(0,c.useRef)();return(0,c.useEffect)(()=>{t.current=r},[r]),t.current};var o=e(90553),m=e(18777)},90553:function(F,h,e){e.d(h,{Y:function(){return L}});var c=e(32735),y=e(74506),T=e.n(y),M=e(18777);const L=(A,{type:C="STRAPI_DND",index:g,item:v={},onStart:f,onEnd:E,onGrabItem:S,onDropItem:b,onCancel:W,onMoveItem:k,dropSensitivity:H="regular"})=>{const B=(0,c.useRef)(null),[{handlerId:Q},J]=(0,y.useDrop)({accept:C,collect(x){return{handlerId:x.getHandlerId()}},hover(x,re){if(!B.current)return;const w=x.index,K=g;if(w!==K){if(H==="regular"){const q=B.current.getBoundingClientRect(),z=(q.bottom-q.top)/2,X=re.getClientOffset().y-q.top;if(w<K&&X<z||w>K&&X>z)return}k(K,w),x.index=K}}}),[{isDragging:ne},_,$]=(0,y.useDrag)({type:C,item(){f&&f();const{width:x}=B.current?.getBoundingClientRect()??{};return{index:g,width:x,...v}},end(){E&&E()},canDrag:A,isDragging:v.id?x=>v.id===x.getItem().id:void 0,collect:x=>({isDragging:x.isDragging()})}),V=(0,M.A)(A,g,{onGrabItem:S,onDropItem:b,onCancel:W,onMoveItem:k});return[{handlerId:Q,isDragging:ne,handleKeyDown:V},B,J,_,$]}},18777:function(F,h,e){e.d(h,{A:function(){return y}});var c=e(32735);const y=(T,M,{onCancel:L,onDropItem:A,onGrabItem:C,onMoveItem:g})=>{const[v,f]=(0,c.useState)(!1),E=k=>{v&&(k==="UP"?g(M-1,M):k==="DOWN"&&g(M+1,M))},S=()=>{v?(A&&A(M),f(!1)):(C&&C(M),f(!0))},b=()=>{v&&(f(!1),L&&L(M))};return k=>{if(T&&!(k.key==="Tab"&&!v))switch(k.preventDefault(),k.key){case" ":case"Enter":S();break;case"Escape":b();break;case"ArrowDown":case"ArrowRight":E("DOWN");break;case"ArrowUp":case"ArrowLeft":E("UP");break;default:}}}},42882:function(F,h,e){e.d(h,{Jg:function(){return g},KQ:function(){return A},Vo:function(){return C},Yg:function(){return T}});var c=e(98178),y=e(34947);const T=()=>f=>f["content-manager_app"]||y.E,M=()=>createSelector(T(),f=>f),L=()=>createSelector(T(),f=>f.models),A=()=>(0,c.P1)(T(),f=>({collectionTypeLinks:f.collectionTypeLinks,singleTypeLinks:f.singleTypeLinks})),C=()=>(0,c.P1)(T(),({components:f,models:E})=>({schemas:[...f,...E]})),g=(0,c.P1)(T(),f=>f.fieldSizes);var v=null},70031:function(F,h){const e=c=>c["content-manager_editViewLayoutManager"].currentLayout;h.Z=e},25708:function(F,h){h.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},47510:function(F,h){const e=c=>`content-manager.${c}`;h.Z=e},51375:function(F,h,e){e.d(h,{_Q:function(){return X.Z},W3:function(){return M},ko:function(){return g},FE:function(){return f},Di:function(){return W},Ex:function(){return he},du:function(){return Q},TA:function(){return _},Ts:function(){return re},Uo:function(){return K},IF:function(){return z},OB:function(){return ue.Z},w8:function(){return oe},kc:function(){return pe}});var c=e(99381),y=e.n(c),M=(s,d,u)=>{if(Array.isArray(s)&&d>=0&&u>=0&&d<=s.length-1&&u<=s.length-1){const o=y()(s),m=o.splice(d,1);return o.splice(u,0,m[0]),o}return s},L=e(59578),A=e.n(L),g=s=>{const d=s.type;return d==="relation"?!A()(s.relationType).includes("morph"):!["json","dynamiczone","richtext","password"].includes(d)&&!!d};const v=(s,d)=>{typeof s=="function"?s(d):s!=null&&(s.current=d)},f=(...s)=>d=>s.forEach(u=>v(u,d));var E=e(33795),S=e.n(E);const b=(s,d)=>Object.keys(s).reduce((u,o)=>{const m=S()(s,[o],{}),{default:r,component:t,type:n,required:i,min:l,repeatable:a}=m;if(r!==void 0&&(u[o]=r),n==="component"){const p=d?.[t]?.attributes??{},O=b(p,d);if(i===!0&&(u[o]=a===!0?[]:O),l&&a===!0&&i){u[o]=[];for(let I=0;I<l;I+=1)u[o].push(O)}}return n==="dynamiczone"&&i===!0&&(u[o]=[]),u},{});var W=b,k=e(9086),H=e.n(k),Q=({layouts:s,metadatas:d,...u})=>{const o=s.list.map(t=>t.name?t.name:t),m=Object.keys(d).reduce((t,n)=>{const i=S()(d,[n],{});let l=i.edit;return l.mainField&&(l={...l,mainField:i.edit.mainField.name}),{...t,[n]:{edit:l,list:H()(i.list,["mainField"])}}},{}),r=s.edit.map(t=>t.map(({name:n,size:i})=>({name:n,size:i})));return{...u,layouts:{edit:r,list:o},metadatas:m}};const J=(s,d)=>s.map(u=>({...u,subject:d}));var _=s=>{const d={create:[{action:"plugin::content-manager.explorer.create",subject:null}],delete:[{action:"plugin::content-manager.explorer.delete",subject:null}],publish:[{action:"plugin::content-manager.explorer.publish",subject:null}],read:[{action:"plugin::content-manager.explorer.read",subject:null}],update:[{action:"plugin::content-manager.explorer.update",subject:null}]};return Object.keys(d).reduce((u,o)=>(u[o]=J(d[o],s),u),{})},$=e(95919),V=e.n($),re=s=>s.split(".").filter(d=>V()(parseInt(d,10))),K=s=>{if(s.length===0)return-1;const d=Math.max.apply(Math,s.map(u=>u.__temp_key__??0));return Number.isNaN(d)?-1:d},z=s=>`/content-manager/${s}`,ue=e(47510),X=e(25708),Z=e(3040),se=e.n(Z),oe=(s,d,u)=>{const o=n=>d.find(i=>i.uid===n),m=Object.assign({},s),r=s[u].uid,t=o(r);return se()(m,[u],{...s[u],...t}),Object.keys(s.components).forEach(n=>{const i=o(n);se()(m,["components",n],{...s.components[n],...i})}),m},D=e(24989),pe=(s,d,u)=>{const o=(m,r)=>Object.keys(m).reduce((t,n)=>{const i=(0,D.UN)(r,n),l=S()(m,n),a=(0,D.k2)(r,[n,"component"]),p=(0,D.k2)(r,[n,"repeatable"]);return i==="dynamiczone"?(t[n]=l.map(O=>o(O,u[O.__component])),t):i==="component"?(p?t[n]=l&&l.map(O=>o(O,u[a])):t[n]=l&&o(l,u[a]),t):(i!=="password"&&(t[n]=l),t)},{});return o(s,d)},le=e(51355),ce=e.n(le),Ee=e(86834),G=e.n(Ee),ie=e(78746),j=e.n(ie),R=e(24346),ee=e(82293);R.kM(R.nK,"defined",function(){return this.test("defined",D.I0.required,s=>s!==void 0)}),R.kM(R.IX,"notEmptyMin",function(s){return this.test("notEmptyMin",D.I0.min,d=>G()(d)?!0:d.length>=s)}),R.kM(R.Z_,"isInferior",function(s,d){return this.test("isInferior",s,function(u){return!u||Number.isNaN(j()(u))?!0:j()(d)>=j()(u)})}),R.kM(R.Z_,"isSuperior",function(s,d){return this.test("isSuperior",s,function(u){return!u||Number.isNaN(j()(u))?!0:j()(u)>=j()(d)})});const de=s=>S()(s,["attributes"],{}),ae=(s,{components:d},u={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1})=>{const o=de(s);return R.Ry().shape(Object.keys(o).reduce((m,r)=>{const t=o[r];if(t.type!=="relation"&&t.type!=="component"&&t.type!=="dynamiczone"){const n=fe(t.type,t,u);m[r]=n}if(t.type==="relation"&&(m[r]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(t.relationType)?R.Ry().nullable():R.IX().nullable()),t.type==="component"){const n=ae(d[t.component],{components:d},{...u,isFromComponent:!0});if(t.repeatable===!0){const{min:l,max:a,required:p}=t;let O=R.Vo(I=>{let P=R.IX().of(n);return l?p?P=P.min(l,D.I0.min):p!==!0&&G()(I)?P=P.nullable():P=P.min(l,D.I0.min):p&&!u.isDraft&&(P=P.min(1,D.I0.required)),a&&(P=P.max(a,D.I0.max)),P});return m[r]=O,m}const i=R.Vo(l=>l!==void 0?t.required===!0&&!u.isDraft?n.defined():n.nullable():t.required===!0?R.Ry().defined():R.Ry().nullable());return m[r]=i,m}if(t.type==="dynamiczone"){let n=R.IX().of(R.Vo(({__component:a})=>ae(d[a],{components:d},{...u,isFromComponent:!0})));const{max:i,min:l}=t;l?t.required?n=n.test("min",D.I0.min,a=>u.isCreatingEntry?a&&a.length>=l:a===void 0?!0:a!==null&&a.length>=l).test("required",D.I0.required,a=>u.isCreatingEntry?a!==null||a!==void 0:a===void 0?!0:a!==null):n=n.notEmptyMin(l):t.required&&!u.isDraft&&(n=n.test("required",D.I0.required,a=>u.isCreatingEntry?a!==null||a!==void 0:a===void 0?!0:a!==null)),i&&(n=n.max(i,D.I0.max)),m[r]=n}return m},{}))},fe=(s,d,u)=>{let o=R.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(s)&&(o=R.Z_()),s==="json"&&(o=R.nK(D.I0.json).test("isJSON",D.I0.json,m=>{if(!m||!m.length)return!0;try{return JSON.parse(m),!0}catch{return!1}}).nullable().test("required",D.I0.required,m=>!(d.required&&(!m||!m.length)))),s==="email"&&(o=o.email(D.I0.email)),["number","integer","float","decimal"].includes(s)&&(o=R.Rx().transform(m=>V()(m)?void 0:m).typeError()),s==="biginteger"&&(o=R.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(s)&&(o=R.hT()),Object.keys(d).forEach(m=>{const r=d[m];if(r||!ce()(r)&&Number.isInteger(Math.floor(r))||r===0)switch(m){case"required":{u.isDraft||(s==="password"&&u.isCreatingEntry&&(o=o.required(D.I0.required)),s!=="password"&&(u.isCreatingEntry?o=o.required(D.I0.required):o=o.test("required",D.I0.required,t=>t===void 0&&!u.isFromComponent?!0:(0,ee.Z)(s)?t===0?!0:!!t:s==="boolean"?t!=null:s==="date"||s==="datetime"?typeof t=="string"?!G()(t):!G()(t?.toString()):!G()(t))));break}case"max":{s==="biginteger"?o=o.isInferior(D.I0.max,r):o=o.max(r,D.I0.max);break}case"maxLength":o=o.max(r,D.I0.maxLength);break;case"min":{s==="biginteger"?o=o.isSuperior(D.I0.min,r):o=o.min(r,D.I0.min);break}case"minLength":{u.isDraft||(o=o.min(r,D.I0.minLength));break}case"regex":o=o.matches(new RegExp(r),{message:D.I0.regex,excludeEmptyString:!d.required});break;case"lowercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(s)&&(o=o.strict().uppercase());break;case"positive":(0,ee.Z)(s)&&(o=o.positive());break;case"negative":(0,ee.Z)(s)&&(o=o.negative());break;default:o=o.nullable()}}),o};var he=ae},82293:function(F,h,e){e.d(h,{Z:function(){return c}});function c(y){return["integer","biginteger","decimal","float","number"].includes(y)}},28315:function(F,h,e){e.d(h,{K:function(){return g}});var c=e(32735),y=e(60216),T=e.n(y),M=e(88994),L=e(87933),A=e(49372),C=e(54504);function g({children:v,...f}){const{color:E}=f.data,{themeColorName:S}=(0,C.k)(E);return c.createElement(M.c.Option,{...f},c.createElement(L.k,{alignItems:"center",gap:2},c.createElement(L.k,{height:2,background:E,borderColor:S==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2}),c.createElement(A.Z,{textColor:"neutral800",ellipsis:!0},v)))}g.propTypes={children:T().node.isRequired,data:T().shape({color:T().string}).isRequired}},8445:function(F,h,e){e.d(h,{R:function(){return g}});var c=e(32735),y=e(60216),T=e.n(y),M=e(88994),L=e(87933),A=e(49372),C=e(54504);function g({children:v,...f}){const{color:E}=f.data,{themeColorName:S}=E?(0,C.k)(E):{};return c.createElement(M.c.SingleValue,{...f},c.createElement(L.k,{alignItems:"center",gap:2},c.createElement(L.k,{height:2,background:E,borderColor:S==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2}),c.createElement(A.Z,{textColor:"neutral800",ellipsis:!0},v)))}g.defaultProps={children:null},g.propTypes={children:T().node,data:T().shape({color:T().string}).isRequired}},61937:function(F,h,e){e.d(h,{$k:function(){return C},FT:function(){return v},Nj:function(){return A},Ot:function(){return L},QM:function(){return T},lv:function(){return g},sN:function(){return y},uL:function(){return f},x4:function(){return M}});var c=e(12301);const y="settings_review-workflows",T="Settings/Review_Workflows/SET_WORKFLOWS",M="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",L="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",A="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",C="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",g={primary600:"Blue",primary200:"Lilac",alternative600:"Violet",alternative200:"Lavender",success600:"Green",success200:"Pale Green",danger500:"Cherry",danger200:"Pink",warning600:"Orange",warning200:"Yellow",secondary600:"Teal",secondary200:"Baby Blue",neutral400:"Gray",neutral0:"White"},v=c.W.colors.primary600,f={STAGE:"stage"}},67350:function(F,h,e){e.d(h,{n:function(){return L}});var c=e(20108),y=e(24989);const T="review-workflows",M="/admin/review-workflows";function L(A){const{get:C}=(0,y.kY)(),g=(0,c.useQueryClient)(),v=[T,A??"default"];async function f({params:b={populate:"stages"}}){try{const{data:{data:W}}=await C(`${M}/workflows/${A??""}`,{params:b});return W}catch{return null}}async function E(){await g.refetchQueries(v)}return{workflows:(0,c.useQuery)(v,f),refetchWorkflow:E}}},54504:function(F,h,e){e.d(h,{k:function(){return T},s:function(){return M}});var c=e(12301),y=e(61937);function T(L){if(!L)return null;const C=Object.entries(c.W.colors).filter(([,g])=>g.toUpperCase()===L.toUpperCase()).reduce((g,[v])=>(y.lv?.[v]&&(g=v),g),null);return C?{themeColorName:C,name:y.lv[C]}:null}function M(){return Object.entries(y.lv).map(([L,A])=>({hex:c.W.colors[L].toUpperCase(),name:A}))}}}]);
@@ -1,4 +1,4 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(Q,S,n){n.r(S),n.d(S,{default:function(){return Qt}});var e=n(32735),s=n(24989),L=n(20108),v=n(33795),O=n.n(v),P={i8:"4.10.2"},C=n(67927),E=n(53038),y=n(15062),G=n(74506),z=n(51968),K=n(88311),ae=n.n(K),Le=n(58107),T=n(8471),Oe=n(60216),r=n.n(Oe),Z=n(67879),m=n(87933),oe=n(71933),V=n(67563),xe=n(50563),M=n(72850),Y=n(41415),se=n(35331);const be=(0,T.ZP)(m.k)`
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(Q,S,n){n.r(S),n.d(S,{default:function(){return Qt}});var e=n(32735),s=n(24989),L=n(20108),v=n(33795),O=n.n(v),P=JSON.parse('{"i8":"4.11.0-alpha.0"}'),C=n(67927),E=n(53038),y=n(15062),G=n(74506),z=n(51968),K=n(88311),ae=n.n(K),Le=n(58107),T=n(8471),Oe=n(60216),r=n.n(Oe),Z=n(67879),m=n(87933),oe=n(71933),V=n(67563),xe=n(50563),M=n(72850),Y=n(41415),se=n(35331);const be=(0,T.ZP)(m.k)`
2
2
  position: fixed;
3
3
  z-index: 4;
4
4
  inset: 0;
@@ -76,4 +76,4 @@
76
76
  :hover {
77
77
  text-decoration: underline;
78
78
  }
79
- `;var vt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:c}=(0,Z.Z)(),{communityEdition:d}=(0,s.L7)(),u=()=>{o(p=>!p)},h=[...gt,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:it.Z,href:d?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(M.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(ht,{"aria-label":c(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:u,ref:t},e.createElement(ee.J,{as:a?se.Z:lt.Z,color:"buttonNeutral0"})),a&&e.createElement(oe.h,null,e.createElement(st.M.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(V.i,{onEscape:u},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(ye,{fontWeight:"bold"},c({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(ve,{as:"a",href:fe.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},c(fe.label))),e.createElement(pe.i,null),mt.map(({href:p,duration:g,label:i},I)=>e.createElement(ft,{as:"a",href:p,target:"_blank",rel:"noreferrer noopener",key:p,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(M.x,{paddingRight:5},e.createElement(f.Z,{textColor:"neutral200",variant:"alpha"},I+1)),e.createElement(M.x,{position:"relative"},e.createElement(yt,{src:dt,alt:""}),e.createElement(Et,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(ee.J,{as:ct.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(f.Z,{fontWeight:"bold"},c(i)),e.createElement(rt.T,null,":"),e.createElement(f.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:p,href:g,icon:i})=>e.createElement(m.k,{gap:3,key:g},e.createElement(ee.J,{as:i,color:"primary600"}),e.createElement(ve,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},c(p)))))))))};const Ct=(0,e.lazy)(()=>Promise.all([n.e(462),n.e(1657),n.e(9703),n.e(994)]).then(n.bind(n,43011))),Tt=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,55129))),Mt=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),St=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,84538))),Ce=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),Pt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),It=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),Te=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,74750))),Rt=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,y.I0)(),o=(0,y.v9)(c=>c.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:ot.e}))},[o])};var At=()=>{Rt();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,C.H9)(),{menu:c}=(0,s.j1)(),{showTutorials:d}=(0,C.um)(),u=(0,e.useMemo)(()=>c.filter(h=>h.Component).map(({to:h,Component:p,exact:g})=>(0,_.ot)(p,h,g)),[c]);return t?e.createElement(s.dO,null):e.createElement(G.DndProvider,{backend:z.PD},e.createElement(at,{sideNav:e.createElement(et,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(E.rs,null,e.createElement(E.AW,{path:"/",component:Tt,exact:!0}),e.createElement(E.AW,{path:"/me",component:It,exact:!0}),e.createElement(E.AW,{path:"/content-manager",component:Ct}),u,e.createElement(E.AW,{path:"/settings/:settingId",component:Te}),e.createElement(E.AW,{path:"/settings",component:Te,exact:!0}),e.createElement(E.AW,{path:"/marketplace"},e.createElement(St,null)),e.createElement(E.AW,{path:"/list-plugins",exact:!0},e.createElement(Mt,null)),e.createElement(E.AW,{path:"/404",component:Ce}),e.createElement(E.AW,{path:"/500",component:Pt}),e.createElement(E.AW,{path:"",component:Ce}))),e.createElement(ze,null),d&&e.createElement(vt,null)))},Lt=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),Ot=n(3040),xt=n.n(Ot);const Me={plugins:null};var bt=(t=Me,a)=>(0,ie.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{xt()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),Dt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(bt,Me,()=>Lt(t)),c=(0,e.useRef)(u=>{o({type:"SET_PLUGIN_READY",pluginId:u})});if(Object.keys(a).some(u=>a[u].isReady===!1)){const u=Object.keys(a).reduce((h,p)=>{const g=a[p].initializer;if(g){const i=a[p].pluginId;h.push(e.createElement(g,{key:i,setPlugin:c.current}))}return h},[]);return e.createElement(e.Fragment,null,u,e.createElement(s.dO,null))}return e.createElement(At,null)},Se=n(17367);const kt=()=>({type:Se.l}),Zt=t=>({type:Se.m,permissions:t}),Pe=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:c}=(0,y.v9)(u=>u.rbacProvider),d=(0,y.I0)();return(0,e.useEffect)(()=>(d(Zt(a)),()=>{d(kt())}),[a,d]),c?e.createElement(s.oL.Provider,{value:{allPermissions:c,refetchPermissions:o}},t):e.createElement(s.dO,null)};Pe.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Bt=Pe,Wt=n(84306),Gt=n(54770),te=n.n(Gt),Ie=(t,a)=>!te().valid(t)||!te().valid(a)?!1:te().lt(t,a);const Re=P.i8,Nt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:ne}=(0,s.tg)(),Ut=async t=>{try{const{data:{tag_name:a}}=await Wt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return Ie(Re,a)&&Nt&&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 Re}},Ft=async()=>{try{const{data:t,headers:a}=await ne("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},jt=async()=>{try{const{data:t,headers:a}=await ne("/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)}},$t=async()=>{try{const{data:{data:{roles:t}}}=await ne("/admin/users/me");return t}catch(t){throw new Error(t)}},Ae=P.i8;var Qt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=s.I8.getUserInfo(),c=O()(o,"username")||(0,_.Pp)(o.firstname,o.lastname),[d,u]=(0,e.useState)(c),[h,p]=(0,e.useState)(null),{showReleaseNotification:g}=(0,C.um)(),[{data:i,status:I},{data:x,isLoading:U},{data:F,status:W,refetch:A,isFetched:j,isFetching:b},{data:R}]=(0,L.useQueries)([{queryKey:"app-infos",queryFn:Ft},{queryKey:"strapi-release",queryFn:()=>Ut(a),enabled:g,initialData:Ae},{queryKey:"admin-users-permission",queryFn:jt,initialData:[]},{queryKey:"user-roles",queryFn:$t}]),D=Ie(Ae,x);return(0,e.useEffect)(()=>{R&&R.find(({code:$})=>$==="strapi-super-admin")&&i?.autoReload&&t(!0)},[R,i,t]),(0,e.useEffect)(()=>{(async()=>{const $=await(0,_.Qy)(o);p($)})()},[o]),U||(b&&j||I==="loading"||W==="loading")?e.createElement(s.dO,null):I==="error"?e.createElement("div",null,"error..."):e.createElement(s.iq,{...i,userId:h,latestStrapiReleaseTag:x,setUserDisplayName:u,shouldUpdateStrapi:D,userDisplayName:d},e.createElement(Bt,{permissions:F,refetchPermissions:A},e.createElement(Dt,null)))}},78024:function(Q,S,n){var e=n(32735),s=n(60216),L=n.n(s),v=n(24989),O=n(72850),P=n(23678);const C=({type:E,...y})=>e.createElement(O.x,{width:(0,v.Q1)(2),height:"100%",background:E===P.VM?"neutral300":"primary500",hasRadius:!0,...y});C.defaultProps={type:P.VM},C.propTypes={type:L().oneOf([P.lW,P.hx,P.VM])},S.Z=C},14317:function(Q,S,n){var e=n(32735),s=n(60216),L=n.n(s),v=n(24989),O=n(87933),P=n(99140),C=n(49372),E=n(66456),y=n(23678);const G=({type:z,number:K})=>z===y.hx?e.createElement(O.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(P.J,{as:E.Z,"aria-hidden":!0,width:(0,v.Q1)(16),color:"neutral0"})):z===y.lW?e.createElement(O.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(C.Z,{fontWeight:"semiBold",textColor:"neutral0"},K)):e.createElement(O.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(C.Z,{fontWeight:"semiBold",textColor:"neutral600"},K));G.defaultProps={number:void 0,type:y.VM},G.propTypes={number:L().number,type:L().oneOf([y.lW,y.hx,y.VM])},S.Z=G},23678:function(Q,S,n){n.d(S,{VM:function(){return L},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",L="isNotDone"},58107:function(Q,S){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"}}};S.Z=n}}]);
79
+ `;var vt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:c}=(0,Z.Z)(),{communityEdition:d}=(0,s.L7)(),u=()=>{o(p=>!p)},h=[...gt,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:it.Z,href:d?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(M.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(ht,{"aria-label":c(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:u,ref:t},e.createElement(ee.J,{as:a?se.Z:lt.Z,color:"buttonNeutral0"})),a&&e.createElement(oe.h,null,e.createElement(st.M.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(V.i,{onEscape:u},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(ye,{fontWeight:"bold"},c({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(ve,{as:"a",href:fe.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},c(fe.label))),e.createElement(pe.i,null),mt.map(({href:p,duration:g,label:i},I)=>e.createElement(ft,{as:"a",href:p,target:"_blank",rel:"noreferrer noopener",key:p,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(M.x,{paddingRight:5},e.createElement(f.Z,{textColor:"neutral200",variant:"alpha"},I+1)),e.createElement(M.x,{position:"relative"},e.createElement(yt,{src:dt,alt:""}),e.createElement(Et,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(ee.J,{as:ct.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(f.Z,{fontWeight:"bold"},c(i)),e.createElement(rt.T,null,":"),e.createElement(f.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:p,href:g,icon:i})=>e.createElement(m.k,{gap:3,key:g},e.createElement(ee.J,{as:i,color:"primary600"}),e.createElement(ve,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},c(p)))))))))};const Ct=(0,e.lazy)(()=>Promise.all([n.e(462),n.e(1657),n.e(6970),n.e(994)]).then(n.bind(n,65765))),Tt=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,55129))),Mt=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),St=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,84538))),Ce=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),Pt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),It=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),Te=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,74750))),Rt=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,y.I0)(),o=(0,y.v9)(c=>c.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:ot.e}))},[o])};var At=()=>{Rt();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,C.H9)(),{menu:c}=(0,s.j1)(),{showTutorials:d}=(0,C.um)(),u=(0,e.useMemo)(()=>c.filter(h=>h.Component).map(({to:h,Component:p,exact:g})=>(0,_.ot)(p,h,g)),[c]);return t?e.createElement(s.dO,null):e.createElement(G.DndProvider,{backend:z.PD},e.createElement(at,{sideNav:e.createElement(et,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(E.rs,null,e.createElement(E.AW,{path:"/",component:Tt,exact:!0}),e.createElement(E.AW,{path:"/me",component:It,exact:!0}),e.createElement(E.AW,{path:"/content-manager",component:Ct}),u,e.createElement(E.AW,{path:"/settings/:settingId",component:Te}),e.createElement(E.AW,{path:"/settings",component:Te,exact:!0}),e.createElement(E.AW,{path:"/marketplace"},e.createElement(St,null)),e.createElement(E.AW,{path:"/list-plugins",exact:!0},e.createElement(Mt,null)),e.createElement(E.AW,{path:"/404",component:Ce}),e.createElement(E.AW,{path:"/500",component:Pt}),e.createElement(E.AW,{path:"",component:Ce}))),e.createElement(ze,null),d&&e.createElement(vt,null)))},Lt=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),Ot=n(3040),xt=n.n(Ot);const Me={plugins:null};var bt=(t=Me,a)=>(0,ie.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{xt()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),Dt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(bt,Me,()=>Lt(t)),c=(0,e.useRef)(u=>{o({type:"SET_PLUGIN_READY",pluginId:u})});if(Object.keys(a).some(u=>a[u].isReady===!1)){const u=Object.keys(a).reduce((h,p)=>{const g=a[p].initializer;if(g){const i=a[p].pluginId;h.push(e.createElement(g,{key:i,setPlugin:c.current}))}return h},[]);return e.createElement(e.Fragment,null,u,e.createElement(s.dO,null))}return e.createElement(At,null)},Se=n(17367);const kt=()=>({type:Se.l}),Zt=t=>({type:Se.m,permissions:t}),Pe=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:c}=(0,y.v9)(u=>u.rbacProvider),d=(0,y.I0)();return(0,e.useEffect)(()=>(d(Zt(a)),()=>{d(kt())}),[a,d]),c?e.createElement(s.oL.Provider,{value:{allPermissions:c,refetchPermissions:o}},t):e.createElement(s.dO,null)};Pe.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Bt=Pe,Wt=n(84306),Gt=n(54770),te=n.n(Gt),Ie=(t,a)=>!te().valid(t)||!te().valid(a)?!1:te().lt(t,a);const Re=P.i8,Nt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:ne}=(0,s.tg)(),Ut=async t=>{try{const{data:{tag_name:a}}=await Wt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return Ie(Re,a)&&Nt&&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 Re}},Ft=async()=>{try{const{data:t,headers:a}=await ne("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},jt=async()=>{try{const{data:t,headers:a}=await ne("/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)}},$t=async()=>{try{const{data:{data:{roles:t}}}=await ne("/admin/users/me");return t}catch(t){throw new Error(t)}},Ae=P.i8;var Qt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=s.I8.getUserInfo(),c=O()(o,"username")||(0,_.Pp)(o.firstname,o.lastname),[d,u]=(0,e.useState)(c),[h,p]=(0,e.useState)(null),{showReleaseNotification:g}=(0,C.um)(),[{data:i,status:I},{data:x,isLoading:U},{data:F,status:W,refetch:A,isFetched:j,isFetching:b},{data:R}]=(0,L.useQueries)([{queryKey:"app-infos",queryFn:Ft},{queryKey:"strapi-release",queryFn:()=>Ut(a),enabled:g,initialData:Ae},{queryKey:"admin-users-permission",queryFn:jt,initialData:[]},{queryKey:"user-roles",queryFn:$t}]),D=Ie(Ae,x);return(0,e.useEffect)(()=>{R&&R.find(({code:$})=>$==="strapi-super-admin")&&i?.autoReload&&t(!0)},[R,i,t]),(0,e.useEffect)(()=>{(async()=>{const $=await(0,_.Qy)(o);p($)})()},[o]),U||(b&&j||I==="loading"||W==="loading")?e.createElement(s.dO,null):I==="error"?e.createElement("div",null,"error..."):e.createElement(s.iq,{...i,userId:h,latestStrapiReleaseTag:x,setUserDisplayName:u,shouldUpdateStrapi:D,userDisplayName:d},e.createElement(Bt,{permissions:F,refetchPermissions:A},e.createElement(Dt,null)))}},78024:function(Q,S,n){var e=n(32735),s=n(60216),L=n.n(s),v=n(24989),O=n(72850),P=n(23678);const C=({type:E,...y})=>e.createElement(O.x,{width:(0,v.Q1)(2),height:"100%",background:E===P.VM?"neutral300":"primary500",hasRadius:!0,...y});C.defaultProps={type:P.VM},C.propTypes={type:L().oneOf([P.lW,P.hx,P.VM])},S.Z=C},14317:function(Q,S,n){var e=n(32735),s=n(60216),L=n.n(s),v=n(24989),O=n(87933),P=n(99140),C=n(49372),E=n(66456),y=n(23678);const G=({type:z,number:K})=>z===y.hx?e.createElement(O.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(P.J,{as:E.Z,"aria-hidden":!0,width:(0,v.Q1)(16),color:"neutral0"})):z===y.lW?e.createElement(O.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(C.Z,{fontWeight:"semiBold",textColor:"neutral0"},K)):e.createElement(O.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,v.Q1)(30),height:(0,v.Q1)(30),justifyContent:"center"},e.createElement(C.Z,{fontWeight:"semiBold",textColor:"neutral600"},K));G.defaultProps={number:void 0,type:y.VM},G.propTypes={number:L().number,type:L().oneOf([y.lW,y.hx,y.VM])},S.Z=G},23678:function(Q,S,n){n.d(S,{VM:function(){return L},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",L="isNotDone"},58107:function(Q,S){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"}}};S.Z=n}}]);