@payloadcms/ui 3.0.0-beta.130 → 3.0.0-beta.131

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 (209) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js +4 -4
  3. package/dist/elements/AddNewRelation/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FormsManager/index.d.ts +2 -2
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  8. package/dist/elements/Button/index.d.ts.map +1 -1
  9. package/dist/elements/Button/index.js +2 -0
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Button/types.d.ts +1 -0
  12. package/dist/elements/Button/types.d.ts.map +1 -1
  13. package/dist/elements/Button/types.js.map +1 -1
  14. package/dist/elements/DeleteMany/index.js +1 -1
  15. package/dist/elements/DeleteMany/index.js.map +1 -1
  16. package/dist/elements/DocumentControls/index.d.ts +2 -2
  17. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  18. package/dist/elements/DocumentControls/index.js +2 -2
  19. package/dist/elements/DocumentControls/index.js.map +1 -1
  20. package/dist/elements/DocumentFields/index.d.ts +2 -2
  21. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  22. package/dist/elements/DocumentFields/index.js.map +1 -1
  23. package/dist/elements/EditMany/index.js +2 -2
  24. package/dist/elements/EditMany/index.js.map +1 -1
  25. package/dist/elements/EmailAndUsername/index.d.ts +3 -3
  26. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  27. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  28. package/dist/elements/HydrateAuthProvider/index.d.ts +2 -2
  29. package/dist/elements/HydrateAuthProvider/index.d.ts.map +1 -1
  30. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  31. package/dist/elements/ListDrawer/types.d.ts +3 -3
  32. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  33. package/dist/elements/ListDrawer/types.js.map +1 -1
  34. package/dist/elements/PublishMany/index.js +1 -1
  35. package/dist/elements/PublishMany/index.js.map +1 -1
  36. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  37. package/dist/elements/RelationshipTable/index.js +1 -1
  38. package/dist/elements/RelationshipTable/index.js.map +1 -1
  39. package/dist/elements/RenderServerComponent/index.d.ts.map +1 -1
  40. package/dist/elements/RenderServerComponent/index.js +11 -2
  41. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  42. package/dist/elements/Status/index.js +1 -1
  43. package/dist/elements/Status/index.js.map +1 -1
  44. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +1 -1
  45. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  46. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  47. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +1 -1
  48. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  49. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  50. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +1 -1
  51. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  52. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  53. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +1 -1
  54. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  55. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  56. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +1 -1
  57. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  58. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  59. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +1 -1
  60. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  61. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  62. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +1 -1
  63. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  64. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +1 -1
  66. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  70. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  71. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  73. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  74. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  75. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -1
  76. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  77. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  78. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  79. package/dist/elements/TableColumns/index.js +56 -21
  80. package/dist/elements/TableColumns/index.js.map +1 -1
  81. package/dist/elements/UnpublishMany/index.js +1 -1
  82. package/dist/elements/UnpublishMany/index.js.map +1 -1
  83. package/dist/elements/Upload/index.d.ts.map +1 -1
  84. package/dist/elements/Upload/index.js +1 -1
  85. package/dist/elements/Upload/index.js.map +1 -1
  86. package/dist/exports/client/{DatePicker-4XUJ6BT3.js → DatePicker-23XPGPYP.js} +2 -2
  87. package/dist/exports/client/{chunk-Z4TYTOUE.js → chunk-PELL3UMP.js} +1 -1
  88. package/dist/exports/client/{chunk-Z4TYTOUE.js.map → chunk-PELL3UMP.js.map} +3 -3
  89. package/dist/exports/client/index.d.ts +2 -0
  90. package/dist/exports/client/index.d.ts.map +1 -1
  91. package/dist/exports/client/index.js +10 -10
  92. package/dist/exports/client/index.js.map +4 -4
  93. package/dist/exports/shared/index.js +2 -2
  94. package/dist/exports/shared/index.js.map +2 -2
  95. package/dist/fields/Array/ArrayRow.d.ts +2 -2
  96. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  97. package/dist/fields/Array/ArrayRow.js +3 -3
  98. package/dist/fields/Array/ArrayRow.js.map +1 -1
  99. package/dist/fields/Array/index.d.ts.map +1 -1
  100. package/dist/fields/Array/index.js +2 -1
  101. package/dist/fields/Array/index.js.map +1 -1
  102. package/dist/fields/Blocks/BlockRow.d.ts +2 -2
  103. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  104. package/dist/fields/Blocks/BlockRow.js +3 -3
  105. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  106. package/dist/fields/Blocks/index.d.ts.map +1 -1
  107. package/dist/fields/Blocks/index.js +2 -1
  108. package/dist/fields/Blocks/index.js.map +1 -1
  109. package/dist/fields/Group/index.js +3 -3
  110. package/dist/fields/Group/index.js.map +1 -1
  111. package/dist/fields/Hidden/index.d.ts.map +1 -1
  112. package/dist/fields/Hidden/index.js +36 -49
  113. package/dist/fields/Hidden/index.js.map +1 -1
  114. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +1 -1
  115. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  116. package/dist/fields/Relationship/select-components/SingleValue/index.js +1 -1
  117. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  118. package/dist/fields/Tabs/index.js.map +1 -1
  119. package/dist/fields/Upload/HasMany/index.js +2 -2
  120. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  121. package/dist/fields/Upload/HasMany/index.scss +8 -0
  122. package/dist/fields/Upload/Input.d.ts.map +1 -1
  123. package/dist/fields/Upload/Input.js +4 -6
  124. package/dist/fields/Upload/Input.js.map +1 -1
  125. package/dist/fields/index.d.ts +3 -2
  126. package/dist/fields/index.d.ts.map +1 -1
  127. package/dist/fields/index.js.map +1 -1
  128. package/dist/forms/RenderFields/RenderField.d.ts +2 -2
  129. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  130. package/dist/forms/RenderFields/RenderField.js +0 -1
  131. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  132. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  133. package/dist/forms/RenderFields/index.js +5 -6
  134. package/dist/forms/RenderFields/index.js.map +1 -1
  135. package/dist/forms/RenderFields/types.d.ts +3 -3
  136. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  137. package/dist/forms/RenderFields/types.js.map +1 -1
  138. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +4 -2
  139. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  140. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +3 -2
  141. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  142. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  143. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  144. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  145. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +4 -2
  146. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  147. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  148. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  149. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -2
  150. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  151. package/dist/forms/fieldSchemasToFormState/types.d.ts +4 -2
  152. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  153. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  154. package/dist/forms/withCondition/WatchCondition.d.ts +1 -4
  155. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  156. package/dist/forms/withCondition/WatchCondition.js +1 -3
  157. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  158. package/dist/forms/withCondition/index.d.ts +2 -2
  159. package/dist/forms/withCondition/index.d.ts.map +1 -1
  160. package/dist/forms/withCondition/index.js +1 -8
  161. package/dist/forms/withCondition/index.js.map +1 -1
  162. package/dist/graphics/ExternalLink/index.d.ts +1 -0
  163. package/dist/graphics/ExternalLink/index.d.ts.map +1 -1
  164. package/dist/graphics/ExternalLink/index.js +6 -9
  165. package/dist/graphics/ExternalLink/index.js.map +1 -1
  166. package/dist/graphics/ExternalLink/index.scss +14 -0
  167. package/dist/providers/Auth/index.d.ts +4 -4
  168. package/dist/providers/Auth/index.d.ts.map +1 -1
  169. package/dist/providers/Auth/index.js.map +1 -1
  170. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  171. package/dist/providers/DocumentInfo/index.js.map +1 -1
  172. package/dist/providers/DocumentInfo/types.d.ts +2 -2
  173. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  174. package/dist/providers/DocumentInfo/types.js.map +1 -1
  175. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +3 -3
  176. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  177. package/dist/providers/DocumentInfo/useGetDocPermissions.js +1 -1
  178. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  179. package/dist/providers/Root/index.d.ts +2 -2
  180. package/dist/providers/Root/index.d.ts.map +1 -1
  181. package/dist/providers/Root/index.js.map +1 -1
  182. package/dist/scss/vars.scss +2 -2
  183. package/dist/styles.css +1 -1
  184. package/dist/utilities/buildTableState.d.ts.map +1 -1
  185. package/dist/utilities/buildTableState.js +18 -6
  186. package/dist/utilities/buildTableState.js.map +1 -1
  187. package/dist/utilities/groupNavItems.d.ts +2 -2
  188. package/dist/utilities/groupNavItems.d.ts.map +1 -1
  189. package/dist/utilities/groupNavItems.js +1 -1
  190. package/dist/utilities/groupNavItems.js.map +1 -1
  191. package/dist/utilities/hasSavePermission.d.ts +2 -2
  192. package/dist/utilities/hasSavePermission.d.ts.map +1 -1
  193. package/dist/utilities/hasSavePermission.js +2 -2
  194. package/dist/utilities/hasSavePermission.js.map +1 -1
  195. package/dist/utilities/removeUndefined.d.ts +2 -0
  196. package/dist/utilities/removeUndefined.d.ts.map +1 -0
  197. package/dist/utilities/removeUndefined.js +4 -0
  198. package/dist/utilities/removeUndefined.js.map +1 -0
  199. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  200. package/dist/views/Edit/Auth/index.js +11 -13
  201. package/dist/views/Edit/Auth/index.js.map +1 -1
  202. package/dist/views/List/ListHeader/index.d.ts +2 -3
  203. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  204. package/dist/views/List/ListHeader/index.js.map +1 -1
  205. package/dist/views/List/types.d.ts +2 -2
  206. package/dist/views/List/types.d.ts.map +1 -1
  207. package/dist/views/List/types.js.map +1 -1
  208. package/package.json +5 -5
  209. /package/dist/exports/client/{DatePicker-4XUJ6BT3.js.map → DatePicker-23XPGPYP.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","content","t3","Array","isArray","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, OptionObject, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { optionsAreObjects } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\n\nexport interface SelectCellProps extends DefaultCellComponentProps<any, SelectFieldClient> {}\n\nexport const SelectCell: React.FC<SelectCellProps> = ({ cellData, field: { options } }) => {\n const { i18n } = useTranslation()\n\n const findLabel = (items: string[]) =>\n items\n .map((i) => {\n const found = (options as OptionObject[]).filter((f: OptionObject) => f.value === i)?.[0]\n ?.label\n return getTranslation(found, i18n)\n })\n .join(', ')\n\n let content = ''\n if (optionsAreObjects(options)) {\n content = Array.isArray(cellData)\n ? findLabel(cellData) // hasMany\n : findLabel([cellData])\n } else {\n content = Array.isArray(cellData)\n ? cellData.join(', ') // hasMany\n : cellData\n }\n\n return <span>{content}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAI/B,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAAgC;EAAb;IAAAK;EAAA,IAAAD,EAAW;EAClF;IAAAE;EAAA,IAAiBR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAN,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAK,IAAA;IAECC,EAAA,GAAAC,KAAA,IAChBA,KAAA,CAAAC,GAAA,CAAAC,CAAA;MAEI,MAAAC,KAAA,GAAcN,OAAC,CAAAO,MAAA,CAAAC,CAAA,IAAuDA,CAAA,CAAAC,KAAA,KAAYJ,CAAA,QAAAK,KAAA;MAC9E,OACGpB,cAAA,CAAegB,KAAA,EAAOL,IAAA;IAAA,CAC/B,EAAAU,IAAA,CACM;IAAAf,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAPV,MAAAgB,SAAA,GAAkBV,EAOR;EAEV,IAAAW,OAAA;EAAc,IACVtB,iBAAA,CAAkBS,OAAA;IAAA,IAAAc,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAgB,SAAA;MACVE,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBe,SAAA,CAAUf,QAAA,IACVe,SAAA,EAAWf,QAAA,CAAS;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAgB,SAAA;MAAAhB,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFxBiB,OAAA,CAAAA,CAAA,CAAUA,EAEc;EAFxB;IAAA,IAAAC,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA;MAIUiB,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBA,QAAA,CAAAc,IAAA,CAAc,QACdd,QAAA;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFJiB,OAAA,CAAAA,CAAA,CAAUA,EAEN;EAFJ;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAiB,OAAA;IAKKC,EAAA,GAAAG,IAAA,CAAC;MAAAC,QAAA,EAAML;IAAA,C;;;;;;SAAPC,E;CACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","content","t3","Array","isArray","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, OptionObject, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { optionsAreObjects } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\n\nexport interface SelectCellProps extends DefaultCellComponentProps<SelectFieldClient> {}\n\nexport const SelectCell: React.FC<SelectCellProps> = ({ cellData, field: { options } }) => {\n const { i18n } = useTranslation()\n\n const findLabel = (items: string[]) =>\n items\n .map((i) => {\n const found = (options as OptionObject[]).filter((f: OptionObject) => f.value === i)?.[0]\n ?.label\n return getTranslation(found, i18n)\n })\n .join(', ')\n\n let content = ''\n if (optionsAreObjects(options)) {\n content = Array.isArray(cellData)\n ? findLabel(cellData) // hasMany\n : findLabel([cellData])\n } else {\n content = Array.isArray(cellData)\n ? cellData.join(', ') // hasMany\n : cellData\n }\n\n return <span>{content}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAI/B,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAAgC;EAAb;IAAAK;EAAA,IAAAD,EAAW;EAClF;IAAAE;EAAA,IAAiBR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAN,CAAA,QAAAI,OAAA,IAAAJ,CAAA,QAAAK,IAAA;IAECC,EAAA,GAAAC,KAAA,IAChBA,KAAA,CAAAC,GAAA,CAAAC,CAAA;MAEI,MAAAC,KAAA,GAAcN,OAAC,CAAAO,MAAA,CAAAC,CAAA,IAAuDA,CAAA,CAAAC,KAAA,KAAYJ,CAAA,QAAAK,KAAA;MAC9E,OACGpB,cAAA,CAAegB,KAAA,EAAOL,IAAA;IAAA,CAC/B,EAAAU,IAAA,CACM;IAAAf,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAPV,MAAAgB,SAAA,GAAkBV,EAOR;EAEV,IAAAW,OAAA;EAAc,IACVtB,iBAAA,CAAkBS,OAAA;IAAA,IAAAc,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAgB,SAAA;MACVE,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBe,SAAA,CAAUf,QAAA,IACVe,SAAA,EAAWf,QAAA,CAAS;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAgB,SAAA;MAAAhB,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFxBiB,OAAA,CAAAA,CAAA,CAAUA,EAEc;EAFxB;IAAA,IAAAC,EAAA;IAAA,IAAAlB,CAAA,QAAAC,QAAA;MAIUiB,EAAA,GAAAC,KAAA,CAAAC,OAAA,CAAcnB,QAAA,IACpBA,QAAA,CAAAc,IAAA,CAAc,QACdd,QAAA;MAAAD,CAAA,MAAAC,QAAA;MAAAD,CAAA,MAAAkB,EAAA;IAAA;MAAAA,EAAA,GAAAlB,CAAA;IAAA;IAFJiB,OAAA,CAAAA,CAAA,CAAUA,EAEN;EAFJ;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAiB,OAAA;IAKKC,EAAA,GAAAG,IAAA,CAAC;MAAAC,QAAA,EAAML;IAAA,C;;;;;;SAAPC,E;CACT","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  import type { DefaultCellComponentProps, TextareaFieldClient } from 'payload';
2
2
  import React from 'react';
3
- export declare const TextareaCell: React.FC<DefaultCellComponentProps<string, TextareaFieldClient>>;
3
+ export declare const TextareaCell: React.FC<DefaultCellComponentProps<TextareaFieldClient>>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAKzF,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7E,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAKjF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","TextareaCell","cellData","textToShow","length","substring","_jsx"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, TextareaFieldClient } from 'payload'\n\nimport React from 'react'\n\nexport const TextareaCell: React.FC<DefaultCellComponentProps<string, TextareaFieldClient>> = ({\n cellData,\n}) => {\n const textToShow = cellData?.length > 100 ? `${cellData.substring(0, 100)}\\u2026` : cellData\n return <span>{textToShow}</span>\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAElB,OAAO,MAAMC,YAAA,GAAiFA,CAAC;EAC7FC;AAAQ,CACT;EACC,MAAMC,UAAA,GAAaD,QAAA,EAAUE,MAAA,GAAS,MAAM,GAAGF,QAAA,CAASG,SAAS,CAAC,GAAG,YAAY,GAAGH,QAAA;EACpF,oBAAOI,IAAA,CAAC;cAAMH;;AAChB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","TextareaCell","cellData","textToShow","length","substring","_jsx"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, TextareaFieldClient } from 'payload'\n\nimport React from 'react'\n\nexport const TextareaCell: React.FC<DefaultCellComponentProps<TextareaFieldClient>> = ({\n cellData,\n}) => {\n const textToShow = cellData?.length > 100 ? `${cellData.substring(0, 100)}\\u2026` : cellData\n return <span>{textToShow}</span>\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAElB,OAAO,MAAMC,YAAA,GAAyEA,CAAC;EACrFC;AAAQ,CACT;EACC,MAAMC,UAAA,GAAaD,QAAA,EAAUE,MAAA,GAAS,MAAM,GAAGF,QAAA,CAASG,SAAS,CAAC,GAAG,YAAY,GAAGH,QAAA;EACpF,oBAAOI,IAAA,CAAC;cAAMH;;AAChB","ignoreList":[]}
@@ -1,16 +1,16 @@
1
1
  export declare const cellComponents: {
2
2
  array: import("react").FC<import("./Array/index.js").ArrayCellProps>;
3
3
  blocks: import("react").FC<import("./Blocks/index.js").BlocksCellProps>;
4
- checkbox: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<boolean, import("packages/payload/src/index.js").CheckboxFieldClient>>;
4
+ checkbox: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<import("packages/payload/src/index.js").CheckboxFieldClient>>;
5
5
  code: import("react").FC<import("./Code/index.js").CodeCellProps>;
6
- date: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<string | number | Date, import("packages/payload/src/index.js").DateFieldClient>>;
6
+ date: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<import("packages/payload/src/index.js").DateFieldClient>>;
7
7
  File: import("react").FC<import("./File/index.js").FileCellProps>;
8
8
  join: import("react").FC<import("./Relationship/index.js").RelationshipCellProps>;
9
- json: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<string, import("packages/payload/src/index.js").JSONFieldClient>>;
9
+ json: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<import("packages/payload/src/index.js").JSONFieldClient>>;
10
10
  radio: import("react").FC<import("./Select/index.js").SelectCellProps>;
11
11
  relationship: import("react").FC<import("./Relationship/index.js").RelationshipCellProps>;
12
12
  select: import("react").FC<import("./Select/index.js").SelectCellProps>;
13
- textarea: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<string, import("packages/payload/src/index.js").TextareaFieldClient>>;
13
+ textarea: import("react").FC<import("packages/payload/src/index.js").DefaultCellComponentProps<import("packages/payload/src/index.js").TextareaFieldClient>>;
14
14
  upload: import("react").FC<import("./Relationship/index.js").RelationshipCellProps>;
15
15
  };
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
- import { type ClientCollectionConfig, type DefaultCellComponentProps, type Field, type PaginatedDocs, type Payload, type SanitizedCollectionConfig } from 'payload';
2
+ import type { ClientCollectionConfig, DefaultCellComponentProps, Field, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
3
3
  import type { ColumnPreferences } from '../../providers/ListQuery/index.js';
4
4
  import type { SortColumnProps } from '../SortColumn/index.js';
5
5
  import type { Column } from '../Table/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,KAAK,EAEV,KAAK,aAAa,EAClB,KAAK,OAAO,EAEZ,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAyPnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EAEzB,KAAK,EACL,aAAa,EACb,OAAO,EAEP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAa/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAC7D,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1C,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AAED,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAyPnD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","deepCopyObjectSimple","fieldIsPresentationalOnly","React","RenderCustomComponent","RenderDefaultCell","SelectAll","SelectRow","SortColumn","flattenFieldMap","RenderServerComponent","buildColumnState","args","beforeRows","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","clientFields","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","CustomLabel","_jsx","Component","importMap","fieldAffectsDataSubFields","type","Heading","disable","label","baseCellClientProps","cellData","rowData","serverProps","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","CustomCell","editor","Error","CellComponent","clientProps","Cell","CustomComponent","Fallback","columnIndex","_"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\n\nimport {\n type ClientCollectionConfig,\n type DefaultCellComponentProps,\n type Field,\n MissingEditorProp,\n type PaginatedDocs,\n type Payload,\n type PayloadComponent,\n type SanitizedCollectionConfig,\n type StaticLabel,\n} from 'payload'\nimport { deepCopyObjectSimple, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SelectAll,\n SelectRow,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n collectionConfig: ClientCollectionConfig\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: Field[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n const clientFields = collectionConfig.fields\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenFieldMap(clientFields)\n let _sortedFieldMap = flattenFieldMap(fields) // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n const CustomLabel = CustomLabelToRender ? (\n <RenderServerComponent Component={CustomLabelToRender} importMap={payload.importMap} />\n ) : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionConfig: deepCopyObjectSimple(collectionConfig),\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const serverProps = {\n field: _field,\n i18n,\n payload,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n /**\n * We have to deep copy all the props we send to the client (= CellComponent.clientProps).\n * That way, every editor's field / cell props we send to the client have their own object references.\n *\n * If we send the same object reference to the client twice (e.g. through some configurations where 2 or more fields\n * reference the same editor object, like the root editor), the admin panel may hang indefinitely. This has been happening since\n * a newer Next.js update that made it break when sending the same object reference to the client twice.\n *\n * We can use deepCopyObjectSimple as client props should be JSON-serializable.\n */\n const CellComponent: PayloadComponent = _field.editor.CellComponent\n if (typeof CellComponent === 'object' && CellComponent.clientProps) {\n CellComponent.clientProps = deepCopyObjectSimple(CellComponent.clientProps)\n }\n\n CustomCell = (\n <RenderServerComponent\n clientProps={cellClientProps}\n Component={CellComponent}\n importMap={payload.importMap}\n serverProps={serverProps}\n />\n )\n } else {\n CustomCell =\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell ? (\n <RenderServerComponent\n clientProps={cellClientProps}\n Component={\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell\n }\n importMap={payload.importMap}\n serverProps={serverProps}\n />\n ) : undefined\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted?.unshift({\n accessor: '_select',\n active: true,\n field: null,\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","deepCopyObjectSimple","fieldIsPresentationalOnly","React","RenderCustomComponent","RenderDefaultCell","SelectAll","SelectRow","SortColumn","flattenFieldMap","RenderServerComponent","buildColumnState","args","beforeRows","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","fields","i18n","payload","sortColumnProps","useAsTitle","clientFields","sortedFieldMap","_sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sortFieldMap","fieldMap","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","_field","find","f","columnPreference","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","CustomLabel","_jsx","Component","importMap","fieldAffectsDataSubFields","type","Heading","disable","label","baseCellClientProps","cellData","rowData","serverProps","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","CustomCell","editor","Error","CellComponent","clientProps","Cell","CustomComponent","Fallback","columnIndex","_"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n PaginatedDocs,\n Payload,\n PayloadComponent,\n SanitizedCollectionConfig,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { deepCopyObjectSimple, fieldIsPresentationalOnly } from 'payload/shared'\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SelectAll,\n SelectRow,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n collectionConfig: ClientCollectionConfig\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: Field[]\n i18n: I18nClient\n payload: Payload\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n fields,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n const clientFields = collectionConfig.fields\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenFieldMap(clientFields)\n let _sortedFieldMap = flattenFieldMap(fields) // TODO: think of a way to avoid this additional flatten\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap?.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n const sortFieldMap = (fieldMap, sortTo) =>\n fieldMap?.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n\n if (aIndex === -1) {\n return 1\n }\n\n if (bIndex === -1) {\n return -1\n }\n\n return aIndex - bIndex\n })\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortFieldMap(sortedFieldMap, sortTo)\n _sortedFieldMap = sortFieldMap(_sortedFieldMap, sortTo) // TODO: think of a way to avoid this additional sort\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap?.reduce((acc, field, index) => {\n const _field = _sortedFieldMap.find(\n (f) => 'name' in field && 'name' in f && f.name === field.name,\n )\n\n const columnPreference = columnPreferences?.find(\n (preference) => field && 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find(\n (column) => field && 'name' in field && column.accessor === field.name,\n )?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n _field &&\n 'admin' in _field &&\n 'components' in _field.admin &&\n 'Label' in _field.admin.components &&\n _field.admin.components.Label !== undefined // let it return `null`\n ? _field.admin.components.Label\n : undefined\n\n const CustomLabel = CustomLabelToRender ? (\n <RenderServerComponent Component={CustomLabelToRender} importMap={payload.importMap} />\n ) : undefined\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n Label={CustomLabel}\n label={field && 'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n const baseCellClientProps: DefaultCellComponentProps = {\n cellData: undefined,\n collectionConfig: deepCopyObjectSimple(collectionConfig),\n customCellProps,\n field,\n rowData: undefined,\n }\n\n const serverProps: Pick<DefaultServerCellComponentProps, 'field' | 'i18n' | 'payload'> = {\n field: _field,\n i18n,\n payload,\n }\n\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n CustomLabel,\n field,\n Heading,\n renderedCells: active\n ? docs.map((doc, i) => {\n const isLinkedColumn = index === activeColumnsIndices[0]\n\n const cellClientProps: DefaultCellComponentProps = {\n ...baseCellClientProps,\n cellData: 'name' in field ? doc[field.name] : undefined,\n link: isLinkedColumn,\n rowData: doc,\n }\n\n let CustomCell = null\n\n if (_field?.type === 'richText') {\n if (!_field?.editor) {\n throw new MissingEditorProp(_field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof _field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!_field.admin) {\n _field.admin = {}\n }\n\n if (!_field.admin.components) {\n _field.admin.components = {}\n }\n\n /**\n * We have to deep copy all the props we send to the client (= CellComponent.clientProps).\n * That way, every editor's field / cell props we send to the client have their own object references.\n *\n * If we send the same object reference to the client twice (e.g. through some configurations where 2 or more fields\n * reference the same editor object, like the root editor), the admin panel may hang indefinitely. This has been happening since\n * a newer Next.js update that made it break when sending the same object reference to the client twice.\n *\n * We can use deepCopyObjectSimple as client props should be JSON-serializable.\n */\n const CellComponent: PayloadComponent = _field.editor.CellComponent\n if (typeof CellComponent === 'object' && CellComponent.clientProps) {\n CellComponent.clientProps = deepCopyObjectSimple(CellComponent.clientProps)\n }\n\n CustomCell = (\n <RenderServerComponent\n clientProps={cellClientProps}\n Component={CellComponent}\n importMap={payload.importMap}\n serverProps={serverProps}\n />\n )\n } else {\n CustomCell =\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell ? (\n <RenderServerComponent\n clientProps={cellClientProps}\n Component={\n _field?.admin && 'components' in _field.admin && _field.admin.components?.Cell\n }\n importMap={payload.importMap}\n serverProps={serverProps}\n />\n ) : undefined\n }\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomCell}\n Fallback={\n <RenderDefaultCell\n clientProps={cellClientProps}\n columnIndex={index}\n enableRowSelections={enableRowSelections}\n isLinkedColumn={isLinkedColumn}\n />\n }\n key={`${i}-${index}`}\n />\n )\n })\n : [],\n }\n\n acc.push(column)\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted?.unshift({\n accessor: '_select',\n active: true,\n field: null,\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAUD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoMhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAiD,MAAM,OAAO,CAAA;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAO/C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACpC,UAAU,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,iBAAiB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,kBAAkB,8BAAoD,CAAA;AAEnF,eAAO,MAAM,eAAe,QAAO,aAA+C,CAAA;AAElF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,iBAAiB,CAAA;CAC3B,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAA;IACpB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,QAAQ,CAAC,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;CACnD,CAAA;AAUD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoPhD,CAAA"}
@@ -5,6 +5,7 @@ import React, { createContext, useCallback, useContext } from 'react';
5
5
  import { useConfig } from '../../providers/Config/index.js';
6
6
  import { usePreferences } from '../../providers/Preferences/index.js';
7
7
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
8
+ import { abortAndIgnore } from '../../utilities/abortAndIgnore.js';
8
9
  export const TableColumnContext = /*#__PURE__*/createContext({});
9
10
  export const useTableColumns = () => {
10
11
  return useContext(TableColumnContext);
@@ -54,7 +55,9 @@ export const TableColumnsProvider = ({
54
55
  setPreference
55
56
  } = usePreferences();
56
57
  const [tableColumns, setTableColumns] = React.useState(columnState);
58
+ const tableStateControllerRef = React.useRef(null);
57
59
  const moveColumn = useCallback(async args => {
60
+ abortAndIgnore(tableStateControllerRef.current);
58
61
  const {
59
62
  fromIndex,
60
63
  toIndex
@@ -62,40 +65,67 @@ export const TableColumnsProvider = ({
62
65
  const withMovedColumn = [...tableColumns];
63
66
  const [columnToMove] = withMovedColumn.splice(fromIndex, 1);
64
67
  withMovedColumn.splice(toIndex, 0, columnToMove);
65
- const {
66
- state: columnState_0,
67
- Table
68
- } = await getTableState({
68
+ setTableColumns(withMovedColumn);
69
+ const controller = new AbortController();
70
+ tableStateControllerRef.current = controller;
71
+ const result = await getTableState({
69
72
  collectionSlug,
70
73
  columns: sanitizeColumns(withMovedColumn),
71
74
  docs,
72
75
  enableRowSelections,
73
76
  renderRowTypes,
77
+ signal: controller.signal,
74
78
  tableAppearance
75
79
  });
76
- setTableColumns(columnState_0);
77
- setTable(Table);
80
+ if (result) {
81
+ setTableColumns(result.state);
82
+ setTable(result.Table);
83
+ }
78
84
  }, [tableColumns, collectionSlug, docs, getTableState, setTable, enableRowSelections, renderRowTypes, tableAppearance]);
79
85
  const toggleColumn = useCallback(async column => {
80
- const toggledColumns = tableColumns.map(col => {
81
- return {
82
- accessor: col.accessor,
83
- active: col.accessor === column ? !col.active : col.active
84
- };
85
- });
86
+ abortAndIgnore(tableStateControllerRef.current);
86
87
  const {
87
- state: columnState_1,
88
- Table: Table_0
89
- } = await getTableState({
88
+ newColumnState,
89
+ toggledColumns
90
+ } = tableColumns.reduce((acc, col) => {
91
+ if (col.accessor === column) {
92
+ acc.newColumnState.push({
93
+ ...col,
94
+ accessor: col.accessor,
95
+ active: !col.active
96
+ });
97
+ acc.toggledColumns.push({
98
+ accessor: col.accessor,
99
+ active: !col.active
100
+ });
101
+ } else {
102
+ acc.newColumnState.push(col);
103
+ acc.toggledColumns.push({
104
+ accessor: col.accessor,
105
+ active: col.active
106
+ });
107
+ }
108
+ return acc;
109
+ }, {
110
+ newColumnState: [],
111
+ toggledColumns: []
112
+ });
113
+ setTableColumns(newColumnState);
114
+ const controller_0 = new AbortController();
115
+ tableStateControllerRef.current = controller_0;
116
+ const result_0 = await getTableState({
90
117
  collectionSlug,
91
118
  columns: toggledColumns,
92
119
  docs,
93
120
  enableRowSelections,
94
121
  renderRowTypes,
122
+ signal: controller_0.signal,
95
123
  tableAppearance
96
124
  });
97
- setTableColumns(columnState_1);
98
- setTable(Table_0);
125
+ if (result_0) {
126
+ setTableColumns(result_0.state);
127
+ setTable(result_0.Table);
128
+ }
99
129
  }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
100
130
  const setActiveColumns = React.useCallback(async activeColumnAccessors => {
101
131
  const activeColumns = tableColumns.map(col_0 => {
@@ -112,8 +142,8 @@ export const TableColumnsProvider = ({
112
142
  return indexOfFirst > indexOfSecond ? 1 : -1;
113
143
  });
114
144
  const {
115
- state: columnState_2,
116
- Table: Table_1
145
+ state: columnState_0,
146
+ Table
117
147
  } = await getTableState({
118
148
  collectionSlug,
119
149
  columns: activeColumns,
@@ -122,8 +152,8 @@ export const TableColumnsProvider = ({
122
152
  renderRowTypes,
123
153
  tableAppearance
124
154
  });
125
- setTableColumns(columnState_2);
126
- setTable(Table_1);
155
+ setTableColumns(columnState_0);
156
+ setTable(Table);
127
157
  }, [tableColumns, getTableState, setTable, collectionSlug, docs, enableRowSelections, renderRowTypes, tableAppearance]);
128
158
  const resetColumnsState = React.useCallback(async () => {
129
159
  await setActiveColumns(defaultColumns);
@@ -153,6 +183,11 @@ export const TableColumnsProvider = ({
153
183
  };
154
184
  void sync();
155
185
  }, [preferenceKey, getPreference, collectionSlug, fields, defaultColumns, useAsTitle, listPreferences, enableRowSelections, sortColumnProps]);
186
+ React.useEffect(() => {
187
+ return () => {
188
+ abortAndIgnore(tableStateControllerRef.current);
189
+ };
190
+ }, []);
156
191
  return /*#__PURE__*/_jsx(TableColumnContext.Provider, {
157
192
  value: {
158
193
  columns: tableColumns,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","setPreference","tableColumns","setTableColumns","useState","moveColumn","args","fromIndex","toIndex","withMovedColumn","columnToMove","splice","state","Table","toggleColumn","column","toggledColumns","col","setActiveColumns","activeColumnAccessors","activeColumns","includes","toSorted","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","current","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const toggledColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns.map((col) => {\n return {\n accessor: col.accessor,\n active: col.accessor === column ? !col.active : col.active,\n }\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .toSorted((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","useCallback","useContext","useConfig","usePreferences","useServerFunctions","abortAndIgnore","TableColumnContext","useTableColumns","sanitizeColumns","columns","map","accessor","active","TableColumnsProvider","children","collectionSlug","columnState","docs","enableRowSelections","LinkedCellOverride","listPreferences","preferenceKey","renderRowTypes","setTable","sortColumnProps","tableAppearance","getEntityConfig","getTableState","admin","defaultColumns","useAsTitle","fields","prevCollection","useRef","getPreference","setPreference","tableColumns","setTableColumns","useState","tableStateControllerRef","moveColumn","args","current","fromIndex","toIndex","withMovedColumn","columnToMove","splice","controller","AbortController","result","signal","state","Table","toggleColumn","column","newColumnState","toggledColumns","reduce","acc","col","push","setActiveColumns","activeColumnAccessors","activeColumns","includes","toSorted","first","second","indexOfFirst","indexOf","indexOfSecond","resetColumnsState","useEffect","sync","collectionHasChanged","currentPreferences","_jsx","Provider","value"],"sources":["../../../src/elements/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport React, { createContext, useCallback, useContext } from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListQuery/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore } from '../../utilities/abortAndIgnore.js'\n\nexport interface ITableColumns {\n columns: Column[]\n LinkedCellOverride?: React.ReactNode\n moveColumn: (args: { fromIndex: number; toIndex: number }) => Promise<void>\n resetColumnsState: () => Promise<void>\n setActiveColumns: (columns: string[]) => Promise<void>\n toggleColumn: (column: string) => Promise<void>\n}\n\nexport const TableColumnContext = createContext<ITableColumns>({} as ITableColumns)\n\nexport const useTableColumns = (): ITableColumns => useContext(TableColumnContext)\n\nexport type ListPreferences = {\n columns: ColumnPreferences\n}\n\ntype Props = {\n readonly children: React.ReactNode\n readonly collectionSlug: string\n readonly columnState: Column[]\n readonly docs: any[]\n readonly enableRowSelections?: boolean\n readonly LinkedCellOverride?: React.ReactNode\n readonly listPreferences?: ListPreferences\n readonly preferenceKey: string\n readonly renderRowTypes?: boolean\n readonly setTable: (Table: React.ReactNode) => void\n readonly sortColumnProps?: Partial<SortColumnProps>\n readonly tableAppearance?: 'condensed' | 'default'\n}\n\n// strip out Heading, Label, and renderedCells properties, they cannot be sent to the server\nconst sanitizeColumns = (columns: Column[]) => {\n return columns.map(({ accessor, active }) => ({\n accessor,\n active,\n }))\n}\n\nexport const TableColumnsProvider: React.FC<Props> = ({\n children,\n collectionSlug,\n columnState,\n docs,\n enableRowSelections,\n LinkedCellOverride,\n listPreferences,\n preferenceKey,\n renderRowTypes,\n setTable,\n sortColumnProps,\n tableAppearance,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const { getTableState } = useServerFunctions()\n\n const { admin: { defaultColumns, useAsTitle } = {}, fields } = getEntityConfig({\n collectionSlug,\n }) as ClientCollectionConfig\n\n const prevCollection = React.useRef<SanitizedCollectionConfig['slug']>(collectionSlug)\n const { getPreference, setPreference } = usePreferences()\n\n const [tableColumns, setTableColumns] = React.useState(columnState)\n const tableStateControllerRef = React.useRef<AbortController>(null)\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { fromIndex, toIndex } = args\n const withMovedColumn = [...tableColumns]\n const [columnToMove] = withMovedColumn.splice(fromIndex, 1)\n withMovedColumn.splice(toIndex, 0, columnToMove)\n\n setTableColumns(withMovedColumn)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: sanitizeColumns(withMovedColumn),\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n collectionSlug,\n docs,\n getTableState,\n setTable,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n abortAndIgnore(tableStateControllerRef.current)\n\n const { newColumnState, toggledColumns } = tableColumns.reduce<{\n newColumnState: Column[]\n toggledColumns: Pick<Column, 'accessor' | 'active'>[]\n }>(\n (acc, col) => {\n if (col.accessor === column) {\n acc.newColumnState.push({\n ...col,\n accessor: col.accessor,\n active: !col.active,\n })\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: !col.active,\n })\n } else {\n acc.newColumnState.push(col)\n acc.toggledColumns.push({\n accessor: col.accessor,\n active: col.active,\n })\n }\n\n return acc\n },\n { newColumnState: [], toggledColumns: [] },\n )\n\n setTableColumns(newColumnState)\n\n const controller = new AbortController()\n tableStateControllerRef.current = controller\n\n const result = await getTableState({\n collectionSlug,\n columns: toggledColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n signal: controller.signal,\n tableAppearance,\n })\n\n if (result) {\n setTableColumns(result.state)\n setTable(result.Table)\n }\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const setActiveColumns = React.useCallback(\n async (activeColumnAccessors: string[]) => {\n const activeColumns: Pick<Column, 'accessor' | 'active'>[] = tableColumns\n .map((col) => {\n return {\n accessor: col.accessor,\n active: activeColumnAccessors.includes(col.accessor),\n }\n })\n .toSorted((first, second) => {\n const indexOfFirst = activeColumnAccessors.indexOf(first.accessor)\n const indexOfSecond = activeColumnAccessors.indexOf(second.accessor)\n\n if (indexOfFirst === -1 || indexOfSecond === -1) {\n return 0\n }\n\n return indexOfFirst > indexOfSecond ? 1 : -1\n })\n\n const { state: columnState, Table } = await getTableState({\n collectionSlug,\n columns: activeColumns,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n })\n\n setTableColumns(columnState)\n setTable(Table)\n },\n [\n tableColumns,\n getTableState,\n setTable,\n collectionSlug,\n docs,\n enableRowSelections,\n renderRowTypes,\n tableAppearance,\n ],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await setActiveColumns(defaultColumns)\n }, [defaultColumns, setActiveColumns])\n\n // //////////////////////////////////////////////\n // Get preferences on collection change (drawers)\n // //////////////////////////////////////////////\n\n React.useEffect(() => {\n const sync = async () => {\n const collectionHasChanged = prevCollection.current !== collectionSlug\n\n if (collectionHasChanged || !listPreferences) {\n const currentPreferences = await getPreference<{\n columns: ColumnPreferences\n }>(preferenceKey)\n\n prevCollection.current = collectionSlug\n\n if (currentPreferences?.columns) {\n // setTableColumns()\n // buildColumnState({\n // beforeRows,\n // columnPreferences: currentPreferences?.columns,\n // columns: initialColumns,\n // enableRowSelections,\n // fields,\n // sortColumnProps,\n // useAsTitle,\n // }),\n }\n }\n }\n\n void sync()\n }, [\n preferenceKey,\n getPreference,\n collectionSlug,\n fields,\n defaultColumns,\n useAsTitle,\n listPreferences,\n enableRowSelections,\n sortColumnProps,\n ])\n\n React.useEffect(() => {\n return () => {\n abortAndIgnore(tableStateControllerRef.current)\n }\n }, [])\n\n return (\n <TableColumnContext.Provider\n value={{\n columns: tableColumns,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n toggleColumn,\n }}\n >\n {children}\n </TableColumnContext.Provider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -59,7 +59,7 @@ export const UnpublishMany = props => {
59
59
  clearRouteCache
60
60
  } = useRouteCache();
61
61
  const collectionPermissions = permissions?.collections?.[slug];
62
- const hasPermission = collectionPermissions?.update?.permission;
62
+ const hasPermission = collectionPermissions?.update;
63
63
  const modalSlug = `unpublish-${slug}`;
64
64
  const addDefaultError = useCallback(() => {
65
65
  toast.error(t('error:unknown'));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","params","page","undefined","forEach","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,SAASC,KAAK,QAAQ;AAMtB,OAAO,MAAMC,aAAA,GAA+CC,KAAA;EAC1D,MAAM;IAAEC,UAAA,EAAY;MAAEC,IAAI;MAAEC,MAAA,EAAQ;QAAEC,MAAM;QAAEC;MAAQ,CAAE;MAAEC;IAAQ,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGN,KAAA;EAE9E,MAAM;IACJO,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGtB,SAAA;EAEJ,MAAM;IAAEuB;EAAW,CAAE,GAAGxB,OAAA;EACxB,MAAM;IAAEyB;EAAW,CAAE,GAAG/B,QAAA;EACxB,MAAM;IAAEgC,IAAI;IAAEC;EAAC,CAAE,GAAGrB,cAAA;EACpB,MAAM;IAAEsB,cAAc;IAAEC;EAAS,CAAE,GAAGxB,YAAA;EACtC,MAAM,CAACyB,SAAA,EAAWC,YAAA,CAAa,GAAGhC,QAAA,CAAS;EAC3C,MAAM;IAAEiC;EAAe,CAAE,GAAG7B,eAAA;EAC5B,MAAM8B,MAAA,GAASrC,SAAA;EACf,MAAM;IAAEsC;EAAe,CAAE,GAAGhC,aAAA;EAE5B,MAAMiC,qBAAA,GAAwBX,WAAA,EAAaY,WAAA,GAAcrB,IAAA,CAAK;EAC9D,MAAMsB,aAAA,GAAgBF,qBAAA,EAAuBG,MAAA,EAAQC,UAAA;EAErD,MAAMC,SAAA,GAAY,aAAazB,IAAA,EAAM;EAErC,MAAM0B,eAAA,GAAkB3C,WAAA,CAAY;IAClCa,KAAA,CAAM+B,KAAK,CAACf,CAAA,CAAE;EAChB,GAAG,CAACA,CAAA,CAAE;EAEN,MAAMgB,eAAA,GAAkB7C,WAAA,CAAY;IAClCiC,YAAA,CAAa;IACb,MAAMxB,QAAA,CACHqC,KAAK,CAAC,GAAGrB,SAAA,GAAYD,GAAA,IAAOP,IAAA,GAAOa,cAAA,CAAe;MAAEiB,OAAA,EAAS;QAAEC,UAAA,EAAY;MAAQ;IAAE,IAAI,EAAE;MAC1FC,IAAA,EAAMC,IAAA,CAAKC,SAAS,CAAC;QACnBJ,OAAA,EAAS;MACX;MACAK,OAAA,EAAS;QACP,mBAAmBxB,IAAA,CAAKyB,QAAQ;QAChC,gBAAgB;MAClB;IACF,GACCC,IAAI,CAAC,MAAOC,GAAA;MACX,IAAI;QACF,MAAMC,IAAA,GAAO,MAAMD,GAAA,CAAIC,IAAI;QAC3B7B,WAAA,CAAYe,SAAA;QAEZ,MAAMe,WAAA,GAAcD,IAAA,EAAME,IAAA,CAAKC,MAAA,IAAU;QACzC,MAAMC,YAAA,GAAeH,WAAA,GAAc,IAAItC,MAAA,GAASC,QAAA;QAEhD,IAAImC,GAAA,CAAIM,MAAM,GAAG,OAAOJ,WAAA,GAAc,GAAG;UACvC5C,KAAA,CAAMiD,OAAO,CACXjC,CAAA,CAAE,oCAAoC;YACpCkC,KAAA,EAAON,WAAA;YACPO,KAAA,EAAOnE,cAAA,CAAe+D,YAAA,EAAchC,IAAA;UACtC;UAEF,IAAI4B,IAAA,EAAMS,MAAA,CAAON,MAAA,GAAS,GAAG;YAC3B9C,KAAA,CAAM+B,KAAK,CAACY,IAAA,CAAKU,OAAO,EAAE;cACxBC,WAAA,EAAaX,IAAA,CAAKS,MAAM,CAACG,GAAG,CAAExB,KAAA,IAAUA,KAAA,CAAMsB,OAAO,EAAEG,IAAI,CAAC;YAC9D;UACF;UACAlC,MAAA,CAAOmC,OAAO,CACZpC,eAAA,CAAgB;YACdqC,MAAA,EAAQ;cACNC,IAAA,EAAMzC,SAAA,GAAY,MAAM0C;YAC1B;UACF;UAEFrC,eAAA,GAAkB;UAAA;UAClB,OAAO;QACT;QAEA,IAAIoB,IAAA,CAAKS,MAAM,EAAE;UACfT,IAAA,CAAKS,MAAM,CAACS,OAAO,CAAE9B,OAAA,IAAU/B,KAAA,CAAM+B,KAAK,CAACA,OAAA,CAAMsB,OAAO;QAC1D,OAAO;UACLvB,eAAA;QACF;QACA,OAAO;MACT,EAAE,OAAOgC,CAAA,EAAG;QACV,OAAOhC,eAAA;MACT;IACF;EACJ,GAAG,CACDA,eAAA,EACAnB,GAAA,EACAM,cAAA,EACAF,IAAA,EACAc,SAAA,EACAvB,MAAA,EACAY,SAAA,EACAN,SAAA,EACAL,QAAA,EACAH,IAAA,EACAY,CAAA,EACAF,WAAA,EACAQ,MAAA,EACAC,eAAA,EACAF,eAAA,CACD;EAED,IAAI,CAACb,QAAA,EAAUuD,MAAA,IAAU7C,SAAA,KAAczB,eAAA,CAAgBuE,IAAI,IAAI,CAACtC,aAAA,EAAe;IAC7E,OAAO;EACT;EAEA,oBACEuC,KAAA,CAAC/E,KAAA,CAAMgF,QAAQ;4BACbC,IAAA,CAACrE,IAAA;MACCsE,SAAA,EAAW,GAAGrE,SAAA,UAAmB;MACjCsE,OAAA,EAASA,CAAA;QACPjD,YAAA,CAAa;QACbN,WAAA,CAAYe,SAAA;MACd;gBAECb,CAAA,CAAE;qBAELmD,IAAA,CAACrF,KAAA;MAAMsF,SAAA,EAAWrE,SAAA;MAAWK,IAAA,EAAMyB,SAAA;gBACjC,aAAAoC,KAAA,CAAC;QAAIG,SAAA,EAAW,GAAGrE,SAAA,WAAoB;gCACrCkE,KAAA,CAAC;UAAIG,SAAA,EAAW,GAAGrE,SAAA,WAAoB;kCACrCoE,IAAA,CAAC;sBAAInD,CAAA,CAAE;2BACPmD,IAAA,CAAC;sBAAGnD,CAAA,CAAE,qCAAqC;cAAEmC,KAAA,EAAOnE,cAAA,CAAesB,MAAA,EAAQS,IAAA;YAAM;;yBAEnFkD,KAAA,CAAC;UAAIG,SAAA,EAAW,GAAGrE,SAAA,YAAqB;kCACtCoE,IAAA,CAACtE,MAAA;YACCyE,WAAA,EAAY;YACZC,EAAA,EAAG;YACHF,OAAA,EAASlD,SAAA,GAAYyC,SAAA,GAAY,MAAM9C,WAAA,CAAYe,SAAA;YACnD2C,IAAA,EAAK;YACLC,IAAA,EAAK;sBAEJzD,CAAA,CAAE;2BAELmD,IAAA,CAACtE,MAAA;YACC0E,EAAA,EAAG;YACHF,OAAA,EAASlD,SAAA,GAAYyC,SAAA,GAAY5B,eAAA;YACjCwC,IAAA,EAAK;sBAEJrD,SAAA,GAAYH,CAAA,CAAE,0BAA0BA,CAAA,CAAE;;;;;;AAOzD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","params","page","undefined","forEach","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,SAASC,KAAK,QAAQ;AAMtB,OAAO,MAAMC,aAAA,GAA+CC,KAAA;EAC1D,MAAM;IAAEC,UAAA,EAAY;MAAEC,IAAI;MAAEC,MAAA,EAAQ;QAAEC,MAAM;QAAEC;MAAQ,CAAE;MAAEC;IAAQ,CAAE,GAAG,CAAC;EAAC,CAAE,GAAGN,KAAA;EAE9E,MAAM;IACJO,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGtB,SAAA;EAEJ,MAAM;IAAEuB;EAAW,CAAE,GAAGxB,OAAA;EACxB,MAAM;IAAEyB;EAAW,CAAE,GAAG/B,QAAA;EACxB,MAAM;IAAEgC,IAAI;IAAEC;EAAC,CAAE,GAAGrB,cAAA;EACpB,MAAM;IAAEsB,cAAc;IAAEC;EAAS,CAAE,GAAGxB,YAAA;EACtC,MAAM,CAACyB,SAAA,EAAWC,YAAA,CAAa,GAAGhC,QAAA,CAAS;EAC3C,MAAM;IAAEiC;EAAe,CAAE,GAAG7B,eAAA;EAC5B,MAAM8B,MAAA,GAASrC,SAAA;EACf,MAAM;IAAEsC;EAAe,CAAE,GAAGhC,aAAA;EAE5B,MAAMiC,qBAAA,GAAwBX,WAAA,EAAaY,WAAA,GAAcrB,IAAA,CAAK;EAC9D,MAAMsB,aAAA,GAAgBF,qBAAA,EAAuBG,MAAA;EAE7C,MAAMC,SAAA,GAAY,aAAaxB,IAAA,EAAM;EAErC,MAAMyB,eAAA,GAAkB1C,WAAA,CAAY;IAClCa,KAAA,CAAM8B,KAAK,CAACd,CAAA,CAAE;EAChB,GAAG,CAACA,CAAA,CAAE;EAEN,MAAMe,eAAA,GAAkB5C,WAAA,CAAY;IAClCiC,YAAA,CAAa;IACb,MAAMxB,QAAA,CACHoC,KAAK,CAAC,GAAGpB,SAAA,GAAYD,GAAA,IAAOP,IAAA,GAAOa,cAAA,CAAe;MAAEgB,OAAA,EAAS;QAAEC,UAAA,EAAY;MAAQ;IAAE,IAAI,EAAE;MAC1FC,IAAA,EAAMC,IAAA,CAAKC,SAAS,CAAC;QACnBJ,OAAA,EAAS;MACX;MACAK,OAAA,EAAS;QACP,mBAAmBvB,IAAA,CAAKwB,QAAQ;QAChC,gBAAgB;MAClB;IACF,GACCC,IAAI,CAAC,MAAOC,GAAA;MACX,IAAI;QACF,MAAMC,IAAA,GAAO,MAAMD,GAAA,CAAIC,IAAI;QAC3B5B,WAAA,CAAYc,SAAA;QAEZ,MAAMe,WAAA,GAAcD,IAAA,EAAME,IAAA,CAAKC,MAAA,IAAU;QACzC,MAAMC,YAAA,GAAeH,WAAA,GAAc,IAAIrC,MAAA,GAASC,QAAA;QAEhD,IAAIkC,GAAA,CAAIM,MAAM,GAAG,OAAOJ,WAAA,GAAc,GAAG;UACvC3C,KAAA,CAAMgD,OAAO,CACXhC,CAAA,CAAE,oCAAoC;YACpCiC,KAAA,EAAON,WAAA;YACPO,KAAA,EAAOlE,cAAA,CAAe8D,YAAA,EAAc/B,IAAA;UACtC;UAEF,IAAI2B,IAAA,EAAMS,MAAA,CAAON,MAAA,GAAS,GAAG;YAC3B7C,KAAA,CAAM8B,KAAK,CAACY,IAAA,CAAKU,OAAO,EAAE;cACxBC,WAAA,EAAaX,IAAA,CAAKS,MAAM,CAACG,GAAG,CAAExB,KAAA,IAAUA,KAAA,CAAMsB,OAAO,EAAEG,IAAI,CAAC;YAC9D;UACF;UACAjC,MAAA,CAAOkC,OAAO,CACZnC,eAAA,CAAgB;YACdoC,MAAA,EAAQ;cACNC,IAAA,EAAMxC,SAAA,GAAY,MAAMyC;YAC1B;UACF;UAEFpC,eAAA,GAAkB;UAAA;UAClB,OAAO;QACT;QAEA,IAAImB,IAAA,CAAKS,MAAM,EAAE;UACfT,IAAA,CAAKS,MAAM,CAACS,OAAO,CAAE9B,OAAA,IAAU9B,KAAA,CAAM8B,KAAK,CAACA,OAAA,CAAMsB,OAAO;QAC1D,OAAO;UACLvB,eAAA;QACF;QACA,OAAO;MACT,EAAE,OAAOgC,CAAA,EAAG;QACV,OAAOhC,eAAA;MACT;IACF;EACJ,GAAG,CACDA,eAAA,EACAlB,GAAA,EACAM,cAAA,EACAF,IAAA,EACAa,SAAA,EACAtB,MAAA,EACAY,SAAA,EACAN,SAAA,EACAL,QAAA,EACAH,IAAA,EACAY,CAAA,EACAF,WAAA,EACAQ,MAAA,EACAC,eAAA,EACAF,eAAA,CACD;EAED,IAAI,CAACb,QAAA,EAAUsD,MAAA,IAAU5C,SAAA,KAAczB,eAAA,CAAgBsE,IAAI,IAAI,CAACrC,aAAA,EAAe;IAC7E,OAAO;EACT;EAEA,oBACEsC,KAAA,CAAC9E,KAAA,CAAM+E,QAAQ;4BACbC,IAAA,CAACpE,IAAA;MACCqE,SAAA,EAAW,GAAGpE,SAAA,UAAmB;MACjCqE,OAAA,EAASA,CAAA;QACPhD,YAAA,CAAa;QACbN,WAAA,CAAYc,SAAA;MACd;gBAECZ,CAAA,CAAE;qBAELkD,IAAA,CAACpF,KAAA;MAAMqF,SAAA,EAAWpE,SAAA;MAAWK,IAAA,EAAMwB,SAAA;gBACjC,aAAAoC,KAAA,CAAC;QAAIG,SAAA,EAAW,GAAGpE,SAAA,WAAoB;gCACrCiE,KAAA,CAAC;UAAIG,SAAA,EAAW,GAAGpE,SAAA,WAAoB;kCACrCmE,IAAA,CAAC;sBAAIlD,CAAA,CAAE;2BACPkD,IAAA,CAAC;sBAAGlD,CAAA,CAAE,qCAAqC;cAAEkC,KAAA,EAAOlE,cAAA,CAAesB,MAAA,EAAQS,IAAA;YAAM;;yBAEnFiD,KAAA,CAAC;UAAIG,SAAA,EAAW,GAAGpE,SAAA,YAAqB;kCACtCmE,IAAA,CAACrE,MAAA;YACCwE,WAAA,EAAY;YACZC,EAAA,EAAG;YACHF,OAAA,EAASjD,SAAA,GAAYwC,SAAA,GAAY,MAAM7C,WAAA,CAAYc,SAAA;YACnD2C,IAAA,EAAK;YACLC,IAAA,EAAK;sBAEJxD,CAAA,CAAE;2BAELkD,IAAA,CAACrE,MAAA;YACCyE,EAAA,EAAG;YACHF,OAAA,EAASjD,SAAA,GAAYwC,SAAA,GAAY5B,eAAA;YACjCwC,IAAA,EAAK;sBAEJpD,SAAA,GAAYH,CAAA,CAAE,0BAA0BA,CAAA,CAAE;;;;;;AAOzD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAGhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAkBvE,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAgCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6SxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAGhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAkBvE,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAU9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAgCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2SxC,CAAA"}
@@ -200,7 +200,7 @@ export const Upload = props => {
200
200
  // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true
201
201
  }
202
202
  }, [showUrlInput]);
203
- const canRemoveUpload = docPermissions?.update?.permission && 'delete' in docPermissions && docPermissions?.delete?.permission;
203
+ const canRemoveUpload = docPermissions?.update && 'delete' in docPermissions && docPermissions?.delete;
204
204
  const hasImageSizes = uploadConfig?.imageSizes?.length > 0;
205
205
  const hasResizeOptions = Boolean(uploadConfig?.resizeOptions);
206
206
  // Explicity check if set to true, default is undefined