@payloadcms/next 3.70.0-canary.9 → 3.71.0-internal-debug.80dab4c

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 (448) hide show
  1. package/dist/auth/login.js +52 -58
  2. package/dist/auth/login.js.map +1 -1
  3. package/dist/auth/logout.js +39 -44
  4. package/dist/auth/logout.js.map +1 -1
  5. package/dist/auth/refresh.js +45 -47
  6. package/dist/auth/refresh.js.map +1 -1
  7. package/dist/cjs/withPayload.cjs +61 -23
  8. package/dist/cjs/withPayload.cjs.map +2 -2
  9. package/dist/config.js +1 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +9 -15
  12. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +40 -71
  14. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +65 -59
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +38 -0
  18. package/dist/elements/DocumentHeader/Tabs/index.js +80 -70
  19. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/index.scss +54 -0
  21. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +16 -23
  22. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.scss +9 -0
  24. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +61 -69
  25. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/index.js +48 -28
  27. package/dist/elements/DocumentHeader/index.js.map +1 -1
  28. package/dist/elements/DocumentHeader/index.scss +64 -0
  29. package/dist/elements/FormHeader/index.js +30 -16
  30. package/dist/elements/FormHeader/index.js.map +1 -1
  31. package/dist/elements/FormHeader/index.scss +8 -0
  32. package/dist/elements/Logo/index.js +19 -34
  33. package/dist/elements/Logo/index.js.map +1 -1
  34. package/dist/elements/Nav/NavHamburger/index.js +23 -44
  35. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  36. package/dist/elements/Nav/NavWrapper/index.js +28 -54
  37. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  38. package/dist/elements/Nav/NavWrapper/index.scss +27 -0
  39. package/dist/elements/Nav/SettingsMenuButton/index.js +33 -39
  40. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  41. package/dist/elements/Nav/SettingsMenuButton/index.scss +11 -0
  42. package/dist/elements/Nav/getNavPrefs.js +27 -22
  43. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  44. package/dist/elements/Nav/index.client.js +97 -118
  45. package/dist/elements/Nav/index.client.js.map +1 -1
  46. package/dist/elements/Nav/index.js +148 -127
  47. package/dist/elements/Nav/index.js.map +1 -1
  48. package/dist/elements/Nav/index.scss +173 -0
  49. package/dist/esbuildEntry.d.ts +5 -0
  50. package/dist/esbuildEntry.d.ts.map +1 -0
  51. package/dist/esbuildEntry.js +6 -0
  52. package/dist/esbuildEntry.js.map +1 -0
  53. package/dist/exports/auth.js +1 -0
  54. package/dist/exports/auth.js.map +1 -1
  55. package/dist/exports/client.js +1 -1
  56. package/dist/exports/client.js.map +1 -1
  57. package/dist/exports/layouts.js +1 -0
  58. package/dist/exports/layouts.js.map +1 -1
  59. package/dist/exports/routes.js +1 -0
  60. package/dist/exports/routes.js.map +1 -1
  61. package/dist/exports/rsc.js +1 -0
  62. package/dist/exports/rsc.js.map +1 -1
  63. package/dist/exports/templates.js +1 -0
  64. package/dist/exports/templates.js.map +1 -1
  65. package/dist/exports/utilities.js +7 -12
  66. package/dist/exports/utilities.js.map +1 -1
  67. package/dist/exports/views.js +1 -0
  68. package/dist/exports/views.js.map +1 -1
  69. package/dist/index.js +1 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/layouts/Root/NestProviders.js +21 -20
  72. package/dist/layouts/Root/NestProviders.js.map +1 -1
  73. package/dist/layouts/Root/checkDependencies.js +49 -41
  74. package/dist/layouts/Root/checkDependencies.js.map +1 -1
  75. package/dist/layouts/Root/index.js +128 -103
  76. package/dist/layouts/Root/index.js.map +1 -1
  77. package/dist/prod/styles.css +5 -1
  78. package/dist/routes/graphql/handler.js +114 -122
  79. package/dist/routes/graphql/handler.js.map +1 -1
  80. package/dist/routes/graphql/index.js +1 -0
  81. package/dist/routes/graphql/index.js.map +1 -1
  82. package/dist/routes/graphql/playground.js +28 -27
  83. package/dist/routes/graphql/playground.js.map +1 -1
  84. package/dist/routes/index.js +1 -0
  85. package/dist/routes/index.js.map +1 -1
  86. package/dist/routes/rest/index.js +23 -22
  87. package/dist/routes/rest/index.js.map +1 -1
  88. package/dist/routes/rest/og/image.js +103 -79
  89. package/dist/routes/rest/og/image.js.map +1 -1
  90. package/dist/routes/rest/og/index.js +59 -54
  91. package/dist/routes/rest/og/index.js.map +1 -1
  92. package/dist/templates/Default/NavHamburger/index.js +12 -20
  93. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  94. package/dist/templates/Default/Wrapper/index.js +20 -44
  95. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  96. package/dist/templates/Default/Wrapper/index.scss +58 -0
  97. package/dist/templates/Default/index.js +147 -116
  98. package/dist/templates/Default/index.js.map +1 -1
  99. package/dist/templates/Default/index.scss +79 -0
  100. package/dist/templates/Minimal/index.js +26 -17
  101. package/dist/templates/Minimal/index.js.map +1 -1
  102. package/dist/templates/Minimal/index.scss +30 -0
  103. package/dist/utilities/getExistingAuthToken.js +3 -2
  104. package/dist/utilities/getExistingAuthToken.js.map +1 -1
  105. package/dist/utilities/getNextRequestI18n.js +12 -13
  106. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  107. package/dist/utilities/getPayloadHMR.js +5 -5
  108. package/dist/utilities/getPayloadHMR.js.map +1 -1
  109. package/dist/utilities/getPreferences.js +27 -22
  110. package/dist/utilities/getPreferences.js.map +1 -1
  111. package/dist/utilities/getRequestLocale.js +13 -14
  112. package/dist/utilities/getRequestLocale.js.map +1 -1
  113. package/dist/utilities/getRequestTheme.js +19 -19
  114. package/dist/utilities/getRequestTheme.js.map +1 -1
  115. package/dist/utilities/getRouteWithoutAdmin.js +3 -5
  116. package/dist/utilities/getRouteWithoutAdmin.js.map +1 -1
  117. package/dist/utilities/handleAuthRedirect.js +22 -36
  118. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  119. package/dist/utilities/handleServerFunctions.js +34 -41
  120. package/dist/utilities/handleServerFunctions.js.map +1 -1
  121. package/dist/utilities/initReq.js +78 -96
  122. package/dist/utilities/initReq.js.map +1 -1
  123. package/dist/utilities/isCustomAdminView.js +22 -26
  124. package/dist/utilities/isCustomAdminView.js.map +1 -1
  125. package/dist/utilities/isPublicAdminRoute.js +26 -20
  126. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  127. package/dist/utilities/meta.js +68 -63
  128. package/dist/utilities/meta.js.map +1 -1
  129. package/dist/utilities/selectiveCache.js +25 -26
  130. package/dist/utilities/selectiveCache.js.map +1 -1
  131. package/dist/utilities/setPayloadAuthCookie.js +19 -22
  132. package/dist/utilities/setPayloadAuthCookie.js.map +1 -1
  133. package/dist/utilities/slugify.js +24 -33
  134. package/dist/utilities/slugify.js.map +1 -1
  135. package/dist/utilities/timestamp.js +7 -6
  136. package/dist/utilities/timestamp.js.map +1 -1
  137. package/dist/views/API/LocaleSelector/index.js +17 -39
  138. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  139. package/dist/views/API/RenderJSON/index.js +171 -126
  140. package/dist/views/API/RenderJSON/index.js.map +1 -1
  141. package/dist/views/API/RenderJSON/index.scss +129 -0
  142. package/dist/views/API/index.client.js +290 -197
  143. package/dist/views/API/index.client.js.map +1 -1
  144. package/dist/views/API/index.js +7 -2
  145. package/dist/views/API/index.js.map +1 -1
  146. package/dist/views/API/index.scss +119 -0
  147. package/dist/views/API/metadata.js +18 -23
  148. package/dist/views/API/metadata.js.map +1 -1
  149. package/dist/views/Account/ResetPreferences/index.js +78 -102
  150. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  151. package/dist/views/Account/Settings/LanguageSelector.js +18 -47
  152. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  153. package/dist/views/Account/Settings/index.js +60 -25
  154. package/dist/views/Account/Settings/index.js.map +1 -1
  155. package/dist/views/Account/Settings/index.scss +48 -0
  156. package/dist/views/Account/ToggleTheme/index.js +38 -55
  157. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  158. package/dist/views/Account/index.client.js +16 -32
  159. package/dist/views/Account/index.client.js.map +1 -1
  160. package/dist/views/Account/index.js +147 -158
  161. package/dist/views/Account/index.js.map +1 -1
  162. package/dist/views/Account/metadata.js +8 -12
  163. package/dist/views/Account/metadata.js.map +1 -1
  164. package/dist/views/BrowseByFolder/buildView.js +138 -157
  165. package/dist/views/BrowseByFolder/buildView.js.map +1 -1
  166. package/dist/views/BrowseByFolder/index.js +16 -16
  167. package/dist/views/BrowseByFolder/index.js.map +1 -1
  168. package/dist/views/BrowseByFolder/metadata.js +13 -15
  169. package/dist/views/BrowseByFolder/metadata.js.map +1 -1
  170. package/dist/views/CollectionFolders/buildView.js +122 -142
  171. package/dist/views/CollectionFolders/buildView.js.map +1 -1
  172. package/dist/views/CollectionFolders/index.js +16 -16
  173. package/dist/views/CollectionFolders/index.js.map +1 -1
  174. package/dist/views/CollectionFolders/metadata.js +18 -21
  175. package/dist/views/CollectionFolders/metadata.js.map +1 -1
  176. package/dist/views/CollectionFolders/renderFolderViewSlots.js +58 -61
  177. package/dist/views/CollectionFolders/renderFolderViewSlots.js.map +1 -1
  178. package/dist/views/CollectionTrash/index.js +17 -17
  179. package/dist/views/CollectionTrash/index.js.map +1 -1
  180. package/dist/views/CollectionTrash/metadata.js +18 -21
  181. package/dist/views/CollectionTrash/metadata.js.map +1 -1
  182. package/dist/views/CreateFirstUser/index.client.js +117 -103
  183. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  184. package/dist/views/CreateFirstUser/index.js +87 -81
  185. package/dist/views/CreateFirstUser/index.js.map +1 -1
  186. package/dist/views/CreateFirstUser/index.scss +21 -0
  187. package/dist/views/CreateFirstUser/metadata.js +8 -12
  188. package/dist/views/CreateFirstUser/metadata.js.map +1 -1
  189. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +147 -138
  190. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  191. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +423 -405
  192. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  193. package/dist/views/Dashboard/Default/ModularDashboard/index.js +72 -75
  194. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  195. package/dist/views/Dashboard/Default/ModularDashboard/index.scss +316 -0
  196. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +62 -89
  197. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  198. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +40 -47
  199. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  200. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +64 -65
  201. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  202. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +164 -147
  203. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  204. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js +31 -30
  205. package/dist/views/Dashboard/Default/ModularDashboard/utils/collisionDetection.js.map +1 -1
  206. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +223 -229
  207. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
  208. package/dist/views/Dashboard/Default/index.js +59 -45
  209. package/dist/views/Dashboard/Default/index.js.map +1 -1
  210. package/dist/views/Dashboard/index.js +46 -42
  211. package/dist/views/Dashboard/index.js.map +1 -1
  212. package/dist/views/Dashboard/metadata.js +10 -14
  213. package/dist/views/Dashboard/metadata.js.map +1 -1
  214. package/dist/views/Document/getCustomDocumentViewByKey.js +3 -2
  215. package/dist/views/Document/getCustomDocumentViewByKey.js.map +1 -1
  216. package/dist/views/Document/getCustomViewByRoute.js +27 -30
  217. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  218. package/dist/views/Document/getDocPreferences.js +40 -41
  219. package/dist/views/Document/getDocPreferences.js.map +1 -1
  220. package/dist/views/Document/getDocumentData.js +44 -55
  221. package/dist/views/Document/getDocumentData.js.map +1 -1
  222. package/dist/views/Document/getDocumentPermissions.js +77 -80
  223. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  224. package/dist/views/Document/getDocumentView.js +313 -283
  225. package/dist/views/Document/getDocumentView.js.map +1 -1
  226. package/dist/views/Document/getIsLocked.js +66 -66
  227. package/dist/views/Document/getIsLocked.js.map +1 -1
  228. package/dist/views/Document/getMetaBySegment.js +130 -136
  229. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  230. package/dist/views/Document/getVersions.js +205 -195
  231. package/dist/views/Document/getVersions.js.map +1 -1
  232. package/dist/views/Document/handleServerFunction.js +103 -128
  233. package/dist/views/Document/handleServerFunction.js.map +1 -1
  234. package/dist/views/Document/index.js +316 -355
  235. package/dist/views/Document/index.js.map +1 -1
  236. package/dist/views/Document/metadata.js +2 -1
  237. package/dist/views/Document/metadata.js.map +1 -1
  238. package/dist/views/Document/renderDocumentSlots.js +121 -132
  239. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  240. package/dist/views/Edit/index.js +10 -6
  241. package/dist/views/Edit/index.js.map +1 -1
  242. package/dist/views/Edit/metadata.js +36 -46
  243. package/dist/views/Edit/metadata.js.map +1 -1
  244. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +130 -164
  245. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  246. package/dist/views/ForgotPassword/index.js +79 -62
  247. package/dist/views/ForgotPassword/index.js.map +1 -1
  248. package/dist/views/ForgotPassword/metadata.js +8 -12
  249. package/dist/views/ForgotPassword/metadata.js.map +1 -1
  250. package/dist/views/List/createSerializableValue.js +12 -11
  251. package/dist/views/List/createSerializableValue.js.map +1 -1
  252. package/dist/views/List/enrichDocsWithVersionStatus.js +86 -86
  253. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  254. package/dist/views/List/extractRelationshipDisplayValue.js +15 -14
  255. package/dist/views/List/extractRelationshipDisplayValue.js.map +1 -1
  256. package/dist/views/List/extractValueOrRelationshipID.js +16 -15
  257. package/dist/views/List/extractValueOrRelationshipID.js.map +1 -1
  258. package/dist/views/List/handleGroupBy.js +133 -150
  259. package/dist/views/List/handleGroupBy.js.map +1 -1
  260. package/dist/views/List/handleServerFunction.js +98 -121
  261. package/dist/views/List/handleServerFunction.js.map +1 -1
  262. package/dist/views/List/index.js +305 -323
  263. package/dist/views/List/index.js.map +1 -1
  264. package/dist/views/List/metadata.js +17 -20
  265. package/dist/views/List/metadata.js.map +1 -1
  266. package/dist/views/List/renderListViewSlots.js +82 -75
  267. package/dist/views/List/renderListViewSlots.js.map +1 -1
  268. package/dist/views/List/resolveAllFilterOptions.js +43 -45
  269. package/dist/views/List/resolveAllFilterOptions.js.map +1 -1
  270. package/dist/views/List/transformColumnsToSelect.js +9 -8
  271. package/dist/views/List/transformColumnsToSelect.js.map +1 -1
  272. package/dist/views/Login/LoginField/index.js +57 -89
  273. package/dist/views/Login/LoginField/index.js.map +1 -1
  274. package/dist/views/Login/LoginForm/index.js +107 -160
  275. package/dist/views/Login/LoginForm/index.js.map +1 -1
  276. package/dist/views/Login/LoginForm/index.scss +10 -0
  277. package/dist/views/Login/index.js +82 -85
  278. package/dist/views/Login/index.js.map +1 -1
  279. package/dist/views/Login/index.scss +10 -0
  280. package/dist/views/Login/metadata.js +8 -12
  281. package/dist/views/Login/metadata.js.map +1 -1
  282. package/dist/views/Logout/LogoutClient.js +84 -120
  283. package/dist/views/Logout/LogoutClient.js.map +1 -1
  284. package/dist/views/Logout/index.js +29 -29
  285. package/dist/views/Logout/index.js.map +1 -1
  286. package/dist/views/Logout/index.scss +25 -0
  287. package/dist/views/Logout/metadata.js +7 -11
  288. package/dist/views/Logout/metadata.js.map +1 -1
  289. package/dist/views/NotFound/index.client.js +71 -82
  290. package/dist/views/NotFound/index.client.js.map +1 -1
  291. package/dist/views/NotFound/index.js +72 -73
  292. package/dist/views/NotFound/index.js.map +1 -1
  293. package/dist/views/NotFound/index.scss +57 -0
  294. package/dist/views/NotFound/metadata.js +7 -9
  295. package/dist/views/NotFound/metadata.js.map +1 -1
  296. package/dist/views/ResetPassword/ResetPasswordForm/index.js +97 -108
  297. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  298. package/dist/views/ResetPassword/index.js +93 -73
  299. package/dist/views/ResetPassword/index.js.map +1 -1
  300. package/dist/views/ResetPassword/index.scss +11 -0
  301. package/dist/views/ResetPassword/metadata.js +8 -12
  302. package/dist/views/ResetPassword/metadata.js.map +1 -1
  303. package/dist/views/Root/attachViewActions.js +18 -23
  304. package/dist/views/Root/attachViewActions.js.map +1 -1
  305. package/dist/views/Root/generateCustomViewMetadata.js +19 -21
  306. package/dist/views/Root/generateCustomViewMetadata.js.map +1 -1
  307. package/dist/views/Root/getCustomViewByKey.js +12 -14
  308. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  309. package/dist/views/Root/getCustomViewByRoute.js +31 -42
  310. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  311. package/dist/views/Root/getDocumentViewInfo.js +24 -23
  312. package/dist/views/Root/getDocumentViewInfo.js.map +1 -1
  313. package/dist/views/Root/getRouteData.js +333 -325
  314. package/dist/views/Root/getRouteData.js.map +1 -1
  315. package/dist/views/Root/index.js +248 -270
  316. package/dist/views/Root/index.js.map +1 -1
  317. package/dist/views/Root/isPathMatchingRoute.js +21 -26
  318. package/dist/views/Root/isPathMatchingRoute.js.map +1 -1
  319. package/dist/views/Root/metadata.js +176 -181
  320. package/dist/views/Root/metadata.js.map +1 -1
  321. package/dist/views/Unauthorized/index.js +54 -46
  322. package/dist/views/Unauthorized/index.js.map +1 -1
  323. package/dist/views/Unauthorized/index.scss +14 -0
  324. package/dist/views/Unauthorized/metadata.js +8 -12
  325. package/dist/views/Unauthorized/metadata.js.map +1 -1
  326. package/dist/views/Verify/index.client.js +25 -43
  327. package/dist/views/Verify/index.client.js.map +1 -1
  328. package/dist/views/Verify/index.js +69 -64
  329. package/dist/views/Verify/index.js.map +1 -1
  330. package/dist/views/Verify/index.scss +16 -0
  331. package/dist/views/Verify/metadata.js +8 -12
  332. package/dist/views/Verify/metadata.js.map +1 -1
  333. package/dist/views/Version/Default/SelectedLocalesContext.js +4 -4
  334. package/dist/views/Version/Default/SelectedLocalesContext.js.map +1 -1
  335. package/dist/views/Version/Default/SetStepNav.js +86 -127
  336. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  337. package/dist/views/Version/Default/index.js +380 -236
  338. package/dist/views/Version/Default/index.js.map +1 -1
  339. package/dist/views/Version/Default/index.scss +170 -0
  340. package/dist/views/Version/Default/types.js +2 -1
  341. package/dist/views/Version/Default/types.js.map +1 -1
  342. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +102 -119
  343. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  344. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +81 -0
  345. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +78 -73
  346. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  347. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +363 -408
  348. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  349. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +40 -51
  350. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  351. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +35 -67
  352. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  353. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.scss +12 -0
  354. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +59 -56
  355. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  356. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +9 -0
  357. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +139 -117
  358. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  359. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +59 -0
  360. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +36 -41
  361. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  362. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +192 -178
  363. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  364. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +91 -0
  365. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js +17 -11
  366. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  367. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +48 -73
  368. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  369. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +4 -0
  370. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +132 -143
  371. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  372. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +9 -0
  373. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +56 -81
  374. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  375. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +4 -0
  376. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +252 -210
  377. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  378. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.scss +121 -0
  379. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +23 -22
  380. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  381. package/dist/views/Version/RenderFieldsToDiff/index.js +12 -9
  382. package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
  383. package/dist/views/Version/RenderFieldsToDiff/index.scss +24 -0
  384. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +213 -228
  385. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  386. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +1005 -826
  387. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  388. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js +2 -1
  389. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.js.map +1 -1
  390. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +44 -43
  391. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +1 -1
  392. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js +25 -22
  393. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.js.map +1 -1
  394. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +32 -36
  395. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  396. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +145 -129
  397. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  398. package/dist/views/Version/Restore/index.js +117 -93
  399. package/dist/views/Version/Restore/index.js.map +1 -1
  400. package/dist/views/Version/Restore/index.scss +84 -0
  401. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js +33 -50
  402. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  403. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +170 -226
  404. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  405. package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +18 -0
  406. package/dist/views/Version/SelectComparison/index.js +73 -50
  407. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  408. package/dist/views/Version/SelectComparison/index.scss +9 -0
  409. package/dist/views/Version/SelectComparison/types.js +2 -1
  410. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  411. package/dist/views/Version/SelectLocales/index.js +34 -32
  412. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  413. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js +104 -95
  414. package/dist/views/Version/VersionPillLabel/VersionPillLabel.js.map +1 -1
  415. package/dist/views/Version/VersionPillLabel/getVersionLabel.js +23 -27
  416. package/dist/views/Version/VersionPillLabel/getVersionLabel.js.map +1 -1
  417. package/dist/views/Version/VersionPillLabel/index.scss +26 -0
  418. package/dist/views/Version/fetchVersions.js +113 -138
  419. package/dist/views/Version/fetchVersions.js.map +1 -1
  420. package/dist/views/Version/index.js +325 -323
  421. package/dist/views/Version/index.js.map +1 -1
  422. package/dist/views/Version/metadata.js +43 -50
  423. package/dist/views/Version/metadata.js.map +1 -1
  424. package/dist/views/Versions/buildColumns.js +95 -79
  425. package/dist/views/Versions/buildColumns.js.map +1 -1
  426. package/dist/views/Versions/cells/AutosaveCell/index.js +34 -38
  427. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  428. package/dist/views/Versions/cells/AutosaveCell/index.scss +9 -0
  429. package/dist/views/Versions/cells/CreatedAt/index.js +32 -53
  430. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  431. package/dist/views/Versions/cells/ID/index.js +10 -8
  432. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  433. package/dist/views/Versions/index.client.js +106 -83
  434. package/dist/views/Versions/index.client.js.map +1 -1
  435. package/dist/views/Versions/index.js +143 -143
  436. package/dist/views/Versions/index.js.map +1 -1
  437. package/dist/views/Versions/index.scss +110 -0
  438. package/dist/views/Versions/metadata.js +37 -44
  439. package/dist/views/Versions/metadata.js.map +1 -1
  440. package/dist/views/Versions/types.js +2 -1
  441. package/dist/views/Versions/types.js.map +1 -1
  442. package/dist/withPayload/withPayload.js +198 -143
  443. package/dist/withPayload/withPayload.js.map +1 -1
  444. package/dist/withPayload/withPayload.utils.js +92 -95
  445. package/dist/withPayload/withPayload.utils.js.map +1 -1
  446. package/dist/withPayload/withPayloadLegacy.js +42 -40
  447. package/dist/withPayload/withPayloadLegacy.js.map +1 -1
  448. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"countChangedFields.spec.js","names":["describe","it","expect","countChangedFields","countChangedFieldsInRows","locales","undefined","fields","name","type","valueFrom","a","b","valueTo","result","toBe","id","label","c","group","tabs","namedTab","admin","arrayField","blocks","slug","blockType","d","localized","en","de","tab","field","valueFromRows","valueToRows"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.ts"],"sourcesContent":["import type { ClientField } from 'payload'\nimport { describe, it, expect } from 'vitest'\n\nimport { countChangedFields, countChangedFieldsInRows } from './countChangedFields.js'\n\ndescribe('countChangedFields', () => {\n // locales can be undefined when not configured in payload.config.js\n const locales = undefined\n it('should return 0 when no fields have changed', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = { a: 'original', b: 123 }\n const valueTo = { a: 'original', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count simple changed fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = { a: 'original', b: 123 }\n const valueTo = { a: 'changed', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(1)\n })\n\n it('should count previously undefined fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = {}\n const valueTo = { a: 'new', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should not count the id field because it is not displayed in the version view', () => {\n const fields: ClientField[] = [\n { name: 'id', type: 'text' },\n { name: 'a', type: 'text' },\n ]\n const valueFrom = { id: 'original', a: 'original' }\n const valueTo = { id: 'changed', a: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside collapsible fields', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside row fields', () => {\n const fields: ClientField[] = [\n {\n type: 'row',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside group fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { group: { a: 'original', b: 'original', c: 'original' } }\n const valueTo = { group: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside unnamed tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Unnamed tab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside named tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'namedTab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = { namedTab: { a: 'original', b: 'original', c: 'original' } }\n const valueTo = { namedTab: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should ignore UI fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n {\n name: 'b',\n type: 'ui',\n admin: {},\n },\n ]\n const valueFrom = { a: 'original', b: 'original' }\n const valueTo = { a: 'original', b: 'changed' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const valueFrom = {\n arrayField: [\n { a: 'original', b: 'original', c: 'original' },\n { a: 'original', b: 'original' },\n ],\n }\n const valueTo = {\n arrayField: [\n { a: 'changed', b: 'changed', c: 'original' },\n { a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields inside arrays nested inside of collapsibles', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ],\n },\n ]\n const valueFrom = { arrayField: [{ a: 'original', b: 'original', c: 'original' }] }\n const valueTo = { arrayField: [{ a: 'changed', b: 'changed', c: 'original' }] }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: [\n { blockType: 'blockA', a: 'original', b: 'original', c: 'original' },\n { blockType: 'blockA', a: 'original', b: 'original' },\n ],\n }\n const valueTo = {\n blocks: [\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' },\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields between blocks with different slugs', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n {\n slug: 'blockB',\n fields: [\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n { name: 'd', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: [{ blockType: 'blockA', a: 'removed', b: 'original', c: 'original' }],\n }\n const valueTo = {\n blocks: [{ blockType: 'blockB', b: 'original', c: 'changed', d: 'new' }],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n describe('localized fields', () => {\n const locales = ['en', 'de']\n it('should count simple localized fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const valueFrom = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const valueTo = {\n a: { en: 'changed', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(1)\n })\n\n it('should count multiple locales of the same localized field', () => {\n const locales = ['en', 'de']\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const valueFrom = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const valueTo = {\n a: { en: 'changed', de: 'changed' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside localized groups fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = {\n group: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const valueTo = {\n group: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n it('should count changed fields inside localized tabs', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n tab: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const valueTo = {\n tab: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n localized: true,\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const valueFrom = {\n arrayField: {\n en: [{ a: 'original', b: 'original', c: 'original' }],\n de: [{ a: 'original', b: 'original', c: 'original' }],\n },\n }\n const valueTo = {\n arrayField: {\n en: [{ a: 'changed', b: 'changed', c: 'original' }],\n de: [{ a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n localized: true,\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n },\n }\n const valueTo = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n })\n})\n\ndescribe('countChangedFieldsInRows', () => {\n it('should count fields in array rows', () => {\n const field: ClientField = {\n name: 'myArray',\n type: 'array',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n }\n\n const valueFromRows = [{ a: 'original', b: 'original', c: 'original' }]\n const valueToRows = [{ a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n valueFromRows,\n field,\n locales: undefined,\n valueToRows: valueToRows,\n })\n expect(result).toBe(2)\n })\n\n it('should count fields in blocks', () => {\n const field: ClientField = {\n name: 'myBlocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n }\n\n const valueFromRows = [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }]\n const valueToRows = [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n valueFromRows,\n field,\n locales: undefined,\n valueToRows,\n })\n expect(result).toBe(2)\n })\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.ts"],"sourcesContent":["import type { ClientField } from 'payload'\nimport { describe, it, expect } from 'vitest'\n\nimport { countChangedFields, countChangedFieldsInRows } from './countChangedFields.js'\n\ndescribe('countChangedFields', () => {\n // locales can be undefined when not configured in payload.config.js\n const locales = undefined\n it('should return 0 when no fields have changed', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = { a: 'original', b: 123 }\n const valueTo = { a: 'original', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count simple changed fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = { a: 'original', b: 123 }\n const valueTo = { a: 'changed', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(1)\n })\n\n it('should count previously undefined fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'number' },\n ]\n const valueFrom = {}\n const valueTo = { a: 'new', b: 123 }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should not count the id field because it is not displayed in the version view', () => {\n const fields: ClientField[] = [\n { name: 'id', type: 'text' },\n { name: 'a', type: 'text' },\n ]\n const valueFrom = { id: 'original', a: 'original' }\n const valueTo = { id: 'changed', a: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside collapsible fields', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside row fields', () => {\n const fields: ClientField[] = [\n {\n type: 'row',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside group fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = { group: { a: 'original', b: 'original', c: 'original' } }\n const valueTo = { group: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside unnamed tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Unnamed tab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = { a: 'original', b: 'original', c: 'original' }\n const valueTo = { a: 'changed', b: 'changed', c: 'original' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside named tabs ', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'namedTab',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = { namedTab: { a: 'original', b: 'original', c: 'original' } }\n const valueTo = { namedTab: { a: 'changed', b: 'changed', c: 'original' } }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should ignore UI fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text' },\n {\n name: 'b',\n type: 'ui',\n admin: {},\n },\n ]\n const valueFrom = { a: 'original', b: 'original' }\n const valueTo = { a: 'original', b: 'changed' }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(0)\n })\n\n it('should count changed fields inside array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const valueFrom = {\n arrayField: [\n { a: 'original', b: 'original', c: 'original' },\n { a: 'original', b: 'original' },\n ],\n }\n const valueTo = {\n arrayField: [\n { a: 'changed', b: 'changed', c: 'original' },\n { a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields inside arrays nested inside of collapsibles', () => {\n const fields: ClientField[] = [\n {\n type: 'collapsible',\n label: 'A collapsible field',\n fields: [\n {\n name: 'arrayField',\n type: 'array',\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ],\n },\n ]\n const valueFrom = { arrayField: [{ a: 'original', b: 'original', c: 'original' }] }\n const valueTo = { arrayField: [{ a: 'changed', b: 'changed', c: 'original' }] }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: [\n { blockType: 'blockA', a: 'original', b: 'original', c: 'original' },\n { blockType: 'blockA', a: 'original', b: 'original' },\n ],\n }\n const valueTo = {\n blocks: [\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' },\n { blockType: 'blockA', a: 'changed', b: 'changed', c: 'changed' },\n ],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(5)\n })\n\n it('should count changed fields between blocks with different slugs', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n {\n slug: 'blockB',\n fields: [\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n { name: 'd', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: [{ blockType: 'blockA', a: 'removed', b: 'original', c: 'original' }],\n }\n const valueTo = {\n blocks: [{ blockType: 'blockB', b: 'original', c: 'changed', d: 'new' }],\n }\n\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n describe('localized fields', () => {\n const locales = ['en', 'de']\n it('should count simple localized fields', () => {\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const valueFrom = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const valueTo = {\n a: { en: 'changed', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(1)\n })\n\n it('should count multiple locales of the same localized field', () => {\n const locales = ['en', 'de']\n const fields: ClientField[] = [\n { name: 'a', type: 'text', localized: true },\n { name: 'b', type: 'text', localized: true },\n ]\n const valueFrom = {\n a: { en: 'original', de: 'original' },\n b: { en: 'original', de: 'original' },\n }\n const valueTo = {\n a: { en: 'changed', de: 'changed' },\n b: { en: 'original', de: 'original' },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(2)\n })\n\n it('should count changed fields inside localized groups fields', () => {\n const fields: ClientField[] = [\n {\n type: 'group',\n name: 'group',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ]\n const valueFrom = {\n group: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const valueTo = {\n group: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n it('should count changed fields inside localized tabs', () => {\n const fields: ClientField[] = [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n localized: true,\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n tab: {\n en: { a: 'original', b: 'original', c: 'original' },\n de: { a: 'original', b: 'original', c: 'original' },\n },\n }\n const valueTo = {\n tab: {\n en: { a: 'changed', b: 'changed', c: 'original' },\n de: { a: 'original', b: 'changed', c: 'original' },\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized array fields', () => {\n const fields: ClientField[] = [\n {\n name: 'arrayField',\n type: 'array',\n localized: true,\n fields: [\n {\n name: 'a',\n type: 'text',\n },\n {\n name: 'b',\n type: 'text',\n },\n {\n name: 'c',\n type: 'text',\n },\n ],\n },\n ]\n const valueFrom = {\n arrayField: {\n en: [{ a: 'original', b: 'original', c: 'original' }],\n de: [{ a: 'original', b: 'original', c: 'original' }],\n },\n }\n const valueTo = {\n arrayField: {\n en: [{ a: 'changed', b: 'changed', c: 'original' }],\n de: [{ a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n\n it('should count changed fields inside localized blocks fields', () => {\n const fields: ClientField[] = [\n {\n name: 'blocks',\n type: 'blocks',\n localized: true,\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n },\n ]\n const valueFrom = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }],\n },\n }\n const valueTo = {\n blocks: {\n en: [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }],\n de: [{ blockType: 'blockA', a: 'original', b: 'changed', c: 'original' }],\n },\n }\n const result = countChangedFields({ valueFrom, fields, valueTo, locales })\n expect(result).toBe(3)\n })\n })\n})\n\ndescribe('countChangedFieldsInRows', () => {\n it('should count fields in array rows', () => {\n const field: ClientField = {\n name: 'myArray',\n type: 'array',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n }\n\n const valueFromRows = [{ a: 'original', b: 'original', c: 'original' }]\n const valueToRows = [{ a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n valueFromRows,\n field,\n locales: undefined,\n valueToRows: valueToRows,\n })\n expect(result).toBe(2)\n })\n\n it('should count fields in blocks', () => {\n const field: ClientField = {\n name: 'myBlocks',\n type: 'blocks',\n blocks: [\n {\n slug: 'blockA',\n fields: [\n { name: 'a', type: 'text' },\n { name: 'b', type: 'text' },\n { name: 'c', type: 'text' },\n ],\n },\n ],\n }\n\n const valueFromRows = [{ blockType: 'blockA', a: 'original', b: 'original', c: 'original' }]\n const valueToRows = [{ blockType: 'blockA', a: 'changed', b: 'changed', c: 'original' }]\n\n const result = countChangedFieldsInRows({\n valueFromRows,\n field,\n locales: undefined,\n valueToRows,\n })\n expect(result).toBe(2)\n })\n})\n"],"names":["describe","it","expect","countChangedFields","countChangedFieldsInRows","locales","undefined","fields","name","type","valueFrom","a","b","valueTo","result","toBe","id","label","c","group","tabs","namedTab","admin","arrayField","blocks","slug","blockType","d","localized","en","de","tab","field","valueFromRows","valueToRows"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export function fieldHasChanges(a, b) {
2
- return JSON.stringify(a) !== JSON.stringify(b);
2
+ return JSON.stringify(a) !== JSON.stringify(b);
3
3
  }
4
+
4
5
  //# sourceMappingURL=fieldHasChanges.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fieldHasChanges.js","names":["fieldHasChanges","a","b","JSON","stringify"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.ts"],"sourcesContent":["export function fieldHasChanges(a: unknown, b: unknown) {\n return JSON.stringify(a) !== JSON.stringify(b)\n}\n"],"mappings":"AAAA,OAAO,SAASA,gBAAgBC,CAAU,EAAEC,CAAU;EACpD,OAAOC,IAAA,CAAKC,SAAS,CAACH,CAAA,MAAOE,IAAA,CAAKC,SAAS,CAACF,CAAA;AAC9C","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.ts"],"sourcesContent":["export function fieldHasChanges(a: unknown, b: unknown) {\n return JSON.stringify(a) !== JSON.stringify(b)\n}\n"],"names":["fieldHasChanges","a","b","JSON","stringify"],"mappings":"AAAA,OAAO,SAASA,gBAAgBC,CAAU,EAAEC,CAAU;IACpD,OAAOC,KAAKC,SAAS,CAACH,OAAOE,KAAKC,SAAS,CAACF;AAC9C"}
@@ -1,47 +1,48 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { fieldHasChanges } from './fieldHasChanges.js';
3
- describe('hasChanges', () => {
4
- it('should return false for identical values', () => {
5
- const a = 'value';
6
- const b = 'value';
7
- expect(fieldHasChanges(a, b)).toBe(false);
8
- });
9
- it('should return true for different values', () => {
10
- const a = 1;
11
- const b = 2;
12
- expect(fieldHasChanges(a, b)).toBe(true);
13
- });
14
- it('should return false for identical objects', () => {
15
- const a = {
16
- key: 'value'
17
- };
18
- const b = {
19
- key: 'value'
20
- };
21
- expect(fieldHasChanges(a, b)).toBe(false);
22
- });
23
- it('should return true for different objects', () => {
24
- const a = {
25
- key: 'value'
26
- };
27
- const b = {
28
- key: 'differentValue'
29
- };
30
- expect(fieldHasChanges(a, b)).toBe(true);
31
- });
32
- it('should handle undefined values', () => {
33
- const a = {
34
- key: 'value'
35
- };
36
- const b = undefined;
37
- expect(fieldHasChanges(a, b)).toBe(true);
38
- });
39
- it('should handle null values', () => {
40
- const a = {
41
- key: 'value'
42
- };
43
- const b = null;
44
- expect(fieldHasChanges(a, b)).toBe(true);
45
- });
3
+ describe('hasChanges', ()=>{
4
+ it('should return false for identical values', ()=>{
5
+ const a = 'value';
6
+ const b = 'value';
7
+ expect(fieldHasChanges(a, b)).toBe(false);
8
+ });
9
+ it('should return true for different values', ()=>{
10
+ const a = 1;
11
+ const b = 2;
12
+ expect(fieldHasChanges(a, b)).toBe(true);
13
+ });
14
+ it('should return false for identical objects', ()=>{
15
+ const a = {
16
+ key: 'value'
17
+ };
18
+ const b = {
19
+ key: 'value'
20
+ };
21
+ expect(fieldHasChanges(a, b)).toBe(false);
22
+ });
23
+ it('should return true for different objects', ()=>{
24
+ const a = {
25
+ key: 'value'
26
+ };
27
+ const b = {
28
+ key: 'differentValue'
29
+ };
30
+ expect(fieldHasChanges(a, b)).toBe(true);
31
+ });
32
+ it('should handle undefined values', ()=>{
33
+ const a = {
34
+ key: 'value'
35
+ };
36
+ const b = undefined;
37
+ expect(fieldHasChanges(a, b)).toBe(true);
38
+ });
39
+ it('should handle null values', ()=>{
40
+ const a = {
41
+ key: 'value'
42
+ };
43
+ const b = null;
44
+ expect(fieldHasChanges(a, b)).toBe(true);
45
+ });
46
46
  });
47
+
47
48
  //# sourceMappingURL=fieldHasChanges.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fieldHasChanges.spec.js","names":["describe","it","expect","fieldHasChanges","a","b","toBe","key","undefined"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.ts"],"sourcesContent":["import { describe, it, expect } from 'vitest'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\n\ndescribe('hasChanges', () => {\n it('should return false for identical values', () => {\n const a = 'value'\n const b = 'value'\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n it('should return true for different values', () => {\n const a = 1\n const b = 2\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should return false for identical objects', () => {\n const a = { key: 'value' }\n const b = { key: 'value' }\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n\n it('should return true for different objects', () => {\n const a = { key: 'value' }\n const b = { key: 'differentValue' }\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle undefined values', () => {\n const a = { key: 'value' }\n const b = undefined\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle null values', () => {\n const a = { key: 'value' }\n const b = null\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n})\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,QAAQ;AAErC,SAASC,eAAe,QAAQ;AAEhCH,QAAA,CAAS,cAAc;EACrBC,EAAA,CAAG,4CAA4C;IAC7C,MAAMG,CAAA,GAAI;IACV,MAAMC,CAAA,GAAI;IACVH,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;EACAL,EAAA,CAAG,2CAA2C;IAC5C,MAAMG,CAAA,GAAI;IACV,MAAMC,CAAA,GAAI;IACVH,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;EAEAL,EAAA,CAAG,6CAA6C;IAC9C,MAAMG,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAQ;IACzB,MAAMF,CAAA,GAAI;MAAEE,GAAA,EAAK;IAAQ;IACzBL,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;EAEAL,EAAA,CAAG,4CAA4C;IAC7C,MAAMG,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAQ;IACzB,MAAMF,CAAA,GAAI;MAAEE,GAAA,EAAK;IAAiB;IAClCL,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;EAEAL,EAAA,CAAG,kCAAkC;IACnC,MAAMG,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAQ;IACzB,MAAMF,CAAA,GAAIG,SAAA;IACVN,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;EAEAL,EAAA,CAAG,6BAA6B;IAC9B,MAAMG,CAAA,GAAI;MAAEG,GAAA,EAAK;IAAQ;IACzB,MAAMF,CAAA,GAAI;IACVH,MAAA,CAAOC,eAAA,CAAgBC,CAAA,EAAGC,CAAA,GAAIC,IAAI,CAAC;EACrC;AACF","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.ts"],"sourcesContent":["import { describe, it, expect } from 'vitest'\n\nimport { fieldHasChanges } from './fieldHasChanges.js'\n\ndescribe('hasChanges', () => {\n it('should return false for identical values', () => {\n const a = 'value'\n const b = 'value'\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n it('should return true for different values', () => {\n const a = 1\n const b = 2\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should return false for identical objects', () => {\n const a = { key: 'value' }\n const b = { key: 'value' }\n expect(fieldHasChanges(a, b)).toBe(false)\n })\n\n it('should return true for different objects', () => {\n const a = { key: 'value' }\n const b = { key: 'differentValue' }\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle undefined values', () => {\n const a = { key: 'value' }\n const b = undefined\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n\n it('should handle null values', () => {\n const a = { key: 'value' }\n const b = null\n expect(fieldHasChanges(a, b)).toBe(true)\n })\n})\n"],"names":["describe","it","expect","fieldHasChanges","a","b","toBe","key","undefined"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,QAAQ,SAAQ;AAE7C,SAASC,eAAe,QAAQ,uBAAsB;AAEtDH,SAAS,cAAc;IACrBC,GAAG,4CAA4C;QAC7C,MAAMG,IAAI;QACV,MAAMC,IAAI;QACVH,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;IACAL,GAAG,2CAA2C;QAC5C,MAAMG,IAAI;QACV,MAAMC,IAAI;QACVH,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;IAEAL,GAAG,6CAA6C;QAC9C,MAAMG,IAAI;YAAEG,KAAK;QAAQ;QACzB,MAAMF,IAAI;YAAEE,KAAK;QAAQ;QACzBL,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;IAEAL,GAAG,4CAA4C;QAC7C,MAAMG,IAAI;YAAEG,KAAK;QAAQ;QACzB,MAAMF,IAAI;YAAEE,KAAK;QAAiB;QAClCL,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;IAEAL,GAAG,kCAAkC;QACnC,MAAMG,IAAI;YAAEG,KAAK;QAAQ;QACzB,MAAMF,IAAIG;QACVN,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;IAEAL,GAAG,6BAA6B;QAC9B,MAAMG,IAAI;YAAEG,KAAK;QAAQ;QACzB,MAAMF,IAAI;QACVH,OAAOC,gBAAgBC,GAAGC,IAAIC,IAAI,CAAC;IACrC;AACF"}
@@ -1,26 +1,29 @@
1
- export function getFieldPathsModified({
2
- field,
3
- index,
4
- parentIndexPath,
5
- parentPath,
6
- parentSchemaPath
7
- }) {
8
- const parentPathSegments = parentPath.split('.');
9
- const parentIsUnnamed = parentPathSegments[parentPathSegments.length - 1].startsWith('_index-');
10
- const parentWithoutIndex = parentIsUnnamed ? parentPathSegments.slice(0, -1).join('.') : parentPath;
11
- const parentPathToUse = parentIsUnnamed ? parentWithoutIndex : parentPath;
12
- if ('name' in field) {
1
+ /**
2
+ * A string of '-' separated indexes representing where
3
+ * to find this field in a given field schema array.
4
+ * It will always be complete and accurate.
5
+ */ /**
6
+ * Path for this field relative to its position in the data.
7
+ */ /**
8
+ * Path for this field relative to its position in the schema.
9
+ */ export function getFieldPathsModified({ field, index, parentIndexPath, parentPath, parentSchemaPath }) {
10
+ const parentPathSegments = parentPath.split('.');
11
+ const parentIsUnnamed = parentPathSegments[parentPathSegments.length - 1].startsWith('_index-');
12
+ const parentWithoutIndex = parentIsUnnamed ? parentPathSegments.slice(0, -1).join('.') : parentPath;
13
+ const parentPathToUse = parentIsUnnamed ? parentWithoutIndex : parentPath;
14
+ if ('name' in field) {
15
+ return {
16
+ indexPath: '',
17
+ path: `${parentPathToUse ? parentPathToUse + '.' : ''}${field.name}`,
18
+ schemaPath: `${parentSchemaPath ? parentSchemaPath + '.' : ''}${field.name}`
19
+ };
20
+ }
21
+ const indexSuffix = `_index-${`${parentIndexPath ? parentIndexPath + '-' : ''}${index}`}`;
13
22
  return {
14
- indexPath: '',
15
- path: `${parentPathToUse ? parentPathToUse + '.' : ''}${field.name}`,
16
- schemaPath: `${parentSchemaPath ? parentSchemaPath + '.' : ''}${field.name}`
23
+ indexPath: `${parentIndexPath ? parentIndexPath + '-' : ''}${index}`,
24
+ path: `${parentPathToUse ? parentPathToUse + '.' : ''}${indexSuffix}`,
25
+ schemaPath: `${!parentIsUnnamed && parentSchemaPath ? parentSchemaPath + '.' : ''}${indexSuffix}`
17
26
  };
18
- }
19
- const indexSuffix = `_index-${`${parentIndexPath ? parentIndexPath + '-' : ''}${index}`}`;
20
- return {
21
- indexPath: `${parentIndexPath ? parentIndexPath + '-' : ''}${index}`,
22
- path: `${parentPathToUse ? parentPathToUse + '.' : ''}${indexSuffix}`,
23
- schemaPath: `${!parentIsUnnamed && parentSchemaPath ? parentSchemaPath + '.' : ''}${indexSuffix}`
24
- };
25
27
  }
28
+
26
29
  //# sourceMappingURL=getFieldPathsModified.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldPathsModified.js","names":["getFieldPathsModified","field","index","parentIndexPath","parentPath","parentSchemaPath","parentPathSegments","split","parentIsUnnamed","length","startsWith","parentWithoutIndex","slice","join","parentPathToUse","indexPath","path","name","schemaPath","indexSuffix"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.ts"],"sourcesContent":["import type { ClientField, Field, Tab, TabAsFieldClient } from 'payload'\n\ntype Args = {\n field: ClientField | Field | Tab | TabAsFieldClient\n index: number\n parentIndexPath: string\n parentPath: string\n parentSchemaPath: string\n}\n\ntype FieldPaths = {\n /**\n * A string of '-' separated indexes representing where\n * to find this field in a given field schema array.\n * It will always be complete and accurate.\n */\n indexPath: string\n /**\n * Path for this field relative to its position in the data.\n */\n path: string\n /**\n * Path for this field relative to its position in the schema.\n */\n schemaPath: string\n}\n\nexport function getFieldPathsModified({\n field,\n index,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n}: Args): FieldPaths {\n const parentPathSegments = parentPath.split('.')\n\n const parentIsUnnamed = parentPathSegments[parentPathSegments.length - 1].startsWith('_index-')\n\n const parentWithoutIndex = parentIsUnnamed\n ? parentPathSegments.slice(0, -1).join('.')\n : parentPath\n\n const parentPathToUse = parentIsUnnamed ? parentWithoutIndex : parentPath\n\n if ('name' in field) {\n return {\n indexPath: '',\n path: `${parentPathToUse ? parentPathToUse + '.' : ''}${field.name}`,\n schemaPath: `${parentSchemaPath ? parentSchemaPath + '.' : ''}${field.name}`,\n }\n }\n\n const indexSuffix = `_index-${`${parentIndexPath ? parentIndexPath + '-' : ''}${index}`}`\n\n return {\n indexPath: `${parentIndexPath ? parentIndexPath + '-' : ''}${index}`,\n path: `${parentPathToUse ? parentPathToUse + '.' : ''}${indexSuffix}`,\n schemaPath: `${!parentIsUnnamed && parentSchemaPath ? parentSchemaPath + '.' : ''}${indexSuffix}`,\n }\n}\n"],"mappings":"AA2BA,OAAO,SAASA,sBAAsB;EACpCC,KAAK;EACLC,KAAK;EACLC,eAAe;EACfC,UAAU;EACVC;AAAgB,CACX;EACL,MAAMC,kBAAA,GAAqBF,UAAA,CAAWG,KAAK,CAAC;EAE5C,MAAMC,eAAA,GAAkBF,kBAAkB,CAACA,kBAAA,CAAmBG,MAAM,GAAG,EAAE,CAACC,UAAU,CAAC;EAErF,MAAMC,kBAAA,GAAqBH,eAAA,GACvBF,kBAAA,CAAmBM,KAAK,CAAC,GAAG,CAAC,GAAGC,IAAI,CAAC,OACrCT,UAAA;EAEJ,MAAMU,eAAA,GAAkBN,eAAA,GAAkBG,kBAAA,GAAqBP,UAAA;EAE/D,IAAI,UAAUH,KAAA,EAAO;IACnB,OAAO;MACLc,SAAA,EAAW;MACXC,IAAA,EAAM,GAAGF,eAAA,GAAkBA,eAAA,GAAkB,MAAM,KAAKb,KAAA,CAAMgB,IAAI,EAAE;MACpEC,UAAA,EAAY,GAAGb,gBAAA,GAAmBA,gBAAA,GAAmB,MAAM,KAAKJ,KAAA,CAAMgB,IAAI;IAC5E;EACF;EAEA,MAAME,WAAA,GAAc,UAAU,GAAGhB,eAAA,GAAkBA,eAAA,GAAkB,MAAM,KAAKD,KAAA,EAAO,EAAE;EAEzF,OAAO;IACLa,SAAA,EAAW,GAAGZ,eAAA,GAAkBA,eAAA,GAAkB,MAAM,KAAKD,KAAA,EAAO;IACpEc,IAAA,EAAM,GAAGF,eAAA,GAAkBA,eAAA,GAAkB,MAAM,KAAKK,WAAA,EAAa;IACrED,UAAA,EAAY,GAAG,CAACV,eAAA,IAAmBH,gBAAA,GAAmBA,gBAAA,GAAmB,MAAM,KAAKc,WAAA;EACtF;AACF","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldPathsModified.ts"],"sourcesContent":["import type { ClientField, Field, Tab, TabAsFieldClient } from 'payload'\n\ntype Args = {\n field: ClientField | Field | Tab | TabAsFieldClient\n index: number\n parentIndexPath: string\n parentPath: string\n parentSchemaPath: string\n}\n\ntype FieldPaths = {\n /**\n * A string of '-' separated indexes representing where\n * to find this field in a given field schema array.\n * It will always be complete and accurate.\n */\n indexPath: string\n /**\n * Path for this field relative to its position in the data.\n */\n path: string\n /**\n * Path for this field relative to its position in the schema.\n */\n schemaPath: string\n}\n\nexport function getFieldPathsModified({\n field,\n index,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n}: Args): FieldPaths {\n const parentPathSegments = parentPath.split('.')\n\n const parentIsUnnamed = parentPathSegments[parentPathSegments.length - 1].startsWith('_index-')\n\n const parentWithoutIndex = parentIsUnnamed\n ? parentPathSegments.slice(0, -1).join('.')\n : parentPath\n\n const parentPathToUse = parentIsUnnamed ? parentWithoutIndex : parentPath\n\n if ('name' in field) {\n return {\n indexPath: '',\n path: `${parentPathToUse ? parentPathToUse + '.' : ''}${field.name}`,\n schemaPath: `${parentSchemaPath ? parentSchemaPath + '.' : ''}${field.name}`,\n }\n }\n\n const indexSuffix = `_index-${`${parentIndexPath ? parentIndexPath + '-' : ''}${index}`}`\n\n return {\n indexPath: `${parentIndexPath ? parentIndexPath + '-' : ''}${index}`,\n path: `${parentPathToUse ? parentPathToUse + '.' : ''}${indexSuffix}`,\n schemaPath: `${!parentIsUnnamed && parentSchemaPath ? parentSchemaPath + '.' : ''}${indexSuffix}`,\n }\n}\n"],"names":["getFieldPathsModified","field","index","parentIndexPath","parentPath","parentSchemaPath","parentPathSegments","split","parentIsUnnamed","length","startsWith","parentWithoutIndex","slice","join","parentPathToUse","indexPath","path","name","schemaPath","indexSuffix"],"mappings":"AAWE;;;;GAIC,GAED;;GAEC,GAED;;GAEC,GAIH,OAAO,SAASA,sBAAsB,EACpCC,KAAK,EACLC,KAAK,EACLC,eAAe,EACfC,UAAU,EACVC,gBAAgB,EACX;IACL,MAAMC,qBAAqBF,WAAWG,KAAK,CAAC;IAE5C,MAAMC,kBAAkBF,kBAAkB,CAACA,mBAAmBG,MAAM,GAAG,EAAE,CAACC,UAAU,CAAC;IAErF,MAAMC,qBAAqBH,kBACvBF,mBAAmBM,KAAK,CAAC,GAAG,CAAC,GAAGC,IAAI,CAAC,OACrCT;IAEJ,MAAMU,kBAAkBN,kBAAkBG,qBAAqBP;IAE/D,IAAI,UAAUH,OAAO;QACnB,OAAO;YACLc,WAAW;YACXC,MAAM,GAAGF,kBAAkBA,kBAAkB,MAAM,KAAKb,MAAMgB,IAAI,EAAE;YACpEC,YAAY,GAAGb,mBAAmBA,mBAAmB,MAAM,KAAKJ,MAAMgB,IAAI,EAAE;QAC9E;IACF;IAEA,MAAME,cAAc,CAAC,OAAO,EAAE,GAAGhB,kBAAkBA,kBAAkB,MAAM,KAAKD,OAAO,EAAE;IAEzF,OAAO;QACLa,WAAW,GAAGZ,kBAAkBA,kBAAkB,MAAM,KAAKD,OAAO;QACpEc,MAAM,GAAGF,kBAAkBA,kBAAkB,MAAM,KAAKK,aAAa;QACrED,YAAY,GAAG,CAACV,mBAAmBH,mBAAmBA,mBAAmB,MAAM,KAAKc,aAAa;IACnG;AACF"}
@@ -4,42 +4,38 @@ import { getUniqueListBy } from 'payload/shared';
4
4
  * - Array fields: the fields of the array field, because the fields are the same for each row.
5
5
  * - Blocks fields: the union of fields from the comparison and version row,
6
6
  * because the fields from the version and comparison rows may differ.
7
- */
8
- export function getFieldsForRowComparison({
9
- baseVersionField,
10
- config,
11
- field,
12
- row,
13
- valueFromRow,
14
- valueToRow
15
- }) {
16
- let fields = [];
17
- let versionFields = [];
18
- if (field.type === 'array' && 'fields' in field) {
19
- fields = field.fields;
20
- versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
21
- } else if (field.type === 'blocks') {
22
- if (valueToRow?.blockType === valueFromRow?.blockType) {
23
- const matchedBlock = config?.blocksMap?.[valueToRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === valueToRow?.blockType) || {
24
- fields: []
25
- });
26
- fields = matchedBlock.fields;
27
- versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
28
- } else {
29
- const matchedVersionBlock = config?.blocksMap?.[valueToRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === valueToRow?.blockType) || {
30
- fields: []
31
- });
32
- const matchedComparisonBlock = config?.blocksMap?.[valueFromRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find(block => typeof block !== 'string' && block.slug === valueFromRow?.blockType) || {
33
- fields: []
34
- });
35
- fields = getUniqueListBy([...matchedVersionBlock.fields, ...matchedComparisonBlock.fields], 'name');
36
- // buildVersionFields already merged the fields of the version and comparison rows together
37
- versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
7
+ */ export function getFieldsForRowComparison({ baseVersionField, config, field, row, valueFromRow, valueToRow }) {
8
+ let fields = [];
9
+ let versionFields = [];
10
+ if (field.type === 'array' && 'fields' in field) {
11
+ fields = field.fields;
12
+ versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
13
+ } else if (field.type === 'blocks') {
14
+ if (valueToRow?.blockType === valueFromRow?.blockType) {
15
+ const matchedBlock = config?.blocksMap?.[valueToRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find((block)=>typeof block !== 'string' && block.slug === valueToRow?.blockType) || {
16
+ fields: []
17
+ });
18
+ fields = matchedBlock.fields;
19
+ versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
20
+ } else {
21
+ const matchedVersionBlock = config?.blocksMap?.[valueToRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find((block)=>typeof block !== 'string' && block.slug === valueToRow?.blockType) || {
22
+ fields: []
23
+ });
24
+ const matchedComparisonBlock = config?.blocksMap?.[valueFromRow?.blockType] ?? (('blocks' in field || 'blockReferences' in field) && (field.blockReferences ?? field.blocks)?.find((block)=>typeof block !== 'string' && block.slug === valueFromRow?.blockType) || {
25
+ fields: []
26
+ });
27
+ fields = getUniqueListBy([
28
+ ...matchedVersionBlock.fields,
29
+ ...matchedComparisonBlock.fields
30
+ ], 'name');
31
+ // buildVersionFields already merged the fields of the version and comparison rows together
32
+ versionFields = baseVersionField.rows?.length ? baseVersionField.rows[row] : baseVersionField.fields;
33
+ }
38
34
  }
39
- }
40
- return {
41
- fields,
42
- versionFields
43
- };
35
+ return {
36
+ fields,
37
+ versionFields
38
+ };
44
39
  }
40
+
45
41
  //# sourceMappingURL=getFieldsForRowComparison.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFieldsForRowComparison.js","names":["getUniqueListBy","getFieldsForRowComparison","baseVersionField","config","field","row","valueFromRow","valueToRow","fields","versionFields","type","rows","length","blockType","matchedBlock","blocksMap","blockReferences","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"sourcesContent":["import type {\n ArrayFieldClient,\n BaseVersionField,\n BlocksFieldClient,\n ClientBlock,\n ClientConfig,\n ClientField,\n VersionField,\n} from 'payload'\n\nimport { getUniqueListBy } from 'payload/shared'\n\n/**\n * Get the fields for a row in an iterable field for comparison.\n * - Array fields: the fields of the array field, because the fields are the same for each row.\n * - Blocks fields: the union of fields from the comparison and version row,\n * because the fields from the version and comparison rows may differ.\n */\nexport function getFieldsForRowComparison({\n baseVersionField,\n config,\n field,\n row,\n valueFromRow,\n valueToRow,\n}: {\n baseVersionField: BaseVersionField\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n row: number\n valueFromRow: any\n valueToRow: any\n}): { fields: ClientField[]; versionFields: VersionField[] } {\n let fields: ClientField[] = []\n let versionFields: VersionField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else if (field.type === 'blocks') {\n if (valueToRow?.blockType === valueFromRow?.blockType) {\n const matchedBlock: ClientBlock =\n config?.blocksMap?.[valueToRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueToRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = matchedBlock.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else {\n const matchedVersionBlock =\n config?.blocksMap?.[valueToRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueToRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n const matchedComparisonBlock =\n config?.blocksMap?.[valueFromRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueFromRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = getUniqueListBy<ClientField>(\n [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n\n // buildVersionFields already merged the fields of the version and comparison rows together\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n }\n }\n\n return { fields, versionFields }\n}\n"],"mappings":"AAUA,SAASA,eAAe,QAAQ;AAEhC;;;;;;AAMA,OAAO,SAASC,0BAA0B;EACxCC,gBAAgB;EAChBC,MAAM;EACNC,KAAK;EACLC,GAAG;EACHC,YAAY;EACZC;AAAU,CAQX;EACC,IAAIC,MAAA,GAAwB,EAAE;EAC9B,IAAIC,aAAA,GAAgC,EAAE;EAEtC,IAAIL,KAAA,CAAMM,IAAI,KAAK,WAAW,YAAYN,KAAA,EAAO;IAC/CI,MAAA,GAASJ,KAAA,CAAMI,MAAM;IACrBC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACN,GAAA,CAAI,GAC1BH,gBAAA,CAAiBM,MAAM;EAC7B,OAAO,IAAIJ,KAAA,CAAMM,IAAI,KAAK,UAAU;IAClC,IAAIH,UAAA,EAAYM,SAAA,KAAcP,YAAA,EAAcO,SAAA,EAAW;MACrD,MAAMC,YAAA,GACJX,MAAA,EAAQY,SAAA,GAAYR,UAAA,EAAYM,SAAA,CAAU,KACxC,CAAE,YAAYT,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMY,eAAe,IAAIZ,KAAA,CAAMa,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKb,UAAA,EAAYM,SAAA,KAC/D;QACNL,MAAA,EAAQ;MACV;MAEFA,MAAA,GAASM,YAAA,CAAaN,MAAM;MAC5BC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACN,GAAA,CAAI,GAC1BH,gBAAA,CAAiBM,MAAM;IAC7B,OAAO;MACL,MAAMa,mBAAA,GACJlB,MAAA,EAAQY,SAAA,GAAYR,UAAA,EAAYM,SAAA,CAAU,KACxC,CAAE,YAAYT,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMY,eAAe,IAAIZ,KAAA,CAAMa,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKb,UAAA,EAAYM,SAAA,KAC/D;QACNL,MAAA,EAAQ;MACV;MAEF,MAAMc,sBAAA,GACJnB,MAAA,EAAQY,SAAA,GAAYT,YAAA,EAAcO,SAAA,CAAU,KAC1C,CAAE,YAAYT,KAAA,IAAS,qBAAqBA,KAAI,KAC/C,CAAAA,KAAA,CAAMY,eAAe,IAAIZ,KAAA,CAAMa,MAAM,GAAGC,IAAA,CACtCC,KAAA,IAAU,OAAOA,KAAA,KAAU,YAAYA,KAAA,CAAMC,IAAI,KAAKd,YAAA,EAAcO,SAAA,KACjE;QACNL,MAAA,EAAQ;MACV;MAEFA,MAAA,GAASR,eAAA,CACP,C,GAAIqB,mBAAA,CAAoBb,MAAM,E,GAAKc,sBAAA,CAAuBd,MAAM,CAAC,EACjE;MAGF;MACAC,aAAA,GAAgBP,gBAAA,CAAiBS,IAAI,EAAEC,MAAA,GACnCV,gBAAA,CAAiBS,IAAI,CAACN,GAAA,CAAI,GAC1BH,gBAAA,CAAiBM,MAAM;IAC7B;EACF;EAEA,OAAO;IAAEA,MAAA;IAAQC;EAAc;AACjC","ignoreList":[]}
1
+ {"version":3,"sources":["../../../../../src/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.ts"],"sourcesContent":["import type {\n ArrayFieldClient,\n BaseVersionField,\n BlocksFieldClient,\n ClientBlock,\n ClientConfig,\n ClientField,\n VersionField,\n} from 'payload'\n\nimport { getUniqueListBy } from 'payload/shared'\n\n/**\n * Get the fields for a row in an iterable field for comparison.\n * - Array fields: the fields of the array field, because the fields are the same for each row.\n * - Blocks fields: the union of fields from the comparison and version row,\n * because the fields from the version and comparison rows may differ.\n */\nexport function getFieldsForRowComparison({\n baseVersionField,\n config,\n field,\n row,\n valueFromRow,\n valueToRow,\n}: {\n baseVersionField: BaseVersionField\n config: ClientConfig\n field: ArrayFieldClient | BlocksFieldClient\n row: number\n valueFromRow: any\n valueToRow: any\n}): { fields: ClientField[]; versionFields: VersionField[] } {\n let fields: ClientField[] = []\n let versionFields: VersionField[] = []\n\n if (field.type === 'array' && 'fields' in field) {\n fields = field.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else if (field.type === 'blocks') {\n if (valueToRow?.blockType === valueFromRow?.blockType) {\n const matchedBlock: ClientBlock =\n config?.blocksMap?.[valueToRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueToRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = matchedBlock.fields\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n } else {\n const matchedVersionBlock =\n config?.blocksMap?.[valueToRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueToRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n const matchedComparisonBlock =\n config?.blocksMap?.[valueFromRow?.blockType] ??\n (((('blocks' in field || 'blockReferences' in field) &&\n (field.blockReferences ?? field.blocks)?.find(\n (block) => typeof block !== 'string' && block.slug === valueFromRow?.blockType,\n )) || {\n fields: [],\n }) as ClientBlock)\n\n fields = getUniqueListBy<ClientField>(\n [...matchedVersionBlock.fields, ...matchedComparisonBlock.fields],\n 'name',\n )\n\n // buildVersionFields already merged the fields of the version and comparison rows together\n versionFields = baseVersionField.rows?.length\n ? baseVersionField.rows[row]\n : baseVersionField.fields\n }\n }\n\n return { fields, versionFields }\n}\n"],"names":["getUniqueListBy","getFieldsForRowComparison","baseVersionField","config","field","row","valueFromRow","valueToRow","fields","versionFields","type","rows","length","blockType","matchedBlock","blocksMap","blockReferences","blocks","find","block","slug","matchedVersionBlock","matchedComparisonBlock"],"mappings":"AAUA,SAASA,eAAe,QAAQ,iBAAgB;AAEhD;;;;;CAKC,GACD,OAAO,SAASC,0BAA0B,EACxCC,gBAAgB,EAChBC,MAAM,EACNC,KAAK,EACLC,GAAG,EACHC,YAAY,EACZC,UAAU,EAQX;IACC,IAAIC,SAAwB,EAAE;IAC9B,IAAIC,gBAAgC,EAAE;IAEtC,IAAIL,MAAMM,IAAI,KAAK,WAAW,YAAYN,OAAO;QAC/CI,SAASJ,MAAMI,MAAM;QACrBC,gBAAgBP,iBAAiBS,IAAI,EAAEC,SACnCV,iBAAiBS,IAAI,CAACN,IAAI,GAC1BH,iBAAiBM,MAAM;IAC7B,OAAO,IAAIJ,MAAMM,IAAI,KAAK,UAAU;QAClC,IAAIH,YAAYM,cAAcP,cAAcO,WAAW;YACrD,MAAMC,eACJX,QAAQY,WAAW,CAACR,YAAYM,UAAU,IACxC,CAAA,AAAE,CAAA,YAAYT,SAAS,qBAAqBA,KAAI,KAC/CA,CAAAA,MAAMY,eAAe,IAAIZ,MAAMa,MAAM,AAAD,GAAIC,KACvC,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKb,YAAYM,cAC/D;gBACNL,QAAQ,EAAE;YACZ,CAAA;YAEFA,SAASM,aAAaN,MAAM;YAC5BC,gBAAgBP,iBAAiBS,IAAI,EAAEC,SACnCV,iBAAiBS,IAAI,CAACN,IAAI,GAC1BH,iBAAiBM,MAAM;QAC7B,OAAO;YACL,MAAMa,sBACJlB,QAAQY,WAAW,CAACR,YAAYM,UAAU,IACxC,CAAA,AAAE,CAAA,YAAYT,SAAS,qBAAqBA,KAAI,KAC/CA,CAAAA,MAAMY,eAAe,IAAIZ,MAAMa,MAAM,AAAD,GAAIC,KACvC,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKb,YAAYM,cAC/D;gBACNL,QAAQ,EAAE;YACZ,CAAA;YAEF,MAAMc,yBACJnB,QAAQY,WAAW,CAACT,cAAcO,UAAU,IAC1C,CAAA,AAAE,CAAA,YAAYT,SAAS,qBAAqBA,KAAI,KAC/CA,CAAAA,MAAMY,eAAe,IAAIZ,MAAMa,MAAM,AAAD,GAAIC,KACvC,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKd,cAAcO,cACjE;gBACNL,QAAQ,EAAE;YACZ,CAAA;YAEFA,SAASR,gBACP;mBAAIqB,oBAAoBb,MAAM;mBAAKc,uBAAuBd,MAAM;aAAC,EACjE;YAGF,2FAA2F;YAC3FC,gBAAgBP,iBAAiBS,IAAI,EAAEC,SACnCV,iBAAiBS,IAAI,CAACN,IAAI,GAC1BH,iBAAiBM,MAAM;QAC7B;IACF;IAEA,OAAO;QAAEA;QAAQC;IAAc;AACjC"}