@strapi/admin 4.12.2 → 4.13.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumns.js +2 -0
  2. package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +8 -1
  3. package/admin/src/content-manager/components/Filter/CustomInputs/AdminUsersFilter.js +42 -0
  4. package/admin/src/content-manager/components/{AttributeFilter/Filters.js → Filter/Filter.js} +5 -7
  5. package/admin/src/content-manager/components/Filter/index.js +1 -0
  6. package/admin/src/content-manager/hooks/useAllowedAttributes.js +47 -0
  7. package/admin/src/content-manager/hooks/useSyncRbac/index.js +10 -2
  8. package/admin/src/content-manager/pages/EditView/Information/index.js +9 -8
  9. package/admin/src/content-manager/pages/EditViewLayoutManager/index.js +2 -2
  10. package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +40 -7
  11. package/admin/src/content-manager/pages/ListSettingsView/index.js +6 -2
  12. package/admin/src/content-manager/pages/ListView/components/FieldPicker/index.js +67 -69
  13. package/admin/src/content-manager/pages/ListView/components/ViewSettingsMenu/index.js +74 -0
  14. package/admin/src/content-manager/pages/ListView/index.js +254 -68
  15. package/admin/src/content-manager/pages/ListViewLayoutManager/index.js +2 -2
  16. package/admin/src/content-manager/utils/getDisplayName.js +33 -0
  17. package/admin/src/content-manager/utils/index.js +1 -0
  18. package/admin/src/translations/en.json +3 -1
  19. package/admin/src/translations/zh-Hans.json +918 -902
  20. package/build/1227.32fe57ce.chunk.js +1 -0
  21. package/build/4174.fa8f9954.chunk.js +1 -0
  22. package/build/4546.ff09eeda.chunk.js +1 -0
  23. package/build/4724.baf7c5b1.chunk.js +6 -0
  24. package/build/6158.c3c13c20.chunk.js +1 -0
  25. package/build/78.dcc6df5c.chunk.js +1 -0
  26. package/build/{9806.3392505e.chunk.js → 9806.5d5a0e8d.chunk.js} +16 -16
  27. package/build/{Admin-authenticatedApp.3c585a0d.chunk.js → Admin-authenticatedApp.53a24d28.chunk.js} +2 -2
  28. package/build/audit-logs-settings-page.0f73ccf8.chunk.js +1 -0
  29. package/build/content-manager.7f96a2f1.chunk.js +1097 -0
  30. package/build/{content-type-builder.40534de5.chunk.js → content-type-builder.cd999f6e.chunk.js} +2 -2
  31. package/build/{en-json.08c05fcf.chunk.js → en-json.4f06fe03.chunk.js} +1 -1
  32. package/build/i18n-translation-ru-json.a3dbc125.chunk.js +1 -0
  33. package/build/index.html +1 -1
  34. package/build/main.40b94779.js +2859 -0
  35. package/build/{runtime~main.2902859a.js → runtime~main.b16af570.js} +2 -2
  36. package/build/users-permissions-translation-zh-Hans-json.8d82c809.chunk.js +1 -0
  37. package/build/{users-roles-settings-page.3f9f063e.chunk.js → users-roles-settings-page.9d9a1eff.chunk.js} +1 -1
  38. package/build/zh-Hans-json.97efd015.chunk.js +1 -0
  39. package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/AssigneeFilter.js +42 -0
  40. package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/StageFilter.js +70 -0
  41. package/ee/admin/content-manager/components/Filter/CustomInputs/ReviewWorkflows/constants.js +71 -0
  42. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +9 -217
  43. package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/AssigneeSelect.js +149 -0
  44. package/ee/admin/content-manager/pages/EditView/InformationBox/components/AssigneeSelect/index.js +1 -0
  45. package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/StageSelect.js +241 -0
  46. package/ee/admin/content-manager/pages/EditView/InformationBox/components/StageSelect/index.js +1 -0
  47. package/ee/admin/content-manager/pages/EditView/InformationBox/constants.js +2 -0
  48. package/ee/admin/content-manager/pages/ListSettingsView/constants.js +7 -0
  49. package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/ReviewWorkflowsAssigneeEE.js +51 -0
  50. package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/constants.js +44 -17
  51. package/ee/admin/content-manager/pages/ListView/ReviewWorkflowsColumn/index.js +1 -0
  52. package/ee/server/constants/workflows.js +1 -0
  53. package/ee/server/controllers/index.js +1 -0
  54. package/ee/server/controllers/workflows/assignees/index.js +44 -0
  55. package/ee/server/routes/review-workflows.js +17 -0
  56. package/ee/server/services/index.js +1 -0
  57. package/ee/server/services/review-workflows/assignees.js +54 -0
  58. package/ee/server/services/review-workflows/metrics/index.js +5 -0
  59. package/ee/server/services/review-workflows/review-workflows.js +20 -11
  60. package/ee/server/validation/review-workflows.js +8 -0
  61. package/package.json +10 -10
  62. package/server/services/permission/permissions-manager/sanitize.js +12 -0
  63. package/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +0 -42
  64. package/admin/src/content-manager/components/AttributeFilter/index.js +0 -40
  65. package/build/3984.dda474f7.chunk.js +0 -1
  66. package/build/4546.cfafae68.chunk.js +0 -1
  67. package/build/5483.6dd2e776.chunk.js +0 -6
  68. package/build/6158.c974fd83.chunk.js +0 -1
  69. package/build/audit-logs-settings-page.4b422831.chunk.js +0 -1
  70. package/build/content-manager.2af15f57.chunk.js +0 -1099
  71. package/build/i18n-translation-ru-json.401bc498.chunk.js +0 -1
  72. package/build/main.f13fc96c.js +0 -2856
  73. package/build/users-permissions-translation-zh-Hans-json.6ab714ee.chunk.js +0 -1
  74. package/build/zh-Hans-json.937b395b.chunk.js +0 -1
@@ -56,6 +56,7 @@ module.exports = ({ action, ability, model }) => {
56
56
  const sanitizeFilters = pipeAsync(
57
57
  traverse.traverseQueryFilters(allowedFields(permittedFields), { schema }),
58
58
  traverse.traverseQueryFilters(omitDisallowedAdminUserFields, { schema }),
59
+ traverse.traverseQueryFilters(omitHiddenFields, { schema }),
59
60
  traverse.traverseQueryFilters(removePassword, { schema }),
60
61
  traverse.traverseQueryFilters(
61
62
  ({ key, value }, { remove }) => {
@@ -70,6 +71,7 @@ module.exports = ({ action, ability, model }) => {
70
71
  const sanitizeSort = pipeAsync(
71
72
  traverse.traverseQuerySort(allowedFields(permittedFields), { schema }),
72
73
  traverse.traverseQuerySort(omitDisallowedAdminUserFields, { schema }),
74
+ traverse.traverseQuerySort(omitHiddenFields, { schema }),
73
75
  traverse.traverseQuerySort(removePassword, { schema }),
74
76
  traverse.traverseQuerySort(
75
77
  ({ key, attribute, value }, { remove }) => {
@@ -84,11 +86,13 @@ module.exports = ({ action, ability, model }) => {
84
86
  const sanitizePopulate = pipeAsync(
85
87
  traverse.traverseQueryPopulate(allowedFields(permittedFields), { schema }),
86
88
  traverse.traverseQueryPopulate(omitDisallowedAdminUserFields, { schema }),
89
+ traverse.traverseQueryPopulate(omitHiddenFields, { schema }),
87
90
  traverse.traverseQueryPopulate(removePassword, { schema })
88
91
  );
89
92
 
90
93
  const sanitizeFields = pipeAsync(
91
94
  traverse.traverseQueryFields(allowedFields(permittedFields), { schema }),
95
+ traverse.traverseQueryFields(omitHiddenFields, { schema }),
92
96
  traverse.traverseQueryFields(removePassword, { schema })
93
97
  );
94
98
 
@@ -256,13 +260,21 @@ module.exports = ({ action, ability, model }) => {
256
260
  };
257
261
 
258
262
  const getQueryFields = (fields = []) => {
263
+ const nonVisibleAttributes = getNonVisibleAttributes(schema);
264
+ const writableAttributes = getWritableAttributes(schema);
265
+
266
+ const nonVisibleWritableAttributes = intersection(nonVisibleAttributes, writableAttributes);
267
+
259
268
  return uniq([
260
269
  ...fields,
261
270
  ...STATIC_FIELDS,
262
271
  ...COMPONENT_FIELDS,
272
+ ...nonVisibleWritableAttributes,
263
273
  CREATED_AT_ATTRIBUTE,
264
274
  UPDATED_AT_ATTRIBUTE,
265
275
  PUBLISHED_AT_ATTRIBUTE,
276
+ CREATED_BY_ATTRIBUTE,
277
+ UPDATED_BY_ATTRIBUTE,
266
278
  ]);
267
279
  };
268
280
 
@@ -1,42 +0,0 @@
1
- import { findMatchingPermissions, useRBACProvider } from '@strapi/helper-plugin';
2
- import get from 'lodash/get';
3
-
4
- const NOT_ALLOWED_FILTERS = ['json', 'component', 'media', 'richtext', 'dynamiczone', 'password'];
5
- const TIMESTAMPS = ['createdAt', 'updatedAt'];
6
-
7
- const useAllowedAttributes = (contentType, slug) => {
8
- const { allPermissions } = useRBACProvider();
9
-
10
- const readPermissionsForSlug = findMatchingPermissions(allPermissions, [
11
- {
12
- action: 'plugin::content-manager.explorer.read',
13
- subject: slug,
14
- },
15
- ]);
16
-
17
- const readPermissionForAttr = get(readPermissionsForSlug, ['0', 'properties', 'fields'], []);
18
- const attributesArray = Object.keys(get(contentType, ['attributes']), {});
19
- const allowedAttributes = attributesArray
20
- .filter((attr) => {
21
- const current = get(contentType, ['attributes', attr], {});
22
-
23
- if (!current.type) {
24
- return false;
25
- }
26
-
27
- if (NOT_ALLOWED_FILTERS.includes(current.type)) {
28
- return false;
29
- }
30
-
31
- if (!readPermissionForAttr.includes(attr) && attr !== 'id' && !TIMESTAMPS.includes(attr)) {
32
- return false;
33
- }
34
-
35
- return true;
36
- })
37
- .sort();
38
-
39
- return allowedAttributes;
40
- };
41
-
42
- export default useAllowedAttributes;
@@ -1,40 +0,0 @@
1
- import React from 'react';
2
-
3
- import PropTypes from 'prop-types';
4
- import { useIntl } from 'react-intl';
5
-
6
- import Filters from './Filters';
7
- import useAllowedAttributes from './hooks/useAllowedAttributes';
8
-
9
- const AttributeFilter = ({ contentType, slug, metadatas }) => {
10
- const { formatMessage } = useIntl();
11
- const allowedAttributes = useAllowedAttributes(contentType, slug);
12
- const displayedFilters = allowedAttributes.map((name) => {
13
- const attribute = contentType.attributes[name];
14
- const { type, enum: options } = attribute;
15
-
16
- const trackedEvent = {
17
- name: 'didFilterEntries',
18
- properties: { useRelation: type === 'relation' },
19
- };
20
-
21
- const { mainField, label } = metadatas[name].list;
22
-
23
- return {
24
- name,
25
- metadatas: { label: formatMessage({ id: label, defaultMessage: label }) },
26
- fieldSchema: { type, options, mainField },
27
- trackedEvent,
28
- };
29
- });
30
-
31
- return <Filters displayedFilters={displayedFilters} />;
32
- };
33
-
34
- AttributeFilter.propTypes = {
35
- contentType: PropTypes.object.isRequired,
36
- metadatas: PropTypes.object.isRequired,
37
- slug: PropTypes.string.isRequired,
38
- };
39
-
40
- export default AttributeFilter;
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3984],{33984:function(W,l,t){t.r(l),t.d(l,{ReviewWorkflowsStageEE:function(){return c}});var n=t(32735),s=t(87933),E=t(72850),a=t(49372),e=t(19565),u=t(60216),r=t.n(u),o=t(2121),i=t(68886);function c({color:O,name:T}){const{themeColorName:f}=(0,i.k)(O);return n.createElement(s.k,{alignItems:"center",gap:2,maxWidth:(0,e.Q1)(300)},n.createElement(E.x,{height:2,background:O,borderColor:f==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2}),n.createElement(a.Z,{fontWeight:"regular",textColor:"neutral700",ellipsis:!0},T))}c.defaultProps={color:o.FT},c.propTypes={color:r().string,name:r().string.isRequired}},2121:function(W,l,t){t.d(l,{$k:function(){return o},Ef:function(){return f},FT:function(){return O},Nj:function(){return r},Ot:function(){return u},VS:function(){return i},_X:function(){return A},gu:function(){return E},lv:function(){return c},qZ:function(){return a},sN:function(){return s},uL:function(){return T},x4:function(){return e}});var n=t(12301);const s="settings_review-workflows",E="Settings/Review_Workflows/RESET_WORKFLOW",a="Settings/Review_Workflows/SET_WORKFLOW",e="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",u="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",r="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",o="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",i="Settings/Review_Workflows/WORKFLOW_UPDATE",c={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"},O=n.W.colors.primary600,T={STAGE:"stage"},f="numberOfWorkflows",A="stagesPerWorkflow"},68886:function(W,l,t){t.d(l,{k:function(){return E},s:function(){return a}});var n=t(12301),s=t(2121);function E(e){if(!e)return null;const r=Object.entries(n.W.colors).filter(([,o])=>o.toUpperCase()===e.toUpperCase()).reduce((o,[i])=>(s.lv?.[i]&&(o=i),o),null);return r?{themeColorName:r,name:s.lv[r]}:null}function a(){return Object.entries(s.lv).map(([e,u])=>({hex:n.W.colors[e].toUpperCase(),name:u}))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4546],{17379:function(W,v,n){n.d(v,{r:function(){return C}});var m=n(32735),E=n(72850),b=n(60216),I=n.n(b),K=n(74506);function x(M,O,p){if(!M||!O)return{display:"none"};const{x:A,y:U}=p;return{transform:`translate(${A}px, ${U}px)`}}function C({renderItem:M}){const{itemType:O,isDragging:p,item:A,initialOffset:U,currentOffset:Z,mouseOffset:Y}=(0,K.useDragLayer)(L=>({item:L.getItem(),itemType:L.getItemType(),initialOffset:L.getInitialSourceClientOffset(),currentOffset:L.getSourceClientOffset(),isDragging:L.isDragging(),mouseOffset:L.getClientOffset()}));return p?m.createElement(E.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},m.createElement(E.x,{style:x(U,Z,Y)},M({type:O,item:A}))):null}C.propTypes={renderItem:I().func.isRequired}},75430:function(W,v,n){var m=n(32735);const E=(0,m.createContext)();var b=null},69242:function(W,v,n){n.d(v,{PL:function(){return K},Y9:function(){return x.Y},zE:function(){return ae},Ky:function(){return X},fi:function(){return re},zH:function(){return de},r5:function(){return o}});var m=n(32735),E=n(15062),b=n(53634),K=()=>{const e=(0,E.v9)(b.Z),s=(0,m.useCallback)(t=>e?.components?.[t]??{},[e]);return{...e,getComponentLayout:s}},x=n(77622),C=n(19565),M=n(84306),O=n(20716),p=n(97889);const A={error:null,isLoading:!0,layout:{},layouts:{}};var Z=(e,s)=>(0,p.ZP)(e,t=>{switch(s.type){case"GET_DATA":{t.isLoading=!0,t.error=null,t.layout={};break}case"GET_DATA_SUCCEEDED":{const i=s.data.contentType.uid;t.layout=s.data,t.layouts[i]=s.data,t.isLoading=!1;break}case"GET_DATA_ERROR":{t.isLoading=!1,t.error=s.error;break}case"SET_LAYOUT_FROM_STATE":{t.error=null,t.layout=e.layouts[s.uid];break}case"UPDATE_LAYOUT":{const i=e.layout;t.layout={...i,contentType:{uid:i.contentType.uid,...s.newLayout.contentType}},t.layouts[i.contentType.uid]={...i,contentType:{uid:i.contentType.uid,...s.newLayout.contentType}};break}default:return t}}),Y=n(99381),L=n.n(Y),q=n(33795),P=n.n(q),oe=n(3040),S=n.n(oe),_=n(69997);const Q=(e,s)=>s.find(t=>t.uid===e),ie=(e,s)=>{const t=ee(e,s),i=k(t.contentType,s),f=te(t.contentType,t.components);return S()(t,["contentType","layouts","edit"],i),S()(t,["contentType","layouts","list"],f),Object.keys(t.components).forEach(l=>{const g=k(t.components[l],s);S()(t,["components",l,"layouts","edit"],g)}),t},ee=(e,s)=>{const t=(0,_.w8)(L()(e),s,"contentType"),{components:i,contentType:f}=t,l=g=>Object.keys(g.metadatas).reduce((h,R)=>{const N=P()(g,["attributes",R],{});let F=g.metadatas[R];if(N.type==="relation"){const ye=Q(N.targetModel,s),j=F.edit.mainField,G={name:j,schema:P()(ye,["attributes",j])};F={list:{...F.list,mainField:G},edit:{...F.edit,mainField:G}}}return h[R]=F,h},{});return S()(t,["contentType","metadatas"],l(f)),Object.keys(i).forEach(g=>{const h=i[g],R=l(h);S()(t,["components",g,"metadatas"],R)}),t},k=(e,s)=>e.layouts.edit.reduce((t,i)=>{const f=i.map(l=>{const g=P()(e,["attributes",l.name],{}),h={...l,fieldSchema:g,metadatas:P()(e,["metadatas",l.name,"edit"],{})};if(g.type==="relation"){const N=Q(g.targetModel,s).pluginOptions||{};S()(h,"targetModelPluginOptions",N),S()(h,"queryInfos",{shouldDisplayRelationLink:z(e,l.name,s)})}return h});return t.push(f),t},[]),te=(e,s)=>e.layouts.list.reduce((i,f)=>{const l=P()(e,["attributes",f],{}),g=P()(e,["metadatas",f,"list"],{}),h=l.type;if(h==="relation")return i.push({key:`__${f}_key__`,name:f,fieldSchema:l,metadatas:g}),i;if(h==="component"){const R=s[l.component],N=R.settings.mainField,F=R.attributes[N];return i.push({key:`__${f}_key__`,name:f,fieldSchema:l,metadatas:{...g,mainField:{...F,name:N}}}),i}return i.push({key:`__${f}_key__`,name:f,fieldSchema:l,metadatas:g}),i},[]),z=(e,s,t)=>{const i=P()(e,["attributes",s,"targetModel"],"");return B(t).includes(i)},B=e=>e.filter(s=>s.isDisplayed).map(({uid:s})=>s);var V=ie,ae=e=>{const[{error:s,isLoading:t,layout:i,layouts:f},l]=(0,m.useReducer)(Z,A),g=(0,m.useMemo)(O.Vo,[]),{schemas:h}=(0,E.v9)(j=>g(j),E.wU),R=(0,m.useRef)(!0),{get:N}=(0,C.kY)(),F=(0,m.useCallback)(async(j,G)=>{if(f[j]){l({type:"SET_LAYOUT_FROM_STATE",uid:j});return}l({type:"GET_DATA"});try{const{data:{data:se}}=await N(`/content-manager/content-types/${j}/configuration`,{cancelToken:G.token});l({type:"GET_DATA_SUCCEEDED",data:V(se,h)})}catch(se){if(M.default.isCancel(se))return;R.current&&console.error(se),R.current&&l({type:"GET_DATA_ERROR",error:se})}},[f,h,N]);(0,m.useEffect)(()=>()=>{R.current=!1},[]),(0,m.useEffect)(()=>{const G=M.default.CancelToken.source();return F(e,G),()=>{G.cancel("Operation canceled by the user.")}},[e,F]);const ye=(0,m.useCallback)(j=>{l({type:"UPDATE_LAYOUT",newLayout:V(j,h)})},[h]);return{error:s,isLoading:t,layout:i,updateLayout:ye}},ge=e=>e["content-manager_app"].collectionTypeLinks,ce=n(85973),T=n.n(ce),H=n(33348);const ue=(e,s)=>Object.keys(e).reduce((t,i)=>{const f=e[i],l=P()(s,[i],f);return T()(f)?{...t,[i]:ue(f,l)}:(t[i]=l,t)},{});var le=(e,s,t)=>{const i=e.find(({to:F})=>F.includes(s));if(!i)return"/";const{to:f,search:l}=i,g=(0,H.parse)(l),h=(0,H.parse)(t.substring(1)),R=ue(g,h);return`${f}?${(0,H.stringify)(R,{encode:!1})}`},X=e=>{const[{rawQuery:s}]=(0,C.Kx)(),t=(0,E.v9)(ge);return le(t,e,s)},Te=n(15655),$=n(53038),re=()=>{const{search:e}=(0,$.TH)(),s=e?(0,H.parse)(e.substring(1)):{};return s.plugins?(0,H.stringify)({plugins:s.plugins},{encode:!1}):""};const de=e=>{const s=(0,m.useRef)();return(0,m.useEffect)(()=>{s.current=e},[e]),s.current};var J=n(85149);const fe=(e,s,t)=>({type:J.m,permissions:e,__meta__:{plugins:s,containerName:t}}),me=()=>({type:J.Q}),r=e=>e["content-manager_rbacManager"].permissions,u=e=>e.rbacProvider.collectionTypesRelatedPermissions;var o=(e,s,t="listView")=>{const i=(0,E.v9)(u),f=(0,E.v9)(r),l=(0,E.I0)(),g=i[s];return(0,m.useEffect)(()=>g?(l(fe(g,e?e.plugins:null,t)),()=>{l(me())}):()=>{},[g,l,e,t]),f},d=n(75430);const y=()=>useContext(WysiwygContext);var c=null},77622:function(W,v,n){n.d(v,{Y:function(){return K}});var m=n(32735),E=n(74506),b=n.n(E),I=n(15655);const K=(x,{type:C="STRAPI_DND",index:M,item:O={},onStart:p,onEnd:A,onGrabItem:U,onDropItem:Z,onCancel:Y,onMoveItem:L,dropSensitivity:q="regular"})=>{const P=(0,m.useRef)(null),[{handlerId:oe},S]=(0,E.useDrop)({accept:C,collect(k){return{handlerId:k.getHandlerId()}},hover(k,te){if(!P.current)return;const z=k.index,B=M;if(z!==B){if(q==="regular"){const V=P.current.getBoundingClientRect(),ne=(V.bottom-V.top)/2,w=te.getClientOffset().y-V.top;if(z<B&&w<ne||z>B&&w>ne)return}L(B,z),k.index=B}}}),[{isDragging:_},Q,ie]=(0,E.useDrag)({type:C,item(){p&&p();const{width:k}=P.current?.getBoundingClientRect()??{};return{index:M,width:k,...O}},end(){A&&A()},canDrag:x,isDragging:O.id?k=>O.id===k.getItem().id:void 0,collect:k=>({isDragging:k.isDragging()})}),ee=(0,I.A)(x,M,{onGrabItem:U,onDropItem:Z,onCancel:Y,onMoveItem:L});return[{handlerId:oe,isDragging:_,handleKeyDown:ee},P,S,Q,ie]}},15655:function(W,v,n){n.d(v,{A:function(){return E}});var m=n(32735);const E=(b,I,{onCancel:K,onDropItem:x,onGrabItem:C,onMoveItem:M})=>{const[O,p]=(0,m.useState)(!1),A=L=>{O&&(L==="UP"?M(I-1,I):L==="DOWN"&&M(I+1,I))},U=()=>{O?(x&&x(I),p(!1)):(C&&C(I),p(!0))},Z=()=>{O&&(p(!1),K&&K(I))};return L=>{if(b&&!(L.key==="Tab"&&!O))switch(L.preventDefault(),L.key){case" ":case"Enter":U();break;case"Escape":Z();break;case"ArrowDown":case"ArrowRight":A("DOWN");break;case"ArrowUp":case"ArrowLeft":A("UP");break;default:}}}},20716:function(W,v,n){n.d(v,{Jg:function(){return M},KQ:function(){return x},Vo:function(){return C},Yg:function(){return b}});var m=n(98178),E=n(60371);const b=()=>p=>p["content-manager_app"]||E.E,I=()=>createSelector(b(),p=>p),K=()=>createSelector(b(),p=>p.models),x=()=>(0,m.P1)(b(),p=>({collectionTypeLinks:p.collectionTypeLinks,singleTypeLinks:p.singleTypeLinks})),C=()=>(0,m.P1)(b(),({components:p,models:A})=>({schemas:[...p,...A]})),M=(0,m.P1)(b(),p=>p.fieldSizes);var O=null},53634:function(W,v){const n=m=>m["content-manager_editViewLayoutManager"].currentLayout;v.Z=n},24381:function(W,v){v.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},7921:function(W,v){const n=m=>`content-manager.${m}`;v.Z=n},69997:function(W,v,n){n.d(v,{_Q:function(){return B.Z},W3:function(){return I},ko:function(){return x},FE:function(){return M},Di:function(){return U},Ex:function(){return me},du:function(){return q},TA:function(){return S},Ts:function(){return ee},Uo:function(){return te},OB:function(){return z.Z},w8:function(){return ce},kc:function(){return ue}});var m=n(99381),E=n.n(m),I=(r,u,a)=>{if(Array.isArray(r)&&u>=0&&a>=0&&u<=r.length-1&&a<=r.length-1){const o=E()(r),d=o.splice(u,1);return o.splice(a,0,d[0]),o}return r},x=r=>{const{type:u}=r;return u==="relation"?!(r?.relationType??"").toLowerCase().includes("morph"):!["json","dynamiczone","richtext","password"].includes(u)&&!!u};const C=(r,u)=>{typeof r=="function"?r(u):r!=null&&(r.current=u)},M=(...r)=>u=>r.forEach(a=>C(a,u));var O=n(33795),p=n.n(O);const A=(r,u)=>Object.keys(r).reduce((a,o)=>{const d=p()(r,[o],{}),{default:y,component:c,type:e,required:s,min:t,repeatable:i}=d;if(y!==void 0&&(a[o]=y),e==="component"){const f=u?.[c]?.attributes??{},l=A(f,u);if(s===!0&&(a[o]=i===!0?[]:l),t&&i===!0&&s){a[o]=[];for(let g=0;g<t;g+=1)a[o].push(l)}}return e==="dynamiczone"&&s===!0&&(a[o]=[]),a},{});var U=A,Z=n(9086),Y=n.n(Z),q=({layouts:r,metadatas:u,...a})=>{const o=r.list.map(c=>c.name?c.name:c),d=Object.keys(u).reduce((c,e)=>{const s=p()(u,[e],{});let t=s.edit;return t.mainField&&(t={...t,mainField:s.edit.mainField.name}),{...c,[e]:{edit:t,list:Y()(s.list,["mainField"])}}},{}),y=r.edit.map(c=>c.map(({name:e,size:s})=>({name:e,size:s})));return{...a,layouts:{edit:y,list:o},metadatas:d}};const P=(r,u)=>r.map(a=>({...a,subject:u}));var S=r=>{const u={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(u).reduce((a,o)=>(a[o]=P(u[o],r),a),{})},_=n(95919),Q=n.n(_),ee=r=>r.split(".").filter(u=>Q()(parseInt(u,10))),te=r=>{if(r.length===0)return-1;const u=Math.max.apply(Math,r.map(a=>a.__temp_key__??0));return Number.isNaN(u)?-1:u},z=n(7921),B=n(24381),V=n(86349),ne=n.n(V),ae=n(3040),w=n.n(ae),ce=(r,u,a)=>{const o=e=>u.find(s=>s.uid===e),d=Object.assign({},r),y=r[a].uid,c=o(y);return w()(d,[a],ne()({},c,r[a])),Object.keys(r.components).forEach(e=>{const s=o(e);w()(d,["components",e],{...r.components[e],...s})}),d},T=n(19565),ue=(r,u,a)=>{const o=(d,y)=>Object.keys(d).reduce((c,e)=>{const s=(0,T.UN)(y,e),t=p()(d,e),i=(0,T.k2)(y,[e,"component"]),f=(0,T.k2)(y,[e,"repeatable"]);return s==="dynamiczone"?(c[e]=t.map(l=>o(l,a[l.__component])),c):s==="component"?(f?c[e]=t&&t.map(l=>o(l,a[i])):c[e]=t&&o(t,a[i]),c):(s!=="password"&&(c[e]=t),c)},{});return o(r,u)},pe=n(51355),le=n.n(pe),he=n(86834),X=n.n(he),Te=n(78746),$=n.n(Te),D=n(24346),re=n(73347);D.kM(D.nK,"defined",function(){return this.test("defined",T.I0.required,r=>r!==void 0)}),D.kM(D.IX,"notEmptyMin",function(r){return this.test("notEmptyMin",T.I0.min,u=>X()(u)?!0:u.length>=r)}),D.kM(D.Z_,"isInferior",function(r,u){return this.test("isInferior",r,function(a){return!a||Number.isNaN($()(a))?!0:$()(u)>=$()(a)})}),D.kM(D.Z_,"isSuperior",function(r,u){return this.test("isSuperior",r,function(a){return!a||Number.isNaN($()(a))?!0:$()(a)>=$()(u)})});const de=r=>p()(r,["attributes"],{}),J=(r,{components:u},a={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1})=>{const o=de(r);return D.Ry().shape(Object.keys(o).reduce((d,y)=>{const c=o[y];if(c.type!=="relation"&&c.type!=="component"&&c.type!=="dynamiczone"){const e=fe(c.type,c,a);d[y]=e}if(c.type==="relation"&&(d[y]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(c.relationType)?D.Ry().nullable():D.IX().nullable()),c.type==="component"){const e=J(u[c.component],{components:u},{...a,isFromComponent:!0});if(c.repeatable===!0){const{min:t,max:i,required:f}=c;let l=D.Vo(g=>{let h=D.IX().of(e);return t?f?h=h.min(t,T.I0.min):f!==!0&&X()(g)?h=h.nullable():h=h.min(t,T.I0.min):f&&!a.isDraft&&(h=h.min(1,T.I0.required)),i&&(h=h.max(i,T.I0.max)),h});return d[y]=l,d}const s=D.Vo(t=>t!==void 0?c.required===!0&&!a.isDraft?e.defined():e.nullable():c.required===!0?D.Ry().defined():D.Ry().nullable());return d[y]=s,d}if(c.type==="dynamiczone"){let e=D.IX().of(D.Vo(({__component:i})=>J(u[i],{components:u},{...a,isFromComponent:!0})));const{max:s,min:t}=c;t?c.required?e=e.test("min",T.I0.min,i=>a.isCreatingEntry?i&&i.length>=t:i===void 0?!0:i!==null&&i.length>=t).test("required",T.I0.required,i=>a.isCreatingEntry?i!==null||i!==void 0:i===void 0?!0:i!==null):e=e.notEmptyMin(t):c.required&&!a.isDraft&&(e=e.test("required",T.I0.required,i=>a.isCreatingEntry?i!==null||i!==void 0:i===void 0?!0:i!==null)),s&&(e=e.max(s,T.I0.max)),d[y]=e}return d},{}))},fe=(r,u,a)=>{let o=D.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(r)&&(o=D.Z_()),r==="json"&&(o=D.nK(T.I0.json).test("isJSON",T.I0.json,d=>{if(!d||!d.length)return!0;try{return JSON.parse(d),!0}catch{return!1}}).nullable().test("required",T.I0.required,d=>!(u.required&&(!d||!d.length)))),r==="email"&&(o=o.email(T.I0.email)),["number","integer","float","decimal"].includes(r)&&(o=D.Rx().transform(d=>Q()(d)?void 0:d).typeError()),r==="biginteger"&&(o=D.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(r)&&(o=D.hT()),Object.keys(u).forEach(d=>{const y=u[d];if(y||!le()(y)&&Number.isInteger(Math.floor(y))||y===0)switch(d){case"required":{a.isDraft||(r==="password"&&a.isCreatingEntry&&(o=o.required(T.I0.required)),r!=="password"&&(a.isCreatingEntry?o=o.required(T.I0.required):o=o.test("required",T.I0.required,c=>c===void 0&&!a.isFromComponent?!0:(0,re.Z)(r)?c===0?!0:!!c:r==="boolean"?c!=null:r==="date"||r==="datetime"?typeof c=="string"?!X()(c):!X()(c?.toString()):!X()(c))));break}case"max":{r==="biginteger"?o=o.isInferior(T.I0.max,y):o=o.max(y,T.I0.max);break}case"maxLength":o=o.max(y,T.I0.maxLength);break;case"min":{r==="biginteger"?o=o.isSuperior(T.I0.min,y):o=o.min(y,T.I0.min);break}case"minLength":{a.isDraft||(o=o.min(y,T.I0.minLength));break}case"regex":o=o.matches(new RegExp(y),{message:T.I0.regex,excludeEmptyString:!u.required});break;case"lowercase":["text","textarea","email","string"].includes(r)&&(o=o.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(r)&&(o=o.strict().uppercase());break;case"positive":(0,re.Z)(r)&&(o=o.positive());break;case"negative":(0,re.Z)(r)&&(o=o.negative());break;default:o=o.nullable()}}),o};var me=J},73347:function(W,v,n){n.d(v,{Z:function(){return m}});function m(E){return["integer","biginteger","decimal","float","number"].includes(E)}}}]);
@@ -1,6 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5483],{90978:function(y,f,e){e.r(f),e.d(f,{InformationBoxEE:function(){return I}});var t=e(32735),r=e(77035),s=e(87933),m=e(49372),u=e(23866),a=e(19565),d=e(67879),l=e(20108),n=e(98865),E=e(53104),o=e(90562),i=e(2121),g=e(32329),v=e(68886);const w="strapi_stage";function I(){const{initialData:A,isCreatingEntry:R,layout:{uid:O,options:k},isSingleType:D,onChange:C}=(0,a.Wq)(),{put:c}=(0,a.kY)(),T=A?.[w]??null,P=k?.reviewWorkflows??!1,{formatMessage:p}=(0,d.Z)(),{formatAPIError:K}=(0,a.So)(),U=(0,a.lm)(),{getFeature:Z}=(0,E.q)(),[F,S]=t.useState(!1),{meta:$,workflows:[N],isLoading:Y}=(0,g.n)({filters:{contentTypes:O}}),{error:x,isLoading:j,mutateAsync:H}=(0,l.useMutation)(async({entityId:h,stageId:W,uid:M})=>{const B=D?"single-types":"collection-types",{data:{data:G}}=await c(`/admin/content-manager/${B}/${M}/${h}/stage`,{data:{id:W}});return C({target:{name:w,value:G[w]}},!0),G},{onSuccess(){U({type:"success",message:{id:"content-manager.reviewWorkflows.stage.notification.saved",defaultMessage:"Review stage updated"}})}}),L=Z("review-workflows"),Q=x&&K(x)||null,X=async({value:h})=>{try{L?.[i.Ef]&&parseInt(L[i.Ef],10)<$.workflowCount?S("workflow"):L?.[i._X]&&parseInt(L[i._X],10)<N.stages.length?S("stage"):await H({entityId:A.id,stageId:h,uid:O})}catch{}},{themeColorName:V}=T?.color?(0,v.k)(T?.color):{};return t.createElement(n.d.Root,null,t.createElement(n.d.Title,null),P&&!R&&t.createElement(r.q4,{error:Q,name:w,id:w,value:T?.id,onChange:h=>X({value:h}),label:p({id:"content-manager.reviewWorkflows.stage.label",defaultMessage:"Review stage"}),startIcon:t.createElement(s.k,{as:"span",height:2,background:T?.color,borderColor:V==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2,marginRight:"-3px"}),customizeContent:()=>t.createElement(s.k,{as:"span",justifyContent:"space-between",alignItems:"center",width:"100%"},t.createElement(m.Z,{textColor:"neutral800",ellipsis:!0},T?.name),Y||j?t.createElement(u.a,{small:!0,style:{display:"flex"}}):null)},N?N.stages.map(({id:h,color:W,name:M})=>{const{themeColorName:B}=(0,v.k)(W);return t.createElement(r.ag,{startIcon:t.createElement(s.k,{height:2,background:W,borderColor:B==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2}),value:h,textValue:M},M)}):[]),t.createElement(n.d.Body,null),t.createElement(o.fC,{isOpen:F==="workflow",onClose:()=>S(!1)},t.createElement(o.Dx,null,p({id:"content-manager.reviewWorkflows.workflows.limit.title",defaultMessage:"You\u2019ve reached the limit of workflows in your plan"})),t.createElement(o.uT,null,p({id:"content-manager.reviewWorkflows.workflows.limit.body",defaultMessage:"Delete a workflow or contact Sales to enable more workflows."}))),t.createElement(o.fC,{isOpen:F==="stage",onClose:()=>S(!1)},t.createElement(o.Dx,null,p({id:"content-manager.reviewWorkflows.stages.limit.title",defaultMessage:"You have reached the limit of stages for this workflow in your plan"})),t.createElement(o.uT,null,p({id:"content-manager.reviewWorkflows.stages.limit.body",defaultMessage:"Try deleting some stages or contact Sales to enable more stages."}))))}},53104:function(y,f,e){e.d(f,{q:function(){return m}});var t=e(32735),r=e(19565),s=e(20108);function m({enabled:u}={enabled:!0}){const{get:a}=(0,r.kY)(),{data:d,isError:l,isLoading:n}=(0,s.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:i}}=await a("/admin/license-limit-information");return i},{enabled:u}),E=d??{},o=t.useCallback(i=>(E?.features??[]).find(v=>v.name===i)?.options??{},[E?.features]);return{license:E,getFeature:o,isError:l,isLoading:n}}},90562:function(y,f,e){e.d(f,{uT:function(){return O},fC:function(){return C},Dx:function(){return R}});var t=e(32735),r=e(49372),s=e(87933),m=e(85025),u=e(31600),a=e(72850),d=e(50563),l=e(95489),n=e(35331),E=e(60216),o=e.n(E),i=e(67879),g=e(8471),v=e.p+"0cd5f8915b265d5b1856.png";const w="limits-title",I="https://strapi.io/pricing-cloud",A="https://strapi.io/contact-sales";function R({children:c}){return t.createElement(r.Z,{variant:"alpha",id:w},c)}R.propTypes={children:o().node.isRequired};function O({children:c}){return t.createElement(r.Z,{variant:"omega"},c)}O.propTypes={children:o().node.isRequired};function k(){const{formatMessage:c}=(0,i.Z)();return t.createElement(s.k,{gap:2,paddingTop:4},t.createElement(l.Q,{variant:"default",isExternal:!0,href:I},c({id:"Settings.review-workflows.limit.cta.learn",defaultMessage:"Learn more"})),t.createElement(l.Q,{variant:"tertiary",isExternal:!0,href:A},c({id:"Settings.review-workflows.limit.cta.sales",defaultMessage:"Contact Sales"})))}const D=g.ZP.img`
2
- // Margin top|right reverse the padding of ModalBody
3
- margin-right: ${({theme:c})=>`-${c.spaces[7]}`};
4
- margin-top: ${({theme:c})=>`-${c.spaces[7]}`};
5
- width: 360px;
6
- `;function C({children:c,isOpen:T,onClose:P}){const{formatMessage:p}=(0,i.Z)();return T?t.createElement(m.P,{labelledBy:w},t.createElement(u.f,null,t.createElement(s.k,{gap:2,paddingLeft:7,position:"relative"},t.createElement(s.k,{alignItems:"start",direction:"column",gap:2,width:"60%"},c,t.createElement(k,null)),t.createElement(s.k,{justifyContent:"end",height:"100%",width:"40%"},t.createElement(D,{src:v,"aria-hidden":!0,alt:"",loading:"lazy"}),t.createElement(a.x,{display:"flex",position:"absolute",right:0,top:0},t.createElement(d.h,{icon:t.createElement(n.Z,null),"aria-label":p({id:"global.close",defaultMessage:"Close"}),onClick:P})))))):null}C.defaultProps={isOpen:!1},C.propTypes={children:o().node.isRequired,isOpen:o().bool,onClose:o().func.isRequired}},2121:function(y,f,e){e.d(f,{$k:function(){return l},Ef:function(){return g},FT:function(){return o},Nj:function(){return d},Ot:function(){return a},VS:function(){return n},_X:function(){return v},gu:function(){return s},lv:function(){return E},qZ:function(){return m},sN:function(){return r},uL:function(){return i},x4:function(){return u}});var t=e(12301);const r="settings_review-workflows",s="Settings/Review_Workflows/RESET_WORKFLOW",m="Settings/Review_Workflows/SET_WORKFLOW",u="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",a="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",d="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",l="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",n="Settings/Review_Workflows/WORKFLOW_UPDATE",E={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"},o=t.W.colors.primary600,i={STAGE:"stage"},g="numberOfWorkflows",v="stagesPerWorkflow"},32329:function(y,f,e){e.d(f,{n:function(){return s}});var t=e(19565),r=e(20108);function s(m={}){const{get:u}=(0,t.kY)(),{id:a="",...d}=m,l={populate:"stages"},{data:n,isLoading:E,status:o,refetch:i}=(0,r.useQuery)(["review-workflows","workflows",a],async()=>(await u(`/admin/review-workflows/workflows/${a}`,{params:{...l,...d}})).data);let g=[];return a&&n?.data?g=[n.data]:Array.isArray(n?.data)&&(g=n.data),{meta:n?.meta??{},workflows:g,isLoading:E,status:o,refetch:i}}},68886:function(y,f,e){e.d(f,{k:function(){return s},s:function(){return m}});var t=e(12301),r=e(2121);function s(u){if(!u)return null;const d=Object.entries(t.W.colors).filter(([,l])=>l.toUpperCase()===u.toUpperCase()).reduce((l,[n])=>(r.lv?.[n]&&(l=n),l),null);return d?{themeColorName:d,name:r.lv[d]}:null}function m(){return Object.entries(r.lv).map(([u,a])=>({hex:t.W.colors[u].toUpperCase(),name:a}))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[6158],{76158:function(n,a,e){e.r(a),e.d(a,{REVIEW_WORKFLOW_COLUMNS_EE:function(){return s}});var t=e(7921);const s={key:"__strapi_stage_temp_key__",name:"strapi_stage",fieldSchema:{type:"relation"},metadatas:{label:{id:(0,t.Z)("containers.ListPage.table-headers.reviewWorkflows.stage"),defaultMessage:"Review stage"},searchable:!1,sortable:!0,mainField:{name:"name",schema:{type:"string"}}}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2812],{97108:function(R,p,t){t.d(p,{R:function(){return v}});var e=t(19565),n=t(20108);function v(f={},M={}){const{id:h="",...c}=f,{get:O}=(0,e.kY)(),{data:E,isError:C,isLoading:y,refetch:P}=(0,n.useQuery)(["users",h,c],async()=>{const{data:{data:S}}=await O(`/admin/users/${h}`,{params:c});return S},M);let D=[];return h&&E?D=[E]:Array.isArray(E?.results)&&(D=E.results),{users:D,pagination:E?.pagination??null,isLoading:y,isError:C,refetch:P}}},59092:function(R,p,t){var e=t(32735),n=t(72850),v=t(41415),f=t(19565),M=t(5644),h=t(60216),c=t.n(h),O=t(67879);const E=({displayedFilters:C})=>{const[y,P]=(0,e.useState)(!1),{formatMessage:D}=(0,O.Z)(),S=(0,e.useRef)(),b=()=>{P(V=>!V)};return e.createElement(e.Fragment,null,e.createElement(n.x,{paddingTop:1,paddingBottom:1},e.createElement(v.z,{variant:"tertiary",ref:S,startIcon:e.createElement(M.Z,null),onClick:b,size:"S"},D({id:"app.utils.filters",defaultMessage:"Filters"})),y&&e.createElement(f.J5,{displayedFilters:C,isVisible:y,onToggle:b,source:S})),e.createElement(f.W$,{filtersSchema:C}))};E.propTypes={displayedFilters:c().arrayOf(c().shape({name:c().string.isRequired,metadatas:c().shape({label:c().string}),fieldSchema:c().shape({type:c().string})})).isRequired},p.Z=E},1487:function(R,p,t){t.r(p),t.d(p,{default:function(){return ve}});var e=t(32735),n=t(19565),v=t(15062),f=t(30305),M=t(96709),h=t(17e3),c=t(72850),O=t(27649),E=t(82055),C=t(99223),y=t(67879),P=t(59092),D=t(20108),S=t(53038),b=t(97108),X=({canReadAuditLogs:a,canReadUsers:d})=>{const{get:u}=(0,n.kY)(),{search:i}=(0,S.TH)(),m=(0,n.lm)(),[{query:l}]=(0,n.Kx)(),s={keepPreviousData:!0,retry:!1,staleTime:1e3*20,onError:L=>m({type:"warning",message:L.message})},{users:r,isError:g,isLoading:T}=(0,b.R)({},{...s,enabled:d,staleTime:2*(1e3*60)}),{data:A,isLoading:B,isError:F}=(0,D.useQuery)(["auditLogs",i],async()=>{const{data:L}=await u("/admin/audit-logs",{params:l});return L},{...s,enabled:a});return{auditLogs:A,users:r,isLoading:T||B,hasError:F||g}},w=t(85025),k=t(55225),q=t(31600),_=t(26858),ee=t(51654),te=t(60216),o=t.n(te),ae=t(96315),N=()=>{const{formatDate:a}=(0,y.Z)();return u=>{const i=(0,ae.Z)(u),m=a(i,{dateStyle:"long"}),l=a(i,{timeStyle:"medium",hourCycle:"h24"});return`${m}, ${l}`}},U=t(87933),se=t(23866),I=t(49372),ne=t(15335),oe=t(64710);const H={"entry.create":"Create entry{model, select, undefined {} other { ({model})}}","entry.update":"Update entry{model, select, undefined {} other { ({model})}}","entry.delete":"Delete entry{model, select, undefined {} other { ({model})}}","entry.publish":"Publish entry{model, select, undefined {} other { ({model})}}","entry.unpublish":"Unpublish entry{model, select, undefined {} other { ({model})}}","media.create":"Create media","media.update":"Update media","media.delete":"Delete media","media-folder.create":"Create media folder","media-folder.update":"Update media folder","media-folder.delete":"Delete media folder","user.create":"Create user","user.update":"Update user","user.delete":"Delete user","admin.auth.success":"Admin login","admin.logout":"Admin logout","content-type.create":"Create content type","content-type.update":"Update content type","content-type.delete":"Delete content type","component.create":"Create component","component.update":"Update component","component.delete":"Delete component","role.create":"Create role","role.update":"Update role","role.delete":"Delete role","permission.create":"Create permission","permission.update":"Update permission","permission.delete":"Delete permission"},Z=a=>H[a]||a,Q=({actionLabel:a,actionName:d})=>e.createElement(U.k,{direction:"column",alignItems:"baseline",gap:1},e.createElement(I.Z,{textColor:"neutral600",variant:"sigma"},a),e.createElement(I.Z,{textColor:"neutral600"},d));Q.propTypes={actionLabel:o().string.isRequired,actionName:o().string.isRequired};var x=Q;const W=({status:a,data:d,formattedDate:u})=>{const{formatMessage:i}=(0,y.Z)();if(a==="loading")return e.createElement(U.k,{padding:7,justifyContent:"center",alignItems:"center"},e.createElement(se.a,null,"Loading content..."));const{action:m,user:l,payload:s}=d;return e.createElement(e.Fragment,null,e.createElement(c.x,{marginBottom:3},e.createElement(I.Z,{variant:"delta",id:"title"},i({id:"Settings.permissions.auditLogs.details",defaultMessage:"Log Details"}))),e.createElement(ne.r,{gap:4,gridCols:2,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:6,marginBottom:4,background:"neutral100",hasRadius:!0},e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),actionName:i({id:`Settings.permissions.auditLogs.${m}`,defaultMessage:Z(m)},{model:s?.model})}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"}),actionName:u}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),actionName:l?.displayName||"-"}),e.createElement(x,{actionLabel:i({id:"Settings.permissions.auditLogs.userId",defaultMessage:"User ID"}),actionName:l?.id.toString()||"-"})),e.createElement(oe.V,{value:JSON.stringify(s,null,2),disabled:!0,label:i({id:"Settings.permissions.auditLogs.payload",defaultMessage:"Payload"})}))};W.defaultProps={data:{}},W.propTypes={status:o().oneOf(["idle","loading","error","success"]).isRequired,data:o().shape({action:o().string,date:o().string,payload:o().object,user:o().object}),formattedDate:o().string.isRequired};var ie=W;const Y=({handleClose:a,logId:d})=>{const{get:u}=(0,n.kY)(),i=(0,n.lm)(),m=async T=>{const{data:A}=await u(`/admin/audit-logs/${T}`);if(!A)throw new Error("Audit log not found");return A},{data:l,status:s}=(0,D.useQuery)(["audit-log",d],()=>m(d),{onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}}),a()}}),r=N(),g=l?r(l.date):"";return e.createElement(w.P,{onClose:a,labelledBy:"title"},e.createElement(k.x,null,e.createElement(_.O,{label:g,id:"title"},e.createElement(ee.$,{isCurrent:!0},g))),e.createElement(q.f,null,e.createElement(ie,{status:s,data:l,formattedDate:g})))};Y.propTypes={handleClose:o().func.isRequired,logId:o().string.isRequired};var re=Y;const $=({pagination:a})=>e.createElement(c.x,{paddingTop:4},e.createElement(U.k,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(n.v4,null),e.createElement(n.tU,{pagination:a})));$.defaultProps={pagination:{pageCount:0,pageSize:50,total:0}},$.propTypes={pagination:o().shape({page:o().number,pageCount:o().number,pageSize:o().number,total:o().number})};var le=$,de=t(35658),me=t(94547),z=t(19786),ue=t(50563),ce=t(54894);const j=({headers:a,rows:d,onOpenModal:u})=>{const{formatMessage:i}=(0,y.Z)(),m=N(),l=({type:s,value:r,model:g})=>s==="date"?m(r):s==="action"?i({id:`Settings.permissions.auditLogs.${r}`,defaultMessage:Z(r)},{model:g}):r||"-";return e.createElement(de.p,null,d.map(s=>e.createElement(me.Tr,{key:s.id,...(0,n.X7)({fn:()=>u(s.id)})},a.map(({key:r,name:g,cellFormatter:T})=>e.createElement(z.Td,{key:r},e.createElement(I.Z,{textColor:"neutral800"},l({type:r,value:T?T(s[g]):s[g],model:s.payload?.model})))),e.createElement(z.Td,{...n.UW},e.createElement(U.k,{justifyContent:"end"},e.createElement(ue.h,{onClick:()=>u(s.id),"aria-label":i({id:"app.component.table.view",defaultMessage:"{target} details"},{target:`${s.action} action`}),noBorder:!0,icon:e.createElement(ce.Z,null)}))))))};j.defaultProps={rows:[]},j.propTypes={headers:o().array.isRequired,rows:o().array,onOpenModal:o().func.isRequired};var ge=j,pe=t(21428),fe=t(90333);const K=({value:a,options:d,onChange:u})=>{const{formatMessage:i}=(0,y.Z)(),m=i({id:"Settings.permissions.auditLogs.filter.aria-label",defaultMessage:"Search and select an option to filter"});return e.createElement(pe.hQ,{"aria-label":m,value:a,onChange:u},d.map(({label:l,customValue:s})=>e.createElement(fe.O,{key:s,value:s},l)))};K.defaultProps={value:null},K.propTypes={value:o().string,options:o().arrayOf(o().shape({label:o().string.isRequired,customValue:o().string.isRequired}).isRequired).isRequired,onChange:o().func.isRequired};var J=K;const G=[{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$eq",defaultMessage:"is"},value:"$eq"},{intlLabel:{id:"components.FilterOptions.FILTER_TYPES.$ne",defaultMessage:"is not"},value:"$ne"}];var Ee=({formatMessage:a,users:d,canReadUsers:u})=>{const i=Object.keys(H).map(l=>({label:a({id:`Settings.permissions.auditLogs.${l}`,defaultMessage:Z(l)},{model:void 0}),customValue:l})),m=[{name:"action",metadatas:{customOperators:G,label:a({id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"}),options:i,customInput:J},fieldSchema:{type:"enumeration"}},{name:"date",metadatas:{label:a({id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"})},fieldSchema:{type:"datetime"}}];if(u&&d){const l=r=>r.username?r.username:r.firstname&&r.lastname?a({id:"Settings.permissions.auditLogs.user.fullname",defaultMessage:"{firstname} {lastname}"},{firstname:r.firstname,lastname:r.lastname}):r.email,s=d.map(r=>({label:l(r),customValue:r.id.toString()}));return[...m,{name:"user",metadatas:{customOperators:G,label:a({id:"Settings.permissions.auditLogs.user",defaultMessage:"User"}),options:s,customInput:J},fieldSchema:{type:"relation",mainField:{name:"id"}}}]}return m},ye=[{name:"action",key:"action",metadatas:{label:{id:"Settings.permissions.auditLogs.action",defaultMessage:"Action"},sortable:!0}},{name:"date",key:"date",metadatas:{label:{id:"Settings.permissions.auditLogs.date",defaultMessage:"Date"},sortable:!0}},{key:"user",name:"user",metadatas:{label:{id:"Settings.permissions.auditLogs.user",defaultMessage:"User"},sortable:!1},cellFormatter:a=>a?a.displayName:""}],Le=()=>{const{formatMessage:a}=(0,y.Z)(),d=(0,v.v9)(f._),{allowedActions:{canRead:u,canReadUsers:i}}=(0,n.ss)({...d.settings.auditLogs,readUsers:d.settings.users.read}),[{query:m},l]=(0,n.Kx)(),{auditLogs:s,users:r,isLoading:g,hasError:T}=X({canReadAuditLogs:u,canReadUsers:i});(0,n.go)();const A=Ee({formatMessage:a,users:r,canReadUsers:i}),B=a({id:"global.auditLogs",defaultMessage:"Audit Logs"}),F=ye.map(L=>({...L,metadatas:{...L.metadatas,label:a(L.metadatas.label)}}));return T?e.createElement(M.A,null,e.createElement(h.D,null,e.createElement(c.x,{paddingTop:8},e.createElement(n.Hn,null)))):e.createElement(O.o,{"aria-busy":g},e.createElement(n.SL,{name:B}),e.createElement(E.T,{title:B,subtitle:a({id:"Settings.permissions.auditLogs.listview.header.subtitle",defaultMessage:"Logs of all the activities that happened in your environment"})}),e.createElement(C.Z,{startActions:e.createElement(P.Z,{displayedFilters:A})}),e.createElement(h.D,{canRead:u},e.createElement(n.tM,{contentType:"Audit logs",headers:F,rows:s?.results||[],withBulkActions:!0,isLoading:g},e.createElement(ge,{headers:F,rows:s?.results||[],onOpenModal:L=>l({id:L})})),e.createElement(le,{pagination:s?.pagination})),m?.id&&e.createElement(re,{handleClose:()=>l({id:null},"remove"),logId:m.id}))},ve=()=>{const a=(0,v.v9)(f._);return e.createElement(n.O4,{permissions:a.settings.auditLogs.main},e.createElement(Le,null))}},90333:function(R,p,t){t.d(p,{O:function(){return n}});var e=t(21428);const n=e.Wx},99223:function(R,p,t){t.d(p,{Z:function(){return v}});var e=t(74512),n=t(87933);const v=({startActions:f,endActions:M})=>!f&&!M?null:(0,e.jsxs)(n.k,{justifyContent:"space-between",alignItems:"flex-start",paddingBottom:4,paddingLeft:10,paddingRight:10,children:[(0,e.jsx)(n.k,{gap:2,wrap:"wrap",children:f}),(0,e.jsx)(n.k,{gap:2,shrink:0,wrap:"wrap",children:M})]})}}]);