@payloadcms/next 3.68.0-internal-debug.3a174b1 → 3.68.0-internal-debug.591ab42

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 (386) hide show
  1. package/dist/auth/login.js +52 -58
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.js +39 -44
  4. package/dist/auth/logout.js.map +1 -1
  5. package/dist/auth/refresh.js +45 -47
  6. package/dist/auth/refresh.js.map +1 -1
  7. package/dist/config.js +1 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +9 -15
  10. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +40 -71
  12. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +65 -59
  14. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/index.js +80 -70
  16. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +16 -23
  18. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +61 -69
  20. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  21. package/dist/elements/DocumentHeader/index.js +48 -28
  22. package/dist/elements/DocumentHeader/index.js.map +1 -1
  23. package/dist/elements/FormHeader/index.js +30 -16
  24. package/dist/elements/FormHeader/index.js.map +1 -1
  25. package/dist/elements/Logo/index.js +19 -34
  26. package/dist/elements/Logo/index.js.map +1 -1
  27. package/dist/elements/Nav/NavHamburger/index.js +23 -44
  28. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  29. package/dist/elements/Nav/NavWrapper/index.js +28 -54
  30. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  31. package/dist/elements/Nav/SettingsMenuButton/index.js +33 -39
  32. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  33. package/dist/elements/Nav/getNavPrefs.js +27 -22
  34. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  35. package/dist/elements/Nav/index.client.js +97 -118
  36. package/dist/elements/Nav/index.client.js.map +1 -1
  37. package/dist/elements/Nav/index.js +148 -127
  38. package/dist/elements/Nav/index.js.map +1 -1
  39. package/dist/esbuildEntry.d.ts +5 -0
  40. package/dist/esbuildEntry.d.ts.map +1 -0
  41. package/dist/esbuildEntry.js +6 -0
  42. package/dist/esbuildEntry.js.map +1 -0
  43. package/dist/exports/auth.js +1 -0
  44. package/dist/exports/auth.js.map +1 -1
  45. package/dist/exports/client.js +1 -1
  46. package/dist/exports/client.js.map +1 -1
  47. package/dist/exports/layouts.js +1 -0
  48. package/dist/exports/layouts.js.map +1 -1
  49. package/dist/exports/routes.js +1 -0
  50. package/dist/exports/routes.js.map +1 -1
  51. package/dist/exports/rsc.js +1 -0
  52. package/dist/exports/rsc.js.map +1 -1
  53. package/dist/exports/templates.js +1 -0
  54. package/dist/exports/templates.js.map +1 -1
  55. package/dist/exports/utilities.js +7 -12
  56. package/dist/exports/utilities.js.map +1 -1
  57. package/dist/exports/views.js +1 -0
  58. package/dist/exports/views.js.map +1 -1
  59. package/dist/index.js +1 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/layouts/Root/NestProviders.js +21 -20
  62. package/dist/layouts/Root/NestProviders.js.map +1 -1
  63. package/dist/layouts/Root/checkDependencies.js +49 -41
  64. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  65. package/dist/layouts/Root/index.js +128 -103
  66. package/dist/layouts/Root/index.js.map +1 -1
  67. package/dist/routes/graphql/handler.js +114 -122
  68. package/dist/routes/graphql/handler.js.map +1 -1
  69. package/dist/routes/graphql/index.js +1 -0
  70. package/dist/routes/graphql/index.js.map +1 -1
  71. package/dist/routes/graphql/playground.js +24 -23
  72. package/dist/routes/graphql/playground.js.map +1 -1
  73. package/dist/routes/index.js +1 -0
  74. package/dist/routes/index.js.map +1 -1
  75. package/dist/routes/rest/index.js +20 -19
  76. package/dist/routes/rest/index.js.map +1 -1
  77. package/dist/routes/rest/og/image.js +103 -79
  78. package/dist/routes/rest/og/image.js.map +1 -1
  79. package/dist/routes/rest/og/index.js +59 -54
  80. package/dist/routes/rest/og/index.js.map +1 -1
  81. package/dist/templates/Default/NavHamburger/index.js +12 -20
  82. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  83. package/dist/templates/Default/Wrapper/index.js +20 -44
  84. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  85. package/dist/templates/Default/index.js +183 -133
  86. package/dist/templates/Default/index.js.map +1 -1
  87. package/dist/templates/Minimal/index.js +26 -17
  88. package/dist/templates/Minimal/index.js.map +1 -1
  89. package/dist/utilities/getExistingAuthToken.js +3 -2
  90. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  91. package/dist/utilities/getNextRequestI18n.js +12 -13
  92. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  93. package/dist/utilities/getPayloadHMR.js +5 -5
  94. package/dist/utilities/getPayloadHMR.js.map +1 -1
  95. package/dist/utilities/getPreferences.js +27 -22
  96. package/dist/utilities/getPreferences.js.map +1 -1
  97. package/dist/utilities/getRequestLocale.js +13 -14
  98. package/dist/utilities/getRequestLocale.js.map +1 -1
  99. package/dist/utilities/getRequestTheme.js +19 -19
  100. package/dist/utilities/getRequestTheme.js.map +1 -1
  101. package/dist/utilities/getRouteWithoutAdmin.js +3 -5
  102. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  103. package/dist/utilities/getVisibleEntities.js +12 -23
  104. package/dist/utilities/getVisibleEntities.js.map +1 -1
  105. package/dist/utilities/handleAuthRedirect.js +22 -36
  106. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  107. package/dist/utilities/handleServerFunctions.js +32 -39
  108. package/dist/utilities/handleServerFunctions.js.map +1 -1
  109. package/dist/utilities/initReq.js +78 -96
  110. package/dist/utilities/initReq.js.map +1 -1
  111. package/dist/utilities/isCustomAdminView.js +22 -26
  112. package/dist/utilities/isCustomAdminView.js.map +1 -1
  113. package/dist/utilities/isPublicAdminRoute.js +26 -20
  114. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  115. package/dist/utilities/meta.js +68 -63
  116. package/dist/utilities/meta.js.map +1 -1
  117. package/dist/utilities/selectiveCache.js +25 -26
  118. package/dist/utilities/selectiveCache.js.map +1 -1
  119. package/dist/utilities/setPayloadAuthCookie.js +19 -22
  120. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  121. package/dist/utilities/slugify.js +24 -33
  122. package/dist/utilities/slugify.js.map +1 -1
  123. package/dist/utilities/timestamp.js +7 -6
  124. package/dist/utilities/timestamp.js.map +1 -1
  125. package/dist/views/API/LocaleSelector/index.js +17 -39
  126. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  127. package/dist/views/API/RenderJSON/index.js +171 -126
  128. package/dist/views/API/RenderJSON/index.js.map +1 -1
  129. package/dist/views/API/index.client.js +287 -197
  130. package/dist/views/API/index.client.js.map +1 -1
  131. package/dist/views/API/index.js +7 -2
  132. package/dist/views/API/index.js.map +1 -1
  133. package/dist/views/API/metadata.js +18 -23
  134. package/dist/views/API/metadata.js.map +1 -1
  135. package/dist/views/Account/ResetPreferences/index.js +74 -91
  136. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  137. package/dist/views/Account/Settings/LanguageSelector.js +18 -47
  138. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  139. package/dist/views/Account/Settings/index.js +62 -28
  140. package/dist/views/Account/Settings/index.js.map +1 -1
  141. package/dist/views/Account/ToggleTheme/index.js +38 -55
  142. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  143. package/dist/views/Account/index.client.js +16 -32
  144. package/dist/views/Account/index.client.js.map +1 -1
  145. package/dist/views/Account/index.js +144 -155
  146. package/dist/views/Account/index.js.map +1 -1
  147. package/dist/views/Account/metadata.js +8 -12
  148. package/dist/views/Account/metadata.js.map +1 -1
  149. package/dist/views/BrowseByFolder/buildView.js +139 -158
  150. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  151. package/dist/views/BrowseByFolder/index.js +16 -17
  152. package/dist/views/BrowseByFolder/index.js.map +1 -1
  153. package/dist/views/BrowseByFolder/metadata.js +13 -15
  154. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  155. package/dist/views/CollectionFolders/buildView.js +123 -143
  156. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  157. package/dist/views/CollectionFolders/index.js +16 -17
  158. package/dist/views/CollectionFolders/index.js.map +1 -1
  159. package/dist/views/CollectionFolders/metadata.js +18 -21
  160. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  161. package/dist/views/CollectionFolders/renderFolderViewSlots.js +58 -61
  162. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  163. package/dist/views/CollectionTrash/index.js +17 -18
  164. package/dist/views/CollectionTrash/index.js.map +1 -1
  165. package/dist/views/CollectionTrash/metadata.js +18 -21
  166. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  167. package/dist/views/CreateFirstUser/index.client.js +114 -101
  168. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  169. package/dist/views/CreateFirstUser/index.js +87 -81
  170. package/dist/views/CreateFirstUser/index.js.map +1 -1
  171. package/dist/views/CreateFirstUser/metadata.js +8 -12
  172. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  173. package/dist/views/Dashboard/Default/index.js +176 -152
  174. package/dist/views/Dashboard/Default/index.js.map +1 -1
  175. package/dist/views/Dashboard/index.js +97 -90
  176. package/dist/views/Dashboard/index.js.map +1 -1
  177. package/dist/views/Dashboard/metadata.js +10 -14
  178. package/dist/views/Dashboard/metadata.js.map +1 -1
  179. package/dist/views/Document/getCustomDocumentViewByKey.js +3 -2
  180. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  181. package/dist/views/Document/getCustomViewByRoute.js +27 -30
  182. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  183. package/dist/views/Document/getDocPreferences.js +40 -41
  184. package/dist/views/Document/getDocPreferences.js.map +1 -1
  185. package/dist/views/Document/getDocumentData.js +44 -55
  186. package/dist/views/Document/getDocumentData.js.map +1 -1
  187. package/dist/views/Document/getDocumentPermissions.js +77 -80
  188. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  189. package/dist/views/Document/getDocumentView.js +313 -283
  190. package/dist/views/Document/getDocumentView.js.map +1 -1
  191. package/dist/views/Document/getIsLocked.js +66 -66
  192. package/dist/views/Document/getIsLocked.js.map +1 -1
  193. package/dist/views/Document/getMetaBySegment.js +130 -136
  194. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  195. package/dist/views/Document/getVersions.js +204 -194
  196. package/dist/views/Document/getVersions.js.map +1 -1
  197. package/dist/views/Document/handleServerFunction.js +103 -128
  198. package/dist/views/Document/handleServerFunction.js.map +1 -1
  199. package/dist/views/Document/index.js +315 -354
  200. package/dist/views/Document/index.js.map +1 -1
  201. package/dist/views/Document/metadata.js +2 -1
  202. package/dist/views/Document/metadata.js.map +1 -1
  203. package/dist/views/Document/renderDocumentSlots.js +121 -132
  204. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  205. package/dist/views/Edit/index.js +10 -6
  206. package/dist/views/Edit/index.js.map +1 -1
  207. package/dist/views/Edit/metadata.js +36 -46
  208. package/dist/views/Edit/metadata.js.map +1 -1
  209. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +130 -164
  210. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  211. package/dist/views/ForgotPassword/index.js +79 -62
  212. package/dist/views/ForgotPassword/index.js.map +1 -1
  213. package/dist/views/ForgotPassword/metadata.js +8 -12
  214. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  215. package/dist/views/List/createSerializableValue.js +12 -11
  216. package/dist/views/List/createSerializableValue.js.map +1 -1
  217. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  218. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  219. package/dist/views/List/extractRelationshipDisplayValue.js +15 -14
  220. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  221. package/dist/views/List/extractValueOrRelationshipID.js +16 -15
  222. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  223. package/dist/views/List/handleGroupBy.js +133 -150
  224. package/dist/views/List/handleGroupBy.js.map +1 -1
  225. package/dist/views/List/handleServerFunction.js +96 -119
  226. package/dist/views/List/handleServerFunction.js.map +1 -1
  227. package/dist/views/List/index.js +305 -324
  228. package/dist/views/List/index.js.map +1 -1
  229. package/dist/views/List/metadata.js +17 -20
  230. package/dist/views/List/metadata.js.map +1 -1
  231. package/dist/views/List/renderListViewSlots.js +82 -75
  232. package/dist/views/List/renderListViewSlots.js.map +1 -1
  233. package/dist/views/List/resolveAllFilterOptions.js +43 -45
  234. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  235. package/dist/views/List/transformColumnsToSelect.js +9 -8
  236. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  237. package/dist/views/Login/LoginField/index.js +57 -89
  238. package/dist/views/Login/LoginField/index.js.map +1 -1
  239. package/dist/views/Login/LoginForm/index.js +104 -157
  240. package/dist/views/Login/LoginForm/index.js.map +1 -1
  241. package/dist/views/Login/index.js +82 -85
  242. package/dist/views/Login/index.js.map +1 -1
  243. package/dist/views/Login/metadata.js +8 -12
  244. package/dist/views/Login/metadata.js.map +1 -1
  245. package/dist/views/Logout/LogoutClient.js +83 -119
  246. package/dist/views/Logout/LogoutClient.js.map +1 -1
  247. package/dist/views/Logout/index.js +29 -29
  248. package/dist/views/Logout/index.js.map +1 -1
  249. package/dist/views/Logout/metadata.js +7 -11
  250. package/dist/views/Logout/metadata.js.map +1 -1
  251. package/dist/views/NotFound/index.client.js +71 -82
  252. package/dist/views/NotFound/index.client.js.map +1 -1
  253. package/dist/views/NotFound/index.js +71 -72
  254. package/dist/views/NotFound/index.js.map +1 -1
  255. package/dist/views/NotFound/metadata.js +7 -9
  256. package/dist/views/NotFound/metadata.js.map +1 -1
  257. package/dist/views/ResetPassword/ResetPasswordForm/index.js +94 -107
  258. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  259. package/dist/views/ResetPassword/index.js +93 -73
  260. package/dist/views/ResetPassword/index.js.map +1 -1
  261. package/dist/views/ResetPassword/metadata.js +8 -12
  262. package/dist/views/ResetPassword/metadata.js.map +1 -1
  263. package/dist/views/Root/attachViewActions.js +18 -23
  264. package/dist/views/Root/attachViewActions.js.map +1 -1
  265. package/dist/views/Root/generateCustomViewMetadata.js +19 -21
  266. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  267. package/dist/views/Root/getCustomViewByKey.js +12 -14
  268. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  269. package/dist/views/Root/getCustomViewByRoute.js +31 -42
  270. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  271. package/dist/views/Root/getDocumentViewInfo.js +24 -23
  272. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  273. package/dist/views/Root/getRouteData.js +333 -325
  274. package/dist/views/Root/getRouteData.js.map +1 -1
  275. package/dist/views/Root/index.js +247 -269
  276. package/dist/views/Root/index.js.map +1 -1
  277. package/dist/views/Root/isPathMatchingRoute.js +21 -26
  278. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  279. package/dist/views/Root/metadata.js +176 -181
  280. package/dist/views/Root/metadata.js.map +1 -1
  281. package/dist/views/Unauthorized/index.js +54 -46
  282. package/dist/views/Unauthorized/index.js.map +1 -1
  283. package/dist/views/Unauthorized/metadata.js +8 -12
  284. package/dist/views/Unauthorized/metadata.js.map +1 -1
  285. package/dist/views/Verify/index.client.js +25 -43
  286. package/dist/views/Verify/index.client.js.map +1 -1
  287. package/dist/views/Verify/index.js +68 -62
  288. package/dist/views/Verify/index.js.map +1 -1
  289. package/dist/views/Verify/metadata.js +8 -12
  290. package/dist/views/Verify/metadata.js.map +1 -1
  291. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  292. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  293. package/dist/views/Version/Default/SetStepNav.js +86 -127
  294. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  295. package/dist/views/Version/Default/index.js +380 -236
  296. package/dist/views/Version/Default/index.js.map +1 -1
  297. package/dist/views/Version/Default/types.js +2 -1
  298. package/dist/views/Version/Default/types.js.map +1 -1
  299. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +102 -119
  300. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  301. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +78 -73
  302. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  303. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +363 -408
  304. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  305. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +40 -51
  306. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  307. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +35 -67
  308. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  309. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +59 -56
  310. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  311. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +139 -117
  312. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  313. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +36 -41
  314. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  315. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +192 -178
  316. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  317. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -11
  318. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  319. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +48 -73
  320. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  321. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +132 -143
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +56 -81
  324. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  325. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +251 -210
  326. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  327. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +23 -22
  328. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  329. package/dist/views/Version/RenderFieldsToDiff/index.js +12 -9
  330. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  331. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +213 -228
  332. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  333. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +1005 -826
  334. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  335. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +2 -1
  336. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  337. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +44 -43
  338. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  339. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +25 -22
  340. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -1
  341. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +32 -36
  342. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  343. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +145 -129
  344. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  345. package/dist/views/Version/Restore/index.js +116 -91
  346. package/dist/views/Version/Restore/index.js.map +1 -1
  347. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +33 -50
  348. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  349. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +170 -226
  350. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  351. package/dist/views/Version/SelectComparison/index.js +73 -50
  352. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  353. package/dist/views/Version/SelectComparison/types.js +2 -1
  354. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  355. package/dist/views/Version/SelectLocales/index.js +34 -32
  356. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  357. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +104 -95
  358. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  359. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +23 -27
  360. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  361. package/dist/views/Version/fetchVersions.js +113 -138
  362. package/dist/views/Version/fetchVersions.js.map +1 -1
  363. package/dist/views/Version/index.js +325 -323
  364. package/dist/views/Version/index.js.map +1 -1
  365. package/dist/views/Version/metadata.js +43 -50
  366. package/dist/views/Version/metadata.js.map +1 -1
  367. package/dist/views/Versions/buildColumns.js +95 -79
  368. package/dist/views/Versions/buildColumns.js.map +1 -1
  369. package/dist/views/Versions/cells/AutosaveCell/index.js +34 -38
  370. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  371. package/dist/views/Versions/cells/CreatedAt/index.js +32 -53
  372. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  373. package/dist/views/Versions/cells/ID/index.js +10 -8
  374. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  375. package/dist/views/Versions/index.client.js +106 -83
  376. package/dist/views/Versions/index.client.js.map +1 -1
  377. package/dist/views/Versions/index.js +140 -140
  378. package/dist/views/Versions/index.js.map +1 -1
  379. package/dist/views/Versions/metadata.js +37 -44
  380. package/dist/views/Versions/metadata.js.map +1 -1
  381. package/dist/views/Versions/types.js +2 -1
  382. package/dist/views/Versions/types.js.map +1 -1
  383. package/dist/withPayload.js +216 -169
  384. package/dist/withPayload.js.map +1 -1
  385. package/package.json +9 -8
  386. package/dist/prod/styles.css +0 -1
@@ -1,13 +1,16 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { buildVersionFields } from './buildVersionFields.js';
3
3
  import { RenderVersionFieldsToDiff } from './RenderVersionFieldsToDiff.js';
4
- export const RenderDiff = args => {
5
- const {
6
- versionFields
7
- } = buildVersionFields(args);
8
- return /*#__PURE__*/_jsx(RenderVersionFieldsToDiff, {
9
- parent: true,
10
- versionFields: versionFields
11
- });
4
+ export const RenderDiff = (args)=>{
5
+ const { versionFields } = buildVersionFields(args);
6
+ return /*#__PURE__*/ _jsxDEV(RenderVersionFieldsToDiff, {
7
+ parent: true,
8
+ versionFields: versionFields
9
+ }, void 0, false, {
10
+ fileName: "src/views/Version/RenderFieldsToDiff/index.tsx",
11
+ lineNumber: 7,
12
+ columnNumber: 10
13
+ }, this);
12
14
  };
15
+
13
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["buildVersionFields","RenderVersionFieldsToDiff","RenderDiff","args","versionFields","_jsx","parent"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["import { buildVersionFields, type BuildVersionFieldsArgs } from './buildVersionFields.js'\nimport { RenderVersionFieldsToDiff } from './RenderVersionFieldsToDiff.js'\n\nexport const RenderDiff = (args: BuildVersionFieldsArgs): React.ReactNode => {\n const { versionFields } = buildVersionFields(args)\n\n return <RenderVersionFieldsToDiff parent={true} versionFields={versionFields} />\n}\n"],"mappings":";AAAA,SAASA,kBAAkB,QAAqC;AAChE,SAASC,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,UAAA,GAAcC,IAAA;EACzB,MAAM;IAAEC;EAAa,CAAE,GAAGJ,kBAAA,CAAmBG,IAAA;EAE7C,oBAAOE,IAAA,CAACJ,yBAAA;IAA0BK,MAAA,EAAQ;IAAMF,aAAA,EAAeA;;AACjE","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["import { buildVersionFields, type BuildVersionFieldsArgs } from './buildVersionFields.js'\nimport { RenderVersionFieldsToDiff } from './RenderVersionFieldsToDiff.js'\n\nexport const RenderDiff = (args: BuildVersionFieldsArgs): React.ReactNode => {\n const { versionFields } = buildVersionFields(args)\n\n return <RenderVersionFieldsToDiff parent={true} versionFields={versionFields} />\n}\n"],"names":["buildVersionFields","RenderVersionFieldsToDiff","RenderDiff","args","versionFields","parent"],"mappings":";AAAA,SAASA,kBAAkB,QAAqC,0BAAyB;AACzF,SAASC,yBAAyB,QAAQ,iCAAgC;AAE1E,OAAO,MAAMC,aAAa,CAACC;IACzB,MAAM,EAAEC,aAAa,EAAE,GAAGJ,mBAAmBG;IAE7C,qBAAO,QAACF;QAA0BI,QAAQ;QAAMD,eAAeA;;;;;;AACjE,EAAC"}
@@ -4,239 +4,224 @@ import { getFieldsForRowComparison } from './getFieldsForRowComparison.js';
4
4
  /**
5
5
  * Recursively counts the number of changed fields between comparison and
6
6
  * version data for a given set of fields.
7
- */
8
- export function countChangedFields({
9
- config,
10
- fields,
11
- locales,
12
- parentIsLocalized,
13
- valueFrom,
14
- valueTo
15
- }) {
16
- let count = 0;
17
- fields.forEach(field => {
18
- // Don't count the id field since it is not displayed in the UI
19
- if ('name' in field && field.name === 'id') {
20
- return;
21
- }
22
- const fieldType = field.type;
23
- switch (fieldType) {
24
- // Iterable fields are arrays and blocks fields. We iterate over each row and
25
- // count the number of changed fields in each.
26
- case 'array':
27
- case 'blocks':
28
- {
29
- if (locales && fieldShouldBeLocalized({
30
- field,
31
- parentIsLocalized
32
- })) {
33
- locales.forEach(locale => {
34
- const valueFromRows = valueFrom?.[field.name]?.[locale] ?? [];
35
- const valueToRows = valueTo?.[field.name]?.[locale] ?? [];
36
- count += countChangedFieldsInRows({
37
- config,
38
- field,
39
- locales,
40
- parentIsLocalized: parentIsLocalized || field.localized,
41
- valueFromRows,
42
- valueToRows
43
- });
44
- });
45
- } else {
46
- const valueFromRows = valueFrom?.[field.name] ?? [];
47
- const valueToRows = valueTo?.[field.name] ?? [];
48
- count += countChangedFieldsInRows({
49
- config,
50
- field,
51
- locales,
52
- parentIsLocalized: parentIsLocalized || field.localized,
53
- valueFromRows,
54
- valueToRows
55
- });
56
- }
57
- break;
7
+ */ export function countChangedFields({ config, fields, locales, parentIsLocalized, valueFrom, valueTo }) {
8
+ let count = 0;
9
+ fields.forEach((field)=>{
10
+ // Don't count the id field since it is not displayed in the UI
11
+ if ('name' in field && field.name === 'id') {
12
+ return;
58
13
  }
59
- // Regular fields without nested fields.
60
- case 'checkbox':
61
- case 'code':
62
- case 'date':
63
- case 'email':
64
- case 'join':
65
- case 'json':
66
- case 'number':
67
- case 'point':
68
- case 'radio':
69
- case 'relationship':
70
- case 'richText':
71
- case 'select':
72
- case 'text':
73
- case 'textarea':
74
- case 'upload':
75
- {
76
- // Fields that have a name and contain data. We can just check if the data has changed.
77
- if (locales && fieldShouldBeLocalized({
78
- field,
79
- parentIsLocalized
80
- })) {
81
- locales.forEach(locale => {
82
- if (fieldHasChanges(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])) {
83
- count++;
84
- }
85
- });
86
- } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[field.name])) {
87
- count++;
88
- }
89
- break;
14
+ const fieldType = field.type;
15
+ switch(fieldType){
16
+ // Iterable fields are arrays and blocks fields. We iterate over each row and
17
+ // count the number of changed fields in each.
18
+ case 'array':
19
+ case 'blocks':
20
+ {
21
+ if (locales && fieldShouldBeLocalized({
22
+ field,
23
+ parentIsLocalized
24
+ })) {
25
+ locales.forEach((locale)=>{
26
+ const valueFromRows = valueFrom?.[field.name]?.[locale] ?? [];
27
+ const valueToRows = valueTo?.[field.name]?.[locale] ?? [];
28
+ count += countChangedFieldsInRows({
29
+ config,
30
+ field,
31
+ locales,
32
+ parentIsLocalized: parentIsLocalized || field.localized,
33
+ valueFromRows,
34
+ valueToRows
35
+ });
36
+ });
37
+ } else {
38
+ const valueFromRows = valueFrom?.[field.name] ?? [];
39
+ const valueToRows = valueTo?.[field.name] ?? [];
40
+ count += countChangedFieldsInRows({
41
+ config,
42
+ field,
43
+ locales,
44
+ parentIsLocalized: parentIsLocalized || field.localized,
45
+ valueFromRows,
46
+ valueToRows
47
+ });
48
+ }
49
+ break;
50
+ }
51
+ // Regular fields without nested fields.
52
+ case 'checkbox':
53
+ case 'code':
54
+ case 'date':
55
+ case 'email':
56
+ case 'join':
57
+ case 'json':
58
+ case 'number':
59
+ case 'point':
60
+ case 'radio':
61
+ case 'relationship':
62
+ case 'richText':
63
+ case 'select':
64
+ case 'text':
65
+ case 'textarea':
66
+ case 'upload':
67
+ {
68
+ // Fields that have a name and contain data. We can just check if the data has changed.
69
+ if (locales && fieldShouldBeLocalized({
70
+ field,
71
+ parentIsLocalized
72
+ })) {
73
+ locales.forEach((locale)=>{
74
+ if (fieldHasChanges(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])) {
75
+ count++;
76
+ }
77
+ });
78
+ } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[field.name])) {
79
+ count++;
80
+ }
81
+ break;
82
+ }
83
+ // Fields that have nested fields, but don't nest their fields' data.
84
+ case 'collapsible':
85
+ case 'row':
86
+ {
87
+ count += countChangedFields({
88
+ config,
89
+ fields: field.fields,
90
+ locales,
91
+ parentIsLocalized: parentIsLocalized || field.localized,
92
+ valueFrom,
93
+ valueTo
94
+ });
95
+ break;
96
+ }
97
+ // Fields that have nested fields and nest their fields' data.
98
+ case 'group':
99
+ {
100
+ if (groupHasName(field)) {
101
+ if (locales && fieldShouldBeLocalized({
102
+ field,
103
+ parentIsLocalized
104
+ })) {
105
+ locales.forEach((locale)=>{
106
+ count += countChangedFields({
107
+ config,
108
+ fields: field.fields,
109
+ locales,
110
+ parentIsLocalized: parentIsLocalized || field.localized,
111
+ valueFrom: valueFrom?.[field.name]?.[locale],
112
+ valueTo: valueTo?.[field.name]?.[locale]
113
+ });
114
+ });
115
+ } else {
116
+ count += countChangedFields({
117
+ config,
118
+ fields: field.fields,
119
+ locales,
120
+ parentIsLocalized: parentIsLocalized || field.localized,
121
+ valueFrom: valueFrom?.[field.name],
122
+ valueTo: valueTo?.[field.name]
123
+ });
124
+ }
125
+ } else {
126
+ // Unnamed group field: data is NOT nested under `field.name`
127
+ count += countChangedFields({
128
+ config,
129
+ fields: field.fields,
130
+ locales,
131
+ parentIsLocalized: parentIsLocalized || field.localized,
132
+ valueFrom,
133
+ valueTo
134
+ });
135
+ }
136
+ break;
137
+ }
138
+ // Each tab in a tabs field has nested fields. The fields data may be
139
+ // nested or not depending on the existence of a name property.
140
+ case 'tabs':
141
+ {
142
+ field.tabs.forEach((tab)=>{
143
+ if ('name' in tab && locales && tab.localized) {
144
+ // Named localized tab
145
+ locales.forEach((locale)=>{
146
+ count += countChangedFields({
147
+ config,
148
+ fields: tab.fields,
149
+ locales,
150
+ parentIsLocalized: parentIsLocalized || tab.localized,
151
+ valueFrom: valueFrom?.[tab.name]?.[locale],
152
+ valueTo: valueTo?.[tab.name]?.[locale]
153
+ });
154
+ });
155
+ } else if ('name' in tab) {
156
+ // Named tab
157
+ count += countChangedFields({
158
+ config,
159
+ fields: tab.fields,
160
+ locales,
161
+ parentIsLocalized: parentIsLocalized || tab.localized,
162
+ valueFrom: valueFrom?.[tab.name],
163
+ valueTo: valueTo?.[tab.name]
164
+ });
165
+ } else {
166
+ // Unnamed tab
167
+ count += countChangedFields({
168
+ config,
169
+ fields: tab.fields,
170
+ locales,
171
+ parentIsLocalized: parentIsLocalized || tab.localized,
172
+ valueFrom,
173
+ valueTo
174
+ });
175
+ }
176
+ });
177
+ break;
178
+ }
179
+ // UI fields don't have data and are not displayed in the version view
180
+ // so we can ignore them.
181
+ case 'ui':
182
+ {
183
+ break;
184
+ }
185
+ default:
186
+ {
187
+ const _exhaustiveCheck = fieldType;
188
+ throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`);
189
+ }
90
190
  }
91
- // Fields that have nested fields, but don't nest their fields' data.
92
- case 'collapsible':
93
- case 'row':
94
- {
95
- count += countChangedFields({
191
+ });
192
+ return count;
193
+ }
194
+ export function countChangedFieldsInRows({ config, field, locales, parentIsLocalized, valueFromRows = [], valueToRows = [] }) {
195
+ let count = 0;
196
+ let i = 0;
197
+ while(valueFromRows[i] || valueToRows[i]){
198
+ const valueFromRow = valueFromRows?.[i] || {};
199
+ const valueToRow = valueToRows?.[i] || {};
200
+ const { fields: rowFields } = getFieldsForRowComparison({
201
+ baseVersionField: {
202
+ type: 'text',
203
+ fields: [],
204
+ path: '',
205
+ schemaPath: ''
206
+ },
207
+ // Doesn't matter, as we don't need the versionFields output here
208
+ config,
209
+ field,
210
+ row: i,
211
+ valueFromRow,
212
+ valueToRow
213
+ });
214
+ count += countChangedFields({
96
215
  config,
97
- fields: field.fields,
216
+ fields: rowFields,
98
217
  locales,
99
218
  parentIsLocalized: parentIsLocalized || field.localized,
100
- valueFrom,
101
- valueTo
102
- });
103
- break;
104
- }
105
- // Fields that have nested fields and nest their fields' data.
106
- case 'group':
107
- {
108
- if (groupHasName(field)) {
109
- if (locales && fieldShouldBeLocalized({
110
- field,
111
- parentIsLocalized
112
- })) {
113
- locales.forEach(locale => {
114
- count += countChangedFields({
115
- config,
116
- fields: field.fields,
117
- locales,
118
- parentIsLocalized: parentIsLocalized || field.localized,
119
- valueFrom: valueFrom?.[field.name]?.[locale],
120
- valueTo: valueTo?.[field.name]?.[locale]
121
- });
122
- });
123
- } else {
124
- count += countChangedFields({
125
- config,
126
- fields: field.fields,
127
- locales,
128
- parentIsLocalized: parentIsLocalized || field.localized,
129
- valueFrom: valueFrom?.[field.name],
130
- valueTo: valueTo?.[field.name]
131
- });
132
- }
133
- } else {
134
- // Unnamed group field: data is NOT nested under `field.name`
135
- count += countChangedFields({
136
- config,
137
- fields: field.fields,
138
- locales,
139
- parentIsLocalized: parentIsLocalized || field.localized,
140
- valueFrom,
141
- valueTo
142
- });
143
- }
144
- break;
145
- }
146
- // Each tab in a tabs field has nested fields. The fields data may be
147
- // nested or not depending on the existence of a name property.
148
- case 'tabs':
149
- {
150
- field.tabs.forEach(tab => {
151
- if ('name' in tab && locales && tab.localized) {
152
- // Named localized tab
153
- locales.forEach(locale => {
154
- count += countChangedFields({
155
- config,
156
- fields: tab.fields,
157
- locales,
158
- parentIsLocalized: parentIsLocalized || tab.localized,
159
- valueFrom: valueFrom?.[tab.name]?.[locale],
160
- valueTo: valueTo?.[tab.name]?.[locale]
161
- });
162
- });
163
- } else if ('name' in tab) {
164
- // Named tab
165
- count += countChangedFields({
166
- config,
167
- fields: tab.fields,
168
- locales,
169
- parentIsLocalized: parentIsLocalized || tab.localized,
170
- valueFrom: valueFrom?.[tab.name],
171
- valueTo: valueTo?.[tab.name]
172
- });
173
- } else {
174
- // Unnamed tab
175
- count += countChangedFields({
176
- config,
177
- fields: tab.fields,
178
- locales,
179
- parentIsLocalized: parentIsLocalized || tab.localized,
180
- valueFrom,
181
- valueTo
182
- });
183
- }
184
- });
185
- break;
186
- }
187
- // UI fields don't have data and are not displayed in the version view
188
- // so we can ignore them.
189
- case 'ui':
190
- {
191
- break;
192
- }
193
- default:
194
- {
195
- const _exhaustiveCheck = fieldType;
196
- throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`);
197
- }
219
+ valueFrom: valueFromRow,
220
+ valueTo: valueToRow
221
+ });
222
+ i++;
198
223
  }
199
- });
200
- return count;
201
- }
202
- export function countChangedFieldsInRows({
203
- config,
204
- field,
205
- locales,
206
- parentIsLocalized,
207
- valueFromRows = [],
208
- valueToRows = []
209
- }) {
210
- let count = 0;
211
- let i = 0;
212
- while (valueFromRows[i] || valueToRows[i]) {
213
- const valueFromRow = valueFromRows?.[i] || {};
214
- const valueToRow = valueToRows?.[i] || {};
215
- const {
216
- fields: rowFields
217
- } = getFieldsForRowComparison({
218
- baseVersionField: {
219
- type: 'text',
220
- fields: [],
221
- path: '',
222
- schemaPath: ''
223
- },
224
- config,
225
- field,
226
- row: i,
227
- valueFromRow,
228
- valueToRow
229
- });
230
- count += countChangedFields({
231
- config,
232
- fields: rowFields,
233
- locales,
234
- parentIsLocalized: parentIsLocalized || field.localized,
235
- valueFrom: valueFromRow,
236
- valueTo: valueToRow
237
- });
238
- i++;
239
- }
240
- return count;
224
+ return count;
241
225
  }
226
+
242
227
  //# sourceMappingURL=countChangedFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.js","names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","config","fields","locales","parentIsLocalized","valueFrom","valueTo","count","forEach","field","name","fieldType","type","locale","valueFromRows","valueToRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","valueFromRow","valueToRow","rowFields","baseVersionField","path","schemaPath","row"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFrom: unknown\n valueTo: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const valueFromRows = valueFrom?.[field.name]?.[locale] ?? []\n const valueToRows = valueTo?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\n })\n })\n } else {\n const valueFromRows = valueFrom?.[field.name] ?? []\n const valueToRows = valueTo?.[field.name] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name]?.[locale],\n valueTo: valueTo?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name],\n valueTo: valueTo?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name]?.[locale],\n valueTo: valueTo?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name],\n valueTo: valueTo?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom,\n valueTo,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFromRows: unknown[]\n valueToRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows = [],\n valueToRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (valueFromRows[i] || valueToRows[i]) {\n const valueFromRow = valueFromRows?.[i] || {}\n const valueToRow = valueToRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n config,\n field,\n row: i,\n valueFromRow,\n valueToRow,\n })\n\n count += countChangedFields({\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFromRow,\n valueTo: valueToRow,\n })\n\n i++\n }\n return count\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.ts"],"sourcesContent":["import type { ArrayFieldClient, BlocksFieldClient, ClientConfig, ClientField } from 'payload'\n\nimport { fieldShouldBeLocalized, groupHasName } from 'payload/shared'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\nimport { getFieldsForRowComparison } from './getFieldsForRowComparison.js'\n\ntype Args = {\n config: ClientConfig\n fields: ClientField[]\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFrom: unknown\n valueTo: unknown\n}\n\n/**\n * Recursively counts the number of changed fields between comparison and\n * version data for a given set of fields.\n */\nexport function countChangedFields({\n config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n}: Args) {\n let count = 0\n\n fields.forEach((field) => {\n // Don't count the id field since it is not displayed in the UI\n if ('name' in field && field.name === 'id') {\n return\n }\n const fieldType = field.type\n switch (fieldType) {\n // Iterable fields are arrays and blocks fields. We iterate over each row and\n // count the number of changed fields in each.\n case 'array':\n case 'blocks': {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n const valueFromRows = valueFrom?.[field.name]?.[locale] ?? []\n const valueToRows = valueTo?.[field.name]?.[locale] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\n })\n })\n } else {\n const valueFromRows = valueFrom?.[field.name] ?? []\n const valueToRows = valueTo?.[field.name] ?? []\n count += countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFromRows,\n valueToRows,\n })\n }\n break\n }\n\n // Regular fields without nested fields.\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'join':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload': {\n // Fields that have a name and contain data. We can just check if the data has changed.\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n if (\n fieldHasChanges(valueTo?.[field.name]?.[locale], valueFrom?.[field.name]?.[locale])\n ) {\n count++\n }\n })\n } else if (fieldHasChanges(valueTo?.[field.name], valueFrom?.[field.name])) {\n count++\n }\n break\n }\n // Fields that have nested fields, but don't nest their fields' data.\n case 'collapsible':\n case 'row': {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\n })\n\n break\n }\n\n // Fields that have nested fields and nest their fields' data.\n case 'group': {\n if (groupHasName(field)) {\n if (locales && fieldShouldBeLocalized({ field, parentIsLocalized })) {\n locales.forEach((locale) => {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name]?.[locale],\n valueTo: valueTo?.[field.name]?.[locale],\n })\n })\n } else {\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFrom?.[field.name],\n valueTo: valueTo?.[field.name],\n })\n }\n } else {\n // Unnamed group field: data is NOT nested under `field.name`\n count += countChangedFields({\n config,\n fields: field.fields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom,\n valueTo,\n })\n }\n break\n }\n\n // Each tab in a tabs field has nested fields. The fields data may be\n // nested or not depending on the existence of a name property.\n case 'tabs': {\n field.tabs.forEach((tab) => {\n if ('name' in tab && locales && tab.localized) {\n // Named localized tab\n locales.forEach((locale) => {\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name]?.[locale],\n valueTo: valueTo?.[tab.name]?.[locale],\n })\n })\n } else if ('name' in tab) {\n // Named tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom: valueFrom?.[tab.name],\n valueTo: valueTo?.[tab.name],\n })\n } else {\n // Unnamed tab\n count += countChangedFields({\n config,\n fields: tab.fields,\n locales,\n parentIsLocalized: parentIsLocalized || tab.localized,\n valueFrom,\n valueTo,\n })\n }\n })\n break\n }\n\n // UI fields don't have data and are not displayed in the version view\n // so we can ignore them.\n case 'ui': {\n break\n }\n\n default: {\n const _exhaustiveCheck: never = fieldType\n throw new Error(`Unexpected field.type in countChangedFields : ${String(fieldType)}`)\n }\n }\n })\n\n return count\n}\n\ntype countChangedFieldsInRowsArgs = {\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueFromRows: unknown[]\n valueToRows: unknown[]\n}\n\nexport function countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows = [],\n valueToRows = [],\n}: countChangedFieldsInRowsArgs) {\n let count = 0\n let i = 0\n\n while (valueFromRows[i] || valueToRows[i]) {\n const valueFromRow = valueFromRows?.[i] || {}\n const valueToRow = valueToRows?.[i] || {}\n\n const { fields: rowFields } = getFieldsForRowComparison({\n baseVersionField: { type: 'text', fields: [], path: '', schemaPath: '' }, // Doesn't matter, as we don't need the versionFields output here\n config,\n field,\n row: i,\n valueFromRow,\n valueToRow,\n })\n\n count += countChangedFields({\n config,\n fields: rowFields,\n locales,\n parentIsLocalized: parentIsLocalized || field.localized,\n valueFrom: valueFromRow,\n valueTo: valueToRow,\n })\n\n i++\n }\n return count\n}\n"],"names":["fieldShouldBeLocalized","groupHasName","fieldHasChanges","getFieldsForRowComparison","countChangedFields","config","fields","locales","parentIsLocalized","valueFrom","valueTo","count","forEach","field","name","fieldType","type","locale","valueFromRows","valueToRows","countChangedFieldsInRows","localized","tabs","tab","_exhaustiveCheck","Error","String","i","valueFromRow","valueToRow","rowFields","baseVersionField","path","schemaPath","row"],"mappings":"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"}