payload 1.3.0 → 1.3.1

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 (385) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/components/index.js +1 -1
  3. package/components/styles.css +1 -1
  4. package/dist/admin/api.d.ts +1 -1
  5. package/dist/admin/components/elements/ArrayAction/types.d.ts +1 -1
  6. package/dist/admin/components/elements/Autosave/types.d.ts +1 -1
  7. package/dist/admin/components/elements/Banner/types.d.ts +3 -3
  8. package/dist/admin/components/elements/Button/index.js +19 -13
  9. package/dist/admin/components/elements/Button/index.scss +0 -16
  10. package/dist/admin/components/elements/Button/types.d.ts +3 -3
  11. package/dist/admin/components/elements/Card/types.d.ts +1 -1
  12. package/dist/admin/components/elements/Collapsible/index.scss +5 -1
  13. package/dist/admin/components/elements/Collapsible/types.d.ts +1 -1
  14. package/dist/admin/components/elements/ColumnSelector/types.d.ts +1 -1
  15. package/dist/admin/components/elements/CopyToClipboard/index.js +2 -9
  16. package/dist/admin/components/elements/CopyToClipboard/index.scss +0 -14
  17. package/dist/admin/components/elements/CopyToClipboard/types.d.ts +1 -1
  18. package/dist/admin/components/elements/DatePicker/types.d.ts +6 -6
  19. package/dist/admin/components/elements/DeleteDocument/index.js +1 -1
  20. package/dist/admin/components/elements/DeleteDocument/types.d.ts +1 -1
  21. package/dist/admin/components/elements/DocumentDrawer/index.d.ts +6 -0
  22. package/dist/admin/components/elements/DocumentDrawer/index.js +143 -0
  23. package/dist/admin/components/elements/DocumentDrawer/index.scss +36 -0
  24. package/dist/admin/components/elements/DocumentDrawer/types.d.ts +28 -0
  25. package/dist/admin/components/{forms/field-types/Relationship/AddNew/Modal → elements/DocumentDrawer}/types.js +0 -0
  26. package/dist/admin/components/elements/Drawer/index.d.ts +5 -0
  27. package/dist/admin/components/elements/Drawer/index.js +44 -0
  28. package/dist/admin/components/elements/Drawer/index.scss +86 -0
  29. package/dist/admin/components/elements/Drawer/types.d.ts +13 -0
  30. package/dist/admin/components/elements/Drawer/types.js +1 -0
  31. package/dist/admin/components/elements/DuplicateDocument/types.d.ts +1 -1
  32. package/dist/admin/components/elements/Eyebrow/types.d.ts +1 -1
  33. package/dist/admin/components/elements/FileDetails/Meta/types.d.ts +1 -1
  34. package/dist/admin/components/elements/FileDetails/types.d.ts +1 -1
  35. package/dist/admin/components/elements/GenerateConfirmation/types.d.ts +1 -1
  36. package/dist/admin/components/elements/Gutter/index.d.ts +1 -1
  37. package/dist/admin/components/elements/ListControls/types.d.ts +2 -2
  38. package/dist/admin/components/elements/Localizer/types.d.ts +1 -1
  39. package/dist/admin/components/elements/NavGroup/index.d.ts +1 -1
  40. package/dist/admin/components/elements/Paginator/ClickableArrow/types.d.ts +1 -1
  41. package/dist/admin/components/elements/Paginator/Page/types.d.ts +1 -1
  42. package/dist/admin/components/elements/Paginator/types.d.ts +2 -2
  43. package/dist/admin/components/elements/PerPage/index.d.ts +1 -1
  44. package/dist/admin/components/elements/Pill/types.d.ts +2 -2
  45. package/dist/admin/components/elements/Popup/PopupButton/types.d.ts +1 -1
  46. package/dist/admin/components/elements/Popup/types.d.ts +1 -1
  47. package/dist/admin/components/elements/PreviewButton/types.d.ts +1 -1
  48. package/dist/admin/components/elements/Publish/types.d.ts +1 -1
  49. package/dist/admin/components/elements/ReactSelect/ClearIndicator/index.d.ts +5 -0
  50. package/dist/admin/components/elements/ReactSelect/ClearIndicator/index.js +9 -0
  51. package/dist/admin/components/elements/ReactSelect/ClearIndicator/index.scss +5 -0
  52. package/dist/admin/components/elements/ReactSelect/Control/index.d.ts +4 -0
  53. package/dist/admin/components/elements/ReactSelect/Control/index.js +23 -0
  54. package/dist/admin/components/elements/ReactSelect/MultiValue/index.d.ts +5 -0
  55. package/dist/admin/components/elements/ReactSelect/MultiValue/index.js +39 -0
  56. package/dist/admin/components/elements/ReactSelect/MultiValue/index.scss +15 -0
  57. package/dist/admin/components/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -0
  58. package/dist/admin/components/elements/ReactSelect/MultiValueLabel/index.js +12 -0
  59. package/dist/admin/components/elements/ReactSelect/MultiValueLabel/index.scss +15 -0
  60. package/dist/admin/components/elements/ReactSelect/MultiValueRemove/index.d.ts +5 -0
  61. package/dist/admin/components/elements/ReactSelect/MultiValueRemove/index.js +17 -0
  62. package/dist/admin/components/elements/ReactSelect/MultiValueRemove/index.scss +24 -0
  63. package/dist/admin/components/elements/ReactSelect/ValueContainer/index.d.ts +5 -0
  64. package/dist/admin/components/elements/ReactSelect/ValueContainer/index.js +9 -0
  65. package/dist/admin/components/elements/ReactSelect/ValueContainer/index.scss +33 -0
  66. package/dist/admin/components/elements/ReactSelect/index.js +58 -44
  67. package/dist/admin/components/elements/ReactSelect/index.scss +6 -62
  68. package/dist/admin/components/elements/ReactSelect/types.d.ts +14 -3
  69. package/dist/admin/components/elements/RenderTitle/types.d.ts +1 -1
  70. package/dist/admin/components/elements/SearchFilter/types.d.ts +1 -1
  71. package/dist/admin/components/elements/SortColumn/types.d.ts +1 -1
  72. package/dist/admin/components/elements/SortComplex/types.d.ts +1 -1
  73. package/dist/admin/components/elements/Status/types.d.ts +1 -1
  74. package/dist/admin/components/elements/StepNav/index.js +4 -1
  75. package/dist/admin/components/elements/StepNav/types.d.ts +2 -2
  76. package/dist/admin/components/elements/Table/types.d.ts +2 -2
  77. package/dist/admin/components/elements/Thumbnail/types.d.ts +1 -1
  78. package/dist/admin/components/elements/Tooltip/index.js +24 -9
  79. package/dist/admin/components/elements/Tooltip/index.scss +25 -11
  80. package/dist/admin/components/elements/Tooltip/types.d.ts +3 -1
  81. package/dist/admin/components/elements/UploadCard/types.d.ts +1 -1
  82. package/dist/admin/components/elements/UploadGallery/types.d.ts +1 -1
  83. package/dist/admin/components/elements/VersionsCount/types.d.ts +1 -1
  84. package/dist/admin/components/elements/ViewDescription/types.d.ts +4 -4
  85. package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts +1 -1
  86. package/dist/admin/components/elements/WhereBuilder/Condition/Number/types.d.ts +1 -1
  87. package/dist/admin/components/elements/WhereBuilder/Condition/Relationship/types.d.ts +7 -7
  88. package/dist/admin/components/elements/WhereBuilder/Condition/Text/types.d.ts +1 -1
  89. package/dist/admin/components/elements/WhereBuilder/Condition/types.d.ts +1 -1
  90. package/dist/admin/components/elements/WhereBuilder/types.d.ts +8 -8
  91. package/dist/admin/components/forms/Error/index.js +1 -1
  92. package/dist/admin/components/forms/Error/types.d.ts +1 -1
  93. package/dist/admin/components/forms/FieldDescription/types.d.ts +4 -4
  94. package/dist/admin/components/forms/Form/buildStateFromSchema/addFieldStatePromise.d.ts +1 -1
  95. package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +1 -1
  96. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.d.ts +1 -1
  97. package/dist/admin/components/forms/Form/rows.d.ts +1 -1
  98. package/dist/admin/components/forms/Form/types.d.ts +30 -30
  99. package/dist/admin/components/forms/Label/types.d.ts +1 -1
  100. package/dist/admin/components/forms/RenderFields/types.d.ts +1 -1
  101. package/dist/admin/components/forms/RowLabel/types.d.ts +5 -5
  102. package/dist/admin/components/forms/field-types/Array/index.js +1 -1
  103. package/dist/admin/components/forms/field-types/Array/index.scss +0 -4
  104. package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -1
  105. package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlockSelection/types.d.ts +1 -1
  106. package/dist/admin/components/forms/field-types/Blocks/BlockSelector/BlocksContainer/types.d.ts +1 -1
  107. package/dist/admin/components/forms/field-types/Blocks/BlockSelector/types.d.ts +1 -1
  108. package/dist/admin/components/forms/field-types/Blocks/SectionTitle/types.d.ts +1 -1
  109. package/dist/admin/components/forms/field-types/Blocks/index.scss +0 -4
  110. package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -1
  111. package/dist/admin/components/forms/field-types/Checkbox/types.d.ts +1 -1
  112. package/dist/admin/components/forms/field-types/Code/types.d.ts +1 -1
  113. package/dist/admin/components/forms/field-types/Collapsible/index.scss +0 -4
  114. package/dist/admin/components/forms/field-types/Collapsible/types.d.ts +1 -1
  115. package/dist/admin/components/forms/field-types/DateTime/index.js +4 -1
  116. package/dist/admin/components/forms/field-types/DateTime/types.d.ts +1 -1
  117. package/dist/admin/components/forms/field-types/Email/types.d.ts +1 -1
  118. package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -1
  119. package/dist/admin/components/forms/field-types/HiddenInput/types.d.ts +1 -1
  120. package/dist/admin/components/forms/field-types/Number/types.d.ts +1 -1
  121. package/dist/admin/components/forms/field-types/Password/types.d.ts +1 -1
  122. package/dist/admin/components/forms/field-types/Point/types.d.ts +1 -1
  123. package/dist/admin/components/forms/field-types/RadioGroup/Input.d.ts +1 -1
  124. package/dist/admin/components/forms/field-types/RadioGroup/RadioInput/types.d.ts +1 -1
  125. package/dist/admin/components/forms/field-types/RadioGroup/types.d.ts +2 -2
  126. package/dist/admin/components/forms/field-types/Relationship/AddNew/index.js +55 -35
  127. package/dist/admin/components/forms/field-types/Relationship/AddNew/index.scss +6 -18
  128. package/dist/admin/components/forms/field-types/Relationship/AddNew/types.d.ts +1 -1
  129. package/dist/admin/components/forms/field-types/Relationship/AddNew/useRelatedCollections.js +5 -2
  130. package/dist/admin/components/forms/field-types/Relationship/GetFilterOptions/index.d.ts +1 -1
  131. package/dist/admin/components/forms/field-types/Relationship/createRelationMap.d.ts +2 -2
  132. package/dist/admin/components/forms/field-types/Relationship/findOptionsByValue.d.ts +1 -1
  133. package/dist/admin/components/forms/field-types/Relationship/index.js +11 -1
  134. package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.d.ts +5 -0
  135. package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.js +36 -0
  136. package/dist/admin/components/forms/field-types/Relationship/select-components/MultiValueLabel/index.scss +40 -0
  137. package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.d.ts +5 -0
  138. package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.js +34 -0
  139. package/dist/admin/components/forms/field-types/Relationship/select-components/SingleValue/index.scss +43 -0
  140. package/dist/admin/components/forms/field-types/Relationship/types.d.ts +10 -10
  141. package/dist/admin/components/forms/field-types/RichText/RichText.d.ts +2 -2
  142. package/dist/admin/components/forms/field-types/RichText/elements/link/Modal/types.d.ts +1 -1
  143. package/dist/admin/components/forms/field-types/RichText/elements/relationship/Element/index.js +3 -2
  144. package/dist/admin/components/forms/field-types/RichText/elements/types.d.ts +1 -1
  145. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.d.ts +1 -1
  146. package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/SwapUploadModal/index.d.ts +1 -1
  147. package/dist/admin/components/forms/field-types/RichText/types.d.ts +1 -1
  148. package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -1
  149. package/dist/admin/components/forms/field-types/Select/Input.d.ts +1 -1
  150. package/dist/admin/components/forms/field-types/Select/types.d.ts +1 -1
  151. package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -1
  152. package/dist/admin/components/forms/field-types/Text/Input.d.ts +1 -1
  153. package/dist/admin/components/forms/field-types/Text/types.d.ts +1 -1
  154. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +1 -1
  155. package/dist/admin/components/forms/field-types/Textarea/types.d.ts +1 -1
  156. package/dist/admin/components/forms/field-types/Upload/Add/types.d.ts +1 -1
  157. package/dist/admin/components/forms/field-types/Upload/Input.d.ts +1 -1
  158. package/dist/admin/components/forms/field-types/Upload/SelectExisting/types.d.ts +1 -1
  159. package/dist/admin/components/forms/field-types/Upload/types.d.ts +1 -1
  160. package/dist/admin/components/forms/field-types/index.d.ts +1 -1
  161. package/dist/admin/components/forms/field-types/rowReducer.d.ts +8 -8
  162. package/dist/admin/components/forms/useField/types.d.ts +2 -2
  163. package/dist/admin/components/modals/StayLoggedIn/types.d.ts +1 -1
  164. package/dist/admin/components/templates/Default/types.d.ts +1 -1
  165. package/dist/admin/components/templates/Minimal/types.d.ts +1 -1
  166. package/dist/admin/components/utilities/Auth/index.d.ts +1 -1
  167. package/dist/admin/components/utilities/Auth/types.d.ts +1 -1
  168. package/dist/admin/components/utilities/DocumentInfo/index.d.ts +0 -2
  169. package/dist/admin/components/utilities/DocumentInfo/index.js +30 -1
  170. package/dist/admin/components/utilities/DocumentInfo/types.d.ts +9 -4
  171. package/dist/admin/components/utilities/Meta/types.d.ts +2 -2
  172. package/dist/admin/components/utilities/OperationProvider/index.d.ts +1 -1
  173. package/dist/admin/components/utilities/Preferences/index.d.ts +1 -1
  174. package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts +1 -1
  175. package/dist/admin/components/utilities/Theme/index.d.ts +2 -2
  176. package/dist/admin/components/views/Account/types.d.ts +1 -1
  177. package/dist/admin/components/views/CreateFirstUser/types.d.ts +1 -1
  178. package/dist/admin/components/views/Dashboard/types.d.ts +1 -1
  179. package/dist/admin/components/views/Global/index.js +8 -8
  180. package/dist/admin/components/views/Global/types.d.ts +2 -2
  181. package/dist/admin/components/views/Version/Compare/types.d.ts +5 -5
  182. package/dist/admin/components/views/Version/RenderFieldsToDiff/fields/types.d.ts +2 -2
  183. package/dist/admin/components/views/Version/RenderFieldsToDiff/types.d.ts +1 -1
  184. package/dist/admin/components/views/Version/Restore/types.d.ts +1 -1
  185. package/dist/admin/components/views/Version/SelectLocales/types.d.ts +1 -1
  186. package/dist/admin/components/views/Version/types.d.ts +3 -3
  187. package/dist/admin/components/views/Versions/types.d.ts +1 -1
  188. package/dist/admin/components/views/collections/Edit/Auth/types.d.ts +1 -1
  189. package/dist/admin/components/views/collections/Edit/Upload/types.d.ts +2 -2
  190. package/dist/admin/components/views/collections/Edit/index.js +8 -8
  191. package/dist/admin/components/views/collections/Edit/index.scss +6 -3
  192. package/dist/admin/components/views/collections/Edit/types.d.ts +2 -2
  193. package/dist/admin/components/views/collections/List/Cell/cellTypes.spec.js +11 -2
  194. package/dist/admin/components/views/collections/List/Cell/field-types/Array/index.d.ts +1 -1
  195. package/dist/admin/components/views/collections/List/Cell/field-types/Blocks/index.d.ts +1 -1
  196. package/dist/admin/components/views/collections/List/Cell/field-types/Date/index.d.ts +2 -1
  197. package/dist/admin/components/views/collections/List/Cell/field-types/Date/index.js +4 -2
  198. package/dist/admin/components/views/collections/List/Cell/field-types/Select/index.d.ts +1 -1
  199. package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +2 -1
  200. package/dist/admin/components/views/collections/List/Cell/types.d.ts +1 -1
  201. package/dist/admin/components/views/collections/List/RelationshipProvider/index.d.ts +2 -2
  202. package/dist/admin/components/views/collections/List/RelationshipProvider/reducer.d.ts +3 -3
  203. package/dist/admin/components/views/collections/List/types.d.ts +3 -3
  204. package/dist/admin/hooks/useIntersect.d.ts +1 -1
  205. package/dist/admin/hooks/usePayloadAPI.d.ts +3 -3
  206. package/dist/admin/hooks/useThrottledEffect.d.ts +1 -1
  207. package/dist/admin/scss/type.scss +1 -1
  208. package/dist/admin/utilities/groupNavItems.d.ts +2 -2
  209. package/dist/auth/operations/access.d.ts +3 -3
  210. package/dist/auth/operations/access.js +24 -75
  211. package/dist/auth/operations/forgotPassword.d.ts +2 -2
  212. package/dist/auth/operations/local/forgotPassword.d.ts +1 -1
  213. package/dist/auth/operations/local/login.d.ts +1 -1
  214. package/dist/auth/operations/local/resetPassword.d.ts +1 -1
  215. package/dist/auth/operations/local/unlock.d.ts +1 -1
  216. package/dist/auth/operations/local/verifyEmail.d.ts +1 -1
  217. package/dist/auth/operations/login.d.ts +2 -2
  218. package/dist/auth/operations/logout.d.ts +1 -1
  219. package/dist/auth/operations/me.d.ts +2 -2
  220. package/dist/auth/operations/refresh.d.ts +2 -2
  221. package/dist/auth/operations/registerFirstUser.d.ts +2 -2
  222. package/dist/auth/operations/resetPassword.d.ts +2 -2
  223. package/dist/auth/operations/unlock.d.ts +1 -1
  224. package/dist/auth/operations/verifyEmail.d.ts +1 -1
  225. package/dist/auth/sendVerificationEmail.d.ts +1 -1
  226. package/dist/auth/types.d.ts +20 -14
  227. package/dist/auth/types.js +1 -1
  228. package/dist/collections/buildEndpoints.js +7 -1
  229. package/dist/collections/config/types.d.ts +26 -26
  230. package/dist/collections/graphql/init.js +15 -1
  231. package/dist/collections/graphql/resolvers/create.d.ts +1 -1
  232. package/dist/collections/graphql/resolvers/delete.d.ts +1 -1
  233. package/dist/collections/graphql/resolvers/docAccess.d.ts +9 -0
  234. package/dist/collections/graphql/resolvers/docAccess.js +15 -0
  235. package/dist/collections/graphql/resolvers/find.d.ts +1 -1
  236. package/dist/collections/graphql/resolvers/findByID.d.ts +1 -1
  237. package/dist/collections/graphql/resolvers/findVersionByID.d.ts +1 -1
  238. package/dist/collections/graphql/resolvers/findVersions.d.ts +1 -1
  239. package/dist/collections/graphql/resolvers/restoreVersion.d.ts +1 -1
  240. package/dist/collections/graphql/resolvers/update.d.ts +1 -1
  241. package/dist/collections/graphql/types.d.ts +1 -1
  242. package/dist/collections/init.js +2 -1
  243. package/dist/collections/operations/create.d.ts +1 -1
  244. package/dist/collections/operations/delete.d.ts +1 -1
  245. package/dist/collections/operations/docAccess.d.ts +8 -0
  246. package/dist/collections/operations/docAccess.js +26 -0
  247. package/dist/collections/operations/find.d.ts +1 -1
  248. package/dist/collections/operations/findByID.d.ts +1 -1
  249. package/dist/collections/operations/findVersionByID.d.ts +1 -1
  250. package/dist/collections/operations/findVersions.d.ts +1 -1
  251. package/dist/collections/operations/local/create.d.ts +1 -1
  252. package/dist/collections/operations/local/delete.d.ts +1 -1
  253. package/dist/collections/operations/local/find.d.ts +1 -1
  254. package/dist/collections/operations/local/findByID.d.ts +1 -1
  255. package/dist/collections/operations/local/findVersionByID.d.ts +1 -1
  256. package/dist/collections/operations/local/findVersions.d.ts +1 -1
  257. package/dist/collections/operations/local/restoreVersion.d.ts +1 -1
  258. package/dist/collections/operations/local/update.d.ts +1 -1
  259. package/dist/collections/operations/restoreVersion.d.ts +1 -1
  260. package/dist/collections/operations/update.d.ts +1 -1
  261. package/dist/collections/requestHandlers/create.d.ts +1 -1
  262. package/dist/collections/requestHandlers/delete.d.ts +1 -1
  263. package/dist/collections/requestHandlers/docAccess.d.ts +4 -0
  264. package/dist/collections/requestHandlers/docAccess.js +21 -0
  265. package/dist/collections/requestHandlers/findByID.d.ts +1 -1
  266. package/dist/collections/requestHandlers/findVersionByID.d.ts +1 -1
  267. package/dist/collections/requestHandlers/restoreVersion.d.ts +1 -1
  268. package/dist/collections/requestHandlers/update.d.ts +1 -1
  269. package/dist/config/types.d.ts +18 -18
  270. package/dist/email/types.d.ts +3 -3
  271. package/dist/express/middleware/authenticate.d.ts +1 -1
  272. package/dist/express/middleware/errorHandler.d.ts +1 -1
  273. package/dist/express/responses/formatError.d.ts +1 -1
  274. package/dist/fields/config/types.d.ts +58 -57
  275. package/dist/fields/config/types.js +1 -1
  276. package/dist/fields/getDefaultValue.d.ts +1 -1
  277. package/dist/fields/hooks/afterChange/index.d.ts +1 -1
  278. package/dist/fields/hooks/afterChange/promise.d.ts +1 -1
  279. package/dist/fields/hooks/afterChange/traverseFields.d.ts +1 -1
  280. package/dist/fields/hooks/afterRead/index.d.ts +1 -1
  281. package/dist/fields/hooks/afterRead/promise.d.ts +1 -1
  282. package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +1 -1
  283. package/dist/fields/hooks/afterRead/traverseFields.d.ts +1 -1
  284. package/dist/fields/hooks/beforeChange/index.d.ts +1 -1
  285. package/dist/fields/hooks/beforeChange/promise.d.ts +1 -1
  286. package/dist/fields/hooks/beforeChange/promise.js +1 -7
  287. package/dist/fields/hooks/beforeChange/traverseFields.d.ts +1 -1
  288. package/dist/fields/hooks/beforeValidate/index.d.ts +1 -1
  289. package/dist/fields/hooks/beforeValidate/promise.d.ts +1 -1
  290. package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +1 -1
  291. package/dist/fields/richText/populate.d.ts +1 -1
  292. package/dist/fields/richText/recurseNestedFields.d.ts +1 -1
  293. package/dist/fields/richText/richTextRelationshipPromise.d.ts +2 -2
  294. package/dist/globals/buildEndpoints.js +8 -2
  295. package/dist/globals/config/types.d.ts +11 -11
  296. package/dist/globals/graphql/init.js +12 -1
  297. package/dist/globals/graphql/resolvers/docAccess.d.ts +8 -0
  298. package/dist/globals/graphql/resolvers/docAccess.js +15 -0
  299. package/dist/globals/graphql/resolvers/findVersionByID.d.ts +1 -1
  300. package/dist/globals/graphql/resolvers/findVersions.d.ts +1 -1
  301. package/dist/globals/graphql/resolvers/restoreVersion.d.ts +1 -1
  302. package/dist/globals/graphql/resolvers/update.d.ts +1 -1
  303. package/dist/globals/init.js +2 -1
  304. package/dist/globals/operations/docAccess.d.ts +9 -0
  305. package/dist/globals/operations/docAccess.js +21 -0
  306. package/dist/globals/operations/findOne.d.ts +1 -1
  307. package/dist/globals/operations/findVersionByID.d.ts +1 -1
  308. package/dist/globals/operations/findVersions.d.ts +1 -1
  309. package/dist/globals/operations/local/findOne.d.ts +1 -1
  310. package/dist/globals/operations/local/findVersionByID.d.ts +1 -1
  311. package/dist/globals/operations/local/findVersions.d.ts +1 -1
  312. package/dist/globals/operations/local/restoreVersion.d.ts +1 -1
  313. package/dist/globals/operations/local/update.d.ts +1 -1
  314. package/dist/globals/operations/restoreVersion.d.ts +1 -1
  315. package/dist/globals/operations/update.d.ts +1 -1
  316. package/dist/globals/requestHandlers/docAccess.d.ts +5 -0
  317. package/dist/globals/requestHandlers/docAccess.js +21 -0
  318. package/dist/globals/requestHandlers/findOne.d.ts +2 -2
  319. package/dist/globals/requestHandlers/update.d.ts +2 -2
  320. package/dist/graphql/schema/buildBlockType.d.ts +1 -1
  321. package/dist/graphql/schema/buildMutationInputType.d.ts +1 -1
  322. package/dist/graphql/schema/buildObjectType.d.ts +2 -2
  323. package/dist/graphql/schema/buildPoliciesType.d.ts +28 -0
  324. package/dist/graphql/schema/buildPoliciesType.js +63 -27
  325. package/dist/mongoose/buildSchema.d.ts +1 -1
  326. package/dist/mongoose/buildSchema.js +7 -1
  327. package/dist/mongoose/buildSortParam.d.ts +1 -1
  328. package/dist/mongoose/getLocalizedSortProperty.d.ts +1 -1
  329. package/dist/mongoose/types.d.ts +1 -1
  330. package/dist/preferences/requestHandlers/update.d.ts +2 -2
  331. package/dist/preferences/types.d.ts +8 -8
  332. package/dist/translations/de.json +2 -0
  333. package/dist/translations/en.json +2 -0
  334. package/dist/translations/es.json +2 -0
  335. package/dist/translations/fr.json +2 -0
  336. package/dist/translations/index.d.ts +32 -0
  337. package/dist/translations/it.json +2 -0
  338. package/dist/translations/ja.json +2 -0
  339. package/dist/translations/my.json +2 -0
  340. package/dist/translations/nb.json +2 -0
  341. package/dist/translations/nl.json +2 -0
  342. package/dist/translations/pl.json +2 -0
  343. package/dist/translations/pt.json +2 -0
  344. package/dist/translations/ru.json +2 -0
  345. package/dist/translations/sv.json +2 -0
  346. package/dist/translations/th.json +80 -78
  347. package/dist/translations/tr.json +2 -0
  348. package/dist/translations/type.d.ts +1 -1
  349. package/dist/translations/vi.json +2 -0
  350. package/dist/types/index.d.ts +8 -5
  351. package/dist/types/index.js +1 -1
  352. package/dist/uploads/generateFileData.d.ts +2 -2
  353. package/dist/uploads/getBaseFields.d.ts +1 -1
  354. package/dist/uploads/getImageSize.d.ts +1 -1
  355. package/dist/uploads/imageResizer.d.ts +2 -2
  356. package/dist/uploads/types.d.ts +10 -10
  357. package/dist/utilities/getEntityPolicies.d.ts +19 -0
  358. package/dist/utilities/getEntityPolicies.js +156 -0
  359. package/dist/utilities/logger.d.ts +1 -1
  360. package/dist/utilities/telemetry/events/adminInit.d.ts +1 -1
  361. package/dist/utilities/telemetry/events/serverInit.d.ts +1 -1
  362. package/dist/utilities/telemetry/index.d.ts +4 -4
  363. package/dist/versions/cleanUpFailedVersion.d.ts +1 -1
  364. package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +1 -1
  365. package/dist/versions/drafts/saveCollectionDraft.d.ts +1 -1
  366. package/dist/versions/drafts/saveGlobalDraft.d.ts +1 -1
  367. package/dist/versions/enforceMaxVersions.d.ts +1 -1
  368. package/dist/versions/ensurePublishedCollectionVersion.d.ts +1 -1
  369. package/dist/versions/ensurePublishedGlobalVersion.d.ts +1 -1
  370. package/dist/versions/getLatestCollectionVersion.d.ts +1 -1
  371. package/dist/versions/getLatestGlobalVersion.d.ts +1 -1
  372. package/dist/versions/saveCollectionVersion.d.ts +1 -1
  373. package/dist/versions/saveGlobalVersion.d.ts +1 -1
  374. package/dist/versions/shouldIncrementVersionCount.d.ts +1 -1
  375. package/dist/versions/types.d.ts +7 -7
  376. package/docs/admin/hooks.mdx +19 -17
  377. package/docs/authentication/operations.mdx +2 -0
  378. package/docs/graphql/overview.mdx +1 -1
  379. package/package.json +4 -3
  380. package/dist/admin/components/forms/field-types/Relationship/AddNew/Modal/index.d.ts +0 -4
  381. package/dist/admin/components/forms/field-types/Relationship/AddNew/Modal/index.js +0 -69
  382. package/dist/admin/components/forms/field-types/Relationship/AddNew/Modal/index.scss +0 -117
  383. package/dist/admin/components/forms/field-types/Relationship/AddNew/Modal/types.d.ts +0 -6
  384. package/dist/utilities/arrayMove.d.ts +0 -1
  385. package/dist/utilities/arrayMove.js +0 -10
@@ -1,38 +1,36 @@
1
- import React, { useCallback, useEffect, useState } from 'react';
2
- import { useModal } from '@faceless-ui/modal';
1
+ import React, { Fragment, useCallback, useEffect, useState } from 'react';
3
2
  import { useTranslation } from 'react-i18next';
4
3
  import Button from '../../../../elements/Button';
5
4
  import Popup from '../../../../elements/Popup';
6
5
  import { useRelatedCollections } from './useRelatedCollections';
7
6
  import { useAuth } from '../../../../utilities/Auth';
8
- import { AddNewRelationModal } from './Modal';
9
- import { useEditDepth } from '../../../../utilities/EditDepth';
10
7
  import Plus from '../../../../icons/Plus';
11
8
  import { getTranslation } from '../../../../../../utilities/getTranslation';
9
+ import Tooltip from '../../../../elements/Tooltip';
10
+ import { useDocumentDrawer } from '../../../../elements/DocumentDrawer';
12
11
  import './index.scss';
13
12
  const baseClass = 'relationship-add-new';
14
13
  export const AddNewRelation = ({ path, hasMany, relationTo, value, setValue, dispatchOptions }) => {
15
14
  const relatedCollections = useRelatedCollections(relationTo);
16
- const { toggleModal, isModalOpen } = useModal();
17
15
  const { permissions } = useAuth();
18
- const [hasPermission, setHasPermission] = useState(false);
19
- const [modalCollection, setModalCollection] = useState();
16
+ const [show, setShow] = useState(false);
17
+ const [selectedCollection, setSelectedCollection] = useState();
18
+ const relatedToMany = relatedCollections.length > 1;
19
+ const [collectionConfig, setCollectionConfig] = useState(() => (!relatedToMany ? relatedCollections[0] : undefined));
20
20
  const [popupOpen, setPopupOpen] = useState(false);
21
- const editDepth = useEditDepth();
22
21
  const { t, i18n } = useTranslation('fields');
23
- const modalSlug = `${path}-add-modal-depth-${editDepth}`;
24
- const openModal = useCallback(async (collection) => {
25
- setModalCollection(collection);
26
- toggleModal(modalSlug);
27
- }, [toggleModal, modalSlug]);
22
+ const [showTooltip, setShowTooltip] = useState(false);
23
+ const [DocumentDrawer, DocumentDrawerToggler, { toggleDrawer, isDrawerOpen },] = useDocumentDrawer({
24
+ collectionSlug: collectionConfig === null || collectionConfig === void 0 ? void 0 : collectionConfig.slug,
25
+ });
28
26
  const onSave = useCallback((json) => {
29
27
  const newValue = Array.isArray(relationTo) ? {
30
- relationTo: modalCollection.slug,
28
+ relationTo: collectionConfig.slug,
31
29
  value: json.doc.id,
32
30
  } : json.doc.id;
33
31
  dispatchOptions({
34
32
  type: 'ADD',
35
- collection: modalCollection,
33
+ collection: collectionConfig,
36
34
  docs: [
37
35
  json.doc,
38
36
  ],
@@ -45,37 +43,59 @@ export const AddNewRelation = ({ path, hasMany, relationTo, value, setValue, dis
45
43
  else {
46
44
  setValue(newValue);
47
45
  }
48
- setModalCollection(undefined);
49
- toggleModal(modalSlug);
50
- }, [relationTo, modalCollection, dispatchOptions, i18n, hasMany, toggleModal, modalSlug, setValue, value]);
46
+ setSelectedCollection(undefined);
47
+ }, [relationTo, collectionConfig, dispatchOptions, i18n, hasMany, setValue, value]);
51
48
  const onPopopToggle = useCallback((state) => {
52
49
  setPopupOpen(state);
53
50
  }, []);
54
51
  useEffect(() => {
55
52
  if (permissions) {
56
53
  if (relatedCollections.length === 1) {
57
- setHasPermission(permissions.collections[relatedCollections[0].slug].create.permission);
54
+ setShow(permissions.collections[relatedCollections[0].slug].create.permission);
58
55
  }
59
56
  else {
60
- setHasPermission(relatedCollections.some((collection) => permissions.collections[collection.slug].create.permission));
57
+ setShow(relatedCollections.some((collection) => permissions.collections[collection.slug].create.permission));
61
58
  }
62
59
  }
63
60
  }, [permissions, relatedCollections]);
64
61
  useEffect(() => {
65
- if (!isModalOpen(modalSlug)) {
66
- setModalCollection(undefined);
62
+ if (relatedToMany && selectedCollection) {
63
+ setCollectionConfig(relatedCollections.find((collection) => collection.slug === selectedCollection));
67
64
  }
68
- }, [isModalOpen, modalSlug]);
69
- return hasPermission ? (React.createElement("div", { className: baseClass, id: `${path}-add-new` },
70
- relatedCollections.length === 1 && (React.createElement(Button, { className: `${baseClass}__add-button`, onClick: () => openModal(relatedCollections[0]), buttonStyle: "none", tooltip: t('addNewLabel', { label: relatedCollections[0].labels.singular }) },
71
- React.createElement(Plus, null))),
72
- relatedCollections.length > 1 && (React.createElement(Popup, { buttonType: "custom", horizontalAlign: "center", onToggleOpen: onPopopToggle, button: (React.createElement(Button, { className: `${baseClass}__add-button`, buttonStyle: "none", tooltip: popupOpen ? undefined : t('addNew') },
73
- React.createElement(Plus, null))), render: ({ close: closePopup }) => (React.createElement("ul", { className: `${baseClass}__relations` }, relatedCollections.map((relatedCollection) => {
74
- if (permissions.collections[relatedCollection.slug].create.permission) {
75
- return (React.createElement("li", { key: relatedCollection.slug },
76
- React.createElement("button", { className: `${baseClass}__relation-button ${baseClass}__relation-button--${relatedCollection.slug}`, type: "button", onClick: () => { closePopup(); openModal(relatedCollection); } }, getTranslation(relatedCollection.labels.singular, i18n))));
77
- }
78
- return null;
79
- }))) })),
80
- modalCollection && (React.createElement(AddNewRelationModal, { ...{ onSave, modalSlug, modalCollection } })))) : null;
65
+ }, [selectedCollection, relatedToMany, relatedCollections]);
66
+ useEffect(() => {
67
+ if (relatedToMany && collectionConfig) {
68
+ // the drawer must be rendered on the page before before opening it
69
+ // this is why 'selectedCollection' is different from 'collectionConfig'
70
+ toggleDrawer();
71
+ setSelectedCollection(undefined);
72
+ }
73
+ }, [toggleDrawer, relatedToMany, collectionConfig]);
74
+ useEffect(() => {
75
+ if (relatedToMany && !isDrawerOpen) {
76
+ setCollectionConfig(undefined);
77
+ }
78
+ }, [isDrawerOpen, relatedToMany]);
79
+ if (show) {
80
+ return (React.createElement("div", { className: baseClass, id: `${path}-add-new` },
81
+ relatedCollections.length === 1 && (React.createElement(Fragment, null,
82
+ React.createElement(DocumentDrawerToggler, { className: `${baseClass}__add-button`, onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false), onClick: () => setShowTooltip(false) },
83
+ React.createElement(Tooltip, { className: `${baseClass}__tooltip`, show: showTooltip }, t('addNewLabel', { label: getTranslation(relatedCollections[0].labels.singular, i18n) })),
84
+ React.createElement(Plus, null)),
85
+ React.createElement(DocumentDrawer, { onSave: onSave }))),
86
+ relatedCollections.length > 1 && (React.createElement(Fragment, null,
87
+ React.createElement(Popup, { buttonType: "custom", horizontalAlign: "center", onToggleOpen: onPopopToggle, button: (React.createElement(Button, { className: `${baseClass}__add-button`, buttonStyle: "none", tooltip: popupOpen ? undefined : t('addNew') },
88
+ React.createElement(Plus, null))), render: ({ close: closePopup }) => (React.createElement("ul", { className: `${baseClass}__relations` }, relatedCollections.map((relatedCollection) => {
89
+ if (permissions.collections[relatedCollection.slug].create.permission) {
90
+ return (React.createElement("li", { key: relatedCollection.slug },
91
+ React.createElement("button", { type: "button", className: `${baseClass}__relation-button ${baseClass}__relation-button--${relatedCollection.slug}`, onClick: () => {
92
+ closePopup();
93
+ setSelectedCollection(relatedCollection.slug);
94
+ } }, getTranslation(relatedCollection.labels.singular, i18n))));
95
+ }
96
+ return null;
97
+ }))) }),
98
+ collectionConfig && permissions.collections[collectionConfig.slug].create.permission && (React.createElement(DocumentDrawer, { onSave: onSave }))))));
99
+ }
100
+ return null;
81
101
  };
@@ -12,28 +12,16 @@
12
12
 
13
13
  &__add-button {
14
14
  @include formInput;
15
+ position: relative;
15
16
  height: 100%;
16
17
  margin-left: -1px;
17
18
  display: flex;
18
- padding: 0;
19
-
20
- .btn__content,
21
- .btn__label {
22
- display: flex;
23
- }
24
-
25
- .btn__content,
26
- .btn__label {
27
- height: 100%;
28
- }
29
-
30
- .btn__label {
31
- padding: 0 base(.5);
32
- align-items: center;
33
- }
19
+ padding: 0 base(0.5);
20
+ align-items: center;
21
+ display: flex;
22
+ cursor: pointer;
34
23
  }
35
24
 
36
-
37
25
  &__relations {
38
26
  list-style: none;
39
27
  margin: 0;
@@ -57,4 +45,4 @@
57
45
  opacity: .7;
58
46
  }
59
47
  }
60
- }
48
+ }
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Action } from '../types';
3
- export declare type Props = {
3
+ export type Props = {
4
4
  hasMany: boolean;
5
5
  relationTo: string | string[];
6
6
  path: string;
@@ -3,8 +3,11 @@ import { useConfig } from '../../../../utilities/Config';
3
3
  export const useRelatedCollections = (relationTo) => {
4
4
  const config = useConfig();
5
5
  const [relatedCollections] = useState(() => {
6
- const relations = typeof relationTo === 'string' ? [relationTo] : relationTo;
7
- return relations.map((relation) => config.collections.find((collection) => collection.slug === relation));
6
+ if (relationTo) {
7
+ const relations = typeof relationTo === 'string' ? [relationTo] : relationTo;
8
+ return relations.map((relation) => config.collections.find((collection) => collection.slug === relation));
9
+ }
10
+ return [];
8
11
  });
9
12
  return relatedCollections;
10
13
  };
@@ -1,6 +1,6 @@
1
1
  import { FilterOptions } from '../../../../../../fields/config/types';
2
2
  import { FilterOptionsResult } from '../types';
3
- declare type Args = {
3
+ type Args = {
4
4
  filterOptions: FilterOptions;
5
5
  filterOptionsResult: FilterOptionsResult;
6
6
  setFilterOptionsResult: (optionFilters: FilterOptionsResult) => void;
@@ -1,7 +1,7 @@
1
- declare type RelationMap = {
1
+ type RelationMap = {
2
2
  [relation: string]: unknown[];
3
3
  };
4
- declare type CreateRelationMap = (args: {
4
+ type CreateRelationMap = (args: {
5
5
  hasMany: boolean;
6
6
  relationTo: string | string[];
7
7
  value: unknown;
@@ -1,6 +1,6 @@
1
1
  import { Option } from '../../../elements/ReactSelect/types';
2
2
  import { OptionGroup, Value } from './types';
3
- declare type Args = {
3
+ type Args = {
4
4
  value: Value | Value[];
5
5
  options: OptionGroup[];
6
6
  };
@@ -18,6 +18,8 @@ import wordBoundariesRegex from '../../../../../utilities/wordBoundariesRegex';
18
18
  import { AddNewRelation } from './AddNew';
19
19
  import { findOptionsByValue } from './findOptionsByValue';
20
20
  import { GetFilterOptions } from './GetFilterOptions';
21
+ import { SingleValue } from './select-components/SingleValue';
22
+ import { MultiValueLabel } from './select-components/MultiValueLabel';
21
23
  import './index.scss';
22
24
  const maxResultsPerRequest = 10;
23
25
  const baseClass = 'relationship';
@@ -47,6 +49,7 @@ const Relationship = (props) => {
47
49
  validate: memoizedValidate,
48
50
  condition,
49
51
  });
52
+ const [drawerIsOpen, setDrawerIsOpen] = useState(false);
50
53
  const getResults = useCallback(async ({ lastFullyLoadedRelation: lastFullyLoadedRelationArg, lastLoadedPage: lastLoadedPageArg, search: searchArg, value: valueArg, sort, onSuccess, }) => {
51
54
  if (!permissions) {
52
55
  return;
@@ -273,7 +276,14 @@ const Relationship = (props) => {
273
276
  value: initialValue,
274
277
  sort: false,
275
278
  });
276
- }, value: valueToRender, showError: showError, disabled: formProcessing, options: options, isMulti: hasMany, isSortable: isSortable, isLoading: isLoading, onMenuOpen: () => {
279
+ }, value: valueToRender, showError: showError, disabled: formProcessing, options: options, isMulti: hasMany, isSortable: isSortable, isLoading: isLoading, components: {
280
+ SingleValue,
281
+ MultiValueLabel,
282
+ }, selectProps: {
283
+ disableMouseDown: drawerIsOpen,
284
+ disableKeyDown: drawerIsOpen,
285
+ setDrawerIsOpen,
286
+ }, onMenuOpen: () => {
277
287
  if (!hasLoadedFirstPage) {
278
288
  setIsLoading(true);
279
289
  getResults({
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { MultiValueProps } from 'react-select';
3
+ import { Option } from '../../types';
4
+ import './index.scss';
5
+ export declare const MultiValueLabel: React.FC<MultiValueProps<Option>>;
@@ -0,0 +1,36 @@
1
+ import React, { Fragment, useEffect, useState } from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { components } from 'react-select';
4
+ import { useDocumentDrawer } from '../../../../../elements/DocumentDrawer';
5
+ import Tooltip from '../../../../../elements/Tooltip';
6
+ import Edit from '../../../../../icons/Edit';
7
+ import { useAuth } from '../../../../../utilities/Auth';
8
+ import './index.scss';
9
+ const baseClass = 'relationship--multi-value-label';
10
+ export const MultiValueLabel = (props) => {
11
+ var _a, _b, _c;
12
+ const { data: { value, relationTo, label, }, selectProps: { setDrawerIsOpen, draggableProps, }, } = props;
13
+ const { permissions } = useAuth();
14
+ const [showTooltip, setShowTooltip] = useState(false);
15
+ const { t } = useTranslation('general');
16
+ const hasReadPermission = Boolean((_c = (_b = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[relationTo]) === null || _b === void 0 ? void 0 : _b.read) === null || _c === void 0 ? void 0 : _c.permission);
17
+ const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen }] = useDocumentDrawer({
18
+ id: value === null || value === void 0 ? void 0 : value.toString(),
19
+ collectionSlug: relationTo,
20
+ });
21
+ useEffect(() => {
22
+ if (typeof setDrawerIsOpen === 'function')
23
+ setDrawerIsOpen(isDrawerOpen);
24
+ }, [isDrawerOpen, setDrawerIsOpen]);
25
+ return (React.createElement("div", { className: baseClass },
26
+ React.createElement("div", { className: `${baseClass}__content` },
27
+ React.createElement(components.MultiValueLabel, { ...props, innerProps: {
28
+ className: `${baseClass}__text`,
29
+ ...draggableProps || {},
30
+ } })),
31
+ relationTo && hasReadPermission && (React.createElement(Fragment, null,
32
+ React.createElement(DocumentDrawerToggler, { className: `${baseClass}__drawer-toggler`, "aria-label": `Edit ${label}`, onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false), onClick: () => setShowTooltip(false) },
33
+ React.createElement(Tooltip, { className: `${baseClass}__tooltip`, show: showTooltip }, t('editLabel', { label: '' })),
34
+ React.createElement(Edit, null)),
35
+ React.createElement(DocumentDrawer, null)))));
36
+ };
@@ -0,0 +1,40 @@
1
+ @import '../../../../../../scss/styles.scss';
2
+
3
+ .relationship--multi-value-label {
4
+ display: flex;
5
+
6
+ &__content {
7
+ @extend %small;
8
+ padding: 0 base(.125) 0 base(.25);
9
+ max-width: 150px;
10
+ color: currentColor;
11
+ display: flex;
12
+ align-items: center;
13
+ }
14
+
15
+ &__text {
16
+ text-overflow: ellipsis;
17
+ overflow: hidden;
18
+ }
19
+
20
+ &__drawer-toggler {
21
+ position: relative;
22
+ background: none;
23
+ border: none;
24
+ cursor: pointer;
25
+ padding: 0;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ margin-left: base(0.25);
30
+
31
+ .icon {
32
+ width: base(0.75);
33
+ height: base(0.75);
34
+ }
35
+
36
+ &:hover {
37
+ background-color: var(--theme-elevation-100);
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { SingleValueProps } from 'react-select';
3
+ import { Option } from '../../types';
4
+ import './index.scss';
5
+ export declare const SingleValue: React.FC<SingleValueProps<Option>>;
@@ -0,0 +1,34 @@
1
+ import React, { Fragment, useEffect, useState } from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { components as SelectComponents } from 'react-select';
4
+ import { useDocumentDrawer } from '../../../../../elements/DocumentDrawer';
5
+ import Tooltip from '../../../../../elements/Tooltip';
6
+ import Edit from '../../../../../icons/Edit';
7
+ import { useAuth } from '../../../../../utilities/Auth';
8
+ import './index.scss';
9
+ const baseClass = 'relationship--single-value';
10
+ export const SingleValue = (props) => {
11
+ var _a, _b, _c;
12
+ const { data: { value, relationTo, label, }, children, selectProps: { selectProps: { setDrawerIsOpen, }, }, } = props;
13
+ const [showTooltip, setShowTooltip] = useState(false);
14
+ const { t } = useTranslation('general');
15
+ const { permissions } = useAuth();
16
+ const hasReadPermission = Boolean((_c = (_b = (_a = permissions === null || permissions === void 0 ? void 0 : permissions.collections) === null || _a === void 0 ? void 0 : _a[relationTo]) === null || _b === void 0 ? void 0 : _b.read) === null || _c === void 0 ? void 0 : _c.permission);
17
+ const [DocumentDrawer, DocumentDrawerToggler, { isDrawerOpen }] = useDocumentDrawer({
18
+ id: value.toString(),
19
+ collectionSlug: relationTo,
20
+ });
21
+ useEffect(() => {
22
+ if (typeof setDrawerIsOpen === 'function')
23
+ setDrawerIsOpen(isDrawerOpen);
24
+ }, [isDrawerOpen, setDrawerIsOpen]);
25
+ return (React.createElement("div", { className: baseClass },
26
+ React.createElement("div", { className: `${baseClass}__label` },
27
+ React.createElement(SelectComponents.SingleValue, { ...props },
28
+ React.createElement("div", { className: `${baseClass}__text` }, children),
29
+ relationTo && hasReadPermission && (React.createElement(Fragment, null,
30
+ React.createElement(DocumentDrawerToggler, { className: `${baseClass}__drawer-toggler`, "aria-label": t('editLabel', { label }), onMouseDown: (e) => e.stopPropagation(), onMouseEnter: () => setShowTooltip(true), onMouseLeave: () => setShowTooltip(false), onClick: () => setShowTooltip(false) },
31
+ React.createElement(Tooltip, { className: `${baseClass}__tooltip`, show: showTooltip }, t('edit')),
32
+ React.createElement(Edit, null)))))),
33
+ relationTo && hasReadPermission && (React.createElement(DocumentDrawer, null))));
34
+ };
@@ -0,0 +1,43 @@
1
+ @import '../../../../../../scss/styles.scss';
2
+
3
+ .relationship--single-value {
4
+ display: flex;
5
+ align-items: center;
6
+
7
+ .rs__single-value {
8
+ color: currentColor;
9
+ max-width: unset;
10
+ display: flex;
11
+ align-items: center;
12
+ overflow: visible;
13
+ }
14
+
15
+ &__drawer-toggler {
16
+ position: relative;
17
+ background: none;
18
+ border: none;
19
+ cursor: pointer;
20
+ padding: 0;
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ margin-left: base(0.25);
25
+
26
+ .icon {
27
+ width: base(0.75);
28
+ height: base(0.75);
29
+ }
30
+
31
+ &:focus {
32
+ outline: none;
33
+ }
34
+
35
+ &:hover {
36
+ background-color: var(--theme-elevation-100);
37
+ }
38
+ }
39
+
40
+ &__label {
41
+ flex-grow: 1;
42
+ }
43
+ }
@@ -2,27 +2,27 @@ import i18n from 'i18next';
2
2
  import { SanitizedCollectionConfig } from '../../../../../collections/config/types';
3
3
  import { RelationshipField } from '../../../../../fields/config/types';
4
4
  import { Where } from '../../../../../types';
5
- export declare type Props = Omit<RelationshipField, 'type'> & {
5
+ export type Props = Omit<RelationshipField, 'type'> & {
6
6
  path?: string;
7
7
  };
8
- export declare type Option = {
8
+ export type Option = {
9
9
  label: string;
10
10
  value: string | number;
11
11
  relationTo?: string;
12
12
  options?: Option[];
13
13
  };
14
- export declare type OptionGroup = {
14
+ export type OptionGroup = {
15
15
  label: string;
16
16
  options: Option[];
17
17
  };
18
- export declare type Value = {
18
+ export type Value = {
19
19
  relationTo: string;
20
20
  value: string | number;
21
21
  } | string | number;
22
- declare type CLEAR = {
22
+ type CLEAR = {
23
23
  type: 'CLEAR';
24
24
  };
25
- declare type ADD = {
25
+ type ADD = {
26
26
  type: 'ADD';
27
27
  docs: any[];
28
28
  collection: SanitizedCollectionConfig;
@@ -30,12 +30,12 @@ declare type ADD = {
30
30
  ids?: unknown[];
31
31
  i18n: typeof i18n;
32
32
  };
33
- export declare type Action = CLEAR | ADD;
34
- export declare type ValueWithRelation = {
33
+ export type Action = CLEAR | ADD;
34
+ export type ValueWithRelation = {
35
35
  relationTo: string;
36
36
  value: string;
37
37
  };
38
- export declare type GetResults = (args: {
38
+ export type GetResults = (args: {
39
39
  lastFullyLoadedRelation?: number;
40
40
  lastLoadedPage?: number;
41
41
  search?: string;
@@ -43,7 +43,7 @@ export declare type GetResults = (args: {
43
43
  sort?: boolean;
44
44
  onSuccess?: () => void;
45
45
  }) => Promise<void>;
46
- export declare type FilterOptionsResult = {
46
+ export type FilterOptionsResult = {
47
47
  [relation: string]: Where;
48
48
  };
49
49
  export {};
@@ -4,11 +4,11 @@ import { ReactEditor } from 'slate-react';
4
4
  import { HistoryEditor } from 'slate-history';
5
5
  import { Props } from './types';
6
6
  import './index.scss';
7
- declare type CustomText = {
7
+ type CustomText = {
8
8
  text: string;
9
9
  [x: string]: unknown;
10
10
  };
11
- declare type CustomElement = {
11
+ type CustomElement = {
12
12
  type?: string;
13
13
  children: CustomText[];
14
14
  };
@@ -1,6 +1,6 @@
1
1
  import { Field } from '../../../../../../../../fields/config/types';
2
2
  import { Fields } from '../../../../../Form/types';
3
- export declare type Props = {
3
+ export type Props = {
4
4
  modalSlug: string;
5
5
  close: () => void;
6
6
  handleModalSubmit: (fields: Fields, data: Record<string, unknown>) => void;
@@ -4,6 +4,7 @@ import { useTranslation } from 'react-i18next';
4
4
  import { useConfig } from '../../../../../../utilities/Config';
5
5
  import RelationshipIcon from '../../../../../../icons/Relationship';
6
6
  import usePayloadAPI from '../../../../../../../hooks/usePayloadAPI';
7
+ import { getTranslation } from '../../../../../../../../utilities/getTranslation';
7
8
  import './index.scss';
8
9
  const baseClass = 'rich-text-relationship';
9
10
  const initialParams = {
@@ -17,7 +18,7 @@ const Element = (props) => {
17
18
  const [relatedCollection] = useState(() => collections.find((coll) => coll.slug === relationTo));
18
19
  const selected = useSelected();
19
20
  const focused = useFocused();
20
- const { t } = useTranslation('fields');
21
+ const { t, i18n } = useTranslation('fields');
21
22
  const [{ data }] = usePayloadAPI(`${serverURL}${api}/${relatedCollection.slug}/${value === null || value === void 0 ? void 0 : value.id}`, { initialParams });
22
23
  return (React.createElement("div", { className: [
23
24
  baseClass,
@@ -25,7 +26,7 @@ const Element = (props) => {
25
26
  ].filter(Boolean).join(' '), contentEditable: false, ...attributes },
26
27
  React.createElement(RelationshipIcon, null),
27
28
  React.createElement("div", { className: `${baseClass}__wrap` },
28
- React.createElement("div", { className: `${baseClass}__label` }, t('labelRelationship', { label: relatedCollection.labels.singular })),
29
+ React.createElement("div", { className: `${baseClass}__label` }, t('labelRelationship', { label: getTranslation(relatedCollection.labels.singular, i18n) })),
29
30
  React.createElement("h5", null, data[((_a = relatedCollection === null || relatedCollection === void 0 ? void 0 : relatedCollection.admin) === null || _a === void 0 ? void 0 : _a.useAsTitle) || 'id'])),
30
31
  children));
31
32
  };
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- export declare type ButtonProps = {
2
+ export type ButtonProps = {
3
3
  format: string;
4
4
  onClick?: (e: React.MouseEvent) => void;
5
5
  className?: string;
@@ -3,7 +3,7 @@ import { Element } from 'slate';
3
3
  import { SanitizedCollectionConfig } from '../../../../../../../../../collections/config/types';
4
4
  import { Field } from '../../../../../../../../../fields/config/types';
5
5
  import './index.scss';
6
- declare type Props = {
6
+ type Props = {
7
7
  slug: string;
8
8
  closeModal: () => void;
9
9
  relatedCollectionConfig: SanitizedCollectionConfig;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { Element } from 'slate';
3
3
  import { SanitizedCollectionConfig } from '../../../../../../../../../collections/config/types';
4
4
  import '../../addSwapModals.scss';
5
- declare type Props = {
5
+ type Props = {
6
6
  slug: string;
7
7
  element: Element;
8
8
  closeModal: () => void;
@@ -1,4 +1,4 @@
1
1
  import { RichTextField } from '../../../../../fields/config/types';
2
- export declare type Props = Omit<RichTextField, 'type'> & {
2
+ export type Props = Omit<RichTextField, 'type'> & {
3
3
  path?: string;
4
4
  };
@@ -1,7 +1,7 @@
1
1
  import { RowField } from '../../../../../fields/config/types';
2
2
  import { FieldTypes } from '..';
3
3
  import { FieldPermissions } from '../../../../../auth/types';
4
- export declare type Props = Omit<RowField, 'type'> & {
4
+ export type Props = Omit<RowField, 'type'> & {
5
5
  path?: string;
6
6
  fieldTypes: FieldTypes;
7
7
  permissions: FieldPermissions;
@@ -3,7 +3,7 @@ import { OptionObject, SelectField } from '../../../../../fields/config/types';
3
3
  import { Description } from '../../FieldDescription/types';
4
4
  import { Option } from '../../../elements/ReactSelect/types';
5
5
  import './index.scss';
6
- export declare type SelectInputProps = Omit<SelectField, 'type' | 'value' | 'options'> & {
6
+ export type SelectInputProps = Omit<SelectField, 'type' | 'value' | 'options'> & {
7
7
  showError?: boolean;
8
8
  errorMessage?: string;
9
9
  readOnly?: boolean;
@@ -1,4 +1,4 @@
1
1
  import { SelectField } from '../../../../../fields/config/types';
2
- export declare type Props = Omit<SelectField, 'type'> & {
2
+ export type Props = Omit<SelectField, 'type'> & {
3
3
  path?: string;
4
4
  };
@@ -1,7 +1,7 @@
1
1
  import { TabsField } from '../../../../../fields/config/types';
2
2
  import { FieldTypes } from '..';
3
3
  import { FieldPermissions } from '../../../../../auth/types';
4
- export declare type Props = Omit<TabsField, 'type'> & {
4
+ export type Props = Omit<TabsField, 'type'> & {
5
5
  path?: string;
6
6
  fieldTypes: FieldTypes;
7
7
  permissions: FieldPermissions;
@@ -2,7 +2,7 @@ import React, { ChangeEvent } from 'react';
2
2
  import { TextField } from '../../../../../fields/config/types';
3
3
  import { Description } from '../../FieldDescription/types';
4
4
  import './index.scss';
5
- export declare type TextInputProps = Omit<TextField, 'type'> & {
5
+ export type TextInputProps = Omit<TextField, 'type'> & {
6
6
  showError?: boolean;
7
7
  errorMessage?: string;
8
8
  readOnly?: boolean;
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { TextField } from '../../../../../fields/config/types';
3
- export declare type Props = Omit<TextField, 'type'> & {
3
+ export type Props = Omit<TextField, 'type'> & {
4
4
  path?: string;
5
5
  inputRef?: React.MutableRefObject<HTMLInputElement>;
6
6
  onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;