@payloadcms/ui 3.2.2 → 3.2.3-canary.3e78927

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 (340) hide show
  1. package/dist/elements/AddNewRelation/index.js +40 -40
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js +3 -3
  4. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  5. package/dist/elements/AnimateHeight/index.d.ts.map +1 -1
  6. package/dist/elements/AnimateHeight/index.js +4 -1
  7. package/dist/elements/AnimateHeight/index.js.map +1 -1
  8. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +2 -1
  9. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +67 -79
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +10 -10
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/ActionsBar/index.js +13 -13
  15. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  16. package/dist/elements/BulkUpload/AddingFilesView/index.js +14 -14
  17. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  18. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  19. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +3 -3
  21. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/FileSidebar/index.js +29 -26
  23. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/index.js +2 -0
  25. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/index.js +8 -8
  27. package/dist/elements/BulkUpload/index.js.map +1 -1
  28. package/dist/elements/CodeEditor/CodeEditor.js +28 -32
  29. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  30. package/dist/elements/Collapsible/index.js +13 -13
  31. package/dist/elements/Collapsible/index.js.map +1 -1
  32. package/dist/elements/ColumnSelector/index.js +10 -10
  33. package/dist/elements/ColumnSelector/index.js.map +1 -1
  34. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  35. package/dist/elements/DatePicker/DatePicker.js +4 -4
  36. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  37. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  38. package/dist/elements/DeleteMany/index.js +10 -14
  39. package/dist/elements/DeleteMany/index.js.map +1 -1
  40. package/dist/elements/DocumentControls/index.js +9 -9
  41. package/dist/elements/DocumentControls/index.js.map +1 -1
  42. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +4 -4
  43. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  44. package/dist/elements/DocumentDrawer/index.js +47 -47
  45. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  46. package/dist/elements/DocumentLocked/index.js +21 -21
  47. package/dist/elements/DocumentLocked/index.js.map +1 -1
  48. package/dist/elements/DocumentTakeOver/index.js +10 -10
  49. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  50. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +9 -9
  51. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  52. package/dist/elements/DraggableSortable/index.js +11 -11
  53. package/dist/elements/DraggableSortable/index.js.map +1 -1
  54. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +8 -8
  55. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  56. package/dist/elements/Drawer/index.js +38 -38
  57. package/dist/elements/Drawer/index.js.map +1 -1
  58. package/dist/elements/Drawer/useDrawerSlug.js +3 -3
  59. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  60. package/dist/elements/EditMany/index.d.ts.map +1 -1
  61. package/dist/elements/EditMany/index.js +32 -33
  62. package/dist/elements/EditMany/index.js.map +1 -1
  63. package/dist/elements/FieldSelect/index.js +17 -16
  64. package/dist/elements/FieldSelect/index.js.map +1 -1
  65. package/dist/elements/FileDetails/DraggableFileDetails/index.js +15 -15
  66. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  67. package/dist/elements/FileDetails/FileMeta/index.js +15 -15
  68. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  69. package/dist/elements/FullscreenModal/index.js +4 -4
  70. package/dist/elements/FullscreenModal/index.js.map +1 -1
  71. package/dist/elements/Hamburger/index.js +4 -4
  72. package/dist/elements/Hamburger/index.js.map +1 -1
  73. package/dist/elements/HydrateAuthProvider/index.js +3 -3
  74. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  75. package/dist/elements/LeaveWithoutSaving/index.js +11 -11
  76. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  77. package/dist/elements/ListDrawer/index.js +19 -18
  78. package/dist/elements/ListDrawer/index.js.map +1 -1
  79. package/dist/elements/ListSelection/index.js +3 -3
  80. package/dist/elements/ListSelection/index.js.map +1 -1
  81. package/dist/elements/Loading/index.js +15 -15
  82. package/dist/elements/Loading/index.js.map +1 -1
  83. package/dist/elements/LoadingOverlay/index.js +18 -16
  84. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  85. package/dist/elements/Localizer/LocalizerLabel/index.js +5 -5
  86. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  87. package/dist/elements/Localizer/index.d.ts.map +1 -1
  88. package/dist/elements/Localizer/index.js +20 -19
  89. package/dist/elements/Localizer/index.js.map +1 -1
  90. package/dist/elements/Locked/index.js +3 -3
  91. package/dist/elements/Locked/index.js.map +1 -1
  92. package/dist/elements/Logout/index.js +7 -7
  93. package/dist/elements/Logout/index.js.map +1 -1
  94. package/dist/elements/Nav/NavToggler/index.js +13 -13
  95. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  96. package/dist/elements/NavGroup/index.js +12 -12
  97. package/dist/elements/NavGroup/index.js.map +1 -1
  98. package/dist/elements/PerPage/index.js +7 -7
  99. package/dist/elements/PerPage/index.js.map +1 -1
  100. package/dist/elements/Pill/index.js +8 -8
  101. package/dist/elements/Pill/index.js.map +1 -1
  102. package/dist/elements/Popup/index.js +1 -0
  103. package/dist/elements/Popup/index.js.map +1 -1
  104. package/dist/elements/PreviewButton/index.js +3 -3
  105. package/dist/elements/PreviewButton/index.js.map +1 -1
  106. package/dist/elements/PublishButton/index.js +28 -28
  107. package/dist/elements/PublishButton/index.js.map +1 -1
  108. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  109. package/dist/elements/PublishMany/index.js +10 -10
  110. package/dist/elements/PublishMany/index.js.map +1 -1
  111. package/dist/elements/ReactSelect/Input/index.d.ts +2 -2
  112. package/dist/elements/ReactSelect/Input/index.d.ts.map +1 -1
  113. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  114. package/dist/elements/ReactSelect/MultiValue/index.js +10 -10
  115. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  116. package/dist/elements/ReactSelect/MultiValueRemove/index.js +5 -5
  117. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  118. package/dist/elements/ReactSelect/index.js.map +1 -1
  119. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +4 -4
  120. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  121. package/dist/elements/RelationshipTable/index.js +278 -142
  122. package/dist/elements/RelationshipTable/index.js.map +1 -1
  123. package/dist/elements/RenderIfInViewport/index.js +3 -3
  124. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  125. package/dist/elements/RenderTitle/index.js +6 -6
  126. package/dist/elements/RenderTitle/index.js.map +1 -1
  127. package/dist/elements/SelectAll/index.js +3 -3
  128. package/dist/elements/SelectAll/index.js.map +1 -1
  129. package/dist/elements/SelectRow/index.js +6 -6
  130. package/dist/elements/SelectRow/index.js.map +1 -1
  131. package/dist/elements/ShimmerEffect/index.js +7 -7
  132. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  133. package/dist/elements/SortColumn/index.js +16 -16
  134. package/dist/elements/SortColumn/index.js.map +1 -1
  135. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  136. package/dist/elements/SortComplex/index.js +38 -51
  137. package/dist/elements/SortComplex/index.js.map +1 -1
  138. package/dist/elements/Status/index.js +38 -35
  139. package/dist/elements/Status/index.js.map +1 -1
  140. package/dist/elements/StayLoggedIn/index.js +12 -12
  141. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  142. package/dist/elements/StepNav/SetStepNav.js +3 -3
  143. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  144. package/dist/elements/StepNav/context.js +3 -3
  145. package/dist/elements/StepNav/context.js.map +1 -1
  146. package/dist/elements/StepNav/index.js +9 -9
  147. package/dist/elements/StepNav/index.js.map +1 -1
  148. package/dist/elements/Table/DefaultCell/fields/Date/index.js +3 -3
  149. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  150. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +31 -31
  151. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  152. package/dist/elements/Table/DefaultCell/fields/Select/index.js +3 -3
  153. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  154. package/dist/elements/Table/DefaultCell/index.js +15 -15
  155. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  156. package/dist/elements/Table/RelationshipProvider/index.js +12 -9
  157. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  158. package/dist/elements/TableColumns/RenderDefaultCell/index.js +6 -6
  159. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  160. package/dist/elements/Thumbnail/index.js +27 -27
  161. package/dist/elements/Thumbnail/index.js.map +1 -1
  162. package/dist/elements/ThumbnailCard/index.js +10 -10
  163. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  164. package/dist/elements/Tooltip/index.js +29 -24
  165. package/dist/elements/Tooltip/index.js.map +1 -1
  166. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  167. package/dist/elements/UnpublishMany/index.js +11 -11
  168. package/dist/elements/UnpublishMany/index.js.map +1 -1
  169. package/dist/elements/Upload/index.js +5 -5
  170. package/dist/elements/Upload/index.js.map +1 -1
  171. package/dist/elements/WhereBuilder/Condition/Number/index.js +3 -3
  172. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  173. package/dist/elements/WhereBuilder/Condition/Select/index.js +13 -10
  174. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  175. package/dist/elements/WhereBuilder/Condition/Text/index.js +5 -5
  176. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  177. package/dist/elements/WhereBuilder/Condition/index.js +45 -45
  178. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  179. package/dist/elements/WhereBuilder/index.js +11 -11
  180. package/dist/elements/WhereBuilder/index.js.map +1 -1
  181. package/dist/exports/client/{DatePicker-QST7QHAX.js → CodeEditor-RZ32B2QF.js} +2 -2
  182. package/dist/exports/client/DatePicker-QW5V4BQV.js +14 -0
  183. package/dist/exports/client/DatePicker-QW5V4BQV.js.map +8 -0
  184. package/dist/exports/client/chunk-CKHKQPOO.js +26 -0
  185. package/dist/exports/client/{CodeEditor-5MCGR4GL.js.map → chunk-CKHKQPOO.js.map} +4 -4
  186. package/dist/exports/client/chunk-KZPVHMBR.js +29 -0
  187. package/dist/exports/client/chunk-KZPVHMBR.js.map +8 -0
  188. package/dist/exports/client/index.d.ts +8 -1
  189. package/dist/exports/client/index.d.ts.map +1 -1
  190. package/dist/exports/client/index.js +16 -16
  191. package/dist/exports/client/index.js.map +4 -4
  192. package/dist/fields/Array/ArrayRow.js +38 -38
  193. package/dist/fields/Array/ArrayRow.js.map +1 -1
  194. package/dist/fields/Array/index.d.ts.map +1 -1
  195. package/dist/fields/Array/index.js +27 -25
  196. package/dist/fields/Array/index.js.map +1 -1
  197. package/dist/fields/Blocks/BlockRow.js +51 -49
  198. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  199. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js +3 -3
  200. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
  201. package/dist/fields/Blocks/BlocksDrawer/index.js +13 -13
  202. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  203. package/dist/fields/Blocks/RowActions.js +25 -25
  204. package/dist/fields/Blocks/RowActions.js.map +1 -1
  205. package/dist/fields/Blocks/SectionTitle/index.js +8 -8
  206. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  207. package/dist/fields/Blocks/index.d.ts.map +1 -1
  208. package/dist/fields/Blocks/index.js +26 -24
  209. package/dist/fields/Blocks/index.js.map +1 -1
  210. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  211. package/dist/fields/Collapsible/index.js +4 -2
  212. package/dist/fields/Collapsible/index.js.map +1 -1
  213. package/dist/fields/ConfirmPassword/index.js +6 -6
  214. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  215. package/dist/fields/FieldLabel/index.js +18 -18
  216. package/dist/fields/FieldLabel/index.js.map +1 -1
  217. package/dist/fields/Group/index.d.ts.map +1 -1
  218. package/dist/fields/Group/index.js +6 -4
  219. package/dist/fields/Group/index.js.map +1 -1
  220. package/dist/fields/Hidden/index.js +7 -7
  221. package/dist/fields/Hidden/index.js.map +1 -1
  222. package/dist/fields/Number/index.js +5 -5
  223. package/dist/fields/Number/index.js.map +1 -1
  224. package/dist/fields/Password/input.js +24 -24
  225. package/dist/fields/Password/input.js.map +1 -1
  226. package/dist/fields/RadioGroup/Radio/index.js +9 -9
  227. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  228. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  229. package/dist/fields/RadioGroup/index.js +4 -2
  230. package/dist/fields/RadioGroup/index.js.map +1 -1
  231. package/dist/fields/Relationship/index.d.ts.map +1 -1
  232. package/dist/fields/Relationship/index.js +4 -2
  233. package/dist/fields/Relationship/index.js.map +1 -1
  234. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +18 -18
  235. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  236. package/dist/fields/Relationship/select-components/SingleValue/index.js +18 -18
  237. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  238. package/dist/fields/Select/Input.js +28 -28
  239. package/dist/fields/Select/Input.js.map +1 -1
  240. package/dist/fields/Tabs/Tab/index.js +10 -10
  241. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  242. package/dist/fields/Tabs/index.d.ts +15 -0
  243. package/dist/fields/Tabs/index.d.ts.map +1 -1
  244. package/dist/fields/Tabs/index.js +71 -71
  245. package/dist/fields/Tabs/index.js.map +1 -1
  246. package/dist/fields/Text/Input.js +24 -24
  247. package/dist/fields/Text/Input.js.map +1 -1
  248. package/dist/fields/Textarea/Input.js +19 -19
  249. package/dist/fields/Textarea/Input.js.map +1 -1
  250. package/dist/fields/Upload/HasMany/index.js +11 -11
  251. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  252. package/dist/fields/Upload/Input.js +109 -104
  253. package/dist/fields/Upload/Input.js.map +1 -1
  254. package/dist/fields/Upload/RelationshipContent/index.js +20 -20
  255. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  256. package/dist/forms/NullifyField/index.js +3 -3
  257. package/dist/forms/NullifyField/index.js.map +1 -1
  258. package/dist/forms/RenderFields/RenderField.js +9 -9
  259. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  260. package/dist/forms/RenderFields/index.js +16 -16
  261. package/dist/forms/RenderFields/index.js.map +1 -1
  262. package/dist/forms/WatchChildErrors/index.js +10 -10
  263. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  264. package/dist/forms/useField/index.js +44 -44
  265. package/dist/forms/useField/index.js.map +1 -1
  266. package/dist/hooks/useDebounce.js +3 -3
  267. package/dist/hooks/useDebounce.js.map +1 -1
  268. package/dist/hooks/useDebouncedEffect.js +6 -6
  269. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  270. package/dist/hooks/useDelay.js +3 -3
  271. package/dist/hooks/useDelay.js.map +1 -1
  272. package/dist/hooks/useHotkey.js +18 -14
  273. package/dist/hooks/useHotkey.js.map +1 -1
  274. package/dist/hooks/usePayloadAPI.js +13 -13
  275. package/dist/hooks/usePayloadAPI.js.map +1 -1
  276. package/dist/hooks/useThrottledEffect.js +3 -3
  277. package/dist/hooks/useThrottledEffect.js.map +1 -1
  278. package/dist/providers/Actions/index.js +4 -4
  279. package/dist/providers/Actions/index.js.map +1 -1
  280. package/dist/providers/ClientFunction/index.js +3 -3
  281. package/dist/providers/ClientFunction/index.js.map +1 -1
  282. package/dist/providers/Config/index.js +9 -10
  283. package/dist/providers/Config/index.js.map +1 -1
  284. package/dist/providers/DocumentEvents/index.js +3 -3
  285. package/dist/providers/DocumentEvents/index.js.map +1 -1
  286. package/dist/providers/EditDepth/index.js +3 -3
  287. package/dist/providers/EditDepth/index.js.map +1 -1
  288. package/dist/providers/EntityVisibility/index.js +9 -10
  289. package/dist/providers/EntityVisibility/index.js.map +1 -1
  290. package/dist/providers/ListQuery/index.js +2 -2
  291. package/dist/providers/ListQuery/index.js.map +1 -1
  292. package/dist/providers/Locale/index.d.ts.map +1 -1
  293. package/dist/providers/Locale/index.js +65 -59
  294. package/dist/providers/Locale/index.js.map +1 -1
  295. package/dist/providers/Params/index.d.ts +16 -0
  296. package/dist/providers/Params/index.d.ts.map +1 -1
  297. package/dist/providers/Params/index.js +19 -4
  298. package/dist/providers/Params/index.js.map +1 -1
  299. package/dist/providers/RouteCache/index.js +6 -6
  300. package/dist/providers/RouteCache/index.js.map +1 -1
  301. package/dist/providers/SearchParams/index.d.ts +22 -4
  302. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  303. package/dist/providers/SearchParams/index.js +28 -14
  304. package/dist/providers/SearchParams/index.js.map +1 -1
  305. package/dist/providers/Selection/index.d.ts.map +1 -1
  306. package/dist/providers/Selection/index.js +7 -8
  307. package/dist/providers/Selection/index.js.map +1 -1
  308. package/dist/providers/Theme/index.js +7 -7
  309. package/dist/providers/Theme/index.js.map +1 -1
  310. package/dist/providers/Translation/index.js +12 -12
  311. package/dist/providers/Translation/index.js.map +1 -1
  312. package/dist/providers/UploadEdits/index.js +3 -3
  313. package/dist/providers/UploadEdits/index.js.map +1 -1
  314. package/dist/styles.css +1 -1
  315. package/dist/utilities/buildClientFieldSchemaMap/index.js +2 -0
  316. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  317. package/dist/utilities/buildFieldSchemaMap/index.js +2 -0
  318. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  319. package/dist/utilities/groupNavItems.js +3 -3
  320. package/dist/utilities/groupNavItems.js.map +1 -1
  321. package/dist/utilities/parseSearchParams.d.ts +4 -0
  322. package/dist/utilities/parseSearchParams.d.ts.map +1 -0
  323. package/dist/utilities/parseSearchParams.js +9 -0
  324. package/dist/utilities/parseSearchParams.js.map +1 -0
  325. package/dist/views/Edit/Auth/index.js +47 -47
  326. package/dist/views/Edit/Auth/index.js.map +1 -1
  327. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  328. package/dist/views/Edit/SetDocumentStepNav/index.js +16 -14
  329. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  330. package/dist/views/Edit/SetDocumentTitle/index.js +5 -5
  331. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  332. package/dist/views/List/index.js +20 -24
  333. package/dist/views/List/index.js.map +1 -1
  334. package/package.json +16 -17
  335. package/dist/exports/client/CodeEditor-5MCGR4GL.js +0 -26
  336. package/dist/exports/client/chunk-4SO5UCQD.js +0 -14
  337. package/dist/exports/client/chunk-4SO5UCQD.js.map +0 -8
  338. package/dist/exports/client/chunk-5LUHGAPX.js +0 -30
  339. package/dist/exports/client/chunk-5LUHGAPX.js.map +0 -8
  340. /package/dist/exports/client/{DatePicker-QST7QHAX.js.map → CodeEditor-RZ32B2QF.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","_err","index","currentFormsData","type","map","form","errorCount","files","isLoading","key","count","overrides","currentForms","newDocs","total","req","status","doc","push","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","filter","successCount","Math","max","success","acc","_jsxs","Provider","_jsx","animationDuration","overlayType","show","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, forms, onSuccess, t, closeModal, drawerSlug],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useConfig","useLocale","useServerFunctions","useTranslation","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","createThumbnail","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","thumbnailUrls","totalErrorCount","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","formsCount","length","thumbnailUrlsRef","processedFiles","Set","renderedThumbnails","setRenderedThumbnails","useEffect","newThumbnails","i","file","formState","value","has","add","thumbnailUrl","setTimeout","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","onSuccess","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","_err","index","currentFormsData","type","map","form","errorCount","files","isLoading","key","count","overrides","currentForms","newDocs","total","req","status","doc","push","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","Array","isArray","data","forEach","dataError","path","error","_","remainingForms","filter","successCount","Math","max","success","acc","_jsxs","Provider","_jsx","animationDuration","overlayType","show","useFormsManager","useContext"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Data, DocumentSlots, FormState, SanitizedDocumentPermissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { createThumbnail } from '../../Thumbnail/createThumbnail.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly thumbnailUrls: string[]\n readonly totalErrorCount?: number\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n thumbnailUrls: [],\n totalErrorCount: 0,\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n const formsCount = forms.length\n\n const thumbnailUrlsRef = React.useRef<string[]>([])\n const processedFiles = React.useRef(new Set()) // Track already-processed files\n const [renderedThumbnails, setRenderedThumbnails] = React.useState<string[]>([])\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n ;(async () => {\n const newThumbnails = [...thumbnailUrlsRef.current]\n\n for (let i = 0; i < formsCount; i++) {\n const file = formsRef.current[i].formState.file.value as File\n\n // Skip if already processed\n if (processedFiles.current.has(file) || !file) {\n continue\n }\n processedFiles.current.add(file)\n\n // Generate thumbnail and update ref\n const thumbnailUrl = await createThumbnail(file)\n newThumbnails[i] = thumbnailUrl\n thumbnailUrlsRef.current = newThumbnails\n\n // Trigger re-render in batches\n setRenderedThumbnails([...newThumbnails])\n await new Promise((resolve) => setTimeout(resolve, 100))\n }\n })()\n }, [formsCount])\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug, initialFiles, onSuccess } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formState: currentFormsData,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({ type: 'ADD_FORMS', files, initialState: initialStateRef.current })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay],\n )\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formState: currentFormsData,\n }\n const newDocs = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const req = await fetch(actionURL, {\n body: createFormData(form.formState, overrides),\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push(json.doc)\n }\n\n // should expose some sort of helper for this\n if (json?.errors?.length) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = currentForms.filter(({ errorCount }) => errorCount > 0)\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n },\n [actionURL, activeIndex, forms, onSuccess, t, closeModal, drawerSlug],\n )\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (hasInitializedState && initialFiles && !hasInitializedWithFiles.current) {\n void addFiles(initialFiles)\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n addFiles,\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n ])\n\n return (\n <Context.Provider\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n thumbnailUrls: renderedThumbnails,\n totalErrorCount,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context.Provider>\n )\n}\n\nexport function useFormsManager() {\n return React.useContext(Context)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -152,7 +152,7 @@ export function BulkUploadProvider(t0) {
152
152
  t4 = $[5];
153
153
  }
154
154
  let t5;
155
- if ($[6] !== collection || $[7] !== drawerSlug || $[8] !== initialFiles || $[9] !== maxFiles || $[10] !== t3 || $[11] !== t4 || $[12] !== children) {
155
+ if ($[6] !== children || $[7] !== collection || $[8] !== drawerSlug || $[9] !== initialFiles || $[10] !== maxFiles || $[11] !== t3 || $[12] !== t4) {
156
156
  t5 = _jsx(Context.Provider, {
157
157
  value: {
158
158
  collectionSlug: collection,
@@ -171,13 +171,13 @@ export function BulkUploadProvider(t0) {
171
171
  children: [children, _jsx(BulkUploadDrawer, {})]
172
172
  })
173
173
  });
174
- $[6] = collection;
175
- $[7] = drawerSlug;
176
- $[8] = initialFiles;
177
- $[9] = maxFiles;
178
- $[10] = t3;
179
- $[11] = t4;
180
- $[12] = children;
174
+ $[6] = children;
175
+ $[7] = collection;
176
+ $[8] = drawerSlug;
177
+ $[9] = initialFiles;
178
+ $[10] = maxFiles;
179
+ $[11] = t3;
180
+ $[12] = t4;
181
181
  $[13] = t5;
182
182
  } else {
183
183
  t5 = $[13];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","config","t","uploadCollection","collections","find","col","slug","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","children","Context","createContext","initialFiles","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","t3","t4","docIDs","errorCount","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { config } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = config.collections.find((col) => col.slug === collectionSlug)\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","config","t","uploadCollection","collections","find","col","slug","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","children","Context","createContext","initialFiles","maxFiles","onSuccess","setCollectionSlug","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","t3","t4","docIDs","errorCount","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { config } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = config.collections.find((col) => col.slug === collectionSlug)\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
@@ -10,12 +10,12 @@ import './index.scss';
10
10
  const Editor = EditorImport.default || EditorImport;
11
11
  const baseClass = 'code-editor';
12
12
  const CodeEditor = props => {
13
- const $ = _c(22);
14
- let rest;
15
- let readOnly;
13
+ const $ = _c(21);
16
14
  let className;
17
- let options;
18
15
  let maxHeight;
16
+ let options;
17
+ let readOnly;
18
+ let rest;
19
19
  if ($[0] !== props) {
20
20
  ({
21
21
  className,
@@ -25,17 +25,17 @@ const CodeEditor = props => {
25
25
  ...rest
26
26
  } = props);
27
27
  $[0] = props;
28
- $[1] = rest;
29
- $[2] = readOnly;
30
- $[3] = className;
31
- $[4] = options;
32
- $[5] = maxHeight;
28
+ $[1] = className;
29
+ $[2] = maxHeight;
30
+ $[3] = options;
31
+ $[4] = readOnly;
32
+ $[5] = rest;
33
33
  } else {
34
- rest = $[1];
35
- readOnly = $[2];
36
- className = $[3];
37
- options = $[4];
38
- maxHeight = $[5];
34
+ className = $[1];
35
+ maxHeight = $[2];
36
+ options = $[3];
37
+ readOnly = $[4];
38
+ rest = $[5];
39
39
  }
40
40
  const [dynamicHeight, setDynamicHeight] = useState(20);
41
41
  const {
@@ -55,28 +55,24 @@ const CodeEditor = props => {
55
55
  }
56
56
  const classes = t2.join(" ");
57
57
  let t3;
58
- if ($[10] !== dynamicHeight || $[11] !== readOnly || $[12] !== options || $[13] !== theme || $[14] !== maxHeight || $[15] !== rest || $[16] !== classes) {
58
+ if ($[10] !== classes || $[11] !== dynamicHeight || $[12] !== maxHeight || $[13] !== options || $[14] !== readOnly || $[15] !== rest || $[16] !== theme) {
59
59
  let t4;
60
- if ($[18] !== rest.onChange) {
60
+ let t5;
61
+ if ($[18] !== rest) {
61
62
  t4 = (value, ev) => {
62
63
  rest.onChange?.(value, ev);
63
64
  setDynamicHeight(Math.max(56, value.split("\n").length * 18 + 2));
64
65
  };
65
- $[18] = rest.onChange;
66
- $[19] = t4;
67
- } else {
68
- t4 = $[19];
69
- }
70
- let t5;
71
- if ($[20] !== rest.onMount) {
72
66
  t5 = (editor, monaco) => {
73
67
  rest.onMount?.(editor, monaco);
74
68
  setDynamicHeight(Math.max(56, editor.getValue().split("\n").length * 18 + 2));
75
69
  };
76
- $[20] = rest.onMount;
77
- $[21] = t5;
70
+ $[18] = rest;
71
+ $[19] = t4;
72
+ $[20] = t5;
78
73
  } else {
79
- t5 = $[21];
74
+ t4 = $[19];
75
+ t5 = $[20];
80
76
  }
81
77
  t3 = _jsx(Editor, {
82
78
  className: classes,
@@ -105,13 +101,13 @@ const CodeEditor = props => {
105
101
  onChange: t4,
106
102
  onMount: t5
107
103
  });
108
- $[10] = dynamicHeight;
109
- $[11] = readOnly;
110
- $[12] = options;
111
- $[13] = theme;
112
- $[14] = maxHeight;
104
+ $[10] = classes;
105
+ $[11] = dynamicHeight;
106
+ $[12] = maxHeight;
107
+ $[13] = options;
108
+ $[14] = readOnly;
113
109
  $[15] = rest;
114
- $[16] = classes;
110
+ $[16] = theme;
115
111
  $[17] = t3;
116
112
  } else {
117
113
  t3 = $[17];
@@ -1 +1 @@
1
- {"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","rest","readOnly","className","options","maxHeight","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","onChange","value","ev","Math","max","split","length","t5","onMount","editor","monaco","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = (EditorImport.default || EditorImport) as unknown as typeof EditorImport.default\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, options, readOnly, ...rest } = props\n const [dynamicHeight, setDynamicHeight] = useState(20)\n const { theme } = useTheme()\n\n const MIN_HEIGHT = 56 // equivalent to 3 lines\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2))\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","options","readOnly","rest","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","t5","value","ev","onChange","Math","max","split","length","editor","monaco","onMount","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = (EditorImport.default || EditorImport) as unknown as typeof EditorImport.default\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, options, readOnly, ...rest } = props\n const [dynamicHeight, setDynamicHeight] = useState(20)\n const { theme } = useTheme()\n\n const MIN_HEIGHT = 56 // equivalent to 3 lines\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2))\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
@@ -35,15 +35,15 @@ export const Collapsible = t0 => {
35
35
  } = useTranslation();
36
36
  const isCollapsed = typeof collapsedFromProps === "boolean" ? collapsedFromProps : collapsedLocal;
37
37
  let t2;
38
- if ($[0] !== onToggle || $[1] !== isCollapsed) {
38
+ if ($[0] !== isCollapsed || $[1] !== onToggle) {
39
39
  t2 = () => {
40
40
  if (typeof onToggle === "function") {
41
41
  onToggle(!isCollapsed);
42
42
  }
43
43
  setCollapsedLocal(!isCollapsed);
44
44
  };
45
- $[0] = onToggle;
46
- $[1] = isCollapsed;
45
+ $[0] = isCollapsed;
46
+ $[1] = onToggle;
47
47
  $[2] = t2;
48
48
  } else {
49
49
  t2 = $[2];
@@ -90,7 +90,7 @@ export const Collapsible = t0 => {
90
90
  }
91
91
  const t14 = t13.join(" ");
92
92
  let t15;
93
- if ($[14] !== t || $[15] !== t14 || $[16] !== toggleCollapsible || $[17] !== dragHandleProps || $[18] !== header || $[19] !== actions || $[20] !== isCollapsed || $[21] !== children || $[22] !== t9) {
93
+ if ($[14] !== actions || $[15] !== children || $[16] !== dragHandleProps || $[17] !== header || $[18] !== isCollapsed || $[19] !== t || $[20] !== t14 || $[21] !== t9 || $[22] !== toggleCollapsible) {
94
94
  let t16;
95
95
  if ($[24] !== dragHandleProps) {
96
96
  t16 = dragHandleProps && _jsx("div", {
@@ -144,15 +144,15 @@ export const Collapsible = t0 => {
144
144
  })]
145
145
  })
146
146
  });
147
- $[14] = t;
148
- $[15] = t14;
149
- $[16] = toggleCollapsible;
150
- $[17] = dragHandleProps;
151
- $[18] = header;
152
- $[19] = actions;
153
- $[20] = isCollapsed;
154
- $[21] = children;
155
- $[22] = t9;
147
+ $[14] = actions;
148
+ $[15] = children;
149
+ $[16] = dragHandleProps;
150
+ $[17] = header;
151
+ $[18] = isCollapsed;
152
+ $[19] = t;
153
+ $[20] = t14;
154
+ $[21] = t9;
155
+ $[22] = toggleCollapsible;
156
156
  $[23] = t15;
157
157
  } else {
158
158
  t15 = $[23];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","DragHandleIcon","useTranslation","AnimateHeight","CollapsibleProvider","useCollapsible","baseClass","Collapsible","t0","$","actions","children","className","collapsibleStyle","t1","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","undefined","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","t2","toggleCollapsible","t3","t4","t5","t6","t7","t8","filter","t9","join","t10","t11","Symbol","for","t12","t13","t14","t15","t16","_jsx","attributes","listeners","_jsxs","toggle","onMouseEnter","onMouseLeave","onClick","type","direction","height"],"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') {\n void onToggle(!isCollapsed)\n }\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n {header ? (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header}\n </div>\n ) : null}\n <div className={`${baseClass}__actions-wrap`}>\n {actions ? <div className={`${baseClass}__actions`}>{actions}</div> : null}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useState","ChevronIcon","DragHandleIcon","useTranslation","AnimateHeight","CollapsibleProvider","useCollapsible","baseClass","Collapsible","t0","$","actions","children","className","collapsibleStyle","t1","dragHandleProps","header","initCollapsed","isCollapsed","collapsedFromProps","onToggle","undefined","collapsedLocal","setCollapsedLocal","Boolean","hoveringToggle","setHoveringToggle","isWithinCollapsible","t","t2","toggleCollapsible","t3","t4","t5","t6","t7","t8","filter","t9","join","t10","t11","Symbol","for","t12","t13","t14","t15","t16","_jsx","attributes","listeners","_jsxs","toggle","onMouseEnter","onMouseLeave","onClick","type","direction","height"],"sources":["../../../src/elements/Collapsible/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport type { DragHandleProps } from '../DraggableSortable/DraggableSortableItem/types.js'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { DragHandleIcon } from '../../icons/DragHandle/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\nimport { AnimateHeight } from '../AnimateHeight/index.js'\nimport { CollapsibleProvider, useCollapsible } from './provider.js'\n\nconst baseClass = 'collapsible'\n\nexport { CollapsibleProvider, useCollapsible }\n\nexport type Props = {\n actions?: React.ReactNode\n children: React.ReactNode\n className?: string\n collapsibleStyle?: 'default' | 'error'\n dragHandleProps?: DragHandleProps\n header?: React.ReactNode\n initCollapsed?: boolean\n isCollapsed?: boolean\n onToggle?: (collapsed: boolean) => Promise<void> | void\n}\n\nexport const Collapsible: React.FC<Props> = ({\n actions,\n children,\n className,\n collapsibleStyle = 'default',\n dragHandleProps,\n header,\n initCollapsed,\n isCollapsed: collapsedFromProps,\n onToggle,\n}) => {\n const [collapsedLocal, setCollapsedLocal] = useState(Boolean(initCollapsed))\n const [hoveringToggle, setHoveringToggle] = useState(false)\n const { isWithinCollapsible } = useCollapsible()\n const { t } = useTranslation()\n\n const isCollapsed = typeof collapsedFromProps === 'boolean' ? collapsedFromProps : collapsedLocal\n\n const toggleCollapsible = React.useCallback(() => {\n if (typeof onToggle === 'function') {\n void onToggle(!isCollapsed)\n }\n setCollapsedLocal(!isCollapsed)\n }, [onToggle, isCollapsed])\n\n return (\n <div\n className={[\n baseClass,\n className,\n dragHandleProps && `${baseClass}--has-drag-handle`,\n isCollapsed && `${baseClass}--collapsed`,\n isWithinCollapsible && `${baseClass}--nested`,\n hoveringToggle && `${baseClass}--hovered`,\n `${baseClass}--style-${collapsibleStyle}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <CollapsibleProvider isCollapsed={isCollapsed} toggle={toggleCollapsible}>\n <div\n className={`${baseClass}__toggle-wrap`}\n onMouseEnter={() => setHoveringToggle(true)}\n onMouseLeave={() => setHoveringToggle(false)}\n >\n <button\n className={[\n `${baseClass}__toggle`,\n `${baseClass}__toggle--${isCollapsed ? 'collapsed' : 'open'}`,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={toggleCollapsible}\n type=\"button\"\n >\n <span>{t('fields:toggleBlock')}</span>\n </button>\n {dragHandleProps && (\n <div\n className={`${baseClass}__drag`}\n {...dragHandleProps.attributes}\n {...dragHandleProps.listeners}\n >\n <DragHandleIcon />\n </div>\n )}\n {header ? (\n <div\n className={[\n `${baseClass}__header-wrap`,\n dragHandleProps && `${baseClass}__header-wrap--has-drag-handle`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {header}\n </div>\n ) : null}\n <div className={`${baseClass}__actions-wrap`}>\n {actions ? <div className={`${baseClass}__actions`}>{actions}</div> : null}\n <div className={`${baseClass}__indicator`}>\n <ChevronIcon direction={!isCollapsed ? 'up' : undefined} />\n </div>\n </div>\n </div>\n <AnimateHeight height={isCollapsed ? 0 : 'auto'}>\n <div className={`${baseClass}__content`}>{children}</div>\n </AnimateHeight>\n </CollapsibleProvider>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ export const ColumnSelector = t0 => {
33
33
  return null;
34
34
  }
35
35
  let t1;
36
- if ($[0] !== columns || $[1] !== moveColumn || $[2] !== toggleColumn || $[3] !== collectionSlug || $[4] !== editDepth || $[5] !== uuid) {
36
+ if ($[0] !== collectionSlug || $[1] !== columns || $[2] !== editDepth || $[3] !== moveColumn || $[4] !== toggleColumn || $[5] !== uuid) {
37
37
  const filteredColumns = filterColumnFields(columns);
38
38
  let t2;
39
39
  if ($[7] !== moveColumn) {
@@ -53,7 +53,7 @@ export const ColumnSelector = t0 => {
53
53
  t2 = $[8];
54
54
  }
55
55
  let t3;
56
- if ($[9] !== toggleColumn || $[10] !== collectionSlug || $[11] !== editDepth || $[12] !== uuid) {
56
+ if ($[9] !== collectionSlug || $[10] !== editDepth || $[11] !== toggleColumn || $[12] !== uuid) {
57
57
  t3 = (col_0, i) => {
58
58
  if (!col_0) {
59
59
  return null;
@@ -82,9 +82,9 @@ export const ColumnSelector = t0 => {
82
82
  })
83
83
  }, `${collectionSlug}-${field && "name" in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ""}${uuid}`);
84
84
  };
85
- $[9] = toggleColumn;
86
- $[10] = collectionSlug;
87
- $[11] = editDepth;
85
+ $[9] = collectionSlug;
86
+ $[10] = editDepth;
87
+ $[11] = toggleColumn;
88
88
  $[12] = uuid;
89
89
  $[13] = t3;
90
90
  } else {
@@ -96,11 +96,11 @@ export const ColumnSelector = t0 => {
96
96
  onDragEnd: t2,
97
97
  children: filteredColumns.map(t3)
98
98
  });
99
- $[0] = columns;
100
- $[1] = moveColumn;
101
- $[2] = toggleColumn;
102
- $[3] = collectionSlug;
103
- $[4] = editDepth;
99
+ $[0] = collectionSlug;
100
+ $[1] = columns;
101
+ $[2] = editDepth;
102
+ $[3] = moveColumn;
103
+ $[4] = toggleColumn;
104
104
  $[5] = uuid;
105
105
  $[6] = t1;
106
106
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useId","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","filterColumnFields","columns","filter","field","admin","disableListColumn","ColumnSelector","t0","$","collectionSlug","moveColumn","toggleColumn","uuid","editDepth","t1","filteredColumns","t2","t3","moveFromIndex","moveToIndex","fromIndex","toIndex","col_0","i","col","accessor","active","CustomLabel","undefined","_jsx","alignIcon","className","Boolean","join","draggable","icon","id","onClick","children","label","unstyled","name","ids","map","_temp","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst filterColumnFields = (columns: Column[]): Column[] => {\n return columns.filter((c) => {\n return !c?.field?.admin?.disableListColumn\n })\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n const filteredColumns = filterColumnFields(columns)\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n if (!col) {\n return null\n }\n\n const { accessor, active, field } = col\n\n if (\n col.accessor === '_select' ||\n !field ||\n col.CustomLabel === null ||\n (col.CustomLabel === undefined && !('label' in field))\n ) {\n return null\n }\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? <FieldLabel label={'label' in field && field.label} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useId","FieldLabel","PlusIcon","XIcon","useEditDepth","DraggableSortable","Pill","useTableColumns","baseClass","filterColumnFields","columns","filter","field","admin","disableListColumn","ColumnSelector","t0","$","collectionSlug","moveColumn","toggleColumn","uuid","editDepth","t1","filteredColumns","t2","t3","moveFromIndex","moveToIndex","fromIndex","toIndex","col_0","i","col","accessor","active","CustomLabel","undefined","_jsx","alignIcon","className","Boolean","join","draggable","icon","id","onClick","children","label","unstyled","name","ids","map","_temp","onDragEnd"],"sources":["../../../src/elements/ColumnSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { useTableColumns } from '../TableColumns/index.js'\nimport './index.scss'\n\nconst baseClass = 'column-selector'\n\nexport type Props = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\nconst filterColumnFields = (columns: Column[]): Column[] => {\n return columns.filter((c) => {\n return !c?.field?.admin?.disableListColumn\n })\n}\n\nexport const ColumnSelector: React.FC<Props> = ({ collectionSlug }) => {\n const { columns, moveColumn, toggleColumn } = useTableColumns()\n\n const uuid = useId()\n const editDepth = useEditDepth()\n\n if (!columns) {\n return null\n }\n\n const filteredColumns = filterColumnFields(columns)\n\n return (\n <DraggableSortable\n className={baseClass}\n ids={filteredColumns.map((col) => col?.accessor)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n void moveColumn({\n fromIndex: moveFromIndex,\n toIndex: moveToIndex,\n })\n }}\n >\n {filteredColumns.map((col, i) => {\n if (!col) {\n return null\n }\n\n const { accessor, active, field } = col\n\n if (\n col.accessor === '_select' ||\n !field ||\n col.CustomLabel === null ||\n (col.CustomLabel === undefined && !('label' in field))\n ) {\n return null\n }\n\n return (\n <Pill\n alignIcon=\"left\"\n aria-checked={active}\n className={[`${baseClass}__column`, active && `${baseClass}__column--active`]\n .filter(Boolean)\n .join(' ')}\n draggable\n icon={active ? <XIcon /> : <PlusIcon />}\n id={accessor}\n key={`${collectionSlug}-${field && 'name' in field ? field?.name : i}${editDepth ? `-${editDepth}-` : ''}${uuid}`}\n onClick={() => {\n void toggleColumn(accessor)\n }}\n >\n {col.CustomLabel ?? <FieldLabel label={'label' in field && field.label} unstyled />}\n </Pill>\n )\n })}\n </DraggableSortable>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAMvC,OAAO,gBAAgB,CAAA;AACvB,OAAO,cAAc,CAAA;AAIrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8G/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAKvC,OAAO,gBAAgB,CAAA;AACvB,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuH/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
@@ -8,9 +8,9 @@ const ReactDatePicker = ReactDatePickerDefaultImport.default || ReactDatePickerD
8
8
  import { CalendarIcon } from '../../icons/Calendar/index.js';
9
9
  import { XIcon } from '../../icons/X/index.js';
10
10
  import { useTranslation } from '../../providers/Translation/index.js';
11
- import { getFormattedLocale } from './getFormattedLocale.js';
12
11
  import './library.scss';
13
12
  import './index.scss';
13
+ import { getFormattedLocale } from './getFormattedLocale.js';
14
14
  const baseClass = 'date-time-picker';
15
15
  const DatePicker = props => {
16
16
  const $ = _c(11);
@@ -60,7 +60,7 @@ const DatePicker = props => {
60
60
  }
61
61
  }
62
62
  let t4;
63
- if ($[0] !== pickerAppearance || $[1] !== onChangeFromProps) {
63
+ if ($[0] !== onChangeFromProps || $[1] !== pickerAppearance) {
64
64
  t4 = incomingDate => {
65
65
  const newDate = incomingDate;
66
66
  if (newDate instanceof Date && ["dayOnly", "default", "monthOnly"].includes(pickerAppearance)) {
@@ -71,8 +71,8 @@ const DatePicker = props => {
71
71
  onChangeFromProps(newDate);
72
72
  }
73
73
  };
74
- $[0] = pickerAppearance;
75
- $[1] = onChangeFromProps;
74
+ $[0] = onChangeFromProps;
75
+ $[1] = pickerAppearance;
76
76
  $[2] = t4;
77
77
  } else {
78
78
  t4 = $[2];