@payloadcms/ui 3.57.0-internal.1d2ebbc → 3.57.0-internal.266049e

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 (136) hide show
  1. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FormsManager/index.js +4 -2
  3. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/index.d.ts +4 -3
  5. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/index.js +41 -28
  7. package/dist/elements/BulkUpload/index.js.map +1 -1
  8. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +1 -0
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  12. package/dist/elements/DocumentLocked/index.js +41 -33
  13. package/dist/elements/DocumentLocked/index.js.map +1 -1
  14. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentTakeOver/index.js +27 -19
  16. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  17. package/dist/elements/Drawer/index.d.ts.map +1 -1
  18. package/dist/elements/Drawer/index.js +1 -0
  19. package/dist/elements/Drawer/index.js.map +1 -1
  20. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  21. package/dist/elements/FullscreenModal/index.js +1 -0
  22. package/dist/elements/FullscreenModal/index.js.map +1 -1
  23. package/dist/elements/LivePreview/IFrame/index.d.ts +1 -7
  24. package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -1
  25. package/dist/elements/LivePreview/IFrame/index.js +39 -18
  26. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  27. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  28. package/dist/elements/LivePreview/Window/index.js +135 -61
  29. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  30. package/dist/elements/PublishButton/index.js +1 -1
  31. package/dist/elements/PublishButton/index.js.map +1 -1
  32. package/dist/elements/SearchBar/index.scss +4 -0
  33. package/dist/elements/Status/index.d.ts.map +1 -1
  34. package/dist/elements/Status/index.js +1 -1
  35. package/dist/elements/Status/index.js.map +1 -1
  36. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  37. package/dist/elements/Table/DefaultCell/index.js +20 -14
  38. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  39. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  40. package/dist/elements/Table/RelationshipProvider/index.js +44 -28
  41. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  42. package/dist/elements/Thumbnail/index.d.ts +4 -2
  43. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  44. package/dist/elements/Thumbnail/index.js +6 -2
  45. package/dist/elements/Thumbnail/index.js.map +1 -1
  46. package/dist/elements/Thumbnail/index.scss +11 -9
  47. package/dist/elements/Toasts/fieldErrors.js +1 -1
  48. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  49. package/dist/exports/client/index.js +24 -24
  50. package/dist/exports/client/index.js.map +4 -4
  51. package/dist/exports/rsc/index.d.ts +1 -0
  52. package/dist/exports/rsc/index.d.ts.map +1 -1
  53. package/dist/exports/rsc/index.js +1 -0
  54. package/dist/exports/rsc/index.js.map +1 -1
  55. package/dist/exports/shared/index.js +2 -2
  56. package/dist/exports/shared/index.js.map +3 -3
  57. package/dist/fields/Blocks/index.d.ts.map +1 -1
  58. package/dist/fields/Blocks/index.js +36 -16
  59. package/dist/fields/Blocks/index.js.map +1 -1
  60. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  61. package/dist/fields/Relationship/Input.js +1 -5
  62. package/dist/fields/Relationship/Input.js.map +1 -1
  63. package/dist/fields/Upload/Input.js +20 -20
  64. package/dist/fields/Upload/Input.js.map +1 -1
  65. package/dist/forms/Form/index.js +1 -2
  66. package/dist/forms/Form/index.js.map +1 -1
  67. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  68. package/dist/forms/Form/mergeServerFormState.js +8 -0
  69. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  70. package/dist/forms/Form/types.d.ts +2 -2
  71. package/dist/forms/Form/types.d.ts.map +1 -1
  72. package/dist/forms/Form/types.js.map +1 -1
  73. package/dist/forms/RenderFields/RenderField.js +223 -236
  74. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  75. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  76. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +33 -2
  77. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  78. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  79. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  80. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  81. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  82. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +2 -0
  83. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  84. package/dist/forms/fieldSchemasToFormState/types.d.ts +6 -0
  85. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  86. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  87. package/dist/forms/useField/index.d.ts.map +1 -1
  88. package/dist/forms/useField/index.js +76 -73
  89. package/dist/forms/useField/index.js.map +1 -1
  90. package/dist/forms/useField/types.d.ts +5 -9
  91. package/dist/forms/useField/types.d.ts.map +1 -1
  92. package/dist/forms/useField/types.js.map +1 -1
  93. package/dist/providers/LivePreview/context.d.ts +17 -2
  94. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  95. package/dist/providers/LivePreview/context.js +3 -2
  96. package/dist/providers/LivePreview/context.js.map +1 -1
  97. package/dist/providers/LivePreview/index.d.ts +2 -2
  98. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  99. package/dist/providers/LivePreview/index.js +33 -19
  100. package/dist/providers/LivePreview/index.js.map +1 -1
  101. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  102. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  103. package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
  104. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  105. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  106. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  107. package/dist/providers/TableColumns/buildColumnState/renderCell.js +39 -2
  108. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  109. package/dist/styles.css +1 -1
  110. package/dist/utilities/buildFormState.d.ts +2 -0
  111. package/dist/utilities/buildFormState.d.ts.map +1 -1
  112. package/dist/utilities/buildFormState.js +20 -1
  113. package/dist/utilities/buildFormState.js.map +1 -1
  114. package/dist/utilities/formatAbsoluteURL.d.ts +8 -0
  115. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -0
  116. package/dist/utilities/formatAbsoluteURL.js +15 -0
  117. package/dist/utilities/formatAbsoluteURL.js.map +1 -0
  118. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  119. package/dist/utilities/getFolderResultsComponentAndData.js +0 -4
  120. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  121. package/dist/utilities/handleLivePreview.d.ts +58 -0
  122. package/dist/utilities/handleLivePreview.d.ts.map +1 -0
  123. package/dist/utilities/handleLivePreview.js +96 -0
  124. package/dist/utilities/handleLivePreview.js.map +1 -0
  125. package/dist/utilities/handleTakeOver.d.ts +17 -4
  126. package/dist/utilities/handleTakeOver.d.ts.map +1 -1
  127. package/dist/utilities/handleTakeOver.js +18 -2
  128. package/dist/utilities/handleTakeOver.js.map +1 -1
  129. package/dist/utilities/renderTable.d.ts +3 -2
  130. package/dist/utilities/renderTable.d.ts.map +1 -1
  131. package/dist/utilities/renderTable.js +2 -0
  132. package/dist/utilities/renderTable.js.map +1 -1
  133. package/dist/views/Edit/index.d.ts.map +1 -1
  134. package/dist/views/Edit/index.js +48 -13
  135. package/dist/views/Edit/index.js.map +1 -1
  136. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","isValidReactElement","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAsFlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,UAAU,CAAA;KACjD,CAAA;CACF,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,gBAAgB,EAAE,CAChB,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KACvB,EAAE,KACA,IAAI,CAAA;CACV,CAAA;AAID,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAgGlF,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,uBAAuC,CAAA"}
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { appendUploadSelectFields } from 'payload/shared';
6
+ import * as qs from 'qs-esm';
5
7
  import React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react';
6
8
  import { useDebounce } from '../../../hooks/useDebounce.js';
7
9
  import { useConfig } from '../../../providers/Config/index.js';
@@ -10,7 +12,7 @@ import { useTranslation } from '../../../providers/Translation/index.js';
10
12
  import { reducer } from './reducer.js';
11
13
  const Context = /*#__PURE__*/createContext({});
12
14
  export const RelationshipProvider = t0 => {
13
- const $ = _c(15);
15
+ const $ = _c(16);
14
16
  const {
15
17
  children
16
18
  } = t0;
@@ -27,6 +29,7 @@ export const RelationshipProvider = t0 => {
27
29
  config: t2
28
30
  } = useConfig();
29
31
  const {
32
+ collections,
30
33
  routes: t3,
31
34
  serverURL
32
35
  } = t2;
@@ -41,7 +44,7 @@ export const RelationshipProvider = t0 => {
41
44
  } = useLocale();
42
45
  const prevLocale = useRef(locale);
43
46
  let t4;
44
- if ($[1] !== api || $[2] !== debouncedDocuments || $[3] !== i18n || $[4] !== locale || $[5] !== serverURL) {
47
+ if ($[1] !== api || $[2] !== collections || $[3] !== debouncedDocuments || $[4] !== i18n || $[5] !== locale || $[6] !== serverURL) {
45
48
  t4 = t5 => {
46
49
  const reloadAll = t5 === undefined ? false : t5;
47
50
  Object.entries(debouncedDocuments).forEach(async t6 => {
@@ -56,16 +59,28 @@ export const RelationshipProvider = t0 => {
56
59
  if (idsToLoad.length > 0) {
57
60
  const url = `${serverURL}${api}/${slug}`;
58
61
  const params = new URLSearchParams();
62
+ const select = {};
59
63
  params.append("depth", "0");
60
64
  params.append("limit", "250");
65
+ const collection = collections.find(c => c.slug === slug);
66
+ if (collection.admin.enableListViewSelectAPI) {
67
+ const fieldToSelect = collection.admin.useAsTitle ?? "id";
68
+ select[fieldToSelect] = true;
69
+ if (collection.upload) {
70
+ appendUploadSelectFields({
71
+ collectionConfig: collection,
72
+ select
73
+ });
74
+ }
75
+ }
61
76
  if (locale) {
62
77
  params.append("locale", locale);
63
78
  }
64
- if (idsToLoad && idsToLoad.length > 0) {
65
- const idsToString = idsToLoad.map(_temp);
66
- params.append("where[id][in]", idsToString.join(","));
67
- }
68
- const query = `?${params.toString()}`;
79
+ const idsToString = idsToLoad.map(_temp);
80
+ params.append("where[id][in]", idsToString.join(","));
81
+ const query = `?${params.toString()}&${qs.stringify({
82
+ select
83
+ })}`;
69
84
  const result = await fetch(`${url}${query}`, {
70
85
  credentials: "include",
71
86
  headers: {
@@ -94,47 +109,48 @@ export const RelationshipProvider = t0 => {
94
109
  });
95
110
  };
96
111
  $[1] = api;
97
- $[2] = debouncedDocuments;
98
- $[3] = i18n;
99
- $[4] = locale;
100
- $[5] = serverURL;
101
- $[6] = t4;
112
+ $[2] = collections;
113
+ $[3] = debouncedDocuments;
114
+ $[4] = i18n;
115
+ $[5] = locale;
116
+ $[6] = serverURL;
117
+ $[7] = t4;
102
118
  } else {
103
- t4 = $[6];
119
+ t4 = $[7];
104
120
  }
105
121
  const loadRelationshipDocs = t4;
106
122
  let t5;
107
123
  let t6;
108
- if ($[7] !== loadRelationshipDocs || $[8] !== locale) {
124
+ if ($[8] !== loadRelationshipDocs || $[9] !== locale) {
109
125
  t5 = () => {
110
126
  loadRelationshipDocs(locale && prevLocale.current !== locale);
111
127
  prevLocale.current = locale;
112
128
  };
113
129
  t6 = [locale, loadRelationshipDocs];
114
- $[7] = loadRelationshipDocs;
115
- $[8] = locale;
116
- $[9] = t5;
117
- $[10] = t6;
130
+ $[8] = loadRelationshipDocs;
131
+ $[9] = locale;
132
+ $[10] = t5;
133
+ $[11] = t6;
118
134
  } else {
119
- t5 = $[9];
120
- t6 = $[10];
135
+ t5 = $[10];
136
+ t6 = $[11];
121
137
  }
122
138
  useEffect(t5, t6);
123
139
  let t7;
124
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
140
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
125
141
  t7 = relationships => {
126
142
  dispatchDocuments({
127
143
  type: "REQUEST",
128
144
  docs: relationships
129
145
  });
130
146
  };
131
- $[11] = t7;
147
+ $[12] = t7;
132
148
  } else {
133
- t7 = $[11];
149
+ t7 = $[12];
134
150
  }
135
151
  const getRelationships = t7;
136
152
  let t8;
137
- if ($[12] !== children || $[13] !== documents) {
153
+ if ($[13] !== children || $[14] !== documents) {
138
154
  t8 = _jsx(Context, {
139
155
  value: {
140
156
  documents,
@@ -142,11 +158,11 @@ export const RelationshipProvider = t0 => {
142
158
  },
143
159
  children
144
160
  });
145
- $[12] = children;
146
- $[13] = documents;
147
- $[14] = t8;
161
+ $[13] = children;
162
+ $[14] = documents;
163
+ $[15] = t8;
148
164
  } else {
149
- t8 = $[14];
165
+ t8 = $[15];
150
166
  }
151
167
  return t8;
152
168
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","routes","t3","serverURL","api","i18n","code","locale","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","params","URLSearchParams","append","idsToString","map","_temp","join","query","toString","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { TypeWithID } from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = `${serverURL}${api}/${slug}`\n\n const params = new URLSearchParams()\n\n params.append('depth', '0')\n params.append('limit', '250')\n\n if (locale) {\n params.append('locale', locale)\n }\n\n if (idsToLoad && idsToLoad.length > 0) {\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n }\n\n const query = `?${params.toString()}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, serverURL, api, i18n, locale],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","appendUploadSelectFields","qs","React","createContext","use","useCallback","useEffect","useReducer","useRef","useDebounce","useConfig","useLocale","useTranslation","reducer","Context","RelationshipProvider","t0","$","children","t1","Symbol","for","documents","dispatchDocuments","debouncedDocuments","config","t2","collections","routes","t3","serverURL","api","i18n","code","locale","prevLocale","t4","t5","reloadAll","undefined","Object","entries","forEach","t6","slug","docs","idsToLoad","t7","id","value","push","length","url","params","URLSearchParams","select","append","collection","find","admin","enableListViewSelectAPI","fieldToSelect","useAsTitle","upload","collectionConfig","idsToString","map","_temp","join","query","toString","stringify","result","fetch","credentials","headers","language","ok","json","type","relationTo","loadRelationshipDocs","current","relationships","getRelationships","t8","_jsx","useListRelationships","id_0","String"],"sources":["../../../../src/elements/Table/RelationshipProvider/index.tsx"],"sourcesContent":["'use client'\nimport type { SelectType, TypeWithID } from 'payload'\n\nimport { appendUploadSelectFields } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { createContext, use, useCallback, useEffect, useReducer, useRef } from 'react'\n\nimport { useDebounce } from '../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { reducer } from './reducer.js'\n\n// documents are first set to null when requested\n// set to false when no doc is returned\n// or set to the document returned\nexport type Documents = {\n [slug: string]: {\n [id: number | string]: false | null | TypeWithID\n }\n}\n\ntype ListRelationshipContext = {\n documents: Documents\n getRelationships: (\n docs: {\n relationTo: string\n value: number | string\n }[],\n ) => void\n}\n\nconst Context = createContext({} as ListRelationshipContext)\n\nexport const RelationshipProvider: React.FC<{ readonly children?: React.ReactNode }> = ({\n children,\n}) => {\n const [documents, dispatchDocuments] = useReducer(reducer, {})\n const debouncedDocuments = useDebounce(documents, 100)\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { i18n } = useTranslation()\n const { code: locale } = useLocale()\n const prevLocale = useRef(locale)\n\n const loadRelationshipDocs = useCallback(\n (reloadAll = false) => {\n Object.entries(debouncedDocuments).forEach(async ([slug, docs]) => {\n const idsToLoad: (number | string)[] = []\n\n Object.entries(docs).forEach(([id, value]) => {\n if (value === null || reloadAll) {\n idsToLoad.push(id)\n }\n })\n\n if (idsToLoad.length > 0) {\n const url = `${serverURL}${api}/${slug}`\n\n const params = new URLSearchParams()\n const select: SelectType = {}\n\n params.append('depth', '0')\n params.append('limit', '250')\n\n const collection = collections.find((c) => c.slug === slug)\n if (collection.admin.enableListViewSelectAPI) {\n const fieldToSelect = collection.admin.useAsTitle ?? 'id'\n select[fieldToSelect] = true\n\n if (collection.upload) {\n appendUploadSelectFields({ collectionConfig: collection, select })\n }\n }\n\n if (locale) {\n params.append('locale', locale)\n }\n\n const idsToString = idsToLoad.map((id) => String(id))\n params.append('where[id][in]', idsToString.join(','))\n\n const query = `?${params.toString()}&${qs.stringify({ select })}`\n\n const result = await fetch(`${url}${query}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (result.ok) {\n const json = await result.json()\n if (json.docs) {\n dispatchDocuments({\n type: 'ADD_LOADED',\n docs: json.docs,\n idsToLoad,\n relationTo: slug,\n })\n }\n } else {\n dispatchDocuments({ type: 'ADD_LOADED', docs: [], idsToLoad, relationTo: slug })\n }\n }\n })\n },\n [debouncedDocuments, serverURL, api, i18n, locale, collections],\n )\n\n useEffect(() => {\n void loadRelationshipDocs(locale && prevLocale.current !== locale)\n prevLocale.current = locale\n }, [locale, loadRelationshipDocs])\n\n const getRelationships = useCallback(\n (relationships: { relationTo: string; value: number | string }[]) => {\n dispatchDocuments({ type: 'REQUEST', docs: relationships })\n },\n [],\n )\n\n return <Context value={{ documents, getRelationships }}>{children}</Context>\n}\n\nexport const useListRelationships = (): ListRelationshipContext => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -6,9 +6,11 @@ export type ThumbnailProps = {
6
6
  collectionSlug?: string;
7
7
  doc?: Record<string, unknown>;
8
8
  fileSrc?: string;
9
+ height?: number;
9
10
  imageCacheTag?: string;
10
- size?: 'expand' | 'large' | 'medium' | 'small';
11
+ size?: 'expand' | 'large' | 'medium' | 'none' | 'small';
11
12
  uploadConfig?: SanitizedCollectionConfig['upload'];
13
+ width?: number;
12
14
  };
13
15
  export declare const Thumbnail: React.FC<ThumbnailProps>;
14
16
  type ThumbnailComponentProps = {
@@ -17,7 +19,7 @@ type ThumbnailComponentProps = {
17
19
  readonly filename: string;
18
20
  readonly fileSrc: string;
19
21
  readonly imageCacheTag?: string;
20
- readonly size?: 'expand' | 'large' | 'medium' | 'small';
22
+ readonly size?: 'expand' | 'large' | 'medium' | 'none' | 'small';
21
23
  };
22
24
  export declare function ThumbnailComponent(props: ThumbnailComponentProps): React.JSX.Element;
23
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC9C,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyC9C,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxD,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAyChE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;IACvD,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IAClD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAiD9C,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAA;CACjE,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAyChE"}
@@ -13,8 +13,10 @@ export const Thumbnail = props => {
13
13
  className: t0,
14
14
  doc: t1,
15
15
  fileSrc,
16
+ height,
16
17
  imageCacheTag,
17
- size
18
+ size,
19
+ width
18
20
  } = props;
19
21
  const className = t0 === undefined ? "" : t0;
20
22
  const {
@@ -70,7 +72,9 @@ export const Thumbnail = props => {
70
72
  height: "100%"
71
73
  }), fileExists && _jsx("img", {
72
74
  alt: filename,
73
- src
75
+ height,
76
+ src,
77
+ width
74
78
  }), fileExists === false && _jsx(File, {})]
75
79
  });
76
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","filename","fileExists","setFileExists","useState","t2","t3","classNames","join","t4","t5","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","_jsxs","children","_jsx","height","alt","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename } = {}, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: null | string = null\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","height","imageCacheTag","size","width","undefined","filename","fileExists","setFileExists","useState","t2","t3","classNames","join","t4","t5","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","_jsxs","children","_jsx","alt","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n height?: number\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n width?: number\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const {\n className = '',\n doc: { filename } = {},\n fileSrc,\n height,\n imageCacheTag,\n size,\n width,\n } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: null | string = null\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} height={height} src={src} width={width} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'none' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,16 +2,18 @@
2
2
 
3
3
  @layer payload-default {
4
4
  .thumbnail {
5
- min-height: 100%;
6
- flex-shrink: 0;
7
- align-self: stretch;
8
- overflow: hidden;
5
+ &:not(.thumbnail--size-none) {
6
+ min-height: 100%;
7
+ flex-shrink: 0;
8
+ align-self: stretch;
9
+ overflow: hidden;
9
10
 
10
- img,
11
- svg {
12
- width: 100%;
13
- height: 100%;
14
- object-fit: cover;
11
+ img,
12
+ svg {
13
+ width: 100%;
14
+ height: 100%;
15
+ object-fit: cover;
16
+ }
15
17
  }
16
18
 
17
19
  &--size-expand {
@@ -36,7 +36,7 @@ function createErrorsFromMessage(message) {
36
36
  if (errors.length === 1) {
37
37
  return {
38
38
  errors,
39
- message: `${intro}:`
39
+ message: `${intro}: `
40
40
  };
41
41
  }
42
42
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n\n if (!errorsString) {\n return {\n message: intro,\n }\n }\n\n const errors = errorsString.split(',').map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}:`,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n errors.length === 1 ? (\n <span data-testid=\"field-error\">{errors[0]}</span>\n ) : (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n )\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmBC,KAAe;EACzC,MAAMC,MAAA,GAAmB,EAAE;EAE3B,KAAK,MAAMC,IAAA,IAAQF,KAAA,EAAO;IACxB,IAAIE,IAAA,EAAM;MACR,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC;MACzB,IAAIC,QAAA,GAAW;MAEf;MACA,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIL,MAAA,CAAOM,MAAM,EAAED,CAAA,IAAK;QACtC,IAAIL,MAAM,CAACK,CAAA,CAAE,CAACE,UAAU,CAACL,KAAK,CAAC,EAAE,GAAG;UAClCF,MAAA,CAAOQ,MAAM,CAACH,CAAA,GAAI,GAAG,GAAGJ,IAAA;UACxBG,QAAA,GAAW;UACX;QACF;MACF;MAEA;MACA,IAAI,CAACA,QAAA,EAAU;QACbJ,MAAA,CAAOS,IAAI,CAACR,IAAA;MACd;IACF;EACF;EAEA,OAAOD,MAAA;AACT;AAEA,SAASU,wBAAwBC,OAAe;EAI9C,MAAM,CAACC,KAAA,EAAOC,YAAA,CAAa,GAAGF,OAAA,CAAQR,KAAK,CAAC;EAE5C,IAAI,CAACU,YAAA,EAAc;IACjB,OAAO;MACLF,OAAA,EAASC;IACX;EACF;EAEA,MAAME,MAAA,GAASD,YAAA,CAAaV,KAAK,CAAC,KAAKY,GAAG,CAAEC,KAAA,IAAUA,KAAA,CAAMC,UAAU,CAAC,OAAO,OAAOC,IAAI;EAEzF,IAAIJ,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLQ,MAAA;MACAH,OAAA,EAAS,GAAGC,KAAA;IACd;EACF;EAEA,OAAO;IACLE,MAAA,EAAQhB,kBAAA,CAAmBgB,MAAA;IAC3BH,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAA,CAAOR,MAAM;EACrC;AACF;AAEA,OAAO,SAAAa,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAzB,EAAA;EAA0B;IAAA0B;EAAA,IAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IACFC,EAAA,GAAAA,CAAA,KAAMb,uBAAA,CAAwBY,YAAA;IAAAD,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA3E,OAAAG,EAAA,IAA8B3B,KAAA,CAAA4B,QAAA,CAAeF,EAA8B;EAApE;IAAAT,MAAA;IAAAH;EAAA,IAAAa,EAAmB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAP,MAAA,IAAAO,CAAA,QAAAV,OAAA;IAGxBe,EAAA,GAAAC,KAAA,CAAC;MAAAC,QAAA,GACEjB,OAAA,EACAkB,KAAA,CAAAC,OAAA,CAAchB,MAAA,KAAWA,MAAA,CAAAR,MAAA,IAAgB,GACxCQ,MAAA,CAAAR,MAAA,MAAkB,GAChByB,IAAA,CAAC;QAAA,eAAiB;QAAAH,QAAA,EAAed,MAAM;MAAA,C,IAEvCiB,IAAA,CAAC;QAAA,eAAe;QAAAH,QAAA,EACbd,MAAA,CAAAC,GAAA,CAAAiB,KAED;MAAA,C,QAGF;IAAA,C;;;;;;;SAZNN,E;;AAJG,SAAAM,MAAAhB,KAAA,EAAAiB,KAAA;EAAA,OAYcF,IAAA,CAAC;IAAAH,QAAA,EAAgBZ;EAAA,GAARiB,KAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n\n if (!errorsString) {\n return {\n message: intro,\n }\n }\n\n const errors = errorsString.split(',').map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}: `,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n errors.length === 1 ? (\n <span data-testid=\"field-error\">{errors[0]}</span>\n ) : (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n )\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmBC,KAAe;EACzC,MAAMC,MAAA,GAAmB,EAAE;EAE3B,KAAK,MAAMC,IAAA,IAAQF,KAAA,EAAO;IACxB,IAAIE,IAAA,EAAM;MACR,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC;MACzB,IAAIC,QAAA,GAAW;MAEf;MACA,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIL,MAAA,CAAOM,MAAM,EAAED,CAAA,IAAK;QACtC,IAAIL,MAAM,CAACK,CAAA,CAAE,CAACE,UAAU,CAACL,KAAK,CAAC,EAAE,GAAG;UAClCF,MAAA,CAAOQ,MAAM,CAACH,CAAA,GAAI,GAAG,GAAGJ,IAAA;UACxBG,QAAA,GAAW;UACX;QACF;MACF;MAEA;MACA,IAAI,CAACA,QAAA,EAAU;QACbJ,MAAA,CAAOS,IAAI,CAACR,IAAA;MACd;IACF;EACF;EAEA,OAAOD,MAAA;AACT;AAEA,SAASU,wBAAwBC,OAAe;EAI9C,MAAM,CAACC,KAAA,EAAOC,YAAA,CAAa,GAAGF,OAAA,CAAQR,KAAK,CAAC;EAE5C,IAAI,CAACU,YAAA,EAAc;IACjB,OAAO;MACLF,OAAA,EAASC;IACX;EACF;EAEA,MAAME,MAAA,GAASD,YAAA,CAAaV,KAAK,CAAC,KAAKY,GAAG,CAAEC,KAAA,IAAUA,KAAA,CAAMC,UAAU,CAAC,OAAO,OAAOC,IAAI;EAEzF,IAAIJ,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLQ,MAAA;MACAH,OAAA,EAAS,GAAGC,KAAA;IACd;EACF;EAEA,OAAO;IACLE,MAAA,EAAQhB,kBAAA,CAAmBgB,MAAA;IAC3BH,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAA,CAAOR,MAAM;EACrC;AACF;AAEA,OAAO,SAAAa,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAzB,EAAA;EAA0B;IAAA0B;EAAA,IAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IACFC,EAAA,GAAAA,CAAA,KAAMb,uBAAA,CAAwBY,YAAA;IAAAD,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA3E,OAAAG,EAAA,IAA8B3B,KAAA,CAAA4B,QAAA,CAAeF,EAA8B;EAApE;IAAAT,MAAA;IAAAH;EAAA,IAAAa,EAAmB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAP,MAAA,IAAAO,CAAA,QAAAV,OAAA;IAGxBe,EAAA,GAAAC,KAAA,CAAC;MAAAC,QAAA,GACEjB,OAAA,EACAkB,KAAA,CAAAC,OAAA,CAAchB,MAAA,KAAWA,MAAA,CAAAR,MAAA,IAAgB,GACxCQ,MAAA,CAAAR,MAAA,MAAkB,GAChByB,IAAA,CAAC;QAAA,eAAiB;QAAAH,QAAA,EAAed,MAAM;MAAA,C,IAEvCiB,IAAA,CAAC;QAAA,eAAe;QAAAH,QAAA,EACbd,MAAA,CAAAC,GAAA,CAAAiB,KAED;MAAA,C,QAGF;IAAA,C;;;;;;;SAZNN,E;;AAJG,SAAAM,MAAAhB,KAAA,EAAAiB,KAAA;EAAA,OAYcF,IAAA,CAAC;IAAAH,QAAA,EAAgBZ;EAAA,GAARiB,KAAA;AAAA","ignoreList":[]}