@payloadcms/ui 3.29.0-internal.3471e81 → 3.29.0-internal.9400be9

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 (285) hide show
  1. package/dist/elements/Autosave/index.js +1 -1
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +143 -127
  5. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  8. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/FileSidebar/index.js +5 -5
  11. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  13. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  14. package/dist/elements/ColumnSelector/index.js +1 -1
  15. package/dist/elements/ColumnSelector/index.js.map +1 -1
  16. package/dist/elements/ColumnSelector/index.scss +3 -2
  17. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  18. package/dist/elements/DeleteDocument/index.js +2 -1
  19. package/dist/elements/DeleteDocument/index.js.map +1 -1
  20. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  21. package/dist/elements/DeleteMany/index.js +1 -1
  22. package/dist/elements/DeleteMany/index.js.map +1 -1
  23. package/dist/elements/DocumentControls/index.js +1 -1
  24. package/dist/elements/DocumentControls/index.js.map +1 -1
  25. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  26. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -2
  27. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.d.ts +0 -4
  29. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  30. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  31. package/dist/elements/EditMany/DrawerContent.d.ts +3 -1
  32. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  33. package/dist/elements/EditMany/DrawerContent.js +122 -124
  34. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  35. package/dist/elements/EditMany/index.js +7 -7
  36. package/dist/elements/EditMany/index.js.map +1 -1
  37. package/dist/elements/EditMany/index.scss +14 -3
  38. package/dist/elements/FieldSelect/index.d.ts +12 -7
  39. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  40. package/dist/elements/FieldSelect/index.js +34 -131
  41. package/dist/elements/FieldSelect/index.js.map +1 -1
  42. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +19 -0
  43. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -0
  44. package/dist/elements/FieldSelect/reduceFieldOptions.js +57 -0
  45. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -0
  46. package/dist/elements/ListControls/index.d.ts +24 -1
  47. package/dist/elements/ListControls/index.d.ts.map +1 -1
  48. package/dist/elements/ListControls/index.js +86 -115
  49. package/dist/elements/ListControls/index.js.map +1 -1
  50. package/dist/elements/ListControls/index.scss +9 -5
  51. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  52. package/dist/elements/ListDrawer/DrawerContent.js +2 -4
  53. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  54. package/dist/elements/ListDrawer/types.d.ts +2 -3
  55. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  56. package/dist/elements/ListDrawer/types.js.map +1 -1
  57. package/dist/elements/Pill/index.d.ts +1 -1
  58. package/dist/elements/Pill/index.d.ts.map +1 -1
  59. package/dist/elements/Pill/index.js +0 -2
  60. package/dist/elements/Pill/index.js.map +1 -1
  61. package/dist/elements/Pill/index.scss +6 -29
  62. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  63. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  64. package/dist/elements/Popup/PopupButtonList/index.js +0 -1
  65. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  66. package/dist/elements/Popup/index.d.ts.map +1 -1
  67. package/dist/elements/Popup/index.js +1 -1
  68. package/dist/elements/Popup/index.js.map +1 -1
  69. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +1 -1
  70. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  71. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  72. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  73. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  74. package/dist/elements/RelationshipTable/index.js +4 -3
  75. package/dist/elements/RelationshipTable/index.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/fields/Date/index.js +1 -1
  77. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  78. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
  79. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  80. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  81. package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.js +2 -2
  82. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -0
  83. package/dist/{providers → elements}/TableColumns/buildColumnState.d.ts +1 -1
  84. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  85. package/dist/{providers → elements}/TableColumns/buildColumnState.js +1 -1
  86. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  87. package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  88. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  89. package/dist/{providers → elements}/TableColumns/buildPolymorphicColumnState.js +1 -1
  90. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  91. package/dist/elements/TableColumns/context.d.ts.map +1 -0
  92. package/dist/elements/TableColumns/context.js.map +1 -0
  93. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  94. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  95. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  96. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  97. package/dist/elements/TableColumns/index.d.ts.map +1 -0
  98. package/dist/{providers → elements}/TableColumns/index.js +2 -4
  99. package/dist/elements/TableColumns/index.js.map +1 -0
  100. package/dist/{providers → elements}/TableColumns/types.d.ts +1 -1
  101. package/dist/elements/TableColumns/types.d.ts.map +1 -0
  102. package/dist/elements/TableColumns/types.js.map +1 -0
  103. package/dist/elements/Thumbnail/index.js +1 -1
  104. package/dist/elements/Thumbnail/index.js.map +1 -1
  105. package/dist/elements/ThumbnailCard/index.js +1 -1
  106. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  107. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  108. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  109. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  110. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  111. package/dist/elements/WhereBuilder/index.js +15 -18
  112. package/dist/elements/WhereBuilder/index.js.map +1 -1
  113. package/dist/elements/WhereBuilder/reduceFields.js +2 -2
  114. package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
  115. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +8 -0
  116. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +1 -0
  117. package/dist/elements/WhereBuilder/transformWhereQuery.js +45 -0
  118. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -0
  119. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +4 -0
  120. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -0
  121. package/dist/elements/WhereBuilder/validateWhereQuery.js +36 -0
  122. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -0
  123. package/dist/exports/client/index.d.ts +2 -7
  124. package/dist/exports/client/index.d.ts.map +1 -1
  125. package/dist/exports/client/index.js +23 -23
  126. package/dist/exports/client/index.js.map +4 -4
  127. package/dist/exports/shared/index.d.ts +5 -10
  128. package/dist/exports/shared/index.d.ts.map +1 -1
  129. package/dist/exports/shared/index.js +2 -2
  130. package/dist/exports/shared/index.js.map +4 -4
  131. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  132. package/dist/fields/Array/ArrayRow.js +1 -1
  133. package/dist/fields/Array/ArrayRow.js.map +1 -1
  134. package/dist/fields/Group/index.d.ts.map +1 -1
  135. package/dist/fields/Group/index.js.map +1 -1
  136. package/dist/fields/Group/index.scss +12 -6
  137. package/dist/fields/Relationship/optionsReducer.js +1 -1
  138. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  139. package/dist/forms/Form/fieldReducer.js +1 -1
  140. package/dist/forms/Form/fieldReducer.js.map +1 -1
  141. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  142. package/dist/forms/RenderFields/index.js +1 -1
  143. package/dist/forms/RenderFields/index.js.map +1 -1
  144. package/dist/icons/Chevron/index.d.ts +0 -1
  145. package/dist/icons/Chevron/index.d.ts.map +1 -1
  146. package/dist/icons/Chevron/index.js +0 -2
  147. package/dist/icons/Chevron/index.js.map +1 -1
  148. package/dist/icons/Dots/index.d.ts +0 -2
  149. package/dist/icons/Dots/index.d.ts.map +1 -1
  150. package/dist/icons/Dots/index.js +2 -5
  151. package/dist/icons/Dots/index.js.map +1 -1
  152. package/dist/icons/Dots/index.scss +0 -14
  153. package/dist/providers/DocumentInfo/index.js +1 -1
  154. package/dist/providers/DocumentInfo/index.js.map +1 -1
  155. package/dist/providers/DocumentInfo/types.d.ts +0 -1
  156. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  157. package/dist/providers/DocumentInfo/types.js.map +1 -1
  158. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  159. package/dist/providers/EntityVisibility/index.js.map +1 -1
  160. package/dist/providers/ListQuery/context.d.ts +0 -2
  161. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  162. package/dist/providers/ListQuery/context.js +0 -2
  163. package/dist/providers/ListQuery/context.js.map +1 -1
  164. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  165. package/dist/providers/ListQuery/index.js +13 -29
  166. package/dist/providers/ListQuery/index.js.map +1 -1
  167. package/dist/providers/ListQuery/types.d.ts +3 -6
  168. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  169. package/dist/providers/ListQuery/types.js.map +1 -1
  170. package/dist/providers/Preferences/index.d.ts.map +1 -1
  171. package/dist/providers/Preferences/index.js.map +1 -1
  172. package/dist/providers/ServerFunctions/index.d.ts +0 -1
  173. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  174. package/dist/providers/ServerFunctions/index.js.map +1 -1
  175. package/dist/styles.css +1 -1
  176. package/dist/utilities/combineFieldLabel.d.ts +7 -0
  177. package/dist/utilities/combineFieldLabel.d.ts.map +1 -0
  178. package/dist/utilities/combineFieldLabel.js +31 -0
  179. package/dist/utilities/combineFieldLabel.js.map +1 -0
  180. package/dist/utilities/{formatDate.d.ts → formatDocTitle/formatDateTitle.d.ts} +1 -1
  181. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -0
  182. package/dist/utilities/{formatDate.js → formatDocTitle/formatDateTitle.js} +1 -1
  183. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -0
  184. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts +19 -0
  185. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.d.ts.map +1 -0
  186. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +19 -0
  187. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -0
  188. package/dist/utilities/{formatDocTitle.d.ts → formatDocTitle/index.d.ts} +2 -2
  189. package/dist/utilities/formatDocTitle/index.d.ts.map +1 -0
  190. package/dist/utilities/{formatDocTitle.js → formatDocTitle/index.js} +11 -3
  191. package/dist/utilities/formatDocTitle/index.js.map +1 -0
  192. package/dist/utilities/mergeListSearchAndWhere.d.ts +10 -0
  193. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
  194. package/dist/utilities/mergeListSearchAndWhere.js +47 -0
  195. package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
  196. package/dist/utilities/renderTable.js +4 -4
  197. package/dist/utilities/renderTable.js.map +1 -1
  198. package/dist/utilities/upsertPreferences.d.ts +2 -7
  199. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  200. package/dist/utilities/upsertPreferences.js +5 -11
  201. package/dist/utilities/upsertPreferences.js.map +1 -1
  202. package/dist/views/Edit/SetDocumentTitle/index.js +1 -1
  203. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  204. package/dist/views/Edit/index.d.ts.map +1 -1
  205. package/dist/views/Edit/index.js +1 -2
  206. package/dist/views/Edit/index.js.map +1 -1
  207. package/dist/views/List/index.d.ts.map +1 -1
  208. package/dist/views/List/index.js +1 -7
  209. package/dist/views/List/index.js.map +1 -1
  210. package/package.json +4 -4
  211. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts +0 -8
  212. package/dist/elements/ListControls/ActiveQueryPreset/index.d.ts.map +0 -1
  213. package/dist/elements/ListControls/ActiveQueryPreset/index.js +0 -102
  214. package/dist/elements/ListControls/ActiveQueryPreset/index.js.map +0 -1
  215. package/dist/elements/ListControls/ActiveQueryPreset/index.scss +0 -21
  216. package/dist/elements/ListControls/types.d.ts +0 -28
  217. package/dist/elements/ListControls/types.d.ts.map +0 -1
  218. package/dist/elements/ListControls/types.js.map +0 -1
  219. package/dist/elements/ListControls/useQueryPresets.d.ts +0 -17
  220. package/dist/elements/ListControls/useQueryPresets.d.ts.map +0 -1
  221. package/dist/elements/ListControls/useQueryPresets.js +0 -259
  222. package/dist/elements/ListControls/useQueryPresets.js.map +0 -1
  223. package/dist/elements/Popup/PopupDivider/index.d.ts +0 -4
  224. package/dist/elements/Popup/PopupDivider/index.d.ts.map +0 -1
  225. package/dist/elements/Popup/PopupDivider/index.js +0 -10
  226. package/dist/elements/Popup/PopupDivider/index.js.map +0 -1
  227. package/dist/elements/Popup/PopupDivider/index.scss +0 -10
  228. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts +0 -4
  229. package/dist/elements/QueryPresets/cells/AccessCell/index.d.ts.map +0 -1
  230. package/dist/elements/QueryPresets/cells/AccessCell/index.js +0 -25
  231. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +0 -1
  232. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +0 -4
  233. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +0 -1
  234. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +0 -11
  235. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +0 -1
  236. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts +0 -4
  237. package/dist/elements/QueryPresets/cells/WhereCell/index.d.ts.map +0 -1
  238. package/dist/elements/QueryPresets/cells/WhereCell/index.js +0 -23
  239. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +0 -1
  240. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +0 -4
  241. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +0 -1
  242. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +0 -64
  243. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +0 -1
  244. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -28
  245. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +0 -4
  246. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +0 -1
  247. package/dist/elements/QueryPresets/fields/WhereField/index.js +0 -118
  248. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +0 -1
  249. package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
  250. package/dist/icons/People/index.d.ts +0 -6
  251. package/dist/icons/People/index.d.ts.map +0 -1
  252. package/dist/icons/People/index.js +0 -18
  253. package/dist/icons/People/index.js.map +0 -1
  254. package/dist/icons/People/index.scss +0 -11
  255. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  256. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +0 -1
  257. package/dist/providers/TableColumns/buildColumnState.d.ts.map +0 -1
  258. package/dist/providers/TableColumns/buildColumnState.js.map +0 -1
  259. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  260. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  261. package/dist/providers/TableColumns/context.d.ts.map +0 -1
  262. package/dist/providers/TableColumns/context.js.map +0 -1
  263. package/dist/providers/TableColumns/filterFields.d.ts.map +0 -1
  264. package/dist/providers/TableColumns/filterFields.js.map +0 -1
  265. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +0 -1
  266. package/dist/providers/TableColumns/getInitialColumns.js.map +0 -1
  267. package/dist/providers/TableColumns/index.d.ts.map +0 -1
  268. package/dist/providers/TableColumns/index.js.map +0 -1
  269. package/dist/providers/TableColumns/types.d.ts.map +0 -1
  270. package/dist/providers/TableColumns/types.js +0 -2
  271. package/dist/providers/TableColumns/types.js.map +0 -1
  272. package/dist/utilities/formatDate.d.ts.map +0 -1
  273. package/dist/utilities/formatDate.js.map +0 -1
  274. package/dist/utilities/formatDocTitle.d.ts.map +0 -1
  275. package/dist/utilities/formatDocTitle.js.map +0 -1
  276. /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  277. /package/dist/{providers → elements}/TableColumns/RenderDefaultCell/index.scss +0 -0
  278. /package/dist/{providers → elements}/TableColumns/context.d.ts +0 -0
  279. /package/dist/{providers → elements}/TableColumns/context.js +0 -0
  280. /package/dist/{providers → elements}/TableColumns/filterFields.d.ts +0 -0
  281. /package/dist/{providers → elements}/TableColumns/filterFields.js +0 -0
  282. /package/dist/{providers → elements}/TableColumns/getInitialColumns.d.ts +0 -0
  283. /package/dist/{providers → elements}/TableColumns/getInitialColumns.js +0 -0
  284. /package/dist/{providers → elements}/TableColumns/index.d.ts +0 -0
  285. /package/dist/elements/{ListControls → TableColumns}/types.js +0 -0
@@ -0,0 +1,7 @@
1
+ import type { ClientField } from 'payload';
2
+ export declare const combineFieldLabel: ({ CustomLabel, field, prefix, }: {
3
+ CustomLabel?: React.ReactNode;
4
+ field?: ClientField;
5
+ prefix?: React.ReactNode;
6
+ }) => React.ReactNode;
7
+ //# sourceMappingURL=combineFieldLabel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineFieldLabel.d.ts","sourceRoot":"","sources":["../../src/utilities/combineFieldLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAO1C,eAAO,MAAM,iBAAiB,oCAI3B;IACD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACzB,KAAG,KAAK,CAAC,SAiBT,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment } from 'react';
3
+ import { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js';
4
+ import { FieldLabel } from '../fields/FieldLabel/index.js';
5
+ export const combineFieldLabel = ({
6
+ CustomLabel,
7
+ field,
8
+ prefix
9
+ }) => {
10
+ return /*#__PURE__*/_jsxs(Fragment, {
11
+ children: [prefix ? /*#__PURE__*/_jsxs(Fragment, {
12
+ children: [/*#__PURE__*/_jsx("span", {
13
+ style: {
14
+ display: 'inline-block'
15
+ },
16
+ children: prefix
17
+ }), ' > ']
18
+ }) : null, /*#__PURE__*/_jsx("span", {
19
+ style: {
20
+ display: 'inline-block'
21
+ },
22
+ children: /*#__PURE__*/_jsx(RenderCustomComponent, {
23
+ CustomComponent: CustomLabel,
24
+ Fallback: /*#__PURE__*/_jsx(FieldLabel, {
25
+ label: 'label' in field && field.label
26
+ })
27
+ })
28
+ })]
29
+ });
30
+ };
31
+ //# sourceMappingURL=combineFieldLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combineFieldLabel.js","names":["Fragment","RenderCustomComponent","FieldLabel","combineFieldLabel","CustomLabel","field","prefix","_jsxs","_jsx","style","display","CustomComponent","Fallback","label"],"sources":["../../src/utilities/combineFieldLabel.tsx"],"sourcesContent":["import type { ClientField } from 'payload'\n\nimport { Fragment } from 'react'\n\nimport { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js'\nimport { FieldLabel } from '../fields/FieldLabel/index.js'\n\nexport const combineFieldLabel = ({\n CustomLabel,\n field,\n prefix,\n}: {\n CustomLabel?: React.ReactNode\n field?: ClientField\n prefix?: React.ReactNode\n}): React.ReactNode => {\n return (\n <Fragment>\n {prefix ? (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n ) : null}\n <span style={{ display: 'inline-block' }}>\n <RenderCustomComponent\n CustomComponent={CustomLabel}\n Fallback={<FieldLabel label={'label' in field && field.label} />}\n />\n </span>\n </Fragment>\n )\n}\n"],"mappings":";AAEA,SAASA,QAAQ,QAAQ;AAEzB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,iBAAA,GAAoBA,CAAC;EAChCC,WAAW;EACXC,KAAK;EACLC;AAAM,CAKP;EACC,oBACEC,KAAA,CAACP,QAAA;eACEM,MAAA,gBACCC,KAAA,CAACP,QAAA;8BACCQ,IAAA,CAAC;QAAKC,KAAA,EAAO;UAAEC,OAAA,EAAS;QAAe;kBAAIJ;UAC1C;SAED,M,aACJE,IAAA,CAAC;MAAKC,KAAA,EAAO;QAAEC,OAAA,EAAS;MAAe;gBACrC,aAAAF,IAAA,CAACP,qBAAA;QACCU,eAAA,EAAiBP,WAAA;QACjBQ,QAAA,eAAUJ,IAAA,CAACN,UAAA;UAAWW,KAAA,EAAO,WAAWR,KAAA,IAASA,KAAA,CAAMQ;;;;;AAKjE","ignoreList":[]}
@@ -12,4 +12,4 @@ type FormatTimeToNowArgs = {
12
12
  };
13
13
  export declare const formatTimeToNow: ({ date, i18n }: FormatTimeToNowArgs) => string;
14
14
  export {};
15
- //# sourceMappingURL=formatDate.d.ts.map
15
+ //# sourceMappingURL=formatDateTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDateTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAKpD,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,UAAU,sCAAuC,cAAc,KAAG,MAoB9E,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,eAAe,mBAAoB,mBAAmB,KAAG,MAKrE,CAAA"}
@@ -30,4 +30,4 @@ export const formatTimeToNow = ({
30
30
  locale: i18n.dateFNS
31
31
  }) : `${i18n.t('general:loading')}...`;
32
32
  };
33
- //# sourceMappingURL=formatDate.js.map
33
+ //# sourceMappingURL=formatDateTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatDateTitle.js","names":["TZDateMini","TZDate","format","formatDistanceToNow","transpose","formatDate","date","i18n","pattern","timezone","theDate","Date","DateWithOriginalTz","tz","modifiedDate","withTimeZone","dateWithTimezone","dateFNS","locale","t","formatTimeToNow"],"sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { format, formatDistanceToNow, transpose } from 'date-fns'\n\ntype FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n pattern: string\n timezone?: string\n}\n\nexport const formatDate = ({ date, i18n, pattern, timezone }: FormatDateArgs): string => {\n const theDate = new TZDate(new Date(date))\n\n if (timezone) {\n const DateWithOriginalTz = TZDate.tz(timezone)\n\n const modifiedDate = theDate.withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n return i18n.dateFNS\n ? format(dateWithTimezone, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n }\n\n return i18n.dateFNS\n ? format(theDate, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<any, any>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = new Date(date)\n return i18n?.dateFNS\n ? formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n"],"mappings":"AAEA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,MAAM,EAAEC,mBAAmB,EAAEC,SAAS,QAAQ;AASvD,OAAO,MAAMC,UAAA,GAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAQ,CAAkB;EAC1E,MAAMC,OAAA,GAAU,IAAIT,MAAA,CAAO,IAAIU,IAAA,CAAKL,IAAA;EAEpC,IAAIG,QAAA,EAAU;IACZ,MAAMG,kBAAA,GAAqBX,MAAA,CAAOY,EAAE,CAACJ,QAAA;IAErC,MAAMK,YAAA,GAAeJ,OAAA,CAAQK,YAAY,CAACN,QAAA;IAE1C;IACA,MAAMO,gBAAA,GAAmBZ,SAAA,CAAUU,YAAA,EAAcF,kBAAA;IAEjD;IACA,OAAOL,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOc,gBAAA,EAAkBR,OAAA,EAAS;MAAEU,MAAA,EAAQX,IAAA,CAAKU;IAAQ,KACzD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;EACvC;EAEA,OAAOZ,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOQ,OAAA,EAASF,OAAA,EAAS;IAAEU,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAChD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC;AAOA,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEd,IAAI;EAAEC;AAAI,CAAuB;EACjE,MAAMG,OAAA,GAAU,IAAIC,IAAA,CAAKL,IAAA;EACzB,OAAOC,IAAA,EAAMU,OAAA,GACTd,mBAAA,CAAoBO,OAAA,EAAS;IAAEQ,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KACpD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ type SerializedLexicalEditor = {
2
+ root: {
3
+ children: Array<{
4
+ children?: Array<{
5
+ type: string;
6
+ }>;
7
+ type: string;
8
+ }>;
9
+ };
10
+ };
11
+ export declare function isSerializedLexicalEditor(value: unknown): value is SerializedLexicalEditor;
12
+ export declare function formatLexicalDocTitle(editorState: Array<{
13
+ children?: Array<{
14
+ type: string;
15
+ }>;
16
+ type: string;
17
+ }>, textContent: string): string;
18
+ export {};
19
+ //# sourceMappingURL=formatLexicalDocTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatLexicalDocTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatLexicalDocTitle.ts"],"names":[],"mappings":"AAAA,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE;QACJ,QAAQ,EAAE,KAAK,CAAC;YAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KACtE,CAAA;CACF,CAAA;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAE1F;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,KAAK,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACxE,WAAW,EAAE,MAAM,GAClB,MAAM,CAcR"}
@@ -0,0 +1,19 @@
1
+ export function isSerializedLexicalEditor(value) {
2
+ return typeof value === 'object' && 'root' in value;
3
+ }
4
+ export function formatLexicalDocTitle(editorState, textContent) {
5
+ for (const node of editorState) {
6
+ if ('text' in node && node.text) {
7
+ textContent += node.text;
8
+ } else {
9
+ if (!('children' in node)) {
10
+ textContent += `[${node.type}]`;
11
+ }
12
+ }
13
+ if ('children' in node && node.children) {
14
+ textContent += formatLexicalDocTitle(node.children, textContent);
15
+ }
16
+ }
17
+ return textContent;
18
+ }
19
+ //# sourceMappingURL=formatLexicalDocTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatLexicalDocTitle.js","names":["isSerializedLexicalEditor","value","formatLexicalDocTitle","editorState","textContent","node","text","type","children"],"sources":["../../../src/utilities/formatDocTitle/formatLexicalDocTitle.ts"],"sourcesContent":["type SerializedLexicalEditor = {\n root: {\n children: Array<{ children?: Array<{ type: string }>; type: string }>\n }\n}\n\nexport function isSerializedLexicalEditor(value: unknown): value is SerializedLexicalEditor {\n return typeof value === 'object' && 'root' in value\n}\n\nexport function formatLexicalDocTitle(\n editorState: Array<{ children?: Array<{ type: string }>; type: string }>,\n textContent: string,\n): string {\n for (const node of editorState) {\n if ('text' in node && node.text) {\n textContent += node.text as string\n } else {\n if (!('children' in node)) {\n textContent += `[${node.type}]`\n }\n }\n if ('children' in node && node.children) {\n textContent += formatLexicalDocTitle(node.children as Array<{ type: string }>, textContent)\n }\n }\n return textContent\n}\n"],"mappings":"AAMA,OAAO,SAASA,0BAA0BC,KAAc;EACtD,OAAO,OAAOA,KAAA,KAAU,YAAY,UAAUA,KAAA;AAChD;AAEA,OAAO,SAASC,sBACdC,WAAwE,EACxEC,WAAmB;EAEnB,KAAK,MAAMC,IAAA,IAAQF,WAAA,EAAa;IAC9B,IAAI,UAAUE,IAAA,IAAQA,IAAA,CAAKC,IAAI,EAAE;MAC/BF,WAAA,IAAeC,IAAA,CAAKC,IAAI;IAC1B,OAAO;MACL,IAAI,EAAE,cAAcD,IAAG,GAAI;QACzBD,WAAA,IAAe,IAAIC,IAAA,CAAKE,IAAI,GAAG;MACjC;IACF;IACA,IAAI,cAAcF,IAAA,IAAQA,IAAA,CAAKG,QAAQ,EAAE;MACvCJ,WAAA,IAAeF,qBAAA,CAAsBG,IAAA,CAAKG,QAAQ,EAA6BJ,WAAA;IACjF;EACF;EACA,OAAOA,WAAA;AACT","ignoreList":[]}
@@ -4,8 +4,8 @@ export declare const formatDocTitle: ({ collectionConfig, data, dateFormat: date
4
4
  collectionConfig?: ClientCollectionConfig;
5
5
  data: TypeWithID;
6
6
  dateFormat: SanitizedConfig["admin"]["dateFormat"];
7
- fallback?: string;
7
+ fallback?: object | string;
8
8
  globalConfig?: ClientGlobalConfig;
9
9
  i18n: I18n<any, any>;
10
10
  }) => string;
11
- //# sourceMappingURL=formatDocTitle.d.ts.map
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACX,MAAM,SAAS,CAAA;AAOhB,eAAO,MAAM,cAAc,gGAOxB;IACD,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CACrB,KAAG,MA2CH,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { getTranslation } from '@payloadcms/translations';
2
- import { formatDate } from '../utilities/formatDate.js';
2
+ import { formatDate } from './formatDateTitle.js';
3
+ import { formatLexicalDocTitle, isSerializedLexicalEditor } from './formatLexicalDocTitle.js';
3
4
  export const formatDocTitle = ({
4
5
  collectionConfig,
5
6
  data,
@@ -30,9 +31,16 @@ export const formatDocTitle = ({
30
31
  if (globalConfig) {
31
32
  title = getTranslation(globalConfig?.label, i18n) || globalConfig?.slug;
32
33
  }
34
+ // richtext lexical case. We convert the first child of root to plain text
35
+ if (isSerializedLexicalEditor(title)) {
36
+ title = formatLexicalDocTitle(title.root.children?.[0]?.children || [], '');
37
+ }
38
+ if (!title && isSerializedLexicalEditor(fallback)) {
39
+ title = formatLexicalDocTitle(fallback.root.children?.[0]?.children || [], '');
40
+ }
33
41
  if (!title) {
34
- title = fallback || `[${i18n.t('general:untitled')}]`;
42
+ title = typeof fallback === 'string' ? fallback : `[${i18n.t('general:untitled')}]`;
35
43
  }
36
44
  return title;
37
45
  };
38
- //# sourceMappingURL=formatDocTitle.js.map
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatDate","formatLexicalDocTitle","isSerializedLexicalEditor","formatDocTitle","collectionConfig","data","dateFormat","dateFormatFromConfig","fallback","globalConfig","i18n","title","useAsTitle","admin","fieldConfig","fields","find","f","name","isDate","type","date","displayFormat","pattern","label","slug","root","children","t"],"sources":["../../../src/utilities/formatDocTitle/index.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n SanitizedConfig,\n TypeWithID,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\n\nimport { formatDate } from './formatDateTitle.js'\nimport { formatLexicalDocTitle, isSerializedLexicalEditor } from './formatLexicalDocTitle.js'\n\nexport const formatDocTitle = ({\n collectionConfig,\n data,\n dateFormat: dateFormatFromConfig,\n fallback,\n globalConfig,\n i18n,\n}: {\n collectionConfig?: ClientCollectionConfig\n data: TypeWithID\n dateFormat: SanitizedConfig['admin']['dateFormat']\n fallback?: object | string\n globalConfig?: ClientGlobalConfig\n i18n: I18n<any, any>\n}): string => {\n let title: string\n\n if (collectionConfig) {\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n if (useAsTitle) {\n title = data?.[useAsTitle] || title\n\n if (title) {\n const fieldConfig = collectionConfig.fields.find(\n (f) => 'name' in f && f.name === useAsTitle,\n )\n\n const isDate = fieldConfig?.type === 'date'\n\n if (isDate) {\n const dateFormat =\n ('date' in fieldConfig.admin && fieldConfig?.admin?.date?.displayFormat) ||\n dateFormatFromConfig\n title = formatDate({ date: title, i18n, pattern: dateFormat }) || title\n }\n }\n }\n }\n\n if (globalConfig) {\n title = getTranslation(globalConfig?.label, i18n) || globalConfig?.slug\n }\n\n // richtext lexical case. We convert the first child of root to plain text\n if (isSerializedLexicalEditor(title)) {\n title = formatLexicalDocTitle(title.root.children?.[0]?.children || [], '')\n }\n if (!title && isSerializedLexicalEditor(fallback)) {\n title = formatLexicalDocTitle(fallback.root.children?.[0]?.children || [], '')\n }\n\n if (!title) {\n title = typeof fallback === 'string' ? fallback : `[${i18n.t('general:untitled')}]`\n }\n\n return title\n}\n"],"mappings":"AAQA,SAASA,cAAc,QAAQ;AAE/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,EAAEC,yBAAyB,QAAQ;AAEjE,OAAO,MAAMC,cAAA,GAAiBA,CAAC;EAC7BC,gBAAgB;EAChBC,IAAI;EACJC,UAAA,EAAYC,oBAAoB;EAChCC,QAAQ;EACRC,YAAY;EACZC;AAAI,CAQL;EACC,IAAIC,KAAA;EAEJ,IAAIP,gBAAA,EAAkB;IACpB,MAAMQ,UAAA,GAAaR,gBAAA,EAAkBS,KAAA,EAAOD,UAAA;IAE5C,IAAIA,UAAA,EAAY;MACdD,KAAA,GAAQN,IAAA,GAAOO,UAAA,CAAW,IAAID,KAAA;MAE9B,IAAIA,KAAA,EAAO;QACT,MAAMG,WAAA,GAAcV,gBAAA,CAAiBW,MAAM,CAACC,IAAI,CAC7CC,CAAA,IAAM,UAAUA,CAAA,IAAKA,CAAA,CAAEC,IAAI,KAAKN,UAAA;QAGnC,MAAMO,MAAA,GAASL,WAAA,EAAaM,IAAA,KAAS;QAErC,IAAID,MAAA,EAAQ;UACV,MAAMb,UAAA,GACJ,MAAC,IAAUQ,WAAA,CAAYD,KAAK,IAAIC,WAAA,EAAaD,KAAA,EAAOQ,IAAA,EAAMC,aAAA,IAC1Df,oBAAA;UACFI,KAAA,GAAQX,UAAA,CAAW;YAAEqB,IAAA,EAAMV,KAAA;YAAOD,IAAA;YAAMa,OAAA,EAASjB;UAAW,MAAMK,KAAA;QACpE;MACF;IACF;EACF;EAEA,IAAIF,YAAA,EAAc;IAChBE,KAAA,GAAQZ,cAAA,CAAeU,YAAA,EAAce,KAAA,EAAOd,IAAA,KAASD,YAAA,EAAcgB,IAAA;EACrE;EAEA;EACA,IAAIvB,yBAAA,CAA0BS,KAAA,GAAQ;IACpCA,KAAA,GAAQV,qBAAA,CAAsBU,KAAA,CAAMe,IAAI,CAACC,QAAQ,GAAG,EAAE,EAAEA,QAAA,IAAY,EAAE,EAAE;EAC1E;EACA,IAAI,CAAChB,KAAA,IAAST,yBAAA,CAA0BM,QAAA,GAAW;IACjDG,KAAA,GAAQV,qBAAA,CAAsBO,QAAA,CAASkB,IAAI,CAACC,QAAQ,GAAG,EAAE,EAAEA,QAAA,IAAY,EAAE,EAAE;EAC7E;EAEA,IAAI,CAAChB,KAAA,EAAO;IACVA,KAAA,GAAQ,OAAOH,QAAA,KAAa,WAAWA,QAAA,GAAW,IAAIE,IAAA,CAAKkB,CAAC,CAAC,sBAAsB;EACrF;EAEA,OAAOjB,KAAA;AACT","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload';
2
+ export declare const hoistQueryParamsToAnd: (currentWhere: Where, incomingWhere: Where) => Where;
3
+ type Args = {
4
+ collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig;
5
+ search: string;
6
+ where?: Where;
7
+ };
8
+ export declare const mergeListSearchAndWhere: ({ collectionConfig, search, where }: Args) => Where;
9
+ export {};
10
+ //# sourceMappingURL=mergeListSearchAndWhere.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeListSearchAndWhere.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAIvF,eAAO,MAAM,qBAAqB,iBAAkB,KAAK,iBAAiB,KAAK,UAsB9E,CAAA;AAED,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,sBAAsB,GAAG,yBAAyB,CAAA;IACpE,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED,eAAO,MAAM,uBAAuB,wCAA8C,IAAI,KAAG,KAwBxF,CAAA"}
@@ -0,0 +1,47 @@
1
+ const isEmptyObject = obj => Object.keys(obj).length === 0;
2
+ export const hoistQueryParamsToAnd = (currentWhere, incomingWhere) => {
3
+ if (isEmptyObject(incomingWhere)) {
4
+ return currentWhere;
5
+ }
6
+ if (isEmptyObject(currentWhere)) {
7
+ return incomingWhere;
8
+ }
9
+ if ('and' in currentWhere) {
10
+ currentWhere.and.push(incomingWhere);
11
+ } else if ('or' in currentWhere) {
12
+ currentWhere = {
13
+ and: [currentWhere, incomingWhere]
14
+ };
15
+ } else {
16
+ currentWhere = {
17
+ and: [currentWhere, incomingWhere]
18
+ };
19
+ }
20
+ return currentWhere;
21
+ };
22
+ export const mergeListSearchAndWhere = ({
23
+ collectionConfig,
24
+ search,
25
+ where = {}
26
+ }) => {
27
+ if (search) {
28
+ let copyOfWhere = {
29
+ ...(where || {})
30
+ };
31
+ const searchAsConditions = (collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']).map(fieldName => ({
32
+ [fieldName]: {
33
+ like: search
34
+ }
35
+ }));
36
+ if (searchAsConditions.length > 0) {
37
+ copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {
38
+ or: searchAsConditions
39
+ });
40
+ }
41
+ if (!isEmptyObject(copyOfWhere)) {
42
+ where = copyOfWhere;
43
+ }
44
+ }
45
+ return where;
46
+ };
47
+ //# sourceMappingURL=mergeListSearchAndWhere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeListSearchAndWhere.js","names":["isEmptyObject","obj","Object","keys","length","hoistQueryParamsToAnd","currentWhere","incomingWhere","and","push","mergeListSearchAndWhere","collectionConfig","search","where","copyOfWhere","searchAsConditions","admin","listSearchableFields","useAsTitle","map","fieldName","like","or"],"sources":["../../src/utilities/mergeListSearchAndWhere.ts"],"sourcesContent":["import type { ClientCollectionConfig, SanitizedCollectionConfig, Where } from 'payload'\n\nconst isEmptyObject = (obj: object) => Object.keys(obj).length === 0\n\nexport const hoistQueryParamsToAnd = (currentWhere: Where, incomingWhere: Where) => {\n if (isEmptyObject(incomingWhere)) {\n return currentWhere\n }\n\n if (isEmptyObject(currentWhere)) {\n return incomingWhere\n }\n\n if ('and' in currentWhere) {\n currentWhere.and.push(incomingWhere)\n } else if ('or' in currentWhere) {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n } else {\n currentWhere = {\n and: [currentWhere, incomingWhere],\n }\n }\n\n return currentWhere\n}\n\ntype Args = {\n collectionConfig: ClientCollectionConfig | SanitizedCollectionConfig\n search: string\n where?: Where\n}\n\nexport const mergeListSearchAndWhere = ({ collectionConfig, search, where = {} }: Args): Where => {\n if (search) {\n let copyOfWhere = { ...(where || {}) }\n\n const searchAsConditions = (\n collectionConfig.admin.listSearchableFields || [collectionConfig.admin?.useAsTitle || 'id']\n ).map((fieldName) => ({\n [fieldName]: {\n like: search,\n },\n }))\n\n if (searchAsConditions.length > 0) {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, {\n or: searchAsConditions,\n })\n }\n\n if (!isEmptyObject(copyOfWhere)) {\n where = copyOfWhere\n }\n }\n\n return where\n}\n"],"mappings":"AAEA,MAAMA,aAAA,GAAiBC,GAAA,IAAgBC,MAAA,CAAOC,IAAI,CAACF,GAAA,EAAKG,MAAM,KAAK;AAEnE,OAAO,MAAMC,qBAAA,GAAwBA,CAACC,YAAA,EAAqBC,aAAA;EACzD,IAAIP,aAAA,CAAcO,aAAA,GAAgB;IAChC,OAAOD,YAAA;EACT;EAEA,IAAIN,aAAA,CAAcM,YAAA,GAAe;IAC/B,OAAOC,aAAA;EACT;EAEA,IAAI,SAASD,YAAA,EAAc;IACzBA,YAAA,CAAaE,GAAG,CAACC,IAAI,CAACF,aAAA;EACxB,OAAO,IAAI,QAAQD,YAAA,EAAc;IAC/BA,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF,OAAO;IACLD,YAAA,GAAe;MACbE,GAAA,EAAK,CAACF,YAAA,EAAcC,aAAA;IACtB;EACF;EAEA,OAAOD,YAAA;AACT;AAQA,OAAO,MAAMI,uBAAA,GAA0BA,CAAC;EAAEC,gBAAgB;EAAEC,MAAM;EAAEC,KAAA,GAAQ,CAAC;AAAC,CAAQ;EACpF,IAAID,MAAA,EAAQ;IACV,IAAIE,WAAA,GAAc;MAAE,IAAID,KAAA,IAAS,CAAC,CAAC;IAAE;IAErC,MAAME,kBAAA,GAAqB,CACzBJ,gBAAA,CAAiBK,KAAK,CAACC,oBAAoB,IAAI,CAACN,gBAAA,CAAiBK,KAAK,EAAEE,UAAA,IAAc,KAAK,EAC3FC,GAAG,CAAEC,SAAA,KAAe;MACpB,CAACA,SAAA,GAAY;QACXC,IAAA,EAAMT;MACR;IACF;IAEA,IAAIG,kBAAA,CAAmBX,MAAM,GAAG,GAAG;MACjCU,WAAA,GAAcT,qBAAA,CAAsBS,WAAA,EAAa;QAC/CQ,EAAA,EAAIP;MACN;IACF;IAEA,IAAI,CAACf,aAAA,CAAcc,WAAA,GAAc;MAC/BD,KAAA,GAAQC,WAAA;IACV;EACF;EAEA,OAAOD,KAAA;AACT","ignoreList":[]}
@@ -2,10 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { getTranslation } from '@payloadcms/translations';
3
3
  import { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared';
4
4
  import { RenderServerComponent } from '../elements/RenderServerComponent/index.js';
5
- import { buildColumnState } from '../providers/TableColumns/buildColumnState.js';
6
- import { buildPolymorphicColumnState } from '../providers/TableColumns/buildPolymorphicColumnState.js';
7
- import { filterFields } from '../providers/TableColumns/filterFields.js';
8
- import { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js';
5
+ import { buildColumnState } from '../elements/TableColumns/buildColumnState.js';
6
+ import { buildPolymorphicColumnState } from '../elements/TableColumns/buildPolymorphicColumnState.js';
7
+ import { filterFields } from '../elements/TableColumns/filterFields.js';
8
+ import { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js';
9
9
  // eslint-disable-next-line payload/no-imports-from-exports-dir
10
10
  import { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js';
11
11
  export const renderFilters = (fields, importMap) => fields.reduce((acc, field) => {
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","buildPolymorphicColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","collection","config","find","each","slug","some","push","filter","column","accessor","defaultColumns","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","relationTo","labels","singular","_","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Field,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../providers/TableColumns/buildColumnState.js'\nimport { buildPolymorphicColumnState } from '../providers/TableColumns/buildPolymorphicColumnState.js'\nimport { filterFields } from '../providers/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../providers/TableColumns/getInitialColumns.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n\n if (collections) {\n const fields: ClientField[] = []\n for (const collection of collections) {\n const config = clientConfig.collections.find((each) => each.slug === collection)\n\n for (const field of filterFields(config.fields)) {\n if (fieldAffectsData(field)) {\n if (fields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n fields.push(field)\n }\n }\n\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(fields, useAsTitle, [])\n\n columnState = buildPolymorphicColumnState({\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n } else {\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((doc, i) => (\n <Pill key={i}>\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","buildPolymorphicColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","clientConfig","collectionConfig","collections","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","columnState","collection","config","find","each","slug","some","push","filter","column","accessor","defaultColumns","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","doc","i","_jsx","relationTo","labels","singular","_","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientConfig,\n ClientField,\n CollectionConfig,\n Field,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../elements/TableColumns/buildColumnState.js'\nimport { buildPolymorphicColumnState } from '../elements/TableColumns/buildPolymorphicColumnState.js'\nimport { filterFields } from '../elements/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n clientConfig,\n collectionConfig,\n collections,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig?: ClientCollectionConfig\n clientConfig?: ClientConfig\n collectionConfig?: SanitizedCollectionConfig\n collections?: string[]\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n\n let columnState: Column[]\n\n if (collections) {\n const fields: ClientField[] = []\n for (const collection of collections) {\n const config = clientConfig.collections.find((each) => each.slug === collection)\n\n for (const field of filterFields(config.fields)) {\n if (fieldAffectsData(field)) {\n if (fields.some((each) => fieldAffectsData(each) && each.name === field.name)) {\n continue\n }\n }\n\n fields.push(field)\n }\n }\n\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(fields, useAsTitle, [])\n\n columnState = buildPolymorphicColumnState({\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n } else {\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n }\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((doc, i) => (\n <Pill key={i}>\n {getTranslation(\n collections\n ? payload.collections[doc.relationTo].config.labels.singular\n : clientCollectionConfig.labels.singular,\n i18n,\n )}\n </Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n // key is required since Next.js 15.2.0 to prevent React key error\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} key=\"table\" />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,14 +11,9 @@ export declare const getPreferences: <T>(key: string, payload: Payload, userID:
11
11
  * @param key - The key of the preferences to update
12
12
  * @param value - The new value to merge with the existing preferences
13
13
  */
14
- export declare const upsertPreferences: <T extends Record<string, unknown> | string>({ customMerge, key, req, value: incomingValue, }: {
14
+ export declare const upsertPreferences: <T extends Record<string, unknown> | string>({ key, req, value: incomingValue, }: {
15
15
  key: string;
16
16
  req: PayloadRequest;
17
- } & ({
18
- customMerge: (existingValue: T) => T;
19
- value?: never;
20
- } | {
21
- customMerge?: never;
22
17
  value: T;
23
- })) => Promise<T>;
18
+ }) => Promise<T>;
24
19
  //# sourceMappingURL=upsertPreferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,oDAK/E;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,CACA;IACE,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD;IACE,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,CACJ,KAAG,OAAO,CAAC,CAAC,CA4DZ,CAAA"}
1
+ {"version":3,"file":"upsertPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/upsertPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7E,eAAO,MAAM,cAAc,GAClB,CAAC,OACD,MAAM,WACF,OAAO,UACR,qBAAqB,YACnB,MAAM,KACf,OAAO,CAAC;IAAE,EAAE,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CA+BnD,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,uCAI/E;IACD,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,cAAc,CAAA;IACnB,KAAK,EAAE,CAAC,CAAA;CACT,KAAG,OAAO,CAAC,CAAC,CAsDZ,CAAA"}
@@ -34,7 +34,6 @@ export const getPreferences = cache(async (key, payload, userID, userSlug) => {
34
34
  * @param value - The new value to merge with the existing preferences
35
35
  */
36
36
  export const upsertPreferences = async ({
37
- customMerge,
38
37
  key,
39
38
  req,
40
39
  value: incomingValue
@@ -57,16 +56,11 @@ export const upsertPreferences = async ({
57
56
  user: req.user
58
57
  });
59
58
  } else {
60
- let mergedPrefs;
61
- if (typeof customMerge === 'function') {
62
- mergedPrefs = customMerge(existingPrefs.value);
63
- } else {
64
- // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences
65
- mergedPrefs = typeof incomingValue === 'object' ? {
66
- ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}),
67
- ...removeUndefined(incomingValue || {})
68
- } : incomingValue;
69
- }
59
+ // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences
60
+ const mergedPrefs = typeof incomingValue === 'object' ? {
61
+ ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}),
62
+ ...removeUndefined(incomingValue || {})
63
+ } : incomingValue;
70
64
  if (!dequal(mergedPrefs, existingPrefs.value)) {
71
65
  newPrefs = await req.payload.update({
72
66
  id: existingPrefs.id,
@@ -1 +1 @@
1
- {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","customMerge","req","value","incomingValue","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n customMerge,\n key,\n req,\n value: incomingValue,\n}: {\n key: string\n req: PayloadRequest\n} & (\n | {\n customMerge: (existingValue: T) => T\n value?: never\n }\n | {\n customMerge?: never\n value: T\n }\n)): Promise<T> => {\n const existingPrefs: { id?: DefaultDocumentIDType; value?: T } = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : {}\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n let mergedPrefs: T\n\n if (typeof customMerge === 'function') {\n mergedPrefs = customMerge(existingPrefs.value)\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n mergedPrefs =\n typeof incomingValue === 'object'\n ? ({\n ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n } as T)\n : incomingValue\n }\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"AAEA,SAASA,MAAM,QAAQ;AACvB,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAEhC,OAAO,MAAMC,cAAA,GAAiBF,KAAA,CAC5B,OACEG,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT;AAGF;;;;;;;;AAQA,OAAO,MAAMY,iBAAA,GAAoB,MAAAA,CAAmD;EAClFC,WAAW;EACXjB,GAAG;EACHkB,GAAG;EACHC,KAAA,EAAOC;AAAa,CAarB;EACC,MAAMC,aAAA,GAA2DH,GAAA,CAAII,IAAI,GACrE,MAAMvB,cAAA,CAAkBC,GAAA,EAAKkB,GAAA,CAAIjB,OAAO,EAAEiB,GAAA,CAAII,IAAI,CAACC,EAAE,EAAEL,GAAA,CAAII,IAAI,CAAChB,UAAU,IAC1E,CAAC;EAEL,IAAIkB,QAAA,GAAWH,aAAA,EAAeF,KAAA;EAE9B,IAAI,CAACE,aAAA,EAAeE,EAAA,EAAI;IACtB,MAAML,GAAA,CAAIjB,OAAO,CAACwB,MAAM,CAAC;MACvBnB,UAAA,EAAY;MACZoB,IAAA,EAAM;QACJ1B,GAAA;QACAsB,IAAA,EAAM;UACJhB,UAAA,EAAYY,GAAA,CAAII,IAAI,CAAChB,UAAU;UAC/Ba,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;QAClB;QACAJ,KAAA,EAAOC;MACT;MACAb,KAAA,EAAO;MACPoB,kBAAA,EAAoB;MACpBL,IAAA,EAAMJ,GAAA,CAAII;IACZ;EACF,OAAO;IACL,IAAIM,WAAA;IAEJ,IAAI,OAAOX,WAAA,KAAgB,YAAY;MACrCW,WAAA,GAAcX,WAAA,CAAYI,aAAA,CAAcF,KAAK;IAC/C,OAAO;MACL;MACAS,WAAA,GACE,OAAOR,aAAA,KAAkB,WACpB;QACC,IAAI,OAAOC,aAAA,CAAcF,KAAK,KAAK,WAAWE,aAAA,EAAeF,KAAA,GAAQ,CAAC,CAAC;QACvE,GAAGrB,eAAA,CAAgBsB,aAAA,IAAiB,CAAC;MACvC,IACAA,aAAA;IACR;IAEA,IAAI,CAACxB,MAAA,CAAOgC,WAAA,EAAaP,aAAA,CAAcF,KAAK,GAAG;MAC7CK,QAAA,GAAW,MAAMN,GAAA,CAAIjB,OAAO,CACzB4B,MAAM,CAAC;QACNN,EAAA,EAAIF,aAAA,CAAcE,EAAE;QACpBjB,UAAA,EAAY;QACZoB,IAAA,EAAM;UACJ1B,GAAA;UACAsB,IAAA,EAAM;YACJhB,UAAA,EAAYY,GAAA,CAAII,IAAI,CAAChB,UAAU;YAC/Ba,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;UAClB;UACAJ,KAAA,EAAOS;QACT;QACArB,KAAA,EAAO;QACPoB,kBAAA,EAAoB;QACpBL,IAAA,EAAMJ,GAAA,CAAII;MACZ,IACET,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAIK,KAAK;IAC7B;EACF;EAEA,OAAOK,QAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"upsertPreferences.js","names":["dequal","cache","removeUndefined","getPreferences","key","payload","userID","userSlug","result","find","collection","depth","limit","pagination","where","and","equals","then","res","docs","upsertPreferences","req","value","incomingValue","existingPrefs","user","id","newPrefs","create","data","disableTransaction","mergedPrefs","update"],"sources":["../../src/utilities/upsertPreferences.ts"],"sourcesContent":["import type { DefaultDocumentIDType, Payload, PayloadRequest } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { cache } from 'react'\n\nimport { removeUndefined } from './removeUndefined.js'\n\nexport const getPreferences = cache(\n async <T>(\n key: string,\n payload: Payload,\n userID: DefaultDocumentIDType,\n userSlug: string,\n ): Promise<{ id: DefaultDocumentIDType; value: T }> => {\n const result = (await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n pagination: false,\n where: {\n and: [\n {\n key: {\n equals: key,\n },\n },\n {\n 'user.relationTo': {\n equals: userSlug,\n },\n },\n {\n 'user.value': {\n equals: userID,\n },\n },\n ],\n },\n })\n .then((res) => res.docs?.[0])) as { id: DefaultDocumentIDType; value: T }\n\n return result\n },\n)\n\n/**\n * Will update the given preferences by key, creating a new record if it doesn't already exist, or merging existing preferences with the new value.\n * This is not possible to do with the existing `db.upsert` operation because it stores on the `value` key and does not perform a deep merge beyond the first level.\n * I.e. if you have a preferences record with a `value` key, `db.upsert` will overwrite the existing value. In the future if this supported we should use that instead.\n * @param req - The PayloadRequest object\n * @param key - The key of the preferences to update\n * @param value - The new value to merge with the existing preferences\n */\nexport const upsertPreferences = async <T extends Record<string, unknown> | string>({\n key,\n req,\n value: incomingValue,\n}: {\n key: string\n req: PayloadRequest\n value: T\n}): Promise<T> => {\n const existingPrefs: { id?: DefaultDocumentIDType; value?: T } = req.user\n ? await getPreferences<T>(key, req.payload, req.user.id, req.user.collection)\n : {}\n\n let newPrefs = existingPrefs?.value\n\n if (!existingPrefs?.id) {\n await req.payload.create({\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: incomingValue,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n } else {\n // Strings are valid JSON, i.e. `locale` saved as a string to the locale preferences\n const mergedPrefs =\n typeof incomingValue === 'object'\n ? {\n ...(typeof existingPrefs.value === 'object' ? existingPrefs?.value : {}), // Shallow merge existing prefs to acquire any missing keys from incoming value\n ...removeUndefined(incomingValue || {}),\n }\n : incomingValue\n\n if (!dequal(mergedPrefs, existingPrefs.value)) {\n newPrefs = await req.payload\n .update({\n id: existingPrefs.id,\n collection: 'payload-preferences',\n data: {\n key,\n user: {\n collection: req.user.collection,\n value: req.user.id,\n },\n value: mergedPrefs,\n },\n depth: 0,\n disableTransaction: true,\n user: req.user,\n })\n ?.then((res) => res.value)\n }\n }\n\n return newPrefs\n}\n"],"mappings":"AAEA,SAASA,MAAM,QAAQ;AACvB,SAASC,KAAK,QAAQ;AAEtB,SAASC,eAAe,QAAQ;AAEhC,OAAO,MAAMC,cAAA,GAAiBF,KAAA,CAC5B,OACEG,GAAA,EACAC,OAAA,EACAC,MAAA,EACAC,QAAA;EAEA,MAAMC,MAAA,GAAU,MAAMH,OAAA,CACnBI,IAAI,CAAC;IACJC,UAAA,EAAY;IACZC,KAAA,EAAO;IACPC,KAAA,EAAO;IACPC,UAAA,EAAY;IACZC,KAAA,EAAO;MACLC,GAAA,EAAK,CACH;QACEX,GAAA,EAAK;UACHY,MAAA,EAAQZ;QACV;MACF,GACA;QACE,mBAAmB;UACjBY,MAAA,EAAQT;QACV;MACF,GACA;QACE,cAAc;UACZS,MAAA,EAAQV;QACV;MACF;IAEJ;EACF,GACCW,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,GAAG,EAAE;EAE9B,OAAOX,MAAA;AACT;AAGF;;;;;;;;AAQA,OAAO,MAAMY,iBAAA,GAAoB,MAAAA,CAAmD;EAClFhB,GAAG;EACHiB,GAAG;EACHC,KAAA,EAAOC;AAAa,CAKrB;EACC,MAAMC,aAAA,GAA2DH,GAAA,CAAII,IAAI,GACrE,MAAMtB,cAAA,CAAkBC,GAAA,EAAKiB,GAAA,CAAIhB,OAAO,EAAEgB,GAAA,CAAII,IAAI,CAACC,EAAE,EAAEL,GAAA,CAAII,IAAI,CAACf,UAAU,IAC1E,CAAC;EAEL,IAAIiB,QAAA,GAAWH,aAAA,EAAeF,KAAA;EAE9B,IAAI,CAACE,aAAA,EAAeE,EAAA,EAAI;IACtB,MAAML,GAAA,CAAIhB,OAAO,CAACuB,MAAM,CAAC;MACvBlB,UAAA,EAAY;MACZmB,IAAA,EAAM;QACJzB,GAAA;QACAqB,IAAA,EAAM;UACJf,UAAA,EAAYW,GAAA,CAAII,IAAI,CAACf,UAAU;UAC/BY,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;QAClB;QACAJ,KAAA,EAAOC;MACT;MACAZ,KAAA,EAAO;MACPmB,kBAAA,EAAoB;MACpBL,IAAA,EAAMJ,GAAA,CAAII;IACZ;EACF,OAAO;IACL;IACA,MAAMM,WAAA,GACJ,OAAOR,aAAA,KAAkB,WACrB;MACE,IAAI,OAAOC,aAAA,CAAcF,KAAK,KAAK,WAAWE,aAAA,EAAeF,KAAA,GAAQ,CAAC,CAAC;MACvE,GAAGpB,eAAA,CAAgBqB,aAAA,IAAiB,CAAC;IACvC,IACAA,aAAA;IAEN,IAAI,CAACvB,MAAA,CAAO+B,WAAA,EAAaP,aAAA,CAAcF,KAAK,GAAG;MAC7CK,QAAA,GAAW,MAAMN,GAAA,CAAIhB,OAAO,CACzB2B,MAAM,CAAC;QACNN,EAAA,EAAIF,aAAA,CAAcE,EAAE;QACpBhB,UAAA,EAAY;QACZmB,IAAA,EAAM;UACJzB,GAAA;UACAqB,IAAA,EAAM;YACJf,UAAA,EAAYW,GAAA,CAAII,IAAI,CAACf,UAAU;YAC/BY,KAAA,EAAOD,GAAA,CAAII,IAAI,CAACC;UAClB;UACAJ,KAAA,EAAOS;QACT;QACApB,KAAA,EAAO;QACPmB,kBAAA,EAAoB;QACpBL,IAAA,EAAMJ,GAAA,CAAII;MACZ,IACER,IAAA,CAAMC,GAAA,IAAQA,GAAA,CAAII,KAAK;IAC7B;EACF;EAEA,OAAOK,QAAA;AACT","ignoreList":[]}
@@ -5,7 +5,7 @@ import { useEffect, useRef } from 'react';
5
5
  import { useFormFields } from '../../../forms/Form/context.js';
6
6
  import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
7
7
  import { useTranslation } from '../../../providers/Translation/index.js';
8
- import { formatDocTitle } from '../../../utilities/formatDocTitle.js';
8
+ import { formatDocTitle } from '../../../utilities/formatDocTitle/index.js';
9
9
  export const SetDocumentTitle = props => {
10
10
  const $ = _c(13);
11
11
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useEffect","useRef","useFormFields","useDocumentInfo","useTranslation","formatDocTitle","SetDocumentTitle","props","$","collectionConfig","config","fallback","globalConfig","useAsTitle","admin","t0","t1","fields","field","hasInitialized","i18n","setDocumentTitle","dateFormatFromConfig","dateFormat","data","id","String","value","title","t2","t3","current"],"sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport { useEffect, useRef } from 'react'\n\nimport { useFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../../utilities/formatDocTitle.js'\n\nexport const SetDocumentTitle: React.FC<{\n collectionConfig?: ClientCollectionConfig\n config?: ClientConfig\n fallback: string\n globalConfig?: ClientGlobalConfig\n}> = (props) => {\n const { collectionConfig, config, fallback, globalConfig } = props\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n const field = useFormFields(([fields]) => (useAsTitle && fields && fields?.[useAsTitle]) || null)\n\n const hasInitialized = useRef(false)\n\n const { i18n } = useTranslation()\n\n const { setDocumentTitle } = useDocumentInfo()\n\n const dateFormatFromConfig = config?.admin?.dateFormat\n\n const title = formatDocTitle({\n collectionConfig,\n data: { id: '' },\n dateFormat: dateFormatFromConfig,\n fallback:\n typeof field === 'string'\n ? field\n : typeof field === 'number'\n ? String(field)\n : (field?.value as string) || fallback,\n globalConfig,\n i18n,\n })\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n setDocumentTitle(title)\n }, [setDocumentTitle, title])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAElC,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,gBAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,gBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC;EAAA,IAA6DL,KAAA;EAE7D,MAAAM,UAAA,GAAmBJ,gBAAA,EAAAK,KAAA,EAAAD,UAAA;EAAyB,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAK,UAAA;IAEhBE,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKH,UAAC,IAAcI,MAAA,IAAUA,MAAA,GAASJ,UAAA,CAAW,QAAK;IAAA;IAAAL,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA5F,MAAAU,KAAA,GAAchB,aAAA,CAAca,EAAgE;EAE5F,MAAAI,cAAA,GAAuBlB,MAAA,MAAO;EAE9B;IAAAmB;EAAA,IAAiBhB,cAAA;EAEjB;IAAAiB;EAAA,IAA6BlB,eAAA;EAE7B,MAAAmB,oBAAA,GAA6BZ,MAAA,EAAAI,KAAA,EAAAS,UAAA;EAAe,IAAAP,EAAA;EAAA,IAAAR,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAc,oBAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAU,KAAA,IAAAV,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAY,IAAA;IAE9BJ,EAAA,GAAAX,cAAA;MAAAI,gBAAA;MAAAe,IAAA;QAAAC,EAAA,EAEA;MAAA;MAAAF,UAAA,EACAD,oBAAA;MAAAX,QAAA,EAEV,OAAOO,KAAA,KAAU,WACbA,KAAA,GACA,OAAOA,KAAA,KAAU,WACfQ,MAAA,CAAOR,KAAA,IACPA,KAAC,EAAAS,KAAA,IAA2BhB,QAAA;MAAAC,YAAA;MAAAQ;IAAA,CAGtC;IAAAZ,CAAA,MAAAC,gBAAA;IAAAD,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAU,KAAA;IAAAV,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAZA,MAAAoB,KAAA,GAAcZ,EAYd;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAa,gBAAA,IAAAb,CAAA,SAAAoB,KAAA;IAEUC,EAAA,GAAAA,CAAA;MAAA,KACHV,cAAA,CAAAY,OAAA;QACHZ,cAAA,CAAAY,OAAA;QAAA;MAAA;MAIFV,gBAAA,CAAiBO,KAAA;IAAA;IAChBE,EAAA,IAACT,gBAAA,EAAkBO,KAAA;IAAMpB,CAAA,MAAAa,gBAAA;IAAAb,CAAA,OAAAoB,KAAA;IAAApB,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAsB,EAAA;EAAA;IAAAD,EAAA,GAAArB,CAAA;IAAAsB,EAAA,GAAAtB,CAAA;EAAA;EAP5BR,SAAA,CAAU6B,EAOV,EAAGC,EAAyB;EAAA;AAAA,CAG9B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useEffect","useRef","useFormFields","useDocumentInfo","useTranslation","formatDocTitle","SetDocumentTitle","props","$","collectionConfig","config","fallback","globalConfig","useAsTitle","admin","t0","t1","fields","field","hasInitialized","i18n","setDocumentTitle","dateFormatFromConfig","dateFormat","data","id","String","value","title","t2","t3","current"],"sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport { useEffect, useRef } from 'react'\n\nimport { useFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../../utilities/formatDocTitle/index.js'\n\nexport const SetDocumentTitle: React.FC<{\n collectionConfig?: ClientCollectionConfig\n config?: ClientConfig\n fallback: string\n globalConfig?: ClientGlobalConfig\n}> = (props) => {\n const { collectionConfig, config, fallback, globalConfig } = props\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n const field = useFormFields(([fields]) => (useAsTitle && fields && fields?.[useAsTitle]) || null)\n\n const hasInitialized = useRef(false)\n\n const { i18n } = useTranslation()\n\n const { setDocumentTitle } = useDocumentInfo()\n\n const dateFormatFromConfig = config?.admin?.dateFormat\n\n const title = formatDocTitle({\n collectionConfig,\n data: { id: '' },\n dateFormat: dateFormatFromConfig,\n fallback:\n typeof field === 'string'\n ? field\n : typeof field === 'number'\n ? String(field)\n : (field?.value as string) || fallback,\n globalConfig,\n i18n,\n })\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n setDocumentTitle(title)\n }, [setDocumentTitle, title])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAElC,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,gBAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,gBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC;EAAA,IAA6DL,KAAA;EAE7D,MAAAM,UAAA,GAAmBJ,gBAAA,EAAAK,KAAA,EAAAD,UAAA;EAAyB,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAK,UAAA;IAEhBE,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKH,UAAC,IAAcI,MAAA,IAAUA,MAAA,GAASJ,UAAA,CAAW,QAAK;IAAA;IAAAL,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA5F,MAAAU,KAAA,GAAchB,aAAA,CAAca,EAAgE;EAE5F,MAAAI,cAAA,GAAuBlB,MAAA,MAAO;EAE9B;IAAAmB;EAAA,IAAiBhB,cAAA;EAEjB;IAAAiB;EAAA,IAA6BlB,eAAA;EAE7B,MAAAmB,oBAAA,GAA6BZ,MAAA,EAAAI,KAAA,EAAAS,UAAA;EAAe,IAAAP,EAAA;EAAA,IAAAR,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAc,oBAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAU,KAAA,IAAAV,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAY,IAAA;IAE9BJ,EAAA,GAAAX,cAAA;MAAAI,gBAAA;MAAAe,IAAA;QAAAC,EAAA,EAEA;MAAA;MAAAF,UAAA,EACAD,oBAAA;MAAAX,QAAA,EAEV,OAAOO,KAAA,KAAU,WACbA,KAAA,GACA,OAAOA,KAAA,KAAU,WACfQ,MAAA,CAAOR,KAAA,IACPA,KAAC,EAAAS,KAAA,IAA2BhB,QAAA;MAAAC,YAAA;MAAAQ;IAAA,CAGtC;IAAAZ,CAAA,MAAAC,gBAAA;IAAAD,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAU,KAAA;IAAAV,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAZA,MAAAoB,KAAA,GAAcZ,EAYd;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAa,gBAAA,IAAAb,CAAA,SAAAoB,KAAA;IAEUC,EAAA,GAAAA,CAAA;MAAA,KACHV,cAAA,CAAAY,OAAA;QACHZ,cAAA,CAAAY,OAAA;QAAA;MAAA;MAIFV,gBAAA,CAAiBO,KAAA;IAAA;IAChBE,EAAA,IAACT,gBAAA,EAAkBO,KAAA;IAAMpB,CAAA,MAAAa,gBAAA;IAAAb,CAAA,OAAAoB,KAAA;IAAApB,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAsB,EAAA;EAAA;IAAAD,EAAA,GAAArB,CAAA;IAAAsB,EAAA,GAAAtB,CAAA;EAAA;EAP5BR,SAAA,CAAU6B,EAOV,EAAGC,EAAyB;EAAA;AAAA,CAG9B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,qBAkiBzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,qBAiiBzB"}
@@ -66,7 +66,6 @@ export function DefaultEditView({
66
66
  isEditing,
67
67
  isInitializing,
68
68
  lastUpdateTime,
69
- redirectAfterCreate,
70
69
  redirectAfterDelete,
71
70
  redirectAfterDuplicate,
72
71
  savedDocumentData,
@@ -205,7 +204,7 @@ export function DefaultEditView({
205
204
  updatedAt: operation_0 === 'update' ? new Date().toISOString() : document?.updatedAt || new Date().toISOString()
206
205
  });
207
206
  }
208
- if (!isEditing && depth < 2 && redirectAfterCreate !== false) {
207
+ if (!isEditing && depth < 2) {
209
208
  // Redirect to the same locale if it's been set
210
209
  const redirectRoute = formatAdminURL({
211
210
  adminRoute,