@payloadcms/next 3.68.0-internal-debug.654e4ad → 3.68.0-internal.10bf491

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 (398) 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/cjs/withPayload.cjs +41 -65
  8. package/dist/cjs/withPayload.cjs.map +1 -1
  9. package/dist/config.js +0 -1
  10. package/dist/config.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +15 -9
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +71 -40
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +59 -65
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/index.js +70 -80
  18. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +23 -16
  20. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  21. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +69 -61
  22. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  23. package/dist/elements/DocumentHeader/index.js +28 -48
  24. package/dist/elements/DocumentHeader/index.js.map +1 -1
  25. package/dist/elements/FormHeader/index.js +16 -30
  26. package/dist/elements/FormHeader/index.js.map +1 -1
  27. package/dist/elements/Logo/index.js +34 -19
  28. package/dist/elements/Logo/index.js.map +1 -1
  29. package/dist/elements/Nav/NavHamburger/index.js +44 -23
  30. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  31. package/dist/elements/Nav/NavWrapper/index.js +54 -28
  32. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  33. package/dist/elements/Nav/SettingsMenuButton/index.js +39 -33
  34. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  35. package/dist/elements/Nav/getNavPrefs.js +22 -27
  36. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  37. package/dist/elements/Nav/index.client.js +118 -97
  38. package/dist/elements/Nav/index.client.js.map +1 -1
  39. package/dist/elements/Nav/index.js +127 -148
  40. package/dist/elements/Nav/index.js.map +1 -1
  41. package/dist/exports/auth.js +0 -1
  42. package/dist/exports/auth.js.map +1 -1
  43. package/dist/exports/client.js +1 -1
  44. package/dist/exports/client.js.map +1 -1
  45. package/dist/exports/layouts.js +0 -1
  46. package/dist/exports/layouts.js.map +1 -1
  47. package/dist/exports/routes.js +0 -1
  48. package/dist/exports/routes.js.map +1 -1
  49. package/dist/exports/rsc.js +0 -1
  50. package/dist/exports/rsc.js.map +1 -1
  51. package/dist/exports/templates.js +0 -1
  52. package/dist/exports/templates.js.map +1 -1
  53. package/dist/exports/utilities.js +12 -7
  54. package/dist/exports/utilities.js.map +1 -1
  55. package/dist/exports/views.js +0 -1
  56. package/dist/exports/views.js.map +1 -1
  57. package/dist/index.js +0 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/layouts/Root/NestProviders.js +20 -21
  60. package/dist/layouts/Root/NestProviders.js.map +1 -1
  61. package/dist/layouts/Root/checkDependencies.js +41 -49
  62. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  63. package/dist/layouts/Root/index.js +103 -128
  64. package/dist/layouts/Root/index.js.map +1 -1
  65. package/dist/prod/styles.css +1 -5
  66. package/dist/routes/graphql/handler.js +122 -114
  67. package/dist/routes/graphql/handler.js.map +1 -1
  68. package/dist/routes/graphql/index.js +0 -1
  69. package/dist/routes/graphql/index.js.map +1 -1
  70. package/dist/routes/graphql/playground.js +23 -24
  71. package/dist/routes/graphql/playground.js.map +1 -1
  72. package/dist/routes/index.js +0 -1
  73. package/dist/routes/index.js.map +1 -1
  74. package/dist/routes/rest/index.js +19 -20
  75. package/dist/routes/rest/index.js.map +1 -1
  76. package/dist/routes/rest/og/image.js +79 -103
  77. package/dist/routes/rest/og/image.js.map +1 -1
  78. package/dist/routes/rest/og/index.js +54 -59
  79. package/dist/routes/rest/og/index.js.map +1 -1
  80. package/dist/templates/Default/NavHamburger/index.js +20 -12
  81. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  82. package/dist/templates/Default/Wrapper/index.js +44 -20
  83. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  84. package/dist/templates/Default/index.js +133 -183
  85. package/dist/templates/Default/index.js.map +1 -1
  86. package/dist/templates/Minimal/index.js +17 -26
  87. package/dist/templates/Minimal/index.js.map +1 -1
  88. package/dist/utilities/getExistingAuthToken.js +2 -3
  89. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  90. package/dist/utilities/getNextRequestI18n.js +13 -12
  91. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  92. package/dist/utilities/getPayloadHMR.js +5 -5
  93. package/dist/utilities/getPayloadHMR.js.map +1 -1
  94. package/dist/utilities/getPreferences.js +22 -27
  95. package/dist/utilities/getPreferences.js.map +1 -1
  96. package/dist/utilities/getRequestLocale.js +14 -13
  97. package/dist/utilities/getRequestLocale.js.map +1 -1
  98. package/dist/utilities/getRequestTheme.js +19 -19
  99. package/dist/utilities/getRequestTheme.js.map +1 -1
  100. package/dist/utilities/getRouteWithoutAdmin.js +5 -3
  101. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  102. package/dist/utilities/getVisibleEntities.js +23 -12
  103. package/dist/utilities/getVisibleEntities.js.map +1 -1
  104. package/dist/utilities/handleAuthRedirect.js +36 -22
  105. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  106. package/dist/utilities/handleServerFunctions.js +39 -32
  107. package/dist/utilities/handleServerFunctions.js.map +1 -1
  108. package/dist/utilities/initReq.js +96 -78
  109. package/dist/utilities/initReq.js.map +1 -1
  110. package/dist/utilities/isCustomAdminView.js +26 -22
  111. package/dist/utilities/isCustomAdminView.js.map +1 -1
  112. package/dist/utilities/isPublicAdminRoute.js +20 -26
  113. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  114. package/dist/utilities/meta.js +63 -68
  115. package/dist/utilities/meta.js.map +1 -1
  116. package/dist/utilities/selectiveCache.js +26 -25
  117. package/dist/utilities/selectiveCache.js.map +1 -1
  118. package/dist/utilities/setPayloadAuthCookie.js +22 -19
  119. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  120. package/dist/utilities/slugify.js +33 -24
  121. package/dist/utilities/slugify.js.map +1 -1
  122. package/dist/utilities/timestamp.js +6 -7
  123. package/dist/utilities/timestamp.js.map +1 -1
  124. package/dist/views/API/LocaleSelector/index.js +39 -17
  125. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  126. package/dist/views/API/RenderJSON/index.js +126 -171
  127. package/dist/views/API/RenderJSON/index.js.map +1 -1
  128. package/dist/views/API/index.client.js +195 -287
  129. package/dist/views/API/index.client.js.map +1 -1
  130. package/dist/views/API/index.js +2 -7
  131. package/dist/views/API/index.js.map +1 -1
  132. package/dist/views/API/metadata.js +23 -18
  133. package/dist/views/API/metadata.js.map +1 -1
  134. package/dist/views/Account/ResetPreferences/index.js +91 -74
  135. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  136. package/dist/views/Account/Settings/LanguageSelector.js +47 -18
  137. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  138. package/dist/views/Account/Settings/index.js +28 -62
  139. package/dist/views/Account/Settings/index.js.map +1 -1
  140. package/dist/views/Account/ToggleTheme/index.js +55 -38
  141. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  142. package/dist/views/Account/index.client.js +32 -16
  143. package/dist/views/Account/index.client.js.map +1 -1
  144. package/dist/views/Account/index.js +155 -144
  145. package/dist/views/Account/index.js.map +1 -1
  146. package/dist/views/Account/metadata.js +12 -8
  147. package/dist/views/Account/metadata.js.map +1 -1
  148. package/dist/views/BrowseByFolder/buildView.js +158 -139
  149. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  150. package/dist/views/BrowseByFolder/index.js +16 -16
  151. package/dist/views/BrowseByFolder/index.js.map +1 -1
  152. package/dist/views/BrowseByFolder/metadata.js +15 -13
  153. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  154. package/dist/views/CollectionFolders/buildView.js +143 -123
  155. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  156. package/dist/views/CollectionFolders/index.js +16 -16
  157. package/dist/views/CollectionFolders/index.js.map +1 -1
  158. package/dist/views/CollectionFolders/metadata.js +21 -18
  159. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  160. package/dist/views/CollectionFolders/renderFolderViewSlots.js +61 -58
  161. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  162. package/dist/views/CollectionTrash/index.js +17 -17
  163. package/dist/views/CollectionTrash/index.js.map +1 -1
  164. package/dist/views/CollectionTrash/metadata.js +21 -18
  165. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  166. package/dist/views/CreateFirstUser/index.client.js +101 -114
  167. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  168. package/dist/views/CreateFirstUser/index.js +81 -87
  169. package/dist/views/CreateFirstUser/index.js.map +1 -1
  170. package/dist/views/CreateFirstUser/metadata.js +12 -8
  171. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  172. package/dist/views/Dashboard/Default/index.js +152 -176
  173. package/dist/views/Dashboard/Default/index.js.map +1 -1
  174. package/dist/views/Dashboard/index.js +90 -97
  175. package/dist/views/Dashboard/index.js.map +1 -1
  176. package/dist/views/Dashboard/metadata.js +14 -10
  177. package/dist/views/Dashboard/metadata.js.map +1 -1
  178. package/dist/views/Document/getCustomDocumentViewByKey.js +2 -3
  179. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  180. package/dist/views/Document/getCustomViewByRoute.js +30 -27
  181. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  182. package/dist/views/Document/getDocPreferences.js +41 -40
  183. package/dist/views/Document/getDocPreferences.js.map +1 -1
  184. package/dist/views/Document/getDocumentData.js +55 -44
  185. package/dist/views/Document/getDocumentData.js.map +1 -1
  186. package/dist/views/Document/getDocumentPermissions.js +80 -77
  187. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  188. package/dist/views/Document/getDocumentView.js +283 -313
  189. package/dist/views/Document/getDocumentView.js.map +1 -1
  190. package/dist/views/Document/getIsLocked.js +66 -66
  191. package/dist/views/Document/getIsLocked.js.map +1 -1
  192. package/dist/views/Document/getMetaBySegment.js +136 -130
  193. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  194. package/dist/views/Document/getVersions.js +194 -204
  195. package/dist/views/Document/getVersions.js.map +1 -1
  196. package/dist/views/Document/handleServerFunction.js +128 -103
  197. package/dist/views/Document/handleServerFunction.js.map +1 -1
  198. package/dist/views/Document/index.js +354 -315
  199. package/dist/views/Document/index.js.map +1 -1
  200. package/dist/views/Document/metadata.js +1 -2
  201. package/dist/views/Document/metadata.js.map +1 -1
  202. package/dist/views/Document/renderDocumentSlots.js +132 -121
  203. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  204. package/dist/views/Edit/index.js +6 -10
  205. package/dist/views/Edit/index.js.map +1 -1
  206. package/dist/views/Edit/metadata.js +46 -36
  207. package/dist/views/Edit/metadata.js.map +1 -1
  208. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +164 -130
  209. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  210. package/dist/views/ForgotPassword/index.js +62 -79
  211. package/dist/views/ForgotPassword/index.js.map +1 -1
  212. package/dist/views/ForgotPassword/metadata.js +12 -8
  213. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  214. package/dist/views/List/createSerializableValue.js +11 -12
  215. package/dist/views/List/createSerializableValue.js.map +1 -1
  216. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  217. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  218. package/dist/views/List/extractRelationshipDisplayValue.js +14 -15
  219. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  220. package/dist/views/List/extractValueOrRelationshipID.js +15 -16
  221. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  222. package/dist/views/List/handleGroupBy.js +150 -133
  223. package/dist/views/List/handleGroupBy.js.map +1 -1
  224. package/dist/views/List/handleServerFunction.js +119 -96
  225. package/dist/views/List/handleServerFunction.js.map +1 -1
  226. package/dist/views/List/index.js +323 -305
  227. package/dist/views/List/index.js.map +1 -1
  228. package/dist/views/List/metadata.js +20 -17
  229. package/dist/views/List/metadata.js.map +1 -1
  230. package/dist/views/List/renderListViewSlots.js +75 -82
  231. package/dist/views/List/renderListViewSlots.js.map +1 -1
  232. package/dist/views/List/resolveAllFilterOptions.js +45 -43
  233. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  234. package/dist/views/List/transformColumnsToSelect.js +8 -9
  235. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  236. package/dist/views/Login/LoginField/index.js +89 -57
  237. package/dist/views/Login/LoginField/index.js.map +1 -1
  238. package/dist/views/Login/LoginForm/index.js +157 -104
  239. package/dist/views/Login/LoginForm/index.js.map +1 -1
  240. package/dist/views/Login/index.js +85 -82
  241. package/dist/views/Login/index.js.map +1 -1
  242. package/dist/views/Login/metadata.js +12 -8
  243. package/dist/views/Login/metadata.js.map +1 -1
  244. package/dist/views/Logout/LogoutClient.js +119 -83
  245. package/dist/views/Logout/LogoutClient.js.map +1 -1
  246. package/dist/views/Logout/index.js +29 -29
  247. package/dist/views/Logout/index.js.map +1 -1
  248. package/dist/views/Logout/metadata.js +11 -7
  249. package/dist/views/Logout/metadata.js.map +1 -1
  250. package/dist/views/NotFound/index.client.js +82 -71
  251. package/dist/views/NotFound/index.client.js.map +1 -1
  252. package/dist/views/NotFound/index.js +72 -71
  253. package/dist/views/NotFound/index.js.map +1 -1
  254. package/dist/views/NotFound/metadata.js +9 -7
  255. package/dist/views/NotFound/metadata.js.map +1 -1
  256. package/dist/views/ResetPassword/ResetPasswordForm/index.js +107 -94
  257. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  258. package/dist/views/ResetPassword/index.js +73 -93
  259. package/dist/views/ResetPassword/index.js.map +1 -1
  260. package/dist/views/ResetPassword/metadata.js +12 -8
  261. package/dist/views/ResetPassword/metadata.js.map +1 -1
  262. package/dist/views/Root/attachViewActions.js +23 -18
  263. package/dist/views/Root/attachViewActions.js.map +1 -1
  264. package/dist/views/Root/generateCustomViewMetadata.js +21 -19
  265. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  266. package/dist/views/Root/getCustomViewByKey.js +14 -12
  267. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  268. package/dist/views/Root/getCustomViewByRoute.js +42 -31
  269. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  270. package/dist/views/Root/getDocumentViewInfo.js +23 -24
  271. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  272. package/dist/views/Root/getRouteData.js +325 -333
  273. package/dist/views/Root/getRouteData.js.map +1 -1
  274. package/dist/views/Root/index.js +269 -247
  275. package/dist/views/Root/index.js.map +1 -1
  276. package/dist/views/Root/isPathMatchingRoute.js +26 -21
  277. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  278. package/dist/views/Root/metadata.js +181 -176
  279. package/dist/views/Root/metadata.js.map +1 -1
  280. package/dist/views/Unauthorized/index.js +46 -54
  281. package/dist/views/Unauthorized/index.js.map +1 -1
  282. package/dist/views/Unauthorized/metadata.js +12 -8
  283. package/dist/views/Unauthorized/metadata.js.map +1 -1
  284. package/dist/views/Verify/index.client.js +43 -25
  285. package/dist/views/Verify/index.client.js.map +1 -1
  286. package/dist/views/Verify/index.js +62 -68
  287. package/dist/views/Verify/index.js.map +1 -1
  288. package/dist/views/Verify/metadata.js +12 -8
  289. package/dist/views/Verify/metadata.js.map +1 -1
  290. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  291. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  292. package/dist/views/Version/Default/SetStepNav.js +127 -86
  293. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  294. package/dist/views/Version/Default/index.js +236 -380
  295. package/dist/views/Version/Default/index.js.map +1 -1
  296. package/dist/views/Version/Default/types.js +1 -2
  297. package/dist/views/Version/Default/types.js.map +1 -1
  298. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +119 -102
  299. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  300. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +73 -78
  301. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  302. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +408 -363
  303. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  304. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +51 -40
  305. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  306. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +67 -35
  307. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  308. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +56 -59
  309. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  310. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +117 -139
  311. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  312. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +41 -36
  313. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  314. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +178 -192
  315. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  316. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +11 -17
  317. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  318. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +73 -48
  319. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  320. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +143 -132
  321. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  322. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +81 -56
  323. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  324. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +210 -251
  325. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  326. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +22 -23
  327. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  328. package/dist/views/Version/RenderFieldsToDiff/index.js +9 -12
  329. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  330. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +228 -213
  331. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  332. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +826 -1005
  333. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  334. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +1 -2
  335. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  336. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +43 -44
  337. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  338. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +22 -25
  339. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -1
  340. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +36 -32
  341. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  342. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +129 -145
  343. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  344. package/dist/views/Version/Restore/index.js +91 -116
  345. package/dist/views/Version/Restore/index.js.map +1 -1
  346. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +50 -33
  347. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  348. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +226 -170
  349. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  350. package/dist/views/Version/SelectComparison/index.js +50 -73
  351. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  352. package/dist/views/Version/SelectComparison/types.js +1 -2
  353. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  354. package/dist/views/Version/SelectLocales/index.js +32 -34
  355. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  356. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +95 -104
  357. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  358. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +27 -23
  359. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  360. package/dist/views/Version/fetchVersions.js +138 -113
  361. package/dist/views/Version/fetchVersions.js.map +1 -1
  362. package/dist/views/Version/index.js +323 -325
  363. package/dist/views/Version/index.js.map +1 -1
  364. package/dist/views/Version/metadata.js +50 -43
  365. package/dist/views/Version/metadata.js.map +1 -1
  366. package/dist/views/Versions/buildColumns.js +79 -95
  367. package/dist/views/Versions/buildColumns.js.map +1 -1
  368. package/dist/views/Versions/cells/AutosaveCell/index.js +38 -34
  369. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  370. package/dist/views/Versions/cells/CreatedAt/index.js +53 -32
  371. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  372. package/dist/views/Versions/cells/ID/index.js +8 -10
  373. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  374. package/dist/views/Versions/index.client.js +83 -106
  375. package/dist/views/Versions/index.client.js.map +1 -1
  376. package/dist/views/Versions/index.js +140 -140
  377. package/dist/views/Versions/index.js.map +1 -1
  378. package/dist/views/Versions/metadata.js +44 -37
  379. package/dist/views/Versions/metadata.js.map +1 -1
  380. package/dist/views/Versions/types.js +1 -2
  381. package/dist/views/Versions/types.js.map +1 -1
  382. package/dist/withPayload.d.ts +8 -2
  383. package/dist/withPayload.d.ts.map +1 -1
  384. package/dist/withPayload.js +145 -219
  385. package/dist/withPayload.js.map +1 -1
  386. package/dist/withPayload.utils.d.ts +58 -0
  387. package/dist/withPayload.utils.d.ts.map +1 -0
  388. package/dist/withPayload.utils.js +101 -0
  389. package/dist/withPayload.utils.js.map +1 -0
  390. package/dist/withPayloadLegacy.d.ts +6 -0
  391. package/dist/withPayloadLegacy.d.ts.map +1 -0
  392. package/dist/withPayloadLegacy.js +44 -0
  393. package/dist/withPayloadLegacy.js.map +1 -0
  394. package/package.json +15 -17
  395. package/dist/esbuildEntry.d.ts +0 -5
  396. package/dist/esbuildEntry.d.ts.map +0 -1
  397. package/dist/esbuildEntry.js +0 -6
  398. 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":"AAEA,SAASA,sBAAsB,EAAEC,YAAY,QAAQ,iBAAgB;AAErE,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,yBAAyB,QAAQ,iCAAgC;AAW1E;;;CAGC,GACD,OAAO,SAASC,mBAAmB,EACjCC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,iBAAiB,EACjBC,SAAS,EACTC,OAAO,EACF;IACL,IAAIC,QAAQ;IAEZL,OAAOM,OAAO,CAAC,CAACC;QACd,+DAA+D;QAC/D,IAAI,UAAUA,SAASA,MAAMC,IAAI,KAAK,MAAM;YAC1C;QACF;QACA,MAAMC,YAAYF,MAAMG,IAAI;QAC5B,OAAQD;YACN,6EAA6E;YAC7E,8CAA8C;YAC9C,KAAK;YACL,KAAK;gBAAU;oBACb,IAAIR,WAAWP,uBAAuB;wBAAEa;wBAAOL;oBAAkB,IAAI;wBACnED,QAAQK,OAAO,CAAC,CAACK;4BACf,MAAMC,gBAAgBT,WAAW,CAACI,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO,IAAI,EAAE;4BAC7D,MAAME,cAAcT,SAAS,CAACG,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO,IAAI,EAAE;4BACzDN,SAASS,yBAAyB;gCAChCf;gCACAQ;gCACAN;gCACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;gCACvDH;gCACAC;4BACF;wBACF;oBACF,OAAO;wBACL,MAAMD,gBAAgBT,WAAW,CAACI,MAAMC,IAAI,CAAC,IAAI,EAAE;wBACnD,MAAMK,cAAcT,SAAS,CAACG,MAAMC,IAAI,CAAC,IAAI,EAAE;wBAC/CH,SAASS,yBAAyB;4BAChCf;4BACAQ;4BACAN;4BACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;4BACvDH;4BACAC;wBACF;oBACF;oBACA;gBACF;YAEA,wCAAwC;YACxC,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;gBAAU;oBACb,uFAAuF;oBACvF,IAAIZ,WAAWP,uBAAuB;wBAAEa;wBAAOL;oBAAkB,IAAI;wBACnED,QAAQK,OAAO,CAAC,CAACK;4BACf,IACEf,gBAAgBQ,SAAS,CAACG,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO,EAAER,WAAW,CAACI,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO,GAClF;gCACAN;4BACF;wBACF;oBACF,OAAO,IAAIT,gBAAgBQ,SAAS,CAACG,MAAMC,IAAI,CAAC,EAAEL,WAAW,CAACI,MAAMC,IAAI,CAAC,GAAG;wBAC1EH;oBACF;oBACA;gBACF;YACA,qEAAqE;YACrE,KAAK;YACL,KAAK;gBAAO;oBACVA,SAASP,mBAAmB;wBAC1BC;wBACAC,QAAQO,MAAMP,MAAM;wBACpBC;wBACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;wBACvDZ;wBACAC;oBACF;oBAEA;gBACF;YAEA,8DAA8D;YAC9D,KAAK;gBAAS;oBACZ,IAAIT,aAAaY,QAAQ;wBACvB,IAAIN,WAAWP,uBAAuB;4BAAEa;4BAAOL;wBAAkB,IAAI;4BACnED,QAAQK,OAAO,CAAC,CAACK;gCACfN,SAASP,mBAAmB;oCAC1BC;oCACAC,QAAQO,MAAMP,MAAM;oCACpBC;oCACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;oCACvDZ,WAAWA,WAAW,CAACI,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO;oCAC5CP,SAASA,SAAS,CAACG,MAAMC,IAAI,CAAC,EAAE,CAACG,OAAO;gCAC1C;4BACF;wBACF,OAAO;4BACLN,SAASP,mBAAmB;gCAC1BC;gCACAC,QAAQO,MAAMP,MAAM;gCACpBC;gCACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;gCACvDZ,WAAWA,WAAW,CAACI,MAAMC,IAAI,CAAC;gCAClCJ,SAASA,SAAS,CAACG,MAAMC,IAAI,CAAC;4BAChC;wBACF;oBACF,OAAO;wBACL,6DAA6D;wBAC7DH,SAASP,mBAAmB;4BAC1BC;4BACAC,QAAQO,MAAMP,MAAM;4BACpBC;4BACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;4BACvDZ;4BACAC;wBACF;oBACF;oBACA;gBACF;YAEA,qEAAqE;YACrE,+DAA+D;YAC/D,KAAK;gBAAQ;oBACXG,MAAMS,IAAI,CAACV,OAAO,CAAC,CAACW;wBAClB,IAAI,UAAUA,OAAOhB,WAAWgB,IAAIF,SAAS,EAAE;4BAC7C,sBAAsB;4BACtBd,QAAQK,OAAO,CAAC,CAACK;gCACfN,SAASP,mBAAmB;oCAC1BC;oCACAC,QAAQiB,IAAIjB,MAAM;oCAClBC;oCACAC,mBAAmBA,qBAAqBe,IAAIF,SAAS;oCACrDZ,WAAWA,WAAW,CAACc,IAAIT,IAAI,CAAC,EAAE,CAACG,OAAO;oCAC1CP,SAASA,SAAS,CAACa,IAAIT,IAAI,CAAC,EAAE,CAACG,OAAO;gCACxC;4BACF;wBACF,OAAO,IAAI,UAAUM,KAAK;4BACxB,YAAY;4BACZZ,SAASP,mBAAmB;gCAC1BC;gCACAC,QAAQiB,IAAIjB,MAAM;gCAClBC;gCACAC,mBAAmBA,qBAAqBe,IAAIF,SAAS;gCACrDZ,WAAWA,WAAW,CAACc,IAAIT,IAAI,CAAC;gCAChCJ,SAASA,SAAS,CAACa,IAAIT,IAAI,CAAC;4BAC9B;wBACF,OAAO;4BACL,cAAc;4BACdH,SAASP,mBAAmB;gCAC1BC;gCACAC,QAAQiB,IAAIjB,MAAM;gCAClBC;gCACAC,mBAAmBA,qBAAqBe,IAAIF,SAAS;gCACrDZ;gCACAC;4BACF;wBACF;oBACF;oBACA;gBACF;YAEA,sEAAsE;YACtE,yBAAyB;YACzB,KAAK;gBAAM;oBACT;gBACF;YAEA;gBAAS;oBACP,MAAMc,mBAA0BT;oBAChC,MAAM,IAAIU,MAAM,CAAC,8CAA8C,EAAEC,OAAOX,YAAY;gBACtF;QACF;IACF;IAEA,OAAOJ;AACT;AAWA,OAAO,SAASS,yBAAyB,EACvCf,MAAM,EACNQ,KAAK,EACLN,OAAO,EACPC,iBAAiB,EACjBU,gBAAgB,EAAE,EAClBC,cAAc,EAAE,EACa;IAC7B,IAAIR,QAAQ;IACZ,IAAIgB,IAAI;IAER,MAAOT,aAAa,CAACS,EAAE,IAAIR,WAAW,CAACQ,EAAE,CAAE;QACzC,MAAMC,eAAeV,eAAe,CAACS,EAAE,IAAI,CAAC;QAC5C,MAAME,aAAaV,aAAa,CAACQ,EAAE,IAAI,CAAC;QAExC,MAAM,EAAErB,QAAQwB,SAAS,EAAE,GAAG3B,0BAA0B;YACtD4B,kBAAkB;gBAAEf,MAAM;gBAAQV,QAAQ,EAAE;gBAAE0B,MAAM;gBAAIC,YAAY;YAAG;YAAG,iEAAiE;YAC3I5B;YACAQ;YACAqB,KAAKP;YACLC;YACAC;QACF;QAEAlB,SAASP,mBAAmB;YAC1BC;YACAC,QAAQwB;YACRvB;YACAC,mBAAmBA,qBAAqBK,MAAMQ,SAAS;YACvDZ,WAAWmB;YACXlB,SAASmB;QACX;QAEAF;IACF;IACA,OAAOhB;AACT"}
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":[]}