@payloadcms/ui 3.24.0-canary.7d9fbaf → 3.24.0-canary.80e034e

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 (204) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +143 -108
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/Button/index.d.ts.map +1 -1
  5. package/dist/elements/Button/index.js +1 -0
  6. package/dist/elements/Button/index.js.map +1 -1
  7. package/dist/elements/Button/index.scss +21 -5
  8. package/dist/elements/ConfirmationModal/index.d.ts +16 -0
  9. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -0
  10. package/dist/elements/ConfirmationModal/index.js +158 -0
  11. package/dist/elements/ConfirmationModal/index.js.map +1 -0
  12. package/dist/elements/{GenerateConfirmation → ConfirmationModal}/index.scss +1 -1
  13. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  14. package/dist/elements/DatePicker/DatePicker.js +2 -0
  15. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  16. package/dist/elements/DatePicker/types.d.ts +1 -0
  17. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  18. package/dist/elements/DatePicker/types.js.map +1 -1
  19. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  20. package/dist/elements/DeleteDocument/index.js +31 -79
  21. package/dist/elements/DeleteDocument/index.js.map +1 -1
  22. package/dist/elements/DeleteDocument/index.scss +0 -29
  23. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  24. package/dist/elements/DeleteMany/index.js +16 -43
  25. package/dist/elements/DeleteMany/index.js.map +1 -1
  26. package/dist/elements/DeleteMany/index.scss +0 -29
  27. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  28. package/dist/elements/DocumentControls/index.js.map +1 -1
  29. package/dist/elements/DuplicateDocument/index.d.ts +0 -1
  30. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  31. package/dist/elements/DuplicateDocument/index.js +25 -54
  32. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  33. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -0
  34. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -17
  36. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  37. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +1 -0
  38. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  39. package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
  40. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  41. package/dist/elements/FileDetails/index.d.ts +1 -0
  42. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  43. package/dist/elements/FileDetails/index.js.map +1 -1
  44. package/dist/elements/GenerateConfirmation/index.d.ts +1 -2
  45. package/dist/elements/GenerateConfirmation/index.d.ts.map +1 -1
  46. package/dist/elements/GenerateConfirmation/index.js +23 -47
  47. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  48. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -1
  49. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  50. package/dist/elements/LeaveWithoutSaving/index.js +56 -113
  51. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  52. package/dist/elements/ListControls/index.d.ts +1 -0
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +14 -0
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/ListControls/index.scss +5 -0
  57. package/dist/elements/Localizer/LocalizerLabel/index.d.ts.map +1 -1
  58. package/dist/elements/Localizer/LocalizerLabel/index.js +11 -8
  59. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  60. package/dist/elements/Localizer/index.d.ts.map +1 -1
  61. package/dist/elements/Localizer/index.js +2 -0
  62. package/dist/elements/Localizer/index.js.map +1 -1
  63. package/dist/elements/Popup/index.d.ts +1 -0
  64. package/dist/elements/Popup/index.d.ts.map +1 -1
  65. package/dist/elements/Popup/index.js +2 -0
  66. package/dist/elements/Popup/index.js.map +1 -1
  67. package/dist/elements/PreviewButton/index.d.ts +2 -1
  68. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  69. package/dist/elements/PreviewButton/index.js +2 -2
  70. package/dist/elements/PreviewButton/index.js.map +1 -1
  71. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +1 -2
  72. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  73. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  74. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +2 -0
  75. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  76. package/dist/elements/PublishButton/ScheduleDrawer/index.js +6 -2
  77. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  78. package/dist/elements/PublishButton/index.d.ts +2 -3
  79. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  80. package/dist/elements/PublishButton/index.js +20 -17
  81. package/dist/elements/PublishButton/index.js.map +1 -1
  82. package/dist/elements/PublishMany/index.d.ts +0 -1
  83. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  84. package/dist/elements/PublishMany/index.js +19 -45
  85. package/dist/elements/PublishMany/index.js.map +1 -1
  86. package/dist/elements/RelationshipTable/index.d.ts +7 -2
  87. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  88. package/dist/elements/RelationshipTable/index.js +69 -23
  89. package/dist/elements/RelationshipTable/index.js.map +1 -1
  90. package/dist/elements/RelationshipTable/index.scss +6 -0
  91. package/dist/elements/SaveButton/index.d.ts +2 -3
  92. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  93. package/dist/elements/SaveButton/index.js +3 -3
  94. package/dist/elements/SaveButton/index.js.map +1 -1
  95. package/dist/elements/SaveDraftButton/index.d.ts +2 -1
  96. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  97. package/dist/elements/SaveDraftButton/index.js +2 -2
  98. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  99. package/dist/elements/Status/index.d.ts.map +1 -1
  100. package/dist/elements/Status/index.js +173 -154
  101. package/dist/elements/Status/index.js.map +1 -1
  102. package/dist/elements/Status/index.scss +0 -41
  103. package/dist/elements/StayLoggedIn/index.d.ts +0 -1
  104. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  105. package/dist/elements/StayLoggedIn/index.js +45 -77
  106. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  107. package/dist/elements/Table/index.d.ts +1 -9
  108. package/dist/elements/Table/index.d.ts.map +1 -1
  109. package/dist/elements/Table/index.js.map +1 -1
  110. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  111. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  112. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  113. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts +20 -0
  114. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  115. package/dist/elements/TableColumns/buildPolymorphicColumnState.js +200 -0
  116. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  117. package/dist/elements/TableColumns/index.d.ts +2 -3
  118. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  119. package/dist/elements/TableColumns/index.js +4 -3
  120. package/dist/elements/TableColumns/index.js.map +1 -1
  121. package/dist/elements/UnpublishMany/index.d.ts +1 -2
  122. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  123. package/dist/elements/UnpublishMany/index.js +14 -42
  124. package/dist/elements/UnpublishMany/index.js.map +1 -1
  125. package/dist/elements/Upload/index.d.ts.map +1 -1
  126. package/dist/elements/Upload/index.js +5 -1
  127. package/dist/elements/Upload/index.js.map +1 -1
  128. package/dist/elements/ViewDescription/index.d.ts +2 -5
  129. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  130. package/dist/elements/ViewDescription/index.js +2 -2
  131. package/dist/elements/ViewDescription/index.js.map +1 -1
  132. package/dist/exports/client/CodeEditor-L6GW2VQ6.js.map +0 -1
  133. package/dist/exports/client/{DatePicker-THCU4KZJ.js → DatePicker-HHQ6TPOW.js} +2 -2
  134. package/dist/exports/client/{DatePicker-THCU4KZJ.js.map → DatePicker-HHQ6TPOW.js.map} +0 -1
  135. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -1
  136. package/dist/exports/client/{chunk-EG3ZOHFS.js → chunk-IMEQ6NKQ.js} +2 -2
  137. package/dist/exports/client/{chunk-EG3ZOHFS.js.map → chunk-IMEQ6NKQ.js.map} +3 -4
  138. package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -1
  139. package/dist/exports/client/index.d.ts +46 -4
  140. package/dist/exports/client/index.d.ts.map +1 -1
  141. package/dist/exports/client/index.js +23 -23
  142. package/dist/exports/client/index.js.map +4 -5
  143. package/dist/fields/DateTime/index.d.ts.map +1 -1
  144. package/dist/fields/DateTime/index.js +24 -6
  145. package/dist/fields/DateTime/index.js.map +1 -1
  146. package/dist/fields/Join/index.d.ts.map +1 -1
  147. package/dist/fields/Join/index.js +8 -3
  148. package/dist/fields/Join/index.js.map +1 -1
  149. package/dist/fields/Select/Input.d.ts.map +1 -1
  150. package/dist/fields/Select/Input.js +2 -0
  151. package/dist/fields/Select/Input.js.map +1 -1
  152. package/dist/fields/Tabs/Tab/index.scss +2 -1
  153. package/dist/fields/Upload/Input.d.ts +1 -0
  154. package/dist/fields/Upload/Input.d.ts.map +1 -1
  155. package/dist/fields/Upload/Input.js.map +1 -1
  156. package/dist/forms/Form/index.d.ts.map +1 -1
  157. package/dist/forms/Form/index.js +19 -8
  158. package/dist/forms/Form/index.js.map +1 -1
  159. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  160. package/dist/forms/Form/initContextState.js +2 -0
  161. package/dist/forms/Form/initContextState.js.map +1 -1
  162. package/dist/forms/Form/types.d.ts +6 -0
  163. package/dist/forms/Form/types.d.ts.map +1 -1
  164. package/dist/forms/Form/types.js.map +1 -1
  165. package/dist/icons/Dots/index.d.ts +7 -0
  166. package/dist/icons/Dots/index.d.ts.map +1 -0
  167. package/dist/icons/Dots/index.js +12 -0
  168. package/dist/icons/Dots/index.js.map +1 -0
  169. package/dist/icons/Dots/index.scss +27 -0
  170. package/dist/providers/Selection/index.d.ts.map +1 -1
  171. package/dist/providers/Selection/index.js +5 -6
  172. package/dist/providers/Selection/index.js.map +1 -1
  173. package/dist/styles.css +1 -1
  174. package/dist/utilities/buildTableState.d.ts +1 -2
  175. package/dist/utilities/buildTableState.d.ts.map +1 -1
  176. package/dist/utilities/buildTableState.js +72 -20
  177. package/dist/utilities/buildTableState.js.map +1 -1
  178. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  179. package/dist/utilities/handleFormStateLocking.js +3 -6
  180. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  181. package/dist/utilities/renderTable.d.ts +6 -4
  182. package/dist/utilities/renderTable.d.ts.map +1 -1
  183. package/dist/utilities/renderTable.js +49 -17
  184. package/dist/utilities/renderTable.js.map +1 -1
  185. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  186. package/dist/views/Edit/Auth/index.js +56 -55
  187. package/dist/views/Edit/Auth/index.js.map +1 -1
  188. package/dist/views/Edit/index.d.ts +2 -2
  189. package/dist/views/Edit/index.d.ts.map +1 -1
  190. package/dist/views/Edit/index.js +3 -3
  191. package/dist/views/Edit/index.js.map +1 -1
  192. package/dist/views/List/index.d.ts +2 -25
  193. package/dist/views/List/index.d.ts.map +1 -1
  194. package/dist/views/List/index.js +6 -3
  195. package/dist/views/List/index.js.map +1 -1
  196. package/dist/views/List/types.d.ts +1 -18
  197. package/dist/views/List/types.d.ts.map +1 -1
  198. package/dist/views/List/types.js.map +1 -1
  199. package/package.json +5 -5
  200. package/dist/elements/DuplicateDocument/index.scss +0 -42
  201. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  202. package/dist/elements/PublishMany/index.scss +0 -39
  203. package/dist/elements/StayLoggedIn/index.scss +0 -40
  204. package/dist/elements/UnpublishMany/index.scss +0 -39
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useLocale","useTranslation","requests","Button","drawerZBase","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","processing","setProcessing","reset","resetForm","code","locale","i18n","t","editDepth","unPublishModalSlug","revertModalSlug","statusToRender","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","error","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","slug","style","zIndex","undefined","size","type"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n t,\n toggleModal,\n revertModalSlug,\n unPublishModalSlug,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal\n className={`${baseClass}__modal`}\n slug={unPublishModalSlug}\n style={{ zIndex: drawerZBase + editDepth }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n onClick={processing ? undefined : () => performAction('unpublish')}\n size=\"large\"\n >\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n size=\"large\"\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","$","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","t0","routes","t1","serverURL","api","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","t2","language","action","url","method","body","publishedDoc","get","headers","then","_temp","res_0","JSON","stringify","res","status","data","json","result","doc","success","message","error","performAction","canUpdate","update","t3","t4","t5","_jsxs","Fragment","children","_jsx","buttonStyle","className","onClick","confirmingLabel","heading","modalSlug","onConfirm","t6","title"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,46 +17,5 @@
17
17
  &__action {
18
18
  text-decoration: underline;
19
19
  }
20
-
21
- &__modal {
22
- @include blur-bg;
23
- display: flex;
24
- align-items: center;
25
- justify-content: center;
26
- height: 100%;
27
-
28
- &__toggle {
29
- @extend %btn-reset;
30
- }
31
- }
32
-
33
- &__wrapper {
34
- z-index: 1;
35
- position: relative;
36
- display: flex;
37
- flex-direction: column;
38
- gap: base(0.8);
39
- padding: base(2);
40
- max-width: base(36);
41
- }
42
-
43
- &__content {
44
- display: flex;
45
- flex-direction: column;
46
- gap: base(0.4);
47
-
48
- > * {
49
- margin: 0;
50
- }
51
- }
52
-
53
- &__controls {
54
- display: flex;
55
- gap: base(0.4);
56
-
57
- .btn {
58
- margin: 0;
59
- }
60
- }
61
20
  }
62
21
  }
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import './index.scss';
3
2
  export declare const stayLoggedInModalSlug = "stay-logged-in";
4
3
  export declare const StayLoggedInModal: React.FC;
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAwDrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EA0CrC,CAAA"}
@@ -1,21 +1,18 @@
1
1
  'use client';
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { Modal, useModal } from '@faceless-ui/modal';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
6
5
  import { useRouter } from 'next/navigation.js';
7
- import React from 'react';
8
- import { Button } from '../../elements/Button/index.js';
6
+ import React, { useCallback } from 'react';
9
7
  import { useAuth } from '../../providers/Auth/index.js';
10
8
  import { useConfig } from '../../providers/Config/index.js';
11
9
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
12
10
  import { useTranslation } from '../../providers/Translation/index.js';
13
11
  import { formatAdminURL } from '../../utilities/formatAdminURL.js';
14
- import './index.scss';
15
- const baseClass = 'stay-logged-in';
12
+ import { ConfirmationModal } from '../ConfirmationModal/index.js';
16
13
  export const stayLoggedInModalSlug = 'stay-logged-in';
17
14
  export const StayLoggedInModal = () => {
18
- const $ = _c(17);
15
+ const $ = _c(11);
19
16
  const {
20
17
  refreshCookie
21
18
  } = useAuth();
@@ -36,9 +33,6 @@ export const StayLoggedInModal = () => {
36
33
  const {
37
34
  admin: adminRoute
38
35
  } = t1;
39
- const {
40
- closeModal
41
- } = useModal();
42
36
  const {
43
37
  t
44
38
  } = useTranslation();
@@ -46,75 +40,49 @@ export const StayLoggedInModal = () => {
46
40
  startRouteTransition
47
41
  } = useRouteTransition();
48
42
  let t3;
49
- if ($[0] !== adminRoute || $[1] !== closeModal || $[2] !== logoutRoute || $[3] !== refreshCookie || $[4] !== router || $[5] !== startRouteTransition || $[6] !== t) {
50
- let t4;
51
- if ($[8] !== adminRoute || $[9] !== closeModal || $[10] !== logoutRoute || $[11] !== router || $[12] !== startRouteTransition) {
52
- t4 = () => {
53
- closeModal(stayLoggedInModalSlug);
54
- startRouteTransition(() => router.push(formatAdminURL({
55
- adminRoute,
56
- path: logoutRoute
57
- })));
58
- };
59
- $[8] = adminRoute;
60
- $[9] = closeModal;
61
- $[10] = logoutRoute;
62
- $[11] = router;
63
- $[12] = startRouteTransition;
64
- $[13] = t4;
65
- } else {
66
- t4 = $[13];
67
- }
68
- let t5;
69
- if ($[14] !== closeModal || $[15] !== refreshCookie) {
70
- t5 = () => {
71
- refreshCookie();
72
- closeModal(stayLoggedInModalSlug);
73
- };
74
- $[14] = closeModal;
75
- $[15] = refreshCookie;
76
- $[16] = t5;
77
- } else {
78
- t5 = $[16];
79
- }
80
- t3 = _jsx(Modal, {
81
- className: baseClass,
82
- slug: stayLoggedInModalSlug,
83
- children: _jsxs("div", {
84
- className: `${baseClass}__wrapper`,
85
- children: [_jsxs("div", {
86
- className: `${baseClass}__content`,
87
- children: [_jsx("h1", {
88
- children: t("authentication:stayLoggedIn")
89
- }), _jsx("p", {
90
- children: t("authentication:youAreInactive")
91
- })]
92
- }), _jsxs("div", {
93
- className: `${baseClass}__controls`,
94
- children: [_jsx(Button, {
95
- buttonStyle: "secondary",
96
- onClick: t4,
97
- size: "large",
98
- children: t("authentication:logOut")
99
- }), _jsx(Button, {
100
- onClick: t5,
101
- size: "large",
102
- children: t("authentication:stayLoggedIn")
103
- })]
104
- })]
105
- })
106
- });
43
+ if ($[0] !== adminRoute || $[1] !== logoutRoute || $[2] !== router || $[3] !== startRouteTransition) {
44
+ t3 = () => startRouteTransition(() => router.push(formatAdminURL({
45
+ adminRoute,
46
+ path: logoutRoute
47
+ })));
107
48
  $[0] = adminRoute;
108
- $[1] = closeModal;
109
- $[2] = logoutRoute;
110
- $[3] = refreshCookie;
111
- $[4] = router;
112
- $[5] = startRouteTransition;
113
- $[6] = t;
114
- $[7] = t3;
49
+ $[1] = logoutRoute;
50
+ $[2] = router;
51
+ $[3] = startRouteTransition;
52
+ $[4] = t3;
53
+ } else {
54
+ t3 = $[4];
55
+ }
56
+ const onConfirm = t3;
57
+ let t4;
58
+ if ($[5] !== refreshCookie) {
59
+ t4 = () => {
60
+ refreshCookie();
61
+ };
62
+ $[5] = refreshCookie;
63
+ $[6] = t4;
64
+ } else {
65
+ t4 = $[6];
66
+ }
67
+ const onCancel = t4;
68
+ let t5;
69
+ if ($[7] !== onCancel || $[8] !== onConfirm || $[9] !== t) {
70
+ t5 = _jsx(ConfirmationModal, {
71
+ body: t("authentication:youAreInactive"),
72
+ cancelLabel: t("authentication:stayLoggedIn"),
73
+ confirmLabel: t("authentication:logOut"),
74
+ heading: t("authentication:stayLoggedIn"),
75
+ modalSlug: stayLoggedInModalSlug,
76
+ onCancel,
77
+ onConfirm
78
+ });
79
+ $[7] = onCancel;
80
+ $[8] = onConfirm;
81
+ $[9] = t;
82
+ $[10] = t5;
115
83
  } else {
116
- t3 = $[7];
84
+ t5 = $[10];
117
85
  }
118
- return t3;
86
+ return t5;
119
87
  };
120
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","useRouter","React","Button","useAuth","useConfig","useRouteTransition","useTranslation","formatAdminURL","baseClass","stayLoggedInModalSlug","StayLoggedInModal","$","refreshCookie","router","config","admin","t0","routes","t1","t2","logout","logoutRoute","adminRoute","closeModal","t","startRouteTransition","t3","t4","push","path","t5","_jsx","className","slug","children","_jsxs","buttonStyle","onClick","size"],"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport './index.scss'\n\nconst baseClass = 'stay-logged-in'\n\nexport const stayLoggedInModalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC = () => {\n const { refreshCookie } = useAuth()\n\n const router = useRouter()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n const { startRouteTransition } = useRouteTransition()\n\n return (\n <Modal className={baseClass} slug={stayLoggedInModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('authentication:stayLoggedIn')}</h1>\n <p>{t('authentication:youAreInactive')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n closeModal(stayLoggedInModalSlug)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: logoutRoute,\n }),\n ),\n )\n }}\n size=\"large\"\n >\n {t('authentication:logOut')}\n </Button>\n <Button\n onClick={() => {\n refreshCookie()\n closeModal(stayLoggedInModalSlug)\n }}\n size=\"large\"\n >\n {t('authentication:stayLoggedIn')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useRouter","React","useCallback","useAuth","useConfig","useRouteTransition","useTranslation","formatAdminURL","ConfirmationModal","stayLoggedInModalSlug","StayLoggedInModal","$","refreshCookie","router","config","admin","t0","routes","t1","t2","logout","logoutRoute","adminRoute","t","startRouteTransition","t3","push","path","onConfirm","t4","onCancel","t5","_jsx","body","cancelLabel","confirmLabel","heading","modalSlug"],"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\nexport const stayLoggedInModalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC = () => {\n const { refreshCookie } = useAuth()\n\n const router = useRouter()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const { t } = useTranslation()\n const { startRouteTransition } = useRouteTransition()\n\n const onConfirm = useCallback(() => {\n return startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute,\n path: logoutRoute,\n }),\n ),\n )\n }, [router, startRouteTransition, adminRoute, logoutRoute])\n\n const onCancel: OnCancel = useCallback(() => {\n refreshCookie()\n }, [refreshCookie])\n\n return (\n <ConfirmationModal\n body={t('authentication:youAreInactive')}\n cancelLabel={t('authentication:stayLoggedIn')}\n confirmLabel={t('authentication:logOut')}\n heading={t('authentication:stayLoggedIn')}\n modalSlug={stayLoggedInModalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAElC,OAAO,MAAMC,qBAAA,GAAwB;AAErC,OAAO,MAAMC,iBAAA,GAA8BA,CAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EACzC;IAAAa;EAAA,IAA0BT,OAAA;EAE1B,MAAAU,MAAA,GAAeb,SAAA;EACf;IAAAc;EAAA,IAAmBV,SAAA;EAEnB;IAAAW,KAAA,EAAAC,EAAA;IAAAC,MAAA,EAAAC;EAAA,IAKIJ,MAAA;EAJK;IAAAG,MAAA,EAAAE;EAAA,IAAAH,EAEN;EADS;IAAAI,MAAA,EAAAC;EAAA,IAAAF,EAAuB;EAEzB;IAAAJ,KAAA,EAAAO;EAAA,IAAAJ,EAAqB;EAG/B;IAAAK;EAAA,IAAcjB,cAAA;EACd;IAAAkB;EAAA,IAAiCnB,kBAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAd,CAAA,QAAAW,UAAA,IAAAX,CAAA,QAAAU,WAAA,IAAAV,CAAA,QAAAE,MAAA,IAAAF,CAAA,QAAAa,oBAAA;IAEHC,EAAA,GAAAA,CAAA,KACrBD,oBAAA,OACLX,MAAA,CAAAa,IAAA,CACEnB,cAAA;MAAAe,UAAA;MAAAK,IAAA,EAEQN;IAAA,CACR;IAGNV,CAAA,MAAAW,UAAA;IAAAX,CAAA,MAAAU,WAAA;IAAAV,CAAA,MAAAE,MAAA;IAAAF,CAAA,MAAAa,oBAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EATA,MAAAiB,SAAA,GAAkBH,EASwC;EAAA,IAAAI,EAAA;EAAA,IAAAlB,CAAA,QAAAC,aAAA;IAEnBiB,EAAA,GAAAA,CAAA;MACrCjB,aAAA;IAAA;IACFD,CAAA,MAAAC,aAAA;IAAAD,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAFA,MAAAmB,QAAA,GAA2BD,EAET;EAAA,IAAAE,EAAA;EAAA,IAAApB,CAAA,QAAAmB,QAAA,IAAAnB,CAAA,QAAAiB,SAAA,IAAAjB,CAAA,QAAAY,CAAA;IAGhBQ,EAAA,GAAAC,IAAA,CAAAxB,iBAAA;MAAAyB,IAAA,EACQV,CAAA,CAAE;MAAAW,WAAA,EACKX,CAAA,CAAE;MAAAY,YAAA,EACDZ,CAAA,CAAE;MAAAa,OAAA,EACPb,CAAA,CAAE;MAAAc,SAAA,EAAA5B,qBAAA;MAAAqB,QAAA;MAAAF;IAAA,C;;;;;;;;SAJbG,E;CAUJ","ignoreList":[]}
@@ -1,14 +1,6 @@
1
- import type { ClientField } from 'payload';
1
+ import type { Column } from 'payload';
2
2
  import React from 'react';
3
3
  import './index.scss';
4
- export type Column = {
5
- readonly accessor: string;
6
- readonly active: boolean;
7
- readonly CustomLabel?: React.ReactNode;
8
- readonly field: ClientField;
9
- readonly Heading: React.ReactNode;
10
- readonly renderedCells: React.ReactNode[];
11
- };
12
4
  export type Props = {
13
5
  readonly appearance?: 'condensed' | 'default';
14
6
  readonly columns?: Column[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0CjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0CjC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","baseClass","Table","appearance","columns","data","activeColumns","filter","col","active","length","_jsx","className","Boolean","join","_jsxs","cellPadding","cellSpacing","map","i","id","accessor","Heading","row","rowIndex","colIndex","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientField } from 'payload'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'table'\n\nexport type Column = {\n readonly accessor: string\n readonly active: boolean\n readonly CustomLabel?: React.ReactNode\n readonly field: ClientField\n readonly Heading: React.ReactNode\n readonly renderedCells: React.ReactNode[]\n}\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const Table: React.FC<Props> = ({ appearance, columns, data }) => {\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data.map((row, rowIndex) => (\n <tr className={`row-${rowIndex + 1}`} key={rowIndex}>\n {activeColumns.map((col, colIndex) => {\n const { accessor } = col\n\n return (\n <td className={`cell-${accessor}`} key={colIndex}>\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB,OAAO,MAAMC,KAAA,GAAyBA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAAI,CAAE;EAClE,MAAMC,aAAA,GAAgBF,OAAA,EAASG,MAAA,CAAQC,GAAA,IAAQA,GAAA,EAAKC,MAAA;EAEpD,IAAI,CAACH,aAAA,IAAiBA,aAAA,CAAcI,MAAM,KAAK,GAAG;IAChD,oBAAOC,IAAA,CAAC;gBAAI;;EACd;EAEA,oBACEA,IAAA,CAAC;IACCC,SAAA,EAAW,CAACX,SAAA,EAAWE,UAAA,IAAc,GAAGF,SAAA,gBAAyBE,UAAA,EAAY,CAAC,CAC3EI,MAAM,CAACM,OAAA,EACPC,IAAI,CAAC;cAER,aAAAC,KAAA,CAAC;MAAMC,WAAA,EAAY;MAAIC,WAAA,EAAY;8BACjCN,IAAA,CAAC;kBACC,aAAAA,IAAA,CAAC;oBACEL,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKW,CAAA,kBACvBR,IAAA,CAAC;YAAGS,EAAA,EAAI,WAAWZ,GAAA,CAAIa,QAAQ,EAAE;sBAC9Bb,GAAA,CAAIc;aADiCH,CAAA;;uBAM9CR,IAAA,CAAC;kBACEN,IAAA,IACCA,IAAA,CAAKa,GAAG,CAAC,CAACK,GAAA,EAAKC,QAAA,kBACbb,IAAA,CAAC;UAAGC,SAAA,EAAW,OAAOY,QAAA,GAAW,GAAG;oBACjClB,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKiB,QAAA;YACvB,MAAM;cAAEJ;YAAQ,CAAE,GAAGb,GAAA;YAErB,oBACEG,IAAA,CAAC;cAAGC,SAAA,EAAW,QAAQS,QAAA,EAAU;wBAC9Bb,GAAA,CAAIkB,aAAa,CAACF,QAAA;eADmBC,QAAA;UAI5C;WATyCD,QAAA;;;;AAgBzD","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","Table","appearance","columns","data","activeColumns","filter","col","active","length","_jsx","className","Boolean","join","_jsxs","cellPadding","cellSpacing","map","i","id","accessor","Heading","row","rowIndex","colIndex","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column } from 'payload'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const Table: React.FC<Props> = ({ appearance, columns, data }) => {\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data.map((row, rowIndex) => (\n <tr className={`row-${rowIndex + 1}`} key={rowIndex}>\n {activeColumns.map((col, colIndex) => {\n const { accessor } = col\n\n return (\n <td className={`cell-${accessor}`} key={colIndex}>\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,KAAA,GAAyBA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAAI,CAAE;EAClE,MAAMC,aAAA,GAAgBF,OAAA,EAASG,MAAA,CAAQC,GAAA,IAAQA,GAAA,EAAKC,MAAA;EAEpD,IAAI,CAACH,aAAA,IAAiBA,aAAA,CAAcI,MAAM,KAAK,GAAG;IAChD,oBAAOC,IAAA,CAAC;gBAAI;;EACd;EAEA,oBACEA,IAAA,CAAC;IACCC,SAAA,EAAW,CAACX,SAAA,EAAWE,UAAA,IAAc,GAAGF,SAAA,gBAAyBE,UAAA,EAAY,CAAC,CAC3EI,MAAM,CAACM,OAAA,EACPC,IAAI,CAAC;cAER,aAAAC,KAAA,CAAC;MAAMC,WAAA,EAAY;MAAIC,WAAA,EAAY;8BACjCN,IAAA,CAAC;kBACC,aAAAA,IAAA,CAAC;oBACEL,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKW,CAAA,kBACvBR,IAAA,CAAC;YAAGS,EAAA,EAAI,WAAWZ,GAAA,CAAIa,QAAQ,EAAE;sBAC9Bb,GAAA,CAAIc;aADiCH,CAAA;;uBAM9CR,IAAA,CAAC;kBACEN,IAAA,IACCA,IAAA,CAAKa,GAAG,CAAC,CAACK,GAAA,EAAKC,QAAA,kBACbb,IAAA,CAAC;UAAGC,SAAA,EAAW,OAAOY,QAAA,GAAW,GAAG;oBACjClB,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKiB,QAAA;YACvB,MAAM;cAAEJ;YAAQ,CAAE,GAAGb,GAAA;YAErB,oBACEG,IAAA,CAAC;cAAGC,SAAA,EAAW,QAAQS,QAAA,EAAU;wBAC9Bb,GAAA,CAAIkB,aAAa,CAACF,QAAA;eADmBC,QAAA;UAI5C;WATyCD,QAAA;;;;AAgBzD","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
- import type { ClientCollectionConfig, DefaultCellComponentProps, ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
2
+ import type { ClientCollectionConfig, Column, DefaultCellComponentProps, ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
3
3
  import type { SortColumnProps } from '../SortColumn/index.js';
4
- import type { Column } from '../Table/index.js';
5
4
  type Args = {
6
5
  beforeRows?: Column[];
7
6
  clientCollectionConfig: ClientCollectionConfig;
@@ -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;AAC1D,OAAO,KAAK,EACV,sBAAsB,EAGtB,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,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,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,EAsQnD,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,EAGtB,MAAM,EACN,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAG1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,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,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,EAsQnD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","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","clientProps","customLabelServerProps","clientField","collectionSlug","slug","CustomLabel","Component","importMap","serverProps","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","cellServerProps","className","columnIndex","onClick","CustomCell","editor","Error","CellComponent","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientComponentProps,\n ClientField,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ServerComponentProps,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\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 clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // 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) => fieldIsID(field))\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 if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\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 // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField: field,\n collectionSlug: collectionConfig.slug,\n field: _field,\n i18n,\n payload,\n }\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\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 collectionSlug: clientCollectionConfig.slug,\n customCellProps,\n field,\n rowData: undefined,\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 const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig,\n collectionSlug: collectionConfig.slug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\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 CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\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 (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":";AAgBA,SAASA,iBAAiB,QAAQ;AAClC,SACEC,uBAAuB,EACvBC,SAAS,EACTC,yBAAyB,EACzBC,qBAAqB,QAChB;AACP,OAAOC,KAAA,MAAW;AAKlB,SACEC,qBAAqB,EACrBC,iBAAiB,EACjBC,UAAU,QAEL;AACP,SAASC,qBAAqB,QAAQ;AACtC,SAASC,YAAY,QAAQ;AAkB7B,OAAO,MAAMC,gBAAA,GAAoBC,IAAA;EAC/B,MAAM;IACJC,UAAU;IACVC,sBAAsB;IACtBC,gBAAgB;IAChBC,iBAAiB;IACjBC,OAAO;IACPC,eAAe;IACfC,IAAI;IACJC,mBAAmB;IACnBC,IAAI;IACJC,OAAO;IACPC,eAAe;IACfC;EAAU,CACX,GAAGZ,IAAA;EAEJ;EACA,IAAIa,cAAA,GAAiBrB,qBAAA,CACnBM,YAAA,CAAaI,sBAAA,CAAuBY,MAAM,GAC1C;EAGF,IAAIC,eAAA,GAAkBvB,qBAAA,CACpBM,YAAA,CAAaK,gBAAA,CAAiBW,MAAM,GACpC,KACW;EAAA;EAEb;EACA;EACA;EACA,MAAME,YAAA,GAAeH,cAAA,EAAgBI,SAAA,CAAWC,KAAA,IAAU5B,SAAA,CAAU4B,KAAA;EAEpE,IAAIF,YAAA,GAAe,CAAC,GAAG;IACrB,MAAMG,OAAA,GAAUN,cAAA,CAAeO,MAAM,CAACJ,YAAA,EAAc,EAAE,CAAC,EAAE;IACzDH,cAAA,CAAeQ,OAAO,CAACF,OAAA;EACzB;EAEA,MAAMG,oBAAA,GAAuBV,UAAA,GACzBC,cAAA,CAAeI,SAAS,CAAEC,KAAA,IAAU,UAAUA,KAAA,IAASA,KAAA,CAAMK,IAAI,KAAKX,UAAA,IACtE,CAAC;EAEL,IAAIU,oBAAA,GAAuB,CAAC,GAAG;IAC7B,MAAME,eAAA,GAAkBX,cAAA,CAAeO,MAAM,CAACE,oBAAA,EAAsB,EAAE,CAAC,EAAE;IACzET,cAAA,CAAeQ,OAAO,CAACG,eAAA;EACzB;EAEA,MAAMC,MAAA,GAASrB,iBAAA,IAAqBC,OAAA;EAEpC,MAAMqB,YAAA,GAAeA,CAACC,QAAA,EAAUF,MAAA,KAC9BE,QAAA,EAAUC,IAAA,CAAK,CAACC,CAAA,EAAGC,CAAA;IACjB,MAAMC,MAAA,GAASN,MAAA,CAAOR,SAAS,CAAEe,MAAA,IAAW,UAAUH,CAAA,IAAKG,MAAA,CAAOC,QAAQ,KAAKJ,CAAA,CAAEN,IAAI;IACrF,MAAMW,MAAA,GAAST,MAAA,CAAOR,SAAS,CAAEe,MAAA,IAAW,UAAUF,CAAA,IAAKE,MAAA,CAAOC,QAAQ,KAAKH,CAAA,CAAEP,IAAI;IAErF,IAAIQ,MAAA,KAAW,CAAC,KAAKG,MAAA,KAAW,CAAC,GAAG;MAClC,OAAO;IACT;IAEA,IAAIH,MAAA,KAAW,CAAC,GAAG;MACjB,OAAO;IACT;IAEA,IAAIG,MAAA,KAAW,CAAC,GAAG;MACjB,OAAO,CAAC;IACV;IAEA,OAAOH,MAAA,GAASG,MAAA;EAClB;EAEF,IAAIT,MAAA,EAAQ;IACV;IACAZ,cAAA,GAAiBa,YAAA,CAAab,cAAA,EAAgBY,MAAA;IAC9CV,eAAA,GAAkBW,YAAA,CAAaX,eAAA,EAAiBU,MAAA,EAAQ;IAAA;EAC1D;EAEA,MAAMU,oBAAA,GAAuB,EAAE;EAE/B,MAAMC,MAAA,GAAmBvB,cAAA,EAAgBwB,MAAA,CAAO,CAACC,GAAA,EAAKpB,KAAA,EAAOqB,KAAA;IAC3D,IAAIlD,uBAAA,CAAwB6B,KAAA,KAAU,CAAC5B,SAAA,CAAU4B,KAAA,GAAQ;MACvD,OAAOoB,GAAA;IACT;IAEA,MAAME,MAAA,GAASzB,eAAA,CAAgB0B,IAAI,CAChCC,CAAA,IAAM,UAAUxB,KAAA,IAAS,UAAUwB,CAAA,IAAKA,CAAA,CAAEnB,IAAI,KAAKL,KAAA,CAAMK,IAAI;IAGhE,MAAMoB,gBAAA,GAAmBvC,iBAAA,EAAmBqC,IAAA,CACzCG,UAAA,IAAe1B,KAAA,IAAS,UAAUA,KAAA,IAAS0B,UAAA,CAAWX,QAAQ,KAAKf,KAAA,CAAMK,IAAI;IAGhF,IAAIsB,MAAA,GAAS;IAEb,IAAIF,gBAAA,EAAkB;MACpBE,MAAA,GAASF,gBAAA,CAAiBE,MAAM;IAClC,OAAO,IAAIxC,OAAA,IAAWyC,KAAA,CAAMC,OAAO,CAAC1C,OAAA,KAAYA,OAAA,CAAQ2C,MAAM,GAAG,GAAG;MAClEH,MAAA,GAASxC,OAAA,CAAQoC,IAAI,CAClBT,MAAA,IAAWd,KAAA,IAAS,UAAUA,KAAA,IAASc,MAAA,CAAOC,QAAQ,KAAKf,KAAA,CAAMK,IAAI,GACrEsB,MAAA;IACL,OAAO,IAAIV,oBAAA,CAAqBa,MAAM,GAAG,GAAG;MAC1CH,MAAA,GAAS;IACX;IAEA,IAAIA,MAAA,IAAU,CAACV,oBAAA,CAAqBc,QAAQ,CAACV,KAAA,GAAQ;MACnDJ,oBAAA,CAAqBe,IAAI,CAACX,KAAA;IAC5B;IAEA,MAAMY,mBAAA,GACJX,MAAA,IACA,WAAWA,MAAA,IACX,gBAAgBA,MAAA,CAAOY,KAAK,IAC5B,WAAWZ,MAAA,CAAOY,KAAK,CAACC,UAAU,IAClCb,MAAA,CAAOY,KAAK,CAACC,UAAU,CAACC,KAAK,KAAKC,SAAA,CAAU;IAAA,EACxCf,MAAA,CAAOY,KAAK,CAACC,UAAU,CAACC,KAAK,GAC7BC,SAAA;IAEN;IACA,MAAMC,WAAA,GAA8D;MAClEtC;IACF;IAEA,MAAMuC,sBAAA,GAGF;MACFC,WAAA,EAAaxC,KAAA;MACbyC,cAAA,EAAgBxD,gBAAA,CAAiByD,IAAI;MACrC1C,KAAA,EAAOsB,MAAA;MACP/B,IAAA;MACAC;IACF;IAEA,MAAMmD,WAAA,GAAcV,mBAAA,GAChBtD,qBAAA,CAAsB;MACpB2D,WAAA;MACAM,SAAA,EAAWX,mBAAA;MACXY,SAAA,EAAWrD,OAAA,CAAQqD,SAAS;MAC5BC,WAAA,EAAaP;IACf,KACAF,SAAA;IAEJ,MAAMU,yBAAA,GACJ/C,KAAA,IACAA,KAAA,CAAMgD,IAAI,KACThD,KAAA,CAAMgD,IAAI,KAAK,WAAWhD,KAAA,CAAMgD,IAAI,KAAK,WAAWhD,KAAA,CAAMgD,IAAI,KAAK,QAAO;IAE7E,MAAMC,OAAA,gBACJC,IAAA,CAACxE,UAAA;MACCyE,OAAA,EAASJ,yBAAA,IAA6B1E,yBAAA,CAA0B2B,KAAA,KAAUqC,SAAA;MAC1ED,KAAA,EAAOO,WAAA;MACPS,KAAA,EAAOpD,KAAA,IAAS,WAAWA,KAAA,GAASA,KAAA,CAAMoD,KAAK,GAAmBf,SAAA;MAClEhC,IAAA,EAAM,UAAUL,KAAA,GAAQA,KAAA,CAAMK,IAAI,GAAGgC,SAAA;MACpC,IAAI5C,eAAA,IAAmB,CAAC,CAAC;;IAI9B,MAAM4D,mBAAA,GAAiD;MACrDC,QAAA,EAAUjB,SAAA;MACVI,cAAA,EAAgBzD,sBAAA,CAAuB0D,IAAI;MAC3CtD,eAAA;MACAY,KAAA;MACAuD,OAAA,EAASlB;IACX;IAEA,MAAMvB,MAAA,GAAiB;MACrBC,QAAA,EAAU,UAAUf,KAAA,GAAQA,KAAA,CAAMK,IAAI,GAAGgC,SAAA;MACzCV,MAAA;MACAgB,WAAA;MACA3C,KAAA;MACAiD,OAAA;MACAO,aAAA,EAAe7B,MAAA,GACXtC,IAAA,CAAKoE,GAAG,CAAC,CAACC,GAAA,EAAKC,CAAA;QACb,MAAMC,cAAA,GAAiBvC,KAAA,KAAUJ,oBAAoB,CAAC,EAAE;QAExD,MAAM4C,eAAA,GAA6C;UACjD,GAAGR,mBAAmB;UACtBC,QAAA,EAAU,UAAUtD,KAAA,GAAQ0D,GAAG,CAAC1D,KAAA,CAAMK,IAAI,CAAC,GAAGgC,SAAA;UAC9CyB,IAAA,EAAMF,cAAA;UACNL,OAAA,EAASG;QACX;QAEA,MAAMK,eAAA,GAAmD;UACvDT,QAAA,EAAUO,eAAA,CAAgBP,QAAQ;UAClCU,SAAA,EAAWX,mBAAA,CAAoBW,SAAS;UACxC/E,gBAAA;UACAwD,cAAA,EAAgBxD,gBAAA,CAAiByD,IAAI;UACrCuB,WAAA,EAAaZ,mBAAA,CAAoBY,WAAW;UAC5C7E,eAAA,EAAiBiE,mBAAA,CAAoBjE,eAAe;UACpDY,KAAA,EAAOsB,MAAA;UACP/B,IAAA;UACAuE,IAAA,EAAMD,eAAA,CAAgBC,IAAI;UAC1BI,OAAA,EAASb,mBAAA,CAAoBa,OAAO;UACpC1E,OAAA;UACA+D,OAAA,EAASG;QACX;QAEA,IAAIS,UAAA,GAAa;QAEjB,IAAI7C,MAAA,EAAQ0B,IAAA,KAAS,YAAY;UAC/B,IAAI,CAAC1B,MAAA,EAAQ8C,MAAA,EAAQ;YACnB,MAAM,IAAIlG,iBAAA,CAAkBoD,MAAA,EAAQ;YAAA;UACtC;UAEA,IAAI,OAAOA,MAAA,EAAQ8C,MAAA,KAAW,YAAY;YACxC,MAAM,IAAIC,KAAA,CAAM;UAClB;UAEA,IAAI,CAAC/C,MAAA,CAAOY,KAAK,EAAE;YACjBZ,MAAA,CAAOY,KAAK,GAAG,CAAC;UAClB;UAEA,IAAI,CAACZ,MAAA,CAAOY,KAAK,CAACC,UAAU,EAAE;YAC5Bb,MAAA,CAAOY,KAAK,CAACC,UAAU,GAAG,CAAC;UAC7B;UAEAgC,UAAA,GAAaxF,qBAAA,CAAsB;YACjC2D,WAAA,EAAauB,eAAA;YACbjB,SAAA,EAAWtB,MAAA,CAAO8C,MAAM,CAACE,aAAa;YACtCzB,SAAA,EAAWrD,OAAA,CAAQqD,SAAS;YAC5BC,WAAA,EAAaiB;UACf;QACF,OAAO;UACL,MAAMQ,mBAAA,GAAsBjD,MAAA,EAAQY,KAAA,EAAOC,UAAA,EAAYqC,IAAA;UAEvD,IAAID,mBAAA,EAAqB;YACvBJ,UAAA,GAAaxF,qBAAA,CAAsB;cACjC2D,WAAA,EAAauB,eAAA;cACbjB,SAAA,EAAW2B,mBAAA;cACX1B,SAAA,EAAWrD,OAAA,CAAQqD,SAAS;cAC5BC,WAAA,EAAaiB;YACf;UACF,OAAO;YACLI,UAAA,GAAa9B,SAAA;UACf;QACF;QAEA,oBACEa,IAAA,CAAC1E,qBAAA;UACCiG,eAAA,EAAiBN,UAAA;UACjBO,QAAA,eACExB,IAAA,CAACzE,iBAAA;YACC6D,WAAA,EAAauB,eAAA;YACbI,WAAA,EAAa5C,KAAA;YACb/B,mBAAA,EAAqBA,mBAAA;YACrBsE,cAAA,EAAgBA;;WAGf,GAAGD,CAAA,IAAKtC,KAAA,EAAO;MAG1B,KACA;IACN;IAEAD,GAAA,CAAIY,IAAI,CAAClB,MAAA;IAET,OAAOM,GAAA;EACT,GAAG,EAAE;EAEL,IAAIrC,UAAA,EAAY;IACdmC,MAAA,CAAOf,OAAO,IAAIpB,UAAA;EACpB;EAEA,OAAOmC,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"buildColumnState.js","names":["MissingEditorProp","fieldIsHiddenOrDisabled","fieldIsID","fieldIsPresentationalOnly","flattenTopLevelFields","React","RenderCustomComponent","RenderDefaultCell","SortColumn","RenderServerComponent","filterFields","buildColumnState","args","beforeRows","clientCollectionConfig","collectionConfig","columnPreferences","columns","customCellProps","docs","enableRowSelections","i18n","payload","sortColumnProps","useAsTitle","sortedFieldMap","fields","_sortedFieldMap","idFieldIndex","findIndex","field","idField","splice","unshift","useAsTitleFieldIndex","name","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","clientProps","customLabelServerProps","clientField","collectionSlug","slug","CustomLabel","Component","importMap","serverProps","fieldAffectsDataSubFields","type","Heading","_jsx","disable","label","baseCellClientProps","cellData","rowData","renderedCells","map","doc","i","isLinkedColumn","cellClientProps","link","cellServerProps","className","columnIndex","onClick","CustomCell","editor","Error","CellComponent","CustomCellComponent","Cell","CustomComponent","Fallback"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientComponentProps,\n ClientField,\n Column,\n DefaultCellComponentProps,\n DefaultServerCellComponentProps,\n Field,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n ServerComponentProps,\n StaticLabel,\n} from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport {\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsPresentationalOnly,\n flattenTopLevelFields,\n} from 'payload/shared'\nimport React from 'react'\n\nimport type { SortColumnProps } from '../SortColumn/index.js'\n\nimport {\n RenderCustomComponent,\n RenderDefaultCell,\n SortColumn,\n // eslint-disable-next-line payload/no-imports-from-exports-dir\n} from '../../exports/client/index.js'\nimport { RenderServerComponent } from '../RenderServerComponent/index.js'\nimport { filterFields } from './filterFields.js'\n\ntype Args = {\n beforeRows?: Column[]\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps: DefaultCellComponentProps['customCellProps']\n docs: PaginatedDocs['docs']\n enableRowSelections: boolean\n enableRowTypes?: boolean\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 clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n sortColumnProps,\n useAsTitle,\n } = args\n\n // clientFields contains the fake `id` column\n let sortedFieldMap = flattenTopLevelFields(\n filterFields(clientCollectionConfig.fields),\n true,\n ) as ClientField[]\n\n let _sortedFieldMap = flattenTopLevelFields(\n filterFields(collectionConfig.fields),\n true,\n ) as Field[] // 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) => fieldIsID(field))\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 if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return acc\n }\n\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 // TODO: customComponent will be optional in v4\n const clientProps: Omit<ClientComponentProps, 'customComponents'> = {\n field,\n }\n\n const customLabelServerProps: Pick<\n ServerComponentProps,\n 'clientField' | 'collectionSlug' | 'field' | 'i18n' | 'payload'\n > = {\n clientField: field,\n collectionSlug: collectionConfig.slug,\n field: _field,\n i18n,\n payload,\n }\n\n const CustomLabel = CustomLabelToRender\n ? RenderServerComponent({\n clientProps,\n Component: CustomLabelToRender,\n importMap: payload.importMap,\n serverProps: customLabelServerProps,\n })\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 collectionSlug: clientCollectionConfig.slug,\n customCellProps,\n field,\n rowData: undefined,\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 const cellServerProps: DefaultServerCellComponentProps = {\n cellData: cellClientProps.cellData,\n className: baseCellClientProps.className,\n collectionConfig,\n collectionSlug: collectionConfig.slug,\n columnIndex: baseCellClientProps.columnIndex,\n customCellProps: baseCellClientProps.customCellProps,\n field: _field,\n i18n,\n link: cellClientProps.link,\n onClick: baseCellClientProps.onClick,\n payload,\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 CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: _field.editor.CellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n const CustomCellComponent = _field?.admin?.components?.Cell\n\n if (CustomCellComponent) {\n CustomCell = RenderServerComponent({\n clientProps: cellClientProps,\n Component: CustomCellComponent,\n importMap: payload.importMap,\n serverProps: cellServerProps,\n })\n } else {\n CustomCell = undefined\n }\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 (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { ClientField, Column, DefaultCellComponentProps, ListPreferences, PaginatedDocs, Payload, SanitizedCollectionConfig } from 'payload';
3
+ import type { SortColumnProps } from '../SortColumn/index.js';
4
+ type Args = {
5
+ beforeRows?: Column[];
6
+ columnPreferences: ListPreferences['columns'];
7
+ columns?: ListPreferences['columns'];
8
+ customCellProps: DefaultCellComponentProps['customCellProps'];
9
+ docs: PaginatedDocs['docs'];
10
+ enableRowSelections: boolean;
11
+ enableRowTypes?: boolean;
12
+ fields: ClientField[];
13
+ i18n: I18nClient;
14
+ payload: Payload;
15
+ sortColumnProps?: Partial<SortColumnProps>;
16
+ useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle'];
17
+ };
18
+ export declare const buildPolymorphicColumnState: (args: Args) => Column[];
19
+ export {};
20
+ //# sourceMappingURL=buildPolymorphicColumnState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildPolymorphicColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildPolymorphicColumnState.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,WAAW,EACX,MAAM,EACN,yBAAyB,EAGzB,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAWhB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAW7D,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,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,WAAW,EAAE,CAAA;IACrB,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,2BAA2B,SAAU,IAAI,KAAG,MAAM,EA2P9D,CAAA"}