@payloadcms/ui 3.29.0-internal.d2c9ba5 → 3.29.0-internal.e4e913b

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 (356) hide show
  1. package/dist/elements/Autosave/index.js +1 -1
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +143 -127
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  8. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
  11. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +3 -3
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  15. package/dist/elements/BulkUpload/index.js +2 -4
  16. package/dist/elements/BulkUpload/index.js.map +1 -1
  17. package/dist/elements/Collapsible/provider.d.ts.map +1 -1
  18. package/dist/elements/Collapsible/provider.js +3 -5
  19. package/dist/elements/Collapsible/provider.js.map +1 -1
  20. package/dist/elements/DocumentControls/index.js +1 -1
  21. package/dist/elements/DocumentControls/index.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  23. package/dist/elements/DocumentDrawer/Provider.js +3 -3
  24. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentFields/index.js +1 -5
  27. package/dist/elements/DocumentFields/index.js.map +1 -1
  28. package/dist/elements/Drawer/index.d.ts.map +1 -1
  29. package/dist/elements/Drawer/index.js +3 -5
  30. package/dist/elements/Drawer/index.js.map +1 -1
  31. package/dist/elements/EditMany/DrawerContent.d.ts +3 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +122 -124
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/EditMany/index.js +7 -7
  36. package/dist/elements/EditMany/index.js.map +1 -1
  37. package/dist/elements/EditMany/index.scss +14 -3
  38. package/dist/elements/FieldSelect/index.d.ts +12 -7
  39. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  40. package/dist/elements/FieldSelect/index.js +34 -131
  41. package/dist/elements/FieldSelect/index.js.map +1 -1
  42. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +19 -0
  43. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -0
  44. package/dist/elements/FieldSelect/reduceFieldOptions.js +57 -0
  45. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -0
  46. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  47. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +2 -1
  48. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  49. package/dist/elements/ListDrawer/Provider.js +3 -3
  50. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  51. package/dist/elements/LoadingOverlay/index.js +3 -3
  52. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  53. package/dist/elements/Nav/context.d.ts.map +1 -1
  54. package/dist/elements/Nav/context.js +2 -4
  55. package/dist/elements/Nav/context.js.map +1 -1
  56. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +2 -1
  57. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  58. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +5 -2
  59. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  60. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  61. package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
  62. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  63. package/dist/elements/StepNav/context.d.ts.map +1 -1
  64. package/dist/elements/StepNav/context.js +3 -5
  65. package/dist/elements/StepNav/context.js.map +1 -1
  66. package/dist/elements/Table/DefaultCell/fields/Date/index.js +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/File/index.js +24 -1
  70. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  71. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  73. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  74. package/dist/elements/Table/DefaultCell/index.js +32 -25
  75. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  76. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  77. package/dist/elements/Table/RelationshipProvider/index.js +3 -5
  78. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  79. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  80. package/dist/elements/TableColumns/RenderDefaultCell/index.js +2 -4
  81. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  82. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  83. package/dist/elements/TableColumns/buildColumnState.js +8 -1
  84. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  85. package/dist/elements/TableColumns/context.d.ts.map +1 -1
  86. package/dist/elements/TableColumns/context.js +2 -2
  87. package/dist/elements/TableColumns/context.js.map +1 -1
  88. package/dist/elements/TableColumns/index.js +1 -1
  89. package/dist/elements/TableColumns/index.js.map +1 -1
  90. package/dist/elements/Thumbnail/index.js +25 -23
  91. package/dist/elements/Thumbnail/index.js.map +1 -1
  92. package/dist/elements/ThumbnailCard/index.js +1 -1
  93. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  94. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  95. package/dist/elements/Toasts/fieldErrors.js +2 -2
  96. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  97. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  98. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -0
  99. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  100. package/dist/elements/WhereBuilder/reduceFields.js +2 -2
  101. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
  102. package/dist/exports/client/{CodeEditor-TQ5ADFPC.js → CodeEditor-J4IKAVAK.js} +2 -2
  103. package/dist/exports/client/{DatePicker-HHQ6TPOW.js → DatePicker-DMHV2M2L.js} +2 -2
  104. package/dist/exports/client/{chunk-IMEQ6NKQ.js → chunk-3AA2TJQ5.js} +2 -2
  105. package/dist/exports/client/{chunk-IMEQ6NKQ.js.map → chunk-3AA2TJQ5.js.map} +3 -3
  106. package/dist/exports/client/{chunk-LMYT7O7U.js → chunk-PKQOCWZD.js} +2 -2
  107. package/dist/exports/client/{chunk-LMYT7O7U.js.map → chunk-PKQOCWZD.js.map} +3 -3
  108. package/dist/exports/client/index.js +11 -11
  109. package/dist/exports/client/index.js.map +4 -4
  110. package/dist/exports/shared/index.d.ts +2 -2
  111. package/dist/exports/shared/index.d.ts.map +1 -1
  112. package/dist/exports/shared/index.js +2 -2
  113. package/dist/exports/shared/index.js.map +4 -4
  114. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  115. package/dist/fields/Array/ArrayRow.js +1 -1
  116. package/dist/fields/Array/ArrayRow.js.map +1 -1
  117. package/dist/fields/Array/index.d.ts.map +1 -1
  118. package/dist/fields/Array/index.js +4 -3
  119. package/dist/fields/Array/index.js.map +1 -1
  120. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  121. package/dist/fields/Blocks/BlockRow.js +26 -20
  122. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  123. package/dist/fields/Blocks/index.d.ts.map +1 -1
  124. package/dist/fields/Blocks/index.js +5 -4
  125. package/dist/fields/Blocks/index.js.map +1 -1
  126. package/dist/fields/Checkbox/index.d.ts +1 -1
  127. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  128. package/dist/fields/Checkbox/index.js +4 -3
  129. package/dist/fields/Checkbox/index.js.map +1 -1
  130. package/dist/fields/Code/index.d.ts.map +1 -1
  131. package/dist/fields/Code/index.js +4 -3
  132. package/dist/fields/Code/index.js.map +1 -1
  133. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  134. package/dist/fields/Collapsible/index.js +3 -2
  135. package/dist/fields/Collapsible/index.js.map +1 -1
  136. package/dist/fields/ConfirmPassword/index.js +13 -11
  137. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  138. package/dist/fields/DateTime/index.d.ts.map +1 -1
  139. package/dist/fields/DateTime/index.js +5 -4
  140. package/dist/fields/DateTime/index.js.map +1 -1
  141. package/dist/fields/Email/index.d.ts.map +1 -1
  142. package/dist/fields/Email/index.js +3 -2
  143. package/dist/fields/Email/index.js.map +1 -1
  144. package/dist/fields/Group/index.d.ts.map +1 -1
  145. package/dist/fields/Group/index.js.map +1 -1
  146. package/dist/fields/Group/index.scss +12 -6
  147. package/dist/fields/Group/provider.d.ts.map +1 -1
  148. package/dist/fields/Group/provider.js +3 -5
  149. package/dist/fields/Group/provider.js.map +1 -1
  150. package/dist/fields/JSON/index.d.ts.map +1 -1
  151. package/dist/fields/JSON/index.js +5 -4
  152. package/dist/fields/JSON/index.js.map +1 -1
  153. package/dist/fields/Number/index.d.ts.map +1 -1
  154. package/dist/fields/Number/index.js +6 -5
  155. package/dist/fields/Number/index.js.map +1 -1
  156. package/dist/fields/Password/index.d.ts.map +1 -1
  157. package/dist/fields/Password/index.js +2 -4
  158. package/dist/fields/Password/index.js.map +1 -1
  159. package/dist/fields/Point/index.d.ts.map +1 -1
  160. package/dist/fields/Point/index.js +4 -3
  161. package/dist/fields/Point/index.js.map +1 -1
  162. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  163. package/dist/fields/RadioGroup/index.js +4 -3
  164. package/dist/fields/RadioGroup/index.js.map +1 -1
  165. package/dist/fields/Relationship/index.d.ts.map +1 -1
  166. package/dist/fields/Relationship/index.js +5 -4
  167. package/dist/fields/Relationship/index.js.map +1 -1
  168. package/dist/fields/Relationship/optionsReducer.js +1 -1
  169. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  170. package/dist/fields/Row/provider.d.ts.map +1 -1
  171. package/dist/fields/Row/provider.js +3 -5
  172. package/dist/fields/Row/provider.js.map +1 -1
  173. package/dist/fields/Select/index.d.ts.map +1 -1
  174. package/dist/fields/Select/index.js +4 -3
  175. package/dist/fields/Select/index.js.map +1 -1
  176. package/dist/fields/Tabs/Tab/index.d.ts +1 -0
  177. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  178. package/dist/fields/Tabs/Tab/index.js +29 -25
  179. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  180. package/dist/fields/Tabs/Tab/index.scss +4 -0
  181. package/dist/fields/Tabs/index.d.ts +1 -1
  182. package/dist/fields/Tabs/index.d.ts.map +1 -1
  183. package/dist/fields/Tabs/index.js +285 -194
  184. package/dist/fields/Tabs/index.js.map +1 -1
  185. package/dist/fields/Tabs/index.scss +8 -0
  186. package/dist/fields/Tabs/provider.d.ts.map +1 -1
  187. package/dist/fields/Tabs/provider.js +3 -5
  188. package/dist/fields/Tabs/provider.js.map +1 -1
  189. package/dist/fields/Text/index.d.ts.map +1 -1
  190. package/dist/fields/Text/index.js +4 -3
  191. package/dist/fields/Text/index.js.map +1 -1
  192. package/dist/fields/Textarea/index.d.ts.map +1 -1
  193. package/dist/fields/Textarea/index.js +2 -1
  194. package/dist/fields/Textarea/index.js.map +1 -1
  195. package/dist/fields/Upload/index.d.ts.map +1 -1
  196. package/dist/fields/Upload/index.js +2 -1
  197. package/dist/fields/Upload/index.js.map +1 -1
  198. package/dist/forms/Form/context.d.ts.map +1 -1
  199. package/dist/forms/Form/context.js +9 -25
  200. package/dist/forms/Form/context.js.map +1 -1
  201. package/dist/forms/Form/fieldReducer.js +1 -1
  202. package/dist/forms/Form/fieldReducer.js.map +1 -1
  203. package/dist/forms/Form/index.d.ts.map +1 -1
  204. package/dist/forms/Form/index.js +8 -8
  205. package/dist/forms/Form/index.js.map +1 -1
  206. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  207. package/dist/forms/RenderFields/index.js +1 -1
  208. package/dist/forms/RenderFields/index.js.map +1 -1
  209. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  210. package/dist/forms/RowLabel/Context/index.js +2 -2
  211. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  212. package/dist/forms/RowLabel/index.d.ts.map +1 -1
  213. package/dist/forms/RowLabel/index.js +2 -2
  214. package/dist/forms/RowLabel/index.js.map +1 -1
  215. package/dist/forms/RowLabel/types.d.ts +1 -1
  216. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  217. package/dist/forms/RowLabel/types.js.map +1 -1
  218. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +3 -1
  219. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  220. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +45 -1
  221. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  222. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +4 -2
  223. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  224. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +4 -0
  225. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  226. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +4 -2
  227. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  228. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +4 -0
  229. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  230. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +4 -2
  231. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  232. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +41 -2
  233. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  234. package/dist/forms/fieldSchemasToFormState/index.d.ts +4 -2
  235. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  236. package/dist/forms/fieldSchemasToFormState/index.js +6 -0
  237. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  238. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +4 -2
  239. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  240. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  241. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  242. package/dist/forms/useField/index.d.ts.map +1 -1
  243. package/dist/forms/useField/index.js +70 -67
  244. package/dist/forms/useField/index.js.map +1 -1
  245. package/dist/forms/useField/types.d.ts +1 -0
  246. package/dist/forms/useField/types.d.ts.map +1 -1
  247. package/dist/forms/useField/types.js.map +1 -1
  248. package/dist/hooks/useQueues.js +3 -3
  249. package/dist/hooks/useQueues.js.map +1 -1
  250. package/dist/providers/Actions/index.d.ts.map +1 -1
  251. package/dist/providers/Actions/index.js +3 -5
  252. package/dist/providers/Actions/index.js.map +1 -1
  253. package/dist/providers/Auth/index.d.ts.map +1 -1
  254. package/dist/providers/Auth/index.js +3 -5
  255. package/dist/providers/Auth/index.js.map +1 -1
  256. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  257. package/dist/providers/ClientFunction/index.js +4 -4
  258. package/dist/providers/ClientFunction/index.js.map +1 -1
  259. package/dist/providers/Config/index.d.ts.map +1 -1
  260. package/dist/providers/Config/index.js +3 -5
  261. package/dist/providers/Config/index.js.map +1 -1
  262. package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
  263. package/dist/providers/DocumentEvents/index.js +3 -5
  264. package/dist/providers/DocumentEvents/index.js.map +1 -1
  265. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  266. package/dist/providers/DocumentInfo/index.js +4 -6
  267. package/dist/providers/DocumentInfo/index.js.map +1 -1
  268. package/dist/providers/EditDepth/index.d.ts.map +1 -1
  269. package/dist/providers/EditDepth/index.js +3 -5
  270. package/dist/providers/EditDepth/index.js.map +1 -1
  271. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  272. package/dist/providers/EntityVisibility/index.js +3 -5
  273. package/dist/providers/EntityVisibility/index.js.map +1 -1
  274. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  275. package/dist/providers/ListQuery/context.js +2 -2
  276. package/dist/providers/ListQuery/context.js.map +1 -1
  277. package/dist/providers/ListQuery/index.js +1 -1
  278. package/dist/providers/ListQuery/index.js.map +1 -1
  279. package/dist/providers/Locale/index.d.ts.map +1 -1
  280. package/dist/providers/Locale/index.js +5 -9
  281. package/dist/providers/Locale/index.js.map +1 -1
  282. package/dist/providers/Operation/index.d.ts.map +1 -1
  283. package/dist/providers/Operation/index.js +3 -5
  284. package/dist/providers/Operation/index.js.map +1 -1
  285. package/dist/providers/Params/index.d.ts.map +1 -1
  286. package/dist/providers/Params/index.js +3 -5
  287. package/dist/providers/Params/index.js.map +1 -1
  288. package/dist/providers/Preferences/index.d.ts.map +1 -1
  289. package/dist/providers/Preferences/index.js +3 -5
  290. package/dist/providers/Preferences/index.js.map +1 -1
  291. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  292. package/dist/providers/RouteCache/index.js +3 -5
  293. package/dist/providers/RouteCache/index.js.map +1 -1
  294. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  295. package/dist/providers/RouteTransition/index.js +2 -4
  296. package/dist/providers/RouteTransition/index.js.map +1 -1
  297. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  298. package/dist/providers/SearchParams/index.js +3 -5
  299. package/dist/providers/SearchParams/index.js.map +1 -1
  300. package/dist/providers/Selection/index.d.ts.map +1 -1
  301. package/dist/providers/Selection/index.js +3 -5
  302. package/dist/providers/Selection/index.js.map +1 -1
  303. package/dist/providers/ServerFunctions/index.js +2 -2
  304. package/dist/providers/ServerFunctions/index.js.map +1 -1
  305. package/dist/providers/Theme/index.d.ts.map +1 -1
  306. package/dist/providers/Theme/index.js +3 -5
  307. package/dist/providers/Theme/index.js.map +1 -1
  308. package/dist/providers/Translation/index.d.ts.map +1 -1
  309. package/dist/providers/Translation/index.js +3 -5
  310. package/dist/providers/Translation/index.js.map +1 -1
  311. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  312. package/dist/providers/UploadEdits/index.js +2 -4
  313. package/dist/providers/UploadEdits/index.js.map +1 -1
  314. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  315. package/dist/providers/UploadHandlers/index.js +3 -3
  316. package/dist/providers/UploadHandlers/index.js.map +1 -1
  317. package/dist/styles.css +1 -1
  318. package/dist/utilities/buildFormState.d.ts.map +1 -1
  319. package/dist/utilities/buildFormState.js +5 -1
  320. package/dist/utilities/buildFormState.js.map +1 -1
  321. package/dist/utilities/combineFieldLabel.d.ts +7 -0
  322. package/dist/utilities/combineFieldLabel.d.ts.map +1 -0
  323. package/dist/utilities/combineFieldLabel.js +31 -0
  324. package/dist/utilities/combineFieldLabel.js.map +1 -0
  325. package/dist/utilities/{formatDate.d.ts → formatDocTitle/formatDateTitle.d.ts} +1 -1
  326. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -0
  327. package/dist/utilities/{formatDate.js → formatDocTitle/formatDateTitle.js} +1 -1
  328. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -0
  329. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts +19 -0
  330. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts.map +1 -0
  331. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +19 -0
  332. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -0
  333. package/dist/utilities/{formatDocTitle.d.ts → formatDocTitle/index.d.ts} +2 -2
  334. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -0
  335. package/dist/utilities/{formatDocTitle.js → formatDocTitle/index.js} +11 -3
  336. package/dist/utilities/formatDocTitle/index.js.map +1 -0
  337. package/dist/utilities/getDisplayedFieldValue.d.ts +13 -0
  338. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -0
  339. package/dist/utilities/getDisplayedFieldValue.js +28 -0
  340. package/dist/utilities/getDisplayedFieldValue.js.map +1 -0
  341. package/dist/utilities/hasOptionLabelJSXElement.d.ts +3 -0
  342. package/dist/utilities/hasOptionLabelJSXElement.d.ts.map +1 -0
  343. package/dist/utilities/hasOptionLabelJSXElement.js +15 -0
  344. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -0
  345. package/dist/views/Edit/SetDocumentTitle/index.js +1 -1
  346. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  347. package/dist/views/Edit/index.d.ts.map +1 -1
  348. package/dist/views/Edit/index.js +1 -1
  349. package/dist/views/Edit/index.js.map +1 -1
  350. package/package.json +4 -4
  351. package/dist/utilities/formatDate.d.ts.map +0 -1
  352. package/dist/utilities/formatDate.js.map +0 -1
  353. package/dist/utilities/formatDocTitle.d.ts.map +0 -1
  354. package/dist/utilities/formatDocTitle.js.map +0 -1
  355. /package/dist/exports/client/{CodeEditor-TQ5ADFPC.js.map → CodeEditor-J4IKAVAK.js.map} +0 -0
  356. /package/dist/exports/client/{DatePicker-HHQ6TPOW.js.map → DatePicker-DMHV2M2L.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","filterOutUploadFields","mergeListSearchAndWhere","parseSearchParams","FieldSelect","baseClass","sanitizeUnselectedFields","formState","selected","filteredData","reduce","acc","field","foundState","path","value","Submit","t0","$","action","disabled","submit","t","t1","method","overrides","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","slug","fields","labels","plural","singular","drawerSlug","selectedFromProps","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","setSelected","router","initialState","setInitialState","hasInitializedState","useRef","abortFormStateRef","clearRouteCache","collectionPermissions","collections","searchParams","filteredFields","controller","AbortController","current","getInitialState","state","result","collectionSlug","data","docPermissions","docPreferences","operation","schemaPath","signal","onChange","prevFormState","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","Provider","_jsxs","label","type","length","parentIndexPath","parentPath","parentSchemaPath","readOnly","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldWithPathClient, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport { baseClass, type EditManyProps } from './index.js'\nimport './index.scss'\n\nconst sanitizeUnselectedFields = (formState: FormState, selected: FieldWithPathClient[]) => {\n const filteredData = selected.reduce((acc, field) => {\n const foundState = formState?.[field.path]\n\n if (foundState) {\n acc[field.path] = formState?.[field.path]?.value\n }\n\n return acc\n }, {} as FormData)\n\n return filteredData\n}\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n readonly selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => sanitizeUnselectedFields(formState, selected),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'published',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n selected?: FieldWithPathClient[]\n}> = ({ action, disabled, selected }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: (formState) => ({\n ...sanitizeUnselectedFields(formState, selected),\n _status: 'draft',\n }),\n skipValidation: true,\n })\n }, [action, submit, selected])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditManyDrawerContent: React.FC<\n {\n drawerSlug: string\n selected: FieldWithPathClient[]\n } & EditManyProps\n> = (props) => {\n const {\n collection: { slug, fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n selected: selectedFromProps,\n } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n useEffect(() => {\n setSelected(selectedFromProps)\n }, [selectedFromProps])\n\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[slug]\n const searchParams = useSearchParams()\n\n const filteredFields = filterOutUploadFields(fields)\n\n React.useEffect(() => {\n const controller = new AbortController()\n\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const { state: result } = await getFormState({\n collectionSlug: slug,\n data: {},\n docPermissions: collectionPermissions,\n docPreferences: null,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [apiRoute, hasInitializedState, serverURL, slug, getFormState, user, collectionPermissions])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n signal: controller.signal,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, slug, collectionPermissions],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n return (\n <DocumentInfoProvider\n collectionSlug={slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n initialState={initialState}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={filteredFields} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields\n fields={selected}\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={slug}\n permissions={collectionPermissions?.fields}\n readOnly={false}\n />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${queryString}&draft=true`}\n disabled={selected.length === 0}\n selected={selected}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${queryString}`}\n disabled={selected.length === 0}\n selected={selected}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","SelectAllStatus","useSelection","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","mergeListSearchAndWhere","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","drawerSlug","selectedFields","setSelectedFields","permissions","user","closeModal","config","routes","api","apiRoute","serverURL","getFormState","count","getQueryParams","selectAll","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","field","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","queryWithSearch","collectionConfig","search","get","onSuccess","replace","stringify","page","AllAvailable","undefined","addQueryPrefix","onFieldSelect","dispatchFields","selected","map","value","option","type","currentEditor","hasPublishedDoc","id","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","i","clientFieldConfig","indexPath","parentPath","parentSchemaPath","name","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { FieldWithPathClient, SelectType } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { unflatten } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { mergeListSearchAndWhere } from '../../utilities/mergeListSearchAndWhere.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport { baseClass, type EditManyProps } from './index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\nexport const EditManyDrawerContent: React.FC<\n {\n drawerSlug: string\n selectedFields: FieldWithPathClient[]\n setSelectedFields: React.Dispatch<React.SetStateAction<FieldWithPathClient[]>>\n } & EditManyProps\n> = (props) => {\n const {\n collection: { fields, labels: { plural, singular } } = {},\n collection,\n drawerSlug,\n selectedFields,\n setSelectedFields,\n } = props\n\n const { permissions, user } = useAuth()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, field) => {\n acc[field.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo(() => {\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n return getQueryParams(queryWithSearch)\n }, [collection, searchParams, getQueryParams])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n closeModal(drawerSlug)\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n if (selected === null) {\n setSelectedFields([])\n } else {\n setSelectedFields(selected.map(({ value }) => value))\n }\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fields={fields} onChange={onFieldSelect} />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((field, i) => {\n const { path } = field\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={\n collectionPermissions.fields === undefined ||\n collectionPermissions.fields === null ||\n collectionPermissions.fields === true\n ? true\n : 'name' in field\n ? collectionPermissions.fields?.[field.name]\n : undefined\n }\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}`}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,20 +39,19 @@ export const EditMany = props => {
39
39
  } else {
40
40
  t1 = $[0];
41
41
  }
42
- const [selected, setSelected] = useState(t1);
42
+ const [selectedFields, setSelectedFields] = useState(t1);
43
43
  const collectionPermissions = permissions?.collections?.[slug];
44
- const hasUpdatePermission = collectionPermissions?.update;
45
44
  const drawerSlug = `edit-${slug}`;
46
- if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {
45
+ if (selectAll === SelectAllStatus.None || !collectionPermissions?.update) {
47
46
  return null;
48
47
  }
49
48
  let t2;
50
- if ($[1] !== drawerSlug || $[2] !== openModal || $[3] !== props.collection || $[4] !== selected || $[5] !== t) {
49
+ if ($[1] !== drawerSlug || $[2] !== openModal || $[3] !== props.collection || $[4] !== selectedFields || $[5] !== t) {
51
50
  let t3;
52
51
  if ($[7] !== drawerSlug || $[8] !== openModal) {
53
52
  t3 = () => {
54
53
  openModal(drawerSlug);
55
- setSelected([]);
54
+ setSelectedFields([]);
56
55
  };
57
56
  $[7] = drawerSlug;
58
57
  $[8] = openModal;
@@ -75,7 +74,8 @@ export const EditMany = props => {
75
74
  children: _jsx(EditManyDrawerContent, {
76
75
  collection: props.collection,
77
76
  drawerSlug,
78
- selected
77
+ selectedFields,
78
+ setSelectedFields
79
79
  })
80
80
  })
81
81
  })]
@@ -83,7 +83,7 @@ export const EditMany = props => {
83
83
  $[1] = drawerSlug;
84
84
  $[2] = openModal;
85
85
  $[3] = props.collection;
86
- $[4] = selected;
86
+ $[4] = selectedFields;
87
87
  $[5] = t;
88
88
  $[6] = t2;
89
89
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","openModal","selectAll","t","t1","Symbol","for","selected","setSelected","collectionPermissions","collections","hasUpdatePermission","update","drawerSlug","None","t2","t3","_jsxs","className","children","_jsx","onClick","type","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selected, setSelected] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <button\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(drawerSlug)\n setSelected([])\n }}\n type=\"button\"\n >\n {t('general:edit')}\n </button>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selected={selected}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBd,OAAA;EACxB;IAAAe;EAAA,IAAsBlB,QAAA;EAEtB;IAAAmB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IACkDF,EAAA;IAAER,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAlE,OAAAW,QAAA,EAAAC,WAAA,IAAgCvB,QAAA,CAAgCmB,EAAE;EAElE,MAAAK,qBAAA,GAA8BT,WAAA,EAAAU,WAAA,GAA2BX,IAAA;EACzD,MAAAY,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,UAAA,GAAmB,QAAQd,IAAA,EAAM;EAAA,IAE7BG,SAAA,KAAAd,eAAA,CAAA0B,IAAkC,KAAKH,mBAAA;IAAA;EAAA;EAAA,IAAAI,EAAA;EAAA,IAAAnB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAW,QAAA,IAAAX,CAAA,QAAAO,CAAA;IAAA,IAAAa,EAAA;IAAA,IAAApB,CAAA,QAAAiB,UAAA,IAAAjB,CAAA,QAAAK,SAAA;MAS5Be,EAAA,GAAAA,CAAA;QACPf,SAAA,CAAUY,UAAA;QACVL,WAAA,GAAc;MAAA;MAChBZ,CAAA,MAAAiB,UAAA;MAAAjB,CAAA,MAAAK,SAAA;MAAAL,CAAA,MAAAoB,EAAA;IAAA;MAAAA,EAAA,GAAApB,CAAA;IAAA;IAPJmB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAzB,SAAA;MAAA0B,QAAA,GACCC,IAAA,CAAC;QAAA,cACajB,CAAA,CAAE;QAAAe,SAAA,EACH,GAAAzB,SAAA,UAAsB;QAAA4B,OAAA,EACxBL,EAGT;QAAAM,IAAA,EACK;QAAAH,QAAA,EAEJhB,CAAA,CAAE;MAAA,C,GAELiB,IAAA,CAAAjC,iBAAA;QAAAgC,QAAA,EACEC,IAAA,CAAA7B,MAAA;UAAAgC,MAAA;UAAAxB,IAAA,EAA4Bc,UAAA;UAAAM,QAAA,EAC1BC,IAAA,CAAA5B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAgB,UAAA;YAAAN;UAAA,C;;;;;;;;;;;;;SAfpBQ,E;CAuBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","useState","useAuth","EditDepthProvider","SelectAllStatus","useSelection","useTranslation","Drawer","EditManyDrawerContent","baseClass","EditMany","props","$","collection","t0","slug","permissions","openModal","selectAll","t","t1","Symbol","for","selectedFields","setSelectedFields","collectionPermissions","collections","drawerSlug","None","update","t2","t3","_jsxs","className","children","_jsx","onClick","type","Header"],"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldWithPathClient } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { EditManyDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const baseClass = 'edit-many'\n\nexport type EditManyProps = {\n readonly collection: ClientCollectionConfig\n}\n\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const {\n collection: { slug },\n } = props\n\n const { permissions } = useAuth()\n const { openModal } = useModal()\n\n const { selectAll } = useSelection()\n const { t } = useTranslation()\n const [selectedFields, setSelectedFields] = useState<FieldWithPathClient[]>([])\n\n const collectionPermissions = permissions?.collections?.[slug]\n\n const drawerSlug = `edit-${slug}`\n\n if (selectAll === SelectAllStatus.None || !collectionPermissions?.update) {\n return null\n }\n\n return (\n <div className={baseClass}>\n <button\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n openModal(drawerSlug)\n setSelectedFields([])\n }}\n type=\"button\"\n >\n {t('general:edit')}\n </button>\n <EditDepthProvider>\n <Drawer Header={null} slug={drawerSlug}>\n <EditManyDrawerContent\n collection={props.collection}\n drawerSlug={drawerSlug}\n selectedFields={selectedFields}\n setSelectedFields={setSelectedFields}\n />\n </Drawer>\n </EditDepthProvider>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,OAAO,QAAQ;AACxB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAMzB,OAAO,MAAMC,QAAA,GAAoCC,KAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAC/C;IAAAe,UAAA,EAAAC;EAAA,IAEIH,KAAA;EADU;IAAAI;EAAA,IAAAD,EAAQ;EAGtB;IAAAE;EAAA,IAAwBd,OAAA;EACxB;IAAAe;EAAA,IAAsBlB,QAAA;EAEtB;IAAAmB;EAAA,IAAsBb,YAAA;EACtB;IAAAc;EAAA,IAAcb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAR,CAAA,QAAAS,MAAA,CAAAC,GAAA;IAC8DF,EAAA;IAAER,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAA9E,OAAAW,cAAA,EAAAC,iBAAA,IAA4CvB,QAAA,CAAgCmB,EAAE;EAE9E,MAAAK,qBAAA,GAA8BT,WAAA,EAAAU,WAAA,GAA2BX,IAAA;EAEzD,MAAAY,UAAA,GAAmB,QAAQZ,IAAA,EAAM;EAAA,IAE7BG,SAAA,KAAAd,eAAA,CAAAwB,IAAkC,KAAKH,qBAAA,EAAAI,MAAuB;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAe,UAAA,IAAAf,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAD,KAAA,CAAAE,UAAA,IAAAD,CAAA,QAAAW,cAAA,IAAAX,CAAA,QAAAO,CAAA;IAAA,IAAAY,EAAA;IAAA,IAAAnB,CAAA,QAAAe,UAAA,IAAAf,CAAA,QAAAK,SAAA;MASnDc,EAAA,GAAAA,CAAA;QACPd,SAAA,CAAUU,UAAA;QACVH,iBAAA,GAAoB;MAAA;MACtBZ,CAAA,MAAAe,UAAA;MAAAf,CAAA,MAAAK,SAAA;MAAAL,CAAA,MAAAmB,EAAA;IAAA;MAAAA,EAAA,GAAAnB,CAAA;IAAA;IAPJkB,EAAA,GAAAE,KAAA,CAAC;MAAAC,SAAA,EAAAxB,SAAA;MAAAyB,QAAA,GACCC,IAAA,CAAC;QAAA,cACahB,CAAA,CAAE;QAAAc,SAAA,EACH,GAAAxB,SAAA,UAAsB;QAAA2B,OAAA,EACxBL,EAGT;QAAAM,IAAA,EACK;QAAAH,QAAA,EAEJf,CAAA,CAAE;MAAA,C,GAELgB,IAAA,CAAAhC,iBAAA;QAAA+B,QAAA,EACEC,IAAA,CAAA5B,MAAA;UAAA+B,MAAA;UAAAvB,IAAA,EAA4BY,UAAA;UAAAO,QAAA,EAC1BC,IAAA,CAAA3B,qBAAA;YAAAK,UAAA,EACcF,KAAA,CAAAE,UAAA;YAAAc,UAAA;YAAAJ,cAAA;YAAAC;UAAA,C;;;;;;;;;;;;;SAfpBM,E;CAwBJ","ignoreList":[]}
@@ -124,14 +124,26 @@
124
124
  }
125
125
  }
126
126
 
127
+ &__save {
128
+ width: calc(50% - #{base(1)});
129
+
130
+ @include mid-break {
131
+ width: 100%;
132
+ }
133
+ }
134
+
135
+ &__publish,
136
+ &__draft {
137
+ width: 100%;
138
+ }
139
+
127
140
  &__document-actions {
128
141
  display: flex;
129
- flex-wrap: wrap;
130
142
  padding: base(1);
131
143
  gap: base(0.5);
132
144
 
133
145
  .form-submit {
134
- width: calc(50% - #{base(1)});
146
+ width: 100%;
135
147
 
136
148
  @include mid-break {
137
149
  width: auto;
@@ -139,7 +151,6 @@
139
151
  }
140
152
 
141
153
  .btn {
142
- width: 100%;
143
154
  padding-left: base(0.5);
144
155
  padding-right: base(0.5);
145
156
  margin-bottom: 0;
@@ -1,14 +1,19 @@
1
- import type { ClientField, FieldWithPathClient } from 'payload';
1
+ import type { ClientField, FieldWithPathClient, FormState } from 'payload';
2
2
  import React from 'react';
3
+ import type { FieldAction } from '../../forms/Form/types.js';
3
4
  import './index.scss';
5
+ export type OnFieldSelect = ({ dispatchFields, formState, selected, }: {
6
+ dispatchFields: React.Dispatch<FieldAction>;
7
+ formState: FormState;
8
+ selected: FieldOption[];
9
+ }) => void;
4
10
  export type FieldSelectProps = {
5
11
  readonly fields: ClientField[];
6
- readonly setSelected: (fields: FieldWithPathClient[]) => void;
12
+ readonly onChange: OnFieldSelect;
13
+ };
14
+ export type FieldOption = {
15
+ Label: React.ReactNode;
16
+ value: FieldWithPathClient;
7
17
  };
8
- export declare const combineLabel: ({ CustomLabel, field, prefix, }: {
9
- CustomLabel?: React.ReactNode;
10
- field?: ClientField;
11
- prefix?: React.ReactNode;
12
- }) => React.ReactNode;
13
18
  export declare const FieldSelect: React.FC<FieldSelectProps>;
14
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAA;AAG1E,OAAO,KAA6B,MAAM,OAAO,CAAA;AAQjD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAA;CAC9D,CAAA;AAED,eAAO,MAAM,YAAY,oCAItB;IACD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB,KAAG,KAAK,CAAC,SAiBT,CAAA;AAyED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAiDlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAE1E,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQ5D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,aAAa,GAAG,CAAC,EAC3B,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE;IACD,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC3C,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,WAAW,EAAE,CAAA;CACxB,KAAK,IAAI,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAA;AAEhF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0BlD,CAAA"}
@@ -2,99 +2,20 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared';
6
- import React, { Fragment, useState } from 'react';
7
- import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
5
+ import React, { useState } from 'react';
8
6
  import { FieldLabel } from '../../fields/FieldLabel/index.js';
9
7
  import { useForm } from '../../forms/Form/context.js';
10
- import { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js';
11
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
+ import { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js';
12
10
  import { ReactSelect } from '../ReactSelect/index.js';
11
+ import { reduceFieldOptions } from './reduceFieldOptions.js';
13
12
  import './index.scss';
14
13
  const baseClass = 'field-select';
15
- export const combineLabel = ({
16
- CustomLabel,
17
- field,
18
- prefix
19
- }) => {
20
- return /*#__PURE__*/_jsxs(Fragment, {
21
- children: [prefix ? /*#__PURE__*/_jsxs(Fragment, {
22
- children: [/*#__PURE__*/_jsx("span", {
23
- style: {
24
- display: 'inline-block'
25
- },
26
- children: prefix
27
- }), ' > ']
28
- }) : null, /*#__PURE__*/_jsx("span", {
29
- style: {
30
- display: 'inline-block'
31
- },
32
- children: /*#__PURE__*/_jsx(RenderCustomComponent, {
33
- CustomComponent: CustomLabel,
34
- Fallback: /*#__PURE__*/_jsx(FieldLabel, {
35
- label: 'label' in field && field.label
36
- })
37
- })
38
- })]
39
- });
40
- };
41
- const reduceFields = ({
42
- fields,
43
- formState,
44
- labelPrefix = null,
45
- path = ''
46
- }) => {
47
- if (!fields) {
48
- return [];
49
- }
50
- const CustomLabel = formState?.[path]?.customComponents?.Label;
51
- return fields?.reduce((fieldsToUse, field) => {
52
- // escape for a variety of reasons, include ui fields as they have `name`.
53
- if ((fieldAffectsData(field) || field.type === 'ui') && (field.admin?.disableBulkEdit || field.unique || fieldIsHiddenOrDisabled(field) || 'readOnly' in field && field.readOnly)) {
54
- return fieldsToUse;
55
- }
56
- if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {
57
- return [...fieldsToUse, ...reduceFields({
58
- fields: field.fields,
59
- labelPrefix: combineLabel({
60
- CustomLabel,
61
- field,
62
- prefix: labelPrefix
63
- }),
64
- path: createNestedClientFieldPath(path, field)
65
- })];
66
- }
67
- if (field.type === 'tabs' && 'tabs' in field) {
68
- return [...fieldsToUse, ...field.tabs.reduce((tabFields, tab) => {
69
- if ('fields' in tab) {
70
- const isNamedTab = 'name' in tab && tab.name;
71
- return [...tabFields, ...reduceFields({
72
- fields: tab.fields,
73
- labelPrefix,
74
- path: isNamedTab ? createNestedClientFieldPath(path, field) : path
75
- })];
76
- }
77
- }, [])];
78
- }
79
- const formattedField = {
80
- label: combineLabel({
81
- CustomLabel,
82
- field,
83
- prefix: labelPrefix
84
- }),
85
- value: {
86
- ...field,
87
- path: createNestedClientFieldPath(path, field)
88
- }
89
- };
90
- return [...fieldsToUse, formattedField];
91
- }, []);
92
- };
93
14
  export const FieldSelect = t0 => {
94
- const $ = _c(11);
15
+ const $ = _c(13);
95
16
  const {
96
17
  fields,
97
- setSelected
18
+ onChange
98
19
  } = t0;
99
20
  const {
100
21
  t
@@ -105,8 +26,8 @@ export const FieldSelect = t0 => {
105
26
  } = useForm();
106
27
  let t1;
107
28
  if ($[0] !== fields || $[1] !== getFields) {
108
- t1 = () => reduceFields({
109
- fields,
29
+ t1 = () => reduceFieldOptions({
30
+ fields: filterOutUploadFields(fields),
110
31
  formState: getFields()
111
32
  });
112
33
  $[0] = fields;
@@ -117,62 +38,44 @@ export const FieldSelect = t0 => {
117
38
  }
118
39
  const [options] = useState(t1);
119
40
  let t2;
120
- if ($[3] !== dispatchFields || $[4] !== getFields || $[5] !== setSelected) {
121
- t2 = selected => {
122
- const activeFields = getFields();
123
- if (selected === null) {
124
- setSelected([]);
125
- } else {
126
- setSelected(selected.map(_temp));
127
- }
128
- if (selected === null || Object.keys(activeFields || []).length > selected.length) {
129
- Object.keys(activeFields).forEach(path => {
130
- if (selected === null || !selected.find(field => field.value.path === path)) {
131
- dispatchFields({
132
- type: "REMOVE",
133
- path
134
- });
135
- }
136
- });
137
- }
138
- };
139
- $[3] = dispatchFields;
140
- $[4] = getFields;
141
- $[5] = setSelected;
142
- $[6] = t2;
143
- } else {
144
- t2 = $[6];
145
- }
146
- const handleChange = t2;
147
- let t3;
148
- if ($[7] !== handleChange || $[8] !== options || $[9] !== t) {
149
- t3 = _jsxs("div", {
41
+ if ($[3] !== dispatchFields || $[4] !== getFields || $[5] !== onChange || $[6] !== options || $[7] !== t) {
42
+ let t3;
43
+ if ($[9] !== dispatchFields || $[10] !== getFields || $[11] !== onChange) {
44
+ t3 = selected => onChange({
45
+ dispatchFields,
46
+ formState: getFields(),
47
+ selected
48
+ });
49
+ $[9] = dispatchFields;
50
+ $[10] = getFields;
51
+ $[11] = onChange;
52
+ $[12] = t3;
53
+ } else {
54
+ t3 = $[12];
55
+ }
56
+ t2 = _jsxs("div", {
150
57
  className: baseClass,
151
58
  children: [_jsx(FieldLabel, {
152
59
  label: t("fields:selectFieldsToEdit")
153
60
  }), _jsx(ReactSelect, {
154
- getOptionValue: _temp2,
61
+ getOptionValue: _temp,
155
62
  isMulti: true,
156
- onChange: handleChange,
63
+ onChange: t3,
157
64
  options
158
65
  })]
159
66
  });
160
- $[7] = handleChange;
161
- $[8] = options;
162
- $[9] = t;
163
- $[10] = t3;
67
+ $[3] = dispatchFields;
68
+ $[4] = getFields;
69
+ $[5] = onChange;
70
+ $[6] = options;
71
+ $[7] = t;
72
+ $[8] = t2;
164
73
  } else {
165
- t3 = $[10];
74
+ t2 = $[8];
166
75
  }
167
- return t3;
76
+ return t2;
168
77
  };
169
- function _temp(t0) {
170
- const {
171
- value
172
- } = t0;
173
- return value;
174
- }
175
- function _temp2(option) {
78
+ function _temp(option) {
176
79
  if (typeof option.value === "object" && "path" in option.value) {
177
80
  return String(option.value.path);
178
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","React","Fragment","useState","RenderCustomComponent","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label","reduceFields","fields","formState","labelPrefix","path","customComponents","Label","reduce","fieldsToUse","type","admin","disableBulkEdit","unique","readOnly","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","t0","$","setSelected","t","dispatchFields","getFields","t1","options","t2","selected","activeFields","map","_temp","Object","keys","length","forEach","find","handleChange","t3","className","children","getOptionValue","_temp2","isMulti","onChange","option","String"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPathClient, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\nimport React, { Fragment, useState } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly setSelected: (fields: FieldWithPathClient[]) => void\n}\n\nexport const combineLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): { Label: React.ReactNode; value: FieldWithPathClient }[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin?.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fields: field.fields,\n labelPrefix: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, setSelected }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState(() => reduceFields({ fields, formState: getFields() }))\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useState","FieldLabel","useForm","useTranslation","filterOutUploadFields","ReactSelect","reduceFieldOptions","baseClass","FieldSelect","t0","$","fields","onChange","t","dispatchFields","getFields","t1","formState","options","t2","t3","selected","_jsxs","className","children","_jsx","label","getOptionValue","_temp","isMulti","option","value","String","path"],"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, FieldWithPathClient, FormState } from 'payload'\n\nimport React, { useState } from 'react'\n\nimport type { FieldAction } from '../../forms/Form/types.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { filterOutUploadFields } from '../../utilities/filterOutUploadFields.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport { reduceFieldOptions } from './reduceFieldOptions.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type OnFieldSelect = ({\n dispatchFields,\n formState,\n selected,\n}: {\n dispatchFields: React.Dispatch<FieldAction>\n formState: FormState\n selected: FieldOption[]\n}) => void\n\nexport type FieldSelectProps = {\n readonly fields: ClientField[]\n readonly onChange: OnFieldSelect\n}\n\nexport type FieldOption = { Label: React.ReactNode; value: FieldWithPathClient }\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fields, onChange }) => {\n const { t } = useTranslation()\n const { dispatchFields, getFields } = useForm()\n\n const [options] = useState<FieldOption[]>(() =>\n reduceFieldOptions({ fields: filterOutUploadFields(fields), formState: getFields() }),\n )\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={(selected: FieldOption[]) =>\n onChange({ dispatchFields, formState: getFields(), selected })\n }\n options={options}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,WAAW,QAAQ;AAC5B,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAmBlB,OAAO,MAAMC,WAAA,GAA0CC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,MAAA;IAAAC;EAAA,IAAAH,EAAoB;EAC1E;IAAAI;EAAA,IAAcV,cAAA;EACd;IAAAW,cAAA;IAAAC;EAAA,IAAsCb,OAAA;EAAA,IAAAc,EAAA;EAAA,IAAAN,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAK,SAAA;IAEIC,EAAA,GAAAA,CAAA,KACxCV,kBAAA;MAAAK,MAAA,EAA6BP,qBAAA,CAAsBO,MAAA;MAAAM,SAAA,EAAoBF,SAAA;IAAA,CAAY;IAAAL,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAK,SAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EADrF,OAAAQ,OAAA,IAAkBlB,QAAA,CAAwBgB,EAC2C;EAAA,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAQ,OAAA,IAAAR,CAAA,QAAAG,CAAA;IAAA,IAAAO,EAAA;IAAA,IAAAV,CAAA,QAAAI,cAAA,IAAAJ,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAE,QAAA;MAcrEQ,EAAA,GAAAC,QAAA,IACRT,QAAA;QAAAE,cAAA;QAAAG,SAAA,EAAsCF,SAAA;QAAAM;MAAA,CAAsB;MAAAX,CAAA,MAAAI,cAAA;MAAAJ,CAAA,OAAAK,SAAA;MAAAL,CAAA,OAAAE,QAAA;MAAAF,CAAA,OAAAU,EAAA;IAAA;MAAAA,EAAA,GAAAV,CAAA;IAAA;IAXlES,EAAA,GAAAG,KAAA,CAAC;MAAAC,SAAA,EAAAhB,SAAA;MAAAiB,QAAA,GACCC,IAAA,CAAAxB,UAAA;QAAAyB,KAAA,EAAmBb,CAAA,CAAE;MAAA,C,GACrBY,IAAA,CAAApB,WAAA;QAAAsB,cAAA,EAAAC,KAAA;QAAAC,OAAA;QAAAjB,QAAA,EAQYQ,EACoD;QAAAF;MAAA,C;;;;;;;;;;;SAXlEC,E;CAiBJ;AA1BuD,SAAAS,MAAAE,MAAA;EAAA,IAazC,OAAOA,MAAA,CAAAC,KAAA,KAAiB,YAAY,UAAUD,MAAA,CAAAC,KAAY;IAAA,OACrDC,MAAA,CAAOF,MAAA,CAAAC,KAAA,CAAAE,IAAiB;EAAA;EAAA,OAE1BD,MAAA,CAAOF,MAAA,CAAAC,KAAY;AAAA","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import type { ClientField, FieldWithPathClient, FormState } from 'payload';
2
+ export type SelectedField = {
3
+ path: string;
4
+ };
5
+ export type FieldOption = {
6
+ label: React.ReactNode;
7
+ value: SelectedField;
8
+ };
9
+ export declare const ignoreFromBulkEdit: (field: ClientField) => boolean;
10
+ export declare const reduceFieldOptions: ({ fields, formState, labelPrefix, path, }: {
11
+ fields: ClientField[];
12
+ formState?: FormState;
13
+ labelPrefix?: React.ReactNode;
14
+ path?: string;
15
+ }) => {
16
+ Label: React.ReactNode;
17
+ value: FieldWithPathClient;
18
+ }[];
19
+ //# sourceMappingURL=reduceFieldOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceFieldOptions.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/reduceFieldOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAO1E,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,EAAE,aAAa,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,kBAAkB,UAAW,WAAW,KAAG,OAOrD,CAAA;AAEH,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,EA2DzD,CAAA"}
@@ -0,0 +1,57 @@
1
+ import { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared';
2
+ import { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js';
3
+ import { combineFieldLabel } from '../../utilities/combineFieldLabel.js';
4
+ export const ignoreFromBulkEdit = field => Boolean((fieldAffectsData(field) || field.type === 'ui') && (field.admin.disableBulkEdit || field.unique || fieldIsHiddenOrDisabled(field) || 'readOnly' in field && field.readOnly));
5
+ export const reduceFieldOptions = ({
6
+ fields,
7
+ formState,
8
+ labelPrefix = null,
9
+ path = ''
10
+ }) => {
11
+ if (!fields) {
12
+ return [];
13
+ }
14
+ const CustomLabel = formState?.[path]?.customComponents?.Label;
15
+ return fields?.reduce((fieldsToUse, field) => {
16
+ // escape for a variety of reasons, include ui fields as they have `name`.
17
+ if ((fieldAffectsData(field) || field.type === 'ui') && (field.admin?.disableBulkEdit || field.unique || fieldIsHiddenOrDisabled(field) || 'readOnly' in field && field.readOnly)) {
18
+ return fieldsToUse;
19
+ }
20
+ if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {
21
+ return [...fieldsToUse, ...reduceFieldOptions({
22
+ fields: field.fields,
23
+ labelPrefix: combineFieldLabel({
24
+ CustomLabel,
25
+ field,
26
+ prefix: labelPrefix
27
+ }),
28
+ path: createNestedClientFieldPath(path, field)
29
+ })];
30
+ }
31
+ if (field.type === 'tabs' && 'tabs' in field) {
32
+ return [...fieldsToUse, ...field.tabs.reduce((tabFields, tab) => {
33
+ if ('fields' in tab) {
34
+ const isNamedTab = 'name' in tab && tab.name;
35
+ return [...tabFields, ...reduceFieldOptions({
36
+ fields: tab.fields,
37
+ labelPrefix,
38
+ path: isNamedTab ? createNestedClientFieldPath(path, field) : path
39
+ })];
40
+ }
41
+ }, [])];
42
+ }
43
+ const formattedField = {
44
+ label: combineFieldLabel({
45
+ CustomLabel,
46
+ field,
47
+ prefix: labelPrefix
48
+ }),
49
+ value: {
50
+ ...field,
51
+ path: createNestedClientFieldPath(path, field)
52
+ }
53
+ };
54
+ return [...fieldsToUse, formattedField];
55
+ }, []);
56
+ };
57
+ //# sourceMappingURL=reduceFieldOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceFieldOptions.js","names":["fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","createNestedClientFieldPath","combineFieldLabel","ignoreFromBulkEdit","field","Boolean","type","admin","disableBulkEdit","unique","readOnly","reduceFieldOptions","fields","formState","labelPrefix","path","CustomLabel","customComponents","Label","reduce","fieldsToUse","prefix","tabs","tabFields","tab","isNamedTab","name","formattedField","label","value"],"sources":["../../../src/elements/FieldSelect/reduceFieldOptions.ts"],"sourcesContent":["import type { ClientField, FieldWithPathClient, FormState } from 'payload'\n\nimport { fieldAffectsData, fieldHasSubFields, fieldIsHiddenOrDisabled } from 'payload/shared'\n\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedClientFieldPath.js'\nimport { combineFieldLabel } from '../../utilities/combineFieldLabel.js'\n\nexport type SelectedField = {\n path: string\n}\n\nexport type FieldOption = {\n label: React.ReactNode\n value: SelectedField\n}\n\nexport const ignoreFromBulkEdit = (field: ClientField): boolean =>\n Boolean(\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly)),\n )\n\nexport const reduceFieldOptions = ({\n fields,\n formState,\n labelPrefix = null,\n path = '',\n}: {\n fields: ClientField[]\n formState?: FormState\n labelPrefix?: React.ReactNode\n path?: string\n}): { Label: React.ReactNode; value: FieldWithPathClient }[] => {\n if (!fields) {\n return []\n }\n\n const CustomLabel = formState?.[path]?.customComponents?.Label\n\n return fields?.reduce((fieldsToUse, field) => {\n // escape for a variety of reasons, include ui fields as they have `name`.\n if (\n (fieldAffectsData(field) || field.type === 'ui') &&\n (field.admin?.disableBulkEdit ||\n field.unique ||\n fieldIsHiddenOrDisabled(field) ||\n ('readOnly' in field && field.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (!(field.type === 'array' || field.type === 'blocks') && fieldHasSubFields(field)) {\n return [\n ...fieldsToUse,\n ...reduceFieldOptions({\n fields: field.fields,\n labelPrefix: combineFieldLabel({ CustomLabel, field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n if ('fields' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFieldOptions({\n fields: tab.fields,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineFieldLabel({ CustomLabel, field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,iBAAiB,EAAEC,uBAAuB,QAAQ;AAE7E,SAASC,2BAA2B,QAAQ;AAC5C,SAASC,iBAAiB,QAAQ;AAWlC,OAAO,MAAMC,kBAAA,GAAsBC,KAAA,IACjCC,OAAA,CACE,CAACP,gBAAA,CAAiBM,KAAA,KAAUA,KAAA,CAAME,IAAI,KAAK,IAAG,MAC3CF,KAAA,CAAMG,KAAK,CAACC,eAAe,IAC1BJ,KAAA,CAAMK,MAAM,IACZT,uBAAA,CAAwBI,KAAA,KACvB,cAAcA,KAAA,IAASA,KAAA,CAAMM,QAAQ;AAG9C,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,MAAM;EACNC,SAAS;EACTC,WAAA,GAAc,IAAI;EAClBC,IAAA,GAAO;AAAE,CAMV;EACC,IAAI,CAACH,MAAA,EAAQ;IACX,OAAO,EAAE;EACX;EAEA,MAAMI,WAAA,GAAcH,SAAA,GAAYE,IAAA,CAAK,EAAEE,gBAAA,EAAkBC,KAAA;EAEzD,OAAON,MAAA,EAAQO,MAAA,CAAO,CAACC,WAAA,EAAahB,KAAA;IAClC;IACA,IACE,CAACN,gBAAA,CAAiBM,KAAA,KAAUA,KAAA,CAAME,IAAI,KAAK,IAAG,MAC7CF,KAAA,CAAMG,KAAK,EAAEC,eAAA,IACZJ,KAAA,CAAMK,MAAM,IACZT,uBAAA,CAAwBI,KAAA,KACvB,cAAcA,KAAA,IAASA,KAAA,CAAMM,QAAQ,GACxC;MACA,OAAOU,WAAA;IACT;IAEA,IAAI,EAAEhB,KAAA,CAAME,IAAI,KAAK,WAAWF,KAAA,CAAME,IAAI,KAAK,QAAO,KAAMP,iBAAA,CAAkBK,KAAA,GAAQ;MACpF,OAAO,C,GACFgB,WAAA,E,GACAT,kBAAA,CAAmB;QACpBC,MAAA,EAAQR,KAAA,CAAMQ,MAAM;QACpBE,WAAA,EAAaZ,iBAAA,CAAkB;UAAEc,WAAA;UAAaZ,KAAA;UAAOiB,MAAA,EAAQP;QAAY;QACzEC,IAAA,EAAMd,2BAAA,CAA4Bc,IAAA,EAAMX,KAAA;MAC1C,GACD;IACH;IAEA,IAAIA,KAAA,CAAME,IAAI,KAAK,UAAU,UAAUF,KAAA,EAAO;MAC5C,OAAO,C,GACFgB,WAAA,E,GACAhB,KAAA,CAAMkB,IAAI,CAACH,MAAM,CAAC,CAACI,SAAA,EAAWC,GAAA;QAC/B,IAAI,YAAYA,GAAA,EAAK;UACnB,MAAMC,UAAA,GAAa,UAAUD,GAAA,IAAOA,GAAA,CAAIE,IAAI;UAC5C,OAAO,C,GACFH,SAAA,E,GACAZ,kBAAA,CAAmB;YACpBC,MAAA,EAAQY,GAAA,CAAIZ,MAAM;YAClBE,WAAA;YACAC,IAAA,EAAMU,UAAA,GAAaxB,2BAAA,CAA4Bc,IAAA,EAAMX,KAAA,IAASW;UAChE,GACD;QACH;MACF,GAAG,EAAE,EACN;IACH;IAEA,MAAMY,cAAA,GAAiB;MACrBC,KAAA,EAAO1B,iBAAA,CAAkB;QAAEc,WAAA;QAAaZ,KAAA;QAAOiB,MAAA,EAAQP;MAAY;MACnEe,KAAA,EAAO;QACL,GAAGzB,KAAK;QACRW,IAAA,EAAMd,2BAAA,CAA4Bc,IAAA,EAAMX,KAAA;MAC1C;IACF;IAEA,OAAO,C,GAAIgB,WAAA,EAAaO,cAAA,CAAe;EACzC,GAAG,EAAE;AACP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,SAqFA,CAAA"}
1
+ {"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,SAsFA,CAAA"}
@@ -105,7 +105,8 @@ export const usePreventLeave = ({
105
105
  const newUrl_0 = anchor.href;
106
106
  const isAnchor = isAnchorOfCurrentUrl(currentUrl_0, newUrl_0);
107
107
  const isDownloadLink = anchor.download !== '';
108
- const isPageLeaving = !(newUrl_0 === currentUrl_0 || isAnchor || isDownloadLink);
108
+ const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey;
109
+ const isPageLeaving = !(newUrl_0 === currentUrl_0 || isAnchor || isDownloadLink || isNewTab);
109
110
  if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {
110
111
  // Keep a reference of the href
111
112
  cancelledURL.current = newUrl_0;