@payloadcms/ui 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.185cc5f

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 (253) hide show
  1. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +2 -2
  2. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  3. package/dist/elements/Autosave/index.js +1 -0
  4. package/dist/elements/Autosave/index.js.map +1 -1
  5. package/dist/elements/BulkUpload/EditMany/index.js +2 -2
  6. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js +8 -8
  8. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/index.js +12 -1
  10. package/dist/elements/BulkUpload/index.js.map +1 -1
  11. package/dist/elements/Button/index.js +2 -2
  12. package/dist/elements/Button/index.js.map +1 -1
  13. package/dist/elements/Button/types.js +13 -1
  14. package/dist/elements/Button/types.js.map +1 -1
  15. package/dist/elements/Card/index.js +5 -1
  16. package/dist/elements/Card/index.js.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +2 -2
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/CodeEditor/types.js +3 -1
  20. package/dist/elements/CodeEditor/types.js.map +1 -1
  21. package/dist/elements/Collapsible/index.js +8 -1
  22. package/dist/elements/Collapsible/index.js.map +1 -1
  23. package/dist/elements/Combobox/index.js +6 -0
  24. package/dist/elements/Combobox/index.js.map +1 -1
  25. package/dist/elements/DatePicker/DatePicker.js +1 -0
  26. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  27. package/dist/elements/DatePicker/getFormattedLocale.js +1 -0
  28. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  29. package/dist/elements/DeleteMany/index.js +25 -1
  30. package/dist/elements/DeleteMany/index.js.map +1 -1
  31. package/dist/elements/DocumentControls/index.js +1 -1
  32. package/dist/elements/DocumentControls/index.js.map +1 -1
  33. package/dist/elements/DocumentDrawer/Provider.js +5 -1
  34. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  35. package/dist/elements/DocumentDrawer/types.js +11 -1
  36. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  37. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +1 -0
  38. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  39. package/dist/elements/Drawer/index.js +3 -1
  40. package/dist/elements/Drawer/index.js.map +1 -1
  41. package/dist/elements/EditMany/DrawerContent.js +15 -1
  42. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  43. package/dist/elements/EditMany/index.js +3 -1
  44. package/dist/elements/EditMany/index.js.map +1 -1
  45. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +8 -1
  46. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  47. package/dist/elements/FolderView/FolderFileCard/index.js +1 -0
  48. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  49. package/dist/elements/FolderView/MoveDocToFolder/index.js +2 -3
  50. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  51. package/dist/elements/HTMLDiff/diff/index.js +24 -3
  52. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  53. package/dist/elements/HydrateAuthProvider/index.js +6 -1
  54. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  55. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +3 -1
  56. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  57. package/dist/elements/Link/index.js +5 -1
  58. package/dist/elements/Link/index.js.map +1 -1
  59. package/dist/elements/ListControls/types.js +7 -1
  60. package/dist/elements/ListControls/types.js.map +1 -1
  61. package/dist/elements/ListDrawer/DrawerContent.js +2 -2
  62. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  63. package/dist/elements/ListDrawer/Provider.js +8 -1
  64. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  65. package/dist/elements/ListDrawer/index.js +2 -1
  66. package/dist/elements/ListDrawer/index.js.map +1 -1
  67. package/dist/elements/ListDrawer/types.js +5 -1
  68. package/dist/elements/ListDrawer/types.js.map +1 -1
  69. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +5 -1
  70. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  71. package/dist/elements/ListSelection/index.js +11 -1
  72. package/dist/elements/ListSelection/index.js.map +1 -1
  73. package/dist/elements/LivePreview/Toolbar/Controls/index.js +1 -1
  74. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  75. package/dist/elements/Logout/index.js +5 -1
  76. package/dist/elements/Logout/index.js.map +1 -1
  77. package/dist/elements/Pill/index.js +5 -2
  78. package/dist/elements/Pill/index.js.map +1 -1
  79. package/dist/elements/PublishMany/index.js +3 -1
  80. package/dist/elements/PublishMany/index.js.map +1 -1
  81. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -2
  82. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  83. package/dist/elements/ReactSelect/index.js +2 -2
  84. package/dist/elements/ReactSelect/index.js.map +1 -1
  85. package/dist/elements/ReactSelect/types.js +8 -1
  86. package/dist/elements/ReactSelect/types.js.map +1 -1
  87. package/dist/elements/RelationshipTable/index.js +2 -2
  88. package/dist/elements/RelationshipTable/index.js.map +1 -1
  89. package/dist/elements/RestoreMany/index.js +1 -0
  90. package/dist/elements/RestoreMany/index.js.map +1 -1
  91. package/dist/elements/SaveButton/index.js +1 -2
  92. package/dist/elements/SaveButton/index.js.map +1 -1
  93. package/dist/elements/SaveDraftButton/index.js +1 -2
  94. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  95. package/dist/elements/SearchFilter/types.js +19 -1
  96. package/dist/elements/SearchFilter/types.js.map +1 -1
  97. package/dist/elements/Status/index.js +2 -2
  98. package/dist/elements/Status/index.js.map +1 -1
  99. package/dist/elements/StepNav/index.js +5 -1
  100. package/dist/elements/StepNav/index.js.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Select/index.js +4 -4
  102. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  103. package/dist/elements/Table/DefaultCell/index.js +2 -1
  104. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  105. package/dist/elements/Table/RelationshipProvider/index.js +3 -0
  106. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  107. package/dist/elements/Thumbnail/createThumbnail.js +12 -12
  108. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  109. package/dist/elements/Tooltip/index.js +3 -1
  110. package/dist/elements/Tooltip/index.js.map +1 -1
  111. package/dist/elements/UnpublishMany/index.js +3 -1
  112. package/dist/elements/UnpublishMany/index.js.map +1 -1
  113. package/dist/elements/Upload/index.js +8 -8
  114. package/dist/elements/Upload/index.js.map +1 -1
  115. package/dist/elements/WhereBuilder/Condition/Number/index.js +1 -0
  116. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  117. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +5 -6
  118. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  119. package/dist/elements/WhereBuilder/Condition/Text/index.js +1 -0
  120. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  121. package/dist/elements/WhereBuilder/index.js +2 -2
  122. package/dist/elements/WhereBuilder/index.js.map +1 -1
  123. package/dist/exports/client/index.js +26 -2
  124. package/dist/exports/client/index.js.map +1 -1
  125. package/dist/exports/shared/index.js +2 -1
  126. package/dist/exports/shared/index.js.map +1 -1
  127. package/dist/fields/Blocks/BlockSelector/index.js +3 -1
  128. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  129. package/dist/fields/Email/index.js +1 -1
  130. package/dist/fields/Email/index.js.map +1 -1
  131. package/dist/fields/Group/index.js +1 -1
  132. package/dist/fields/Group/index.js.map +1 -1
  133. package/dist/fields/Number/index.js +5 -3
  134. package/dist/fields/Number/index.js.map +1 -1
  135. package/dist/fields/Password/types.js +11 -1
  136. package/dist/fields/Password/types.js.map +1 -1
  137. package/dist/fields/Point/index.js +2 -2
  138. package/dist/fields/Point/index.js.map +1 -1
  139. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +4 -1
  140. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  141. package/dist/fields/Relationship/select-components/SingleValue/index.js +4 -1
  142. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  143. package/dist/fields/Text/index.js +3 -2
  144. package/dist/fields/Text/index.js.map +1 -1
  145. package/dist/fields/Upload/Input.js +3 -1
  146. package/dist/fields/Upload/Input.js.map +1 -1
  147. package/dist/fields/Upload/types.js +1 -0
  148. package/dist/fields/Upload/types.js.map +1 -1
  149. package/dist/fields/shared/index.js +2 -3
  150. package/dist/fields/shared/index.js.map +1 -1
  151. package/dist/forms/Form/fieldReducer.js +2 -1
  152. package/dist/forms/Form/fieldReducer.js.map +1 -1
  153. package/dist/forms/Form/index.js +12 -9
  154. package/dist/forms/Form/index.js.map +1 -1
  155. package/dist/forms/Form/mergeServerFormState.js +11 -3
  156. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  157. package/dist/forms/Form/reduceToSerializableFields.js +2 -2
  158. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  159. package/dist/forms/Form/types.js +52 -1
  160. package/dist/forms/Form/types.js.map +1 -1
  161. package/dist/forms/NullifyField/index.js +2 -1
  162. package/dist/forms/NullifyField/index.js.map +1 -1
  163. package/dist/forms/WatchChildErrors/index.js +6 -1
  164. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  165. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +20 -0
  166. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  167. package/dist/forms/fieldSchemasToFormState/index.js +33 -1
  168. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  169. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +2 -2
  170. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  171. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  172. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  173. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -2
  174. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  175. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -1
  176. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  177. package/dist/forms/fieldSchemasToFormState/types.js +5 -1
  178. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  179. package/dist/forms/useField/index.js +1 -0
  180. package/dist/forms/useField/index.js.map +1 -1
  181. package/dist/forms/useField/types.js +19 -1
  182. package/dist/forms/useField/types.js.map +1 -1
  183. package/dist/hooks/useControllableState.js +9 -1
  184. package/dist/hooks/useControllableState.js.map +1 -1
  185. package/dist/hooks/useDelayedRender.js +3 -1
  186. package/dist/hooks/useDelayedRender.js.map +1 -1
  187. package/dist/hooks/useHotkey.js +2 -2
  188. package/dist/hooks/useHotkey.js.map +1 -1
  189. package/dist/hooks/usePayloadAPI.js +3 -4
  190. package/dist/hooks/usePayloadAPI.js.map +1 -1
  191. package/dist/hooks/usePopupWindow.js +2 -2
  192. package/dist/hooks/usePopupWindow.js.map +1 -1
  193. package/dist/hooks/useQueue.js +15 -7
  194. package/dist/hooks/useQueue.js.map +1 -1
  195. package/dist/hooks/useResize.js +4 -3
  196. package/dist/hooks/useResize.js.map +1 -1
  197. package/dist/providers/Auth/index.js +35 -3
  198. package/dist/providers/Auth/index.js.map +1 -1
  199. package/dist/providers/Config/index.js +10 -1
  200. package/dist/providers/Config/index.js.map +1 -1
  201. package/dist/providers/DocumentInfo/index.js +6 -7
  202. package/dist/providers/DocumentInfo/index.js.map +1 -1
  203. package/dist/providers/DocumentInfo/types.js +25 -1
  204. package/dist/providers/DocumentInfo/types.js.map +1 -1
  205. package/dist/providers/Folders/index.js +44 -2
  206. package/dist/providers/Folders/index.js.map +1 -1
  207. package/dist/providers/ListQuery/types.js +5 -1
  208. package/dist/providers/ListQuery/types.js.map +1 -1
  209. package/dist/providers/LivePreview/context.js +11 -1
  210. package/dist/providers/LivePreview/context.js.map +1 -1
  211. package/dist/providers/LivePreview/index.js +7 -4
  212. package/dist/providers/LivePreview/index.js.map +1 -1
  213. package/dist/providers/Preferences/index.js +7 -2
  214. package/dist/providers/Preferences/index.js.map +1 -1
  215. package/dist/providers/RouteTransition/index.js +9 -9
  216. package/dist/providers/RouteTransition/index.js.map +1 -1
  217. package/dist/providers/Selection/index.js +7 -2
  218. package/dist/providers/Selection/index.js.map +1 -1
  219. package/dist/providers/ServerFunctions/index.js +25 -22
  220. package/dist/providers/ServerFunctions/index.js.map +1 -1
  221. package/dist/providers/TableColumns/buildColumnState/index.js +10 -9
  222. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  223. package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -3
  224. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  225. package/dist/providers/TableColumns/types.js +17 -1
  226. package/dist/providers/TableColumns/types.js.map +1 -1
  227. package/dist/utilities/abortAndIgnore.js +4 -6
  228. package/dist/utilities/abortAndIgnore.js.map +1 -1
  229. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +2 -2
  230. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  231. package/dist/utilities/copyDataFromLocale.js +6 -2
  232. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  233. package/dist/utilities/getDisplayedFieldValue.js +8 -8
  234. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  235. package/dist/utilities/getFolderResultsComponentAndData.js +2 -1
  236. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  237. package/dist/utilities/handleFormStateLocking.js +2 -2
  238. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  239. package/dist/utilities/hasSavePermission.js +5 -1
  240. package/dist/utilities/hasSavePermission.js.map +1 -1
  241. package/dist/utilities/isURLAllowed.js +6 -6
  242. package/dist/utilities/isURLAllowed.js.map +1 -1
  243. package/dist/utilities/renderTable.js +2 -1
  244. package/dist/utilities/renderTable.js.map +1 -1
  245. package/dist/utilities/schedulePublishHandler.js +3 -1
  246. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  247. package/dist/utilities/upsertPreferences.js +1 -0
  248. package/dist/utilities/upsertPreferences.js.map +1 -1
  249. package/dist/views/Edit/index.js +7 -7
  250. package/dist/views/Edit/index.js.map +1 -1
  251. package/dist/views/List/ListHeader/index.js +6 -1
  252. package/dist/views/List/ListHeader/index.js.map +1 -1
  253. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useBulkUpload } from '../../../elements/BulkUpload/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\n\nexport function ListBulkUploadButton({\n collectionSlug,\n hasCreatePermission,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n openBulkUpload: openBulkUploadFromProps,\n}: {\n collectionSlug: CollectionSlug\n hasCreatePermission: boolean\n isBulkUploadEnabled: boolean\n onBulkUploadSuccess?: () => void\n /**\n * @deprecated This prop will be removed in the next major version.\n *\n * Prefer using `onBulkUploadSuccess`\n */\n openBulkUpload?: () => void\n}) {\n const { drawerSlug: bulkUploadDrawerSlug, setCollectionSlug, setOnSuccess } = useBulkUpload()\n const { t } = useTranslation()\n const { openModal } = useModal()\n const router = useRouter()\n\n const openBulkUpload = React.useCallback(() => {\n if (typeof openBulkUploadFromProps === 'function') {\n openBulkUploadFromProps()\n } else {\n setCollectionSlug(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(() => {\n if (typeof onBulkUploadSuccess === 'function') {\n onBulkUploadSuccess()\n } else {\n router.refresh()\n }\n })\n }\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setOnSuccess,\n onBulkUploadSuccess,\n openBulkUploadFromProps,\n ])\n\n if (!hasCreatePermission || !isBulkUploadEnabled) {\n return null\n }\n\n return (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n key=\"bulk-upload-button\"\n onClick={openBulkUpload}\n size=\"small\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )\n}\n"],"names":["useModal","useRouter","React","useBulkUpload","useTranslation","Button","ListBulkUploadButton","collectionSlug","hasCreatePermission","isBulkUploadEnabled","onBulkUploadSuccess","openBulkUpload","openBulkUploadFromProps","drawerSlug","bulkUploadDrawerSlug","setCollectionSlug","setOnSuccess","t","openModal","router","useCallback","refresh","aria-label","buttonStyle","onClick","size"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,wCAAuC;AACrE,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,MAAM,QAAQ,wBAAuB;AAE9C,OAAO,SAASC,qBAAqB,EACnCC,cAAc,EACdC,mBAAmB,EACnBC,mBAAmB,EACnBC,mBAAmB,EACnBC,gBAAgBC,uBAAuB,EAYxC;IACC,MAAM,EAAEC,YAAYC,oBAAoB,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGb;IAC9E,MAAM,EAAEc,CAAC,EAAE,GAAGb;IACd,MAAM,EAAEc,SAAS,EAAE,GAAGlB;IACtB,MAAMmB,SAASlB;IAEf,MAAMU,iBAAiBT,MAAMkB,WAAW,CAAC;QACvC,IAAI,OAAOR,4BAA4B,YAAY;YACjDA;QACF,OAAO;YACLG,kBAAkBR;YAClBW,UAAUJ;YACVE,aAAa;gBACX,IAAI,OAAON,wBAAwB,YAAY;oBAC7CA;gBACF,OAAO;oBACLS,OAAOE,OAAO;gBAChB;YACF;QACF;IACF,GAAG;QACDF;QACAZ;QACAO;QACAI;QACAH;QACAC;QACAN;QACAE;KACD;IAED,IAAI,CAACJ,uBAAuB,CAACC,qBAAqB;QAChD,OAAO;IACT;IAEA,qBACE,KAACJ;QACCiB,cAAYL,EAAE;QACdM,aAAY;QAEZC,SAASb;QACTc,MAAK;kBAEJR,EAAE;OAJC;AAOV"}
1
+ {"version":3,"sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useBulkUpload } from '../../../elements/BulkUpload/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\n\nexport function ListBulkUploadButton({\n collectionSlug,\n hasCreatePermission,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n openBulkUpload: openBulkUploadFromProps,\n}: {\n collectionSlug: CollectionSlug\n hasCreatePermission: boolean\n isBulkUploadEnabled: boolean\n onBulkUploadSuccess?: () => void\n /**\n * @deprecated This prop will be removed in the next major version.\n *\n * Prefer using `onBulkUploadSuccess`\n */\n openBulkUpload?: () => void\n}) {\n const { drawerSlug: bulkUploadDrawerSlug, setCollectionSlug, setOnSuccess } = useBulkUpload()\n const { t } = useTranslation()\n const { openModal } = useModal()\n const router = useRouter()\n\n const openBulkUpload = React.useCallback(() => {\n if (typeof openBulkUploadFromProps === 'function') {\n openBulkUploadFromProps()\n } else {\n setCollectionSlug(collectionSlug)\n openModal(bulkUploadDrawerSlug)\n setOnSuccess(() => {\n if (typeof onBulkUploadSuccess === 'function') {\n onBulkUploadSuccess()\n } else {\n router.refresh()\n }\n })\n }\n }, [\n router,\n collectionSlug,\n bulkUploadDrawerSlug,\n openModal,\n setCollectionSlug,\n setOnSuccess,\n onBulkUploadSuccess,\n openBulkUploadFromProps,\n ])\n\n if (!hasCreatePermission || !isBulkUploadEnabled) {\n return null\n }\n\n return (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n key=\"bulk-upload-button\"\n onClick={openBulkUpload}\n size=\"small\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )\n}\n"],"names":["useModal","useRouter","React","useBulkUpload","useTranslation","Button","ListBulkUploadButton","collectionSlug","hasCreatePermission","isBulkUploadEnabled","onBulkUploadSuccess","openBulkUpload","openBulkUploadFromProps","drawerSlug","bulkUploadDrawerSlug","setCollectionSlug","setOnSuccess","t","openModal","router","useCallback","refresh","aria-label","buttonStyle","onClick","size"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,wCAAuC;AACrE,SAASC,cAAc,QAAQ,0CAAyC;AACxE,SAASC,MAAM,QAAQ,wBAAuB;AAE9C,OAAO,SAASC,qBAAqB,EACnCC,cAAc,EACdC,mBAAmB,EACnBC,mBAAmB,EACnBC,mBAAmB,EACnBC,gBAAgBC,uBAAuB,EAYxC,EANC;;;;GAIC;IAGD,MAAM,EAAEC,YAAYC,oBAAoB,EAAEC,iBAAiB,EAAEC,YAAY,EAAE,GAAGb;IAC9E,MAAM,EAAEc,CAAC,EAAE,GAAGb;IACd,MAAM,EAAEc,SAAS,EAAE,GAAGlB;IACtB,MAAMmB,SAASlB;IAEf,MAAMU,iBAAiBT,MAAMkB,WAAW,CAAC;QACvC,IAAI,OAAOR,4BAA4B,YAAY;YACjDA;QACF,OAAO;YACLG,kBAAkBR;YAClBW,UAAUJ;YACVE,aAAa;gBACX,IAAI,OAAON,wBAAwB,YAAY;oBAC7CA;gBACF,OAAO;oBACLS,OAAOE,OAAO;gBAChB;YACF;QACF;IACF,GAAG;QACDF;QACAZ;QACAO;QACAI;QACAH;QACAC;QACAN;QACAE;KACD;IAED,IAAI,CAACJ,uBAAuB,CAACC,qBAAqB;QAChD,OAAO;IACT;IAEA,qBACE,KAACJ;QACCiB,cAAYL,EAAE;QACdM,aAAY;QAEZC,SAASb;QACTc,MAAK;kBAEJR,EAAE;OAJC;AAOV"}
@@ -5,7 +5,17 @@ import { useTranslation } from '../../providers/Translation/index.js';
5
5
  import { Button } from '../Button/index.js';
6
6
  import './index.scss';
7
7
  const baseClass = 'list-selection';
8
- export function ListSelection_v4({ count, ListActions, SelectionActions }) {
8
+ /**
9
+ * The count of selected items
10
+ */ /**
11
+ * Actions that apply to the list as a whole
12
+ *
13
+ * @example select all, clear selection
14
+ */ /**
15
+ * Actions that apply to the selected items
16
+ *
17
+ * @example edit, delete, publish, unpublish
18
+ */ export function ListSelection_v4({ count, ListActions, SelectionActions }) {
9
19
  const { t } = useTranslation();
10
20
  return /*#__PURE__*/ _jsxs("div", {
11
21
  className: baseClass,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListSelection/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { Props as ButtonProps } from '../Button/types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'list-selection'\n\ntype ListSelection_v4Props = {\n /**\n * The count of selected items\n */\n readonly count: number\n /**\n * Actions that apply to the list as a whole\n *\n * @example select all, clear selection\n */\n readonly ListActions?: React.ReactNode[]\n /**\n * Actions that apply to the selected items\n *\n * @example edit, delete, publish, unpublish\n */\n readonly SelectionActions?: React.ReactNode[]\n}\nexport function ListSelection_v4({ count, ListActions, SelectionActions }: ListSelection_v4Props) {\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <span>{t('general:selectedCount', { count, label: '' })}</span>\n {ListActions && ListActions.length > 0 && (\n <React.Fragment>\n <span>&mdash;</span>\n <div className={`${baseClass}__actions`}>{ListActions}</div>\n </React.Fragment>\n )}\n {SelectionActions && SelectionActions.length > 0 && (\n <React.Fragment>\n <span>&mdash;</span>\n <div className={`${baseClass}__actions`}>{SelectionActions}</div>\n </React.Fragment>\n )}\n </div>\n )\n}\n\ntype ListSelectionButtonProps = {} & ButtonProps\nexport function ListSelectionButton({ children, className, ...props }: ListSelectionButtonProps) {\n return (\n <Button\n {...props}\n buttonStyle=\"none\"\n className={[`${baseClass}__button`, className].filter(Boolean).join(' ')}\n >\n {children}\n </Button>\n )\n}\n"],"names":["React","useTranslation","Button","baseClass","ListSelection_v4","count","ListActions","SelectionActions","t","div","className","span","label","length","Fragment","ListSelectionButton","children","props","buttonStyle","filter","Boolean","join"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAoBlB,OAAO,SAASC,iBAAiB,EAAEC,KAAK,EAAEC,WAAW,EAAEC,gBAAgB,EAAyB;IAC9F,MAAM,EAAEC,CAAC,EAAE,GAAGP;IAEd,qBACE,MAACQ;QAAIC,WAAWP;;0BACd,KAACQ;0BAAMH,EAAE,yBAAyB;oBAAEH;oBAAOO,OAAO;gBAAG;;YACpDN,eAAeA,YAAYO,MAAM,GAAG,mBACnC,MAACb,MAAMc,QAAQ;;kCACb,KAACH;kCAAK;;kCACN,KAACF;wBAAIC,WAAW,GAAGP,UAAU,SAAS,CAAC;kCAAGG;;;;YAG7CC,oBAAoBA,iBAAiBM,MAAM,GAAG,mBAC7C,MAACb,MAAMc,QAAQ;;kCACb,KAACH;kCAAK;;kCACN,KAACF;wBAAIC,WAAW,GAAGP,UAAU,SAAS,CAAC;kCAAGI;;;;;;AAKpD;AAGA,OAAO,SAASQ,oBAAoB,EAAEC,QAAQ,EAAEN,SAAS,EAAE,GAAGO,OAAiC;IAC7F,qBACE,KAACf;QACE,GAAGe,KAAK;QACTC,aAAY;QACZR,WAAW;YAAC,GAAGP,UAAU,QAAQ,CAAC;YAAEO;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;kBAEnEL;;AAGP"}
1
+ {"version":3,"sources":["../../../src/elements/ListSelection/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport type { Props as ButtonProps } from '../Button/types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'list-selection'\n\ntype ListSelection_v4Props = {\n /**\n * The count of selected items\n */\n readonly count: number\n /**\n * Actions that apply to the list as a whole\n *\n * @example select all, clear selection\n */\n readonly ListActions?: React.ReactNode[]\n /**\n * Actions that apply to the selected items\n *\n * @example edit, delete, publish, unpublish\n */\n readonly SelectionActions?: React.ReactNode[]\n}\nexport function ListSelection_v4({ count, ListActions, SelectionActions }: ListSelection_v4Props) {\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <span>{t('general:selectedCount', { count, label: '' })}</span>\n {ListActions && ListActions.length > 0 && (\n <React.Fragment>\n <span>&mdash;</span>\n <div className={`${baseClass}__actions`}>{ListActions}</div>\n </React.Fragment>\n )}\n {SelectionActions && SelectionActions.length > 0 && (\n <React.Fragment>\n <span>&mdash;</span>\n <div className={`${baseClass}__actions`}>{SelectionActions}</div>\n </React.Fragment>\n )}\n </div>\n )\n}\n\ntype ListSelectionButtonProps = {} & ButtonProps\nexport function ListSelectionButton({ children, className, ...props }: ListSelectionButtonProps) {\n return (\n <Button\n {...props}\n buttonStyle=\"none\"\n className={[`${baseClass}__button`, className].filter(Boolean).join(' ')}\n >\n {children}\n </Button>\n )\n}\n"],"names":["React","useTranslation","Button","baseClass","ListSelection_v4","count","ListActions","SelectionActions","t","div","className","span","label","length","Fragment","ListSelectionButton","children","props","buttonStyle","filter","Boolean","join"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAGhB;;GAEC,GAED;;;;GAIC,GAED;;;;GAIC,GAGH,OAAO,SAASC,iBAAiB,EAAEC,KAAK,EAAEC,WAAW,EAAEC,gBAAgB,EAAyB;IAC9F,MAAM,EAAEC,CAAC,EAAE,GAAGP;IAEd,qBACE,MAACQ;QAAIC,WAAWP;;0BACd,KAACQ;0BAAMH,EAAE,yBAAyB;oBAAEH;oBAAOO,OAAO;gBAAG;;YACpDN,eAAeA,YAAYO,MAAM,GAAG,mBACnC,MAACb,MAAMc,QAAQ;;kCACb,KAACH;kCAAK;;kCACN,KAACF;wBAAIC,WAAW,GAAGP,UAAU,SAAS,CAAC;kCAAGG;;;;YAG7CC,oBAAoBA,iBAAiBM,MAAM,GAAG,mBAC7C,MAACb,MAAMc,QAAQ;;kCACb,KAACH;kCAAK;;kCACN,KAACF;wBAAIC,WAAW,GAAGP,UAAU,SAAS,CAAC;kCAAGI;;;;;;AAKpD;AAGA,OAAO,SAASQ,oBAAoB,EAAEC,QAAQ,EAAEN,SAAS,EAAE,GAAGO,OAAiC;IAC7F,qBACE,KAACf;QACE,GAAGe,KAAK;QACTC,aAAY;QACZR,WAAW;YAAC,GAAGP,UAAU,QAAQ,CAAC;YAAEO;SAAU,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;kBAEnEL;;AAGP"}
@@ -52,7 +52,7 @@ export const ToolbarControls = ()=>{
52
52
  },
53
53
  children: bp.label
54
54
  }, bp.name)),
55
- breakpoint === 'custom' && /*#__PURE__*/ _jsx(PopupList.Button, {
55
+ /* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */ breakpoint === 'custom' && /*#__PURE__*/ _jsx(PopupList.Button, {
56
56
  active: breakpoint == customOption.value,
57
57
  onClick: ()=>{
58
58
  setBreakpoint(customOption.value);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { ExternalLinkIcon } from '../../../../icons/ExternalLink/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useLivePreviewContext } from '../../../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../../Popup/index.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n\n const { t } = useTranslation()\n\n const customOption = {\n label: t('general:custom'),\n value: 'custom',\n }\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <XIcon />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n target=\"_blank\"\n title=\"Open in new window\"\n type=\"button\"\n >\n <ExternalLinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["React","ChevronIcon","ExternalLinkIcon","XIcon","useLivePreviewContext","useTranslation","Popup","PopupList","PreviewFrameSizeInput","baseClass","zoomOptions","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","t","customOption","label","value","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","target","title","type"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/elements/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { ExternalLinkIcon } from '../../../../icons/ExternalLink/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useLivePreviewContext } from '../../../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../../Popup/index.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n\n const { t } = useTranslation()\n\n const customOption = {\n label: t('general:custom'),\n value: 'custom',\n }\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <XIcon />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n target=\"_blank\"\n title=\"Open in new window\"\n type=\"button\"\n >\n <ExternalLinkIcon />\n </a>\n </div>\n )\n}\n"],"names":["React","ChevronIcon","ExternalLinkIcon","XIcon","useLivePreviewContext","useTranslation","Popup","PopupList","PreviewFrameSizeInput","baseClass","zoomOptions","ToolbarControls","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","t","customOption","label","value","div","className","length","button","Fragment","span","find","bp","name","horizontalAlign","render","close","ButtonGroup","map","Button","active","onClick","showScrollbar","verticalAlign","axis","zoomValue","a","href","e","preventDefault","target","title","type"],"mappings":"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"}
@@ -7,7 +7,11 @@ import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
8
  import { Link } from '../Link/index.js';
9
9
  const baseClass = 'nav';
10
- export const Logout = ({ tabIndex = 0 })=>{
10
+ export const Logout = /**
11
+ * @deprecated
12
+ * This prop is deprecated and will be removed in the next major version.
13
+ * Components now import their own `Link` directly from `next/link`.
14
+ */ ({ tabIndex = 0 })=>{
11
15
  const { t } = useTranslation();
12
16
  const { config } = useConfig();
13
17
  const { admin: { routes: { logout: logoutRoute } }, routes: { admin: adminRoute } } = config;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Link } from '../Link/index.js'\n\nconst baseClass = 'nav'\n\nexport const Logout: React.FC<{\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ tabIndex = 0 }) => {\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n return (\n <Link\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n })}\n prefetch={false}\n tabIndex={tabIndex}\n title={t('authentication:logOut')}\n >\n <LogOutIcon />\n </Link>\n )\n}\n"],"names":["formatAdminURL","React","LogOutIcon","useConfig","useTranslation","Link","baseClass","Logout","tabIndex","t","config","admin","routes","logout","logoutRoute","adminRoute","aria-label","className","href","path","prefetch","title"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAEzB,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,IAAI,QAAQ,mBAAkB;AAEvC,MAAMC,YAAY;AAElB,OAAO,MAAMC,SAQR,CAAC,EAAEC,WAAW,CAAC,EAAE;IACpB,MAAM,EAAEC,CAAC,EAAE,GAAGL;IACd,MAAM,EAAEM,MAAM,EAAE,GAAGP;IAEnB,MAAM,EACJQ,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGL;IAEJ,qBACE,KAACL;QACCW,cAAYP,EAAE;QACdQ,WAAW,GAAGX,UAAU,SAAS,CAAC;QAClCY,MAAMlB,eAAe;YACnBe;YACAI,MAAML;QACR;QACAM,UAAU;QACVZ,UAAUA;QACVa,OAAOZ,EAAE;kBAET,cAAA,KAACP;;AAGP,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Link } from '../Link/index.js'\n\nconst baseClass = 'nav'\n\nexport const Logout: React.FC<{\n /**\n * @deprecated\n * This prop is deprecated and will be removed in the next major version.\n * Components now import their own `Link` directly from `next/link`.\n */\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ tabIndex = 0 }) => {\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n return (\n <Link\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n })}\n prefetch={false}\n tabIndex={tabIndex}\n title={t('authentication:logOut')}\n >\n <LogOutIcon />\n </Link>\n )\n}\n"],"names":["formatAdminURL","React","LogOutIcon","useConfig","useTranslation","Link","baseClass","Logout","tabIndex","t","config","admin","routes","logout","logoutRoute","adminRoute","aria-label","className","href","path","prefetch","title"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,WAAW,QAAO;AAEzB,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,IAAI,QAAQ,mBAAkB;AAEvC,MAAMC,YAAY;AAElB,OAAO,MAAMC,SACX;;;;GAIC,GAGE,CAAC,EAAEC,WAAW,CAAC,EAAE;IACpB,MAAM,EAAEC,CAAC,EAAE,GAAGL;IACd,MAAM,EAAEM,MAAM,EAAE,GAAGP;IAEnB,MAAM,EACJQ,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGL;IAEJ,qBACE,KAACL;QACCW,cAAYP,EAAE;QACdQ,WAAW,GAAGX,UAAU,SAAS,CAAC;QAClCY,MAAMlB,eAAe;YACnBe;YACAI,MAAML;QACR;QACAM,UAAU;QACVZ,UAAUA;QACVa,OAAOZ,EAAE;kBAET,cAAA,KAACP;;AAGP,EAAC"}
@@ -1,8 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React from 'react'; // TODO: abstract this out to support all routers
3
+ import React from 'react';
4
+ // TODO: abstract this out to support all routers
4
5
  import { Link } from '../Link/index.js';
5
- import { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js';
6
+ /**
7
+ * @default 'light'
8
+ */ import { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js';
6
9
  import './index.scss';
7
10
  const baseClass = 'pill';
8
11
  const DraggablePill = (props)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType, HTMLAttributes } from 'react'\n\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { Link } from '../Link/index.js'\n\nexport type PillStyle =\n | 'always-white'\n | 'dark'\n | 'error'\n | 'light'\n | 'light-gray'\n | 'success'\n | 'warning'\n | 'white'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: {\n ref: React.RefCallback<HTMLElement>\n } & HTMLAttributes<HTMLElement>\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n /**\n * @default 'light'\n */\n pillStyle?: PillStyle\n rounded?: boolean\n size?: 'medium' | 'small'\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n id,\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n size = 'medium',\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n `${baseClass}--size-${size}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) {\n Element = 'button'\n }\n\n if (to) {\n Element = Link\n }\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || null}\n id={id}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n <span className={`${baseClass}__label`}>{children}</span>\n {Boolean(icon) && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggablePill {...props} />\n }\n return <StaticPill {...props} />\n}\n"],"names":["React","Link","useDraggableSortable","baseClass","DraggablePill","props","id","className","attributes","isDragging","listeners","setNodeRef","transform","StaticPill","filter","Boolean","join","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","size","to","classes","Element","aria-checked","aria-controls","aria-expanded","aria-label","href","type","undefined","span","Pill"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO,CAAC,iDAAiD;AAE3E,SAASC,IAAI,QAAQ,mBAAkB;AA4CvC,SAASC,oBAAoB,QAAQ,qDAAoD;AACzF,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,MAAMC,gBAAqC,CAACC;IAC1C,MAAM,EAAEC,EAAE,EAAEC,SAAS,EAAE,GAAGF;IAE1B,MAAM,EAAEG,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGV,qBAAqB;QACxFI;IACF;IAEA,qBACE,KAACO;QACE,GAAGR,KAAK;QACTE,WAAW;YAACE,cAAc,GAAGN,UAAU,aAAa,CAAC;YAAEI;SAAU,CAACO,MAAM,CAACC,SAASC,IAAI,CAAC;QACvFC,cAAc;YACZ,GAAGP,SAAS;YACZ,GAAGF,UAAU;YACbU,KAAKP;YACLQ,OAAO;gBACLP;YACF;QACF;;AAGN;AAEA,MAAMC,aAAkC,CAACR;IACvC,MAAM,EACJC,EAAE,EACFc,YAAY,OAAO,EACnB,gBAAgBC,WAAW,EAC3B,iBAAiBC,YAAY,EAC7B,iBAAiBC,YAAY,EAC7B,cAAcC,SAAS,EACvBC,QAAQ,EACRlB,SAAS,EACTmB,SAAS,EACTT,YAAY,EACZU,IAAI,EACJC,OAAO,EACPC,YAAY,OAAO,EACnBC,OAAO,EACPC,OAAO,QAAQ,EACfC,EAAE,EACH,GAAG3B;IAEJ,MAAM4B,UAAU;QACd9B;QACA,GAAGA,UAAU,QAAQ,EAAE0B,WAAW;QAClC,GAAG1B,UAAU,OAAO,EAAE4B,MAAM;QAC5BxB,aAAaA;QACbyB,MAAM,GAAG7B,UAAU,UAAU,CAAC;QAC7B6B,CAAAA,MAAMJ,OAAM,KAAM,GAAGzB,UAAU,YAAY,CAAC;QAC7CwB,QAAQ,GAAGxB,UAAU,UAAU,CAAC;QAChCwB,QAAQ,GAAGxB,UAAU,aAAa,EAAEiB,WAAW;QAC/CM,aAAa,GAAGvB,UAAU,WAAW,CAAC;QACtC2B,WAAW,GAAG3B,UAAU,SAAS,CAAC;KACnC,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIkB,UAAqD;IAEzD,IAAIN,WAAW,CAACI,IAAI;QAClBE,UAAU;IACZ;IAEA,IAAIF,IAAI;QACNE,UAAUjC;IACZ;IAEA,qBACE,MAACiC;QACE,GAAGjB,YAAY;QAChBkB,gBAAcd;QACde,iBAAed;QACfe,iBAAed;QACfe,cAAYd;QACZjB,WAAW0B;QACXM,MAAMP,MAAM;QACZ1B,IAAIA;QACJsB,SAASA;QACTY,MAAMN,YAAY,WAAW,WAAWO;;0BAExC,KAACC;gBAAKnC,WAAW,GAAGJ,UAAU,OAAO,CAAC;0BAAGsB;;YACxCV,QAAQY,uBAAS,KAACe;gBAAKnC,WAAW,GAAGJ,UAAU,MAAM,CAAC;0BAAGwB;;;;AAGhE;AAEA,OAAO,MAAMgB,OAA4B,CAACtC;IACxC,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW;QACb,qBAAO,KAACtB;YAAe,GAAGC,KAAK;;IACjC;IACA,qBAAO,KAACQ;QAAY,GAAGR,KAAK;;AAC9B,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Pill/index.tsx"],"sourcesContent":["'use client'\nimport type { ElementType, HTMLAttributes } from 'react'\n\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { Link } from '../Link/index.js'\n\nexport type PillStyle =\n | 'always-white'\n | 'dark'\n | 'error'\n | 'light'\n | 'light-gray'\n | 'success'\n | 'warning'\n | 'white'\n\nexport type PillProps = {\n alignIcon?: 'left' | 'right'\n 'aria-checked'?: boolean\n 'aria-controls'?: string\n 'aria-expanded'?: boolean\n 'aria-label'?: string\n children?: React.ReactNode\n className?: string\n draggable?: boolean\n elementProps?: {\n ref: React.RefCallback<HTMLElement>\n } & HTMLAttributes<HTMLElement>\n icon?: React.ReactNode\n id?: string\n onClick?: () => void\n /**\n * @default 'light'\n */\n pillStyle?: PillStyle\n rounded?: boolean\n size?: 'medium' | 'small'\n to?: string\n}\n\nexport type RenderedTypeProps = {\n children: React.ReactNode\n className?: string\n onClick?: () => void\n to: string\n type?: 'button'\n}\n\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'pill'\n\nconst DraggablePill: React.FC<PillProps> = (props) => {\n const { id, className } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id,\n })\n\n return (\n <StaticPill\n {...props}\n className={[isDragging && `${baseClass}--is-dragging`, className].filter(Boolean).join(' ')}\n elementProps={{\n ...listeners,\n ...attributes,\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n\nconst StaticPill: React.FC<PillProps> = (props) => {\n const {\n id,\n alignIcon = 'right',\n 'aria-checked': ariaChecked,\n 'aria-controls': ariaControls,\n 'aria-expanded': ariaExpanded,\n 'aria-label': ariaLabel,\n children,\n className,\n draggable,\n elementProps,\n icon,\n onClick,\n pillStyle = 'light',\n rounded,\n size = 'medium',\n to,\n } = props\n\n const classes = [\n baseClass,\n `${baseClass}--style-${pillStyle}`,\n `${baseClass}--size-${size}`,\n className && className,\n to && `${baseClass}--has-link`,\n (to || onClick) && `${baseClass}--has-action`,\n icon && `${baseClass}--has-icon`,\n icon && `${baseClass}--align-icon-${alignIcon}`,\n draggable && `${baseClass}--draggable`,\n rounded && `${baseClass}--rounded`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let Element: ElementType | React.FC<RenderedTypeProps> = 'div'\n\n if (onClick && !to) {\n Element = 'button'\n }\n\n if (to) {\n Element = Link\n }\n\n return (\n <Element\n {...elementProps}\n aria-checked={ariaChecked}\n aria-controls={ariaControls}\n aria-expanded={ariaExpanded}\n aria-label={ariaLabel}\n className={classes}\n href={to || null}\n id={id}\n onClick={onClick}\n type={Element === 'button' ? 'button' : undefined}\n >\n <span className={`${baseClass}__label`}>{children}</span>\n {Boolean(icon) && <span className={`${baseClass}__icon`}>{icon}</span>}\n </Element>\n )\n}\n\nexport const Pill: React.FC<PillProps> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggablePill {...props} />\n }\n return <StaticPill {...props} />\n}\n"],"names":["React","Link","useDraggableSortable","baseClass","DraggablePill","props","id","className","attributes","isDragging","listeners","setNodeRef","transform","StaticPill","filter","Boolean","join","elementProps","ref","style","alignIcon","ariaChecked","ariaControls","ariaExpanded","ariaLabel","children","draggable","icon","onClick","pillStyle","rounded","size","to","classes","Element","aria-checked","aria-controls","aria-expanded","aria-label","href","type","undefined","span","Pill"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAAC,iDAAiD;AAE3E,SAASC,IAAI,QAAQ,mBAAkB;AA2BrC;;GAEC,GAeH,SAASC,oBAAoB,QAAQ,qDAAoD;AACzF,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,MAAMC,gBAAqC,CAACC;IAC1C,MAAM,EAAEC,EAAE,EAAEC,SAAS,EAAE,GAAGF;IAE1B,MAAM,EAAEG,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGV,qBAAqB;QACxFI;IACF;IAEA,qBACE,KAACO;QACE,GAAGR,KAAK;QACTE,WAAW;YAACE,cAAc,GAAGN,UAAU,aAAa,CAAC;YAAEI;SAAU,CAACO,MAAM,CAACC,SAASC,IAAI,CAAC;QACvFC,cAAc;YACZ,GAAGP,SAAS;YACZ,GAAGF,UAAU;YACbU,KAAKP;YACLQ,OAAO;gBACLP;YACF;QACF;;AAGN;AAEA,MAAMC,aAAkC,CAACR;IACvC,MAAM,EACJC,EAAE,EACFc,YAAY,OAAO,EACnB,gBAAgBC,WAAW,EAC3B,iBAAiBC,YAAY,EAC7B,iBAAiBC,YAAY,EAC7B,cAAcC,SAAS,EACvBC,QAAQ,EACRlB,SAAS,EACTmB,SAAS,EACTT,YAAY,EACZU,IAAI,EACJC,OAAO,EACPC,YAAY,OAAO,EACnBC,OAAO,EACPC,OAAO,QAAQ,EACfC,EAAE,EACH,GAAG3B;IAEJ,MAAM4B,UAAU;QACd9B;QACA,GAAGA,UAAU,QAAQ,EAAE0B,WAAW;QAClC,GAAG1B,UAAU,OAAO,EAAE4B,MAAM;QAC5BxB,aAAaA;QACbyB,MAAM,GAAG7B,UAAU,UAAU,CAAC;QAC7B6B,CAAAA,MAAMJ,OAAM,KAAM,GAAGzB,UAAU,YAAY,CAAC;QAC7CwB,QAAQ,GAAGxB,UAAU,UAAU,CAAC;QAChCwB,QAAQ,GAAGxB,UAAU,aAAa,EAAEiB,WAAW;QAC/CM,aAAa,GAAGvB,UAAU,WAAW,CAAC;QACtC2B,WAAW,GAAG3B,UAAU,SAAS,CAAC;KACnC,CACEW,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIkB,UAAqD;IAEzD,IAAIN,WAAW,CAACI,IAAI;QAClBE,UAAU;IACZ;IAEA,IAAIF,IAAI;QACNE,UAAUjC;IACZ;IAEA,qBACE,MAACiC;QACE,GAAGjB,YAAY;QAChBkB,gBAAcd;QACde,iBAAed;QACfe,iBAAed;QACfe,cAAYd;QACZjB,WAAW0B;QACXM,MAAMP,MAAM;QACZ1B,IAAIA;QACJsB,SAASA;QACTY,MAAMN,YAAY,WAAW,WAAWO;;0BAExC,KAACC;gBAAKnC,WAAW,GAAGJ,UAAU,OAAO,CAAC;0BAAGsB;;YACxCV,QAAQY,uBAAS,KAACe;gBAAKnC,WAAW,GAAGJ,UAAU,MAAM,CAAC;0BAAGwB;;;;AAGhE;AAEA,OAAO,MAAMgB,OAA4B,CAACtC;IACxC,MAAM,EAAEqB,SAAS,EAAE,GAAGrB;IAEtB,IAAIqB,WAAW;QACb,qBAAO,KAACtB;YAAe,GAAGC,KAAK;;IACjC;IACA,qBAAO,KAACQ;QAAY,GAAGR,KAAK;;AAC9B,EAAC"}
@@ -17,7 +17,9 @@ export const PublishMany = (props)=>{
17
17
  selectAll: selectAll === SelectAllStatus.AllAvailable
18
18
  });
19
19
  };
20
- export const PublishMany_v4 = (props)=>{
20
+ /**
21
+ * When multiple PublishMany components are rendered on the page, this will differentiate them.
22
+ */ export const PublishMany_v4 = (props)=>{
21
23
  const { collection, collection: { slug, versions } = {}, count, ids, modalPrefix, onSuccess, selectAll, where } = props;
22
24
  const { permissions } = useAuth();
23
25
  const { t } = useTranslation();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { PublishManyDrawerContent } from './DrawerContent.js'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n\n return (\n <PublishMany_v4\n {...props}\n count={count}\n ids={selectedIDs}\n onSuccess={() => toggleAll()}\n selectAll={selectAll === SelectAllStatus.AllAvailable}\n />\n )\n}\n\ntype PublishMany_v4Props = {\n count: number\n ids: (number | string)[]\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & PublishManyProps\n\nexport const PublishMany_v4: React.FC<PublishMany_v4Props> = (props) => {\n const {\n collection,\n collection: { slug, versions } = {},\n count,\n ids,\n modalPrefix,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { permissions } = useAuth()\n const { t } = useTranslation()\n\n const { openModal } = useModal()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update\n\n const drawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}publish-${slug}`\n\n if (!versions?.drafts || count === 0 || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('version:publish')}\n onClick={() => {\n openModal(drawerSlug)\n }}\n >\n {t('version:publish')}\n </ListSelectionButton>\n <PublishManyDrawerContent\n collection={collection}\n drawerSlug={drawerSlug}\n ids={ids}\n onSuccess={onSuccess}\n selectAll={selectAll}\n where={where}\n />\n </React.Fragment>\n )\n}\n"],"names":["useModal","React","useAuth","SelectAllStatus","useSelection","useTranslation","ListSelectionButton","PublishManyDrawerContent","PublishMany","props","count","selectAll","selectedIDs","toggleAll","PublishMany_v4","ids","onSuccess","AllAvailable","collection","slug","versions","modalPrefix","where","permissions","t","openModal","collectionPermissions","collections","hasPermission","update","drawerSlug","drafts","Fragment","aria-label","onClick"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,eAAe,EAAEC,YAAY,QAAQ,qCAAoC;AAClF,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,wBAAwB,QAAQ,qBAAoB;AAM7D,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,WAAW,EAAEC,SAAS,EAAE,GAAGT;IAErD,qBACE,KAACU;QACE,GAAGL,KAAK;QACTC,OAAOA;QACPK,KAAKH;QACLI,WAAW,IAAMH;QACjBF,WAAWA,cAAcR,gBAAgBc,YAAY;;AAG3D,EAAC;AAcD,OAAO,MAAMH,iBAAgD,CAACL;IAC5D,MAAM,EACJS,UAAU,EACVA,YAAY,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAG,CAAC,CAAC,EACnCV,KAAK,EACLK,GAAG,EACHM,WAAW,EACXL,SAAS,EACTL,SAAS,EACTW,KAAK,EACN,GAAGb;IAEJ,MAAM,EAAEc,WAAW,EAAE,GAAGrB;IACxB,MAAM,EAAEsB,CAAC,EAAE,GAAGnB;IAEd,MAAM,EAAEoB,SAAS,EAAE,GAAGzB;IAEtB,MAAM0B,wBAAwBH,aAAaI,aAAa,CAACR,KAAK;IAC9D,MAAMS,gBAAgBF,uBAAuBG;IAE7C,MAAMC,aAAa,GAAGT,cAAc,GAAGA,YAAY,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAEF,MAAM;IAE3E,IAAI,CAACC,UAAUW,UAAUrB,UAAU,KAAK,CAACkB,eAAe;QACtD,OAAO;IACT;IAEA,qBACE,MAAC3B,MAAM+B,QAAQ;;0BACb,KAAC1B;gBACC2B,cAAYT,EAAE;gBACdU,SAAS;oBACPT,UAAUK;gBACZ;0BAECN,EAAE;;0BAEL,KAACjB;gBACCW,YAAYA;gBACZY,YAAYA;gBACZf,KAAKA;gBACLC,WAAWA;gBACXL,WAAWA;gBACXW,OAAOA;;;;AAIf,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { PublishManyDrawerContent } from './DrawerContent.js'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n\n return (\n <PublishMany_v4\n {...props}\n count={count}\n ids={selectedIDs}\n onSuccess={() => toggleAll()}\n selectAll={selectAll === SelectAllStatus.AllAvailable}\n />\n )\n}\n\ntype PublishMany_v4Props = {\n count: number\n ids: (number | string)[]\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & PublishManyProps\n\nexport const PublishMany_v4: React.FC<PublishMany_v4Props> = (props) => {\n const {\n collection,\n collection: { slug, versions } = {},\n count,\n ids,\n modalPrefix,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { permissions } = useAuth()\n const { t } = useTranslation()\n\n const { openModal } = useModal()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update\n\n const drawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}publish-${slug}`\n\n if (!versions?.drafts || count === 0 || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('version:publish')}\n onClick={() => {\n openModal(drawerSlug)\n }}\n >\n {t('version:publish')}\n </ListSelectionButton>\n <PublishManyDrawerContent\n collection={collection}\n drawerSlug={drawerSlug}\n ids={ids}\n onSuccess={onSuccess}\n selectAll={selectAll}\n where={where}\n />\n </React.Fragment>\n )\n}\n"],"names":["useModal","React","useAuth","SelectAllStatus","useSelection","useTranslation","ListSelectionButton","PublishManyDrawerContent","PublishMany","props","count","selectAll","selectedIDs","toggleAll","PublishMany_v4","ids","onSuccess","AllAvailable","collection","slug","versions","modalPrefix","where","permissions","t","openModal","collectionPermissions","collections","hasPermission","update","drawerSlug","drafts","Fragment","aria-label","onClick"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,eAAe,EAAEC,YAAY,QAAQ,qCAAoC;AAClF,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,mBAAmB,QAAQ,4BAA2B;AAC/D,SAASC,wBAAwB,QAAQ,qBAAoB;AAM7D,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,WAAW,EAAEC,SAAS,EAAE,GAAGT;IAErD,qBACE,KAACU;QACE,GAAGL,KAAK;QACTC,OAAOA;QACPK,KAAKH;QACLI,WAAW,IAAMH;QACjBF,WAAWA,cAAcR,gBAAgBc,YAAY;;AAG3D,EAAC;AAKC;;GAEC,GAOH,OAAO,MAAMH,iBAAgD,CAACL;IAC5D,MAAM,EACJS,UAAU,EACVA,YAAY,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAG,CAAC,CAAC,EACnCV,KAAK,EACLK,GAAG,EACHM,WAAW,EACXL,SAAS,EACTL,SAAS,EACTW,KAAK,EACN,GAAGb;IAEJ,MAAM,EAAEc,WAAW,EAAE,GAAGrB;IACxB,MAAM,EAAEsB,CAAC,EAAE,GAAGnB;IAEd,MAAM,EAAEoB,SAAS,EAAE,GAAGzB;IAEtB,MAAM0B,wBAAwBH,aAAaI,aAAa,CAACR,KAAK;IAC9D,MAAMS,gBAAgBF,uBAAuBG;IAE7C,MAAMC,aAAa,GAAGT,cAAc,GAAGA,YAAY,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAEF,MAAM;IAE3E,IAAI,CAACC,UAAUW,UAAUrB,UAAU,KAAK,CAACkB,eAAe;QACtD,OAAO;IACT;IAEA,qBACE,MAAC3B,MAAM+B,QAAQ;;0BACb,KAAC1B;gBACC2B,cAAYT,EAAE;gBACdU,SAAS;oBACPT,UAAUK;gBACZ;0BAECN,EAAE;;0BAEL,KAACjB;gBACCW,YAAYA;gBACZY,YAAYA;gBACZf,KAAKA;gBACLC,WAAWA;gBACXL,WAAWA;gBACXW,OAAOA;;;;AAIf,EAAC"}
@@ -271,9 +271,8 @@ export const QueryPresetBar = ({ activePreset, collectionSlug, queryPresetPermis
271
271
  onConfirm: handleDeletePreset
272
272
  }),
273
273
  /*#__PURE__*/ _jsx(PresetDocumentDrawer, {
274
- onDelete: ()=>{
274
+ onDelete: ()=>{},
275
275
  // setSelectedPreset(undefined)
276
- },
277
276
  onDuplicate: async ({ doc })=>{
278
277
  await handlePresetChange(doc);
279
278
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/${queryPresetsSlug}/${activePreset.id}`, {\n method: 'DELETE',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/payload-query-presets/${activePreset.id}`, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"names":["useModal","getTranslation","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","div","className","openPresetListDrawer","resetPreset","aria-label","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","children","strong","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/elements/QueryPresets/QueryPresetBar/index.tsx"],"sourcesContent":["import type { QueryPreset, SanitizedCollectionPermission } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transformColumnsToPreferences, transformColumnsToSearchParams } from 'payload/shared'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport { PlusIcon } from '../../../icons/Plus/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useListQuery } from '../../../providers/ListQuery/context.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { useListDrawer } from '../../ListDrawer/index.js'\nimport { ListSelectionButton } from '../../ListSelection/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Translation } from '../../Translation/index.js'\nimport { QueryPresetToggler } from '../QueryPresetToggler/index.js'\nimport './index.scss'\n\nconst confirmDeletePresetModalSlug = 'confirm-delete-preset'\n\nconst queryPresetsSlug = 'payload-query-presets'\n\nconst baseClass = 'query-preset-bar'\n\nexport const QueryPresetBar: React.FC<{\n activePreset: QueryPreset\n collectionSlug?: string\n queryPresetPermissions: SanitizedCollectionPermission\n}> = ({ activePreset, collectionSlug, queryPresetPermissions }) => {\n const { modified, query, refineListData, setModified: setQueryModified } = useListQuery()\n\n const { i18n, t } = useTranslation()\n const { openModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const presetConfig = getEntityConfig({ collectionSlug: queryPresetsSlug })\n\n const [PresetDocumentDrawer, , { openDrawer: openDocumentDrawer }] = useDocumentDrawer({\n id: activePreset?.id,\n collectionSlug: queryPresetsSlug,\n })\n\n const [\n CreateNewPresetDrawer,\n ,\n { closeDrawer: closeCreateNewDrawer, openDrawer: openCreateNewDrawer },\n ] = useDocumentDrawer({\n collectionSlug: queryPresetsSlug,\n })\n\n const filterOptions = useMemo(\n () => ({\n 'payload-query-presets': {\n isTemp: {\n not_equals: true,\n },\n relatedCollection: {\n equals: collectionSlug,\n },\n },\n }),\n [collectionSlug],\n )\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: [queryPresetsSlug],\n filterOptions,\n selectedCollection: queryPresetsSlug,\n })\n\n const handlePresetChange = useCallback(\n async (preset: QueryPreset) => {\n await refineListData(\n {\n columns: preset.columns ? transformColumnsToSearchParams(preset.columns) : undefined,\n groupBy: preset.groupBy || '',\n preset: preset.id,\n where: preset.where,\n },\n false,\n )\n },\n [refineListData],\n )\n\n const resetQueryPreset = useCallback(async () => {\n await refineListData(\n {\n columns: [],\n groupBy: '',\n preset: '',\n where: {},\n },\n false,\n )\n }, [refineListData])\n\n const handleDeletePreset = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/${queryPresetsSlug}/${activePreset.id}`, {\n method: 'DELETE',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:titleDeleted', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n title: activePreset.title,\n }),\n )\n\n await resetQueryPreset()\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n })\n } catch (_err) {\n toast.error(t('error:deletingTitle', { title: activePreset.title }))\n }\n }, [apiRoute, activePreset?.id, activePreset?.title, t, presetConfig, i18n, resetQueryPreset])\n\n const saveCurrentChanges = useCallback(async () => {\n try {\n await fetch(`${apiRoute}/payload-query-presets/${activePreset.id}`, {\n body: JSON.stringify({\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n where: query.where,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n }).then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t('general:updatedLabelSuccessfully', {\n label: getTranslation(presetConfig?.labels?.singular, i18n),\n }),\n )\n\n setQueryModified(false)\n } else {\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n toast.error(t('error:unknown'))\n }\n }\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n })\n } catch (_err) {\n toast.error(t('error:unknown'))\n }\n }, [\n apiRoute,\n activePreset?.id,\n query.columns,\n query.groupBy,\n query.where,\n t,\n presetConfig?.labels?.singular,\n i18n,\n setQueryModified,\n ])\n\n const hasModifiedPreset = activePreset && modified\n\n return (\n <Fragment>\n <div className={baseClass}>\n <div className={`${baseClass}__menu`}>\n <QueryPresetToggler\n activePreset={activePreset}\n openPresetListDrawer={openListDrawer}\n resetPreset={resetQueryPreset}\n />\n <Pill\n aria-label={t('general:newLabel', { label: presetConfig?.labels?.singular })}\n className={`${baseClass}__create-new-preset`}\n icon={<PlusIcon />}\n id=\"create-new-preset\"\n onClick={() => {\n openCreateNewDrawer()\n }}\n size=\"small\"\n />\n </div>\n <div className={`${baseClass}__menu-items`}>\n {hasModifiedPreset && (\n <ListSelectionButton\n id=\"reset-preset\"\n key=\"reset\"\n onClick={async () => {\n await refineListData(\n {\n columns: transformColumnsToSearchParams(activePreset.columns),\n groupBy: activePreset.groupBy || '',\n where: activePreset.where,\n },\n false,\n )\n }}\n type=\"button\"\n >\n {t('general:reset')}\n </ListSelectionButton>\n )}\n {hasModifiedPreset && queryPresetPermissions.update && (\n <ListSelectionButton\n id=\"save-preset\"\n key=\"save\"\n onClick={async () => {\n await saveCurrentChanges()\n }}\n type=\"button\"\n >\n {activePreset?.isShared ? t('general:updateForEveryone') : t('fields:saveChanges')}\n </ListSelectionButton>\n )}\n {activePreset && queryPresetPermissions?.delete && (\n <Fragment>\n <ListSelectionButton\n id=\"delete-preset\"\n onClick={() => openModal(confirmDeletePresetModalSlug)}\n type=\"button\"\n >\n {t('general:deleteLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n <ListSelectionButton\n id=\"edit-preset\"\n onClick={() => {\n openDocumentDrawer()\n }}\n type=\"button\"\n >\n {t('general:editLabel', { label: presetConfig?.labels?.singular })}\n </ListSelectionButton>\n </Fragment>\n )}\n </div>\n </div>\n <CreateNewPresetDrawer\n initialData={{\n columns: transformColumnsToPreferences(query.columns),\n groupBy: query.groupBy,\n relatedCollection: collectionSlug,\n where: query.where,\n }}\n onSave={async ({ doc }) => {\n closeCreateNewDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n redirectAfterCreate={false}\n />\n <ConfirmationModal\n body={\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: presetConfig?.labels?.singular,\n title: activePreset?.title,\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmDeletePresetModalSlug}\n onConfirm={handleDeletePreset}\n />\n <PresetDocumentDrawer\n onDelete={() => {\n // setSelectedPreset(undefined)\n }}\n onDuplicate={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n onSave={async ({ doc }) => {\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n <ListDrawer\n allowCreate={false}\n disableQueryPresets\n onSelect={async ({ doc }) => {\n closeListDrawer()\n await handlePresetChange(doc as QueryPreset)\n }}\n />\n </Fragment>\n )\n}\n"],"names":["useModal","getTranslation","transformColumnsToPreferences","transformColumnsToSearchParams","React","Fragment","useCallback","useMemo","toast","PlusIcon","useConfig","useListQuery","useTranslation","ConfirmationModal","useDocumentDrawer","useListDrawer","ListSelectionButton","Pill","Translation","QueryPresetToggler","confirmDeletePresetModalSlug","queryPresetsSlug","baseClass","QueryPresetBar","activePreset","collectionSlug","queryPresetPermissions","modified","query","refineListData","setModified","setQueryModified","i18n","t","openModal","config","routes","api","apiRoute","getEntityConfig","presetConfig","PresetDocumentDrawer","openDrawer","openDocumentDrawer","id","CreateNewPresetDrawer","closeDrawer","closeCreateNewDrawer","openCreateNewDrawer","filterOptions","isTemp","not_equals","relatedCollection","equals","ListDrawer","closeListDrawer","openListDrawer","collectionSlugs","selectedCollection","handlePresetChange","preset","columns","undefined","groupBy","where","resetQueryPreset","handleDeletePreset","fetch","method","then","res","json","status","success","label","labels","singular","title","errors","forEach","error","message","_err","saveCurrentChanges","body","JSON","stringify","credentials","headers","hasModifiedPreset","div","className","openPresetListDrawer","resetPreset","aria-label","icon","onClick","size","type","update","isShared","delete","initialData","onSave","doc","redirectAfterCreate","elements","children","strong","i18nKey","variables","confirmingLabel","heading","modalSlug","onConfirm","onDelete","onDuplicate","allowCreate","disableQueryPresets","onSelect"],"mappings":"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"}
@@ -24,8 +24,8 @@ const createOption = (label)=>({
24
24
  });
25
25
  const SelectAdapter = (props)=>{
26
26
  const { i18n, t } = useTranslation();
27
- const [inputValue, setInputValue] = React.useState('') // for creatable select
28
- ;
27
+ const [inputValue, setInputValue] = React.useState('');
28
+ // for creatable select
29
29
  const uuid = useId();
30
30
  const [hasMounted, setHasMounted] = React.useState(false);
31
31
  useEffect(()=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select, { type StylesConfig } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles: StylesConfig<Option> = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles) => ({ ...rsStyles, zIndex: undefined }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","styles","menu","rsStyles","zIndex","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select, { type StylesConfig } from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport './index.scss'\nimport { Input } from './Input/index.js'\nimport { generateMultiValueDraggableID, MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n const styles: StylesConfig<Option> = {\n // Remove the default react-select z-index from the menu so that our custom\n // z-index in the \"payload-default\" css layer can take effect, in such a way\n // that end users can easily override it as with other styles.\n menu: (rsStyles) => ({ ...rsStyles, zIndex: undefined }),\n }\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') {\n return\n }\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n placeholder={getTranslation(placeholder, i18n)}\n styles={styles}\n unstyled={true}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","generateMultiValueDraggableID","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","styles","menu","rsStyles","zIndex","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","unstyled","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"mappings":"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"}
@@ -1,3 +1,10 @@
1
- export { };
1
+ // augment the types for the `Select` component from `react-select`
2
+ // this is to include the `selectProps` prop at the top-level `Select` component
3
+ // @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module
4
+ // augment the types for the `CommonPropsAndClassName` from `react-select`
5
+ // this will include the `selectProps` prop to every `react-select` component automatically
6
+ // @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module
7
+ //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */
8
+ export { }; /** Allows you to create own values in the UI despite them not being pre-specified */ /** Allows you to specify multiple values instead of just one */
2
9
 
3
10
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\nimport type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n editableProps?: (\n data: Option<{ label: string; value: string }>,\n className: string,\n selectProps: ReactSelectStateManagerProps,\n ) => any\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentOpen?: (args: {\n collectionSlug: string\n hasReadPermission: boolean\n id: number | string\n openInNewTab?: boolean\n }) => void\n onDuplicate?: DocumentDrawerProps['onSave']\n onSave?: DocumentDrawerProps['onSave']\n valueContainerLabel?: string\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n {\n allowEdit,\n data,\n label,\n value,\n }: { allowEdit: boolean; data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n id?: string\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n menuIsOpen?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: LabelFunction | string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA6DA,WAgDC"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\nimport type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n editableProps?: (\n data: Option<{ label: string; value: string }>,\n className: string,\n selectProps: ReactSelectStateManagerProps,\n ) => any\n onDelete?: DocumentDrawerProps['onDelete']\n onDocumentOpen?: (args: {\n collectionSlug: string\n hasReadPermission: boolean\n id: number | string\n openInNewTab?: boolean\n }) => void\n onDuplicate?: DocumentDrawerProps['onSave']\n onSave?: DocumentDrawerProps['onSave']\n valueContainerLabel?: string\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: CustomSelectProps & ReactSelectStateManagerProps<Option, IsMulti, Group>\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n {\n allowEdit,\n data,\n label,\n value,\n }: { allowEdit: boolean; data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n id?: string\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n menuIsOpen?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: LabelFunction | string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA2BA,mEAAmE;AACnE,gFAAgF;AAChF,8FAA8F;AAO9F,0EAA0E;AAC1E,2FAA2F;AAC3F,8FAA8F;AAa5F,6IAA6I;AAU/I,WAgDC,CApBC,mFAAmF,IAGnF,8DAA8D"}
@@ -194,9 +194,9 @@ export const RelationshipTable = (props)=>{
194
194
  if (isPolymorphic && !isDrawerOpen && selectedCollection) {
195
195
  setSelectedCollection(undefined);
196
196
  }
197
- // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
197
+ }, // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
198
198
  // eslint-disable-next-line react-hooks/exhaustive-deps
199
- }, [
199
+ [
200
200
  isDrawerOpen
201
201
  ]);
202
202
  const memoizedListQuery = React.useMemo(()=>({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.admin.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"none\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ' doc-drawer__toggler'}`}\n collections={config.collections}\n i18n={i18n}\n icon={isPolymorphic ? 'plus' : undefined}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","Pill","useEffectEvent","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","div","className","buttonStyle","icon","label","onClick","aria-controls","aria-expanded","direction","pillStyle","size","p","length","labels","plural","singular","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","height","slug","onDelete","onSave"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/RelationshipTable/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n type CollectionSlug,\n type Column,\n type JoinFieldClient,\n type ListQuery,\n type PaginatedDocs,\n type Where,\n} from 'payload'\nimport { hoistQueryParamsToAnd, transformColumnsToPreferences } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { TableColumnsProvider } from '../../providers/TableColumns/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { RelationshipProvider } from '../Table/RelationshipProvider/index.js'\nimport { AddNewButton } from './AddNewButton.js'\nimport { DrawerLink } from './cells/DrawerLink/index.js'\nimport { RelationshipTablePagination } from './Pagination.js'\nimport './index.scss'\n\nconst baseClass = 'relationship-table'\n\ntype RelationshipTableComponentProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n readonly BeforeInput?: React.ReactNode\n readonly disableTable?: boolean\n readonly field: JoinFieldClient\n readonly fieldPath?: string\n readonly filterOptions?: Where\n readonly initialData?: PaginatedDocs\n readonly initialDrawerData?: DocumentDrawerProps['initialData']\n readonly Label?: React.ReactNode\n readonly parent?: {\n collectionSlug: CollectionSlug\n id: number | string\n joinPath: string\n }\n readonly relationTo: string | string[]\n}\n\nexport type OnDrawerOpen = (id?: string) => void\n\nexport const RelationshipTable: React.FC<RelationshipTableComponentProps> = (props) => {\n const {\n AfterInput,\n allowCreate = true,\n BeforeInput,\n disableTable = false,\n field,\n fieldPath,\n filterOptions,\n initialData: initialDataFromProps,\n initialDrawerData,\n Label,\n parent,\n relationTo,\n } = props\n const [Table, setTable] = useState<React.ReactNode>(null)\n const { config, getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [query, setQuery] = useState<ListQuery>()\n const [openColumnSelector, setOpenColumnSelector] = useState(false)\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug: relationTo }))\n\n const isPolymorphic = Array.isArray(relationTo)\n\n const [selectedCollection, setSelectedCollection] = useState(\n isPolymorphic ? undefined : relationTo,\n )\n\n const { permissions } = useAuth()\n\n const openDrawerWhenRelationChanges = useRef(false)\n\n const [currentDrawerID, setCurrentDrawerID] = useState<string | undefined>(undefined)\n\n const [DocumentDrawer, , { closeDrawer, isDrawerOpen, openDrawer }] = useDocumentDrawer({\n id: currentDrawerID,\n collectionSlug: selectedCollection,\n })\n\n const [isLoadingTable, setIsLoadingTable] = useState(!disableTable)\n\n const [data, setData] = useState<PaginatedDocs>(() =>\n initialDataFromProps\n ? {\n ...initialDataFromProps,\n docs: Array.isArray(initialDataFromProps.docs)\n ? initialDataFromProps.docs.reduce((acc, doc) => {\n if (typeof doc === 'string' || typeof doc === 'number') {\n return [\n ...acc,\n {\n id: doc,\n },\n ]\n }\n\n return [...acc, doc]\n }, [])\n : [],\n }\n : undefined,\n )\n\n const [columnState, setColumnState] = useState<Column[]>()\n\n const { getTableState } = useServerFunctions()\n\n const renderTable = useCallback(\n async (data?: PaginatedDocs) => {\n const newQuery: ListQuery = {\n limit: field?.defaultLimit || collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort || collectionConfig?.defaultSort,\n ...(query || {}),\n where: { ...(query?.where || {}) },\n }\n\n if (filterOptions) {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOptions)\n }\n\n // map columns from string[] to CollectionPreferences['columns']\n const defaultColumns = field.admin.defaultColumns\n ? field.admin.defaultColumns.map((accessor) => ({\n accessor,\n active: true,\n }))\n : undefined\n\n const renderRowTypes =\n typeof field.admin.disableRowTypes === 'boolean'\n ? !field.admin.disableRowTypes\n : Array.isArray(relationTo)\n\n const {\n data: newData,\n state: newColumnState,\n Table: NewTable,\n } = await getTableState({\n collectionSlug: relationTo,\n columns: transformColumnsToPreferences(query?.columns) || defaultColumns,\n data,\n enableRowSelections: false,\n orderableFieldName:\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${field.name}_order`,\n parent,\n query: newQuery,\n renderRowTypes,\n tableAppearance: 'condensed',\n })\n\n setData(newData)\n setTable(NewTable)\n setColumnState(newColumnState)\n setIsLoadingTable(false)\n },\n [\n field.defaultLimit,\n field.defaultSort,\n field.admin.defaultColumns,\n field.admin.disableRowTypes,\n field.collection,\n field.name,\n field.orderable,\n collectionConfig?.admin?.pagination?.defaultLimit,\n collectionConfig?.defaultSort,\n query,\n filterOptions,\n getTableState,\n relationTo,\n parent,\n ],\n )\n\n const handleTableRender = useEffectEvent((query: ListQuery, disableTable: boolean) => {\n if (!disableTable && (!Table || query)) {\n void renderTable()\n }\n })\n\n useEffect(() => {\n handleTableRender(query, disableTable)\n }, [query, disableTable])\n\n const onDrawerSave = useCallback<DocumentDrawerProps['onSave']>(\n ({ doc, operation }) => {\n if (operation === 'create') {\n closeDrawer()\n }\n\n const foundDocIndex = data?.docs?.findIndex((d) => d.id === doc.id)\n const withNewOrUpdatedData: PaginatedDocs = { docs: [] } as PaginatedDocs\n\n if (foundDocIndex !== -1) {\n const newDocs = [...data.docs]\n newDocs[foundDocIndex] = doc\n withNewOrUpdatedData.docs = newDocs\n } else {\n withNewOrUpdatedData.docs = [doc, ...data.docs]\n }\n\n void renderTable(withNewOrUpdatedData)\n },\n [data?.docs, renderTable, closeDrawer],\n )\n\n const onDrawerDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n const newDocs = data.docs.filter((doc) => doc.id !== args.id)\n\n void renderTable({\n ...data,\n docs: newDocs,\n })\n\n setCurrentDrawerID(undefined)\n },\n [data, renderTable],\n )\n\n const onDrawerOpen = useCallback<OnDrawerOpen>((id) => {\n openDrawerWhenRelationChanges.current = true\n\n if (id) {\n setCurrentDrawerID(id)\n } else {\n setCurrentDrawerID(undefined)\n }\n }, [])\n\n useEffect(() => {\n if (openDrawerWhenRelationChanges.current) {\n openDrawerWhenRelationChanges.current = false\n openDrawer()\n }\n }, [openDrawer])\n\n useEffect(() => {\n if (!isDrawerOpen) {\n setCurrentDrawerID(undefined)\n }\n }, [isDrawerOpen])\n\n const canCreate =\n allowCreate !== false &&\n permissions?.collections?.[isPolymorphic ? relationTo[0] : relationTo]?.create\n\n useEffect(() => {\n if (isPolymorphic && selectedCollection) {\n openDrawer()\n }\n }, [selectedCollection, openDrawer, isPolymorphic])\n\n useEffect(() => {\n if (isPolymorphic && !isDrawerOpen && selectedCollection) {\n setSelectedCollection(undefined)\n }\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDrawerOpen])\n\n const memoizedListQuery = React.useMemo(\n () => ({\n columns: transformColumnsToPreferences(columnState)?.map(({ accessor }) => accessor),\n limit: field.defaultLimit ?? collectionConfig?.admin?.pagination?.defaultLimit,\n sort: field.defaultSort ?? collectionConfig?.defaultSort,\n }),\n [columnState, field, collectionConfig],\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n {Label}\n <div className={`${baseClass}__actions`}>\n <AddNewButton\n allowCreate={allowCreate !== false}\n baseClass={baseClass}\n buttonStyle=\"none\"\n className={`${baseClass}__add-new${isPolymorphic ? '-polymorphic' : ' doc-drawer__toggler'}`}\n collections={config.collections}\n i18n={i18n}\n icon={isPolymorphic ? 'plus' : undefined}\n label={i18n.t('fields:addNew')}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={openColumnSelector}\n className={`${baseClass}__toggle-columns ${\n openColumnSelector ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon direction={openColumnSelector ? 'up' : 'down'} />}\n onClick={() => setOpenColumnSelector(!openColumnSelector)}\n pillStyle=\"light\"\n size=\"small\"\n >\n {t('general:columns')}\n </Pill>\n </div>\n </div>\n {BeforeInput}\n {isLoadingTable ? (\n <p>{t('general:loading')}</p>\n ) : (\n <Fragment>\n {data?.docs && data.docs.length === 0 && (\n <div className={`${baseClass}__no-results`}>\n <p>\n {i18n.t('general:noResults', {\n label: isPolymorphic\n ? i18n.t('general:documents')\n : getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n </p>\n <AddNewButton\n allowCreate={canCreate}\n baseClass={baseClass}\n collections={config.collections}\n i18n={i18n}\n label={i18n.t('general:createNewLabel', {\n label: isPolymorphic\n ? i18n.t('general:document')\n : getTranslation(collectionConfig?.labels?.singular, i18n),\n })}\n onClick={isPolymorphic ? setSelectedCollection : openDrawer}\n permissions={permissions}\n relationTo={relationTo}\n />\n </div>\n )}\n {data?.docs && data.docs.length > 0 && (\n <RelationshipProvider>\n <ListQueryProvider\n data={data}\n modifySearchParams={false}\n onQueryChange={setQuery}\n orderableFieldName={\n !field.orderable || Array.isArray(field.collection)\n ? undefined\n : `_${field.collection}_${fieldPath.replaceAll('.', '_')}_order`\n }\n query={memoizedListQuery}\n >\n <TableColumnsProvider\n collectionSlug={isPolymorphic ? relationTo[0] : relationTo}\n columnState={columnState}\n LinkedCellOverride={\n <DrawerLink currentDrawerID={currentDrawerID} onDrawerOpen={onDrawerOpen} />\n }\n >\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={openColumnSelector ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <div className={`${baseClass}__columns-inner`}>\n {collectionConfig && (\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n )}\n </div>\n </AnimateHeight>\n {Table}\n <RelationshipTablePagination />\n </TableColumnsProvider>\n </ListQueryProvider>\n </RelationshipProvider>\n )}\n </Fragment>\n )}\n {AfterInput}\n <DocumentDrawer\n initialData={initialDrawerData}\n onDelete={onDrawerDelete}\n onSave={onDrawerSave}\n />\n </div>\n )\n}\n"],"names":["getTranslation","hoistQueryParamsToAnd","transformColumnsToPreferences","React","Fragment","useCallback","useEffect","useRef","useState","Pill","useEffectEvent","ChevronIcon","useAuth","useConfig","ListQueryProvider","useServerFunctions","TableColumnsProvider","useTranslation","AnimateHeight","ColumnSelector","useDocumentDrawer","RelationshipProvider","AddNewButton","DrawerLink","RelationshipTablePagination","baseClass","RelationshipTable","props","AfterInput","allowCreate","BeforeInput","disableTable","field","fieldPath","filterOptions","initialData","initialDataFromProps","initialDrawerData","Label","parent","relationTo","Table","setTable","config","getEntityConfig","i18n","t","query","setQuery","openColumnSelector","setOpenColumnSelector","collectionConfig","collectionSlug","isPolymorphic","Array","isArray","selectedCollection","setSelectedCollection","undefined","permissions","openDrawerWhenRelationChanges","currentDrawerID","setCurrentDrawerID","DocumentDrawer","closeDrawer","isDrawerOpen","openDrawer","id","isLoadingTable","setIsLoadingTable","data","setData","docs","reduce","acc","doc","columnState","setColumnState","getTableState","renderTable","newQuery","limit","defaultLimit","admin","pagination","sort","defaultSort","where","defaultColumns","map","accessor","active","renderRowTypes","disableRowTypes","newData","state","newColumnState","NewTable","columns","enableRowSelections","orderableFieldName","orderable","collection","name","tableAppearance","handleTableRender","onDrawerSave","operation","foundDocIndex","findIndex","d","withNewOrUpdatedData","newDocs","onDrawerDelete","args","filter","onDrawerOpen","current","canCreate","collections","create","memoizedListQuery","useMemo","div","className","buttonStyle","icon","label","onClick","aria-controls","aria-expanded","direction","pillStyle","size","p","length","labels","plural","singular","modifySearchParams","onQueryChange","replaceAll","LinkedCellOverride","height","slug","onDelete","onSave"],"mappings":"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"}