@strapi/content-manager 5.22.0 → 5.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/admin/components/LeftMenu.js +13 -15
  2. package/dist/admin/components/LeftMenu.js.map +1 -1
  3. package/dist/admin/components/LeftMenu.mjs +14 -16
  4. package/dist/admin/components/LeftMenu.mjs.map +1 -1
  5. package/dist/admin/components/Widgets.js +15 -7
  6. package/dist/admin/components/Widgets.js.map +1 -1
  7. package/dist/admin/components/Widgets.mjs +15 -7
  8. package/dist/admin/components/Widgets.mjs.map +1 -1
  9. package/dist/admin/pages/EditView/EditViewPage.js +11 -16
  10. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  11. package/dist/admin/pages/EditView/EditViewPage.mjs +12 -17
  12. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  13. package/dist/admin/pages/EditView/components/Blocker.js +18 -0
  14. package/dist/admin/pages/EditView/components/Blocker.js.map +1 -0
  15. package/dist/admin/pages/EditView/components/Blocker.mjs +16 -0
  16. package/dist/admin/pages/EditView/components/Blocker.mjs.map +1 -0
  17. package/dist/admin/pages/EditView/components/DocumentActions.js +16 -1
  18. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  19. package/dist/admin/pages/EditView/components/DocumentActions.mjs +17 -2
  20. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/components/InputRenderer.js +15 -5
  22. package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
  23. package/dist/admin/pages/EditView/components/InputRenderer.mjs +15 -5
  24. package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/utils/data.js +26 -7
  26. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  27. package/dist/admin/pages/EditView/utils/data.mjs +26 -7
  28. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  29. package/dist/admin/pages/ListView/ListViewPage.js +6 -2
  30. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  31. package/dist/admin/pages/ListView/ListViewPage.mjs +6 -2
  32. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  33. package/dist/admin/preview/components/InputPopover.js +73 -0
  34. package/dist/admin/preview/components/InputPopover.js.map +1 -0
  35. package/dist/admin/preview/components/InputPopover.mjs +70 -0
  36. package/dist/admin/preview/components/InputPopover.mjs.map +1 -0
  37. package/dist/admin/preview/hooks/usePreviewInputManager.js +67 -0
  38. package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -0
  39. package/dist/admin/preview/hooks/usePreviewInputManager.mjs +46 -0
  40. package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -0
  41. package/dist/admin/preview/pages/Preview.js +119 -118
  42. package/dist/admin/preview/pages/Preview.js.map +1 -1
  43. package/dist/admin/preview/pages/Preview.mjs +120 -119
  44. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  45. package/dist/admin/preview/utils/constants.js +2 -1
  46. package/dist/admin/preview/utils/constants.js.map +1 -1
  47. package/dist/admin/preview/utils/constants.mjs +2 -2
  48. package/dist/admin/preview/utils/constants.mjs.map +1 -1
  49. package/dist/admin/preview/utils/getSendMessage.js +22 -0
  50. package/dist/admin/preview/utils/getSendMessage.js.map +1 -0
  51. package/dist/admin/preview/utils/getSendMessage.mjs +20 -0
  52. package/dist/admin/preview/utils/getSendMessage.mjs.map +1 -0
  53. package/dist/admin/preview/utils/previewScript.js +272 -4
  54. package/dist/admin/preview/utils/previewScript.js.map +1 -1
  55. package/dist/admin/preview/utils/previewScript.mjs +272 -4
  56. package/dist/admin/preview/utils/previewScript.mjs.map +1 -1
  57. package/dist/admin/services/documents.js +0 -1
  58. package/dist/admin/services/documents.js.map +1 -1
  59. package/dist/admin/services/documents.mjs +0 -1
  60. package/dist/admin/services/documents.mjs.map +1 -1
  61. package/dist/admin/src/pages/EditView/components/Blocker.d.ts +5 -0
  62. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +1 -1
  63. package/dist/admin/src/preview/components/InputPopover.d.ts +6 -0
  64. package/dist/admin/src/preview/hooks/usePreviewInputManager.d.ts +4 -0
  65. package/dist/admin/src/preview/pages/Preview.d.ts +8 -0
  66. package/dist/admin/src/preview/utils/constants.d.ts +4 -1
  67. package/dist/admin/src/preview/utils/getSendMessage.d.ts +11 -0
  68. package/dist/admin/src/preview/utils/previewScript.d.ts +7 -1
  69. package/dist/admin/translations/en.json.js +1 -0
  70. package/dist/admin/translations/en.json.js.map +1 -1
  71. package/dist/admin/translations/en.json.mjs +1 -0
  72. package/dist/admin/translations/en.json.mjs.map +1 -1
  73. package/dist/admin/translations/es.json.js +1 -0
  74. package/dist/admin/translations/es.json.js.map +1 -1
  75. package/dist/admin/translations/es.json.mjs +1 -0
  76. package/dist/admin/translations/es.json.mjs.map +1 -1
  77. package/dist/admin/translations/fr.json.js +1 -0
  78. package/dist/admin/translations/fr.json.js.map +1 -1
  79. package/dist/admin/translations/fr.json.mjs +1 -0
  80. package/dist/admin/translations/fr.json.mjs.map +1 -1
  81. package/dist/server/homepage/services/homepage.js +2 -2
  82. package/dist/server/homepage/services/homepage.js.map +1 -1
  83. package/dist/server/homepage/services/homepage.mjs +2 -2
  84. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  85. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  86. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"data.mjs","sources":["../../../../../admin/src/pages/EditView/utils/data.ts"],"sourcesContent":["import { createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { generateNKeysBetween } from 'fractional-indexing';\nimport pipe from 'lodash/fp/pipe';\n\nimport { DOCUMENT_META_FIELDS } from '../../../constants/attributes';\n\nimport type { ComponentsDictionary, Document } from '../../../hooks/useDocument';\nimport type { Schema, UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * traverseData\n * -----------------------------------------------------------------------------------------------*/\n\n// Make only attributes required since it's the only one Content History has\ntype PartialSchema = Partial<Schema.Schema> & Pick<Schema.Schema, 'attributes'>;\n\ntype Predicate = <TAttribute extends Schema.Attribute.AnyAttribute>(\n attribute: TAttribute,\n value: Schema.Attribute.Value<TAttribute>\n) => boolean;\ntype Transform = <TAttribute extends Schema.Attribute.AnyAttribute>(\n value: any,\n attribute: TAttribute\n) => any;\ntype AnyData = Omit<Document, 'id'>;\n\nconst BLOCK_LIST_ATTRIBUTE_KEYS = ['__component', '__temp_key__'];\n\n/**\n * @internal This function is used to traverse the data and transform the values.\n * Given a predicate function, it will transform the value (using the given transform function)\n * if the predicate returns true. If it finds that the attribute is a component or dynamiczone,\n * it will recursively traverse those data structures as well.\n *\n * It is possible to break the ContentManager by using this function incorrectly, for example,\n * if you transform a number into a string but the attribute type is a number, the ContentManager\n * will not be able to save the data and the Form will likely crash because the component it's\n * passing the data too won't succesfully be able to handle the value.\n */\nconst traverseData =\n (predicate: Predicate, transform: Transform) =>\n (schema: PartialSchema, components: ComponentsDictionary = {}) =>\n (data: AnyData = {}) => {\n const traverse = (datum: AnyData, attributes: Schema.Schema['attributes']) => {\n return Object.entries(datum).reduce<AnyData>((acc, [key, value]) => {\n const attribute = attributes[key];\n\n /**\n * If the attribute is a block list attribute, we don't want to transform it.\n * We also don't want to transform null or undefined values.\n */\n if (BLOCK_LIST_ATTRIBUTE_KEYS.includes(key) || value === null || value === undefined) {\n acc[key] = value;\n return acc;\n }\n\n if (attribute.type === 'component') {\n if (attribute.repeatable) {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, true>>;\n acc[key] = componentValue.map((componentData) =>\n traverse(componentData, components[attribute.component]?.attributes ?? {})\n );\n } else {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, false>>;\n\n acc[key] = traverse(componentValue, components[attribute.component]?.attributes ?? {});\n }\n } else if (attribute.type === 'dynamiczone') {\n const dynamicZoneValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.DynamicZone>;\n\n acc[key] = dynamicZoneValue.map((componentData) =>\n traverse(componentData, components[componentData.__component]?.attributes ?? {})\n );\n } else if (predicate(attribute, value)) {\n acc[key] = transform(value, attribute);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n };\n\n return traverse(data, schema.attributes);\n };\n\n/* -------------------------------------------------------------------------------------------------\n * removeProhibitedFields\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal Removes all the fields that are not allowed.\n */\nconst removeProhibitedFields = (prohibitedFields: Schema.Attribute.Kind[]) =>\n traverseData(\n (attribute) => prohibitedFields.includes(attribute.type),\n () => ''\n );\n\n/* -------------------------------------------------------------------------------------------------\n * prepareRelations\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Sets all relation values to an empty array.\n */\nconst prepareRelations = traverseData(\n (attribute) => attribute.type === 'relation',\n () => ({\n connect: [],\n disconnect: [],\n })\n);\n\n/* -------------------------------------------------------------------------------------------------\n * prepareTempKeys\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each component and dynamiczone item. This gives us\n * a stable identifier regardless of its ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = traverseData(\n (attribute) =>\n (attribute.type === 'component' && attribute.repeatable) || attribute.type === 'dynamiczone',\n (data) => {\n if (Array.isArray(data) && data.length > 0) {\n const keys = generateNKeysBetween(undefined, undefined, data.length);\n\n return data.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n }\n\n return data;\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * removeFieldsThatDontExistOnSchema\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Fields that don't exist in the schema like createdAt etc. are only on the first level (not nested),\n * as such we don't need to traverse the components to remove them.\n */\nconst removeFieldsThatDontExistOnSchema = (schema: PartialSchema) => (data: AnyData) => {\n const schemaKeys = Object.keys(schema.attributes);\n const dataKeys = Object.keys(data);\n\n const keysToRemove = dataKeys.filter((key) => !schemaKeys.includes(key));\n\n const revisedData = [...keysToRemove, ...DOCUMENT_META_FIELDS].reduce((acc, key) => {\n delete acc[key];\n\n return acc;\n }, structuredClone(data));\n\n return revisedData;\n};\n\n/**\n * @internal\n * @description We need to remove null fields from the data-structure because it will pass it\n * to the specific inputs breaking them as most would prefer empty strings or `undefined` if\n * they're controlled / uncontrolled.\n */\nconst removeNullValues = (data: AnyData) => {\n return Object.entries(data).reduce<AnyData>((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n\n acc[key] = value;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * transformDocuments\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Takes a document data structure (this could be from the API or a default form structure)\n * and applies consistent data transformations to it. This is also used when we add new components to the\n * form to ensure the data is correctly prepared from their default state e.g. relations are set to an empty array.\n */\nconst transformDocument =\n (schema: PartialSchema, components: ComponentsDictionary = {}) =>\n (document: AnyData) => {\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n removeProhibitedFields(['password'])(schema, components),\n removeNullValues,\n prepareRelations(schema, components),\n prepareTempKeys(schema, components)\n );\n\n return transformations(document);\n };\n\ntype HandleOptions = {\n schema?: Schema.ContentType | Schema.Component;\n initialValues?: AnyData;\n components?: Record<string, Schema.Component>;\n};\n\ntype RemovedFieldPath = string;\n\n/**\n * Removes values from the data object if their corresponding attribute has a\n * visibility condition that evaluates to false.\n *\n * @param {object} schema - The content type schema (with attributes).\n * @param {object} data - The data object to filter based on visibility.\n * @returns {object} A new data object with only visible fields retained.\n */\nconst handleInvisibleAttributes = (\n data: AnyData,\n { schema, initialValues = {}, components = {} }: HandleOptions,\n path: string[] = [],\n removedAttributes: RemovedFieldPath[] = []\n): {\n data: AnyData;\n removedAttributes: RemovedFieldPath[];\n} => {\n if (!schema?.attributes) return { data, removedAttributes };\n\n const rulesEngine = createRulesEngine();\n const result: AnyData = {};\n\n for (const [attrName, attrDef] of Object.entries(schema.attributes)) {\n const fullPath = [...path, attrName].join('.');\n const condition = attrDef?.conditions?.visible;\n const isVisible = condition ? rulesEngine.evaluate(condition, { ...data, ...result }) : true;\n\n if (!isVisible) {\n removedAttributes.push(fullPath);\n continue;\n }\n\n const userProvided = Object.prototype.hasOwnProperty.call(data, attrName);\n const currentValue = userProvided ? data[attrName] : undefined;\n const initialValue = initialValues?.[attrName];\n\n // 🔹 Handle components\n if (attrDef.type === 'component') {\n const compSchema = components[attrDef.component];\n const value = currentValue ?? initialValue;\n\n if (!value) {\n result[attrName] = attrDef.repeatable ? [] : null;\n continue;\n }\n\n if (attrDef.repeatable && Array.isArray(value)) {\n result[attrName] = value.map(\n (item, index) =>\n handleInvisibleAttributes(\n item,\n {\n schema: compSchema,\n initialValues: initialValue?.[index] ?? {},\n components,\n },\n [...path, `${attrName}[${index}]`],\n removedAttributes\n ).data\n );\n } else {\n result[attrName] = handleInvisibleAttributes(\n value,\n {\n schema: compSchema,\n initialValues: initialValue ?? {},\n components,\n },\n [...path, attrName],\n removedAttributes\n ).data;\n }\n\n continue;\n }\n\n // 🔸 Handle dynamic zones\n if (attrDef.type === 'dynamiczone') {\n if (!Array.isArray(currentValue)) {\n result[attrName] = [];\n continue;\n }\n\n result[attrName] = currentValue.map((dzItem, index) => {\n const compUID = dzItem?.__component;\n const compSchema = components[compUID];\n\n const cleaned = handleInvisibleAttributes(\n dzItem,\n {\n schema: compSchema,\n initialValues: initialValue?.[index] ?? {},\n components,\n },\n [...path, `${attrName}[${index}]`],\n removedAttributes\n ).data;\n\n // For newly created components, we want to be sure that the id is undefined (in case of reordering items)\n const processedItem =\n dzItem.id === undefined || dzItem.id === null\n ? { __component: compUID, ...cleaned, id: undefined }\n : { __component: compUID, ...cleaned };\n\n return processedItem;\n });\n\n continue;\n }\n\n // 🟡 Handle scalar/primitive\n if (currentValue !== undefined) {\n result[attrName] = currentValue;\n } else if (initialValue !== undefined) {\n result[attrName] = initialValue;\n } else {\n if (attrName === 'id' || attrName === 'documentId') {\n // If the attribute is 'id', we don't want to set it to null, as it should not be removed.\n continue;\n }\n result[attrName] = null;\n }\n }\n\n return {\n data: result,\n removedAttributes,\n };\n};\n\nexport {\n removeProhibitedFields,\n prepareRelations,\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n transformDocument,\n handleInvisibleAttributes,\n};\nexport type { AnyData };\n"],"names":["BLOCK_LIST_ATTRIBUTE_KEYS","traverseData","predicate","transform","schema","components","data","traverse","datum","attributes","Object","entries","reduce","acc","key","value","attribute","includes","undefined","type","repeatable","componentValue","map","componentData","component","dynamicZoneValue","__component","removeProhibitedFields","prohibitedFields","prepareRelations","connect","disconnect","prepareTempKeys","Array","isArray","length","keys","generateNKeysBetween","index","__temp_key__","removeFieldsThatDontExistOnSchema","schemaKeys","dataKeys","keysToRemove","filter","revisedData","DOCUMENT_META_FIELDS","structuredClone","removeNullValues","transformDocument","document","transformations","pipe","handleInvisibleAttributes","initialValues","path","removedAttributes","rulesEngine","createRulesEngine","result","attrName","attrDef","fullPath","join","condition","conditions","visible","isVisible","evaluate","push","userProvided","prototype","hasOwnProperty","call","currentValue","initialValue","compSchema","item","dzItem","compUID","cleaned","processedItem","id"],"mappings":"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"}
1
+ {"version":3,"file":"data.mjs","sources":["../../../../../admin/src/pages/EditView/utils/data.ts"],"sourcesContent":["import { createRulesEngine } from '@strapi/admin/strapi-admin';\nimport { generateNKeysBetween } from 'fractional-indexing';\nimport pipe from 'lodash/fp/pipe';\n\nimport { DOCUMENT_META_FIELDS } from '../../../constants/attributes';\n\nimport type { ComponentsDictionary, Document } from '../../../hooks/useDocument';\nimport type { Schema, UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * traverseData\n * -----------------------------------------------------------------------------------------------*/\n\n// Make only attributes required since it's the only one Content History has\ntype PartialSchema = Partial<Schema.Schema> & Pick<Schema.Schema, 'attributes'>;\n\ntype Predicate = <TAttribute extends Schema.Attribute.AnyAttribute>(\n attribute: TAttribute,\n value: Schema.Attribute.Value<TAttribute>\n) => boolean;\ntype Transform = <TAttribute extends Schema.Attribute.AnyAttribute>(\n value: any,\n attribute: TAttribute\n) => any;\ntype AnyData = Omit<Document, 'id'>;\n\nconst BLOCK_LIST_ATTRIBUTE_KEYS = ['__component', '__temp_key__'];\n\n/**\n * @internal This function is used to traverse the data and transform the values.\n * Given a predicate function, it will transform the value (using the given transform function)\n * if the predicate returns true. If it finds that the attribute is a component or dynamiczone,\n * it will recursively traverse those data structures as well.\n *\n * It is possible to break the ContentManager by using this function incorrectly, for example,\n * if you transform a number into a string but the attribute type is a number, the ContentManager\n * will not be able to save the data and the Form will likely crash because the component it's\n * passing the data too won't succesfully be able to handle the value.\n */\nconst traverseData =\n (predicate: Predicate, transform: Transform) =>\n (schema: PartialSchema, components: ComponentsDictionary = {}) =>\n (data: AnyData = {}) => {\n const traverse = (datum: AnyData, attributes: Schema.Schema['attributes']) => {\n return Object.entries(datum).reduce<AnyData>((acc, [key, value]) => {\n const attribute = attributes[key];\n\n /**\n * If the attribute is a block list attribute, we don't want to transform it.\n * We also don't want to transform null or undefined values.\n */\n if (BLOCK_LIST_ATTRIBUTE_KEYS.includes(key) || value === null || value === undefined) {\n acc[key] = value;\n return acc;\n }\n\n if (attribute.type === 'component') {\n if (attribute.repeatable) {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, true>>;\n acc[key] = componentValue.map((componentData) =>\n traverse(componentData, components[attribute.component]?.attributes ?? {})\n );\n } else {\n const componentValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.Component<UID.Component, false>>;\n\n acc[key] = traverse(componentValue, components[attribute.component]?.attributes ?? {});\n }\n } else if (attribute.type === 'dynamiczone') {\n const dynamicZoneValue = (\n predicate(attribute, value) ? transform(value, attribute) : value\n ) as Schema.Attribute.Value<Schema.Attribute.DynamicZone>;\n\n acc[key] = dynamicZoneValue.map((componentData) =>\n traverse(componentData, components[componentData.__component]?.attributes ?? {})\n );\n } else if (predicate(attribute, value)) {\n acc[key] = transform(value, attribute);\n } else {\n acc[key] = value;\n }\n\n return acc;\n }, {});\n };\n\n return traverse(data, schema.attributes);\n };\n\n/* -------------------------------------------------------------------------------------------------\n * removeProhibitedFields\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal Removes all the fields that are not allowed.\n */\nconst removeProhibitedFields = (prohibitedFields: Schema.Attribute.Kind[]) =>\n traverseData(\n (attribute) => prohibitedFields.includes(attribute.type),\n () => ''\n );\n\n/* -------------------------------------------------------------------------------------------------\n * prepareRelations\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Sets all relation values to an empty array.\n */\nconst prepareRelations = traverseData(\n (attribute) => attribute.type === 'relation',\n () => ({\n connect: [],\n disconnect: [],\n })\n);\n\n/* -------------------------------------------------------------------------------------------------\n * prepareTempKeys\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Adds a `__temp_key__` to each component and dynamiczone item. This gives us\n * a stable identifier regardless of its ids etc. that we can then use for drag and drop.\n */\nconst prepareTempKeys = traverseData(\n (attribute) =>\n (attribute.type === 'component' && attribute.repeatable) || attribute.type === 'dynamiczone',\n (data) => {\n if (Array.isArray(data) && data.length > 0) {\n const keys = generateNKeysBetween(undefined, undefined, data.length);\n\n return data.map((datum, index) => ({\n ...datum,\n __temp_key__: keys[index],\n }));\n }\n\n return data;\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * removeFieldsThatDontExistOnSchema\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Fields that don't exist in the schema like createdAt etc. are only on the first level (not nested),\n * as such we don't need to traverse the components to remove them.\n */\nconst removeFieldsThatDontExistOnSchema = (schema: PartialSchema) => (data: AnyData) => {\n const schemaKeys = Object.keys(schema.attributes);\n const dataKeys = Object.keys(data);\n\n const keysToRemove = dataKeys.filter((key) => !schemaKeys.includes(key));\n\n const revisedData = [...keysToRemove, ...DOCUMENT_META_FIELDS].reduce((acc, key) => {\n delete acc[key];\n\n return acc;\n }, structuredClone(data));\n\n return revisedData;\n};\n\n/**\n * @internal\n * @description We need to remove null fields from the data-structure because it will pass it\n * to the specific inputs breaking them as most would prefer empty strings or `undefined` if\n * they're controlled / uncontrolled.\n */\nconst removeNullValues = (data: AnyData) => {\n return Object.entries(data).reduce<AnyData>((acc, [key, value]) => {\n if (value === null) {\n return acc;\n }\n\n acc[key] = value;\n\n return acc;\n }, {});\n};\n\n/* -------------------------------------------------------------------------------------------------\n * transformDocuments\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Takes a document data structure (this could be from the API or a default form structure)\n * and applies consistent data transformations to it. This is also used when we add new components to the\n * form to ensure the data is correctly prepared from their default state e.g. relations are set to an empty array.\n */\nconst transformDocument =\n (schema: PartialSchema, components: ComponentsDictionary = {}) =>\n (document: AnyData) => {\n const transformations = pipe(\n removeFieldsThatDontExistOnSchema(schema),\n removeProhibitedFields(['password'])(schema, components),\n removeNullValues,\n prepareRelations(schema, components),\n prepareTempKeys(schema, components)\n );\n\n return transformations(document);\n };\n\ntype HandleOptions = {\n schema?: Schema.ContentType | Schema.Component;\n initialValues?: AnyData;\n components?: Record<string, Schema.Component>;\n};\n\ntype RemovedFieldPath = string;\n\n/**\n * @internal\n * @description Finds the initial value for a component or dynamic zone item (based on its __temp_key__ and not its index).\n * @param initialValue - The initial values object.\n * @param item - The item to find the initial value for.\n * @returns The initial value for the item.\n */\nconst getItemInitialValue = (initialValue: AnyData, item: AnyData) => {\n if (initialValue && Array.isArray(initialValue)) {\n const matchingInitialItem = initialValue.find(\n (initialItem) => initialItem.__temp_key__ === item.__temp_key__\n );\n if (matchingInitialItem) {\n return matchingInitialItem;\n }\n }\n return {};\n};\n\n/**\n * Removes values from the data object if their corresponding attribute has a\n * visibility condition that evaluates to false.\n *\n * @param {object} schema - The content type schema (with attributes).\n * @param {object} data - The data object to filter based on visibility.\n * @returns {object} A new data object with only visible fields retained.\n */\nconst handleInvisibleAttributes = (\n data: AnyData,\n { schema, initialValues = {}, components = {} }: HandleOptions,\n path: string[] = [],\n removedAttributes: RemovedFieldPath[] = []\n): {\n data: AnyData;\n removedAttributes: RemovedFieldPath[];\n} => {\n if (!schema?.attributes) return { data, removedAttributes };\n\n const rulesEngine = createRulesEngine();\n const result: AnyData = {};\n\n for (const [attrName, attrDef] of Object.entries(schema.attributes)) {\n const fullPath = [...path, attrName].join('.');\n const condition = attrDef?.conditions?.visible;\n const isVisible = condition ? rulesEngine.evaluate(condition, { ...data, ...result }) : true;\n\n if (!isVisible) {\n removedAttributes.push(fullPath);\n continue;\n }\n\n const userProvided = Object.prototype.hasOwnProperty.call(data, attrName);\n const currentValue = userProvided ? data[attrName] : undefined;\n const initialValue = initialValues?.[attrName];\n\n // 🔹 Handle components\n if (attrDef.type === 'component') {\n const compSchema = components[attrDef.component];\n const value = currentValue ?? initialValue;\n\n if (!value) {\n result[attrName] = attrDef.repeatable ? [] : null;\n continue;\n }\n\n if (attrDef.repeatable && Array.isArray(value)) {\n result[attrName] = value.map((item) => {\n const componentInitialValue = getItemInitialValue(initialValue, item);\n\n return handleInvisibleAttributes(\n item,\n {\n schema: compSchema,\n initialValues: componentInitialValue,\n components,\n },\n [...path, `${attrName}[${item.__temp_key__}]`],\n removedAttributes\n ).data;\n });\n } else {\n result[attrName] = handleInvisibleAttributes(\n value,\n {\n schema: compSchema,\n initialValues: initialValue ?? {},\n components,\n },\n [...path, attrName],\n removedAttributes\n ).data;\n }\n\n continue;\n }\n\n // 🔸 Handle dynamic zones\n if (attrDef.type === 'dynamiczone') {\n if (!Array.isArray(currentValue)) {\n result[attrName] = [];\n continue;\n }\n\n result[attrName] = currentValue.map((dzItem) => {\n const compUID = dzItem?.__component;\n const compSchema = components[compUID];\n\n const componentInitialValue = getItemInitialValue(initialValue, dzItem);\n\n const cleaned = handleInvisibleAttributes(\n dzItem,\n {\n schema: compSchema,\n initialValues: componentInitialValue,\n components,\n },\n [...path, `${attrName}[${dzItem.__temp_key__}]`],\n removedAttributes\n ).data;\n\n // For newly created components, we want to be sure that the id is undefined (in case of reordering items)\n const processedItem =\n dzItem.id === undefined || dzItem.id === null\n ? { __component: compUID, ...cleaned, id: undefined }\n : { __component: compUID, ...cleaned };\n\n return processedItem;\n });\n\n continue;\n }\n\n // 🟡 Handle scalar/primitive\n if (currentValue !== undefined) {\n result[attrName] = currentValue;\n } else if (initialValue !== undefined) {\n result[attrName] = initialValue;\n } else {\n if (attrName === 'id' || attrName === 'documentId') {\n // If the attribute is 'id', we don't want to set it to null, as it should not be removed.\n continue;\n }\n result[attrName] = null;\n }\n }\n\n return {\n data: result,\n removedAttributes,\n };\n};\n\nexport {\n removeProhibitedFields,\n prepareRelations,\n prepareTempKeys,\n removeFieldsThatDontExistOnSchema,\n transformDocument,\n handleInvisibleAttributes,\n};\nexport type { AnyData };\n"],"names":["BLOCK_LIST_ATTRIBUTE_KEYS","traverseData","predicate","transform","schema","components","data","traverse","datum","attributes","Object","entries","reduce","acc","key","value","attribute","includes","undefined","type","repeatable","componentValue","map","componentData","component","dynamicZoneValue","__component","removeProhibitedFields","prohibitedFields","prepareRelations","connect","disconnect","prepareTempKeys","Array","isArray","length","keys","generateNKeysBetween","index","__temp_key__","removeFieldsThatDontExistOnSchema","schemaKeys","dataKeys","keysToRemove","filter","revisedData","DOCUMENT_META_FIELDS","structuredClone","removeNullValues","transformDocument","document","transformations","pipe","getItemInitialValue","initialValue","item","matchingInitialItem","find","initialItem","handleInvisibleAttributes","initialValues","path","removedAttributes","rulesEngine","createRulesEngine","result","attrName","attrDef","fullPath","join","condition","conditions","visible","isVisible","evaluate","push","userProvided","prototype","hasOwnProperty","call","currentValue","compSchema","componentInitialValue","dzItem","compUID","cleaned","processedItem","id"],"mappings":"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"}
@@ -206,7 +206,9 @@ const ListViewPage = ()=>{
206
206
  children: `${contentTypeTitle}`
207
207
  }),
208
208
  /*#__PURE__*/ jsxRuntime.jsx(LayoutsHeaderCustom, {
209
- primaryAction: canCreate ? /*#__PURE__*/ jsxRuntime.jsx(CreateButton, {}) : null,
209
+ primaryAction: canCreate ? /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.CreateNewEntry, {
210
+ children: /*#__PURE__*/ jsxRuntime.jsx(CreateButton, {})
211
+ }) : null,
210
212
  subtitle: formatMessage({
211
213
  id: translations.getTranslation('pages.ListView.header-subtitle'),
212
214
  defaultMessage: '{number, plural, =0 {# entries} one {# entry} other {# entries}} found'
@@ -288,7 +290,9 @@ const ListViewPage = ()=>{
288
290
  children: `${contentTypeTitle}`
289
291
  }),
290
292
  /*#__PURE__*/ jsxRuntime.jsx(LayoutsHeaderCustom, {
291
- primaryAction: canCreate ? /*#__PURE__*/ jsxRuntime.jsx(CreateButton, {}) : null,
293
+ primaryAction: canCreate ? /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.CreateNewEntry, {
294
+ children: /*#__PURE__*/ jsxRuntime.jsx(CreateButton, {})
295
+ }) : null,
292
296
  subtitle: formatMessage({
293
297
  id: translations.getTranslation('pages.ListView.header-subtitle'),
294
298
  defaultMessage: '{number, plural, =0 {# entries} one {# entry} other {# entries}} found'
@@ -1 +1 @@
1
- {"version":3,"file":"ListViewPage.js","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n if (!isFetching && results.length === 0) {\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={canCreate ? <CreateButton variant=\"secondary\" /> : null}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n }\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","length","_jsxs","_Fragment","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","disabled","target","placeholder","trackedEvent","filterable","Filters","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"ListViewPage.js","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n if (!isFetching && results.length === 0) {\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={canCreate ? <CreateButton variant=\"secondary\" /> : null}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n }\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","length","_jsxs","_Fragment","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","disabled","target","placeholder","trackedEvent","filterable","Filters","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -185,7 +185,9 @@ const ListViewPage = ()=>{
185
185
  children: `${contentTypeTitle}`
186
186
  }),
187
187
  /*#__PURE__*/ jsx(LayoutsHeaderCustom, {
188
- primaryAction: canCreate ? /*#__PURE__*/ jsx(CreateButton, {}) : null,
188
+ primaryAction: canCreate ? /*#__PURE__*/ jsx(tours.contentManager.CreateNewEntry, {
189
+ children: /*#__PURE__*/ jsx(CreateButton, {})
190
+ }) : null,
189
191
  subtitle: formatMessage({
190
192
  id: getTranslation('pages.ListView.header-subtitle'),
191
193
  defaultMessage: '{number, plural, =0 {# entries} one {# entry} other {# entries}} found'
@@ -267,7 +269,9 @@ const ListViewPage = ()=>{
267
269
  children: `${contentTypeTitle}`
268
270
  }),
269
271
  /*#__PURE__*/ jsx(LayoutsHeaderCustom, {
270
- primaryAction: canCreate ? /*#__PURE__*/ jsx(CreateButton, {}) : null,
272
+ primaryAction: canCreate ? /*#__PURE__*/ jsx(tours.contentManager.CreateNewEntry, {
273
+ children: /*#__PURE__*/ jsx(CreateButton, {})
274
+ }) : null,
271
275
  subtitle: formatMessage({
272
276
  id: getTranslation('pages.ListView.header-subtitle'),
273
277
  defaultMessage: '{number, plural, =0 {# entries} one {# entry} other {# entries}} found'
@@ -1 +1 @@
1
- {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n if (!isFetching && results.length === 0) {\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={canCreate ? <CreateButton variant=\"secondary\" /> : null}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n }\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","length","_jsxs","_Fragment","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","disabled","target","placeholder","trackedEvent","filterable","Filters","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"ListViewPage.mjs","sources":["../../../../admin/src/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Pagination,\n SearchInput,\n Table,\n BackButton,\n useNotification,\n useStrapiApp,\n useTracking,\n useAPIErrorHandler,\n useQueryParams,\n useRBAC,\n Layouts,\n useTable,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n Typography,\n ButtonProps,\n Box,\n EmptyStateLayout,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { InjectionZone } from '../../components/InjectionZone';\nimport { HOOKS } from '../../constants/hooks';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { getDisplayName } from '../../utils/users';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { BulkActionsRenderer } from './components/BulkActions/Actions';\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Modules } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\nconst LayoutsHeaderCustom = styled(Layouts.Header)`\n overflow-wrap: anywhere;\n`;\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n const { data, error, isFetching } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n /**\n * When the header label is a string, it is an attribute on the current content-type:\n * Use the attribute name value to compute the translation.\n * Otherwise, it should be a translation object coming from a plugin that injects into the table (ie i18n, content-releases, review-workflows):\n * Use the translation object as is.\n */\n const translation =\n typeof header.label === 'string'\n ? {\n id: `content-manager.content-types.${model}.${header.name}`,\n defaultMessage: header.label,\n }\n : header.label;\n\n return {\n ...header,\n label: formatMessage(translation),\n name: `${header.name}${header.mainField?.name ? `.${header.mainField.name}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n model,\n ]);\n\n if (isFetching) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName\n ? formatMessage({ id: schema.info.displayName, defaultMessage: schema.info.displayName })\n : formatMessage({\n id: 'content-manager.containers.untitled',\n defaultMessage: 'Untitled',\n });\n\n const handleRowClick = (id: Modules.Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n if (!isFetching && results.length === 0) {\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Box background=\"neutral0\" shadow=\"filterShadow\" hasRadius>\n <EmptyStateLayout\n action={canCreate ? <CreateButton variant=\"secondary\" /> : null}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n />\n </Box>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n }\n\n return (\n <>\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n <Page.Main>\n <Page.Title>{`${contentTypeTitle}`}</Page.Title>\n <LayoutsHeaderCustom\n primaryAction={\n canCreate ? (\n <tours.contentManager.CreateNewEntry>\n <CreateButton />\n </tours.contentManager.CreateNewEntry>\n ) : null\n }\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <Layouts.Action\n endActions={\n <>\n <InjectionZone area=\"listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <Layouts.Content>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isFetching}>\n <TableActionsBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]])\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propagation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * TableActionsBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst TableActionsBar = () => {\n const selectRow = useTable('TableActionsBar', (state) => state.selectRow);\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query?.plugins?.i18n?.locale;\n const prevLocale = usePrev(locale);\n\n // TODO: find a better way to reset the selected rows when the locale changes across all the app\n React.useEffect(() => {\n if (prevLocale !== locale) {\n selectRow([]);\n }\n }, [selectRow, prevLocale, locale]);\n\n return (\n <Table.ActionBar>\n <BulkActionsRenderer />\n </Table.ActionBar>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n tag={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n minWidth=\"max-content\"\n marginLeft={2}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["INJECT_COLUMN_IN_TABLE","HOOKS","LayoutsHeaderCustom","styled","Layouts","Header","ListViewPage","trackUsage","useTracking","navigate","useNavigate","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","getTranslation","collectionType","model","schema","useDoc","list","useDocumentLayout","displayedHeaders","setDisplayedHeaders","React","useState","listLayout","usePrev","layout","useEffect","isEqual","handleSetHeaders","headers","convertListLayoutToFieldLayouts","attributes","metadatas","query","useQueryParams","page","pageSize","settings","toString","sort","defaultSortBy","defaultSortOrder","params","useMemo","buildValidParams","data","error","isFetching","useGetAllDocumentsQuery","type","message","results","pagination","pageCount","search","stringify","replace","canCreate","useDocumentRBAC","runHookWaterfall","useStrapiApp","tableHeaders","formattedHeaders","map","header","translation","label","id","name","defaultMessage","mainField","options","draftAndPublish","push","attribute","searchable","sortable","_jsx","Page","Loading","Error","contentTypeTitle","info","displayName","handleRowClick","pathname","plugins","length","_jsxs","_Fragment","tours","contentManager","Introduction","Box","Main","Title","primaryAction","CreateNewEntry","CreateButton","subtitle","number","total","title","navigationAction","BackButton","Action","endActions","InjectionZone","area","ViewSettingsMenu","setHeaders","resetHeaders","startActions","SearchInput","disabled","target","placeholder","trackedEvent","filterable","Filters","Content","background","shadow","hasRadius","EmptyStateLayout","action","variant","content","icon","EmptyDocuments","width","Flex","gap","direction","alignItems","Table","Root","rows","isLoading","TableActionsBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Body","row","Row","cursor","onClick","documentId","CheckboxCell","cellFormatter","status","Cell","DocumentStatus","maxWidth","includes","split","Typography","textColor","getDisplayName","CellContent","rowId","ActionsCell","e","stopPropagation","TableActions","document","Pagination","onPageSizeChange","PageSize","Links","selectRow","useTable","state","locale","i18n","prevLocale","ActionBar","BulkActionsRenderer","Button","tag","ReactRouterLink","startIcon","Plus","style","textDecoration","to","minWidth","marginLeft","ProtectedListViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('react');
5
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
+ var designSystem = require('@strapi/design-system');
7
+ var InputRenderer = require('../../pages/EditView/components/InputRenderer.js');
8
+ var Preview = require('../pages/Preview.js');
9
+
10
+ const [InputPopoverProvider, useInputPopoverContext] = strapiAdmin.createContext('InputPopover');
11
+ const InputPopover = ({ documentResponse })=>{
12
+ const iframeRef = Preview.usePreviewContext('VisualEditingPopover', (state)=>state.iframeRef);
13
+ const popoverField = Preview.usePreviewContext('VisualEditingPopover', (state)=>state.popoverField);
14
+ const setPopoverField = Preview.usePreviewContext('VisualEditingPopover', (state)=>state.setPopoverField);
15
+ if (!popoverField || !documentResponse.schema || !iframeRef.current) {
16
+ return null;
17
+ }
18
+ const iframeRect = iframeRef.current.getBoundingClientRect();
19
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
20
+ children: [
21
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
22
+ position: 'fixed',
23
+ top: iframeRect.top + 'px',
24
+ left: iframeRect.left + 'px',
25
+ width: iframeRect.width + 'px',
26
+ height: iframeRect.height + 'px',
27
+ zIndex: 4
28
+ }),
29
+ /*#__PURE__*/ jsxRuntime.jsx(InputPopoverProvider, {
30
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
31
+ open: true,
32
+ onOpenChange: (open)=>!open && setPopoverField(null),
33
+ children: [
34
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
35
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
36
+ position: "fixed",
37
+ width: popoverField.position.width + 'px',
38
+ height: popoverField.position.height + 'px',
39
+ top: 0,
40
+ left: 0,
41
+ transform: `translate(${iframeRect.left + popoverField.position.left}px, ${iframeRect.top + popoverField.position.top}px)`
42
+ })
43
+ }),
44
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
45
+ sideOffset: 4,
46
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
47
+ padding: 4,
48
+ width: "400px",
49
+ children: /*#__PURE__*/ jsxRuntime.jsx(InputRenderer.InputRenderer, {
50
+ document: documentResponse,
51
+ attribute: documentResponse.schema.attributes[popoverField.path],
52
+ label: popoverField.path,
53
+ name: popoverField.path,
54
+ type: documentResponse.schema.attributes[popoverField.path].type,
55
+ visible: true
56
+ })
57
+ })
58
+ })
59
+ ]
60
+ })
61
+ })
62
+ ]
63
+ });
64
+ };
65
+ function useHasInputPopoverParent() {
66
+ const context = useInputPopoverContext('useHasInputPopoverParent', ()=>true, false);
67
+ // useContext will return undefined if the called is not wrapped in the provider
68
+ return context !== undefined;
69
+ }
70
+
71
+ exports.InputPopover = InputPopover;
72
+ exports.useHasInputPopoverParent = useHasInputPopoverParent;
73
+ //# sourceMappingURL=InputPopover.js.map