@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50

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 (442) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +2 -43
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +2 -5
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -2
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +13 -4
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
  14. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.d.ts +0 -2
  16. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  24. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.d.ts.map +1 -1
  29. package/dist/elements/EditMany/index.js +3 -25
  30. package/dist/elements/EditMany/index.js.map +1 -1
  31. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  32. package/dist/elements/FieldSelect/index.js +39 -12
  33. package/dist/elements/FieldSelect/index.js.map +1 -1
  34. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/index.js +2 -1
  36. package/dist/elements/FileDetails/index.js.map +1 -1
  37. package/dist/elements/ListControls/index.d.ts +0 -1
  38. package/dist/elements/ListControls/index.d.ts.map +1 -1
  39. package/dist/elements/ListControls/index.js +7 -6
  40. package/dist/elements/ListControls/index.js.map +1 -1
  41. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/ListDrawer/DrawerContent.js +5 -9
  43. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  44. package/dist/elements/Nav/index.client.d.ts +3 -0
  45. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  46. package/dist/elements/Nav/index.client.js +77 -0
  47. package/dist/elements/Nav/index.client.js.map +1 -0
  48. package/dist/elements/Nav/index.d.ts +3 -7
  49. package/dist/elements/Nav/index.d.ts.map +1 -1
  50. package/dist/elements/Nav/index.js +4 -66
  51. package/dist/elements/Nav/index.js.map +1 -1
  52. package/dist/elements/PerPage/index.d.ts +1 -0
  53. package/dist/elements/PerPage/index.d.ts.map +1 -1
  54. package/dist/elements/PerPage/index.js +6 -4
  55. package/dist/elements/PerPage/index.js.map +1 -1
  56. package/dist/elements/PreviewButton/index.d.ts +4 -6
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +11 -65
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
  62. package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
  64. package/dist/elements/Publish/index.d.ts +4 -2
  65. package/dist/elements/Publish/index.d.ts.map +1 -1
  66. package/dist/elements/Publish/index.js +15 -25
  67. package/dist/elements/Publish/index.js.map +1 -1
  68. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  69. package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
  70. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
  72. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  73. package/dist/elements/ReactSelect/index.js +4 -1
  74. package/dist/elements/ReactSelect/index.js.map +1 -1
  75. package/dist/elements/ReactSelect/types.d.ts +2 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/Save/index.d.ts +4 -2
  79. package/dist/elements/Save/index.d.ts.map +1 -1
  80. package/dist/elements/Save/index.js +7 -14
  81. package/dist/elements/Save/index.js.map +1 -1
  82. package/dist/elements/SaveDraft/index.d.ts +1 -2
  83. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  84. package/dist/elements/SaveDraft/index.js +33 -42
  85. package/dist/elements/SaveDraft/index.js.map +1 -1
  86. package/dist/elements/SortColumn/index.d.ts +3 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js +5 -6
  89. package/dist/elements/SortColumn/index.js.map +1 -1
  90. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
  91. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  92. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  93. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
  94. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
  97. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  98. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  99. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
  100. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  102. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
  103. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
  106. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  107. package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
  108. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  109. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
  110. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  111. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
  113. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
  116. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  117. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
  119. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  122. package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +4 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
  127. package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
  128. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  129. package/dist/elements/Table/index.d.ts +8 -4
  130. package/dist/elements/Table/index.d.ts.map +1 -1
  131. package/dist/elements/Table/index.js +1 -0
  132. package/dist/elements/Table/index.js.map +1 -1
  133. package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
  134. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  135. package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
  136. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  137. package/dist/elements/TableColumns/filterFields.d.ts +3 -0
  138. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  139. package/dist/elements/TableColumns/filterFields.js +27 -0
  140. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  141. package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
  142. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  143. package/dist/elements/TableColumns/getInitialColumns.js +48 -0
  144. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  145. package/dist/elements/TableColumns/index.d.ts +2 -2
  146. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  147. package/dist/elements/TableColumns/index.js +11 -7
  148. package/dist/elements/TableColumns/index.js.map +1 -1
  149. package/dist/elements/Thumbnail/index.d.ts +6 -0
  150. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  151. package/dist/elements/Thumbnail/index.js +32 -16
  152. package/dist/elements/Thumbnail/index.js.map +1 -1
  153. package/dist/elements/ThumbnailCard/index.d.ts +1 -1
  154. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  155. package/dist/elements/ThumbnailCard/index.js +2 -6
  156. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  157. package/dist/elements/Tooltip/index.scss +4 -4
  158. package/dist/elements/Translation/index.d.ts.map +1 -1
  159. package/dist/elements/Translation/index.js +12 -9
  160. package/dist/elements/Translation/index.js.map +1 -1
  161. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  162. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
  163. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  164. package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
  165. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  166. package/dist/elements/WhereBuilder/Condition/index.js +45 -61
  167. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  168. package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
  169. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  170. package/dist/elements/WhereBuilder/index.js +134 -55
  171. package/dist/elements/WhereBuilder/index.js.map +1 -1
  172. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
  173. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
  174. package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
  175. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
  176. package/dist/elements/withMergedProps/index.js +1 -1
  177. package/dist/elements/withMergedProps/index.js.map +1 -1
  178. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  179. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  180. package/dist/fields/Array/ArrayRow.js +3 -3
  181. package/dist/fields/Array/ArrayRow.js.map +1 -1
  182. package/dist/fields/Array/index.d.ts +1 -1
  183. package/dist/fields/Array/index.d.ts.map +1 -1
  184. package/dist/fields/Array/index.js +23 -8
  185. package/dist/fields/Array/index.js.map +1 -1
  186. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  187. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  188. package/dist/fields/Blocks/BlockRow.js +2 -3
  189. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts +0 -1
  191. package/dist/fields/Blocks/index.d.ts.map +1 -1
  192. package/dist/fields/Blocks/index.js +17 -5
  193. package/dist/fields/Blocks/index.js.map +1 -1
  194. package/dist/fields/Checkbox/Input.d.ts +2 -1
  195. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  196. package/dist/fields/Checkbox/Input.js +3 -1
  197. package/dist/fields/Checkbox/Input.js.map +1 -1
  198. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  199. package/dist/fields/Checkbox/index.js +6 -2
  200. package/dist/fields/Checkbox/index.js.map +1 -1
  201. package/dist/fields/Code/index.d.ts.map +1 -1
  202. package/dist/fields/Code/index.js +8 -3
  203. package/dist/fields/Code/index.js.map +1 -1
  204. package/dist/fields/Collapsible/index.d.ts +2 -1
  205. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  206. package/dist/fields/Collapsible/index.js +4 -3
  207. package/dist/fields/Collapsible/index.js.map +1 -1
  208. package/dist/fields/DateTime/index.d.ts.map +1 -1
  209. package/dist/fields/DateTime/index.js +7 -2
  210. package/dist/fields/DateTime/index.js.map +1 -1
  211. package/dist/fields/Email/index.d.ts.map +1 -1
  212. package/dist/fields/Email/index.js +7 -2
  213. package/dist/fields/Email/index.js.map +1 -1
  214. package/dist/fields/Group/index.d.ts +0 -1
  215. package/dist/fields/Group/index.d.ts.map +1 -1
  216. package/dist/fields/Group/index.js +9 -8
  217. package/dist/fields/Group/index.js.map +1 -1
  218. package/dist/fields/HiddenInput/index.d.ts +1 -0
  219. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  220. package/dist/fields/HiddenInput/index.js +4 -2
  221. package/dist/fields/HiddenInput/index.js.map +1 -1
  222. package/dist/fields/JSON/index.d.ts.map +1 -1
  223. package/dist/fields/JSON/index.js +8 -4
  224. package/dist/fields/JSON/index.js.map +1 -1
  225. package/dist/fields/Number/index.d.ts.map +1 -1
  226. package/dist/fields/Number/index.js +7 -2
  227. package/dist/fields/Number/index.js.map +1 -1
  228. package/dist/fields/Password/index.d.ts +0 -1
  229. package/dist/fields/Password/index.d.ts.map +1 -1
  230. package/dist/fields/Password/index.js +5 -2
  231. package/dist/fields/Password/index.js.map +1 -1
  232. package/dist/fields/Point/index.d.ts.map +1 -1
  233. package/dist/fields/Point/index.js +15 -10
  234. package/dist/fields/Point/index.js.map +1 -1
  235. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  236. package/dist/fields/RadioGroup/index.js +7 -2
  237. package/dist/fields/RadioGroup/index.js.map +1 -1
  238. package/dist/fields/Relationship/index.d.ts.map +1 -1
  239. package/dist/fields/Relationship/index.js +45 -14
  240. package/dist/fields/Relationship/index.js.map +1 -1
  241. package/dist/fields/Relationship/types.d.ts +3 -1
  242. package/dist/fields/Relationship/types.d.ts.map +1 -1
  243. package/dist/fields/Relationship/types.js.map +1 -1
  244. package/dist/fields/RichText/index.d.ts +2 -0
  245. package/dist/fields/RichText/index.d.ts.map +1 -1
  246. package/dist/fields/RichText/index.js.map +1 -1
  247. package/dist/fields/Row/index.d.ts.map +1 -1
  248. package/dist/fields/Row/index.js +2 -1
  249. package/dist/fields/Row/index.js.map +1 -1
  250. package/dist/fields/Select/index.d.ts +0 -1
  251. package/dist/fields/Select/index.d.ts.map +1 -1
  252. package/dist/fields/Select/index.js +8 -3
  253. package/dist/fields/Select/index.js.map +1 -1
  254. package/dist/fields/Tabs/index.d.ts +0 -1
  255. package/dist/fields/Tabs/index.d.ts.map +1 -1
  256. package/dist/fields/Tabs/index.js +2 -2
  257. package/dist/fields/Tabs/index.js.map +1 -1
  258. package/dist/fields/Text/Input.d.ts.map +1 -1
  259. package/dist/fields/Text/Input.js +4 -1
  260. package/dist/fields/Text/Input.js.map +1 -1
  261. package/dist/fields/Text/index.d.ts.map +1 -1
  262. package/dist/fields/Text/index.js +3 -1
  263. package/dist/fields/Text/index.js.map +1 -1
  264. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  265. package/dist/fields/Textarea/Input.js +4 -1
  266. package/dist/fields/Textarea/Input.js.map +1 -1
  267. package/dist/fields/Textarea/index.d.ts.map +1 -1
  268. package/dist/fields/Textarea/index.js +3 -1
  269. package/dist/fields/Textarea/index.js.map +1 -1
  270. package/dist/fields/Upload/Input.d.ts.map +1 -1
  271. package/dist/fields/Upload/Input.js +10 -8
  272. package/dist/fields/Upload/Input.js.map +1 -1
  273. package/dist/fields/Upload/index.d.ts.map +1 -1
  274. package/dist/fields/Upload/index.js +6 -2
  275. package/dist/fields/Upload/index.js.map +1 -1
  276. package/dist/fields/shared/index.d.ts +1 -2
  277. package/dist/fields/shared/index.d.ts.map +1 -1
  278. package/dist/fields/shared/index.js.map +1 -1
  279. package/dist/forms/FieldDescription/index.d.ts +1 -2
  280. package/dist/forms/FieldDescription/index.d.ts.map +1 -1
  281. package/dist/forms/FieldDescription/index.js.map +1 -1
  282. package/dist/forms/FieldError/index.js +1 -1
  283. package/dist/forms/FieldError/index.js.map +1 -1
  284. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  285. package/dist/forms/FieldLabel/index.js +4 -4
  286. package/dist/forms/FieldLabel/index.js.map +1 -1
  287. package/dist/forms/FieldLabel/index.scss +1 -1
  288. package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
  289. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  290. package/dist/forms/FieldPropsProvider/index.js +5 -1
  291. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  292. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  293. package/dist/forms/Form/fieldReducer.js +6 -8
  294. package/dist/forms/Form/fieldReducer.js.map +1 -1
  295. package/dist/forms/Form/index.d.ts.map +1 -1
  296. package/dist/forms/Form/index.js +37 -20
  297. package/dist/forms/Form/index.js.map +1 -1
  298. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  299. package/dist/forms/Form/initContextState.js +1 -0
  300. package/dist/forms/Form/initContextState.js.map +1 -1
  301. package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
  302. package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
  303. package/dist/forms/Form/mergeErrorPaths.js +29 -0
  304. package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
  305. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  306. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  307. package/dist/forms/Form/mergeServerFormState.js +36 -19
  308. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  309. package/dist/forms/Form/types.d.ts +8 -2
  310. package/dist/forms/Form/types.d.ts.map +1 -1
  311. package/dist/forms/Form/types.js.map +1 -1
  312. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  313. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  314. package/dist/forms/RenderFields/RenderField.js +12 -4
  315. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  316. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  317. package/dist/forms/RenderFields/index.js +3 -3
  318. package/dist/forms/RenderFields/index.js.map +1 -1
  319. package/dist/forms/RenderFields/types.d.ts +1 -0
  320. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  321. package/dist/forms/RenderFields/types.js.map +1 -1
  322. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
  323. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  324. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
  325. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  326. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
  327. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
  328. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
  329. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
  330. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
  331. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
  332. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
  333. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
  334. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
  335. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
  336. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
  337. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
  338. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  339. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  340. package/dist/forms/buildStateFromSchema/index.js +10 -2
  341. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  342. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  343. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
  345. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  346. package/dist/forms/useField/index.d.ts.map +1 -1
  347. package/dist/forms/useField/index.js +32 -12
  348. package/dist/forms/useField/index.js.map +1 -1
  349. package/dist/forms/useField/types.d.ts +1 -0
  350. package/dist/forms/useField/types.d.ts.map +1 -1
  351. package/dist/forms/useField/types.js.map +1 -1
  352. package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
  353. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  354. package/dist/forms/withCondition/WatchCondition.js +10 -2
  355. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  356. package/dist/forms/withCondition/index.js +4 -2
  357. package/dist/forms/withCondition/index.js.map +1 -1
  358. package/dist/hooks/usePayloadAPI.js +1 -1
  359. package/dist/hooks/usePayloadAPI.js.map +1 -1
  360. package/dist/hooks/useUseAsTitle.d.ts +3 -2
  361. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  362. package/dist/hooks/useUseAsTitle.js +5 -6
  363. package/dist/hooks/useUseAsTitle.js.map +1 -1
  364. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  365. package/dist/providers/ClientFunction/index.js +27 -5
  366. package/dist/providers/ClientFunction/index.js.map +1 -1
  367. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
  368. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
  369. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
  370. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
  371. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
  372. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
  373. package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
  374. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
  375. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
  376. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
  377. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
  378. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
  379. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
  380. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
  381. package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
  382. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
  383. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
  384. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
  386. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  387. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
  388. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  389. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  390. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  391. package/dist/providers/DocumentInfo/index.js +120 -96
  392. package/dist/providers/DocumentInfo/index.js.map +1 -1
  393. package/dist/providers/DocumentInfo/types.d.ts +12 -13
  394. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  395. package/dist/providers/DocumentInfo/types.js.map +1 -1
  396. package/dist/providers/EntityVisibility/index.d.ts +16 -0
  397. package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
  398. package/dist/providers/EntityVisibility/index.js +25 -0
  399. package/dist/providers/EntityVisibility/index.js.map +1 -0
  400. package/dist/providers/ListInfo/index.d.ts +0 -1
  401. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  402. package/dist/providers/ListInfo/index.js +2 -7
  403. package/dist/providers/ListInfo/index.js.map +1 -1
  404. package/dist/templates/Default/index.d.ts +2 -7
  405. package/dist/templates/Default/index.d.ts.map +1 -1
  406. package/dist/templates/Default/index.js +10 -12
  407. package/dist/templates/Default/index.js.map +1 -1
  408. package/dist/utilities/buildComponentMap.d.ts +1 -1
  409. package/dist/utilities/buildComponentMap.d.ts.map +1 -1
  410. package/dist/utilities/buildComponentMap.js +1 -1
  411. package/dist/utilities/buildComponentMap.js.map +1 -1
  412. package/dist/utilities/flattenFieldMap.d.ts +10 -0
  413. package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
  414. package/dist/utilities/flattenFieldMap.js +33 -0
  415. package/dist/utilities/flattenFieldMap.js.map +1 -0
  416. package/dist/utilities/getFormState.d.ts +2 -0
  417. package/dist/utilities/getFormState.d.ts.map +1 -1
  418. package/dist/utilities/getFormState.js +8 -3
  419. package/dist/utilities/getFormState.js.map +1 -1
  420. package/package.json +10 -4
  421. package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
  422. package/dist/elements/TableColumns/buildColumns.js.map +0 -1
  423. package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
  424. package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
  425. package/dist/elements/WhereBuilder/reducer.js +0 -78
  426. package/dist/elements/WhereBuilder/reducer.js.map +0 -1
  427. package/dist/forms/FieldDescription/types.d.ts +0 -8
  428. package/dist/forms/FieldDescription/types.d.ts.map +0 -1
  429. package/dist/forms/FieldDescription/types.js +0 -3
  430. package/dist/forms/FieldDescription/types.js.map +0 -1
  431. package/dist/hooks/useAdminThumbnail.d.ts +0 -3
  432. package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
  433. package/dist/hooks/useAdminThumbnail.js +0 -8
  434. package/dist/hooks/useAdminThumbnail.js.map +0 -1
  435. package/dist/hooks/useThumbnail.d.ts +0 -3
  436. package/dist/hooks/useThumbnail.d.ts.map +0 -1
  437. package/dist/hooks/useThumbnail.js +0 -45
  438. package/dist/hooks/useThumbnail.js.map +0 -1
  439. package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
  440. package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
  441. package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
  442. package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PerPage/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport { collectionDefaults } from 'payload/config'\nimport React from 'react'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'per-page'\n\nconst defaultLimits = collectionDefaults.admin.pagination.limits\n\nexport type PerPageProps = {\n handleChange?: (limit: number) => void\n limit: number\n limits: number[]\n resetPage?: boolean\n}\n\nexport const PerPage: React.FC<PerPageProps> = ({\n handleChange,\n limit,\n limits = defaultLimits,\n}) => {\n const { t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <Popup\n button={\n <div className={`${baseClass}__base-button`}>\n <span>{t('general:perPage', { limit })}</span>\n &nbsp;\n <Chevron className={`${baseClass}__icon`} />\n </div>\n }\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {limits.map((limitNumber, i) => (\n <PopupList.Button\n className={[\n `${baseClass}__button`,\n limitNumber === Number(limit) && `${baseClass}__button-active`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={i}\n onClick={() => {\n close()\n if (handleChange) handleChange(limitNumber)\n }}\n >\n {limitNumber === Number(limit) && (\n <div className={`${baseClass}__chevron`}>\n <Chevron direction=\"right\" />\n </div>\n )}\n &nbsp;\n <span>{limitNumber}</span>\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n />\n </div>\n )\n}\n"],"names":["collectionDefaults","React","Chevron","useTranslation","Popup","PopupList","baseClass","defaultLimits","admin","pagination","limits","PerPage","handleChange","limit","t","div","className","button","span","horizontalAlign","render","close","ButtonGroup","map","limitNumber","i","Button","Number","filter","Boolean","join","key","onClick","direction","size"],"mappings":"AAAA;AACA,0EAA0E;AAC1E,SAASA,kBAAkB,QAAQ,iBAAgB;AACnD,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AAGpD,MAAMC,YAAY;AAElB,MAAMC,gBAAgBP,mBAAmBQ,KAAK,CAACC,UAAU,CAACC,MAAM;AAShE,OAAO,MAAMC,UAAkC,CAAC,EAC9CC,YAAY,EACZC,KAAK,EACLH,SAASH,aAAa,EACvB;IACC,MAAM,EAAEO,CAAC,EAAE,GAAGX;IAEd,qBACE,oBAACY;QAAIC,WAAWV;qBACd,oBAACF;QACCa,sBACE,oBAACF;YAAIC,WAAW,CAAC,EAAEV,UAAU,aAAa,CAAC;yBACzC,oBAACY,cAAMJ,EAAE,mBAAmB;YAAED;QAAM,KAAU,mBAE9C,oBAACX;YAAQc,WAAW,CAAC,EAAEV,UAAU,MAAM,CAAC;;QAG5Ca,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAChB,UAAUiB,WAAW,QACnBZ,OAAOa,GAAG,CAAC,CAACC,aAAaC,kBACxB,oBAACpB,UAAUqB,MAAM;oBACfV,WAAW;wBACT,CAAC,EAAEV,UAAU,QAAQ,CAAC;wBACtBkB,gBAAgBG,OAAOd,UAAU,CAAC,EAAEP,UAAU,eAAe,CAAC;qBAC/D,CACEsB,MAAM,CAACC,SACPC,IAAI,CAAC;oBACRC,KAAKN;oBACLO,SAAS;wBACPX;wBACA,IAAIT,cAAcA,aAAaY;oBACjC;mBAECA,gBAAgBG,OAAOd,wBACtB,oBAACE;oBAAIC,WAAW,CAAC,EAAEV,UAAU,SAAS,CAAC;iCACrC,oBAACJ;oBAAQ+B,WAAU;qBAErB,mBAEF,oBAACf,cAAMM;QAKfU,MAAK;;AAIb,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/PerPage/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport { collectionDefaults } from 'payload/config'\nimport { isNumber } from 'payload/utilities'\nimport React from 'react'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'per-page'\n\nconst defaultLimits = collectionDefaults.admin.pagination.limits\n\nexport type PerPageProps = {\n defaultLimit?: number\n handleChange?: (limit: number) => void\n limit: number\n limits: number[]\n resetPage?: boolean\n}\n\nexport const PerPage: React.FC<PerPageProps> = ({\n defaultLimit = 10,\n handleChange,\n limit,\n limits = defaultLimits,\n}) => {\n const { t } = useTranslation()\n\n const limitToUse = isNumber(limit) ? limit : defaultLimit\n\n return (\n <div className={baseClass}>\n <Popup\n button={\n <div className={`${baseClass}__base-button`}>\n <span>{t('general:perPage', { limit: limitToUse })}</span>\n &nbsp;\n <Chevron className={`${baseClass}__icon`} />\n </div>\n }\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {limits.map((limitNumber, i) => (\n <PopupList.Button\n className={[\n `${baseClass}__button`,\n limitNumber === limitToUse && `${baseClass}__button-active`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={i}\n onClick={() => {\n close()\n if (handleChange) handleChange(limitNumber)\n }}\n >\n {limitNumber === limitToUse && (\n <div className={`${baseClass}__chevron`}>\n <Chevron direction=\"right\" />\n </div>\n )}\n &nbsp;\n <span>{limitNumber}</span>\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n />\n </div>\n )\n}\n"],"names":["collectionDefaults","isNumber","React","Chevron","useTranslation","Popup","PopupList","baseClass","defaultLimits","admin","pagination","limits","PerPage","defaultLimit","handleChange","limit","t","limitToUse","div","className","button","span","horizontalAlign","render","close","ButtonGroup","map","limitNumber","i","Button","filter","Boolean","join","key","onClick","direction","size"],"mappings":"AAAA;AACA,0EAA0E;AAC1E,SAASA,kBAAkB,QAAQ,iBAAgB;AACnD,SAASC,QAAQ,QAAQ,oBAAmB;AAC5C,OAAOC,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,KAAK,EAAEC,SAAS,QAAQ,oBAAmB;AAGpD,MAAMC,YAAY;AAElB,MAAMC,gBAAgBR,mBAAmBS,KAAK,CAACC,UAAU,CAACC,MAAM;AAUhE,OAAO,MAAMC,UAAkC,CAAC,EAC9CC,eAAe,EAAE,EACjBC,YAAY,EACZC,KAAK,EACLJ,SAASH,aAAa,EACvB;IACC,MAAM,EAAEQ,CAAC,EAAE,GAAGZ;IAEd,MAAMa,aAAahB,SAASc,SAASA,QAAQF;IAE7C,qBACE,oBAACK;QAAIC,WAAWZ;qBACd,oBAACF;QACCe,sBACE,oBAACF;YAAIC,WAAW,CAAC,EAAEZ,UAAU,aAAa,CAAC;yBACzC,oBAACc,cAAML,EAAE,mBAAmB;YAAED,OAAOE;QAAW,KAAU,mBAE1D,oBAACd;YAAQgB,WAAW,CAAC,EAAEZ,UAAU,MAAM,CAAC;;QAG5Ce,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE,iBAChB,oBAAClB,UAAUmB,WAAW,QACnBd,OAAOe,GAAG,CAAC,CAACC,aAAaC,kBACxB,oBAACtB,UAAUuB,MAAM;oBACfV,WAAW;wBACT,CAAC,EAAEZ,UAAU,QAAQ,CAAC;wBACtBoB,gBAAgBV,cAAc,CAAC,EAAEV,UAAU,eAAe,CAAC;qBAC5D,CACEuB,MAAM,CAACC,SACPC,IAAI,CAAC;oBACRC,KAAKL;oBACLM,SAAS;wBACPV;wBACA,IAAIV,cAAcA,aAAaa;oBACjC;mBAECA,gBAAgBV,4BACf,oBAACC;oBAAIC,WAAW,CAAC,EAAEZ,UAAU,SAAS,CAAC;iCACrC,oBAACJ;oBAAQgC,WAAU;qBAErB,mBAEF,oBAACd,cAAMM;QAKfS,MAAK;;AAIb,EAAC"}
@@ -1,9 +1,7 @@
1
- import type { GeneratePreviewURL } from 'payload/config';
2
- import type { CustomPreviewButtonProps } from 'payload/types';
3
1
  import React from 'react';
4
- export type PreviewButtonProps = {
5
- CustomComponent?: CustomPreviewButtonProps;
6
- generatePreviewURL?: GeneratePreviewURL;
2
+ type Props = {
3
+ CustomComponent?: React.ReactNode;
7
4
  };
8
- export declare const PreviewButton: React.FC<PreviewButtonProps>;
5
+ export declare const PreviewButton: React.FC<Props>;
6
+ export {};
9
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,KAAK,EAAE,wBAAwB,EAA6B,MAAM,eAAe,CAAA;AAExF,OAAO,KAAwC,MAAM,OAAO,CAAA;AA+B5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,eAAe,CAAC,EAAE,wBAAwB,CAAA;IAC1C,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAyDtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AA2BzB,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIzC,CAAA"}
@@ -1,77 +1,23 @@
1
1
  'use client';
2
- import React, { useCallback, useRef, useState } from 'react';
3
- import { toast } from 'react-toastify';
4
- import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
5
- import { useAuth } from '../../providers/Auth/index.js';
6
- import { useConfig } from '../../providers/Config/index.js';
7
- import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
8
- import { useLocale } from '../../providers/Locale/index.js';
9
- import { useTranslation } from '../../providers/Translation/index.js';
2
+ import React from 'react';
10
3
  import { Button } from '../Button/index.js';
4
+ import { usePreviewURL } from './usePreviewURL.js';
11
5
  const baseClass = 'preview-btn';
12
- const DefaultPreviewButton = ({ disabled, label, preview })=>{
6
+ const DefaultPreviewButton = ()=>{
7
+ const { generatePreviewURL, label } = usePreviewURL();
13
8
  return /*#__PURE__*/ React.createElement(Button, {
14
9
  buttonStyle: "secondary",
15
10
  className: baseClass,
16
- disabled: disabled,
17
- onClick: preview,
11
+ // disabled={disabled}
12
+ onClick: ()=>generatePreviewURL({
13
+ openPreviewWindow: true
14
+ }),
18
15
  size: "small"
19
16
  }, label);
20
17
  };
21
- export const PreviewButton = ({ CustomComponent, generatePreviewURL })=>{
22
- const { id, collectionSlug, globalSlug } = useDocumentInfo();
23
- const [isLoading, setIsLoading] = useState(false);
24
- const { code: locale } = useLocale();
25
- const { token } = useAuth();
26
- const { routes: { api }, serverURL } = useConfig();
27
- const { t } = useTranslation();
28
- const isGeneratingPreviewURL = useRef(false);
29
- // we need to regenerate the preview URL every time the button is clicked
30
- // to do this we need to fetch the document data fresh from the API
31
- // this will ensure the latest data is used when generating the preview URL
32
- const preview = useCallback(async ()=>{
33
- if (!generatePreviewURL || isGeneratingPreviewURL.current) return;
34
- isGeneratingPreviewURL.current = true;
35
- try {
36
- setIsLoading(true);
37
- let url = `${serverURL}${api}`;
38
- if (collectionSlug) url = `${url}/${collectionSlug}/${id}`;
39
- if (globalSlug) url = `${url}/globals/${globalSlug}`;
40
- const data = await fetch(`${url}?draft=true&locale=${locale}&fallback-locale=null`).then((res)=>res.json());
41
- const previewURL = await generatePreviewURL(data, {
42
- locale,
43
- token
44
- });
45
- if (!previewURL) throw new Error();
46
- setIsLoading(false);
47
- isGeneratingPreviewURL.current = false;
48
- window.open(previewURL, '_blank');
49
- } catch (err) {
50
- setIsLoading(false);
51
- isGeneratingPreviewURL.current = false;
52
- toast.error(t('error:previewing'));
53
- }
54
- }, [
55
- serverURL,
56
- api,
57
- collectionSlug,
58
- globalSlug,
59
- id,
60
- generatePreviewURL,
61
- locale,
62
- token,
63
- t
64
- ]);
65
- return /*#__PURE__*/ React.createElement(RenderCustomComponent, {
66
- CustomComponent: CustomComponent,
67
- DefaultComponent: DefaultPreviewButton,
68
- componentProps: {
69
- DefaultButton: DefaultPreviewButton,
70
- disabled: isLoading || !generatePreviewURL,
71
- label: isLoading ? t('general:loading') : t('version:preview'),
72
- preview
73
- }
74
- });
18
+ export const PreviewButton = ({ CustomComponent })=>{
19
+ if (CustomComponent) return CustomComponent;
20
+ return /*#__PURE__*/ React.createElement(DefaultPreviewButton, null);
75
21
  };
76
22
 
77
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { GeneratePreviewURL } from 'payload/config'\nimport type { CustomPreviewButtonProps, DefaultPreviewButtonProps } from 'payload/types'\n\nimport React, { useCallback, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\n\nconst baseClass = 'preview-btn'\n\nconst DefaultPreviewButton: React.FC<DefaultPreviewButtonProps> = ({\n disabled,\n label,\n preview,\n}) => {\n return (\n <Button\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={preview}\n size=\"small\"\n >\n {label}\n </Button>\n )\n}\n\nexport type PreviewButtonProps = {\n CustomComponent?: CustomPreviewButtonProps\n generatePreviewURL?: GeneratePreviewURL\n}\n\nexport const PreviewButton: React.FC<PreviewButtonProps> = ({\n CustomComponent,\n generatePreviewURL,\n}) => {\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const [isLoading, setIsLoading] = useState(false)\n const { code: locale } = useLocale()\n const { token } = useAuth()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { t } = useTranslation()\n const isGeneratingPreviewURL = useRef(false)\n\n // we need to regenerate the preview URL every time the button is clicked\n // to do this we need to fetch the document data fresh from the API\n // this will ensure the latest data is used when generating the preview URL\n const preview = useCallback(async () => {\n if (!generatePreviewURL || isGeneratingPreviewURL.current) return\n isGeneratingPreviewURL.current = true\n\n try {\n setIsLoading(true)\n\n let url = `${serverURL}${api}`\n if (collectionSlug) url = `${url}/${collectionSlug}/${id}`\n if (globalSlug) url = `${url}/globals/${globalSlug}`\n\n const data = await fetch(`${url}?draft=true&locale=${locale}&fallback-locale=null`).then(\n (res) => res.json(),\n )\n const previewURL = await generatePreviewURL(data, { locale, token })\n if (!previewURL) throw new Error()\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n window.open(previewURL, '_blank')\n } catch (err) {\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n toast.error(t('error:previewing'))\n }\n }, [serverURL, api, collectionSlug, globalSlug, id, generatePreviewURL, locale, token, t])\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomComponent}\n DefaultComponent={DefaultPreviewButton}\n componentProps={{\n DefaultButton: DefaultPreviewButton,\n disabled: isLoading || !generatePreviewURL,\n label: isLoading ? t('general:loading') : t('version:preview'),\n preview,\n }}\n />\n )\n}\n"],"names":["React","useCallback","useRef","useState","toast","RenderCustomComponent","useAuth","useConfig","useDocumentInfo","useLocale","useTranslation","Button","baseClass","DefaultPreviewButton","disabled","label","preview","buttonStyle","className","onClick","size","PreviewButton","CustomComponent","generatePreviewURL","id","collectionSlug","globalSlug","isLoading","setIsLoading","code","locale","token","routes","api","serverURL","t","isGeneratingPreviewURL","current","url","data","fetch","then","res","json","previewURL","Error","window","open","err","error","DefaultComponent","componentProps","DefaultButton"],"mappings":"AAAA;AAIA,OAAOA,SAASC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAC5D,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAE3C,MAAMC,YAAY;AAElB,MAAMC,uBAA4D,CAAC,EACjEC,QAAQ,EACRC,KAAK,EACLC,OAAO,EACR;IACC,qBACE,oBAACL;QACCM,aAAY;QACZC,WAAWN;QACXE,UAAUA;QACVK,SAASH;QACTI,MAAK;OAEJL;AAGP;AAOA,OAAO,MAAMM,gBAA8C,CAAC,EAC1DC,eAAe,EACfC,kBAAkB,EACnB;IACC,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGlB;IAE3C,MAAM,CAACmB,WAAWC,aAAa,GAAGzB,SAAS;IAC3C,MAAM,EAAE0B,MAAMC,MAAM,EAAE,GAAGrB;IACzB,MAAM,EAAEsB,KAAK,EAAE,GAAGzB;IAClB,MAAM,EACJ0B,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAG3B;IACJ,MAAM,EAAE4B,CAAC,EAAE,GAAGzB;IACd,MAAM0B,yBAAyBlC,OAAO;IAEtC,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,MAAMc,UAAUf,YAAY;QAC1B,IAAI,CAACsB,sBAAsBa,uBAAuBC,OAAO,EAAE;QAC3DD,uBAAuBC,OAAO,GAAG;QAEjC,IAAI;YACFT,aAAa;YAEb,IAAIU,MAAM,CAAC,EAAEJ,UAAU,EAAED,IAAI,CAAC;YAC9B,IAAIR,gBAAgBa,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEb,eAAe,CAAC,EAAED,GAAG,CAAC;YAC1D,IAAIE,YAAYY,MAAM,CAAC,EAAEA,IAAI,SAAS,EAAEZ,WAAW,CAAC;YAEpD,MAAMa,OAAO,MAAMC,MAAM,CAAC,EAAEF,IAAI,mBAAmB,EAAER,OAAO,qBAAqB,CAAC,EAAEW,IAAI,CACtF,CAACC,MAAQA,IAAIC,IAAI;YAEnB,MAAMC,aAAa,MAAMrB,mBAAmBgB,MAAM;gBAAET;gBAAQC;YAAM;YAClE,IAAI,CAACa,YAAY,MAAM,IAAIC;YAC3BjB,aAAa;YACbQ,uBAAuBC,OAAO,GAAG;YACjCS,OAAOC,IAAI,CAACH,YAAY;QAC1B,EAAE,OAAOI,KAAK;YACZpB,aAAa;YACbQ,uBAAuBC,OAAO,GAAG;YACjCjC,MAAM6C,KAAK,CAACd,EAAE;QAChB;IACF,GAAG;QAACD;QAAWD;QAAKR;QAAgBC;QAAYF;QAAID;QAAoBO;QAAQC;QAAOI;KAAE;IAEzF,qBACE,oBAAC9B;QACCiB,iBAAiBA;QACjB4B,kBAAkBrC;QAClBsC,gBAAgB;YACdC,eAAevC;YACfC,UAAUa,aAAa,CAACJ;YACxBR,OAAOY,YAAYQ,EAAE,qBAAqBA,EAAE;YAC5CnB;QACF;;AAGN,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../Button/index.js'\nimport { usePreviewURL } from './usePreviewURL.js'\n\nconst baseClass = 'preview-btn'\n\nconst DefaultPreviewButton: React.FC = () => {\n const { generatePreviewURL, label } = usePreviewURL()\n\n return (\n <Button\n buttonStyle=\"secondary\"\n className={baseClass}\n // disabled={disabled}\n onClick={() =>\n generatePreviewURL({\n openPreviewWindow: true,\n })\n }\n size=\"small\"\n >\n {label}\n </Button>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const PreviewButton: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultPreviewButton />\n}\n"],"names":["React","Button","usePreviewURL","baseClass","DefaultPreviewButton","generatePreviewURL","label","buttonStyle","className","onClick","openPreviewWindow","size","PreviewButton","CustomComponent"],"mappings":"AAAA;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,aAAa,QAAQ,qBAAoB;AAElD,MAAMC,YAAY;AAElB,MAAMC,uBAAiC;IACrC,MAAM,EAAEC,kBAAkB,EAAEC,KAAK,EAAE,GAAGJ;IAEtC,qBACE,oBAACD;QACCM,aAAY;QACZC,WAAWL;QACX,sBAAsB;QACtBM,SAAS,IACPJ,mBAAmB;gBACjBK,mBAAmB;YACrB;QAEFC,MAAK;OAEJL;AAGP;AAMA,OAAO,MAAMM,gBAAiC,CAAC,EAAEC,eAAe,EAAE;IAChE,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACT;AACV,EAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const usePreviewURL: () => {
2
+ generatePreviewURL: ({ openPreviewWindow }: {
3
+ openPreviewWindow?: boolean;
4
+ }) => void;
5
+ isLoading: boolean;
6
+ label: string;
7
+ previewURL: string;
8
+ };
9
+ //# sourceMappingURL=usePreviewURL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePreviewURL.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,aAAa;;4BAC0C,OAAO;UAAO,IAAI;eACzE,OAAO;WACX,MAAM;gBACD,MAAM;CAwDnB,CAAA"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import { useCallback, useRef, useState } from 'react';
3
+ import { toast } from 'react-toastify';
4
+ import { useConfig } from '../../providers/Config/index.js';
5
+ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
6
+ import { useLocale } from '../../providers/Locale/index.js';
7
+ import { useTranslation } from '../../providers/Translation/index.js';
8
+ export const usePreviewURL = ()=>{
9
+ const { id, collectionSlug, globalSlug } = useDocumentInfo();
10
+ const [isLoading, setIsLoading] = useState(false);
11
+ const [previewURL, setPreviewURL] = useState('');
12
+ const { code: locale } = useLocale();
13
+ const { routes: { api }, serverURL } = useConfig();
14
+ const { t } = useTranslation();
15
+ const isGeneratingPreviewURL = useRef(false);
16
+ // we need to regenerate the preview URL every time the button is clicked
17
+ // to do this we need to fetch the document data fresh from the API
18
+ // this will ensure the latest data is used when generating the preview URL
19
+ const generatePreviewURL = useCallback(async ({ openPreviewWindow = false })=>{
20
+ if (isGeneratingPreviewURL.current) return;
21
+ isGeneratingPreviewURL.current = true;
22
+ try {
23
+ setIsLoading(true);
24
+ let url = `${serverURL}${api}`;
25
+ if (collectionSlug) url = `${url}/${collectionSlug}/${id}/preview`;
26
+ if (globalSlug) url = `${url}/globals/${globalSlug}/preview`;
27
+ const res = await fetch(`${url}${locale ? `?locale=${locale}` : ''}`);
28
+ if (!res.ok) throw new Error();
29
+ const newPreviewURL = await res.json();
30
+ if (!newPreviewURL) throw new Error();
31
+ setPreviewURL(newPreviewURL);
32
+ setIsLoading(false);
33
+ isGeneratingPreviewURL.current = false;
34
+ if (openPreviewWindow) window.open(newPreviewURL, '_blank');
35
+ } catch (err) {
36
+ setIsLoading(false);
37
+ isGeneratingPreviewURL.current = false;
38
+ toast.error(t('error:previewing'));
39
+ }
40
+ }, [
41
+ serverURL,
42
+ api,
43
+ collectionSlug,
44
+ globalSlug,
45
+ id,
46
+ locale,
47
+ t
48
+ ]);
49
+ return {
50
+ generatePreviewURL,
51
+ isLoading,
52
+ label: isLoading ? t('general:loading') : t('version:preview'),
53
+ previewURL
54
+ };
55
+ };
56
+
57
+ //# sourceMappingURL=usePreviewURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const usePreviewURL = (): {\n generatePreviewURL: ({ openPreviewWindow }: { openPreviewWindow?: boolean }) => void\n isLoading: boolean\n label: string\n previewURL: string\n} => {\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const [isLoading, setIsLoading] = useState(false)\n const [previewURL, setPreviewURL] = useState('')\n const { code: locale } = useLocale()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n\n const { t } = useTranslation()\n\n const isGeneratingPreviewURL = useRef(false)\n\n // we need to regenerate the preview URL every time the button is clicked\n // to do this we need to fetch the document data fresh from the API\n // this will ensure the latest data is used when generating the preview URL\n const generatePreviewURL = useCallback(\n async ({ openPreviewWindow = false }) => {\n if (isGeneratingPreviewURL.current) return\n isGeneratingPreviewURL.current = true\n\n try {\n setIsLoading(true)\n\n let url = `${serverURL}${api}`\n if (collectionSlug) url = `${url}/${collectionSlug}/${id}/preview`\n if (globalSlug) url = `${url}/globals/${globalSlug}/preview`\n\n const res = await fetch(`${url}${locale ? `?locale=${locale}` : ''}`)\n\n if (!res.ok) throw new Error()\n const newPreviewURL = await res.json()\n if (!newPreviewURL) throw new Error()\n setPreviewURL(newPreviewURL)\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n if (openPreviewWindow) window.open(newPreviewURL, '_blank')\n } catch (err) {\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n toast.error(t('error:previewing'))\n }\n },\n [serverURL, api, collectionSlug, globalSlug, id, locale, t],\n )\n\n return {\n generatePreviewURL,\n isLoading,\n label: isLoading ? t('general:loading') : t('version:preview'),\n previewURL,\n }\n}\n"],"names":["useCallback","useRef","useState","toast","useConfig","useDocumentInfo","useLocale","useTranslation","usePreviewURL","id","collectionSlug","globalSlug","isLoading","setIsLoading","previewURL","setPreviewURL","code","locale","routes","api","serverURL","t","isGeneratingPreviewURL","generatePreviewURL","openPreviewWindow","current","url","res","fetch","ok","Error","newPreviewURL","json","window","open","err","error","label"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AACrD,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,gBAAgB;IAM3B,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGN;IAE3C,MAAM,CAACO,WAAWC,aAAa,GAAGX,SAAS;IAC3C,MAAM,CAACY,YAAYC,cAAc,GAAGb,SAAS;IAC7C,MAAM,EAAEc,MAAMC,MAAM,EAAE,GAAGX;IAEzB,MAAM,EACJY,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGhB;IAEJ,MAAM,EAAEiB,CAAC,EAAE,GAAGd;IAEd,MAAMe,yBAAyBrB,OAAO;IAEtC,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,MAAMsB,qBAAqBvB,YACzB,OAAO,EAAEwB,oBAAoB,KAAK,EAAE;QAClC,IAAIF,uBAAuBG,OAAO,EAAE;QACpCH,uBAAuBG,OAAO,GAAG;QAEjC,IAAI;YACFZ,aAAa;YAEb,IAAIa,MAAM,CAAC,EAAEN,UAAU,EAAED,IAAI,CAAC;YAC9B,IAAIT,gBAAgBgB,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEhB,eAAe,CAAC,EAAED,GAAG,QAAQ,CAAC;YAClE,IAAIE,YAAYe,MAAM,CAAC,EAAEA,IAAI,SAAS,EAAEf,WAAW,QAAQ,CAAC;YAE5D,MAAMgB,MAAM,MAAMC,MAAM,CAAC,EAAEF,IAAI,EAAET,SAAS,CAAC,QAAQ,EAAEA,OAAO,CAAC,GAAG,GAAG,CAAC;YAEpE,IAAI,CAACU,IAAIE,EAAE,EAAE,MAAM,IAAIC;YACvB,MAAMC,gBAAgB,MAAMJ,IAAIK,IAAI;YACpC,IAAI,CAACD,eAAe,MAAM,IAAID;YAC9Bf,cAAcgB;YACdlB,aAAa;YACbS,uBAAuBG,OAAO,GAAG;YACjC,IAAID,mBAAmBS,OAAOC,IAAI,CAACH,eAAe;QACpD,EAAE,OAAOI,KAAK;YACZtB,aAAa;YACbS,uBAAuBG,OAAO,GAAG;YACjCtB,MAAMiC,KAAK,CAACf,EAAE;QAChB;IACF,GACA;QAACD;QAAWD;QAAKT;QAAgBC;QAAYF;QAAIQ;QAAQI;KAAE;IAG7D,OAAO;QACLE;QACAX;QACAyB,OAAOzB,YAAYS,EAAE,qBAAqBA,EAAE;QAC5CP;IACF;AACF,EAAC"}
@@ -1,7 +1,9 @@
1
- import type { CustomPublishButtonProps } from 'payload/types';
2
1
  import React from 'react';
2
+ export declare const DefaultPublishButton: React.FC<{
3
+ label?: string;
4
+ }>;
3
5
  type Props = {
4
- CustomComponent?: CustomPublishButtonProps;
6
+ CustomComponent?: React.ReactNode;
5
7
  };
6
8
  export declare const Publish: React.FC<Props>;
7
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Publish/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAA6B,MAAM,eAAe,CAAA;AAGxF,OAAO,KAAsB,MAAM,OAAO,CAAA;AA0B1C,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,wBAAwB,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6EnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Publish/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAS1C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA8E7D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAInC,CAAA"}
@@ -1,24 +1,13 @@
1
1
  'use client';
2
2
  import qs from 'qs';
3
3
  import React, { useCallback } from 'react';
4
- import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
5
4
  import { useForm, useFormModified } from '../../forms/Form/context.js';
6
5
  import { FormSubmit } from '../../forms/Submit/index.js';
7
6
  import { useConfig } from '../../providers/Config/index.js';
8
7
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
9
8
  import { useLocale } from '../../providers/Locale/index.js';
10
9
  import { useTranslation } from '../../providers/Translation/index.js';
11
- const DefaultPublishButton = ({ id, canPublish, disabled, label, publish })=>{
12
- if (!canPublish) return null;
13
- return /*#__PURE__*/ React.createElement(FormSubmit, {
14
- buttonId: id,
15
- disabled: disabled,
16
- onClick: publish,
17
- size: "small",
18
- type: "button"
19
- }, label);
20
- };
21
- export const Publish = ({ CustomComponent })=>{
10
+ export const DefaultPublishButton = ({ label: labelProp })=>{
22
11
  const { code } = useLocale();
23
12
  const { id, collectionSlug, globalSlug, publishedDoc, unpublishedVersions } = useDocumentInfo();
24
13
  const [hasPublishPermission, setHasPublishPermission] = React.useState(false);
@@ -26,8 +15,9 @@ export const Publish = ({ CustomComponent })=>{
26
15
  const modified = useFormModified();
27
16
  const { routes: { api }, serverURL } = useConfig();
28
17
  const { t } = useTranslation();
18
+ const label = labelProp || t('version:publishChanges');
29
19
  const hasNewerVersions = unpublishedVersions?.totalDocs > 0;
30
- const canPublish = modified || hasNewerVersions || !publishedDoc;
20
+ const canPublish = hasPublishPermission && (modified || hasNewerVersions || !publishedDoc);
31
21
  const publish = useCallback(()=>{
32
22
  void submit({
33
23
  overrides: {
@@ -80,18 +70,18 @@ export const Publish = ({ CustomComponent })=>{
80
70
  id,
81
71
  serverURL
82
72
  ]);
83
- return /*#__PURE__*/ React.createElement(RenderCustomComponent, {
84
- CustomComponent: CustomComponent,
85
- DefaultComponent: DefaultPublishButton,
86
- componentProps: {
87
- id: 'action-save',
88
- DefaultButton: DefaultPublishButton,
89
- canPublish: hasPublishPermission,
90
- disabled: !canPublish,
91
- label: t('version:publishChanges'),
92
- publish
93
- }
94
- });
73
+ if (!canPublish) return null;
74
+ return /*#__PURE__*/ React.createElement(FormSubmit, {
75
+ buttonId: "action-save",
76
+ disabled: !canPublish,
77
+ onClick: publish,
78
+ size: "small",
79
+ type: "button"
80
+ }, label);
81
+ };
82
+ export const Publish = ({ CustomComponent })=>{
83
+ if (CustomComponent) return CustomComponent;
84
+ return /*#__PURE__*/ React.createElement(DefaultPublishButton, null);
95
85
  };
96
86
 
97
87
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Publish/index.tsx"],"sourcesContent":["'use client'\nimport type { CustomPublishButtonProps, DefaultPublishButtonProps } from 'payload/types'\n\nimport qs from 'qs'\nimport React, { useCallback } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst DefaultPublishButton: React.FC<DefaultPublishButtonProps> = ({\n id,\n canPublish,\n disabled,\n label,\n publish,\n}) => {\n if (!canPublish) return null\n\n return (\n <FormSubmit buttonId={id} disabled={disabled} onClick={publish} size=\"small\" type=\"button\">\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: CustomPublishButtonProps\n}\n\nexport const Publish: React.FC<Props> = ({ CustomComponent }) => {\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug, publishedDoc, unpublishedVersions } = useDocumentInfo()\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const { getData, submit } = useForm()\n const modified = useFormModified()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { t } = useTranslation()\n\n const hasNewerVersions = unpublishedVersions?.totalDocs > 0\n const canPublish = modified || hasNewerVersions || !publishedDoc\n\n const publish = useCallback(() => {\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n }, [submit])\n\n React.useEffect(() => {\n const fetchPublishAccess = async () => {\n let docAccessURL: string\n let operation = 'update'\n\n const params = {\n locale: code || undefined,\n }\n if (globalSlug) {\n docAccessURL = `/globals/${globalSlug}/access`\n } else if (collectionSlug) {\n if (!id) operation = 'create'\n docAccessURL = `/${collectionSlug}/access${id ? `/${id}` : ''}`\n }\n\n if (docAccessURL) {\n const data = getData()\n\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...data,\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n const json = await res.json()\n const result = Boolean(json?.[operation]?.permission)\n setHasPublishPermission(result)\n } else {\n setHasPublishPermission(true)\n }\n }\n\n void fetchPublishAccess()\n }, [api, code, collectionSlug, getData, globalSlug, id, serverURL])\n\n return (\n <RenderCustomComponent\n CustomComponent={CustomComponent}\n DefaultComponent={DefaultPublishButton}\n componentProps={{\n id: 'action-save',\n DefaultButton: DefaultPublishButton,\n canPublish: hasPublishPermission,\n disabled: !canPublish,\n label: t('version:publishChanges'),\n publish,\n }}\n />\n )\n}\n"],"names":["qs","React","useCallback","RenderCustomComponent","useForm","useFormModified","FormSubmit","useConfig","useDocumentInfo","useLocale","useTranslation","DefaultPublishButton","id","canPublish","disabled","label","publish","buttonId","onClick","size","type","Publish","CustomComponent","code","collectionSlug","globalSlug","publishedDoc","unpublishedVersions","hasPublishPermission","setHasPublishPermission","useState","getData","submit","modified","routes","api","serverURL","t","hasNewerVersions","totalDocs","overrides","_status","useEffect","fetchPublishAccess","docAccessURL","operation","params","locale","undefined","data","res","fetch","stringify","body","JSON","credentials","headers","method","json","result","Boolean","permission","DefaultComponent","componentProps","DefaultButton"],"mappings":"AAAA;AAGA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,MAAMC,uBAA4D,CAAC,EACjEC,EAAE,EACFC,UAAU,EACVC,QAAQ,EACRC,KAAK,EACLC,OAAO,EACR;IACC,IAAI,CAACH,YAAY,OAAO;IAExB,qBACE,oBAACP;QAAWW,UAAUL;QAAIE,UAAUA;QAAUI,SAASF;QAASG,MAAK;QAAQC,MAAK;OAC/EL;AAGP;AAMA,OAAO,MAAMM,UAA2B,CAAC,EAAEC,eAAe,EAAE;IAC1D,MAAM,EAAEC,IAAI,EAAE,GAAGd;IACjB,MAAM,EAAEG,EAAE,EAAEY,cAAc,EAAEC,UAAU,EAAEC,YAAY,EAAEC,mBAAmB,EAAE,GAAGnB;IAC9E,MAAM,CAACoB,sBAAsBC,wBAAwB,GAAG5B,MAAM6B,QAAQ,CAAC;IACvE,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAG5B;IAC5B,MAAM6B,WAAW5B;IACjB,MAAM,EACJ6B,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAG7B;IACJ,MAAM,EAAE8B,CAAC,EAAE,GAAG3B;IAEd,MAAM4B,mBAAmBX,qBAAqBY,YAAY;IAC1D,MAAM1B,aAAaoB,YAAYK,oBAAoB,CAACZ;IAEpD,MAAMV,UAAUd,YAAY;QAC1B,KAAK8B,OAAO;YACVQ,WAAW;gBACTC,SAAS;YACX;QACF;IACF,GAAG;QAACT;KAAO;IAEX/B,MAAMyC,SAAS,CAAC;QACd,MAAMC,qBAAqB;YACzB,IAAIC;YACJ,IAAIC,YAAY;YAEhB,MAAMC,SAAS;gBACbC,QAAQxB,QAAQyB;YAClB;YACA,IAAIvB,YAAY;gBACdmB,eAAe,CAAC,SAAS,EAAEnB,WAAW,OAAO,CAAC;YAChD,OAAO,IAAID,gBAAgB;gBACzB,IAAI,CAACZ,IAAIiC,YAAY;gBACrBD,eAAe,CAAC,CAAC,EAAEpB,eAAe,OAAO,EAAEZ,KAAK,CAAC,CAAC,EAAEA,GAAG,CAAC,GAAG,GAAG,CAAC;YACjE;YAEA,IAAIgC,cAAc;gBAChB,MAAMK,OAAOlB;gBAEb,MAAMmB,MAAM,MAAMC,MAAM,CAAC,EAAEf,UAAU,EAAED,IAAI,EAAES,aAAa,CAAC,EAAE5C,GAAGoD,SAAS,CAACN,QAAQ,CAAC,EAAE;oBACnFO,MAAMC,KAAKF,SAAS,CAAC;wBACnB,GAAGH,IAAI;wBACPR,SAAS;oBACX;oBACAc,aAAa;oBACbC,SAAS;wBACP,gBAAgB;oBAClB;oBACAC,QAAQ;gBACV;gBACA,MAAMC,OAAO,MAAMR,IAAIQ,IAAI;gBAC3B,MAAMC,SAASC,QAAQF,MAAM,CAACb,UAAU,EAAEgB;gBAC1ChC,wBAAwB8B;YAC1B,OAAO;gBACL9B,wBAAwB;YAC1B;QACF;QAEA,KAAKc;IACP,GAAG;QAACR;QAAKZ;QAAMC;QAAgBO;QAASN;QAAYb;QAAIwB;KAAU;IAElE,qBACE,oBAACjC;QACCmB,iBAAiBA;QACjBwC,kBAAkBnD;QAClBoD,gBAAgB;YACdnD,IAAI;YACJoD,eAAerD;YACfE,YAAYe;YACZd,UAAU,CAACD;YACXE,OAAOsB,EAAE;YACTrB;QACF;;AAGN,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Publish/index.tsx"],"sourcesContent":["'use client'\n\nimport qs from 'qs'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const DefaultPublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug, publishedDoc, unpublishedVersions } = useDocumentInfo()\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const { getData, submit } = useForm()\n const modified = useFormModified()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const hasNewerVersions = unpublishedVersions?.totalDocs > 0\n const canPublish = hasPublishPermission && (modified || hasNewerVersions || !publishedDoc)\n\n const publish = useCallback(() => {\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n }, [submit])\n\n React.useEffect(() => {\n const fetchPublishAccess = async () => {\n let docAccessURL: string\n let operation = 'update'\n\n const params = {\n locale: code || undefined,\n }\n if (globalSlug) {\n docAccessURL = `/globals/${globalSlug}/access`\n } else if (collectionSlug) {\n if (!id) operation = 'create'\n docAccessURL = `/${collectionSlug}/access${id ? `/${id}` : ''}`\n }\n\n if (docAccessURL) {\n const data = getData()\n\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n body: JSON.stringify({\n ...data,\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n const json = await res.json()\n const result = Boolean(json?.[operation]?.permission)\n setHasPublishPermission(result)\n } else {\n setHasPublishPermission(true)\n }\n }\n\n void fetchPublishAccess()\n }, [api, code, collectionSlug, getData, globalSlug, id, serverURL])\n\n if (!canPublish) return null\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"small\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const Publish: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultPublishButton />\n}\n"],"names":["qs","React","useCallback","useForm","useFormModified","FormSubmit","useConfig","useDocumentInfo","useLocale","useTranslation","DefaultPublishButton","label","labelProp","code","id","collectionSlug","globalSlug","publishedDoc","unpublishedVersions","hasPublishPermission","setHasPublishPermission","useState","getData","submit","modified","routes","api","serverURL","t","hasNewerVersions","totalDocs","canPublish","publish","overrides","_status","useEffect","fetchPublishAccess","docAccessURL","operation","params","locale","undefined","data","res","fetch","stringify","body","JSON","credentials","headers","method","json","result","Boolean","permission","buttonId","disabled","onClick","size","type","Publish","CustomComponent"],"mappings":"AAAA;AAEA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,uBAAqD,CAAC,EAAEC,OAAOC,SAAS,EAAE;IACrF,MAAM,EAAEC,IAAI,EAAE,GAAGL;IACjB,MAAM,EAAEM,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAEC,YAAY,EAAEC,mBAAmB,EAAE,GAAGX;IAC9E,MAAM,CAACY,sBAAsBC,wBAAwB,GAAGnB,MAAMoB,QAAQ,CAAC;IACvE,MAAM,EAAEC,OAAO,EAAEC,MAAM,EAAE,GAAGpB;IAC5B,MAAMqB,WAAWpB;IAEjB,MAAM,EACJqB,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGrB;IACJ,MAAM,EAAEsB,CAAC,EAAE,GAAGnB;IACd,MAAME,QAAQC,aAAagB,EAAE;IAE7B,MAAMC,mBAAmBX,qBAAqBY,YAAY;IAC1D,MAAMC,aAAaZ,wBAAyBK,CAAAA,YAAYK,oBAAoB,CAACZ,YAAW;IAExF,MAAMe,UAAU9B,YAAY;QAC1B,KAAKqB,OAAO;YACVU,WAAW;gBACTC,SAAS;YACX;QACF;IACF,GAAG;QAACX;KAAO;IAEXtB,MAAMkC,SAAS,CAAC;QACd,MAAMC,qBAAqB;YACzB,IAAIC;YACJ,IAAIC,YAAY;YAEhB,MAAMC,SAAS;gBACbC,QAAQ3B,QAAQ4B;YAClB;YACA,IAAIzB,YAAY;gBACdqB,eAAe,CAAC,SAAS,EAAErB,WAAW,OAAO,CAAC;YAChD,OAAO,IAAID,gBAAgB;gBACzB,IAAI,CAACD,IAAIwB,YAAY;gBACrBD,eAAe,CAAC,CAAC,EAAEtB,eAAe,OAAO,EAAED,KAAK,CAAC,CAAC,EAAEA,GAAG,CAAC,GAAG,GAAG,CAAC;YACjE;YAEA,IAAIuB,cAAc;gBAChB,MAAMK,OAAOpB;gBAEb,MAAMqB,MAAM,MAAMC,MAAM,CAAC,EAAEjB,UAAU,EAAED,IAAI,EAAEW,aAAa,CAAC,EAAErC,GAAG6C,SAAS,CAACN,QAAQ,CAAC,EAAE;oBACnFO,MAAMC,KAAKF,SAAS,CAAC;wBACnB,GAAGH,IAAI;wBACPR,SAAS;oBACX;oBACAc,aAAa;oBACbC,SAAS;wBACP,gBAAgB;oBAClB;oBACAC,QAAQ;gBACV;gBACA,MAAMC,OAAO,MAAMR,IAAIQ,IAAI;gBAC3B,MAAMC,SAASC,QAAQF,MAAM,CAACb,UAAU,EAAEgB;gBAC1ClC,wBAAwBgC;YAC1B,OAAO;gBACLhC,wBAAwB;YAC1B;QACF;QAEA,KAAKgB;IACP,GAAG;QAACV;QAAKb;QAAME;QAAgBO;QAASN;QAAYF;QAAIa;KAAU;IAElE,IAAI,CAACI,YAAY,OAAO;IAExB,qBACE,oBAAC1B;QACCkD,UAAS;QACTC,UAAU,CAACzB;QACX0B,SAASzB;QACT0B,MAAK;QACLC,MAAK;OAEJhD;AAGP,EAAC;AAMD,OAAO,MAAMiD,UAA2B,CAAC,EAAEC,eAAe,EAAE;IAC1D,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACnD;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CA6CxD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGzC,OAAO,cAAc,CAAA;AAGrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CA6CxD,CAAA"}
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
2
  import { components as SelectComponents } from 'react-select';
3
+ import { v4 as uuid } from 'uuid';
3
4
  import { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js';
4
5
  const baseClass = 'multi-value';
5
6
  export const MultiValue = (props)=>{
6
7
  const { className, data: { value }, innerProps, isDisabled, // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module
7
8
  selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {} } = props;
8
9
  const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({
9
- id: value.toString(),
10
+ id: typeof value === 'object' && 'path' in value ? String(value.path) : uuid(),
10
11
  disabled: !isSortable
11
12
  });
12
13
  const classes = [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"sourcesContent":["import type { MultiValueProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\n\nimport type { Option } from '../types.js'\n\nimport { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value'\nexport const MultiValue: React.FC<MultiValueProps<Option>> = (props) => {\n const {\n className,\n data: { value },\n innerProps,\n isDisabled,\n // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {},\n } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id: value.toString(),\n disabled: !isSortable,\n })\n\n const classes = [\n baseClass,\n className,\n !isDisabled && 'draggable',\n isDragging && `${baseClass}--is-dragging`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SelectComponents.MultiValue\n {...props}\n className={classes}\n innerProps={{\n ...innerProps,\n ...attributes,\n ...listeners,\n onMouseDown: (e) => {\n if (!disableMouseDown) {\n // we need to prevent the dropdown from opening when clicking on the drag handle, but not when a modal is open (i.e. the 'Relationship' field component)\n e.stopPropagation()\n }\n },\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n"],"names":["React","components","SelectComponents","useDraggableSortable","baseClass","MultiValue","props","className","data","value","innerProps","isDisabled","selectProps","customProps","disableMouseDown","isSortable","attributes","isDragging","listeners","setNodeRef","transform","id","toString","disabled","classes","filter","Boolean","join","onMouseDown","e","stopPropagation","ref","style"],"mappings":"AAEA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAI7D,SAASC,oBAAoB,QAAQ,wDAAuD;AAG5F,MAAMC,YAAY;AAClB,OAAO,MAAMC,aAAgD,CAACC;IAC5D,MAAM,EACJC,SAAS,EACTC,MAAM,EAAEC,KAAK,EAAE,EACfC,UAAU,EACVC,UAAU,EACV,oFAAoF;IACpFC,aAAa,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EACzE,GAAGT;IAEJ,MAAM,EAAEU,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGjB,qBAAqB;QACxFkB,IAAIZ,MAAMa,QAAQ;QAClBC,UAAU,CAACR;IACb;IAEA,MAAMS,UAAU;QACdpB;QACAG;QACA,CAACI,cAAc;QACfM,cAAc,CAAC,EAAEb,UAAU,aAAa,CAAC;KAC1C,CACEqB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACzB,iBAAiBG,UAAU;QACzB,GAAGC,KAAK;QACTC,WAAWiB;QACXd,YAAY;YACV,GAAGA,UAAU;YACb,GAAGM,UAAU;YACb,GAAGE,SAAS;YACZU,aAAa,CAACC;gBACZ,IAAI,CAACf,kBAAkB;oBACrB,wJAAwJ;oBACxJe,EAAEC,eAAe;gBACnB;YACF;YACAC,KAAKZ;YACLa,OAAO;gBACLZ;YACF;QACF;;AAGN,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/ReactSelect/MultiValue/index.tsx"],"sourcesContent":["import type { MultiValueProps } from 'react-select'\n\nimport React from 'react'\nimport { components as SelectComponents } from 'react-select'\nimport { v4 as uuid } from 'uuid'\n\nimport type { Option } from '../types.js'\n\nimport { useDraggableSortable } from '../../DraggableSortable/useDraggableSortable/index.js'\nimport './index.scss'\n\nconst baseClass = 'multi-value'\nexport const MultiValue: React.FC<MultiValueProps<Option>> = (props) => {\n const {\n className,\n data: { value },\n innerProps,\n isDisabled,\n // @ts-expect-error // TODO Fix this - moduleResolution 16 breaks our declare module\n selectProps: { customProps: { disableMouseDown } = {}, isSortable } = {},\n } = props\n\n const { attributes, isDragging, listeners, setNodeRef, transform } = useDraggableSortable({\n id: typeof value === 'object' && 'path' in value ? String(value.path) : uuid(),\n disabled: !isSortable,\n })\n\n const classes = [\n baseClass,\n className,\n !isDisabled && 'draggable',\n isDragging && `${baseClass}--is-dragging`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <SelectComponents.MultiValue\n {...props}\n className={classes}\n innerProps={{\n ...innerProps,\n ...attributes,\n ...listeners,\n onMouseDown: (e) => {\n if (!disableMouseDown) {\n // we need to prevent the dropdown from opening when clicking on the drag handle, but not when a modal is open (i.e. the 'Relationship' field component)\n e.stopPropagation()\n }\n },\n ref: setNodeRef,\n style: {\n transform,\n },\n }}\n />\n )\n}\n"],"names":["React","components","SelectComponents","v4","uuid","useDraggableSortable","baseClass","MultiValue","props","className","data","value","innerProps","isDisabled","selectProps","customProps","disableMouseDown","isSortable","attributes","isDragging","listeners","setNodeRef","transform","id","String","path","disabled","classes","filter","Boolean","join","onMouseDown","e","stopPropagation","ref","style"],"mappings":"AAEA,OAAOA,WAAW,QAAO;AACzB,SAASC,cAAcC,gBAAgB,QAAQ,eAAc;AAC7D,SAASC,MAAMC,IAAI,QAAQ,OAAM;AAIjC,SAASC,oBAAoB,QAAQ,wDAAuD;AAG5F,MAAMC,YAAY;AAClB,OAAO,MAAMC,aAAgD,CAACC;IAC5D,MAAM,EACJC,SAAS,EACTC,MAAM,EAAEC,KAAK,EAAE,EACfC,UAAU,EACVC,UAAU,EACV,oFAAoF;IACpFC,aAAa,EAAEC,aAAa,EAAEC,gBAAgB,EAAE,GAAG,CAAC,CAAC,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EACzE,GAAGT;IAEJ,MAAM,EAAEU,UAAU,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAE,GAAGjB,qBAAqB;QACxFkB,IAAI,OAAOZ,UAAU,YAAY,UAAUA,QAAQa,OAAOb,MAAMc,IAAI,IAAIrB;QACxEsB,UAAU,CAACT;IACb;IAEA,MAAMU,UAAU;QACdrB;QACAG;QACA,CAACI,cAAc;QACfM,cAAc,CAAC,EAAEb,UAAU,aAAa,CAAC;KAC1C,CACEsB,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAAC5B,iBAAiBK,UAAU;QACzB,GAAGC,KAAK;QACTC,WAAWkB;QACXf,YAAY;YACV,GAAGA,UAAU;YACb,GAAGM,UAAU;YACb,GAAGE,SAAS;YACZW,aAAa,CAACC;gBACZ,IAAI,CAAChB,kBAAkB;oBACrB,wJAAwJ;oBACxJgB,EAAEC,eAAe;gBACnB;YACF;YACAC,KAAKb;YACLc,OAAO;gBACLb;YACF;QACF;;AAGN,EAAC"}
@@ -14,6 +14,10 @@
14
14
  padding-top: 0;
15
15
  padding-bottom: 0;
16
16
  color: currentColor;
17
+
18
+ .field-label {
19
+ padding-bottom: 0;
20
+ }
17
21
  }
18
22
 
19
23
  &--is-multi {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAYxC,OAAO,cAAc,CAAA;AAuKrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAYxC,OAAO,cAAc,CAAA;AA4KrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
@@ -22,7 +22,7 @@ const SelectAdapter = (props)=>{
22
22
  const { i18n, t } = useTranslation();
23
23
  const [inputValue, setInputValue] = React.useState('') // for creatable select
24
24
  ;
25
- const { className, components, customProps, disabled = false, filterOption = undefined, isClearable = true, isCreatable, isLoading, isSearchable = true, noOptionsMessage, numberOnly = false, onChange, onMenuOpen, options, placeholder = t('general:selectValue'), showError, value } = props;
25
+ const { className, components, customProps, disabled = false, filterOption = undefined, getOptionValue, isClearable = true, isCreatable, isLoading, isSearchable = true, noOptionsMessage, numberOnly = false, onChange, onMenuClose, onMenuOpen, options, placeholder = t('general:selectValue'), showError, value } = props;
26
26
  const classes = [
27
27
  className,
28
28
  'react-select',
@@ -49,12 +49,14 @@ const SelectAdapter = (props)=>{
49
49
  ...components
50
50
  },
51
51
  filterOption: filterOption,
52
+ getOptionValue: getOptionValue,
52
53
  isClearable: isClearable,
53
54
  isDisabled: disabled,
54
55
  isSearchable: isSearchable,
55
56
  menuPlacement: "auto",
56
57
  noOptionsMessage: noOptionsMessage,
57
58
  onChange: onChange,
59
+ onMenuClose: onMenuClose,
58
60
  onMenuOpen: onMenuOpen,
59
61
  options: options,
60
62
  value: value
@@ -126,6 +128,7 @@ const SelectAdapter = (props)=>{
126
128
  onChange: onChange,
127
129
  onInputChange: (newValue)=>setInputValue(newValue),
128
130
  onKeyDown: handleKeyDown,
131
+ onMenuClose: onMenuClose,
129
132
  onMenuOpen: onMenuOpen,
130
133
  options: options,
131
134
  value: value
@@ -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 from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { 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'\nimport './index.scss'\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\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage,\n numberOnly = false,\n onChange,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\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() === '') return\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 placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\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","Select","CreatableSelect","Chevron","useTranslation","DraggableSortable","ClearIndicator","Control","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuOpen","options","placeholder","showError","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","DropdownIndicator","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","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 from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { 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'\nimport './index.scss'\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\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,\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 classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\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() === '') return\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 placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\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 value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\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","Select","CreatableSelect","Chevron","useTranslation","DraggableSortable","ClearIndicator","Control","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","DropdownIndicator","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"mappings":"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"}
@@ -42,6 +42,7 @@ export type Props = {
42
42
  label: string;
43
43
  value: string;
44
44
  }, search: string) => boolean) | undefined;
45
+ getOptionValue?: ReactSelectStateManagerProps<Option, boolean, GroupBase<Option>>['getOptionValue'];
45
46
  inputId?: string;
46
47
  isClearable?: boolean;
47
48
  /** Allows you to create own values in the UI despite them not being pre-specified */
@@ -58,6 +59,7 @@ export type Props = {
58
59
  numberOnly?: boolean;
59
60
  onChange?: (value: any) => void;
60
61
  onInputChange?: (val: string) => void;
62
+ onMenuClose?: () => void;
61
63
  onMenuOpen?: () => void;
62
64
  onMenuScrollToBottom?: () => void;
63
65
  options: Option[] | OptionGroup[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import 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>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\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?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps\n }\n}\n\nexport type Option = {\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: unknown\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type Props = {\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 { data, label, value }: { data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\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 noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: any) => void // eslint-disable-line @typescript-eslint/no-explicit-any\n onInputChange?: (val: string) => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA+CA,WAmCC"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import 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>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\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?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps\n }\n}\n\nexport type Option = {\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: unknown\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type Props = {\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 { data, label, value }: { 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 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 noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: any) => void // eslint-disable-line @typescript-eslint/no-explicit-any\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"mappings":"AA+CA,WAyCC"}
@@ -1,7 +1,9 @@
1
- import type { CustomSaveButtonProps } from 'payload/types';
2
1
  import React from 'react';
2
+ export declare const DefaultSaveButton: React.FC<{
3
+ label?: string;
4
+ }>;
3
5
  type Props = {
4
- CustomComponent?: CustomSaveButtonProps;
6
+ CustomComponent?: React.ReactNode;
5
7
  };
6
8
  export declare const Save: React.FC<Props>;
7
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Save/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAA0B,MAAM,eAAe,CAAA;AAElF,OAAO,KAAiB,MAAM,OAAO,CAAA;AA4BrC,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,qBAAqB,CAAA;CACxC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAehC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Save/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAA;AAQrC,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA0B1D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIhC,CAAA"}