@payloadcms/ui 3.0.0-beta.70 → 3.0.0-beta.72

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 (301) hide show
  1. package/dist/elements/ArrayAction/index.d.ts +1 -1
  2. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  3. package/dist/elements/ArrayAction/index.js +1 -1
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +7 -1
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/Collapsible/index.d.ts +1 -1
  9. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  10. package/dist/elements/Collapsible/index.js +1 -1
  11. package/dist/elements/Collapsible/index.js.map +1 -1
  12. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  13. package/dist/elements/DeleteMany/index.js +4 -2
  14. package/dist/elements/DeleteMany/index.js.map +1 -1
  15. package/dist/elements/DocumentFields/index.d.ts +1 -2
  16. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  17. package/dist/elements/DocumentFields/index.js.map +1 -1
  18. package/dist/elements/Drawer/index.d.ts.map +1 -1
  19. package/dist/elements/Drawer/index.js +3 -0
  20. package/dist/elements/Drawer/index.js.map +1 -1
  21. package/dist/elements/Drawer/index.scss +2 -1
  22. package/dist/elements/EditMany/index.d.ts +1 -2
  23. package/dist/elements/EditMany/index.d.ts.map +1 -1
  24. package/dist/elements/EditMany/index.js.map +1 -1
  25. package/dist/elements/FieldSelect/index.d.ts +1 -2
  26. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  27. package/dist/elements/FieldSelect/index.js.map +1 -1
  28. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  29. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  30. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  31. package/dist/elements/ListControls/index.d.ts +1 -2
  32. package/dist/elements/ListControls/index.d.ts.map +1 -1
  33. package/dist/elements/ListControls/index.js.map +1 -1
  34. package/dist/elements/Logout/index.d.ts.map +1 -1
  35. package/dist/elements/Logout/index.js +2 -0
  36. package/dist/elements/Logout/index.js.map +1 -1
  37. package/dist/elements/SortColumn/index.d.ts +2 -2
  38. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  39. package/dist/elements/SortColumn/index.js +4 -4
  40. package/dist/elements/SortColumn/index.js.map +1 -1
  41. package/dist/elements/StepNav/types.d.ts +2 -2
  42. package/dist/elements/StepNav/types.d.ts.map +1 -1
  43. package/dist/elements/StepNav/types.js.map +1 -1
  44. package/dist/elements/Table/index.d.ts +1 -2
  45. package/dist/elements/Table/index.d.ts.map +1 -1
  46. package/dist/elements/Table/index.js.map +1 -1
  47. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  48. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  49. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  50. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  51. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  52. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  53. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  54. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  55. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  56. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  57. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +7 -1
  58. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  59. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  60. package/dist/elements/WhereBuilder/index.js +7 -4
  61. package/dist/elements/WhereBuilder/index.js.map +1 -1
  62. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  63. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  64. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  65. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  66. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  67. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  68. package/dist/elements/WhereBuilder/types.js.map +1 -1
  69. package/dist/exports/client/index.d.ts +5 -6
  70. package/dist/exports/client/index.d.ts.map +1 -1
  71. package/dist/exports/client/index.js +19 -18
  72. package/dist/exports/client/index.js.map +4 -4
  73. package/dist/exports/shared/index.js +1 -1
  74. package/dist/exports/shared/index.js.map +3 -3
  75. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  76. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  77. package/dist/fields/Array/ArrayRow.js.map +1 -1
  78. package/dist/fields/Array/index.d.ts +2 -15
  79. package/dist/fields/Array/index.d.ts.map +1 -1
  80. package/dist/fields/Array/index.js +25 -8
  81. package/dist/fields/Array/index.js.map +1 -1
  82. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  83. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  84. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  85. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  86. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  87. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  88. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  89. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  90. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  91. package/dist/fields/Blocks/RowActions.js +1 -1
  92. package/dist/fields/Blocks/RowActions.js.map +1 -1
  93. package/dist/fields/Blocks/index.d.ts +1 -14
  94. package/dist/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/fields/Blocks/index.js +22 -9
  96. package/dist/fields/Blocks/index.js.map +1 -1
  97. package/dist/fields/Checkbox/Input.d.ts +1 -1
  98. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  99. package/dist/fields/Checkbox/Input.js.map +1 -1
  100. package/dist/fields/Checkbox/index.d.ts +1 -1
  101. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  102. package/dist/fields/Checkbox/index.js +2 -2
  103. package/dist/fields/Checkbox/index.js.map +1 -1
  104. package/dist/fields/Code/index.d.ts +1 -9
  105. package/dist/fields/Code/index.d.ts.map +1 -1
  106. package/dist/fields/Code/index.js +2 -2
  107. package/dist/fields/Code/index.js.map +1 -1
  108. package/dist/fields/Collapsible/index.d.ts +1 -7
  109. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  110. package/dist/fields/Collapsible/index.js +2 -2
  111. package/dist/fields/Collapsible/index.js.map +1 -1
  112. package/dist/fields/ConfirmPassword/index.d.ts +1 -0
  113. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  114. package/dist/fields/ConfirmPassword/index.js +2 -3
  115. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  116. package/dist/fields/DateTime/index.d.ts +1 -9
  117. package/dist/fields/DateTime/index.d.ts.map +1 -1
  118. package/dist/fields/DateTime/index.js +2 -2
  119. package/dist/fields/DateTime/index.js.map +1 -1
  120. package/dist/fields/Email/index.d.ts +1 -9
  121. package/dist/fields/Email/index.d.ts.map +1 -1
  122. package/dist/fields/Email/index.js +2 -2
  123. package/dist/fields/Email/index.js.map +1 -1
  124. package/dist/fields/FieldDescription/index.d.ts +2 -2
  125. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  126. package/dist/fields/FieldDescription/index.js.map +1 -1
  127. package/dist/fields/FieldError/index.d.ts +2 -2
  128. package/dist/fields/FieldError/index.d.ts.map +1 -1
  129. package/dist/fields/FieldError/index.js.map +1 -1
  130. package/dist/fields/FieldLabel/index.d.ts +2 -2
  131. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  132. package/dist/fields/FieldLabel/index.js.map +1 -1
  133. package/dist/fields/Group/index.d.ts +2 -10
  134. package/dist/fields/Group/index.d.ts.map +1 -1
  135. package/dist/fields/Group/index.js +2 -2
  136. package/dist/fields/Group/index.js.map +1 -1
  137. package/dist/fields/Hidden/index.d.ts +2 -9
  138. package/dist/fields/Hidden/index.d.ts.map +1 -1
  139. package/dist/fields/Hidden/index.js +2 -2
  140. package/dist/fields/Hidden/index.js.map +1 -1
  141. package/dist/fields/JSON/index.d.ts +1 -9
  142. package/dist/fields/JSON/index.d.ts.map +1 -1
  143. package/dist/fields/JSON/index.js +2 -2
  144. package/dist/fields/JSON/index.js.map +1 -1
  145. package/dist/fields/Number/index.d.ts +1 -14
  146. package/dist/fields/Number/index.d.ts.map +1 -1
  147. package/dist/fields/Number/index.js +2 -2
  148. package/dist/fields/Number/index.js.map +1 -1
  149. package/dist/fields/Password/index.d.ts +12 -2
  150. package/dist/fields/Password/index.d.ts.map +1 -1
  151. package/dist/fields/Password/index.js +58 -45
  152. package/dist/fields/Password/index.js.map +1 -1
  153. package/dist/fields/Password/input.d.ts +5 -0
  154. package/dist/fields/Password/input.d.ts.map +1 -0
  155. package/dist/fields/Password/input.js +65 -0
  156. package/dist/fields/Password/input.js.map +1 -0
  157. package/dist/fields/Password/types.d.ts +27 -0
  158. package/dist/fields/Password/types.d.ts.map +1 -0
  159. package/dist/fields/Password/types.js.map +1 -0
  160. package/dist/fields/Point/index.d.ts +2 -9
  161. package/dist/fields/Point/index.d.ts.map +1 -1
  162. package/dist/fields/Point/index.js +2 -2
  163. package/dist/fields/Point/index.js.map +1 -1
  164. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  165. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  166. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  167. package/dist/fields/RadioGroup/index.d.ts +1 -12
  168. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  169. package/dist/fields/RadioGroup/index.js +2 -2
  170. package/dist/fields/RadioGroup/index.js.map +1 -1
  171. package/dist/fields/Relationship/index.d.ts +1 -2
  172. package/dist/fields/Relationship/index.d.ts.map +1 -1
  173. package/dist/fields/Relationship/index.js +2 -2
  174. package/dist/fields/Relationship/index.js.map +1 -1
  175. package/dist/fields/Relationship/types.d.ts +1 -11
  176. package/dist/fields/Relationship/types.d.ts.map +1 -1
  177. package/dist/fields/Relationship/types.js.map +1 -1
  178. package/dist/fields/RichText/index.d.ts +2 -8
  179. package/dist/fields/RichText/index.d.ts.map +1 -1
  180. package/dist/fields/RichText/index.js.map +1 -1
  181. package/dist/fields/Row/index.d.ts +1 -2
  182. package/dist/fields/Row/index.d.ts.map +1 -1
  183. package/dist/fields/Row/index.js +2 -2
  184. package/dist/fields/Row/index.js.map +1 -1
  185. package/dist/fields/Row/index.scss +1 -5
  186. package/dist/fields/Select/Input.d.ts +1 -2
  187. package/dist/fields/Select/Input.d.ts.map +1 -1
  188. package/dist/fields/Select/Input.js.map +1 -1
  189. package/dist/fields/Select/index.d.ts +1 -13
  190. package/dist/fields/Select/index.d.ts.map +1 -1
  191. package/dist/fields/Select/index.js +2 -2
  192. package/dist/fields/Select/index.js.map +1 -1
  193. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  194. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  195. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  196. package/dist/fields/Tabs/index.d.ts +1 -9
  197. package/dist/fields/Tabs/index.d.ts.map +1 -1
  198. package/dist/fields/Tabs/index.js +24 -24
  199. package/dist/fields/Tabs/index.js.map +1 -1
  200. package/dist/fields/Text/index.d.ts +3 -2
  201. package/dist/fields/Text/index.d.ts.map +1 -1
  202. package/dist/fields/Text/index.js +2 -2
  203. package/dist/fields/Text/index.js.map +1 -1
  204. package/dist/fields/Text/types.d.ts +1 -15
  205. package/dist/fields/Text/types.d.ts.map +1 -1
  206. package/dist/fields/Text/types.js.map +1 -1
  207. package/dist/fields/Textarea/index.d.ts +3 -2
  208. package/dist/fields/Textarea/index.d.ts.map +1 -1
  209. package/dist/fields/Textarea/index.js +2 -2
  210. package/dist/fields/Textarea/index.js.map +1 -1
  211. package/dist/fields/Textarea/types.d.ts +1 -11
  212. package/dist/fields/Textarea/types.d.ts.map +1 -1
  213. package/dist/fields/Textarea/types.js.map +1 -1
  214. package/dist/fields/Upload/Input.d.ts +1 -2
  215. package/dist/fields/Upload/Input.d.ts.map +1 -1
  216. package/dist/fields/Upload/Input.js.map +1 -1
  217. package/dist/fields/Upload/index.d.ts +1 -1
  218. package/dist/fields/Upload/index.d.ts.map +1 -1
  219. package/dist/fields/Upload/index.js +2 -2
  220. package/dist/fields/Upload/index.js.map +1 -1
  221. package/dist/fields/shared/index.d.ts +1 -25
  222. package/dist/fields/shared/index.d.ts.map +1 -1
  223. package/dist/fields/shared/index.js.map +1 -1
  224. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  225. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  226. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  227. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  228. package/dist/forms/Form/fieldReducer.js +5 -35
  229. package/dist/forms/Form/fieldReducer.js.map +1 -1
  230. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  231. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  232. package/dist/forms/Form/rowHelpers.js +24 -0
  233. package/dist/forms/Form/rowHelpers.js.map +1 -0
  234. package/dist/forms/Form/types.d.ts +3 -10
  235. package/dist/forms/Form/types.d.ts.map +1 -1
  236. package/dist/forms/Form/types.js.map +1 -1
  237. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  238. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  239. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  240. package/dist/forms/RenderFields/types.d.ts +1 -2
  241. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  242. package/dist/forms/RenderFields/types.js.map +1 -1
  243. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  244. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  245. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  246. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  247. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  248. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  249. package/dist/forms/useField/index.d.ts.map +1 -1
  250. package/dist/forms/useField/index.js +2 -1
  251. package/dist/forms/useField/index.js.map +1 -1
  252. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  253. package/dist/hooks/usePayloadAPI.js +5 -1
  254. package/dist/hooks/usePayloadAPI.js.map +1 -1
  255. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  256. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  257. package/dist/hooks/useUseAsTitle.js.map +1 -1
  258. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
  259. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  260. package/dist/providers/ComponentMap/buildComponentMap/fields.js +126 -95
  261. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  262. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -56
  263. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  264. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  265. package/dist/providers/ComponentMap/index.d.ts +2 -1
  266. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  267. package/dist/providers/ComponentMap/index.js.map +1 -1
  268. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  269. package/dist/providers/DocumentInfo/index.js +5 -1
  270. package/dist/providers/DocumentInfo/index.js.map +1 -1
  271. package/dist/providers/ListQuery/index.d.ts +16 -9
  272. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  273. package/dist/providers/ListQuery/index.js +8 -6
  274. package/dist/providers/ListQuery/index.js.map +1 -1
  275. package/dist/styles.css +1 -1
  276. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  277. package/dist/utilities/buildFieldSchemaMap/index.js +24 -0
  278. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  279. package/dist/utilities/buildFormState.d.ts.map +1 -1
  280. package/dist/utilities/buildFormState.js +0 -2
  281. package/dist/utilities/buildFormState.js.map +1 -1
  282. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  283. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  284. package/dist/utilities/flattenFieldMap.js.map +1 -1
  285. package/dist/utilities/formatAdminURL.d.ts +1 -0
  286. package/dist/utilities/formatAdminURL.d.ts.map +1 -1
  287. package/dist/utilities/formatAdminURL.js +4 -4
  288. package/dist/utilities/formatAdminURL.js.map +1 -1
  289. package/package.json +5 -5
  290. package/dist/fields/Checkbox/types.d.ts +0 -12
  291. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  292. package/dist/fields/Checkbox/types.js.map +0 -1
  293. package/dist/fields/Row/types.d.ts +0 -12
  294. package/dist/fields/Row/types.d.ts.map +0 -1
  295. package/dist/fields/Row/types.js +0 -3
  296. package/dist/fields/Row/types.js.map +0 -1
  297. package/dist/fields/Upload/types.d.ts +0 -10
  298. package/dist/fields/Upload/types.d.ts.map +0 -1
  299. package/dist/fields/Upload/types.js +0 -3
  300. package/dist/fields/Upload/types.js.map +0 -1
  301. /package/dist/fields/{Checkbox → Password}/types.js +0 -0
@@ -1,3 +1,3 @@
1
- import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js';
1
+ import type { FieldMap, MappedField } from 'payload';
2
2
  export declare const getTextFieldsToBeSearched: (listSearchableFields: string[], fieldMap: FieldMap) => MappedField[];
3
3
  //# sourceMappingURL=getTextFieldsToBeSearched.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getTextFieldsToBeSearched.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAA;AAIpG,eAAO,MAAM,yBAAyB,yBACd,MAAM,EAAE,YACpB,QAAQ,KACjB,WAAW,EASb,CAAA"}
1
+ {"version":3,"file":"getTextFieldsToBeSearched.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIpD,eAAO,MAAM,yBAAyB,yBACd,MAAM,EAAE,YACpB,QAAQ,KACjB,WAAW,EASb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"sourcesContent":["import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\n\nexport const getTextFieldsToBeSearched = (\n listSearchableFields: string[],\n fieldMap: FieldMap,\n): MappedField[] => {\n if (listSearchableFields) {\n const flattenedFields = flattenFieldMap(fieldMap)\n return flattenedFields.filter(\n (field) => field.isFieldAffectingData && listSearchableFields.includes(field.name),\n )\n }\n\n return null\n}\n"],"names":["flattenFieldMap","getTextFieldsToBeSearched","listSearchableFields","fieldMap","flattenedFields","filter","field","isFieldAffectingData","includes","name"],"mappings":"AAEA,SAASA,eAAe,QAAQ,qCAAoC;AAEpE,OAAO,MAAMC,4BAA4B,CACvCC,sBACAC;IAEA,IAAID,sBAAsB;QACxB,MAAME,kBAAkBJ,gBAAgBG;QACxC,OAAOC,gBAAgBC,MAAM,CAC3B,CAACC,QAAUA,MAAMC,oBAAoB,IAAIL,qBAAqBM,QAAQ,CAACF,MAAMG,IAAI;IAErF;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"sourcesContent":["import type { FieldMap, MappedField } from 'payload'\n\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\n\nexport const getTextFieldsToBeSearched = (\n listSearchableFields: string[],\n fieldMap: FieldMap,\n): MappedField[] => {\n if (listSearchableFields) {\n const flattenedFields = flattenFieldMap(fieldMap)\n return flattenedFields.filter(\n (field) => field.isFieldAffectingData && listSearchableFields.includes(field.name),\n )\n }\n\n return null\n}\n"],"names":["flattenFieldMap","getTextFieldsToBeSearched","listSearchableFields","fieldMap","flattenedFields","filter","field","isFieldAffectingData","includes","name"],"mappings":"AAEA,SAASA,eAAe,QAAQ,qCAAoC;AAEpE,OAAO,MAAMC,4BAA4B,CACvCC,sBACAC;IAEA,IAAID,sBAAsB;QACxB,MAAME,kBAAkBJ,gBAAgBG;QACxC,OAAOC,gBAAgBC,MAAM,CAC3B,CAACC,QAAUA,MAAMC,oBAAoB,IAAIL,qBAAqBM,QAAQ,CAACF,MAAMG,IAAI;IAErF;IAEA,OAAO;AACT,EAAC"}
@@ -1,6 +1,5 @@
1
- import type { ClientCollectionConfig, Where } from 'payload';
1
+ import type { ClientCollectionConfig, FieldMap, Where } from 'payload';
2
2
  import React from 'react';
3
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
4
3
  import './index.scss';
5
4
  export type ListControlsProps = {
6
5
  collectionConfig: ClientCollectionConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAsC,MAAM,OAAO,CAAA;AAQ1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAiBvF,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyLpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAItE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAuB1D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyLpD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useListInfo } from '@payloadcms/ui'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n collectionConfig: ClientCollectionConfig\n enableColumns?: boolean\n enableSort?: boolean\n fieldMap: FieldMap\n handleSearchChange?: (search: string) => void\n handleSortChange?: (sort: string) => void\n handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fieldMap } = props\n\n const { handleSearchChange } = useListQuery()\n const { collectionSlug } = useListInfo()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fieldMap)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const [search, setSearch] = useState(\n typeof searchParams?.search === 'string' ? searchParams?.search : '',\n )\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField.fieldComponentProps &&\n typeof titleField.fieldComponentProps.label === 'string'\n ? titleField.fieldComponentProps.label\n : titleField.name,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fieldMap,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(searchParams?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !searchParams?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (searchParams?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, searchParams?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'fieldComponentProps' in field &&\n 'label' in field.fieldComponentProps &&\n field.fieldComponentProps.label\n ? field.fieldComponentProps.label\n : field.name\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchFilter\n fieldName={titleField?.name}\n handleChange={handleSearchChange}\n initialParams={searchParams}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n setValue={setSearch}\n value={search}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fieldMap={fieldMap}\n key={String(hasWhereParam.current && !searchParams?.where)}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"names":["useWindowInfo","getTranslation","React","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useListInfo","useUseTitleField","ChevronIcon","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","collectionConfig","enableColumns","enableSort","fieldMap","handleSearchChange","collectionSlug","searchParams","titleField","i18n","t","breakpoints","s","smallBreak","search","setSearch","searchLabel","fieldComponentProps","label","name","listSearchableFields","admin","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","div","className","fieldName","handleChange","initialParams","setValue","value","Fragment","collection","aria-controls","aria-expanded","icon","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String","p"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldMap, Where } from 'payload'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useListInfo } from '@payloadcms/ui'\n\nimport { useUseTitleField } from '../../hooks/useUseAsTitle.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n collectionConfig: ClientCollectionConfig\n enableColumns?: boolean\n enableSort?: boolean\n fieldMap: FieldMap\n handleSearchChange?: (search: string) => void\n handleSortChange?: (sort: string) => void\n handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fieldMap } = props\n\n const { handleSearchChange } = useListQuery()\n const { collectionSlug } = useListInfo()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fieldMap)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const [search, setSearch] = useState(\n typeof searchParams?.search === 'string' ? searchParams?.search : '',\n )\n\n const searchLabel =\n (titleField &&\n getTranslation(\n 'label' in titleField.fieldComponentProps &&\n typeof titleField.fieldComponentProps.label === 'string'\n ? titleField.fieldComponentProps.label\n : titleField.name,\n i18n,\n )) ??\n 'ID'\n\n const listSearchableFields = getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fieldMap,\n )\n\n const searchLabelTranslated = useRef(\n t('general:searchBy', { label: getTranslation(searchLabel, i18n) }),\n )\n\n const hasWhereParam = useRef(Boolean(searchParams?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !searchParams?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (searchParams?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, searchParams?.where])\n\n useEffect(() => {\n if (listSearchableFields?.length > 0) {\n searchLabelTranslated.current = listSearchableFields.reduce(\n (placeholderText: string, field, i: number) => {\n const label =\n 'fieldComponentProps' in field &&\n 'label' in field.fieldComponentProps &&\n field.fieldComponentProps.label\n ? field.fieldComponentProps.label\n : field.name\n\n if (i === 0) {\n return `${t('general:searchBy', {\n label: getTranslation(label, i18n),\n })}`\n }\n\n if (i === listSearchableFields.length - 1) {\n return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`\n }\n\n return `${placeholderText}, ${getTranslation(label, i18n)}`\n },\n '',\n )\n } else {\n searchLabelTranslated.current = t('general:searchBy', {\n label: getTranslation(searchLabel, i18n),\n })\n }\n }, [t, listSearchableFields, i18n, searchLabel])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchFilter\n fieldName={titleField?.name}\n handleChange={handleSearchChange}\n initialParams={searchParams}\n key={collectionSlug}\n label={searchLabelTranslated.current}\n setValue={setSearch}\n value={search}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<ChevronIcon />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fieldMap={fieldMap}\n key={String(hasWhereParam.current && !searchParams?.where)}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"names":["useWindowInfo","getTranslation","React","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useListInfo","useUseTitleField","ChevronIcon","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","collectionConfig","enableColumns","enableSort","fieldMap","handleSearchChange","collectionSlug","searchParams","titleField","i18n","t","breakpoints","s","smallBreak","search","setSearch","searchLabel","fieldComponentProps","label","name","listSearchableFields","admin","searchLabelTranslated","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","length","reduce","placeholderText","field","i","div","className","fieldName","handleChange","initialParams","setValue","value","Fragment","collection","aria-controls","aria-expanded","icon","onClick","pillStyle","height","id","slug","collectionPluralLabel","labels","plural","String","p"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAyCvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAUA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Logout/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AA2CvC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAUA,CAAA"}
@@ -11,12 +11,14 @@ const DefaultLogout = ({ Link, tabIndex })=>{
11
11
  const { t } = useTranslation();
12
12
  const config = useConfig();
13
13
  const { admin: { routes: { logout: logoutRoute } }, routes: { admin: adminRoute } } = config;
14
+ const basePath = process.env.NEXT_BASE_PATH ?? '';
14
15
  const LinkElement = Link || 'a';
15
16
  return /*#__PURE__*/ _jsx(LinkElement, {
16
17
  "aria-label": t('authentication:logOut'),
17
18
  className: `${baseClass}__log-out`,
18
19
  href: formatAdminURL({
19
20
  adminRoute,
21
+ basePath,
20
22
  path: logoutRoute
21
23
  }),
22
24
  tabIndex: tabIndex,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\n\nconst baseClass = 'nav'\n\nconst DefaultLogout: React.FC<{\n Link: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex }) => {\n const { t } = useTranslation()\n const config = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const LinkElement = Link || 'a'\n\n return (\n <LinkElement\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n path: logoutRoute,\n })}\n tabIndex={tabIndex}\n >\n <LogOutIcon />\n </LinkElement>\n )\n}\n\nexport const Logout: React.FC<{\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex = 0 }) => {\n const {\n componentMap: { LogoutButton: CustomLogout },\n } = useComponentMap()\n\n if (CustomLogout) {\n return <Fragment>{CustomLogout}</Fragment>\n }\n\n return <DefaultLogout Link={Link} tabIndex={tabIndex} />\n}\n"],"names":["React","Fragment","LogOutIcon","useComponentMap","useConfig","useTranslation","formatAdminURL","baseClass","DefaultLogout","Link","tabIndex","t","config","admin","routes","logout","logoutRoute","adminRoute","LinkElement","aria-label","className","href","path","Logout","componentMap","LogoutButton","CustomLogout"],"mappings":"AAAA;;AACA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAElE,MAAMC,YAAY;AAElB,MAAMC,gBAGD,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IACtB,MAAM,EAAEC,CAAC,EAAE,GAAGN;IACd,MAAMO,SAASR;IAEf,MAAM,EACJS,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGL;IAEJ,MAAMM,cAAcT,QAAQ;IAE5B,qBACE,KAACS;QACCC,cAAYR,EAAE;QACdS,WAAW,CAAC,EAAEb,UAAU,SAAS,CAAC;QAClCc,MAAMf,eAAe;YACnBW;YACAK,MAAMN;QACR;QACAN,UAAUA;kBAEV,cAAA,KAACR;;AAGP;AAEA,OAAO,MAAMqB,SAGR,CAAC,EAAEd,IAAI,EAAEC,WAAW,CAAC,EAAE;IAC1B,MAAM,EACJc,cAAc,EAAEC,cAAcC,YAAY,EAAE,EAC7C,GAAGvB;IAEJ,IAAIuB,cAAc;QAChB,qBAAO,KAACzB;sBAAUyB;;IACpB;IAEA,qBAAO,KAAClB;QAAcC,MAAMA;QAAMC,UAAUA;;AAC9C,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Logout/index.tsx"],"sourcesContent":["'use client'\nimport React, { Fragment } from 'react'\n\nimport { LogOutIcon } from '../../icons/LogOut/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\n\nconst baseClass = 'nav'\n\nconst DefaultLogout: React.FC<{\n Link: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex }) => {\n const { t } = useTranslation()\n const config = useConfig()\n\n const {\n admin: {\n routes: { logout: logoutRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n const basePath = process.env.NEXT_BASE_PATH ?? ''\n const LinkElement = Link || 'a'\n\n return (\n <LinkElement\n aria-label={t('authentication:logOut')}\n className={`${baseClass}__log-out`}\n href={formatAdminURL({\n adminRoute,\n basePath,\n path: logoutRoute,\n })}\n tabIndex={tabIndex}\n >\n <LogOutIcon />\n </LinkElement>\n )\n}\n\nexport const Logout: React.FC<{\n Link?: React.ComponentType\n tabIndex?: number\n}> = ({ Link, tabIndex = 0 }) => {\n const {\n componentMap: { LogoutButton: CustomLogout },\n } = useComponentMap()\n\n if (CustomLogout) {\n return <Fragment>{CustomLogout}</Fragment>\n }\n\n return <DefaultLogout Link={Link} tabIndex={tabIndex} />\n}\n"],"names":["React","Fragment","LogOutIcon","useComponentMap","useConfig","useTranslation","formatAdminURL","baseClass","DefaultLogout","Link","tabIndex","t","config","admin","routes","logout","logoutRoute","adminRoute","basePath","process","env","NEXT_BASE_PATH","LinkElement","aria-label","className","href","path","Logout","componentMap","LogoutButton","CustomLogout"],"mappings":"AAAA;;AACA,OAAOA,SAASC,QAAQ,QAAQ,QAAO;AAEvC,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,oCAAmC;AAElE,MAAMC,YAAY;AAElB,MAAMC,gBAGD,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IACtB,MAAM,EAAEC,CAAC,EAAE,GAAGN;IACd,MAAMO,SAASR;IAEf,MAAM,EACJS,OAAO,EACLC,QAAQ,EAAEC,QAAQC,WAAW,EAAE,EAChC,EACDF,QAAQ,EAAED,OAAOI,UAAU,EAAE,EAC9B,GAAGL;IAEJ,MAAMM,WAAWC,QAAQC,GAAG,CAACC,cAAc,IAAI;IAC/C,MAAMC,cAAcb,QAAQ;IAE5B,qBACE,KAACa;QACCC,cAAYZ,EAAE;QACda,WAAW,CAAC,EAAEjB,UAAU,SAAS,CAAC;QAClCkB,MAAMnB,eAAe;YACnBW;YACAC;YACAQ,MAAMV;QACR;QACAN,UAAUA;kBAEV,cAAA,KAACR;;AAGP;AAEA,OAAO,MAAMyB,SAGR,CAAC,EAAElB,IAAI,EAAEC,WAAW,CAAC,EAAE;IAC1B,MAAM,EACJkB,cAAc,EAAEC,cAAcC,YAAY,EAAE,EAC7C,GAAG3B;IAEJ,IAAI2B,cAAc;QAChB,qBAAO,KAAC7B;sBAAU6B;;IACpB;IAEA,qBAAO,KAACtB;QAAcC,MAAMA;QAAMC,UAAUA;;AAC9C,EAAC"}
@@ -1,11 +1,11 @@
1
+ import type { FieldBase } from 'payload';
1
2
  import React from 'react';
3
+ import './index.scss';
2
4
  export type SortColumnProps = {
3
5
  Label: React.ReactNode;
4
6
  disable?: boolean;
5
7
  label?: FieldBase['label'];
6
8
  name: string;
7
9
  };
8
- import type { FieldBase } from 'payload';
9
- import './index.scss';
10
10
  export declare const SortColumn: React.FC<SortColumnProps>;
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortColumn/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAMxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyDhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortColumn/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAM1C,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAID,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyDhD,CAAA"}
@@ -24,8 +24,8 @@ export const SortColumn = (props)=>{
24
24
  `${baseClass}__desc`
25
25
  ];
26
26
  if (sort === desc) descClasses.push(`${baseClass}--active`);
27
- const setSort = useCallback((newSort)=>{
28
- refineListData({
27
+ const setSort = useCallback(async (newSort)=>{
28
+ await refineListData({
29
29
  sort: newSort
30
30
  });
31
31
  }, [
@@ -50,7 +50,7 @@ export const SortColumn = (props)=>{
50
50
  ...ascClasses,
51
51
  `${baseClass}__button`
52
52
  ].filter(Boolean).join(' '),
53
- onClick: ()=>setSort(asc),
53
+ onClick: ()=>void setSort(asc),
54
54
  type: "button",
55
55
  children: /*#__PURE__*/ _jsx(ChevronIcon, {
56
56
  direction: "up"
@@ -65,7 +65,7 @@ export const SortColumn = (props)=>{
65
65
  ...descClasses,
66
66
  `${baseClass}__button`
67
67
  ].filter(Boolean).join(' '),
68
- onClick: ()=>setSort(desc),
68
+ onClick: ()=>void setSort(desc),
69
69
  type: "button",
70
70
  children: /*#__PURE__*/ _jsx(ChevronIcon, {})
71
71
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/SortColumn/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport React, { useCallback } from 'react'\n\nexport type SortColumnProps = {\n Label: React.ReactNode\n disable?: boolean\n label?: FieldBase['label']\n name: string\n}\n\nimport type { FieldBase } from 'payload'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'sort-column'\n\nexport const SortColumn: React.FC<SortColumnProps> = (props) => {\n const { name, Label, disable = false, label } = props\n const { searchParams } = useSearchParams()\n const { refineListData } = useListQuery()\n const { t } = useTranslation()\n\n const { sort } = searchParams\n\n const desc = `-${name}`\n const asc = name\n\n const ascClasses = [`${baseClass}__asc`]\n if (sort === asc) ascClasses.push(`${baseClass}--active`)\n\n const descClasses = [`${baseClass}__desc`]\n if (sort === desc) descClasses.push(`${baseClass}--active`)\n\n const setSort = useCallback(\n (newSort) => {\n refineListData({\n sort: newSort,\n })\n },\n [refineListData],\n )\n\n return (\n <div className={baseClass}>\n <span className={`${baseClass}__label`}>{Label}</span>\n {!disable && (\n <div className={`${baseClass}__buttons`}>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:ascending'),\n label,\n })}\n className={[...ascClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => setSort(asc)}\n type=\"button\"\n >\n <ChevronIcon direction=\"up\" />\n </button>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:descending'),\n label,\n })}\n className={[...descClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => setSort(desc)}\n type=\"button\"\n >\n <ChevronIcon />\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","useCallback","ChevronIcon","useListQuery","useSearchParams","useTranslation","baseClass","SortColumn","props","name","Label","disable","label","searchParams","refineListData","t","sort","desc","asc","ascClasses","push","descClasses","setSort","newSort","div","className","span","button","aria-label","direction","filter","Boolean","join","onClick","type"],"mappings":"AAAA;;AACA,0EAA0E;AAC1E,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAW1C,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,aAAwC,CAACC;IACpD,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,UAAU,KAAK,EAAEC,KAAK,EAAE,GAAGJ;IAChD,MAAM,EAAEK,YAAY,EAAE,GAAGT;IACzB,MAAM,EAAEU,cAAc,EAAE,GAAGX;IAC3B,MAAM,EAAEY,CAAC,EAAE,GAAGV;IAEd,MAAM,EAAEW,IAAI,EAAE,GAAGH;IAEjB,MAAMI,OAAO,CAAC,CAAC,EAAER,KAAK,CAAC;IACvB,MAAMS,MAAMT;IAEZ,MAAMU,aAAa;QAAC,CAAC,EAAEb,UAAU,KAAK,CAAC;KAAC;IACxC,IAAIU,SAASE,KAAKC,WAAWC,IAAI,CAAC,CAAC,EAAEd,UAAU,QAAQ,CAAC;IAExD,MAAMe,cAAc;QAAC,CAAC,EAAEf,UAAU,MAAM,CAAC;KAAC;IAC1C,IAAIU,SAASC,MAAMI,YAAYD,IAAI,CAAC,CAAC,EAAEd,UAAU,QAAQ,CAAC;IAE1D,MAAMgB,UAAUrB,YACd,CAACsB;QACCT,eAAe;YACbE,MAAMO;QACR;IACF,GACA;QAACT;KAAe;IAGlB,qBACE,MAACU;QAAIC,WAAWnB;;0BACd,KAACoB;gBAAKD,WAAW,CAAC,EAAEnB,UAAU,OAAO,CAAC;0BAAGI;;YACxC,CAACC,yBACA,MAACa;gBAAIC,WAAW,CAAC,EAAEnB,UAAU,SAAS,CAAC;;kCACrC,KAACqB;wBACCC,cAAYb,EAAE,gCAAgC;4BAC5Cc,WAAWd,EAAE;4BACbH;wBACF;wBACAa,WAAW;+BAAIN;4BAAY,CAAC,EAAEb,UAAU,QAAQ,CAAC;yBAAC,CAACwB,MAAM,CAACC,SAASC,IAAI,CAAC;wBACxEC,SAAS,IAAMX,QAAQJ;wBACvBgB,MAAK;kCAEL,cAAA,KAAChC;4BAAY2B,WAAU;;;kCAEzB,KAACF;wBACCC,cAAYb,EAAE,gCAAgC;4BAC5Cc,WAAWd,EAAE;4BACbH;wBACF;wBACAa,WAAW;+BAAIJ;4BAAa,CAAC,EAAEf,UAAU,QAAQ,CAAC;yBAAC,CAACwB,MAAM,CAACC,SAASC,IAAI,CAAC;wBACzEC,SAAS,IAAMX,QAAQL;wBACvBiB,MAAK;kCAEL,cAAA,KAAChC;;;;;;AAMb,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/SortColumn/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldBase } from 'payload'\n\n// TODO: abstract the `next/navigation` dependency out from this component\nimport React, { useCallback } from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nexport type SortColumnProps = {\n Label: React.ReactNode\n disable?: boolean\n label?: FieldBase['label']\n name: string\n}\n\nconst baseClass = 'sort-column'\n\nexport const SortColumn: React.FC<SortColumnProps> = (props) => {\n const { name, Label, disable = false, label } = props\n const { searchParams } = useSearchParams()\n const { refineListData } = useListQuery()\n const { t } = useTranslation()\n\n const { sort } = searchParams\n\n const desc = `-${name}`\n const asc = name\n\n const ascClasses = [`${baseClass}__asc`]\n if (sort === asc) ascClasses.push(`${baseClass}--active`)\n\n const descClasses = [`${baseClass}__desc`]\n if (sort === desc) descClasses.push(`${baseClass}--active`)\n\n const setSort = useCallback(\n async (newSort: string) => {\n await refineListData({\n sort: newSort,\n })\n },\n [refineListData],\n )\n\n return (\n <div className={baseClass}>\n <span className={`${baseClass}__label`}>{Label}</span>\n {!disable && (\n <div className={`${baseClass}__buttons`}>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:ascending'),\n label,\n })}\n className={[...ascClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => void setSort(asc)}\n type=\"button\"\n >\n <ChevronIcon direction=\"up\" />\n </button>\n <button\n aria-label={t('general:sortByLabelDirection', {\n direction: t('general:descending'),\n label,\n })}\n className={[...descClasses, `${baseClass}__button`].filter(Boolean).join(' ')}\n onClick={() => void setSort(desc)}\n type=\"button\"\n >\n <ChevronIcon />\n </button>\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","useCallback","ChevronIcon","useListQuery","useSearchParams","useTranslation","baseClass","SortColumn","props","name","Label","disable","label","searchParams","refineListData","t","sort","desc","asc","ascClasses","push","descClasses","setSort","newSort","div","className","span","button","aria-label","direction","filter","Boolean","join","onClick","type"],"mappings":"AAAA;;AAGA,0EAA0E;AAC1E,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AASrB,MAAMC,YAAY;AAElB,OAAO,MAAMC,aAAwC,CAACC;IACpD,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAEC,UAAU,KAAK,EAAEC,KAAK,EAAE,GAAGJ;IAChD,MAAM,EAAEK,YAAY,EAAE,GAAGT;IACzB,MAAM,EAAEU,cAAc,EAAE,GAAGX;IAC3B,MAAM,EAAEY,CAAC,EAAE,GAAGV;IAEd,MAAM,EAAEW,IAAI,EAAE,GAAGH;IAEjB,MAAMI,OAAO,CAAC,CAAC,EAAER,KAAK,CAAC;IACvB,MAAMS,MAAMT;IAEZ,MAAMU,aAAa;QAAC,CAAC,EAAEb,UAAU,KAAK,CAAC;KAAC;IACxC,IAAIU,SAASE,KAAKC,WAAWC,IAAI,CAAC,CAAC,EAAEd,UAAU,QAAQ,CAAC;IAExD,MAAMe,cAAc;QAAC,CAAC,EAAEf,UAAU,MAAM,CAAC;KAAC;IAC1C,IAAIU,SAASC,MAAMI,YAAYD,IAAI,CAAC,CAAC,EAAEd,UAAU,QAAQ,CAAC;IAE1D,MAAMgB,UAAUrB,YACd,OAAOsB;QACL,MAAMT,eAAe;YACnBE,MAAMO;QACR;IACF,GACA;QAACT;KAAe;IAGlB,qBACE,MAACU;QAAIC,WAAWnB;;0BACd,KAACoB;gBAAKD,WAAW,CAAC,EAAEnB,UAAU,OAAO,CAAC;0BAAGI;;YACxC,CAACC,yBACA,MAACa;gBAAIC,WAAW,CAAC,EAAEnB,UAAU,SAAS,CAAC;;kCACrC,KAACqB;wBACCC,cAAYb,EAAE,gCAAgC;4BAC5Cc,WAAWd,EAAE;4BACbH;wBACF;wBACAa,WAAW;+BAAIN;4BAAY,CAAC,EAAEb,UAAU,QAAQ,CAAC;yBAAC,CAACwB,MAAM,CAACC,SAASC,IAAI,CAAC;wBACxEC,SAAS,IAAM,KAAKX,QAAQJ;wBAC5BgB,MAAK;kCAEL,cAAA,KAAChC;4BAAY2B,WAAU;;;kCAEzB,KAACF;wBACCC,cAAYb,EAAE,gCAAgC;4BAC5Cc,WAAWd,EAAE;4BACbH;wBACF;wBACAa,WAAW;+BAAIJ;4BAAa,CAAC,EAAEf,UAAU,QAAQ,CAAC;yBAAC,CAACwB,MAAM,CAACC,SAASC,IAAI,CAAC;wBACzEC,SAAS,IAAM,KAAKX,QAAQL;wBAC5BiB,MAAK;kCAEL,cAAA,KAAChC;;;;;;AAMb,EAAC"}
@@ -1,6 +1,6 @@
1
- import type { LabelFunction } from 'payload';
1
+ import type { LabelFunction, LabelStatic } from 'payload';
2
2
  export type StepNavItem = {
3
- label: LabelFunction | Record<string, string> | string;
3
+ label: LabelFunction | LabelStatic;
4
4
  url?: string;
5
5
  };
6
6
  export type ContextType = {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/StepNav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/StepNav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEzD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,aAAa,GAAG,WAAW,CAAA;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,WAAW,EAAE,CAAA;CACvB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/StepNav/types.ts"],"sourcesContent":["import type { LabelFunction } from 'payload'\n\nexport type StepNavItem = {\n label: LabelFunction | Record<string, string> | string\n url?: string\n}\n\nexport type ContextType = {\n setStepNav: (items: StepNavItem[]) => void\n stepNav: StepNavItem[]\n}\n"],"names":[],"mappings":"AAOA,WAGC"}
1
+ {"version":3,"sources":["../../../src/elements/StepNav/types.ts"],"sourcesContent":["import type { LabelFunction, LabelStatic } from 'payload'\n\nexport type StepNavItem = {\n label: LabelFunction | LabelStatic\n url?: string\n}\n\nexport type ContextType = {\n setStepNav: (items: StepNavItem[]) => void\n stepNav: StepNavItem[]\n}\n"],"names":[],"mappings":"AAOA,WAGC"}
@@ -1,7 +1,6 @@
1
- import type { CellComponentProps, FieldBase, FieldTypes } from 'payload';
1
+ import type { CellComponentProps, FieldBase, FieldMap, FieldTypes } from 'payload';
2
2
  import React from 'react';
3
3
  export * from './TableCellProvider/index.js';
4
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
5
4
  import { TableCellProvider } from './TableCellProvider/index.js';
6
5
  import './index.scss';
7
6
  export { TableCellProvider };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAExE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,cAAc,8BAA8B,CAAA;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAI5B,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvC,UAAU,EAAE;QACV,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;QACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;KACzB,CAAA;IACD,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,EAAE,MAAM,UAAU,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgDjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAElF,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,cAAc,8BAA8B,CAAA;AAG5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAI5B,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvC,UAAU,EAAE;QACV,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;QACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;KACzB,CAAA;IACD,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACvB,IAAI,EAAE,MAAM,UAAU,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgDjC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, FieldBase, FieldTypes } from 'payload'\n\nimport React from 'react'\n\nexport * from './TableCellProvider/index.js'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { useTableColumns } from '../TableColumns/index.js'\nimport { TableCellProvider } from './TableCellProvider/index.js'\nimport './index.scss'\n\nexport { TableCellProvider }\n\nconst baseClass = 'table'\n\nexport type Column = {\n Label: React.ReactNode\n accessor: string\n active: boolean\n admin?: FieldBase['admin']\n cellProps?: Partial<CellComponentProps>\n components: {\n Cell: React.ReactNode\n Heading: React.ReactNode\n }\n name: FieldBase['name']\n type: keyof FieldTypes\n}\n\nexport type Props = {\n columns?: Column[]\n customCellContext?: Record<string, unknown>\n data: Record<string, unknown>[]\n fieldMap: FieldMap\n}\n\nexport const Table: React.FC<Props> = ({ columns: columnsFromProps, customCellContext, data }) => {\n const { columns: columnsFromContext } = useTableColumns()\n\n const columns = columnsFromProps || columnsFromContext\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div className={baseClass}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.components.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data.map((row, rowIndex) => (\n <tr className={`row-${rowIndex + 1}`} key={rowIndex}>\n {activeColumns.map((col, colIndex) => {\n return (\n <td className={`cell-${col.accessor}`} key={colIndex}>\n <TableCellProvider\n cellData={row[col.accessor]}\n cellProps={col?.cellProps}\n columnIndex={colIndex}\n customCellContext={customCellContext}\n rowData={row}\n >\n {col.components.Cell}\n </TableCellProvider>\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["React","useTableColumns","TableCellProvider","baseClass","Table","columns","columnsFromProps","customCellContext","data","columnsFromContext","activeColumns","filter","col","active","length","div","className","table","cellPadding","cellSpacing","thead","tr","map","i","th","id","accessor","components","Heading","tbody","row","rowIndex","colIndex","td","cellData","cellProps","columnIndex","rowData","Cell"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,cAAc,+BAA8B;AAI5C,SAASC,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,iBAAiB,QAAQ,+BAA8B;AAChE,OAAO,eAAc;AAErB,SAASA,iBAAiB,GAAE;AAE5B,MAAMC,YAAY;AAuBlB,OAAO,MAAMC,QAAyB,CAAC,EAAEC,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,IAAI,EAAE;IAC3F,MAAM,EAAEH,SAASI,kBAAkB,EAAE,GAAGR;IAExC,MAAMI,UAAUC,oBAAoBG;IAEpC,MAAMC,gBAAgBL,SAASM,OAAO,CAACC,MAAQA,KAAKC;IAEpD,IAAI,CAACH,iBAAiBA,cAAcI,MAAM,KAAK,GAAG;QAChD,qBAAO,KAACC;sBAAI;;IACd;IAEA,qBACE,KAACA;QAAIC,WAAWb;kBACd,cAAA,MAACc;YAAMC,aAAY;YAAIC,aAAY;;8BACjC,KAACC;8BACC,cAAA,KAACC;kCACEX,cAAcY,GAAG,CAAC,CAACV,KAAKW,kBACvB,KAACC;gCAAGC,IAAI,CAAC,QAAQ,EAAEb,IAAIc,QAAQ,CAAC,CAAC;0CAC9Bd,IAAIe,UAAU,CAACC,OAAO;+BADeL;;;8BAM9C,KAACM;8BACErB,QACCA,KAAKc,GAAG,CAAC,CAACQ,KAAKC,yBACb,KAACV;4BAAGL,WAAW,CAAC,IAAI,EAAEe,WAAW,EAAE,CAAC;sCACjCrB,cAAcY,GAAG,CAAC,CAACV,KAAKoB;gCACvB,qBACE,KAACC;oCAAGjB,WAAW,CAAC,KAAK,EAAEJ,IAAIc,QAAQ,CAAC,CAAC;8CACnC,cAAA,KAACxB;wCACCgC,UAAUJ,GAAG,CAAClB,IAAIc,QAAQ,CAAC;wCAC3BS,WAAWvB,KAAKuB;wCAChBC,aAAaJ;wCACbzB,mBAAmBA;wCACnB8B,SAASP;kDAERlB,IAAIe,UAAU,CAACW,IAAI;;mCARoBN;4BAYhD;2BAfyCD;;;;;AAsBzD,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, FieldBase, FieldMap, FieldTypes } from 'payload'\n\nimport React from 'react'\n\nexport * from './TableCellProvider/index.js'\n\nimport { useTableColumns } from '../TableColumns/index.js'\nimport { TableCellProvider } from './TableCellProvider/index.js'\nimport './index.scss'\n\nexport { TableCellProvider }\n\nconst baseClass = 'table'\n\nexport type Column = {\n Label: React.ReactNode\n accessor: string\n active: boolean\n admin?: FieldBase['admin']\n cellProps?: Partial<CellComponentProps>\n components: {\n Cell: React.ReactNode\n Heading: React.ReactNode\n }\n name: FieldBase['name']\n type: keyof FieldTypes\n}\n\nexport type Props = {\n columns?: Column[]\n customCellContext?: Record<string, unknown>\n data: Record<string, unknown>[]\n fieldMap: FieldMap\n}\n\nexport const Table: React.FC<Props> = ({ columns: columnsFromProps, customCellContext, data }) => {\n const { columns: columnsFromContext } = useTableColumns()\n\n const columns = columnsFromProps || columnsFromContext\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div className={baseClass}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.components.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data.map((row, rowIndex) => (\n <tr className={`row-${rowIndex + 1}`} key={rowIndex}>\n {activeColumns.map((col, colIndex) => {\n return (\n <td className={`cell-${col.accessor}`} key={colIndex}>\n <TableCellProvider\n cellData={row[col.accessor]}\n cellProps={col?.cellProps}\n columnIndex={colIndex}\n customCellContext={customCellContext}\n rowData={row}\n >\n {col.components.Cell}\n </TableCellProvider>\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"names":["React","useTableColumns","TableCellProvider","baseClass","Table","columns","columnsFromProps","customCellContext","data","columnsFromContext","activeColumns","filter","col","active","length","div","className","table","cellPadding","cellSpacing","thead","tr","map","i","th","id","accessor","components","Heading","tbody","row","rowIndex","colIndex","td","cellData","cellProps","columnIndex","rowData","Cell"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,cAAc,+BAA8B;AAE5C,SAASC,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,iBAAiB,QAAQ,+BAA8B;AAChE,OAAO,eAAc;AAErB,SAASA,iBAAiB,GAAE;AAE5B,MAAMC,YAAY;AAuBlB,OAAO,MAAMC,QAAyB,CAAC,EAAEC,SAASC,gBAAgB,EAAEC,iBAAiB,EAAEC,IAAI,EAAE;IAC3F,MAAM,EAAEH,SAASI,kBAAkB,EAAE,GAAGR;IAExC,MAAMI,UAAUC,oBAAoBG;IAEpC,MAAMC,gBAAgBL,SAASM,OAAO,CAACC,MAAQA,KAAKC;IAEpD,IAAI,CAACH,iBAAiBA,cAAcI,MAAM,KAAK,GAAG;QAChD,qBAAO,KAACC;sBAAI;;IACd;IAEA,qBACE,KAACA;QAAIC,WAAWb;kBACd,cAAA,MAACc;YAAMC,aAAY;YAAIC,aAAY;;8BACjC,KAACC;8BACC,cAAA,KAACC;kCACEX,cAAcY,GAAG,CAAC,CAACV,KAAKW,kBACvB,KAACC;gCAAGC,IAAI,CAAC,QAAQ,EAAEb,IAAIc,QAAQ,CAAC,CAAC;0CAC9Bd,IAAIe,UAAU,CAACC,OAAO;+BADeL;;;8BAM9C,KAACM;8BACErB,QACCA,KAAKc,GAAG,CAAC,CAACQ,KAAKC,yBACb,KAACV;4BAAGL,WAAW,CAAC,IAAI,EAAEe,WAAW,EAAE,CAAC;sCACjCrB,cAAcY,GAAG,CAAC,CAACV,KAAKoB;gCACvB,qBACE,KAACC;oCAAGjB,WAAW,CAAC,KAAK,EAAEJ,IAAIc,QAAQ,CAAC,CAAC;8CACnC,cAAA,KAACxB;wCACCgC,UAAUJ,GAAG,CAAClB,IAAIc,QAAQ,CAAC;wCAC3BS,WAAWvB,KAAKuB;wCAChBC,aAAaJ;wCACbzB,mBAAmBA;wCACnB8B,SAASP;kDAERlB,IAAIe,UAAU,CAACW,IAAI;;mCARoBN;4BAYhD;2BAfyCD;;;;;AAsBzD,EAAC"}
@@ -1,5 +1,4 @@
1
- import { type CellComponentProps, type SanitizedCollectionConfig } from 'payload';
2
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
1
+ import type { CellComponentProps, FieldMap, SanitizedCollectionConfig } from 'payload';
3
2
  import type { ColumnPreferences } from '../../providers/ListInfo/index.js';
4
3
  import type { Column } from '../Table/index.js';
5
4
  type Args = {
@@ -1 +1 @@
1
- {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAGjF,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AACD,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAuJnD,CAAA"}
1
+ {"version":3,"file":"buildColumnState.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,QAAQ,EAAe,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAInG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAW/C,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAA;IACxC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CAC7D,CAAA;AACD,eAAO,MAAM,gBAAgB,SAAU,IAAI,KAAG,MAAM,EAuJnD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport { type CellComponentProps, type SanitizedCollectionConfig } from 'payload'\nimport React from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\nconst fieldIsPresentationalOnly = (field: MappedField): boolean => field.type === 'ui'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fieldMap: FieldMap\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fieldMap, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fieldMap)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) return 0\n if (aIndex === -1) return 1\n if (bIndex === -1) return -1\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const isFirstActiveColumn = activeColumnsIndices[0] === index\n\n const name = 'name' in field ? field.name : undefined\n\n const Cell =\n field.CustomCell !== undefined ? (\n field.CustomCell\n ) : (\n <DefaultCell {...field.cellComponentProps} />\n )\n\n const CustomLabelToRender =\n field &&\n 'fieldComponentProps' in field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : undefined\n\n const Label = (\n <FieldLabel\n CustomLabel={CustomLabelToRender}\n label={field.fieldComponentProps?.label}\n {...(field.fieldComponentProps?.labelProps || {})}\n unstyled\n />\n )\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n Label={Label}\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n label={\n 'fieldComponentProps' in field && 'label' in field.fieldComponentProps\n ? field.fieldComponentProps.label\n : undefined\n }\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n name,\n type: field.type,\n Label,\n accessor: name,\n active,\n admin: {\n disableListColumn: field.disableListColumn,\n disableListFilter: field.disableListFilter,\n },\n cellProps: {\n ...field.cellComponentProps,\n ...cellProps?.[index],\n link: isFirstActiveColumn,\n relationTo:\n field.type === 'relationship' && 'relationTo' in field.fieldComponentProps\n ? field.fieldComponentProps.relationTo\n : undefined,\n },\n components: {\n Cell,\n Heading,\n },\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n name: '',\n accessor: '_select',\n active: true,\n components: {\n Cell: <SelectRow />,\n Heading: <SelectAll />,\n },\n label: null,\n })\n }\n\n return sorted\n}\n"],"names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","fieldIsPresentationalOnly","field","type","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fieldMap","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","isFirstActiveColumn","undefined","Cell","CustomCell","cellComponentProps","CustomLabelToRender","fieldComponentProps","CustomLabel","Label","label","labelProps","unstyled","fieldAffectsDataSubFields","Heading","disable","admin","disableListColumn","disableListFilter","link","relationTo","components"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAO;AAMzB,SAASC,UAAU,QAAQ,mCAAkC;AAC7D,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,UAAU,QAAQ,yBAAwB;AACnD,SAASC,WAAW,QAAQ,gCAA+B;AAE3D,MAAMC,4BAA4B,CAACC,QAAgCA,MAAMC,IAAI,KAAK;AAUlF,OAAO,MAAMC,mBAAmB,CAACC;IAC/B,MAAM,EAAEC,SAAS,EAAEC,iBAAiB,EAAEC,OAAO,EAAEC,mBAAmB,EAAEC,QAAQ,EAAEC,UAAU,EAAE,GAAGN;IAE7F,IAAIO,iBAAiBhB,gBAAgBc;IAErC,2CAA2C;IAC3C,6EAA6E;IAC7E,wFAAwF;IACxF,MAAMG,eAAeD,eAAeE,SAAS,CAAC,CAACZ,QAAUA,MAAMa,IAAI,KAAK;IAExE,IAAIF,eAAe,CAAC,GAAG;QACrB,MAAMG,UAAUJ,eAAeK,MAAM,CAACJ,cAAc,EAAE,CAAC,EAAE;QACzDD,eAAeM,OAAO,CAACF;IACzB;IAEA,MAAMG,uBAAuBR,aACzBC,eAAeE,SAAS,CAAC,CAACZ,QAAUA,MAAMa,IAAI,KAAKJ,cACnD,CAAC;IAEL,IAAIQ,uBAAuB,CAAC,GAAG;QAC7B,MAAMC,kBAAkBR,eAAeK,MAAM,CAACE,sBAAsB,EAAE,CAAC,EAAE;QACzEP,eAAeM,OAAO,CAACE;IACzB;IAEA,MAAMC,SAASd,qBAAqBC;IAEpC,IAAIa,QAAQ;QACV,0EAA0E;QAC1ET,iBAAiBA,eAAeU,IAAI,CAAC,CAACC,GAAGC;YACvC,MAAMC,SAASJ,OAAOP,SAAS,CAAC,CAACY,SAAW,UAAUH,KAAKG,OAAOC,QAAQ,KAAKJ,EAAER,IAAI;YACrF,MAAMa,SAASP,OAAOP,SAAS,CAAC,CAACY,SAAW,UAAUF,KAAKE,OAAOC,QAAQ,KAAKH,EAAET,IAAI;YACrF,IAAIU,WAAW,CAAC,KAAKG,WAAW,CAAC,GAAG,OAAO;YAC3C,IAAIH,WAAW,CAAC,GAAG,OAAO;YAC1B,IAAIG,WAAW,CAAC,GAAG,OAAO,CAAC;YAC3B,OAAOH,SAASG;QAClB;IACF;IAEA,MAAMC,uBAAuB,EAAE;IAE/B,MAAMC,SAASlB,eAAemB,MAAM,CAAC,CAACC,KAAK9B,OAAO+B;QAChD,MAAMC,mBAAmB3B,mBAAmB4B,KAC1C,CAACC,aAAe,UAAUlC,SAASkC,WAAWT,QAAQ,KAAKzB,MAAMa,IAAI;QAGvE,IAAIsB,SAAS;QAEb,IAAIH,kBAAkB;YACpBG,SAASH,iBAAiBG,MAAM;QAClC,OAAO,IAAI7B,WAAW8B,MAAMC,OAAO,CAAC/B,YAAYA,QAAQgC,MAAM,GAAG,GAAG;YAClEH,SAAS7B,QAAQ2B,IAAI,CAAC,CAACT,SAAWA,OAAOC,QAAQ,KAAKzB,MAAMa,IAAI,GAAGsB;QACrE,OAAO,IAAIR,qBAAqBW,MAAM,GAAG,GAAG;YAC1CH,SAAS;QACX;QAEA,IAAIA,UAAU,CAACR,qBAAqBY,QAAQ,CAACR,QAAQ;YACnDJ,qBAAqBa,IAAI,CAACT;QAC5B;QAEA,MAAMU,sBAAsBd,oBAAoB,CAAC,EAAE,KAAKI;QAExD,MAAMlB,OAAO,UAAUb,QAAQA,MAAMa,IAAI,GAAG6B;QAE5C,MAAMC,OACJ3C,MAAM4C,UAAU,KAAKF,YACnB1C,MAAM4C,UAAU,iBAEhB,KAAC9C;YAAa,GAAGE,MAAM6C,kBAAkB;;QAG7C,MAAMC,sBACJ9C,SACA,yBAAyBA,SACzB,iBAAiBA,MAAM+C,mBAAmB,IAC1C/C,MAAM+C,mBAAmB,CAACC,WAAW,KAAKN,YACtC1C,MAAM+C,mBAAmB,CAACC,WAAW,GACrCN;QAEN,MAAMO,sBACJ,KAACxD;YACCuD,aAAaF;YACbI,OAAOlD,MAAM+C,mBAAmB,EAAEG;YACjC,GAAIlD,MAAM+C,mBAAmB,EAAEI,cAAc,CAAC,CAAC;YAChDC,QAAQ;;QAIZ,MAAMC,4BACJrD,SACAA,MAAMC,IAAI,IACTD,CAAAA,MAAMC,IAAI,KAAK,WAAWD,MAAMC,IAAI,KAAK,WAAWD,MAAMC,IAAI,KAAK,QAAO;QAE7E,MAAMqD,wBACJ,KAACzD;YACCoD,OAAOA;YACPM,SAASF,6BAA6BtD,0BAA0BC,UAAU0C;YAC1EQ,OACE,yBAAyBlD,SAAS,WAAWA,MAAM+C,mBAAmB,GAClE/C,MAAM+C,mBAAmB,CAACG,KAAK,GAC/BR;YAEN7B,MAAM,UAAUb,QAAQA,MAAMa,IAAI,GAAG6B;;QAIzC,IAAI1C,OAAO;YACT,MAAMwB,SAAiB;gBACrBX;gBACAZ,MAAMD,MAAMC,IAAI;gBAChBgD;gBACAxB,UAAUZ;gBACVsB;gBACAqB,OAAO;oBACLC,mBAAmBzD,MAAMyD,iBAAiB;oBAC1CC,mBAAmB1D,MAAM0D,iBAAiB;gBAC5C;gBACAtD,WAAW;oBACT,GAAGJ,MAAM6C,kBAAkB;oBAC3B,GAAGzC,WAAW,CAAC2B,MAAM;oBACrB4B,MAAMlB;oBACNmB,YACE5D,MAAMC,IAAI,KAAK,kBAAkB,gBAAgBD,MAAM+C,mBAAmB,GACtE/C,MAAM+C,mBAAmB,CAACa,UAAU,GACpClB;gBACR;gBACAmB,YAAY;oBACVlB;oBACAW;gBACF;YACF;YAEAxB,IAAIU,IAAI,CAAChB;QACX;QAEA,OAAOM;IACT,GAAG,EAAE;IAEL,IAAIvB,qBAAqB;QACvBqB,OAAOZ,OAAO,CAAC;YACbH,MAAM;YACNY,UAAU;YACVU,QAAQ;YACR0B,YAAY;gBACVlB,oBAAM,KAAC/C;gBACP0D,uBAAS,KAAC3D;YACZ;YACAuD,OAAO;QACT;IACF;IAEA,OAAOtB;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { CellComponentProps, FieldMap, MappedField, SanitizedCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\nconst fieldIsPresentationalOnly = (field: MappedField): boolean => field.type === 'ui'\n\ntype Args = {\n cellProps: Partial<CellComponentProps>[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n fieldMap: FieldMap\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\nexport const buildColumnState = (args: Args): Column[] => {\n const { cellProps, columnPreferences, columns, enableRowSelections, fieldMap, useAsTitle } = args\n\n let sortedFieldMap = flattenFieldMap(fieldMap)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) return 0\n if (aIndex === -1) return 1\n if (bIndex === -1) return -1\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const isFirstActiveColumn = activeColumnsIndices[0] === index\n\n const name = 'name' in field ? field.name : undefined\n\n const Cell =\n field.CustomCell !== undefined ? (\n field.CustomCell\n ) : (\n <DefaultCell {...field.cellComponentProps} />\n )\n\n const CustomLabelToRender =\n field &&\n 'fieldComponentProps' in field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : undefined\n\n const Label = (\n <FieldLabel\n CustomLabel={CustomLabelToRender}\n label={field.fieldComponentProps?.label}\n {...(field.fieldComponentProps?.labelProps || {})}\n unstyled\n />\n )\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n Label={Label}\n disable={fieldAffectsDataSubFields || fieldIsPresentationalOnly(field) || undefined}\n label={\n 'fieldComponentProps' in field && 'label' in field.fieldComponentProps\n ? field.fieldComponentProps.label\n : undefined\n }\n name={'name' in field ? field.name : undefined}\n />\n )\n\n if (field) {\n const column: Column = {\n name,\n type: field.type,\n Label,\n accessor: name,\n active,\n admin: {\n disableListColumn: field.disableListColumn,\n disableListFilter: field.disableListFilter,\n },\n cellProps: {\n ...field.cellComponentProps,\n ...cellProps?.[index],\n link: isFirstActiveColumn,\n relationTo:\n field.type === 'relationship' && 'relationTo' in field.fieldComponentProps\n ? field.fieldComponentProps.relationTo\n : undefined,\n },\n components: {\n Cell,\n Heading,\n },\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n name: '',\n accessor: '_select',\n active: true,\n components: {\n Cell: <SelectRow />,\n Heading: <SelectAll />,\n },\n label: null,\n })\n }\n\n return sorted\n}\n"],"names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","fieldIsPresentationalOnly","field","type","buildColumnState","args","cellProps","columnPreferences","columns","enableRowSelections","fieldMap","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","isFirstActiveColumn","undefined","Cell","CustomCell","cellComponentProps","CustomLabelToRender","fieldComponentProps","CustomLabel","Label","label","labelProps","unstyled","fieldAffectsDataSubFields","Heading","disable","admin","disableListColumn","disableListFilter","link","relationTo","components"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
1
+ import type { FieldMap } from 'payload';
2
2
  export declare const filterFields: (fieldMap: FieldMap) => FieldMap;
3
3
  //# sourceMappingURL=filterFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterFields.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/filterFields.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,yDAAyD,CAAA;AAIpG,eAAO,MAAM,YAAY,aAAc,QAAQ,KAAG,QA2BjD,CAAA"}
1
+ {"version":3,"file":"filterFields.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/filterFields.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAA;AAIpD,eAAO,MAAM,YAAY,aAAc,QAAQ,KAAG,QA2BjD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/TableColumns/filterFields.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\n// 1. Skips fields that are hidden, disabled, or presentational-only (i.e. `ui` fields)\n// 2. Maps through top-level `tabs` fields and filters out the same\nexport const filterFields = (fieldMap: FieldMap): FieldMap => {\n const shouldSkipField = (field: MappedField): boolean =>\n (field.type !== 'ui' && field.disabled === true) || field?.disableListColumn === true\n\n const fields: FieldMap = fieldMap.reduce((formatted, field) => {\n if (shouldSkipField(field)) {\n return formatted\n }\n\n const formattedField: MappedField =\n field.type === 'tabs' && 'tabs' in field.fieldComponentProps\n ? {\n ...field,\n fieldComponentProps: {\n ...field.fieldComponentProps,\n tabs: field.fieldComponentProps.tabs.map((tab) => ({\n ...tab,\n fieldMap: tab.fieldMap.filter((tabField) => !shouldSkipField(tabField)),\n })),\n },\n }\n : field\n\n return [...formatted, formattedField]\n }, [])\n\n return fields\n}\n"],"names":["filterFields","fieldMap","shouldSkipField","field","type","disabled","disableListColumn","fields","reduce","formatted","formattedField","fieldComponentProps","tabs","map","tab","filter","tabField"],"mappings":"AAAA;AAGA,uFAAuF;AACvF,mEAAmE;AACnE,OAAO,MAAMA,eAAe,CAACC;IAC3B,MAAMC,kBAAkB,CAACC,QACvB,AAACA,MAAMC,IAAI,KAAK,QAAQD,MAAME,QAAQ,KAAK,QAASF,OAAOG,sBAAsB;IAEnF,MAAMC,SAAmBN,SAASO,MAAM,CAAC,CAACC,WAAWN;QACnD,IAAID,gBAAgBC,QAAQ;YAC1B,OAAOM;QACT;QAEA,MAAMC,iBACJP,MAAMC,IAAI,KAAK,UAAU,UAAUD,MAAMQ,mBAAmB,GACxD;YACE,GAAGR,KAAK;YACRQ,qBAAqB;gBACnB,GAAGR,MAAMQ,mBAAmB;gBAC5BC,MAAMT,MAAMQ,mBAAmB,CAACC,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;wBACjD,GAAGA,GAAG;wBACNb,UAAUa,IAAIb,QAAQ,CAACc,MAAM,CAAC,CAACC,WAAa,CAACd,gBAAgBc;oBAC/D,CAAA;YACF;QACF,IACAb;QAEN,OAAO;eAAIM;YAAWC;SAAe;IACvC,GAAG,EAAE;IAEL,OAAOH;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/TableColumns/filterFields.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap, MappedField } from 'payload'\n\n// 1. Skips fields that are hidden, disabled, or presentational-only (i.e. `ui` fields)\n// 2. Maps through top-level `tabs` fields and filters out the same\nexport const filterFields = (fieldMap: FieldMap): FieldMap => {\n const shouldSkipField = (field: MappedField): boolean =>\n (field.type !== 'ui' && field.disabled === true) || field?.disableListColumn === true\n\n const fields: FieldMap = fieldMap.reduce((formatted, field) => {\n if (shouldSkipField(field)) {\n return formatted\n }\n\n const formattedField: MappedField =\n field.type === 'tabs' && 'tabs' in field.fieldComponentProps\n ? {\n ...field,\n fieldComponentProps: {\n ...field.fieldComponentProps,\n tabs: field.fieldComponentProps.tabs.map((tab) => ({\n ...tab,\n fieldMap: tab.fieldMap.filter((tabField) => !shouldSkipField(tabField)),\n })),\n },\n }\n : field\n\n return [...formatted, formattedField]\n }, [])\n\n return fields\n}\n"],"names":["filterFields","fieldMap","shouldSkipField","field","type","disabled","disableListColumn","fields","reduce","formatted","formattedField","fieldComponentProps","tabs","map","tab","filter","tabField"],"mappings":"AAAA;AAGA,uFAAuF;AACvF,mEAAmE;AACnE,OAAO,MAAMA,eAAe,CAACC;IAC3B,MAAMC,kBAAkB,CAACC,QACvB,AAACA,MAAMC,IAAI,KAAK,QAAQD,MAAME,QAAQ,KAAK,QAASF,OAAOG,sBAAsB;IAEnF,MAAMC,SAAmBN,SAASO,MAAM,CAAC,CAACC,WAAWN;QACnD,IAAID,gBAAgBC,QAAQ;YAC1B,OAAOM;QACT;QAEA,MAAMC,iBACJP,MAAMC,IAAI,KAAK,UAAU,UAAUD,MAAMQ,mBAAmB,GACxD;YACE,GAAGR,KAAK;YACRQ,qBAAqB;gBACnB,GAAGR,MAAMQ,mBAAmB;gBAC5BC,MAAMT,MAAMQ,mBAAmB,CAACC,IAAI,CAACC,GAAG,CAAC,CAACC,MAAS,CAAA;wBACjD,GAAGA,GAAG;wBACNb,UAAUa,IAAIb,QAAQ,CAACc,MAAM,CAAC,CAACC,WAAa,CAACd,gBAAgBc;oBAC/D,CAAA;YACF;QACF,IACAb;QAEN,OAAO;eAAIM;YAAWC;SAAe;IACvC,GAAG,EAAE;IAEL,OAAOH;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js';
1
+ import type { FieldMap, MappedField } from 'payload';
2
2
  import type { ColumnPreferences } from '../../providers/ListInfo/index.js';
3
3
  export declare function fieldAffectsData(field: MappedField): boolean;
4
4
  export declare const getInitialColumns: (fieldMap: FieldMap, useAsTitle: string, defaultColumns: string[]) => ColumnPreferences;
@@ -1 +1 @@
1
- {"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAA;AACpG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE5D;AA4BD,eAAO,MAAM,iBAAiB,aAClB,QAAQ,cACN,MAAM,kBACF,MAAM,EAAE,KACvB,iBAoBF,CAAA"}
1
+ {"version":3,"file":"getInitialColumns.d.ts","sourceRoot":"","sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AAE1E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE5D;AA4BD,eAAO,MAAM,iBAAiB,aAClB,QAAQ,cACN,MAAM,kBACF,MAAM,EAAE,KACvB,iBAoBF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"sourcesContent":["import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\n\nexport function fieldAffectsData(field: MappedField): boolean {\n return 'name' in field && field.type !== 'ui'\n}\n\nconst getRemainingColumns = (fieldMap: FieldMap, useAsTitle: string): ColumnPreferences =>\n fieldMap.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fieldMap' in field.fieldComponentProps) {\n return [...remaining, ...getRemainingColumns(field.fieldComponentProps.fieldMap, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n return [\n ...remaining,\n ...field.fieldComponentProps.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fieldMap, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\nexport const getInitialColumns = (\n fieldMap: FieldMap,\n useAsTitle: string,\n defaultColumns: string[],\n): ColumnPreferences => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fieldMap, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n accessor: column,\n active: true,\n }))\n}\n"],"names":["fieldAffectsData","field","type","getRemainingColumns","fieldMap","useAsTitle","reduce","remaining","name","fieldComponentProps","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column","accessor","active"],"mappings":"AAGA,OAAO,SAASA,iBAAiBC,KAAkB;IACjD,OAAO,UAAUA,SAASA,MAAMC,IAAI,KAAK;AAC3C;AAEA,MAAMC,sBAAsB,CAACC,UAAoBC,aAC/CD,SAASE,MAAM,CAAC,CAACC,WAAWN;QAC1B,IAAID,iBAAiBC,UAAUA,MAAMO,IAAI,KAAKH,YAAY;YACxD,OAAOE;QACT;QAEA,IAAI,CAACP,iBAAiBC,UAAU,cAAcA,MAAMQ,mBAAmB,EAAE;YACvE,OAAO;mBAAIF;mBAAcJ,oBAAoBF,MAAMQ,mBAAmB,CAACL,QAAQ,EAAEC;aAAY;QAC/F;QAEA,IAAIJ,MAAMC,IAAI,KAAK,UAAU,UAAUD,MAAMQ,mBAAmB,EAAE;YAChE,OAAO;mBACFF;mBACAN,MAAMQ,mBAAmB,CAACC,IAAI,CAACJ,MAAM,CACtC,CAACK,iBAAiBC,MAAQ;2BACrBD;2BACC,UAAUC,MAAM;4BAACA,IAAIJ,IAAI;yBAAC,GAAGL,oBAAoBS,IAAIR,QAAQ,EAAEC;qBACpE,EACD,EAAE;aAEL;QACH;QAEA,OAAO;eAAIE;YAAWN,MAAMO,IAAI;SAAC;IACnC,GAAG,EAAE;AAEP,OAAO,MAAMK,oBAAoB,CAC/BT,UACAC,YACAS;IAEA,IAAIC,iBAAiB,EAAE;IAEvB,IAAIC,MAAMC,OAAO,CAACH,mBAAmBA,eAAeI,MAAM,IAAI,GAAG;QAC/DH,iBAAiBD;IACnB,OAAO;QACL,IAAIT,YAAY;YACdU,eAAeI,IAAI,CAACd;QACtB;QAEA,MAAMe,mBAAmBjB,oBAAoBC,UAAUC;QAEvDU,iBAAiBA,eAAeM,MAAM,CAACD;QACvCL,iBAAiBA,eAAeO,KAAK,CAAC,GAAG;IAC3C;IAEA,OAAOP,eAAeQ,GAAG,CAAC,CAACC,SAAY,CAAA;YACrCC,UAAUD;YACVE,QAAQ;QACV,CAAA;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/TableColumns/getInitialColumns.ts"],"sourcesContent":["import type { FieldMap, MappedField } from 'payload'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\n\nexport function fieldAffectsData(field: MappedField): boolean {\n return 'name' in field && field.type !== 'ui'\n}\n\nconst getRemainingColumns = (fieldMap: FieldMap, useAsTitle: string): ColumnPreferences =>\n fieldMap.reduce((remaining, field) => {\n if (fieldAffectsData(field) && field.name === useAsTitle) {\n return remaining\n }\n\n if (!fieldAffectsData(field) && 'fieldMap' in field.fieldComponentProps) {\n return [...remaining, ...getRemainingColumns(field.fieldComponentProps.fieldMap, useAsTitle)]\n }\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n return [\n ...remaining,\n ...field.fieldComponentProps.tabs.reduce(\n (tabFieldColumns, tab) => [\n ...tabFieldColumns,\n ...('name' in tab ? [tab.name] : getRemainingColumns(tab.fieldMap, useAsTitle)),\n ],\n [],\n ),\n ]\n }\n\n return [...remaining, field.name]\n }, [])\n\nexport const getInitialColumns = (\n fieldMap: FieldMap,\n useAsTitle: string,\n defaultColumns: string[],\n): ColumnPreferences => {\n let initialColumns = []\n\n if (Array.isArray(defaultColumns) && defaultColumns.length >= 1) {\n initialColumns = defaultColumns\n } else {\n if (useAsTitle) {\n initialColumns.push(useAsTitle)\n }\n\n const remainingColumns = getRemainingColumns(fieldMap, useAsTitle)\n\n initialColumns = initialColumns.concat(remainingColumns)\n initialColumns = initialColumns.slice(0, 4)\n }\n\n return initialColumns.map((column) => ({\n accessor: column,\n active: true,\n }))\n}\n"],"names":["fieldAffectsData","field","type","getRemainingColumns","fieldMap","useAsTitle","reduce","remaining","name","fieldComponentProps","tabs","tabFieldColumns","tab","getInitialColumns","defaultColumns","initialColumns","Array","isArray","length","push","remainingColumns","concat","slice","map","column","accessor","active"],"mappings":"AAIA,OAAO,SAASA,iBAAiBC,KAAkB;IACjD,OAAO,UAAUA,SAASA,MAAMC,IAAI,KAAK;AAC3C;AAEA,MAAMC,sBAAsB,CAACC,UAAoBC,aAC/CD,SAASE,MAAM,CAAC,CAACC,WAAWN;QAC1B,IAAID,iBAAiBC,UAAUA,MAAMO,IAAI,KAAKH,YAAY;YACxD,OAAOE;QACT;QAEA,IAAI,CAACP,iBAAiBC,UAAU,cAAcA,MAAMQ,mBAAmB,EAAE;YACvE,OAAO;mBAAIF;mBAAcJ,oBAAoBF,MAAMQ,mBAAmB,CAACL,QAAQ,EAAEC;aAAY;QAC/F;QAEA,IAAIJ,MAAMC,IAAI,KAAK,UAAU,UAAUD,MAAMQ,mBAAmB,EAAE;YAChE,OAAO;mBACFF;mBACAN,MAAMQ,mBAAmB,CAACC,IAAI,CAACJ,MAAM,CACtC,CAACK,iBAAiBC,MAAQ;2BACrBD;2BACC,UAAUC,MAAM;4BAACA,IAAIJ,IAAI;yBAAC,GAAGL,oBAAoBS,IAAIR,QAAQ,EAAEC;qBACpE,EACD,EAAE;aAEL;QACH;QAEA,OAAO;eAAIE;YAAWN,MAAMO,IAAI;SAAC;IACnC,GAAG,EAAE;AAEP,OAAO,MAAMK,oBAAoB,CAC/BT,UACAC,YACAS;IAEA,IAAIC,iBAAiB,EAAE;IAEvB,IAAIC,MAAMC,OAAO,CAACH,mBAAmBA,eAAeI,MAAM,IAAI,GAAG;QAC/DH,iBAAiBD;IACnB,OAAO;QACL,IAAIT,YAAY;YACdU,eAAeI,IAAI,CAACd;QACtB;QAEA,MAAMe,mBAAmBjB,oBAAoBC,UAAUC;QAEvDU,iBAAiBA,eAAeM,MAAM,CAACD;QACvCL,iBAAiBA,eAAeO,KAAK,CAAC,GAAG;IAC3C;IAEA,OAAOP,eAAeQ,GAAG,CAAC,CAACC,SAAY,CAAA;YACrCC,UAAUD;YACVE,QAAQ;QACV,CAAA;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAA;AAM1D,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwU7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAG3E,OAAO,KAAK,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAA;AAM1D,OAAO,cAAc,CAAA;AAOrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8U7C,CAAA"}
@@ -225,7 +225,13 @@ export const RelationshipField = (props)=>{
225
225
  });
226
226
  return ()=>{
227
227
  abortControllers.forEach((controller)=>{
228
- if (controller.signal) controller.abort();
228
+ if (controller.signal) {
229
+ try {
230
+ controller.abort();
231
+ } catch (error) {
232
+ // swallow error
233
+ }
234
+ }
229
235
  });
230
236
  };
231
237
  }, [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const { admin: { isSortable } = {}, disabled, hasMany, onChange, relationTo, value } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n const initialRelationMap = () => {\n const map: Map<string, number> = new Map()\n relationSlugs.forEach((relation) => {\n map.set(relation, 1)\n })\n return map\n }\n const nextPageByRelationshipRef = React.useRef<Map<string, number>>(initialRelationMap())\n const partiallyLoadedRelationshipSlugs = React.useRef<string[]>(relationSlugs)\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [collections, hasMultipleRelations, i18n],\n )\n\n const loadRelationOptions = React.useCallback(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const collection = collections.find((coll) => coll.slug === relationSlug)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const pageIndex = nextPageByRelationshipRef.current.get(relationSlug)\n\n if (partiallyLoadedRelationshipSlugs.current.includes(relationSlug)) {\n const query: {\n depth?: number\n limit?: number\n page?: number\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: pageIndex,\n where: {\n and: [],\n },\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (!debouncedSearch) {\n if (data.nextPage) {\n nextPageByRelationshipRef.current.set(relationSlug, data.nextPage)\n } else {\n partiallyLoadedRelationshipSlugs.current =\n partiallyLoadedRelationshipSlugs.current.filter(\n (partiallyLoadedRelation) => partiallyLoadedRelation !== relationSlug,\n )\n }\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e)\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n [addOptions, api, collections, debouncedSearch, i18n.language, serverURL, t],\n )\n\n const loadMoreOptions = React.useCallback(() => {\n if (partiallyLoadedRelationshipSlugs.current.length > 0) {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: partiallyLoadedRelationshipSlugs.current[0],\n })\n }\n }, [loadRelationOptions])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (newSearch) => {\n if (search !== newSearch) {\n setSearch(newSearch)\n }\n },\n [search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * 1. Trigger initial relationship options fetch\n * 2. When search changes, loadRelationOptions will\n * fire off again\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const abortControllers: AbortController[] = []\n relations.forEach((relation) => {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: relation,\n })\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) controller.abort()\n })\n }\n }, [i18n, loadRelationOptions, relationTo])\n\n /**\n * Load any options that were not returned\n * in the first 10 of each relation fetch\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n if (hasMany && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={loadMoreOptions}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","admin","isSortable","disabled","hasMany","onChange","relationTo","value","collections","routes","api","serverURL","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","relationSlugs","initialRelationMap","map","Map","forEach","relation","set","nextPageByRelationshipRef","useRef","partiallyLoadedRelationshipSlugs","addOptions","data","collection","find","coll","slug","type","loadRelationOptions","abortController","relationSlug","fieldToSearch","useAsTitle","pageIndex","current","get","includes","query","depth","limit","page","where","and","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","nextPage","filter","partiallyLoadedRelation","e","aborted","console","error","loadMoreOptions","AbortController","findOptionsByValue","val","matchedOption","opt","some","subOpt","undefined","valueWithRelation","handleInputChange","newSearch","addOptionByID","id","relations","abortControllers","controller","abort","matchedOptions","option","i","classes","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\nimport optionsReducer from './optionsReducer.js'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipField: React.FC<Props> = (props) => {\n const { admin: { isSortable } = {}, disabled, hasMany, onChange, relationTo, value } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const debouncedSearch = useDebounce(search, 300)\n const { i18n, t } = useTranslation()\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n const initialRelationMap = () => {\n const map: Map<string, number> = new Map()\n relationSlugs.forEach((relation) => {\n map.set(relation, 1)\n })\n return map\n }\n const nextPageByRelationshipRef = React.useRef<Map<string, number>>(initialRelationMap())\n const partiallyLoadedRelationshipSlugs = React.useRef<string[]>(relationSlugs)\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = collections.find((coll) => coll.slug === relation)\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [collections, hasMultipleRelations, i18n],\n )\n\n const loadRelationOptions = React.useCallback(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const collection = collections.find((coll) => coll.slug === relationSlug)\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n const pageIndex = nextPageByRelationshipRef.current.get(relationSlug)\n\n if (partiallyLoadedRelationshipSlugs.current.includes(relationSlug)) {\n const query: {\n depth?: number\n limit?: number\n page?: number\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: pageIndex,\n where: {\n and: [],\n },\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (!debouncedSearch) {\n if (data.nextPage) {\n nextPageByRelationshipRef.current.set(relationSlug, data.nextPage)\n } else {\n partiallyLoadedRelationshipSlugs.current =\n partiallyLoadedRelationshipSlugs.current.filter(\n (partiallyLoadedRelation) => partiallyLoadedRelation !== relationSlug,\n )\n }\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e)\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n [addOptions, api, collections, debouncedSearch, i18n.language, serverURL, t],\n )\n\n const loadMoreOptions = React.useCallback(() => {\n if (partiallyLoadedRelationshipSlugs.current.length > 0) {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: partiallyLoadedRelationshipSlugs.current[0],\n })\n }\n }, [loadRelationOptions])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (newSearch) => {\n if (search !== newSearch) {\n setSearch(newSearch)\n }\n },\n [search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * 1. Trigger initial relationship options fetch\n * 2. When search changes, loadRelationOptions will\n * fire off again\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n const abortControllers: AbortController[] = []\n relations.forEach((relation) => {\n const abortController = new AbortController()\n void loadRelationOptions({\n abortController,\n relationSlug: relation,\n })\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (error) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, loadRelationOptions, relationTo])\n\n /**\n * Load any options that were not returned\n * in the first 10 of each relation fetch\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {!errorLoading && (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n if (hasMany && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={loadMoreOptions}\n options={options}\n placeholder={t('general:selectValue')}\n value={valueToRender}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useConfig","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipField","props","admin","isSortable","disabled","hasMany","onChange","relationTo","value","collections","routes","api","serverURL","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","debouncedSearch","i18n","t","relationSlugs","initialRelationMap","map","Map","forEach","relation","set","nextPageByRelationshipRef","useRef","partiallyLoadedRelationshipSlugs","addOptions","data","collection","find","coll","slug","type","loadRelationOptions","abortController","relationSlug","fieldToSearch","useAsTitle","pageIndex","current","get","includes","query","depth","limit","page","where","and","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","nextPage","filter","partiallyLoadedRelation","e","aborted","console","error","loadMoreOptions","AbortController","findOptionsByValue","val","matchedOption","opt","some","subOpt","undefined","valueWithRelation","handleInputChange","newSearch","addOptionByID","id","relations","abortControllers","controller","abort","matchedOptions","option","i","classes","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom","placeholder"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,OAAO,cAAc,CAAA;AAOrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2NpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,OAAO,cAAc,CAAA;AAOrB,OAAO,EAAE,iBAAiB,EAAE,CAAA;AAE5B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8NpD,CAAA"}
@@ -137,10 +137,13 @@ const baseClass = 'where-builder';
137
137
  ]);
138
138
  React.useEffect(()=>{
139
139
  if (shouldUpdateQuery) {
140
- handleWhereChange({
141
- or: conditions
142
- });
143
- setShouldUpdateQuery(false);
140
+ async function handleChange() {
141
+ await handleWhereChange({
142
+ or: conditions
143
+ });
144
+ setShouldUpdateQuery(false);
145
+ }
146
+ void handleChange();
144
147
  }
145
148
  }, [
146
149
  conditions,