@payloadcms/next 3.68.0-internal-debug.591ab42 → 3.68.0-internal.2b8df4a

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 +58 -52
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.js +44 -39
  4. package/dist/auth/logout.js.map +1 -1
  5. package/dist/auth/refresh.js +47 -45
  6. package/dist/auth/refresh.js.map +1 -1
  7. package/dist/config.js +0 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +15 -9
  10. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +71 -40
  12. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +59 -65
  14. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/index.js +70 -80
  16. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +23 -16
  18. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +69 -61
  20. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  21. package/dist/elements/DocumentHeader/index.js +28 -48
  22. package/dist/elements/DocumentHeader/index.js.map +1 -1
  23. package/dist/elements/FormHeader/index.js +16 -30
  24. package/dist/elements/FormHeader/index.js.map +1 -1
  25. package/dist/elements/Logo/index.js +34 -19
  26. package/dist/elements/Logo/index.js.map +1 -1
  27. package/dist/elements/Nav/NavHamburger/index.js +44 -23
  28. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  29. package/dist/elements/Nav/NavWrapper/index.js +54 -28
  30. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  31. package/dist/elements/Nav/SettingsMenuButton/index.js +39 -33
  32. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  33. package/dist/elements/Nav/getNavPrefs.js +22 -27
  34. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  35. package/dist/elements/Nav/index.client.js +118 -97
  36. package/dist/elements/Nav/index.client.js.map +1 -1
  37. package/dist/elements/Nav/index.js +127 -148
  38. package/dist/elements/Nav/index.js.map +1 -1
  39. package/dist/exports/auth.js +0 -1
  40. package/dist/exports/auth.js.map +1 -1
  41. package/dist/exports/client.js +1 -1
  42. package/dist/exports/client.js.map +1 -1
  43. package/dist/exports/layouts.js +0 -1
  44. package/dist/exports/layouts.js.map +1 -1
  45. package/dist/exports/routes.js +0 -1
  46. package/dist/exports/routes.js.map +1 -1
  47. package/dist/exports/rsc.js +0 -1
  48. package/dist/exports/rsc.js.map +1 -1
  49. package/dist/exports/templates.js +0 -1
  50. package/dist/exports/templates.js.map +1 -1
  51. package/dist/exports/utilities.js +12 -7
  52. package/dist/exports/utilities.js.map +1 -1
  53. package/dist/exports/views.js +0 -1
  54. package/dist/exports/views.js.map +1 -1
  55. package/dist/index.js +0 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/layouts/Root/NestProviders.js +20 -21
  58. package/dist/layouts/Root/NestProviders.js.map +1 -1
  59. package/dist/layouts/Root/checkDependencies.js +41 -49
  60. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  61. package/dist/layouts/Root/index.js +103 -128
  62. package/dist/layouts/Root/index.js.map +1 -1
  63. package/dist/prod/styles.css +1 -0
  64. package/dist/routes/graphql/handler.js +122 -114
  65. package/dist/routes/graphql/handler.js.map +1 -1
  66. package/dist/routes/graphql/index.js +0 -1
  67. package/dist/routes/graphql/index.js.map +1 -1
  68. package/dist/routes/graphql/playground.js +23 -24
  69. package/dist/routes/graphql/playground.js.map +1 -1
  70. package/dist/routes/index.js +0 -1
  71. package/dist/routes/index.js.map +1 -1
  72. package/dist/routes/rest/index.js +19 -20
  73. package/dist/routes/rest/index.js.map +1 -1
  74. package/dist/routes/rest/og/image.js +79 -103
  75. package/dist/routes/rest/og/image.js.map +1 -1
  76. package/dist/routes/rest/og/index.js +54 -59
  77. package/dist/routes/rest/og/index.js.map +1 -1
  78. package/dist/templates/Default/NavHamburger/index.js +20 -12
  79. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  80. package/dist/templates/Default/Wrapper/index.js +44 -20
  81. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  82. package/dist/templates/Default/index.js +133 -183
  83. package/dist/templates/Default/index.js.map +1 -1
  84. package/dist/templates/Minimal/index.js +17 -26
  85. package/dist/templates/Minimal/index.js.map +1 -1
  86. package/dist/utilities/getExistingAuthToken.js +2 -3
  87. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  88. package/dist/utilities/getNextRequestI18n.js +13 -12
  89. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  90. package/dist/utilities/getPayloadHMR.js +5 -5
  91. package/dist/utilities/getPayloadHMR.js.map +1 -1
  92. package/dist/utilities/getPreferences.js +22 -27
  93. package/dist/utilities/getPreferences.js.map +1 -1
  94. package/dist/utilities/getRequestLocale.js +14 -13
  95. package/dist/utilities/getRequestLocale.js.map +1 -1
  96. package/dist/utilities/getRequestTheme.js +19 -19
  97. package/dist/utilities/getRequestTheme.js.map +1 -1
  98. package/dist/utilities/getRouteWithoutAdmin.js +5 -3
  99. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  100. package/dist/utilities/getVisibleEntities.js +23 -12
  101. package/dist/utilities/getVisibleEntities.js.map +1 -1
  102. package/dist/utilities/handleAuthRedirect.js +36 -22
  103. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  104. package/dist/utilities/handleServerFunctions.js +39 -32
  105. package/dist/utilities/handleServerFunctions.js.map +1 -1
  106. package/dist/utilities/initReq.js +96 -78
  107. package/dist/utilities/initReq.js.map +1 -1
  108. package/dist/utilities/isCustomAdminView.js +26 -22
  109. package/dist/utilities/isCustomAdminView.js.map +1 -1
  110. package/dist/utilities/isPublicAdminRoute.js +20 -26
  111. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  112. package/dist/utilities/meta.js +63 -68
  113. package/dist/utilities/meta.js.map +1 -1
  114. package/dist/utilities/selectiveCache.js +26 -25
  115. package/dist/utilities/selectiveCache.js.map +1 -1
  116. package/dist/utilities/setPayloadAuthCookie.js +22 -19
  117. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  118. package/dist/utilities/slugify.js +33 -24
  119. package/dist/utilities/slugify.js.map +1 -1
  120. package/dist/utilities/timestamp.js +6 -7
  121. package/dist/utilities/timestamp.js.map +1 -1
  122. package/dist/views/API/LocaleSelector/index.js +39 -17
  123. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  124. package/dist/views/API/RenderJSON/index.js +126 -171
  125. package/dist/views/API/RenderJSON/index.js.map +1 -1
  126. package/dist/views/API/index.client.js +195 -287
  127. package/dist/views/API/index.client.js.map +1 -1
  128. package/dist/views/API/index.js +2 -7
  129. package/dist/views/API/index.js.map +1 -1
  130. package/dist/views/API/metadata.js +23 -18
  131. package/dist/views/API/metadata.js.map +1 -1
  132. package/dist/views/Account/ResetPreferences/index.js +91 -74
  133. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  134. package/dist/views/Account/Settings/LanguageSelector.js +47 -18
  135. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  136. package/dist/views/Account/Settings/index.js +28 -62
  137. package/dist/views/Account/Settings/index.js.map +1 -1
  138. package/dist/views/Account/ToggleTheme/index.js +55 -38
  139. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  140. package/dist/views/Account/index.client.js +32 -16
  141. package/dist/views/Account/index.client.js.map +1 -1
  142. package/dist/views/Account/index.js +155 -144
  143. package/dist/views/Account/index.js.map +1 -1
  144. package/dist/views/Account/metadata.js +12 -8
  145. package/dist/views/Account/metadata.js.map +1 -1
  146. package/dist/views/BrowseByFolder/buildView.js +158 -139
  147. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  148. package/dist/views/BrowseByFolder/index.js +16 -16
  149. package/dist/views/BrowseByFolder/index.js.map +1 -1
  150. package/dist/views/BrowseByFolder/metadata.js +15 -13
  151. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  152. package/dist/views/CollectionFolders/buildView.js +143 -123
  153. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  154. package/dist/views/CollectionFolders/index.js +16 -16
  155. package/dist/views/CollectionFolders/index.js.map +1 -1
  156. package/dist/views/CollectionFolders/metadata.js +21 -18
  157. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  158. package/dist/views/CollectionFolders/renderFolderViewSlots.js +61 -58
  159. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  160. package/dist/views/CollectionTrash/index.js +17 -17
  161. package/dist/views/CollectionTrash/index.js.map +1 -1
  162. package/dist/views/CollectionTrash/metadata.js +21 -18
  163. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  164. package/dist/views/CreateFirstUser/index.client.js +101 -114
  165. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  166. package/dist/views/CreateFirstUser/index.js +81 -87
  167. package/dist/views/CreateFirstUser/index.js.map +1 -1
  168. package/dist/views/CreateFirstUser/metadata.js +12 -8
  169. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  170. package/dist/views/Dashboard/Default/index.js +152 -176
  171. package/dist/views/Dashboard/Default/index.js.map +1 -1
  172. package/dist/views/Dashboard/index.js +90 -97
  173. package/dist/views/Dashboard/index.js.map +1 -1
  174. package/dist/views/Dashboard/metadata.js +14 -10
  175. package/dist/views/Dashboard/metadata.js.map +1 -1
  176. package/dist/views/Document/getCustomDocumentViewByKey.js +2 -3
  177. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  178. package/dist/views/Document/getCustomViewByRoute.js +30 -27
  179. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  180. package/dist/views/Document/getDocPreferences.js +41 -40
  181. package/dist/views/Document/getDocPreferences.js.map +1 -1
  182. package/dist/views/Document/getDocumentData.js +55 -44
  183. package/dist/views/Document/getDocumentData.js.map +1 -1
  184. package/dist/views/Document/getDocumentPermissions.js +80 -77
  185. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  186. package/dist/views/Document/getDocumentView.js +283 -313
  187. package/dist/views/Document/getDocumentView.js.map +1 -1
  188. package/dist/views/Document/getIsLocked.js +66 -66
  189. package/dist/views/Document/getIsLocked.js.map +1 -1
  190. package/dist/views/Document/getMetaBySegment.js +136 -130
  191. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  192. package/dist/views/Document/getVersions.js +194 -204
  193. package/dist/views/Document/getVersions.js.map +1 -1
  194. package/dist/views/Document/handleServerFunction.js +128 -103
  195. package/dist/views/Document/handleServerFunction.js.map +1 -1
  196. package/dist/views/Document/index.js +354 -315
  197. package/dist/views/Document/index.js.map +1 -1
  198. package/dist/views/Document/metadata.js +1 -2
  199. package/dist/views/Document/metadata.js.map +1 -1
  200. package/dist/views/Document/renderDocumentSlots.js +132 -121
  201. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  202. package/dist/views/Edit/index.js +6 -10
  203. package/dist/views/Edit/index.js.map +1 -1
  204. package/dist/views/Edit/metadata.js +46 -36
  205. package/dist/views/Edit/metadata.js.map +1 -1
  206. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +164 -130
  207. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  208. package/dist/views/ForgotPassword/index.js +62 -79
  209. package/dist/views/ForgotPassword/index.js.map +1 -1
  210. package/dist/views/ForgotPassword/metadata.js +12 -8
  211. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  212. package/dist/views/List/createSerializableValue.js +11 -12
  213. package/dist/views/List/createSerializableValue.js.map +1 -1
  214. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  215. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  216. package/dist/views/List/extractRelationshipDisplayValue.js +14 -15
  217. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  218. package/dist/views/List/extractValueOrRelationshipID.js +15 -16
  219. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  220. package/dist/views/List/handleGroupBy.js +150 -133
  221. package/dist/views/List/handleGroupBy.js.map +1 -1
  222. package/dist/views/List/handleServerFunction.js +119 -96
  223. package/dist/views/List/handleServerFunction.js.map +1 -1
  224. package/dist/views/List/index.js +323 -305
  225. package/dist/views/List/index.js.map +1 -1
  226. package/dist/views/List/metadata.js +20 -17
  227. package/dist/views/List/metadata.js.map +1 -1
  228. package/dist/views/List/renderListViewSlots.js +75 -82
  229. package/dist/views/List/renderListViewSlots.js.map +1 -1
  230. package/dist/views/List/resolveAllFilterOptions.js +45 -43
  231. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  232. package/dist/views/List/transformColumnsToSelect.js +8 -9
  233. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  234. package/dist/views/Login/LoginField/index.js +89 -57
  235. package/dist/views/Login/LoginField/index.js.map +1 -1
  236. package/dist/views/Login/LoginForm/index.js +157 -104
  237. package/dist/views/Login/LoginForm/index.js.map +1 -1
  238. package/dist/views/Login/index.js +85 -82
  239. package/dist/views/Login/index.js.map +1 -1
  240. package/dist/views/Login/metadata.js +12 -8
  241. package/dist/views/Login/metadata.js.map +1 -1
  242. package/dist/views/Logout/LogoutClient.js +119 -83
  243. package/dist/views/Logout/LogoutClient.js.map +1 -1
  244. package/dist/views/Logout/index.js +29 -29
  245. package/dist/views/Logout/index.js.map +1 -1
  246. package/dist/views/Logout/metadata.js +11 -7
  247. package/dist/views/Logout/metadata.js.map +1 -1
  248. package/dist/views/NotFound/index.client.js +82 -71
  249. package/dist/views/NotFound/index.client.js.map +1 -1
  250. package/dist/views/NotFound/index.js +72 -71
  251. package/dist/views/NotFound/index.js.map +1 -1
  252. package/dist/views/NotFound/metadata.js +9 -7
  253. package/dist/views/NotFound/metadata.js.map +1 -1
  254. package/dist/views/ResetPassword/ResetPasswordForm/index.js +107 -94
  255. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  256. package/dist/views/ResetPassword/index.js +73 -93
  257. package/dist/views/ResetPassword/index.js.map +1 -1
  258. package/dist/views/ResetPassword/metadata.js +12 -8
  259. package/dist/views/ResetPassword/metadata.js.map +1 -1
  260. package/dist/views/Root/attachViewActions.js +23 -18
  261. package/dist/views/Root/attachViewActions.js.map +1 -1
  262. package/dist/views/Root/generateCustomViewMetadata.js +21 -19
  263. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  264. package/dist/views/Root/getCustomViewByKey.js +14 -12
  265. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  266. package/dist/views/Root/getCustomViewByRoute.js +42 -31
  267. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  268. package/dist/views/Root/getDocumentViewInfo.js +23 -24
  269. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  270. package/dist/views/Root/getRouteData.js +325 -333
  271. package/dist/views/Root/getRouteData.js.map +1 -1
  272. package/dist/views/Root/index.js +269 -247
  273. package/dist/views/Root/index.js.map +1 -1
  274. package/dist/views/Root/isPathMatchingRoute.js +26 -21
  275. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  276. package/dist/views/Root/metadata.js +181 -176
  277. package/dist/views/Root/metadata.js.map +1 -1
  278. package/dist/views/Unauthorized/index.js +46 -54
  279. package/dist/views/Unauthorized/index.js.map +1 -1
  280. package/dist/views/Unauthorized/metadata.js +12 -8
  281. package/dist/views/Unauthorized/metadata.js.map +1 -1
  282. package/dist/views/Verify/index.client.js +43 -25
  283. package/dist/views/Verify/index.client.js.map +1 -1
  284. package/dist/views/Verify/index.js +62 -68
  285. package/dist/views/Verify/index.js.map +1 -1
  286. package/dist/views/Verify/metadata.js +12 -8
  287. package/dist/views/Verify/metadata.js.map +1 -1
  288. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  289. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  290. package/dist/views/Version/Default/SetStepNav.js +127 -86
  291. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  292. package/dist/views/Version/Default/index.js +236 -380
  293. package/dist/views/Version/Default/index.js.map +1 -1
  294. package/dist/views/Version/Default/types.js +1 -2
  295. package/dist/views/Version/Default/types.js.map +1 -1
  296. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +119 -102
  297. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  298. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +73 -78
  299. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  300. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +408 -363
  301. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  302. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +51 -40
  303. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  304. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +67 -35
  305. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  306. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +56 -59
  307. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  308. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +117 -139
  309. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  310. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +41 -36
  311. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  312. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +178 -192
  313. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  314. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +11 -17
  315. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  316. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +73 -48
  317. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  318. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +143 -132
  319. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  320. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +81 -56
  321. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +210 -251
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  324. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +22 -23
  325. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  326. package/dist/views/Version/RenderFieldsToDiff/index.js +9 -12
  327. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  328. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +228 -213
  329. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  330. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +826 -1005
  331. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  332. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +1 -2
  333. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  334. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +43 -44
  335. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  336. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +22 -25
  337. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -1
  338. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +36 -32
  339. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  340. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +129 -145
  341. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  342. package/dist/views/Version/Restore/index.js +91 -116
  343. package/dist/views/Version/Restore/index.js.map +1 -1
  344. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +50 -33
  345. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  346. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +226 -170
  347. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  348. package/dist/views/Version/SelectComparison/index.js +50 -73
  349. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  350. package/dist/views/Version/SelectComparison/types.js +1 -2
  351. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  352. package/dist/views/Version/SelectLocales/index.js +32 -34
  353. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  354. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +95 -104
  355. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  356. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +27 -23
  357. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  358. package/dist/views/Version/fetchVersions.js +138 -113
  359. package/dist/views/Version/fetchVersions.js.map +1 -1
  360. package/dist/views/Version/index.js +323 -325
  361. package/dist/views/Version/index.js.map +1 -1
  362. package/dist/views/Version/metadata.js +50 -43
  363. package/dist/views/Version/metadata.js.map +1 -1
  364. package/dist/views/Versions/buildColumns.js +79 -95
  365. package/dist/views/Versions/buildColumns.js.map +1 -1
  366. package/dist/views/Versions/cells/AutosaveCell/index.js +38 -34
  367. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  368. package/dist/views/Versions/cells/CreatedAt/index.js +53 -32
  369. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  370. package/dist/views/Versions/cells/ID/index.js +8 -10
  371. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  372. package/dist/views/Versions/index.client.js +83 -106
  373. package/dist/views/Versions/index.client.js.map +1 -1
  374. package/dist/views/Versions/index.js +140 -140
  375. package/dist/views/Versions/index.js.map +1 -1
  376. package/dist/views/Versions/metadata.js +44 -37
  377. package/dist/views/Versions/metadata.js.map +1 -1
  378. package/dist/views/Versions/types.js +1 -2
  379. package/dist/views/Versions/types.js.map +1 -1
  380. package/dist/withPayload.js +169 -216
  381. package/dist/withPayload.js.map +1 -1
  382. package/package.json +8 -9
  383. package/dist/esbuildEntry.d.ts +0 -5
  384. package/dist/esbuildEntry.d.ts.map +0 -1
  385. package/dist/esbuildEntry.js +0 -6
  386. package/dist/esbuildEntry.js.map +0 -1
@@ -1 +1 @@
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"}
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":[]}
@@ -4,224 +4,239 @@ 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
- */ 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;
13
- }
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
- }
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;
190
58
  }
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,
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({
209
78
  field,
210
- row: i,
211
- valueFromRow,
212
- valueToRow
213
- });
214
- count += countChangedFields({
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;
90
+ }
91
+ // Fields that have nested fields, but don't nest their fields' data.
92
+ case 'collapsible':
93
+ case 'row':
94
+ {
95
+ count += countChangedFields({
215
96
  config,
216
- fields: rowFields,
97
+ fields: field.fields,
217
98
  locales,
218
99
  parentIsLocalized: parentIsLocalized || field.localized,
219
- valueFrom: valueFromRow,
220
- valueTo: valueToRow
221
- });
222
- i++;
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
+ }
223
198
  }
224
- return count;
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;
225
241
  }
226
-
227
242
  //# sourceMappingURL=countChangedFields.js.map
@@ -1 +1 @@
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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"}
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":"AAEA,SAASA,sBAAsB,EAAEC,YAAY,QAAQ;AAErD,SAASC,eAAe,QAAQ;AAChC,SAASC,yBAAyB,QAAQ;AAW1C;;;;AAIA,OAAO,SAASC,mBAAmB;EACjCC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC,iBAAiB;EACjBC,SAAS;EACTC;AAAO,CACF;EACL,IAAIC,KAAA,GAAQ;EAEZL,MAAA,CAAOM,OAAO,CAAEC,KAAA;IACd;IACA,IAAI,UAAUA,KAAA,IAASA,KAAA,CAAMC,IAAI,KAAK,MAAM;MAC1C;IACF;IACA,MAAMC,SAAA,GAAYF,KAAA,CAAMG,IAAI;IAC5B,QAAQD,SAAA;MACN;MACA;MACA,KAAK;MACL,KAAK;QAAU;UACb,IAAIR,OAAA,IAAWP,sBAAA,CAAuB;YAAEa,KAAA;YAAOL;UAAkB,IAAI;YACnED,OAAA,CAAQK,OAAO,CAAEK,MAAA;cACf,MAAMC,aAAA,GAAgBT,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,IAAI,EAAE;cAC7D,MAAME,WAAA,GAAcT,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,IAAI,EAAE;cACzDN,KAAA,IAASS,wBAAA,CAAyB;gBAChCf,MAAA;gBACAQ,KAAA;gBACAN,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;gBACvDH,aAAA;gBACAC;cACF;YACF;UACF,OAAO;YACL,MAAMD,aAAA,GAAgBT,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC,IAAI,EAAE;YACnD,MAAMK,WAAA,GAAcT,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,IAAI,EAAE;YAC/CH,KAAA,IAASS,wBAAA,CAAyB;cAChCf,MAAA;cACAQ,KAAA;cACAN,OAAA;cACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;cACvDH,aAAA;cACAC;YACF;UACF;UACA;QACF;MAEA;MACA,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;QAAU;UACb;UACA,IAAIZ,OAAA,IAAWP,sBAAA,CAAuB;YAAEa,KAAA;YAAOL;UAAkB,IAAI;YACnED,OAAA,CAAQK,OAAO,CAAEK,MAAA;cACf,IACEf,eAAA,CAAgBQ,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,EAAER,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO,GAClF;gBACAN,KAAA;cACF;YACF;UACF,OAAO,IAAIT,eAAA,CAAgBQ,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,EAAEL,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC,GAAG;YAC1EH,KAAA;UACF;UACA;QACF;MACA;MACA,KAAK;MACL,KAAK;QAAO;UACVA,KAAA,IAASP,kBAAA,CAAmB;YAC1BC,MAAA;YACAC,MAAA,EAAQO,KAAA,CAAMP,MAAM;YACpBC,OAAA;YACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;YACvDZ,SAAA;YACAC;UACF;UAEA;QACF;MAEA;MACA,KAAK;QAAS;UACZ,IAAIT,YAAA,CAAaY,KAAA,GAAQ;YACvB,IAAIN,OAAA,IAAWP,sBAAA,CAAuB;cAAEa,KAAA;cAAOL;YAAkB,IAAI;cACnED,OAAA,CAAQK,OAAO,CAAEK,MAAA;gBACfN,KAAA,IAASP,kBAAA,CAAmB;kBAC1BC,MAAA;kBACAC,MAAA,EAAQO,KAAA,CAAMP,MAAM;kBACpBC,OAAA;kBACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;kBACvDZ,SAAA,EAAWA,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA,CAAO;kBAC5CP,OAAA,EAASA,OAAA,GAAUG,KAAA,CAAMC,IAAI,CAAC,GAAGG,MAAA;gBACnC;cACF;YACF,OAAO;cACLN,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,MAAA;gBACAC,MAAA,EAAQO,KAAA,CAAMP,MAAM;gBACpBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;gBACvDZ,SAAA,EAAWA,SAAA,GAAYI,KAAA,CAAMC,IAAI,CAAC;gBAClCJ,OAAA,EAASA,OAAA,GAAUG,KAAA,CAAMC,IAAI;cAC/B;YACF;UACF,OAAO;YACL;YACAH,KAAA,IAASP,kBAAA,CAAmB;cAC1BC,MAAA;cACAC,MAAA,EAAQO,KAAA,CAAMP,MAAM;cACpBC,OAAA;cACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;cACvDZ,SAAA;cACAC;YACF;UACF;UACA;QACF;MAEA;MACA;MACA,KAAK;QAAQ;UACXG,KAAA,CAAMS,IAAI,CAACV,OAAO,CAAEW,GAAA;YAClB,IAAI,UAAUA,GAAA,IAAOhB,OAAA,IAAWgB,GAAA,CAAIF,SAAS,EAAE;cAC7C;cACAd,OAAA,CAAQK,OAAO,CAAEK,MAAA;gBACfN,KAAA,IAASP,kBAAA,CAAmB;kBAC1BC,MAAA;kBACAC,MAAA,EAAQiB,GAAA,CAAIjB,MAAM;kBAClBC,OAAA;kBACAC,iBAAA,EAAmBA,iBAAA,IAAqBe,GAAA,CAAIF,SAAS;kBACrDZ,SAAA,EAAWA,SAAA,GAAYc,GAAA,CAAIT,IAAI,CAAC,GAAGG,MAAA,CAAO;kBAC1CP,OAAA,EAASA,OAAA,GAAUa,GAAA,CAAIT,IAAI,CAAC,GAAGG,MAAA;gBACjC;cACF;YACF,OAAO,IAAI,UAAUM,GAAA,EAAK;cACxB;cACAZ,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,MAAA;gBACAC,MAAA,EAAQiB,GAAA,CAAIjB,MAAM;gBAClBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBe,GAAA,CAAIF,SAAS;gBACrDZ,SAAA,EAAWA,SAAA,GAAYc,GAAA,CAAIT,IAAI,CAAC;gBAChCJ,OAAA,EAASA,OAAA,GAAUa,GAAA,CAAIT,IAAI;cAC7B;YACF,OAAO;cACL;cACAH,KAAA,IAASP,kBAAA,CAAmB;gBAC1BC,MAAA;gBACAC,MAAA,EAAQiB,GAAA,CAAIjB,MAAM;gBAClBC,OAAA;gBACAC,iBAAA,EAAmBA,iBAAA,IAAqBe,GAAA,CAAIF,SAAS;gBACrDZ,SAAA;gBACAC;cACF;YACF;UACF;UACA;QACF;MAEA;MACA;MACA,KAAK;QAAM;UACT;QACF;MAEA;QAAS;UACP,MAAMc,gBAAA,GAA0BT,SAAA;UAChC,MAAM,IAAIU,KAAA,CAAM,iDAAiDC,MAAA,CAAOX,SAAA,GAAY;QACtF;IACF;EACF;EAEA,OAAOJ,KAAA;AACT;AAWA,OAAO,SAASS,yBAAyB;EACvCf,MAAM;EACNQ,KAAK;EACLN,OAAO;EACPC,iBAAiB;EACjBU,aAAA,GAAgB,EAAE;EAClBC,WAAA,GAAc;AAAE,CACa;EAC7B,IAAIR,KAAA,GAAQ;EACZ,IAAIgB,CAAA,GAAI;EAER,OAAOT,aAAa,CAACS,CAAA,CAAE,IAAIR,WAAW,CAACQ,CAAA,CAAE,EAAE;IACzC,MAAMC,YAAA,GAAeV,aAAA,GAAgBS,CAAA,CAAE,IAAI,CAAC;IAC5C,MAAME,UAAA,GAAaV,WAAA,GAAcQ,CAAA,CAAE,IAAI,CAAC;IAExC,MAAM;MAAErB,MAAA,EAAQwB;IAAS,CAAE,GAAG3B,yBAAA,CAA0B;MACtD4B,gBAAA,EAAkB;QAAEf,IAAA,EAAM;QAAQV,MAAA,EAAQ,EAAE;QAAE0B,IAAA,EAAM;QAAIC,UAAA,EAAY;MAAG;MACvE5B,MAAA;MACAQ,KAAA;MACAqB,GAAA,EAAKP,CAAA;MACLC,YAAA;MACAC;IACF;IAEAlB,KAAA,IAASP,kBAAA,CAAmB;MAC1BC,MAAA;MACAC,MAAA,EAAQwB,SAAA;MACRvB,OAAA;MACAC,iBAAA,EAAmBA,iBAAA,IAAqBK,KAAA,CAAMQ,SAAS;MACvDZ,SAAA,EAAWmB,YAAA;MACXlB,OAAA,EAASmB;IACX;IAEAF,CAAA;EACF;EACA,OAAOhB,KAAA;AACT","ignoreList":[]}